一,环境介绍
语言环境: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智能应用
基于大数据实现的各类数据管理和推荐系统