# peanut_manager **Repository Path**: yufanchan/peanut_manager ## Basic Information - **Project Name**: peanut_manager - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-06-17 - **Last Updated**: 2021-10-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 接口文档:http://localhost:9090/swagger-ui.html ## 开发环境 ### windows 10 ### idea 2020.3.2 ### mysql 8.0.22 ## 相关说明 ### 1. 数据库 #### 1.1. 调整了数据表相关字段的类型,如 double -> decimal等 #### 1.2. 限制字段的长度,如 decimal(5,2)等 #### 1.3. 为满足业务逻辑需求,user_group表增加join_time字段,group表新增is_forbidden字段,form表新增state字段 #### 1.4. 健全表间关系,form表新增group_id字段 #### 1.5. 对用户密码的加密需要,user表新增salt字段 #### 1.6. 移除task表中的status字段 #### 1.7. 调整了leaflet表的字段相对顺序 #### 1.8. 取消外键约束关系,所有表间关系都在应用层控制与体现 #### 1.9. 为相关字段建立索引,提高查询效率,所有查询sql的性能基本能达到range级别及以上 ### 2. 持久层 #### 1.1. 弃用Spring Data Jpa,采用 MyBatis,改善了实体对象的级联泛滥 #### 1.2. 使用 PageHelper 插件,提供分页支持 ### 3. Shiro #### 3.1. 对用户密码加盐加密,更加安全的保存存储 #### 3.2. 接口访问权限的限制更加明确与合理 ### 4. AOP #### 4.1. 对于DML操作的业务接口实现需加上 @Transactional 注解 #### 4.2. 自定义切面,对controller包下的api做增强处理: ##### 4.2.1. 对于大部分DML接口来说,需要先查询一下数据是否存在 ##### 4.2.2. 当请求参数没有pageNum或pageSize时,提供默认值 ##### 4.2.3. 当请求参数没有userId或userId为-1时,则userId为当前登录用户的 ##### 4.2.4. 当返回数据中数据量为0或者列表为[ ],则修改msg参数 ### 5. Swagger #### 5.1. swagger ui 页面提供全局token设置 #### 5.2. 配置全局 Reponse Code #### 5.3. 对每一个接口都提供文字说明与请求参数说明 ### 6. 其他说明 #### 6.1. 采用状态模式对表单状态的行为切换进行设计,分别为NotReadState未阅状态,ReadState已阅状态,RedoState重做状态和SaveState保存状态 #### 6.2. 在 application.yml 中,分页的默认值与token的有效时间可以自行设置 #### 6.3. 项目部署前需要禁用swagger与关闭sql语句打印 #### 6.4. 项目中的 springfox.documentation.builders 不要修改,主要起到jar包覆盖作用,修改了swagger源代码中对Date类型的example