# FZ **Repository Path**: luck19920329/fz ## Basic Information - **Project Name**: FZ - **Description**: 服装管理系统hello - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-02-09 - **Last Updated**: 2024-07-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: saas, 线下, 服装 ## README # FZ连锁服装管理系统 ![image-20230208164540561](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230208164540561.png) ## saas化 规则: 1. 订单添加了店铺区分 2. sku添加了店铺区分,但是skuById 并不会,admin不区分,查所有 3. 管理员查询不添加店铺区分,新增 修改shop_id=1 4. 至于spu和用户相关操作 不对子店铺提供权限,所以无需提供区分 5. 定时任务不需要拦截修改的 拦截器的一些 思路, 判断是否管理员, 管理员所有字段都不做店铺id= , 直接查所有数据, 如果是分店店员 或分店负责人 ,那就增删查改都要做限制 增加拦截器里面非admin修改其他店铺数据 店铺id=登陆账号所在id SQL拦截器定时任务 的sql也会拦截 只是不会做修改 , 因为没加注解 启动的时候登录查username的时候也不替换 , ## 系统用户基本设置功能: 主要包括客户、分店负责人、营业员及管理员的不同权限设置功能、 lucky: 店铺表 所有的表关联店铺表 总店可以设置所有的权限 就是admin 已 lucky: 客户表 已 lucky: 员工管理则在系统用户管理中 ## 服装信息管理功能: 主要包括服装类别管理和服装编码、分类、材质、颜色、以及库存量等 已 基本信息的录入、修改、删除、查询及 已 报表生成等功能。未 ## 员工信息管理: 主要包括对店员基本信息的增加、修改、删除和查询以及 -> 做入管理员 已 报表生成功能,记录店员绩效与职责,薪资水平等。 ->做入管理员 已 ## 进销存管理功能: 主要包括供应商管理,记录各个分店库存状况统计总库存量,以及各 已 ![image-20230306153720468](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230306153720468.png) ### 订单 #### 新增订单 雪花id, 事务排他锁做并发安全 ,扣减sku库存(库存不足可以提示去申请跨店调配或者新增货源),重新去数据库查询价格计算总价,同步插入orderitem表 如果是会员可以折扣,.需要校验会员是否存在 同时会增加客户积分 #### 查询 查orderitem表 #### 删除取消订单 时回滚库存 还要删除订单商品数据 会回滚用户积分记录 有做删除订单还得删除与之相关的OrderItem数据和回滚sku库存且判断已完成,或已支付则不能删除订单 #### 修改订单 不允许 ### 库存相关逻辑 ---- 不涉及到仓库, 所以把库存做到了 sku,spu, 已 lucky: 后续所有修改库存的操作 ,都仅仅能够调用 sku.updateSku(Sku sku) ,且都需要查询加锁.定时任务也需要,selectSkuByIdForUpdate不允许调用skuMapper --------------------------------------重点 lucky : 做了店铺库存就是sku - sku总库存 -spu库存 - spu绑定brand lucky: 定时任务可以统计每个sku隶属于某个供应商总库存,spu总库存,总库存 这个是为了校准. 主要还是平时增删改sku的时候,做库存扣除 已 lucky: 业务做 sku店铺库存扣减 (销售表) 已 lucky: sku新增和扣减库存 . 库存直接设计到 sku, spu, brand. 扣减和新增都需要扣减几个地方事务操作 定时任务1小时统计一次spu数量 已, lucky: 主要包括供应商管理,记录各个分店库存状况统计总库存量,以及各 ## 分店间调配功能: 主要包括跨店查询,调货请求及确认,调货配送跟踪,各店库存更新等。 店员可以申请只能申请本店铺的并且数量<=# 库存预警可申请值 才可以申请, 但是只能由目标店的负责人才能批准,根据shop表查看负责人id 审批 按钮触发没反应 # 技术选型 springBoot + html+ css+ js+JQuery+ adminLTE2.0 + mysql+ shiro+thymeleaf+lombok+pageHelper+bootstarp + easyExcel + aop + 富文本编辑器 ## 技术点备忘: 1. 页面到后端业务层拿数据 ```html 菜单状态: ``` 2. 富文本编辑器文档 技术要点-富文本编辑器 ![image-20230220112936772](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230220112936772.png) 3. 启用禁用插件 技术要点-启用禁用插件 ![image-20230220113004731](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230220113004731.png) 4. 批量上传图片 技术要点-批量上传图片 ![image-20230220113033168](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230220113033168.png) 5. bootstrap https://v3.bootcss.com/ 6. adminLTE2.0 http://adminlte.la998.com/documentation/index.html 7. shiro https://zhuanlan.zhihu.com/p/366251013 8. thymeleaf https://zhuanlan.zhihu.com/p/90642654 9. knif4j https://zhuanlan.zhihu.com/p/550914935 10. pageHelper https://zhuanlan.zhihu.com/p/453238791 11. 重点功能 - excel 12. 参数校验框架 validation https://blog.csdn.net/justry_deng/article/details/86571671 简化版: 加依赖 ```xml org.springframework.boot spring-boot-starter-validation ``` 实体类加如下注解 ![image-20230305200557513](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230305200557513.png) controller 方法参数加@Validated注解 ```java /** * 新增保存商品货品 */ @RequiresPermissions("sku:add") @PostMapping("/add") @ResponseBody public JsonResult addSave(@Validated Sku sku) { return new JsonResult(skuService.insertSku(sku)); } ``` 全局异常处理类 ```java /** * 全局异常处理类 捕获未通过校验的controller参数 */ @ExceptionHandler({BindException.class, UnexpectedTypeException.class}) @ResponseBody public JsonResult validatedBindException(BindException e) { String message = e.getAllErrors().get(0).getDefaultMessage(); ServiceException serviceException = new ServiceException(message); return new JsonResult(serviceException); } ``` 13. springBoot使用定时任务,完成对stock库存汇总 https://blog.csdn.net/qianlixiaomage/article/details/106599951 14. 做订单的时候发现页面不好画,所以引入了elementUI 参考文档: https://blog.csdn.net/a873744779/article/details/123115883 15. saas实现,使用了mybatis sql拦截器实现 增改查的时候, 去拦截sql 拼接shop_id字段 16. 导出excel,使用的是easyExcel # 项目部署启动 ### 1.百度富文本记得添加 如下jar包在项目中 ![image-20230216205010124](E:\360MoveData\Users\14015\Desktop\服装\概要设计.assets\image-20230216205010124.png) ### 2.注意target里面的classes字节码里面public/img/的图片要复制过去,从public可以手动复制到classes ,如果有新的上传图片,也会出现在target目录 ### 3.用户名密码 admin 123456 店长01 123456 店长02 123456 店长03 123456 店长04 123456 销售01 123456 销售02 123456