kaiyu
2021-04-16 895136cb544ae2f46cd76d184ec14760e82353a7
screen-manage
字典模块 缓存模块
2 files renamed
3 files deleted
26 files added
32 files modified
2020 ■■■■■ changed files
screen-common/src/main/java/com/moral/constant/Constants.java 4 ●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/RedisConstants.java 25 ●●●●● patch | view | raw | blame | history
screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java 6 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/config/mybatis/wrapper/NullFilterWrapper.java 10 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/AccountController.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/OrganizationController.java 22 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/SysDictController.java 172 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/SystemController.java 54 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/ManageMenu.java 6 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/SysDictData.java 18 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/entity/SysDictType.java 14 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/mapper/SysDictDataMapper.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountDeleteDTO.java 15 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountInsertDTO.java 19 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/account/AccountUpdateDTO.java 15 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/manageLog/ManageLogQueryDTO.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryNameDTO.java 23 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/sysDictData/SysDictDataDTO.java 30 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/sysDictType/SysDictTypeDTO.java 32 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/dto/sysDictType/SysDictTypeQueryDTO.java 23 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountInsertForm.java 8 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/account/AccountUpdateForm.java 7 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/manageLog/ManageLogQueryForm.java 16 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/organization/OrganizationQueryNameForm.java 17 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/sysDictData/SysDictDataDeleteForm.java 23 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/sysDictData/SysDictDataInsertForm.java 38 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/sysDictData/SysDictDataUpdateForm.java 38 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/sysDictType/SysDictTypeDeleteForm.java 23 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/sysDictType/SysDictTypeInsertForm.java 37 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/sysDictType/SysDictTypeUpdateForm.java 35 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountDeleteVO.java 2 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountInsertVO.java 1 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/account/AccountUpdateVO.java 2 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/manageLog/ManageLogQueryVO.java 88 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/manageLog/ManageLogVO.java 49 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationDeleteVO.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationInsertVO.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryNamesVO.java 53 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationVO.java 4 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataDeleteVO.java 27 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataInsertVO.java 30 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataUpdateVO.java 26 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictData/SysDictDataVO.java 31 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeDeleteVO.java 27 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeInsertVO.java 27 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeQueryVO.java 82 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeUpdateVO.java 26 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/vo/sysDictType/SysDictTypeVO.java 33 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/ManageLogService.java 4 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/OrganizationService.java 18 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java 54 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/SysDictTypeService.java 63 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageAccountServiceImpl.java 2 ●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ManageLogServiceImpl.java 85 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java 134 ●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java 172 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java 187 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/util/CacheUtils.java 33 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/application-dev.yml 5 ●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/ManageMenuMapper.xml 1 ●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/SysDictDataMapper.xml 2 ●●●●● patch | view | raw | blame | history
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" />