作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师
主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互助
收藏点赞不迷路 关注作者有好处
文末获取源码
项目编号:BS-XX-211
一,环境介绍
语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
二,项目简介
本项目使用Springboot+Vue进行前后端分离开发实现,完成了一个加油站加油的管理系统平台。系统完全模拟了真实的加油站管理系统的业务模式,实现了前端用户在线注册登录,在线充值,选择加油枪口进行模拟加油,同时用户也可以申请成为会员,享受加油站加油的优惠政策,在用户的个人中心处可以查看和修改个人的信息,在线充值和查看充值记录、加油记录等。
同时系统也提供了平台管理员的功能,实现了人员的管理、加油业绩营业额的图形化报表统计,充值管理,公告管理,轮播图管理,加油枪口管理,加油信息记录管理等等。
本系统选题比较新颖,能实现加油站加油的全流程化业务管理功能模块,是一个难得的优质系统。
下面展示一下系统的功能
三,系统展示
系统首页
编辑
用户注册
编辑
查看加油枪口
编辑
编辑
实现模拟加油操作
编辑
个人中心后台管理
编辑
个人资料管理
编辑
查看加油记录
编辑
充值管理
编辑
平台管理员后台管理功能展示
仪表盘信息统计
编辑
编辑
管理员管理
编辑
用户管理
编辑
公告管理
编辑
编辑
加油枪口管理
编辑
加油信息管理
编辑
充值管理
编辑
会员查询
编辑
四,核心代码展示
package com.spring.controller;
import com.jntoo.db.*;
import com.jntoo.db.utils.*;
import com.spring.dao.*;
import com.spring.entity.*;
import com.spring.service.*;
import com.spring.util.*;
import com.spring.util.Info;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
/**
* 管理员 */
@Controller
public class AdminsController extends BaseController {
@Autowired
private AdminsMapper dao;
@Autowired
private AdminsService service;
/**
* 后台列表页
*
*/
@RequestMapping("/admins_list")
public String list() {
// 检测是否有登录,没登录则跳转到登录页面
if (!checkLogin()) {
return showError("尚未登录", "./login.do");
}
String order = Request.get("order", "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort", "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize", 12); // 获取前台一页多少行数据
Example example = new Example(Admins.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为:1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if (sort.equals("desc")) { // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
} else {
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1, page); // 取两个数的最大值,防止page 小于1
List<Admins> list = service.selectPageExample(example, page, pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount", request.getAttribute("totalCount"));
assign("list", list);
assign("orderby", order); // 把当前排序结果写进前台
assign("sort", sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere() {
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作,判断是否符合条件,符合则写入sql 语句
if (!Request.get("username").equals("")) {
where += " AND username LIKE '%" + Request.get("username") + "%' ";
}
return where;
}
@RequestMapping("/admins_add")
public String add() {
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/admins_updt")
public String updt() {
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据,并赋值给前台jsp页面
Admins mmm = service.find(id);
assign("mmm", mmm);
assign("updtself", 0);
return json(); // 将数据写给前端
}
@RequestMapping("/admins_updtself")
public String updtself() {
_var = new LinkedHashMap(); // 重置数据
// 更新个人资料
int id = (int) request.getSession().getAttribute("id");
Admins mmm = service.find(id);
assign("mmm", mmm);
assign("updtself", 1);
return json(); // 将数据写给前端
}
/**
* 添加内容
* @return
*/
@RequestMapping("/adminsinsert")
public String insert() {
_var = new LinkedHashMap(); // 重置数据
String tmp = "";
Admins post = new Admins(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setUsername(Request.get("username"));
post.setPwd(Request.get("pwd"));
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if (isAjax()) {
return jsonResult(post);
}
return showSuccess("保存成功", Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
* 更新内容
* @return
*/
@RequestMapping("/adminsupdate")
public String update() {
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Admins post = new Admins();
// 将前台表单数据填充到实体类
if (!Request.get("username").equals("")) post.setUsername(Request.get("username"));
if (!Request.get("pwd").equals("")) post.setPwd(Request.get("pwd"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if (isAjax()) {
return jsonResult(post);
}
if (Request.getInt("updtself") == 1) {
return showSuccess("保存成功", "admins_updtself.do");
}
return showSuccess("保存成功", Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
* 删除
*/
@RequestMapping("/admins_delete")
public String delete() {
_var = new LinkedHashMap(); // 重置数据
if (!checkLogin()) {
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
Map map = Query.make("admins").find(id);
service.delete(id); // 根据id 删除某行数据
return showSuccess("删除成功", request.getHeader("referer")); //弹出删除成功,并跳回上一页
}
}
package com.spring.controller;
import com.jntoo.db.*;
import com.jntoo.db.utils.*;
import com.spring.dao.*;
import com.spring.entity.*;
import com.spring.service.*;
import com.spring.util.*;
import com.spring.util.Info;
import java.util.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import tk.mybatis.mapper.entity.Example;
/**
* 加油枪口 */
@Controller
public class JiayouqiangkouController extends BaseController {
@Autowired
private JiayouqiangkouMapper dao;
@Autowired
private JiayouqiangkouService service;
/**
* 后台列表页
*
*/
@RequestMapping("/jiayouqiangkou_list")
public String list() {
// 检测是否有登录,没登录则跳转到登录页面
if (!checkLogin()) {
return showError("尚未登录", "./login.do");
}
String order = Request.get("order", "id"); // 获取前台提交的URL参数 order 如果没有则设置为id
String sort = Request.get("sort", "desc"); // 获取前台提交的URL参数 sort 如果没有则设置为desc
int pagesize = Request.getInt("pagesize", 12); // 获取前台一页多少行数据
Example example = new Example(Jiayouqiangkou.class); // 创建一个扩展搜索类
Example.Criteria criteria = example.createCriteria(); // 创建一个扩展搜索条件类
String where = " 1=1 "; // 创建初始条件为:1=1
where += getWhere(); // 从方法中获取url 上的参数,并写成 sql条件语句
criteria.andCondition(where); // 将条件写进上面的扩展条件类中
if (sort.equals("desc")) { // 判断前台提交的sort 参数是否等于 desc倒序 是则使用倒序,否则使用正序
example.orderBy(order).desc(); // 把sql 语句设置成倒序
} else {
example.orderBy(order).asc(); // 把 sql 设置成正序
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page")); // 获取前台提交的URL参数 page 如果没有则设置为1
page = Math.max(1, page); // 取两个数的最大值,防止page 小于1
List<Jiayouqiangkou> list = service.selectPageExample(example, page, pagesize); // 获取当前页的行数
// 将列表写给界面使用
assign("totalCount", request.getAttribute("totalCount"));
assign("list", list);
assign("orderby", order); // 把当前排序结果写进前台
assign("sort", sort); // 把当前排序结果写进前台
return json(); // 将数据写给前端
}
public String getWhere() {
_var = new LinkedHashMap(); // 重置数据
String where = " ";
// 以下也是一样的操作,判断是否符合条件,符合则写入sql 语句
if (!Request.get("qiangkoubianhao").equals("")) {
where += " AND qiangkoubianhao LIKE '%" + Request.get("qiangkoubianhao") + "%' ";
}
if (!Request.get("qiangkoumingcheng").equals("")) {
where += " AND qiangkoumingcheng LIKE '%" + Request.get("qiangkoumingcheng") + "%' ";
}
if (!Request.get("youpinleixing").equals("")) {
where += " AND youpinleixing ='" + Request.get("youpinleixing") + "' ";
}
return where;
}
/**
* 前台列表页
*
*/
@RequestMapping("/jiayouqiangkoulist")
public String index() {
String order = Request.get("order", "id");
String sort = Request.get("sort", "desc");
int pagesize = Request.getInt("pagesize", 12); // 获取前台一页多少行数据
Example example = new Example(Jiayouqiangkou.class);
Example.Criteria criteria = example.createCriteria();
String where = " 1=1 ";
where += getWhere();
criteria.andCondition(where);
if (sort.equals("desc")) {
example.orderBy(order).desc();
} else {
example.orderBy(order).asc();
}
int page = request.getParameter("page") == null ? 1 : Integer.valueOf(request.getParameter("page"));
page = Math.max(1, page);
List<Jiayouqiangkou> list = service.selectPageExample(example, page, pagesize);
assign("totalCount", request.getAttribute("totalCount"));
assign("list", list);
assign("where", where);
assign("orderby", order);
assign("sort", sort);
return json();
}
@RequestMapping("/jiayouqiangkou_add")
public String add() {
_var = new LinkedHashMap(); // 重置数据
return json(); // 将数据写给前端
}
@RequestMapping("/jiayouqiangkou_updt")
public String updt() {
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
// 获取行数据,并赋值给前台jsp页面
Jiayouqiangkou mmm = service.find(id);
assign("mmm", mmm);
assign("updtself", 0);
return json(); // 将数据写给前端
}
/**
* 添加内容
* @return
*/
@RequestMapping("/jiayouqiangkouinsert")
public String insert() {
_var = new LinkedHashMap(); // 重置数据
String tmp = "";
Jiayouqiangkou post = new Jiayouqiangkou(); // 创建实体类
// 设置前台提交上来的数据到实体类中
post.setQiangkoubianhao(Request.get("qiangkoubianhao"));
post.setTupian(Request.get("tupian"));
post.setQiangkoumingcheng(Request.get("qiangkoumingcheng"));
post.setYoupinleixing(Request.get("youpinleixing"));
post.setShengyuyouliang(Request.getDouble("shengyuyouliang"));
post.setJiage(Request.getDouble("jiage"));
post.setBeizhu(Request.get("beizhu"));
service.insert(post); // 插入数据
int charuid = post.getId().intValue();
if (isAjax()) {
return jsonResult(post);
}
return showSuccess("保存成功", Request.get("referer").equals("") ? request.getHeader("referer") : Request.get("referer"));
}
/**
* 更新内容
* @return
*/
@RequestMapping("/jiayouqiangkouupdate")
public String update() {
_var = new LinkedHashMap(); // 重置数据
// 创建实体类
Jiayouqiangkou post = new Jiayouqiangkou();
// 将前台表单数据填充到实体类
if (!Request.get("qiangkoubianhao").equals("")) post.setQiangkoubianhao(Request.get("qiangkoubianhao"));
if (!Request.get("tupian").equals("")) post.setTupian(Request.get("tupian"));
if (!Request.get("qiangkoumingcheng").equals("")) post.setQiangkoumingcheng(Request.get("qiangkoumingcheng"));
if (!Request.get("youpinleixing").equals("")) post.setYoupinleixing(Request.get("youpinleixing"));
if (!Request.get("shengyuyouliang").equals("")) post.setShengyuyouliang(Request.getDouble("shengyuyouliang"));
if (!Request.get("jiage").equals("")) post.setJiage(Request.getDouble("jiage"));
if (!Request.get("beizhu").equals("")) post.setBeizhu(Request.get("beizhu"));
post.setId(Request.getInt("id"));
service.update(post); // 更新数据
int charuid = post.getId().intValue();
if (isAjax()) {
return jsonResult(post);
}
return showSuccess("保存成功", Request.get("referer")); // 弹出保存成功,并跳转到前台提交的 referer 页面
}
/**
* 后台详情
*/
@RequestMapping("/jiayouqiangkou_detail")
public String detail() {
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Jiayouqiangkou map = service.find(id); // 根据前台url 参数中的id获取行数据
assign("map", map); // 把数据写到前台
return json(); // 将数据写给前端
}
/**
* 前台详情
*/
@RequestMapping("/jiayouqiangkoudetail")
public String detailweb() {
_var = new LinkedHashMap(); // 重置数据
int id = Request.getInt("id");
Jiayouqiangkou map = service.find(id);
assign("map", map);
return json(); // 将数据写给前端
}
/**
* 删除
*/
@RequestMapping("/jiayouqiangkou_delete")
public String delete() {
_var = new LinkedHashMap(); // 重置数据
if (!checkLogin()) {
return showError("尚未登录");
}
int id = Request.getInt("id"); // 根据id 删除某行数据
Map map = Query.make("jiayouqiangkou").find(id);
service.delete(id); // 根据id 删除某行数据
return showSuccess("删除成功", request.getHeader("referer")); //弹出删除成功,并跳回上一页
}
}
五,相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统
编辑
编辑
编辑
编辑
编辑
编辑
编辑
编辑