基于javaweb+mysql的ssm+maven超市收银管理系统(java+ssm+html+maven+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7、Tomcat≥8
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SSM+Maven超市收银管理系统(java+ssm+html+maven+mysql)
一、项目简述
本系统主要实现的功能有:收银、报表、用户管理、商品管理、销售管理、进货退货管理、仓库管 理等等功能。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: Spring+ SpringMVC + MyBatis + ThymeLeaf + JavaScript + JQuery + Ajax + maven等等
model.setGoodsName(null);
} else if(model.getGoodsName().startsWith("ZDY")){
String code = model.getGoodsName();
model.setGoodsCode(code);
model.setGoodsName(null);
}
List<CashierInGoods> result = cashierInGoodsService.getListAll(model);
return new Result(ResultEnum.SUCCESS, result);
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(CashierInGoods model) {
try {
boolean b = cashierInGoodsService.insert(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/addlist", method = RequestMethod.POST)
@ResponseBody
public Result addlist(String model) {
try {
List<CashierInGoods> list = JSON.parseArray(model,CashierInGoods.class);
boolean b = cashierInGoodsService.insertList(list);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierInGoods model) {
try {
boolean b = cashierInGoodsService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierInGoods model) {
try {
boolean b = cashierInGoodsService.update(model);
return new Result(ResultEnum.SUCCESS, b);
@Controller
@RequestMapping("/paytype")
public class CashierPayTypeController {
private static Logger logger = Logger.getLogger(CashierPayTypeController.class);
@Autowired
private ICashierPayTypeService cashierPayTypeService;
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public Result list(CashierPayType model) {
if (model.getPageNo() == null) {
model.setPageNo(1);
}
if (model.getPageSize() == null) {
model.setPageSize(10);
}
if (model.getOrderBy() == null) {
model.setOrderBy("updateTime desc");
}
try {
PageInfo<CashierPayType> result = cashierPayTypeService.getList(model);
return new Result(ResultEnum.SUCCESS, result);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(CashierPayType model) {
}
}
}
@Controller
@RequestMapping("/lossgoods")
public class CashierLossGoodsController {
private static Logger logger = Logger.getLogger(CashierLossGoodsController.class);
@Autowired
private ICashierLossGoodsService cashierLossGoodsService;
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public Result list(CashierLossGoods model) {
if (model.getGoodsName() != null &&
!"".equals(model.getGoodsName())
&& UserUtil.isInteger(model.getGoodsName())) {
String code = model.getGoodsName();
model.setGoodsCode(code);
model.setGoodsName(null);
} else if(model.getGoodsName().startsWith("ZDY")){
String code = model.getGoodsName();
model.setGoodsCode(code);
model.setGoodsName(null);
}
boolean b = cashierMenuService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
}
/**
* @version 1.0
* @Title rml.interceptor
* @Copyright 2020
* @Description: 描述
* @Company: fere.com
*/
public class MyInterceptor implements HandlerInterceptor {
/**
* 在处理方法之前执行,一般用来做一些准备工作:比如日志,权限检查
* 如果返回false 表示被拦截,将不会执行处理方法
* 返回true继续执行处理方法
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
try {
if(request.getRequestURI().contains("login")){
return true;
}
String cashierName = CookieTool.getCookieValueByName(request, CookieTool.KEY);
if (cashierName != null && !"".equals(cashierName)) {
String json = URLDecoder.decode(cashierName, "UTF-8");
CashierUser user = JSON.parseObject(json, CashierUser.class);
//验证session中是否有用户存在 如果有 继续执行
if (user != null) {
UserUtil.setLocalUser(user);
return true;
}
}
if (model.getPageSize() == null) {
model.setPageSize(10);
}
if (model.getOrderBy() == null) {
model.setOrderBy("createTime desc");
}
PageInfo<CashierInventory> result = null;
try {
result = cashierInventoryService.getList(model);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
return new Result(ResultEnum.SUCCESS, result);
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(String order) {
try {
List<CashierInventoryGoods> model = JSON.parseArray(order, CashierInventoryGoods.class);
boolean b = cashierInventoryService.insertList(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierInventory model) {
try {
boolean b = cashierInventoryService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierInventory model) {
try {
boolean b = cashierInventoryService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/get", method = RequestMethod.POST)
@ResponseBody
public Result get(CashierInventoryGoods model) {
PageInfo<CashierOrder> result = null;
try {
result = cashierOrderService.getList(model);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
return new Result(ResultEnum.SUCCESS, result);
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(String order) {
try {
CashierOrder model = JSON.parseObject(order, CashierOrder.class);
model.setOrderId("SY" + System.currentTimeMillis());
boolean b = cashierOrderService.insert(model);
if (b) {
String id = DES3Util.encode(model.getOrderId());
return new Result(ResultEnum.SUCCESS, id);
} else {
return new Result(ResultEnum.FAIL, b);
}
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierOrder model) {
try {
boolean b = cashierOrderService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(String order) {
try {
CashierOrder model = JSON.parseObject(order, CashierOrder.class);
String id = model.getOrderId();
String idd = DES3Util.encode(model.getOrderId());
model.setOrderId(DES3Util.decode(id));
boolean b = cashierOrderService.update(model);
return new Result(ResultEnum.SUCCESS, id);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@Controller
@RequestMapping("/menu")
public class CashierMenuController {
private static Logger logger = Logger.getLogger(CashierMenuController.class);
@Autowired
private ICashierMenuService cashierMenuService;
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public Result list(CashierMenu model) {
if (model.getPageNo() == null) {
model.setPageNo(1);
}
if (model.getPageSize() == null) {
model.setPageSize(10);
}
if (model.getOrderBy() == null) {
model.setOrderBy("sort asc");
}
PageInfo<CashierMenu> result = cashierMenuService.getList(model);
return new Result(ResultEnum.SUCCESS, result);
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(CashierMenu model) {
try {
boolean b = cashierMenuService.insert(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(CashierGoods model) {
try {
boolean b = cashierGoodsService.insert(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierGoods model) {
try {
boolean b = cashierGoodsService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierGoods model) {
try {
boolean b = cashierGoodsService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/get", method = RequestMethod.POST)
@ResponseBody
public Result get(CashierGoods model) {
try {
CashierGoods b = cashierGoodsService.get(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
}
@RequestMapping(value = "/sum", method = RequestMethod.POST)
@ResponseBody
public Result sum(CashierInventoryGoods model) {
try {
CashierInventoryGoods cig = cashierInventoryService.sum(model);
return new Result(ResultEnum.SUCCESS, cig);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
}
@Controller
@RequestMapping("/ingoods")
public class CashierInGoodsController {
private static Logger logger = Logger.getLogger(CashierInGoodsController.class);
@Autowired
private ICashierInGoodsService cashierInGoodsService;
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
public Result list(CashierInGoods model) {
if (model.getGoodsName() != null &&
!"".equals(model.getGoodsName())
&& UserUtil.isInteger(model.getGoodsName())) {
String code = model.getGoodsName();
model.setGoodsCode(code);
}
PageInfo<CashierUser> result = cashierUserService.getList(model);
return new Result(ResultEnum.SUCCESS, result);
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(CashierUser model) {
try {
boolean b = cashierUserService.insert(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierUser model) {
try {
boolean b = cashierUserService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierUser model) {
try {
boolean b = cashierUserService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/login", method = RequestMethod.POST)
@ResponseBody
public Result login(HttpServletResponse response, CashierUser model) {
try {
CashierUser info = new CashierUser();
info.setAccount(model.getAccount());
CashierUser b = cashierUserService.login(info);
if (b == null) {
return new Result(ResultEnum.FAIL, "用户不存在!",false);
}
if (!b.getPassword().equals(model.getPassword())) {
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
try {
if(request.getRequestURI().contains("login")){
return true;
}
String cashierName = CookieTool.getCookieValueByName(request, CookieTool.KEY);
if (cashierName != null && !"".equals(cashierName)) {
String json = URLDecoder.decode(cashierName, "UTF-8");
CashierUser user = JSON.parseObject(json, CashierUser.class);
//验证session中是否有用户存在 如果有 继续执行
if (user != null) {
UserUtil.setLocalUser(user);
return true;
}
}
} catch (Exception e){
e.printStackTrace();
}
//执行跳转到登录页面
response.setCharacterEncoding("UTF-8");
response.getWriter().print(JSON.toJSONString(new Result(ResultEnum.BEOVERDUE, ResultEnum.BEOVERDUE.getMessage())));
return false;
}
/**
* 在处理方法执行之后,在渲染视图执行之前执行,一般用来做一些清理工作
*/
@Override
public void postHandle(HttpServletRequest req, HttpServletResponse resp, Object handler, ModelAndView mv)
throws Exception {
System.out.println("执行postHandler");
}
/**
* 在视图渲染后执行 一般用来释放资源
*/
@Override
public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
throws Exception {
UserUtil.clearUser();
}
}
try {
if(model.getOrderId() != null && !"".equals(model.getOrderId())){
model.setOrderId(DES3Util.decode(model.getOrderId()));
}
List<CashierOrderGoods> result = cashierOrderGoodsService.getAllList(model);
return new Result(ResultEnum.SUCCESS, result);
} catch (Exception e) {
return new Result(ResultEnum.ORDER_FAIL, false);
}
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Result add(CashierOrderGoods model) {
try {
boolean b = cashierOrderGoodsService.insert(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierOrderGoods model) {
try {
boolean b = cashierOrderGoodsService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierOrderGoods model) {
try {
boolean b = cashierOrderGoodsService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/get", method = RequestMethod.POST)
@ResponseBody
public Result get(CashierOrderGoods model) {
try {
CashierOrderGoods b = cashierOrderGoodsService.get(model);
return new Result(ResultEnum.SUCCESS, b);
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierPayType model) {
try {
boolean b = cashierPayTypeService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierPayType model) {
try {
boolean b = cashierPayTypeService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping("/upfile")
@ResponseBody
public Result upfile(HttpServletRequest request, @RequestParam MultipartFile file)
throws Exception {
WebApplicationContext webApplicationContext = ContextLoader
.getCurrentWebApplicationContext();
ServletContext servletContext = webApplicationContext.getServletContext();
// 得到文件绝对路径
String realPath = servletContext.getRealPath("/payfile");
System.out.println("realPath :" + realPath);
File file1 = new File(realPath);
if (!file1.exists()) {
file1.mkdir(); //如果该目录不存在,就创建此抽象路径名指定的目录。
}
String oriName = file.getOriginalFilename();
String extName = oriName.substring(0, oriName.lastIndexOf("."));
System.out.println( request.getParameter("payType"));
while (true) {
calendar.add(Calendar.DAY_OF_MONTH, 1);
String time = sdf.format(calendar.getTime());
l.add(time);
if (time.equals(model.getETime())) {
break;
}
}
result.put("m", l);
result.put("top", model.getTop());
result.put("sTime", model.getSTime() + "T00:00:00");
result.put("eTime", model.getETime() + "T23:59:59");
result.put("goodsCode", model.getGoodsCode());
List<CashierChart> d = cashierGoodsSumService.getChart(result);
result.put("d", d);
return new Result(ResultEnum.SUCCESS, result);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
}
@Controller
@RequestMapping("/inventory")
public class CashierInventoryController {
private static Logger logger = Logger.getLogger(CashierInventoryController.class);
@Autowired
private ICashierInventoryService cashierInventoryService;
@RequestMapping(value = "/list", method = RequestMethod.POST)
@ResponseBody
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/delete", method = RequestMethod.POST)
@ResponseBody
public Result delete(CashierPayType model) {
try {
boolean b = cashierPayTypeService.delete(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/update", method = RequestMethod.POST)
@ResponseBody
public Result update(CashierPayType model) {
try {
boolean b = cashierPayTypeService.update(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping("/upfile")
@ResponseBody
public Result upfile(HttpServletRequest request, @RequestParam MultipartFile file)
throws Exception {
WebApplicationContext webApplicationContext = ContextLoader
.getCurrentWebApplicationContext();
ServletContext servletContext = webApplicationContext.getServletContext();
// 得到文件绝对路径
String realPath = servletContext.getRealPath("/payfile");
System.out.println("realPath :" + realPath);
File file1 = new File(realPath);
if (!file1.exists()) {
file1.mkdir(); //如果该目录不存在,就创建此抽象路径名指定的目录。
public Result order(CashierReports model) {
if (model.getPageNo() == null) {
model.setPageNo(1);
}
if (model.getPageSize() == null) {
model.setPageSize(10);
}
try {
if (model.getOrderId() != null && !"".equals(model.getOrderId())) {
PageInfo<CashierOrderGoods> result = cashierOrderGoodsService.getReports(model);
return new Result(ResultEnum.SUCCESS, result);
} else {
PageInfo<CashierOrder> result = cashierOrderService.getReports(model);
return new Result(ResultEnum.SUCCESS, result);
}
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/goods", method = RequestMethod.POST)
@ResponseBody
public Result goods(CashierReports model) {
if (model.getPageNo() == null) {
model.setPageNo(1);
}
if (model.getPageSize() == null) {
model.setPageSize(10);
}
try {
Date date = new Date();
String str = "yyyy-MM-dd";
SimpleDateFormat sdf = new SimpleDateFormat(str);
if (model.getTime().equals(sdf.format(date))) {
PageInfo<CashierGoodsSum> result = cashierGoodsSumService.getReports(model);
return new Result(ResultEnum.SUCCESS, result);
} else {
PageInfo<CashierGoodsSum> result = cashierGoodsSumService.getReportsHistory(model);
return new Result(ResultEnum.SUCCESS, result);
}
public class CookieTool {
public static String KEY = "cashierKey";
/**
* 添加cookie
*
* @param response
* @param name Key
* @param value Value
* @param maxAge 有效时间
*/
public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
Cookie cookie = new Cookie(name, value);
cookie.setPath("/");
cookie.setMaxAge(maxAge);
//cookie.setDomain("localhost"); // cookie作用域
response.addCookie(cookie);
}
/**
* 检索所有Cookie封装到Map集合
*
* @param request
* @return
*/
public static Map<String, String> readCookieMap(HttpServletRequest request) {
Map<String, String> cookieMap = new HashMap<String, String>();
Cookie[] cookies = request.getCookies();
if (null != cookies) {
for (Cookie cookie : cookies) {
cookieMap.put(cookie.getName(), cookie.getValue());
}
}
return cookieMap;
}
/**
* 通过Key获取Value
*
* @param request
* @param name Key
@RequestMapping(value = "/get", method = RequestMethod.POST)
@ResponseBody
public Result get(CashierInventoryGoods model) {
try {
List<CashierInventoryGoods> b = cashierInventoryService.getGoods(model);
return new Result(ResultEnum.SUCCESS, b);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/check", method = RequestMethod.POST)
@ResponseBody
public Result check(CashierInventoryGoods model) {
try {
boolean b = cashierInventoryService.getRepeat();
if(b){
return new Result(ResultEnum.CHEACKED_TODAY, false);
}
List<CashierInventoryGoods> list = cashierInventoryService.check(model);
return new Result(ResultEnum.SUCCESS, list);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/checkList", method = RequestMethod.POST)
@ResponseBody
public Result checkList(CashierInventoryGoods model) {
try {
if (model.getPageNo() == null) {
model.setPageNo(1);
}
if (model.getPageSize() == null) {
model.setPageSize(17);
}
PageInfo<CashierInventoryGoods> list = cashierInventoryService.checkList(model);
return new Result(ResultEnum.SUCCESS, list);
} catch (Exception e) {
return new Result(ResultEnum.FAIL, false);
}
}
@RequestMapping(value = "/sum", method = RequestMethod.POST)
@ResponseBody
public Result sum(CashierInventoryGoods model) {
try {
CashierInventoryGoods cig = cashierInventoryService.sum(model);
return new Result(ResultEnum.SUCCESS, cig);
} catch (Exception e) {