• 基于SSM的水果商城


    博主主页猫头鹰源码

    博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

    主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

    文末联系获取

    项目介绍: 

    该系统基于SSM整合,数据层为MyBatis,mysql数据库,具有完整的业务逻辑,适合选题:商城、水果商城、网上购物、网购、在线购物等。

    项目功能:

    用户:登陆注册、商品详情、分类查看、筛选商品、加入购物车、收藏、我的订单等
    管理员:登陆、用户管理、分类管理、商品管理、订单维护、公告管理、留言管理
    具备完整的商城业务逻辑。

    系统包含技术:

    后端:springboot、mybatis
    前端:layui,js,css等,html页面
    开发工具:idea
    数据库:mysql 5.7
    JDK版本:jdk1.8

    部分截图说明:

    下面是首页

    水果商品详情

    购物车

    我的订单查看

     我的收藏

    个人中心

    留言信息

    后台的登录

    后台首页

    后台商品维护

    后台用户管理

    部分代码:

    商品修改操作

    1. /**
    2. * 分页查询商品列表
    3. */
    4. @RequestMapping("/findBySql")
    5. public String findBySql(Model model, Item item){
    6. String sql = "select * from item where isDelete = 0 ";
    7. if(!isEmpty(item.getName())){
    8. sql += " and name like '%" + item.getName() + "%' ";
    9. }
    10. sql += " order by id desc";
    11. Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);
    12. model.addAttribute("pagers",pagers);
    13. model.addAttribute("obj",item);
    14. return "item/item";
    15. }
    16. /**
    17. * 添加商品入口
    18. */
    19. @RequestMapping("/add")
    20. public String add(Model model){
    21. String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";
    22. List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);
    23. model.addAttribute("types",listBySqlReturnEntity);
    24. return "item/add";
    25. }
    26. /**
    27. * 执行添加商品
    28. */
    29. @RequestMapping("/exAdd")
    30. public String exAdd(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {
    31. itemCommon(item, files, request);
    32. item.setGmNum(0);
    33. item.setIsDelete(0);
    34. item.setScNum(0);
    35. itemService.insert(item);
    36. return "redirect:/item/findBySql.action";
    37. }
    38. /**
    39. * 修改商品入口
    40. */
    41. @RequestMapping("/update")
    42. public String update(Integer id,Model model){
    43. Item obj = itemService.load(id);
    44. String sql = "select * from item_category where isDelete = 0 and pid is not null order by id";
    45. List<ItemCategory> listBySqlReturnEntity = itemCategoryService.listBySqlReturnEntity(sql);
    46. model.addAttribute("types",listBySqlReturnEntity);
    47. model.addAttribute("obj",obj);
    48. return "item/update";
    49. }
    50. /**
    51. * 执行修改商品
    52. */
    53. @RequestMapping("/exUpdate")
    54. public String exUpdate(Item item, @RequestParam("file")CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {
    55. itemCommon(item, files, request);
    56. itemService.updateById(item);
    57. return "redirect:/item/findBySql.action";
    58. }
    59. /**
    60. * 新增和更新的公共方法
    61. */
    62. private void itemCommon(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {
    63. if(files.length>0) {
    64. for (int s = 0; s < files.length; s++) {
    65. String n = UUIDUtils.create();
    66. String path = SystemContext.getRealPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename();
    67. File newFile = new File(path);
    68. //通过CommonsMultipartFile的方法直接写文件
    69. files[s].transferTo(newFile);
    70. if (s == 0) {
    71. item.setUrl1(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
    72. }
    73. if (s == 1) {
    74. item.setUrl2(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
    75. }
    76. if (s == 2) {
    77. item.setUrl3(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
    78. }
    79. if (s == 3) {
    80. item.setUrl4(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
    81. }
    82. if (s == 4) {
    83. item.setUrl5(request.getContextPath()+"\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());
    84. }
    85. }
    86. }
    87. ItemCategory byId = itemCategoryService.getById(item.getCategoryIdTwo());
    88. item.setCategoryIdOne(byId.getPid());
    89. }
    90. /**
    91. * 商品下架
    92. */
    93. @RequestMapping("/delete")
    94. public String update(Integer id){
    95. Item obj = itemService.load(id);
    96. obj.setIsDelete(1);
    97. itemService.updateById(obj);
    98. return "redirect:/item/findBySql.action";
    99. }
    100. /**
    101. * 按关键字或者二级分类查询
    102. */
    103. @RequestMapping("/shoplist")
    104. public String shoplist(Item item,String condition,Model model){
    105. String sql = "select * from item where isDelete=0";
    106. if(!isEmpty(item.getCategoryIdTwo())){
    107. sql +=" and category_id_two = " +item.getCategoryIdTwo();
    108. }
    109. if(!isEmpty(condition)){
    110. sql += " and name like '%" + condition +"%' ";
    111. model.addAttribute("condition",condition);
    112. }
    113. if(!isEmpty(item.getPrice())){
    114. sql += " order by (price+0) desc";
    115. }
    116. if(!isEmpty(item.getGmNum())){
    117. sql += " order by gmNum desc";
    118. }
    119. if(isEmpty(item.getPrice())&&isEmpty(item.getGmNum())){
    120. sql += " order by id desc";
    121. }
    122. Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);
    123. model.addAttribute("pagers",pagers);
    124. model.addAttribute("obj",item);
    125. return "item/shoplist";
    126. }

    前端首页

    1. /**
    2. * 前端首页
    3. */
    4. @RequestMapping("/uIndex")
    5. public String uIndex(Model model, Item item,HttpServletRequest request){
    6. String sql1 = "select * from item_category where isDelete=0 and pid is null order by name";
    7. List<ItemCategory> fatherList = itemCategoryService.listBySqlReturnEntity(sql1);
    8. List<CategoryDto> list = new ArrayList<>();
    9. if(!CollectionUtils.isEmpty(fatherList)){
    10. for(ItemCategory ic:fatherList){
    11. CategoryDto dto = new CategoryDto();
    12. dto.setFather(ic);
    13. //查询二级类目
    14. String sql2 = "select * from item_category where isDelete=0 and pid="+ic.getId();
    15. List<ItemCategory> childrens = itemCategoryService.listBySqlReturnEntity(sql2);
    16. dto.setChildrens(childrens);
    17. list.add(dto);
    18. model.addAttribute("lbs",list);
    19. }
    20. }
    21. //折扣商品
    22. List<Item> zks = itemService.listBySqlReturnEntity("select * from item where isDelete=0 and zk is not null order by zk desc limit 0,10");
    23. model.addAttribute("zks",zks);
    24. //热销商品
    25. List<Item> rxs = itemService.listBySqlReturnEntity("select * from item where isDelete=0 order by gmNum desc limit 0,10");
    26. model.addAttribute("rxs",rxs);
    27. return "login/uIndex";
    28. }

    以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

    好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~

  • 相关阅读:
    【Swift 60秒】43 - Variadic functions
    OpenHarmony源码分析(二):系统安全
    记Windows服务器Redis 6379被攻击 被设置主从模式同步项目数据
    C# 异步执行操作
    外汇天眼周回顾:Equiti开设最新办事处,Vantage推出Vantage Connect服务
    FinalReference 如何使 GC 过程变得拖拖拉拉
    【开源】基于Vue.js的计算机机房作业管理系统的设计和实现
    01、Docker入门
    java毕业生设计员工婚恋交友平台计算机源码+系统+mysql+调试部署+lw
    【记录】Win11 安装 mxnet(在PyCharm解释器中安装mxnet 失败,故尝试在终端安装 mxnet)|| 后来,卸载了 mxnet(究竟是为什么??)
  • 原文地址:https://blog.csdn.net/mtyedu/article/details/126803645