热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java项目:校园超市管理系统(java+SSM+Mysql+Maven+Bootstrap)

Java项目:校园超市管理系统(java+SSM+Mysql+Maven+Bootstrap)-前端模板框架为Bootstrap,系统分为前台和后台。后台主要为管理员角色,功能有:

前端模板框架为Bootstrap,系统分为前台和后台。后台主要为管理员角色,功能有:
商品类型管理、商品管理、订单管理、会员管理、管理员管理等。前台用户功能有:登录、注册、查看商品、加入购物车、付款、查看订单、个人中心等。该系统总共9张表

运行环境:windows/linux、jdk1.8、mysql5.x、maven3.5\3.6、tomcat7.0 

 

 

 

 

 

 

前端商品控制器:

/**
 * 

* 前端控制器 *

*/ @RestController @RequestMapping("/goods") public class GoodsController { @Autowired private GoodsService goodsService; @Autowired private ProviderService providerService; @Autowired private CategoryService categoryService; /** * 商品模糊查询 * * @param * @return */ @SysLog("商品查询操作") @RequestMapping("/goodsList") public DataGridViewResult goodsList(GoodsVO goodsVO) { //创建分页信息 参数1 当前页 参数2 每页显示条数 IPage page = new Page<>(goodsVO.getPage(), goodsVO.getLimit()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(goodsVO.getProviderid() != null && goodsVO.getProviderid() != 0, "providerid", goodsVO.getProviderid()); queryWrapper.like(!StringUtils.isEmpty(goodsVO.getGname()), "gname", goodsVO.getGname()); IPage goodsIPage = goodsService.page(page, queryWrapper); List records = goodsIPage.getRecords(); for (Goods goods : records) { Provider provider = providerService.getById(goods.getProviderid()); if (null != provider) { goods.setProvidername(provider.getProvidername()); } } return new DataGridViewResult(goodsIPage.getTotal(), records); } /** * 添加商品信息 * * @param goods * @return */ @SysLog("商品添加操作") @PostMapping("/addgoods") public Result addGoods(Goods goods) { String id = RandomStringUtils.randomAlphanumeric(8); if (goods.getGoodsimg()!=null&&goods.getGoodsimg().endsWith("_temp")){ String newName = AppFileUtils.renameFile(goods.getGoodsimg()); goods.setGoodsimg(newName); } goods.setGnumbering(id); boolean bool = goodsService.save(goods); if (bool) { return Result.success(true, "200", "添加成功!"); } return Result.error(false, null, "添加失败!"); } /** * 修改商品信息 * * @param goods * @return */ @SysLog("商品修改操作") @PostMapping("/updategoods") public Result updateGoods(Goods goods) { //商品图片不是默认图片 if (!(goods.getGoodsimg()!=null&&goods.getGoodsimg().equals(Constast.DEFAULT_IMG))){ if (goods.getGoodsimg().endsWith("_temp")){ String newName = AppFileUtils.renameFile(goods.getGoodsimg()); goods.setGoodsimg(newName); //删除原先的图片 String oldPath = goodsService.getById(goods.getGid()).getGoodsimg(); AppFileUtils.removeFileByPath(oldPath); } } boolean bool = goodsService.updateById(goods); if (bool) { return Result.success(true, "200", "修改成功!"); } return Result.error(false, null, "修改失败!"); } /** * 删除单条数据 * * @param id * @return */ @SysLog("商品删除操作") @RequestMapping("/deleteOne") public Result deleteOne(int id) { boolean bool = goodsService.removeById(id); if (bool) { return Result.success(true, "200", "删除成功!"); } return Result.error(false, null, "删除失败!"); } /** * 根据id查询当前商品拥有的类别 * * @param id * @return */ @RequestMapping("/initGoodsByCategoryId") public DataGridViewResult initGoodsByCategoryId(int id) { List> mapList = null; try { //查询所有类别列表 mapList = categoryService.listMaps(); //根据商品id查询商品拥有的类别 Set cateIdList = categoryService.findGoodsByCategoryId(id); for (Map map : mapList) { //定义标记 默认不选中 boolean flag = false; int cateId = (int) map.get("cateid"); for (Integer cid : cateIdList) { if (cid == cateId) { flag = true; break; } } map.put("LAY_CHECKED", flag); } } catch (Exception e) { e.printStackTrace(); } return new DataGridViewResult(Long.valueOf(mapList.size()), mapList); } /** * 根据商品id加载商品信息 * @param goodsid * @return */ @GetMapping("/loadGoodsById") public DataGridViewResult loadGoodsById(int goodsid) { QueryWrapper goodsQueryWrapper = new QueryWrapper<>(); goodsQueryWrapper.eq(goodsid != 0, "gid", goodsid); Goods goods = goodsService.getById(goodsid); return new DataGridViewResult(goods); } /** * 为商品分配类别 * * @param categoryids * @param goodsid * @return */ @SysLog("类别添加操作") @RequestMapping("/saveGoodsCategory") public Result saveGoodsCategory(String categoryids, int goodsid) { try { if (goodsService.saveGoodsCategory(goodsid, categoryids)) { return Result.success(true, null, "分配成功"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "分配失败"); } /** * 加载下拉框 * * @return */ @RequestMapping("/loadAllGoods") public DataGridViewResult loadAllGoods() { QueryWrapper queryWrapper = new QueryWrapper<>(); List list = goodsService.list(queryWrapper); return new DataGridViewResult(list); } /** * 根据供应商查商品下拉框 * * @param providerid * @return */ @RequestMapping("/loadGoodsByProvidreId") public DataGridViewResult loadGoodsByProvidreId(Integer providerid) { QueryWrapper goodsQueryWrapper = new QueryWrapper<>(); goodsQueryWrapper.eq(providerid != null, "providerid", providerid); List list = goodsService.list(goodsQueryWrapper); for (Goods goods : list) { Provider provider = providerService.getById(goods.getProviderid()); if (null != provider) { goods.setProvidername(provider.getProvidername()); } } return new DataGridViewResult(list); } }

前端销售控制器: 

/**
 * 

* 前端控制器 *

*/ @RestController @RequestMapping("/sale") public class SaleController { @Autowired private SaleService saleService; @Autowired private GoodsService goodsService; @Autowired private CustomerService customerService; /** * 销售查询 * * @param * @return */ @SysLog("销售查询操作") @RequestMapping("/saleList") public DataGridViewResult saleList(SaleVO saleVO) { //创建分页信息 参数1 当前页 参数2 每页显示条数 IPage page = new Page<>(saleVO.getPage(), saleVO.getLimit()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(!StringUtils.isEmpty(saleVO.getNumbering()),"numbering", saleVO.getNumbering()); queryWrapper.eq(saleVO.getGid() != null && saleVO.getGid() != 0, "gid", saleVO.getGid()); queryWrapper.ge(saleVO.getStartTime() != null, "buytime", saleVO.getStartTime()); queryWrapper.le(saleVO.getEndTime() != null, "buytime", saleVO.getEndTime()); queryWrapper.orderByDesc("buytime"); IPage saleIPage = saleService.page(page, queryWrapper); List records = saleIPage.getRecords(); for (Sale sale : records) { sale.setAllmoney(sale.getMoney()*sale.getBuyquantity()); Customer customer = customerService.getById(sale.getCustid()); if (null != customer) { sale.setCustomervip(customer.getCustvip()); sale.setCustomername(customer.getCustname()); } Goods goods = goodsService.getById(sale.getGid()); if (null != goods) { sale.setGoodsname(goods.getGname()); sale.setGnumbering(goods.getGnumbering()); } } return new DataGridViewResult(saleIPage.getTotal(), records); } /** * 添加销售单信息 * * @param sale * @return */ @SysLog("销售添加操作") @PostMapping("/addsale") public Result addsale(Sale sale, HttpSession session) { if (sale.getGid()==0){ return Result.error(false, null, "添加失败!未选商品"); } Goods goods = goodsService.getById(sale.getGid()); Integer gquantity = goods.getGquantity(); if(gquantity

前端用户控制器:

/**
 * 

* 前端控制器 *

* */ @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @Autowired private RoleService roleService; /** * 登录 * * @param username 用户名 * @param password 密码 * @param request * @return */ @SysLog("登陆操作") @PostMapping("/login") public Result login(String username, String password, HttpServletRequest request) { try { //获取当前登录主体对象 Subject subject = SecurityUtils.getSubject(); UsernamePasswordToken token = new UsernamePasswordToken(username, password); subject.login(token); LoginUserVO userDTO = (LoginUserVO) subject.getPrincipal(); request.getSession().setAttribute("username", userDTO.getUser()); return Result.success(true, "200", "登录成功"); } catch (UnknownAccountException e) { e.printStackTrace(); return Result.error(false, "400", "登录失败,用户名不存在"); }catch (IncorrectCredentialsException e) { e.printStackTrace(); return Result.error(false, "400", "登录失败,密码错误"); }catch (AuthenticationException e) { e.printStackTrace(); return Result.error(false, "400", "登录失败,账户禁用"); } } /** * 得到登陆验证码 * @param response * @param session * @throws IOException */ @RequestMapping("/getCode") public void getCode(HttpServletResponse response, HttpSession session) throws IOException { //定义图形验证码的长和宽 LineCaptcha lineCaptcha = CaptchaUtil.createLineCaptcha(116, 36,4,5); session.setAttribute("code",lineCaptcha.getCode()); try { ServletOutputStream outputStream = response.getOutputStream(); lineCaptcha.write(outputStream); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } /** * 查询所有用户信息 * * @param userVO * @return */ @SysLog("用户查询操作") @RequestMapping("/userList") public DataGridViewResult userList(UserVO userVO) { //分页构造函数 IPage page = new Page<>(userVO.getPage(), userVO.getLimit()); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.like(!StringUtils.isEmpty(userVO.getUsername()), "username", userVO.getUsername()); queryWrapper.like(!StringUtils.isEmpty(userVO.getUname()), "uname", userVO.getUname()); /** * 翻页查询 * @param page 翻页对象 * @param queryWrapper 实体对象封装操作类 */ IPage userIPage = userService.page(page, queryWrapper); return new DataGridViewResult(userIPage.getTotal(), userIPage.getRecords()); } /** * 添加用户信息 * * @param user * @return */ @SysLog("用户添加操作") @PostMapping("/adduser") public Result addRole(User user) { user.setUcreatetime(new Date()); String salt = UUIDUtil.randomUUID(); user.setPassword(PasswordUtil.md5("000000", salt, 2)); user.setSalt(salt); user.setType(1); boolean bool = userService.save(user); try { if (bool) { return Result.success(true, "200", "添加成功!"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "添加失败!"); } /** * 校验用户名是否存在 * * @param username * @return */ @RequestMapping("/checkUserName") public String checkUserName(String username) { Map map = new HashMap<>(); try { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("username", username); User user = userService.getOne(queryWrapper); if (user != null) { map.put("exist", true); map.put("message", "用户名已存在"); } else { map.put("exist", false); map.put("message", "用户名可以使用"); } } catch (Exception e) { e.printStackTrace(); } return JSON.toJSONString(map); } /** * 修改用户信息 * * @param user * @return */ @SysLog("用户修改操作") @PostMapping("/updateuser") public Result updateUser(User user) { boolean bool = userService.updateById(user); try { if (bool) { return Result.success(true, "200", "修改成功!"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "修改失败!"); } /** * 删除单条数据 * * @param id * @return */ @SysLog("用户删除操作") @RequestMapping("/deleteOne") public Result deleteOne(int id) { boolean bool = userService.removeById(id); try { if (bool) { return Result.success(true, "200", "删除成功!"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "删除失败!"); } /** * 重置密码 * * @param id * @return */ @SysLog("用户修改操作") @PostMapping("/resetPwd") public Result resetPwd(int id) { User user = new User(); String salt = UUIDUtil.randomUUID(); user.setUid(id); user.setPassword(PasswordUtil.md5("000000", salt, 2)); user.setSalt(salt); boolean bool = userService.updateById(user); try { if (bool) { return Result.success(true, "200", "重置成功!"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "重置失败!"); } /** * 根据id查询当前用户拥有的角色 * * @param id * @return */ @RequestMapping("/initRoleByUserId") public DataGridViewResult initRoleByUserId(int id) { List> mapList = null; try { //查询所有角色列表 mapList = roleService.listMaps(); //根据用户id查询用户拥有的角色 Set roleIdList = userService.findRoleByUserId(id); for (Map map : mapList) { //定义标记 默认不选中 boolean flag = false; int roleId = (int) map.get("roleid"); for (Integer rid : roleIdList) { if (rid == roleId) { flag = true; break; } } map.put("LAY_CHECKED", flag); } } catch (Exception e) { e.printStackTrace(); } return new DataGridViewResult(Long.valueOf(mapList.size()), mapList); } /** * 为用户分配角色 * * @param roleids * @param userid * @return */ @SysLog("用户添加操作") @RequestMapping("/saveUserRole") public Result saveUserRole(String roleids, int userid) { try { if (userService.saveUserRole(userid, roleids)) { return Result.success(true, null, "分配成功"); } } catch (Exception e) { e.printStackTrace(); } return Result.error(false, null, "分配失败"); } /** * 修改密码 * * @param newPassWord1 * @param newPassWord2 * @return */ @RequestMapping("/updateUserPassWord") public Result updateUserPassWord(String newPassWord1, String newPassWord2,HttpSession session) { User sessiOnUser= (User) session.getAttribute("username"); if (newPassWord1.equals(newPassWord2)){ User user = new User(); String salt = UUIDUtil.randomUUID(); user.setUid(sessionUser.getUid()); user.setPassword(PasswordUtil.md5(newPassWord1, salt, 2)); user.setSalt(salt); boolean bool = userService.updateById(user); if (bool){ return Result.success(true,null,"修改成功"); }else { return Result.error(false,null,"修改失败!"); } }else { return Result.error(false,null,"修改失败,两次密码不一致!"); } } }

推荐阅读
  • Iwanttointegratesort,order,maxandoffsetinafindAllquery.Thefollowingworksfine:我想在fin ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 带添加按钮的GridView,item的删除事件
    先上图片效果;gridView无数据时显示添加按钮,有数据时,第一格显示添加按钮,后面显示数据:布局文件:addr_manage.xml<?xmlve ... [详细]
  • SpringBoot简单日志配置
     在生产环境中,只打印error级别的错误,在测试环境中,可以调成debugapplication.properties文件##默认使用logbacklogging.level.r ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
  • Tkinter Frame容器grid布局并使用Scrollbar滚动原理
    本文介绍了如何使用Tkinter实现Frame容器的grid布局,并通过Scrollbar实现滚动效果。通过将Canvas作为父容器,使用滚动Canvas来滚动Frame,实现了在Frame中添加多个按钮,并通过Scrollbar进行滚动。同时,还介绍了更新Frame大小和绑定滚动按钮的方法,以及配置Scrollbar的相关参数。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了使用postman进行接口测试的方法,以测试用户管理模块为例。首先需要下载并安装postman,然后创建基本的请求并填写用户名密码进行登录测试。接下来可以进行用户查询和新增的测试。在新增时,可以进行异常测试,包括用户名超长和输入特殊字符的情况。通过测试发现后台没有对参数长度和特殊字符进行检查和过滤。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 【重识云原生】第四章云网络4.8.3.2节——Open vSwitch工作原理详解
    2OpenvSwitch架构2.1OVS整体架构ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-basedswitchin ... [详细]
author-avatar
爱的伤痕累2602882347_111
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有