screen-common/src/main/java/com/moral/constant/Constants.java
@@ -60,7 +60,7 @@ public static final String VERIFICATION_TYPE = "front_verificationCode"; /* * 登陆操作字典Key * 登陆操作类型 * */ public static final String LOGIN_OPERTATE_TYPE = "0"; @@ -81,4 +81,6 @@ } screen-common/src/main/java/com/moral/constant/RedisConstants.java
New file @@ -0,0 +1,25 @@ package com.moral.constant; import lombok.Data; /** * @ClassName RedisConstants * @Description Redis中Key常量 * @Author 陈凯裕 * @Date 2021/4/14 10:08 * @Version TODO **/ @Data public class RedisConstants { /* * 字典数据 redis中的key * 使用Map<String,List<sysDictData>>接收,key为字典类型名称,Value为对应的数据集合 * */ public static final String DICT_DATA_KEY = "dict_data"; /* * 字典类型 redis中的key * 使用List<sysDictType>接收 * */ public static final String DICT_TYPE_KEY = "dict_type"; } screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -36,7 +36,11 @@ ROLE_IS_NULL(-22, "密码无效"), MENU_IS_EXPIRE(-23, "用户已过期"), MENU_IS_NULL(-24, "组已存在"), PARAMETERS_NOT_REQUIREMENT(-25, "参数不符合要求") PARAMETERS_NOT_REQUIREMENT(-25, "参数不符合要求"), DICTTYPE_NOT_EXIST(-26,"字典类型不存在"), DICTTYPE_EXIST(-27,"字典类型已经存在"), DICTDATA_KEY_EXIST(-28,"字典数据Key已经存在"), DICTDATA_KEY_NOT_EXIST(-29,"字典数据Key不存在") ; private final Integer code; private final String msg; screen-manage/src/main/java/com/moral/api/config/mybatis/wrapper/NullFilterWrapper.java
@@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.enums.SqlKeyword; import com.baomidou.mybatisplus.core.enums.SqlLike; import org.springframework.util.ObjectUtils; import java.util.Collection; /** * @ClassName FiltNullWrapper @@ -33,4 +36,11 @@ condition = false; return super.eq(condition, column, val); } @Override public QueryWrapper<T> in(boolean condition, String column, Collection<?> coll) { if(ObjectUtils.isEmpty(coll)) condition = false; return super.in(condition, column, coll); } } screen-manage/src/main/java/com/moral/api/controller/AccountController.java
@@ -39,7 +39,7 @@ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //判断参数是否有效 AccountInsertDTO conditionDTO = form.paramValid(); AccountDTO conditionDTO = form.paramValid(); if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) { return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null); } @@ -61,7 +61,7 @@ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //判断参数是否有效 AccountUpdateDTO conditionDTO = form.paramValid(); AccountDTO conditionDTO = form.paramValid(); if (conditionDTO.getCode() != ResponseCodeEnum.SUCCESS.getCode()) { return new ResultMessage(conditionDTO.getCode(), conditionDTO.getMsg(), null); } screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java
@@ -2,14 +2,9 @@ import com.moral.api.pojo.dto.organization.OrganizationDTO; import com.moral.api.pojo.dto.organization.OrganizationQueryDTO; import com.moral.api.pojo.form.organization.OrganizationDeleteForm; import com.moral.api.pojo.form.organization.OrganizationInsertForm; import com.moral.api.pojo.form.organization.OrganizationQueryForm; import com.moral.api.pojo.form.organization.OrganizationUpdateForm; import com.moral.api.pojo.vo.organization.OrganizationDeleteVO; import com.moral.api.pojo.vo.organization.OrganizationInsertVO; import com.moral.api.pojo.vo.organization.OrganizationQueryVO; import com.moral.api.pojo.vo.organization.OrganizationUpdateVO; import com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO; import com.moral.api.pojo.form.organization.*; import com.moral.api.pojo.vo.organization.*; import com.moral.api.service.OrganizationService; import com.moral.api.util.LogUtils; import com.moral.constant.Constants; @@ -116,5 +111,16 @@ return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @GetMapping("queryNames") public ResultMessage queryNames(OrganizationQueryNameForm form){ //处理查询业务 OrganizationQueryNameDTO dto = organizationService.queryOrganizationNames(form); //转换前端所需参数 OrganizationQueryNamesVO vo = OrganizationQueryNamesVO.convert(dto); return new ResultMessage(dto.getCode(),dto.getMsg(),vo); } } screen-manage/src/main/java/com/moral/api/controller/SysDictController.java
New file @@ -0,0 +1,172 @@ package com.moral.api.controller; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO; import com.moral.api.pojo.form.sysDictData.SysDictDataDeleteForm; import com.moral.api.pojo.form.sysDictData.SysDictDataInsertForm; import com.moral.api.pojo.form.sysDictData.SysDictDataUpdateForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeDeleteForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeInsertForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeUpdateForm; import com.moral.api.pojo.vo.sysDictData.SysDictDataDeleteVO; import com.moral.api.pojo.vo.sysDictData.SysDictDataInsertVO; import com.moral.api.pojo.vo.sysDictData.SysDictDataUpdateVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeDeleteVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeInsertVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeQueryVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeUpdateVO; import com.moral.api.service.SysDictDataService; import com.moral.api.service.SysDictTypeService; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Map; /** * @ClassName SysDictController * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 14:09 * @Version TODO **/ @Slf4j @RestController @CrossOrigin(origins = "*", maxAge = 3600) @RequestMapping("/dict") public class SysDictController { @Autowired SysDictDataService sysDictDataService; @Autowired SysDictTypeService sysDictTypeService; /** * @Description: 根据dictType获取dictData * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/4/13 */ @GetMapping("data/query") public ResultMessage queryDictDataByTypeId(@RequestParam(value = "type") String typeName) { //处理查询业务 Map<String, Object> result = sysDictDataService.queryDataByTypeName(typeName); return new ResultMessage(ResponseCodeEnum.SUCCESS.getCode(), ResponseCodeEnum.SUCCESS.getMsg(), result); } @PostMapping("data/insert") public ResultMessage insertDictData(@RequestBody SysDictDataInsertForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理插入业务 SysDictDataDTO dto = sysDictDataService.insertData(form); //转换前端所需参数 SysDictDataInsertVO vo = SysDictDataInsertVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @PostMapping("data/update") public ResultMessage updateDictData(@RequestBody SysDictDataUpdateForm form){ //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理更新业务 SysDictDataDTO dto = sysDictDataService.updateData(form); //转换前端所需参数 SysDictDataUpdateVO vo = SysDictDataUpdateVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @PostMapping("data/delete") public ResultMessage deleteDictData(@RequestBody SysDictDataDeleteForm form){ //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理删除业务 SysDictDataDTO dto = sysDictDataService.deleteData(form); //转换前端所需参数 SysDictDataDeleteVO vo = SysDictDataDeleteVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @GetMapping("type/query") public ResultMessage queryAllDictTypeAndData() { //处理查询业务 SysDictTypeQueryDTO dto = sysDictTypeService.queryTypeAndDatas(); //转换前端所需参数 SysDictTypeQueryVO vo = SysDictTypeQueryVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @PostMapping("type/insert") public ResultMessage insertDictType(@RequestBody SysDictTypeInsertForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理插入业务 SysDictTypeDTO dto = sysDictTypeService.insertType(form); //转换前端所需参数 SysDictTypeInsertVO vo = SysDictTypeInsertVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @PostMapping("type/update") public ResultMessage updateDictType(@RequestBody SysDictTypeUpdateForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理更新业务 SysDictTypeDTO dto = sysDictTypeService.updateType(form); //转换前端所需参数 SysDictTypeUpdateVO vo = SysDictTypeUpdateVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } @PostMapping("type/delete") public ResultMessage deleteDictType(@RequestBody SysDictTypeDeleteForm form) { //判断是否缺少参数 if (!form.valid()) return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg()); //处理删除业务 SysDictTypeDTO dto = sysDictTypeService.deleteType(form); //转换前端所需参数 SysDictTypeDeleteVO vo = SysDictTypeDeleteVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } } screen-manage/src/main/java/com/moral/api/controller/SystemController.java
@@ -1,22 +1,37 @@ package com.moral.api.controller; import com.moral.api.entity.SysArea; import com.moral.api.pojo.dto.login.AccountInfoDTO; import com.moral.api.pojo.dto.system.ManageLogQueryDTO; import com.moral.api.pojo.form.system.ManageLogQueryForm; import com.moral.api.pojo.dto.manageLog.ManageLogQueryDTO; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO; import com.moral.api.pojo.form.sysDictData.SysDictDataDeleteForm; import com.moral.api.pojo.form.sysDictData.SysDictDataInsertForm; import com.moral.api.pojo.form.sysDictData.SysDictDataUpdateForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeDeleteForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeInsertForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeUpdateForm; import com.moral.api.pojo.form.manageLog.*; import com.moral.api.pojo.vo.sysDictData.SysDictDataDeleteVO; import com.moral.api.pojo.vo.sysDictData.SysDictDataInsertVO; import com.moral.api.pojo.vo.sysDictData.SysDictDataUpdateVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeDeleteVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeInsertVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeQueryVO; import com.moral.api.pojo.vo.sysDictType.SysDictTypeUpdateVO; import com.moral.api.pojo.vo.manageLog.*; import com.moral.api.service.ManageLogService; import com.moral.api.service.SysAreaService; import com.moral.api.service.SysDictDataService; import com.moral.api.service.SysDictTypeService; import com.moral.constant.ResponseCodeEnum; import com.moral.constant.ResultMessage; import com.moral.util.TokenUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import java.util.List; import java.util.Map; /** * @ClassName SystemController @@ -37,12 +52,27 @@ @Autowired ManageLogService manageLogService; /** * @Description: 查询地区接口 * @Param: [] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/4/13 */ @GetMapping("area/query") public ResultMessage queryArea() { List<SysArea> sysAreas = sysAreaService.querySysArea(); return ResultMessage.ok(sysAreas); } /** * @Description: 查询日志接口 * @Param: [form] * @return: com.moral.constant.ResultMessage * @Author: 陈凯裕 * @Date: 2021/4/13 */ @GetMapping("log/query") public ResultMessage queryLog(ManageLogQueryForm form) { @@ -53,8 +83,14 @@ //处理查询业务 ManageLogQueryDTO dto = manageLogService.queryManageLog(form); return null; //转换前端需要参数 ManageLogQueryVO vo = ManageLogQueryVO.convert(dto); return new ResultMessage(dto.getCode(), dto.getMsg(), vo); } } screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java
@@ -75,6 +75,12 @@ private String isDelete; /* * 描述 * */ @TableField(value = "`desc`") private String desc; /* * 二级菜单 * */ @TableField(exist = false) screen-manage/src/main/java/com/moral/api/entity/SysDictData.java
@@ -6,6 +6,8 @@ import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; import java.util.Date; import lombok.Data; import lombok.EqualsAndHashCode; @@ -15,7 +17,7 @@ * </p> * * @author moral * @since 2021-03-09 * @since 2021-04-13 */ @Data @EqualsAndHashCode(callSuper = false) @@ -28,11 +30,6 @@ */ @TableId(value = "id", type = IdType.AUTO) private Integer id; /** * 父Id */ private Integer parentId; /** * 数据类型Id @@ -52,19 +49,14 @@ private String dataValue; /** * 排列顺序 */ private Integer sort; /** * 创建时间 */ private LocalDateTime createTime; private Date createTime; /** * 更新时间 */ private LocalDateTime updateTime; private Date updateTime; /** * 是否删除 screen-manage/src/main/java/com/moral/api/entity/SysDictType.java
@@ -1,10 +1,13 @@ package com.moral.api.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.extension.activerecord.Model; import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; import lombok.Data; import lombok.EqualsAndHashCode; @@ -31,22 +34,29 @@ /** * 类型 */ @TableField("`name`") private String name; /** * 描述 */ @TableField("`desc`") private String desc; /* * 1:系统内置,无法更改 0:可以更改 * */ private Integer system; /** * 创建时间 */ private LocalDateTime createTime; private Date createTime; /** * 更新时间 */ private LocalDateTime updateTime; private Date updateTime; /** * 是否删除 screen-manage/src/main/java/com/moral/api/mapper/SysDictDataMapper.java
@@ -9,7 +9,7 @@ * </p> * * @author moral * @since 2021-03-09 * @since 2021-04-13 */ public interface SysDictDataMapper extends BaseMapper<SysDictData> { screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java
File was deleted screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java
File was deleted screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java
File was deleted screen-manage/src/main/java/com/moral/api/pojo/dto/manageLog/ManageLogQueryDTO.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/dto/system/ManageLogQueryDTO.java @@ -1,4 +1,4 @@ package com.moral.api.pojo.dto.system; package com.moral.api.pojo.dto.manageLog; import com.moral.api.entity.ManageLog; import lombok.Data; screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
@@ -6,7 +6,7 @@ /** * @ClassName OrganizationQueryDTO * @Description TODO * @Description 分页查询。用于后台查询组织使用 * @Author 陈凯裕 * @Date 2021/3/25 16:10 * @Version TODO screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNameDTO.java
New file @@ -0,0 +1,23 @@ package com.moral.api.pojo.dto.organization; import com.moral.api.entity.Organization; import lombok.Data; import java.util.List; /** * @ClassName OrganizationQueryNameDTO * @Description 不做分页,查询所有组织名称和Id,用于添加组织时选择父组织使用 * @Author 陈凯裕 * @Date 2021/4/13 9:04 * @Version TODO **/ @Data public class OrganizationQueryNameDTO { private Integer code; private String msg; List<Organization> organizations; } screen-manage/src/main/java/com/moral/api/pojo/dto/sysDictData/SysDictDataDTO.java
New file @@ -0,0 +1,30 @@ package com.moral.api.pojo.dto.sysDictData; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import lombok.Data; /** * @ClassName SysDictDataDTO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 10:15 * @Version TODO **/ @Data public class SysDictDataDTO { private Integer code; private String msg; /* * 字典数据对应的type * */ private SysDictType sysDictType; /* * 字典数据 * */ private SysDictData sysDictData; } screen-manage/src/main/java/com/moral/api/pojo/dto/sysDictType/SysDictTypeDTO.java
New file @@ -0,0 +1,32 @@ package com.moral.api.pojo.dto.sysDictType; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import lombok.Data; import java.util.List; /** * @ClassName SysDictTypeDTO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 10:29 * @Version TODO **/ @Data public class SysDictTypeDTO { private Integer code; private String msg; /* * 字典类型 * */ private SysDictType sysDictType; /* * 字典类型对应的data * */ private List<SysDictData> sysDictDatas; } screen-manage/src/main/java/com/moral/api/pojo/dto/sysDictType/SysDictTypeQueryDTO.java
New file @@ -0,0 +1,23 @@ package com.moral.api.pojo.dto.sysDictType; import lombok.Data; import java.util.List; /** * @ClassName SysDictTypeDTO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 10:00 * @Version TODO **/ @Data public class SysDictTypeQueryDTO { Integer code; String msg; List<SysDictTypeDTO> sysDictTypeDTOS; } screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java
@@ -1,16 +1,14 @@ package com.moral.api.pojo.form.account; import com.moral.api.entity.ManageAccount; import com.moral.api.pojo.dto.account.AccountInsertDTO; import com.moral.api.pojo.dto.account.AccountDTO; import com.moral.constant.ResponseCodeEnum; import com.moral.util.AESUtils; import com.moral.util.MD5Utils; import com.moral.util.RegexUtils; import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.ObjectUtils; import java.io.Serializable; import java.util.List; /** @@ -53,8 +51,8 @@ return true; } public AccountInsertDTO paramValid(){ AccountInsertDTO dto = new AccountInsertDTO(); public AccountDTO paramValid(){ AccountDTO dto = new AccountDTO(); //判断用户名是否符合条件 if(!RegexUtils.checkAccount(account)){ dto.setCode(ResponseCodeEnum.ACCOUNT_INVALID.getCode()); screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java
@@ -1,8 +1,7 @@ package com.moral.api.pojo.form.account; import com.moral.api.entity.ManageAccount; import com.moral.api.pojo.dto.account.AccountInsertDTO; import com.moral.api.pojo.dto.account.AccountUpdateDTO; import com.moral.api.pojo.dto.account.AccountDTO; import com.moral.constant.ResponseCodeEnum; import com.moral.util.AESUtils; import com.moral.util.MD5Utils; @@ -51,8 +50,8 @@ return true; } public AccountUpdateDTO paramValid() { AccountUpdateDTO dto = new AccountUpdateDTO(); public AccountDTO paramValid() { AccountDTO dto = new AccountDTO(); //判断手机号是否符合条件 if (!ObjectUtils.isEmpty(mobile)) { if (!RegexUtils.checkMobile(mobile)) { screen-manage/src/main/java/com/moral/api/pojo/form/manageLog/ManageLogQueryForm.java
File was renamed from screen-manage/src/main/java/com/moral/api/pojo/form/system/ManageLogQueryForm.java @@ -1,10 +1,12 @@ package com.moral.api.pojo.form.system; package com.moral.api.pojo.form.manageLog; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import org.springframework.util.ObjectUtils; import java.util.Date; import java.util.List; /** * @ClassName ManageLogQueryForm @@ -13,18 +15,26 @@ * @Date 2021/4/12 9:33 * @Version TODO **/ @Data public class ManageLogQueryForm { private Integer page; private Integer size; private String id; private String account; private String type; private String userName; private List<String> type; private String ip; private String order; private String orderType; @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") private Date startTime; screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNameForm.java
New file @@ -0,0 +1,17 @@ package com.moral.api.pojo.form.organization; import lombok.Data; /** * @ClassName OrganizationQueryNameForm * @Description 模糊查询,查询所有的组织名称和Id * @Author 陈凯裕 * @Date 2021/4/13 9:39 * @Version TODO **/ @Data public class OrganizationQueryNameForm { private String name; } screen-manage/src/main/java/com/moral/api/pojo/form/sysDictData/SysDictDataDeleteForm.java
New file @@ -0,0 +1,23 @@ package com.moral.api.pojo.form.sysDictData; import lombok.Data; /** * @ClassName SysDictDataDeleteForm * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 14:00 * @Version TODO **/ @Data public class SysDictDataDeleteForm { private Integer id; public boolean valid() { if (id == null || id == 0) { return false; } return true; } } screen-manage/src/main/java/com/moral/api/pojo/form/sysDictData/SysDictDataInsertForm.java
New file @@ -0,0 +1,38 @@ package com.moral.api.pojo.form.sysDictData; import com.moral.api.entity.SysDictData; import lombok.Data; import org.springframework.util.ObjectUtils; /** * @ClassName SysDictDataInsertForm * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 10:10 * @Version TODO **/ @Data public class SysDictDataInsertForm { private Integer typeId; private String key; private String value; public boolean valid() { if (ObjectUtils.isEmpty(typeId) || ObjectUtils.isEmpty(key) || ObjectUtils.isEmpty(value)) return false; return true; } public SysDictData formConvertEntity() { SysDictData data = new SysDictData(); data.setDictTypeId(typeId); data.setDataKey(key); data.setDataValue(value); return data; } } screen-manage/src/main/java/com/moral/api/pojo/form/sysDictData/SysDictDataUpdateForm.java
New file @@ -0,0 +1,38 @@ package com.moral.api.pojo.form.sysDictData; import com.moral.api.entity.SysDictData; import lombok.Data; import org.springframework.util.ObjectUtils; /** * @ClassName SysDictDataUpdateForm * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 11:39 * @Version TODO **/ @Data public class SysDictDataUpdateForm { private Integer id; private String key; private String value; public boolean valid() { if (ObjectUtils.isEmpty(id) || ObjectUtils.isEmpty(key) || ObjectUtils.isEmpty(value)) return false; return true; } public SysDictData formConvertEntity(){ SysDictData data = new SysDictData(); data.setId(id); data.setDataKey(key); data.setDataValue(value); return data; } } screen-manage/src/main/java/com/moral/api/pojo/form/sysDictType/SysDictTypeDeleteForm.java
New file @@ -0,0 +1,23 @@ package com.moral.api.pojo.form.sysDictType; import lombok.Data; /** * @ClassName SysDictTypeDeleteForm * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 16:33 * @Version TODO **/ @Data public class SysDictTypeDeleteForm { private Integer id; public boolean valid() { if (id == null || id == 0) { return false; } return true; } } screen-manage/src/main/java/com/moral/api/pojo/form/sysDictType/SysDictTypeInsertForm.java
New file @@ -0,0 +1,37 @@ package com.moral.api.pojo.form.sysDictType; import com.moral.api.entity.SysDictType; import lombok.Data; import org.springframework.util.ObjectUtils; /** * @ClassName SysDictTypeInsertForm * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 14:21 * @Version TODO **/ @Data public class SysDictTypeInsertForm { private String name; private String desc; public boolean valid(){ if ( ObjectUtils.isEmpty(name) || ObjectUtils.isEmpty(desc) ) return false; return true; } public SysDictType formConvertEntity(){ SysDictType sysDictType = new SysDictType(); sysDictType.setName(name); sysDictType.setDesc(desc); return sysDictType; } } screen-manage/src/main/java/com/moral/api/pojo/form/sysDictType/SysDictTypeUpdateForm.java
New file @@ -0,0 +1,35 @@ package com.moral.api.pojo.form.sysDictType; import com.moral.api.entity.SysDictType; import lombok.Data; import org.springframework.util.ObjectUtils; /** * @ClassName SysDictTypeUpdateForm * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 15:43 * @Version TODO **/ @Data public class SysDictTypeUpdateForm { private Integer id; private String desc; public boolean valid(){ if(ObjectUtils.isEmpty(id)|| ObjectUtils.isEmpty(desc)) return false; return true; } public SysDictType formConvertEntity(){ SysDictType sysDictType = new SysDictType(); sysDictType.setId(id); sysDictType.setDesc(desc); return sysDictType; } } screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java
@@ -3,10 +3,8 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageAccount; import com.moral.api.pojo.dto.account.AccountDTO; import com.moral.api.pojo.dto.account.AccountDeleteDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; import org.springframework.util.ObjectUtils; /** * @ClassName AccountDeleteVO screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java
@@ -3,7 +3,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageRole; import com.moral.api.pojo.dto.account.AccountDTO; import com.moral.api.pojo.dto.account.AccountInsertDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; import org.springframework.util.ObjectUtils; screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java
@@ -3,8 +3,6 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageRole; import com.moral.api.pojo.dto.account.AccountDTO; import com.moral.api.pojo.dto.account.AccountInsertDTO; import com.moral.api.pojo.dto.account.AccountUpdateDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; import org.springframework.util.ObjectUtils; screen-manage/src/main/java/com/moral/api/pojo/vo/manageLog/ManageLogQueryVO.java
New file @@ -0,0 +1,88 @@ package com.moral.api.pojo.vo.manageLog; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.ManageLog; import com.moral.api.pojo.dto.manageLog.ManageLogQueryDTO; import com.moral.constant.ResponseCodeEnum; import com.moral.util.DateUtils; import lombok.Data; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; /** * @ClassName ManageLogQueryVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/12 16:30 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class ManageLogQueryVO { private long pages; private long total; private long current; private long size; private List<ManageLogVO> manageLogs; public static ManageLogQueryVO convert(ManageLogQueryDTO dto){ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; ManageLogQueryVO vo = new ManageLogQueryVO(); long current = dto.getCurrent(); long size = dto.getSize(); long page = dto.getPage(); long total = dto.getTotal(); List<ManageLogVO> managelogVOs = new ArrayList<>(); List<ManageLog> manageLogs = dto.getManageLogs(); if(!ObjectUtils.isEmpty(manageLogs)){ for (ManageLog manageLog : manageLogs) { ManageLogVO manageLogVO = convertToQueryPage(manageLog); managelogVOs.add(manageLogVO); } } vo.setCurrent(current); vo.setManageLogs(managelogVOs); vo.setPages(page); vo.setSize(size); vo.setTotal(total); return vo; } private static ManageLogVO convertToQueryPage(ManageLog manageLog){ ManageLogVO vo = new ManageLogVO(); String account = manageLog.getAccount(); String userName = manageLog.getUserName(); String type = manageLog.getType(); String ip = manageLog.getIp(); Date createTime = manageLog.getCreateTime(); String content = manageLog.getContent(); //处理时间以及content String[] contentArray = content.split(";"); List<String> contentList = Arrays.asList(contentArray); String createTimeStr = DateUtils.dateToDateString(createTime, "yyyy-MM-dd"); vo.setAccount(account); vo.setContent(contentList); vo.setCreateTime(createTimeStr); vo.setType(type); vo.setIp(ip); vo.setUserName(userName); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/manageLog/ManageLogVO.java
New file @@ -0,0 +1,49 @@ package com.moral.api.pojo.vo.manageLog; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import java.util.List; /** * @ClassName ManageLogVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/12 16:31 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class ManageLogVO { /* * 账号 * */ private String account; /* * 用户名 * */ private String userName; /* * 操作类型 * */ private String type; /* * 操作人员ip * */ private String ip; /* * 操作时间 * */ private String createTime; /* * 操作内容 * */ private List<String> content; } screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java
@@ -1,9 +1,11 @@ package com.moral.api.pojo.vo.organization; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.Organization; import com.moral.api.pojo.dto.organization.OrganizationDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; /** * @ClassName OrganizationDeleteVO @@ -12,6 +14,8 @@ * @Date 2021/3/25 13:46 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class OrganizationDeleteVO extends OrganizationVO { public static OrganizationDeleteVO convert(OrganizationDTO dto){ screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java
@@ -1,8 +1,10 @@ package com.moral.api.pojo.vo.organization; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.Organization; import com.moral.api.pojo.dto.organization.OrganizationDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; /** * @ClassName OrganizationInsertVO @@ -11,6 +13,8 @@ * @Date 2021/3/23 17:14 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class OrganizationInsertVO extends OrganizationVO { public static OrganizationInsertVO convert(OrganizationDTO dto){ screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryNamesVO.java
New file @@ -0,0 +1,53 @@ package com.moral.api.pojo.vo.organization; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.Organization; import com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; /** * @ClassName OrganizationQueryNamesVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/13 9:44 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class OrganizationQueryNamesVO { private List<OrganizationVO> organizationVOs; public static OrganizationQueryNamesVO convert(OrganizationQueryNameDTO dto){ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; OrganizationQueryNamesVO vo = new OrganizationQueryNamesVO(); List<OrganizationVO> vos = new ArrayList<>(); List<Organization> organizations = dto.getOrganizations(); if(!ObjectUtils.isEmpty(organizations)){ for (Organization organization : organizations) { OrganizationVO organizationVO = convertToQueryPage(organization); vos.add(organizationVO); } } vo.setOrganizationVOs(vos); return vo; } private static OrganizationVO convertToQueryPage(Organization organization){ OrganizationVO vo = new OrganizationVO(); vo.setId(organization.getId()); vo.setName(organization.getName()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java
@@ -84,6 +84,10 @@ vo.setAddress(organization.getAddress()); vo.setCreateTime(createTimeStr); vo.setExpireTime(exipreTimeStr); vo.setProvinceCode(organization.getProvinceCode()); vo.setCityCode(organization.getCityCode()); vo.setAreaCode(organization.getAreaCode()); vo.setProvinceCityAreaName(organization.getProvinceName()+"/"+organization.getCityName()+"/"+organization.getAreaName()); vo.setLocationLevelCode(organization.getLocationLevelCode()); vo.setLocationLevelName(organization.getLocationLevelName()); return vo; screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java
@@ -32,9 +32,7 @@ private Integer areaCode; private Long townCode; private Long villageCode; private String ProvinceCityAreaName; private Integer locationLevelCode; screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataDeleteVO.java
New file @@ -0,0 +1,27 @@ package com.moral.api.pojo.vo.sysDictData; import com.moral.api.entity.SysDictData; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.constant.ResponseCodeEnum; /** * @ClassName SysDictDataDeleteVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 13:46 * @Version TODO **/ public class SysDictDataDeleteVO extends SysDictDataVO{ public static SysDictDataDeleteVO convert(SysDictDataDTO dto){ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; SysDictDataDeleteVO vo = new SysDictDataDeleteVO(); SysDictData data = dto.getSysDictData(); vo.setId(data.getId()); vo.setKey(data.getDataKey()); vo.setValue(data.getDataValue()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataInsertVO.java
New file @@ -0,0 +1,30 @@ package com.moral.api.pojo.vo.sysDictData; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.constant.ResponseCodeEnum; /** * @ClassName SysDictDataInsertVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 10:31 * @Version TODO **/ public class SysDictDataInsertVO extends SysDictDataVO { public static SysDictDataInsertVO convert(SysDictDataDTO dto){ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; SysDictDataInsertVO vo = new SysDictDataInsertVO(); SysDictData data = dto.getSysDictData(); SysDictType type = dto.getSysDictType(); vo.setId(data.getId()); vo.setKey(data.getDataKey()); vo.setValue(data.getDataValue()); vo.setTypeId(type.getId()); vo.setTypeName(type.getName()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataUpdateVO.java
New file @@ -0,0 +1,26 @@ package com.moral.api.pojo.vo.sysDictData; import com.moral.api.entity.SysDictData; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.constant.ResponseCodeEnum; /** * @ClassName SysDictDataUpdateVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 11:48 * @Version TODO **/ public class SysDictDataUpdateVO extends SysDictDataVO{ public static SysDictDataUpdateVO convert(SysDictDataDTO dto){ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; SysDictDataUpdateVO vo = new SysDictDataUpdateVO(); SysDictData data = dto.getSysDictData(); vo.setId(data.getId()); vo.setKey(data.getDataKey()); vo.setValue(data.getDataValue()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataVO.java
New file @@ -0,0 +1,31 @@ package com.moral.api.pojo.vo.sysDictData; import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; /** * @ClassName SysDictDataVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 11:03 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class SysDictDataVO { private Integer id; private Integer typeId; private String typeName; private String key; private String value; private String createTime; private String updateTime; } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeDeleteVO.java
New file @@ -0,0 +1,27 @@ package com.moral.api.pojo.vo.sysDictType; import com.moral.api.entity.SysDictType; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.constant.ResponseCodeEnum; /** * @ClassName SysDictTypeDeleteVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/16 8:43 * @Version TODO **/ public class SysDictTypeDeleteVO extends SysDictTypeVO { public static SysDictTypeDeleteVO convert(SysDictTypeDTO dto) { if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; //封装返回对象 SysDictTypeDeleteVO vo = new SysDictTypeDeleteVO(); SysDictType type = dto.getSysDictType(); vo.setId(type.getId()); vo.setName(type.getName()); vo.setDesc(type.getDesc()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeInsertVO.java
New file @@ -0,0 +1,27 @@ package com.moral.api.pojo.vo.sysDictType; import com.moral.api.entity.SysDictType; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.constant.ResponseCodeEnum; /** * @ClassName SysDictTypeInsertVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 14:32 * @Version TODO **/ public class SysDictTypeInsertVO extends SysDictTypeVO { public static SysDictTypeInsertVO convert(SysDictTypeDTO dto){ if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; //创建返回对象 SysDictTypeInsertVO vo = new SysDictTypeInsertVO(); SysDictType sysDictType = dto.getSysDictType(); vo.setId(sysDictType.getId()); vo.setName(sysDictType.getName()); vo.setDesc(sysDictType.getDesc()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeQueryVO.java
New file @@ -0,0 +1,82 @@ package com.moral.api.pojo.vo.sysDictType; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO; import com.moral.api.pojo.vo.sysDictData.SysDictDataVO; import com.moral.constant.ResponseCodeEnum; import lombok.Data; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; /** * @ClassName SysDictTypeQueryVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 10:22 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class SysDictTypeQueryVO { List<SysDictTypeVO> sysDictTypes; public static SysDictTypeQueryVO convert(SysDictTypeQueryDTO dto){ //判断是否业务层是否成功 if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; //创建返回对象 SysDictTypeQueryVO queryVO = new SysDictTypeQueryVO(); //构建返回对象所需属性 List<SysDictTypeVO> typeVOS = new ArrayList<>(); //将DTO参数转化为VO参数 List<SysDictTypeDTO> sysDictTypeDTOs = dto.getSysDictTypeDTOS(); if(!ObjectUtils.isEmpty(sysDictTypeDTOs)){ for (SysDictTypeDTO sysDictTypeDTO : sysDictTypeDTOs) { SysDictTypeVO sysDictTypeVO = convertToQueryPage(sysDictTypeDTO); typeVOS.add(sysDictTypeVO); } } queryVO.setSysDictTypes(typeVOS); return queryVO; } /** * @Description: DTO转化为VO * @Param: [dto] * @return: com.moral.api.pojo.vo.manageLog.SysDictTypeVO * @Author: 陈凯裕 * @Date: 2021/4/15 */ private static SysDictTypeVO convertToQueryPage(SysDictTypeDTO dto){ //创建返回对象 SysDictTypeVO vo = new SysDictTypeVO(); //构建返回对象所需属性 List<SysDictDataVO> dataVOS = new ArrayList<>(); //获取DTO数据 List<SysDictData> sysDictDatas = dto.getSysDictDatas(); SysDictType sysDictType = dto.getSysDictType(); //参数转换 if(!ObjectUtils.isEmpty(sysDictDatas)){ for (SysDictData sysDictData : sysDictDatas) { SysDictDataVO dataVO = new SysDictDataVO(); dataVO.setId(sysDictData.getId()); dataVO.setKey(sysDictData.getDataKey()); dataVO.setValue(sysDictData.getDataValue()); dataVOS.add(dataVO); } } vo.setId(sysDictType.getId()); vo.setName(sysDictType.getName()); vo.setDesc(sysDictType.getDesc()); vo.setSystem(sysDictType.getSystem()); vo.setDataVOs(dataVOS); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeUpdateVO.java
New file @@ -0,0 +1,26 @@ package com.moral.api.pojo.vo.sysDictType; import com.moral.api.entity.SysDictType; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.constant.ResponseCodeEnum; /** * @ClassName SysDictTypeUpdateVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 15:52 * @Version TODO **/ public class SysDictTypeUpdateVO extends SysDictTypeVO { public static SysDictTypeUpdateVO convert(SysDictTypeDTO dto) { if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode()) return null; SysDictTypeUpdateVO vo = new SysDictTypeUpdateVO(); SysDictType sysDictType = dto.getSysDictType(); vo.setId(sysDictType.getId()); vo.setName(sysDictType.getName()); vo.setDesc(sysDictType.getDesc()); return vo; } } screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeVO.java
New file @@ -0,0 +1,33 @@ package com.moral.api.pojo.vo.sysDictType; import com.fasterxml.jackson.annotation.JsonInclude; import com.moral.api.pojo.vo.sysDictData.SysDictDataVO; import lombok.Data; import java.util.List; /** * @ClassName SysDictTypeVO * @Description TODO * @Author 陈凯裕 * @Date 2021/4/15 10:22 * @Version TODO **/ @Data @JsonInclude(JsonInclude.Include.NON_EMPTY) public class SysDictTypeVO { private Integer id; private String name; private String desc; private String createTime; private String updateTime; private Integer system; private List<SysDictDataVO> dataVOs; } screen-manage/src/main/java/com/moral/api/service/ManageLogService.java
@@ -2,8 +2,8 @@ import com.moral.api.entity.ManageLog; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.system.ManageLogQueryDTO; import com.moral.api.pojo.form.system.ManageLogQueryForm; import com.moral.api.pojo.dto.manageLog.ManageLogQueryDTO; import com.moral.api.pojo.form.manageLog.ManageLogQueryForm; /** * <p> screen-manage/src/main/java/com/moral/api/service/OrganizationService.java
@@ -4,10 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.organization.OrganizationDTO; import com.moral.api.pojo.dto.organization.OrganizationQueryDTO; import com.moral.api.pojo.form.organization.OrganizationDeleteForm; import com.moral.api.pojo.form.organization.OrganizationInsertForm; import com.moral.api.pojo.form.organization.OrganizationQueryForm; import com.moral.api.pojo.form.organization.OrganizationUpdateForm; import com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO; import com.moral.api.pojo.form.organization.*; /** * <p> @@ -46,7 +44,7 @@ OrganizationDTO deleteOrganization(OrganizationDeleteForm organizationDeleteForm); /** * @Description: 查询客户组织 * @Description: 查询客户组织分页 * @Param: [organizationQueryForm] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryDTO * @Author: 陈凯裕 @@ -55,4 +53,14 @@ OrganizationQueryDTO queryOrganization(OrganizationQueryForm organizationQueryForm); /** * @Description: 查询所有组织名称和Id,不分页 * @Param: [organizationQueryNameForm] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO * @Author: 陈凯裕 * @Date: 2021/4/13 */ OrganizationQueryNameDTO queryOrganizationNames(OrganizationQueryNameForm organizationQueryNameForm); } screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
@@ -2,6 +2,13 @@ import com.moral.api.entity.SysDictData; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.api.pojo.form.sysDictData.SysDictDataDeleteForm; import com.moral.api.pojo.form.sysDictData.SysDictDataInsertForm; import com.moral.api.pojo.form.sysDictData.SysDictDataUpdateForm; import java.util.List; import java.util.Map; /** * <p> @@ -9,8 +16,53 @@ * </p> * * @author moral * @since 2021-03-09 * @since 2021-04-13 */ public interface SysDictDataService extends IService<SysDictData> { /** * @Description: 删除字典数据 * @Param: [id] * @return: com.moral.api.pojo.dto.sysDictData.SysDictDataDTO * @Author: 陈凯裕 * @Date: 2021/4/16 */ SysDictDataDTO deleteData(SysDictDataDeleteForm form); /** * @Description: 根据字典数据 * @Param: [form] * @return: com.moral.api.entity.sysDictData * @Author: 陈凯裕 * @Date: 2021/4/16 */ SysDictDataDTO updateData(SysDictDataUpdateForm form); /** * @Description: 根据字典类型id插入字典类型数据 * @Param: [form] * @return: com.moral.api.pojo.dto.sysDictData.SysDictDataDTO * @Author: 陈凯裕 * @Date: 2021/4/16 */ SysDictDataDTO insertData(SysDictDataInsertForm form); /** * @Description: 通过类型名字获取字典数据 * @Param: [typeName] * @return: java.util.Map<java.lang.String , java.lang.Object> * @Author: 陈凯裕 * @Date: 2021/4/15 */ Map<String, Object> queryDataByTypeName(String typeName); /** * @Description: 获取所有字典数据 * @Param: [] * @return: java.util.Map<java.lang.String , java.util.List < com.moral.api.entity.sysDictData>> * @Author: 陈凯裕 * @Date: 2021/4/15 */ Map<String, List<SysDictData>> getAllDictData(); } screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java
@@ -2,6 +2,13 @@ import com.moral.api.entity.SysDictType; import com.baomidou.mybatisplus.extension.service.IService; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO; import com.moral.api.pojo.form.sysDictType.SysDictTypeDeleteForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeInsertForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeUpdateForm; import java.util.List; /** * <p> @@ -13,4 +20,60 @@ */ public interface SysDictTypeService extends IService<SysDictType> { /** * @Description: 删除字典类型 * @Param: [form] * @return: com.moral.api.entity.sysDictType * @Author: 陈凯裕 * @Date: 2021/4/15 */ SysDictTypeDTO deleteType(SysDictTypeDeleteForm form); /** * @Description: 更新字典类型 * @Param: [form] * @return: com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO * @Author: 陈凯裕 * @Date: 2021/4/15 */ SysDictTypeDTO updateType(SysDictTypeUpdateForm form); /** * @Description: 插入一个类型 * @Param: [form] * @return: com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO * @Author: 陈凯裕 * @Date: 2021/4/15 */ SysDictTypeDTO insertType(SysDictTypeInsertForm form); /** * @Description: 查询所有类型以及对应的数据 * @Param: [] * @return: com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO * @Author: 陈凯裕 * @Date: 2021/4/15 */ SysDictTypeQueryDTO queryTypeAndDatas(); /** * @Description: 查询所有类型,没有对应的数据 * @Param: [] * @return: java.util.List<com.moral.api.entity.sysDictType> * @Author: 陈凯裕 * @Date: 2021/4/15 */ List<SysDictType> getAllDictType(); /** * @Description: 根据Id获取类型 * @Param: [id] * @return: com.moral.api.entity.sysDictType * @Author: 陈凯裕 * @Date: 2021/4/16 */ SysDictType getDictTypeById(Integer id); } screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java
@@ -381,7 +381,7 @@ //更新ManageAccount表 Map manageAccountMap = JSONObject.parseObject(JSON.toJSONString(manageAccount),Map.class);//转换为Map判断属性是否有更新 if (manageAccountMap.size()>2) {//判断如果account表中没有相应字段更新则不更新 if (manageAccountMap.size()>1) {//判断如果account表中没有相应字段更新则不更新 manageAccountMapper.updateById(manageAccount); } //获取更新后的对象 screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java
@@ -1,12 +1,28 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.config.mybatis.wrapper.NullFilterWrapper; import com.moral.api.entity.ManageLog; import com.moral.api.entity.SysDictData; import com.moral.api.mapper.ManageLogMapper; import com.moral.api.pojo.dto.system.ManageLogQueryDTO; import com.moral.api.pojo.form.system.ManageLogQueryForm; import com.moral.api.mapper.SysDictDataMapper; import com.moral.api.mapper.SysDictTypeMapper; import com.moral.api.pojo.dto.manageLog.ManageLogQueryDTO; import com.moral.api.pojo.form.manageLog.ManageLogQueryForm; import com.moral.api.service.ManageLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.constant.Constants; import com.moral.constant.ResponseCodeEnum; import com.moral.util.ConvertUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.ObjectUtils; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; /** * <p> @@ -19,8 +35,71 @@ @Service public class ManageLogServiceImpl extends ServiceImpl<ManageLogMapper, ManageLog> implements ManageLogService { @Autowired ManageLogMapper manageLogMapper; @Autowired SysDictTypeMapper sysDictTypeMapper; @Autowired SysDictDataMapper sysDictDataMapper; @Override public ManageLogQueryDTO queryManageLog(ManageLogQueryForm form) { return null; ManageLogQueryDTO dto = new ManageLogQueryDTO(); Integer pageCount = form.getPage(); Integer size = form.getSize(); String order = form.getOrder(); String orderType = form.getOrderType(); String account = form.getAccount(); String userName = form.getUserName(); String ip = form.getIp(); List<String> types = form.getType(); Date startTime = form.getStartTime(); Date endTime = form.getEndTime(); //构造查询条件 Page<ManageLog> page = new Page<>(pageCount, size); NullFilterWrapper<ManageLog> queryWrapper = new NullFilterWrapper<>(); queryWrapper.like("account",account); queryWrapper.like("user_name",userName); queryWrapper.eq("ip",ip); queryWrapper.in("type",types); queryWrapper.between("create_time",startTime,endTime); if (!ObjectUtils.isEmpty(order)) {//排序条件 if (!ObjectUtils.isEmpty(orderType)) { if (orderType.equals(Constants.ORDER_ASC)) queryWrapper.orderByAsc(ConvertUtils.toLine(order)); else queryWrapper.orderByDesc(ConvertUtils.toLine(order)); } } //查询结果 Page<ManageLog> resultPage = manageLogMapper.selectPage(page, queryWrapper); List<ManageLog> manageLogs = resultPage.getRecords(); //根据字典表将Type转化为汉字 QueryWrapper<SysDictData> dataWrapper = new QueryWrapper<>(); dataWrapper.eq("dict_type_id",2); List<SysDictData> sysDictData = sysDictDataMapper.selectList(dataWrapper); Map<String,String> map = new HashMap<>(); for (SysDictData data : sysDictData) { map.put(data.getDataKey(),data.getDataValue()); } for (ManageLog manageLog : manageLogs) { String type = manageLog.getType(); String typeValue = map.get(type); manageLog.setType(typeValue); } dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); dto.setCurrent(page.getCurrent()); dto.setPage(page.getPages()); dto.setSize(page.getSize()); dto.setTotal(page.getTotal()); dto.setManageLogs(manageLogs); return dto; } } screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -10,10 +10,8 @@ import com.moral.api.mapper.OrganizationMapper; import com.moral.api.pojo.dto.organization.OrganizationDTO; import com.moral.api.pojo.dto.organization.OrganizationQueryDTO; import com.moral.api.pojo.form.organization.OrganizationDeleteForm; import com.moral.api.pojo.form.organization.OrganizationInsertForm; import com.moral.api.pojo.form.organization.OrganizationQueryForm; import com.moral.api.pojo.form.organization.OrganizationUpdateForm; import com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO; import com.moral.api.pojo.form.organization.*; import com.moral.api.service.OrganizationService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.util.LogUtils; @@ -32,6 +30,7 @@ import javax.servlet.http.HttpServletRequest; import java.util.*; import java.util.function.Predicate; /** * <p> @@ -64,6 +63,8 @@ * @Author: 陈凯裕 * @Date: 2021/3/22 */ @Override @Transactional public OrganizationDTO insertOrganization(OrganizationInsertForm organizationInsertForm) { @@ -187,6 +188,7 @@ OrganizationDTO dto = new OrganizationDTO(); //取参 Integer id = form.getOrganizationId(); //查询组织是否存在 Organization existOrganization = new Organization(); existOrganization.setIsDelete(Constants.NOT_DELETE); @@ -199,22 +201,40 @@ dto.setMsg(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg()); return dto; } //逻辑删除组织 UpdateWrapper deleteWrapper = new UpdateWrapper(); deleteWrapper.eq("id", id); deleteWrapper.set("is_delete", Constants.DELETE); organizationMapper.update(null, deleteWrapper); //判断是否删除所有子组织,如果不删除则将子组织parentId赋0 if (form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)) { UpdateWrapper deleteChildrenWrapper = new UpdateWrapper(); deleteChildrenWrapper.eq("parent_id", id); deleteChildrenWrapper.set("is_delete", Constants.DELETE); organizationMapper.update(null, deleteChildrenWrapper); } else { UpdateWrapper updateChildrenWrapper = new UpdateWrapper(); updateChildrenWrapper.eq("parent_id", id); updateChildrenWrapper.set("parent_id", 0); organizationMapper.update(null, updateChildrenWrapper); //判断是否含有子组织 List<Organization> children = getAllChildrenOrganization(existOrganization); if (!ObjectUtils.isEmpty(children)) {//如果含有子组织 //判断是否删除所有子组织,如果不删除则所有子组织全部变为无父组织,孙子组织不变 UpdateWrapper updateWrapper = new UpdateWrapper(); if (form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)) {//删除所有子组织 //获取所有子组织的id封装为集合 List<Integer> childrenId = new ArrayList<>(); children.forEach(value -> { childrenId.add(value.getId()); }); //进行删除 updateWrapper.in("id", childrenId); updateWrapper.set("is_delete", Constants.DELETE); organizationMapper.update(null, updateWrapper); } else {//不删除 //提取所有直属子组织id List<Integer> childrenId = new ArrayList<>(); children.forEach(value -> { if (value.getParentId().equals(id)) childrenId.add(value.getId()); }); //进行更新 updateWrapper.in("id", childrenId); updateWrapper.set("parent_id", 0); organizationMapper.update(null, updateWrapper); } } //封装返回结果 @@ -224,9 +244,11 @@ //操作插入日志 HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); StringBuilder content = new StringBuilder(); content.append("删除了组织:").append(existOrganization.getName()+";"); content.append("删除了组织:").append(existOrganization.getName()); if(form.getDeleteChildren().equals(Constants.DELETE_CHILDREN_ORG)) content.append("以及所有子组织;"); else content.append(";"); logUtils.saveOperationForManage(request, content.toString(),Constants.DELETE_OPERATE_TYPE); return dto; @@ -300,8 +322,6 @@ for (Organization child : organizations) { OrganizationDTO resultDto = new OrganizationDTO(); Organization parent = organizationMapper.selectById(child.getParentId());//查找父组织 //拼接地址字符串 changeAddressByOrganization(child); resultDto.setOrganization(child); resultDto.setParentOrganization(parent); organizationDTOS.add(resultDto); @@ -317,32 +337,32 @@ return dto; } /** * @Description: 将organization的address字段与provinceName cityName areaName进行拼接 * @Param: [organization] * @return: void * @Description: 查询所有组织的名称和Id,不做分页 * @Param: [organizationQueryNameForm] * @return: com.moral.api.pojo.dto.organization.OrganizationQueryNameDTO * @Author: 陈凯裕 * @Date: 2021/4/2 * @Date: 2021/4/13 */ private void changeAddressByOrganization(Organization organization) { String provinceName = organization.getProvinceName(); String cityName = organization.getCityName(); String areaName = organization.getAreaName(); String address = organization.getAddress(); @Override public OrganizationQueryNameDTO queryOrganizationNames(OrganizationQueryNameForm form) { OrganizationQueryNameDTO dto = new OrganizationQueryNameDTO(); //取参 String name = form.getName(); //构造查询条件 NullFilterWrapper<Organization> queryWrapper = new NullFilterWrapper(); queryWrapper.like("name", name); queryWrapper.eq("is_delete", Constants.NOT_DELETE); //查询 List<Organization> organizations = organizationMapper.selectList(queryWrapper); StringBuilder newAddress = new StringBuilder(); if (provinceName != null) newAddress.append(provinceName); if (cityName != null) newAddress.append(cityName); if (areaName != null) newAddress.append(areaName); if (address != null) newAddress.append(address); organization.setAddress(newAddress.toString()); //封装返回对象 dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); dto.setOrganizations(organizations); return dto; } /** * @Description: 将更新操作插入日志 @@ -400,5 +420,41 @@ logUtils.saveOperationForManage(request, content.toString(),Constants.UPDATE_OPERATE_TYPE); } /** * @Description: 根据父组织获取所有子组织 * @Param: [] * @return: java.util.List<com.moral.api.entity.Organization> * @Author: 陈凯裕 * @Date: 2021/4/14 */ private List<Organization> getAllChildrenOrganization(Organization parent) { List<Organization> children = new ArrayList<>(); recursionQueryChildren(parent, children); return children; } /** * @Description: 通过父组织查询下面所有的子组织放到children中 * @Param: [parent, children] * @return: void * @Author: 陈凯裕 * @Date: 2021/4/14 */ private void recursionQueryChildren(Organization parent, List<Organization> children) { Integer parentId = parent.getId(); QueryWrapper<Organization> queryWrapper = new QueryWrapper(); queryWrapper.eq("is_delete", Constants.NOT_DELETE); queryWrapper.eq("parent_id", parentId); List<Organization> organizations = organizationMapper.selectList(queryWrapper); if (!ObjectUtils.isEmpty(organizations)) { children.addAll(organizations); for (Organization organization : organizations) { recursionQueryChildren(organization, children); } } else { return; } } } screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
@@ -1,10 +1,30 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.moral.api.mapper.SysDictDataMapper; import com.moral.api.pojo.dto.sysDictData.SysDictDataDTO; import com.moral.api.pojo.form.sysDictData.SysDictDataDeleteForm; import com.moral.api.pojo.form.sysDictData.SysDictDataInsertForm; import com.moral.api.pojo.form.sysDictData.SysDictDataUpdateForm; import com.moral.api.service.SysDictDataService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.service.SysDictTypeService; import com.moral.api.util.CacheUtils; import com.moral.constant.Constants; import com.moral.constant.RedisConstants; import com.moral.constant.ResponseCodeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import java.util.HashMap; import java.util.List; import java.util.Map; /** * <p> @@ -12,9 +32,159 @@ * </p> * * @author moral * @since 2021-03-09 * @since 2021-04-13 */ @Service public class SysDictDataServiceImpl extends ServiceImpl<SysDictDataMapper, SysDictData> implements SysDictDataService { @Autowired SysDictTypeService sysDictTypeService; @Autowired SysDictDataMapper sysDictDataMapper; @Autowired RedisTemplate redisTemplate; @Override @Transactional public SysDictDataDTO deleteData(SysDictDataDeleteForm form) { //创建返回对象 SysDictDataDTO dto = new SysDictDataDTO(); //取参 Integer id = form.getId(); //判断是否存在 QueryWrapper existWrapper = new QueryWrapper(); existWrapper.eq("is_delete",Constants.NOT_DELETE); existWrapper.eq("id",id); SysDictData existData = sysDictDataMapper.selectOne(existWrapper); //执行删除 UpdateWrapper deleteWrapper = new UpdateWrapper(); deleteWrapper.set("is_delete",Constants.DELETE); deleteWrapper.eq("id",id); sysDictDataMapper.update(null,deleteWrapper); //删除缓存 CacheUtils.clearDictionariesCache(); //封装返回对象 dto.setSysDictData(existData); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } @Override public SysDictDataDTO updateData(SysDictDataUpdateForm form) { SysDictDataDTO dto = new SysDictDataDTO(); //取参 SysDictData sysDictData = form.formConvertEntity(); //查询数据是否存在 QueryWrapper<SysDictData> existWrapper = new QueryWrapper<>(); existWrapper.eq("is_delete", Constants.NOT_DELETE); existWrapper.eq("id", sysDictData.getId()); SysDictData existData = sysDictDataMapper.selectOne(existWrapper); //执行更新 sysDictDataMapper.updateById(sysDictData); //清除缓存 CacheUtils.clearDictionariesCache(); //封装返回结果 dto.setSysDictData(sysDictData); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } /** * @Description: 根据字典类型id插入字典类型数据 * @Param: [form] * @return: com.moral.api.pojo.dto.sysDictData.SysDictDataDTO * @Author: 陈凯裕 * @Date: 2021/4/16 */ @Override public SysDictDataDTO insertData(SysDictDataInsertForm form) { SysDictDataDTO dto = new SysDictDataDTO(); //取参 SysDictData sysDictData = form.formConvertEntity(); //判断类型是否存在 SysDictType type = sysDictTypeService.getDictTypeById(sysDictData.getDictTypeId()); if (ObjectUtils.isEmpty(type)) { dto.setCode(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getMsg()); return dto; } //判断Key是否重复 String key = sysDictData.getDataKey(); QueryWrapper<SysDictData> wrapper = new QueryWrapper<>(); wrapper.eq("is_delete", Constants.NOT_DELETE); wrapper.eq("dataKey", key); wrapper.eq("dict_type_id", type.getId()); SysDictData existKeyData = sysDictDataMapper.selectOne(wrapper); if (!ObjectUtils.isEmpty(existKeyData)) { dto.setCode(ResponseCodeEnum.DICTDATA_KEY_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.DICTDATA_KEY_EXIST.getMsg()); return dto; } //执行插入 sysDictDataMapper.insert(sysDictData); //清除缓存 CacheUtils.clearDictionariesCache(); //封装返回结果 dto.setSysDictData(sysDictData); dto.setSysDictType(type); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } /** * @Description: 根据类型名字查询对应字典的数据 * @Param: [typeName] * @return: java.util.Map<java.lang.String , java.lang.Object> * @Author: 陈凯裕 * @Date: 2021/4/16 */ @Override public Map<String, Object> queryDataByTypeName(String typeName) { Map<String, List<SysDictData>> datas = getAllDictData(); //获取字典数据 List<SysDictData> sysDictData = datas.get(typeName); //将字典数据进行封装 Map key:dataKey value:dataValue Map<String, Object> result = new HashMap<>(); for (SysDictData data : sysDictData) { result.put(data.getDataKey(), data.getDataValue()); } return result; } @Override public Map<String, List<SysDictData>> getAllDictData() { Map<String, List<SysDictData>> datas = new HashMap<>(); //从缓存中读取 datas = (Map<String, List<SysDictData>>) redisTemplate.opsForValue().get(RedisConstants.DICT_DATA_KEY); if (ObjectUtils.isEmpty(datas)) {//从数据库中读取 datas = getDictDataFromDB(); //插入缓存 redisTemplate.opsForValue().set(RedisConstants.DICT_DATA_KEY, datas); } return datas; } /** * @Description: 从数据库中根据字典类型读取字典数据,返回Map Key:类型名称 value:数据集合 * @Param: [] * @return: java.util.Map<java.lang.String , java.util.List < com.moral.api.entity.sysDictData>> * @Author: 陈凯裕 * @Date: 2021/4/14 */ private Map<String, List<SysDictData>> getDictDataFromDB() { Map<String, List<SysDictData>> result = new HashMap<>(); List<SysDictType> types = sysDictTypeService.getAllDictType(); for (SysDictType type : types) { QueryWrapper<SysDictData> wrapper = new QueryWrapper<>(); wrapper.eq("is_delete", Constants.NOT_DELETE); wrapper.eq("dict_type_id", type.getId()); List<SysDictData> datas = sysDictDataMapper.selectList(wrapper); result.put(type.getName(), datas); } return result; } } screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
@@ -1,10 +1,31 @@ package com.moral.api.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.moral.api.entity.SysDictData; import com.moral.api.entity.SysDictType; import com.moral.api.mapper.SysDictTypeMapper; import com.moral.api.pojo.dto.sysDictType.SysDictTypeDTO; import com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO; import com.moral.api.pojo.form.sysDictType.SysDictTypeDeleteForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeInsertForm; import com.moral.api.pojo.form.sysDictType.SysDictTypeUpdateForm; import com.moral.api.service.SysDictDataService; import com.moral.api.service.SysDictTypeService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.moral.api.util.CacheUtils; import com.moral.constant.Constants; import com.moral.constant.RedisConstants; import com.moral.constant.ResponseCodeEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.ObjectUtils; import java.util.ArrayList; import java.util.List; import java.util.Map; /** * <p> @@ -17,4 +38,170 @@ @Service public class SysDictTypeServiceImpl extends ServiceImpl<SysDictTypeMapper, SysDictType> implements SysDictTypeService { @Autowired SysDictTypeMapper sysDictTypeMapper; @Autowired SysDictDataService sysDictDataService; @Autowired RedisTemplate redisTemplate; @Override @Transactional public SysDictTypeDTO deleteType(SysDictTypeDeleteForm form) { //创建返回对象 SysDictTypeDTO dto = new SysDictTypeDTO(); //获取Id Integer typeId = form.getId(); //判断type是否存在 QueryWrapper<SysDictType> existWrapper = new QueryWrapper<>(); existWrapper.eq("is_delete",Constants.NOT_DELETE); existWrapper.eq("id",typeId); SysDictType type = sysDictTypeMapper.selectOne(existWrapper); if(ObjectUtils.isEmpty(type)){ dto.setCode(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getMsg()); return dto; } //执行逻辑删除 UpdateWrapper deleteTypeWrapper = new UpdateWrapper(); deleteTypeWrapper.eq("id",typeId); deleteTypeWrapper.set("is_delete",Constants.DELETE); sysDictTypeMapper.update(null,deleteTypeWrapper); //逻辑删除类型对应的数据 UpdateWrapper deleteDataWrapper = new UpdateWrapper(); deleteDataWrapper.eq("dict_type_id",typeId); deleteDataWrapper.set("is_delete",Constants.DELETE); sysDictDataService.update(null,deleteDataWrapper); //清除缓存数据 CacheUtils.clearDictionariesCache(); //封装返回数据 dto.setSysDictType(type); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } @Override @Transactional public SysDictTypeDTO updateType(SysDictTypeUpdateForm form) { //创建返回对象 SysDictTypeDTO dto = new SysDictTypeDTO(); //获取实体 SysDictType type = form.formConvertEntity(); //判断type是否存在 QueryWrapper<SysDictType> existNameWrapper = new QueryWrapper<>(); existNameWrapper.eq("id",type.getId()); existNameWrapper.eq("is_delete",Constants.NOT_DELETE); SysDictType existType = sysDictTypeMapper.selectOne(existNameWrapper); if(ObjectUtils.isEmpty(existType)){ dto.setCode(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.DICTTYPE_NOT_EXIST.getMsg()); return dto; } //执行更新 sysDictTypeMapper.updateById(type); //获取更新后的对象 SysDictType sysDictType = sysDictTypeMapper.selectById(type.getId()); //清除缓存 CacheUtils.clearDictionariesCache(); //封装返回对象 dto.setSysDictType(sysDictType); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } @Override @Transactional public SysDictTypeDTO insertType(SysDictTypeInsertForm form) { //创建返回对象 SysDictTypeDTO dto = new SysDictTypeDTO(); //获取要插入的实体 SysDictType sysDictType = form.formConvertEntity(); //判断name是否已经存在 QueryWrapper<SysDictType> existNameWrapper = new QueryWrapper<>(); existNameWrapper.eq("name",sysDictType.getName()); existNameWrapper.eq("is_delete",Constants.NOT_DELETE); SysDictType existType = sysDictTypeMapper.selectOne(existNameWrapper); if(!ObjectUtils.isEmpty(existType)){ dto.setCode(ResponseCodeEnum.DICTTYPE_EXIST.getCode()); dto.setMsg(ResponseCodeEnum.DICTTYPE_EXIST.getMsg()); return dto; } //插入类型 sysDictTypeMapper.insert(sysDictType); //清除缓存 CacheUtils.clearDictionariesCache(); //封装返回对象 dto.setSysDictType(sysDictType); dto.setCode(ResponseCodeEnum.SUCCESS.getCode()); dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return dto; } /** * @Description: 获取所有字典类型和字典数据 * @Param: [] * @return: com.moral.api.pojo.dto.sysDictType.SysDictTypeQueryDTO * @Author: 陈凯裕 * @Date: 2021/4/15 */ @Override public SysDictTypeQueryDTO queryTypeAndDatas() { //创建返回对象 SysDictTypeQueryDTO queryDTO = new SysDictTypeQueryDTO(); List<SysDictTypeDTO> dtos = new ArrayList<>(); //获取所有类型 List<SysDictType> types = getAllDictType(); //获取所有数据 Map<String, List<SysDictData>> datas = sysDictDataService.getAllDictData(); for (SysDictType type : types) { SysDictTypeDTO dto = new SysDictTypeDTO(); List<SysDictData> typeDatas = (List<SysDictData>) datas.get(type.getName()); dto.setSysDictType(type); dto.setSysDictDatas(typeDatas); dtos.add(dto); } //封装返回数据 queryDTO.setSysDictTypeDTOS(dtos); queryDTO.setCode(ResponseCodeEnum.SUCCESS.getCode()); queryDTO.setMsg(ResponseCodeEnum.SUCCESS.getMsg()); return queryDTO; } /** * @Description: 获取所有字典类型,没有字典数据 * @Param: [] * @return: java.util.List<com.moral.api.entity.sysDictType> * @Author: 陈凯裕 * @Date: 2021/4/15 */ @Override public List<SysDictType> getAllDictType() { //从缓存中取出 List<SysDictType> types = (List<SysDictType>) redisTemplate.opsForValue().get(RedisConstants.DICT_TYPE_KEY); if(ObjectUtils.isEmpty(types)){//从数据库取出并且插入缓存 types = getAllDictTypeFromDB(); redisTemplate.opsForValue().set(RedisConstants.DICT_TYPE_KEY,types); } return types; } @Override public SysDictType getDictTypeById(Integer id) { QueryWrapper<SysDictType> wrapper = new QueryWrapper(); wrapper.eq("is_delete",Constants.NOT_DELETE); wrapper.eq("id",id); return sysDictTypeMapper.selectOne(wrapper); } private List<SysDictType> getAllDictTypeFromDB() { QueryWrapper<SysDictType> wrapper = new QueryWrapper<>(); wrapper.eq("is_delete", Constants.NOT_DELETE); List<SysDictType> sysDictTypes = sysDictTypeMapper.selectList(wrapper); return sysDictTypes; } } screen-manage/src/main/java/com/moral/api/util/CacheUtils.java
New file @@ -0,0 +1,33 @@ package com.moral.api.util; import com.moral.constant.RedisConstants; import com.moral.util.TokenUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; /** * @ClassName CacheUtils * @Description 缓存工具类 * @Author 陈凯裕 * @Date 2021/4/16 8:57 * @Version TODO **/ @Component @Slf4j public class CacheUtils { private static RedisTemplate redisTemplate; @Autowired public void setRedisTemplate(RedisTemplate redisTemplate) { CacheUtils.redisTemplate = redisTemplate; } public static void clearDictionariesCache(){ redisTemplate.delete(RedisConstants.DICT_DATA_KEY); redisTemplate.delete(RedisConstants.DICT_TYPE_KEY); } } screen-manage/src/main/resources/application-dev.yml
@@ -62,6 +62,9 @@ url: jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: chenkaiyu111 #url: jdbc:mysql://vp9l57dtd2vng7oxft1t.rwlb.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai #username: root #password: moral_123456 test-on-borrow: false sql-script-encoding: utf-8 pool-prepared-statements: true @@ -120,7 +123,7 @@ - /swagger-resources/** - /webjars/** - /verificationCode/** - /system/** - /manageLog/** - /role/getAllManageRole - /role/getManageRoleByNameFuzzy screen-manage/src/main/resources/mapper/ManageMenuMapper.xml
@@ -13,6 +13,7 @@ <result column="create_time" property="createTime"/> <result column="update_time" property="updateTime"/> <result column="is_delete" property="isDelete"/> <result column="desc" property="desc"/> </resultMap> screen-manage/src/main/resources/mapper/SysDictDataMapper.xml
@@ -5,11 +5,9 @@ <!-- 通用查询映射结果 --> <resultMap id="BaseResultMap" type="com.moral.api.entity.SysDictData"> <id column="id" property="id" /> <result column="parent_id" property="parentId" /> <result column="dict_type_id" property="dictTypeId" /> <result column="dataKey" property="dataKey" /> <result column="dataValue" property="dataValue" /> <result column="sort" property="sort" /> <result column="create_time" property="createTime" /> <result column="update_time" property="updateTime" /> <result column="is_delete" property="isDelete" />