From f342a0d88b2a7168f794d0cf545d16a3138acb6d Mon Sep 17 00:00:00 2001
From: wuqiping <wuqiping@qq.com>
Date: Wed, 09 Jun 2021 15:55:33 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java |  184 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 184 insertions(+), 0 deletions(-)

diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
index 8f8b83c..a0aa05b 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictTypeServiceImpl.java
+++ b/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,167 @@
 @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.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.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.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;
+    }
+
+
 }

--
Gitblit v1.8.0