Explorar el Código

1、类别为2时创建同步字典

yys hace 5 días
padre
commit
ecccd03808

+ 5 - 1
fs-admin/src/main/java/com/fs/his/controller/FsPackageCateController.java

@@ -74,7 +74,11 @@ public class FsPackageCateController extends BaseController
     @GetMapping(value = "/{cateId}")
     public AjaxResult getInfo(@PathVariable("cateId") Long cateId)
     {
-        return AjaxResult.success(fsPackageCateService.selectFsPackageCateByCateId(cateId));
+        FsPackageCate cate = fsPackageCateService.selectFsPackageCateByCateId(cateId);
+        if (cate == null) {
+            return AjaxResult.error("套餐包分类不存在");
+        }
+        return AjaxResult.success(cate);
     }
 
     /**

+ 96 - 8
fs-service/src/main/java/com/fs/his/service/impl/FsPackageCateServiceImpl.java

@@ -3,15 +3,18 @@ package com.fs.his.service.impl;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Objects;
 
+import com.fs.common.core.domain.entity.SysDictData;
 import com.fs.common.exception.CustomException;
 import com.fs.his.param.FsPackageCateUParam;
 import com.fs.his.vo.OptionsVO;
+import com.fs.system.mapper.SysDictDataMapper;
+import com.fs.system.service.ISysDictDataService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import com.fs.his.mapper.FsPackageCateMapper;
 import com.fs.his.domain.FsPackageCate;
 import com.fs.his.service.IFsPackageCateService;
@@ -25,9 +28,18 @@ import com.fs.his.service.IFsPackageCateService;
 @Service
 public class FsPackageCateServiceImpl implements IFsPackageCateService
 {
+    private static final String PRIVATE_TYPE_DICT = "sys_package_private_type";
+    private static final Integer PRIVATE_CATE_TYPE = 2;
+
     @Autowired
     private FsPackageCateMapper fsPackageCateMapper;
 
+    @Autowired
+    private ISysDictDataService dictDataService;
+
+    @Autowired
+    private SysDictDataMapper dictDataMapper;
+
     /**
      * 查询套餐包分类
      *
@@ -47,7 +59,6 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
      * @return 套餐包分类
      */
     @Override
-    @Cacheable(value = "getPackagCateList", key = "#param")
     public List<FsPackageCate> selectFsPackageCateList(FsPackageCateUParam param)
     {
         return fsPackageCateMapper.selectFsPackageCateList(param);
@@ -60,7 +71,7 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
      * @return 结果
      */
     @Override
-    @CacheEvict(value = {"getPackageList","getPackagCateList"}, allEntries = true)
+    @Transactional(rollbackFor = Exception.class)
     public int insertFsPackageCate(FsPackageCate fsPackageCate)
     {
         Long cateCode = fsPackageCate.getCateCode();
@@ -69,7 +80,11 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
         if (cate!=null){
             throw new CustomException("分类标识存在重复");
         }
-        return fsPackageCateMapper.insertFsPackageCate(fsPackageCate);
+        int rows = fsPackageCateMapper.insertFsPackageCate(fsPackageCate);
+        if (rows > 0) {
+            saveOrUpdatePrivateTypeDict(fsPackageCate);
+        }
+        return rows;
     }
 
     /**
@@ -79,16 +94,21 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
      * @return 结果
      */
     @Override
-    @CacheEvict(value = {"getPackageList","getPackagCateList"}, allEntries = true)
+    @Transactional(rollbackFor = Exception.class)
     public int updateFsPackageCate(FsPackageCate fsPackageCate)
     {
+        FsPackageCate oldCate = fsPackageCateMapper.selectFsPackageCateByCateId(fsPackageCate.getCateId());
         Long cateCode = fsPackageCate.getCateCode();
         Integer type = fsPackageCate.getType();
         FsPackageCate cate = fsPackageCateMapper.selectFsPackageCateByCateCode(cateCode, type);
         if (cate!=null&&cate.getCateId()!=fsPackageCate.getCateId()){
             throw new CustomException("分类标识存在重复");
         }
-        return fsPackageCateMapper.updateFsPackageCate(fsPackageCate);
+        int rows = fsPackageCateMapper.updateFsPackageCate(fsPackageCate);
+        if (rows > 0 && oldCate != null) {
+            syncPrivateTypeDictOnUpdate(oldCate, fsPackageCate);
+        }
+        return rows;
     }
 
     /**
@@ -98,9 +118,15 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
      * @return 结果
      */
     @Override
-    @CacheEvict(value = {"getPackageList","getPackagCateList"}, allEntries = true)
+    @Transactional(rollbackFor = Exception.class)
     public int deleteFsPackageCateByCateIds(Long[] cateIds)
     {
+        for (Long cateId : cateIds) {
+            FsPackageCate cate = fsPackageCateMapper.selectFsPackageCateByCateId(cateId);
+            if (cate != null) {
+                deletePrivateTypeDict(cate.getCateCode());
+            }
+        }
         return fsPackageCateMapper.deleteFsPackageCateByCateIds(cateIds);
     }
 
@@ -111,7 +137,6 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
      * @return 结果
      */
     @Override
-    @CacheEvict(value = {"getPackageList","getPackagCateList"}, allEntries = true)
     public int deleteFsPackageCateByCateId(Long cateId)
     {
         return fsPackageCateMapper.deleteFsPackageCateByCateId(cateId);
@@ -131,4 +156,67 @@ public class FsPackageCateServiceImpl implements IFsPackageCateService
     public List<OptionsVO> selectCateList() {
         return fsPackageCateMapper.selectFsArticleCateByType(2);
     }
+
+    private void saveOrUpdatePrivateTypeDict(FsPackageCate fsPackageCate) {
+        if (!PRIVATE_CATE_TYPE.equals(fsPackageCate.getType())) {
+            return;
+        }
+        SysDictData dictData = buildPrivateTypeDict(fsPackageCate);
+        SysDictData existing = dictDataMapper.selectDictDataByTypeAndValue(
+                PRIVATE_TYPE_DICT, String.valueOf(fsPackageCate.getCateCode()));
+        if (existing != null) {
+            dictData.setDictCode(existing.getDictCode());
+            dictDataService.updateDictData(dictData);
+        } else {
+            dictDataService.insertDictData(dictData);
+        }
+    }
+
+    private void syncPrivateTypeDictOnUpdate(FsPackageCate oldCate, FsPackageCate newCate) {
+        boolean wasPrivate = PRIVATE_CATE_TYPE.equals(oldCate.getType());
+        boolean isPrivate = PRIVATE_CATE_TYPE.equals(newCate.getType());
+        if (wasPrivate && !isPrivate) {
+            deletePrivateTypeDict(oldCate.getCateCode());
+            return;
+        }
+        if (!wasPrivate && isPrivate) {
+            saveOrUpdatePrivateTypeDict(newCate);
+            return;
+        }
+        if (!wasPrivate) {
+            return;
+        }
+        SysDictData existing = dictDataMapper.selectDictDataByTypeAndValue(
+                PRIVATE_TYPE_DICT, String.valueOf(oldCate.getCateCode()));
+        if (existing != null) {
+            SysDictData dictData = buildPrivateTypeDict(newCate);
+            dictData.setDictCode(existing.getDictCode());
+            dictDataService.updateDictData(dictData);
+        } else {
+            saveOrUpdatePrivateTypeDict(newCate);
+        }
+    }
+
+    private void deletePrivateTypeDict(Long cateCode) {
+        if (cateCode == null) {
+            return;
+        }
+        SysDictData existing = dictDataMapper.selectDictDataByTypeAndValue(
+                PRIVATE_TYPE_DICT, String.valueOf(cateCode));
+        if (existing != null) {
+            dictDataService.deleteDictDataByIds(new Long[]{existing.getDictCode()});
+        }
+    }
+
+    private SysDictData buildPrivateTypeDict(FsPackageCate fsPackageCate) {
+        SysDictData dictData = new SysDictData();
+        dictData.setDictType(PRIVATE_TYPE_DICT);
+        dictData.setDictValue(String.valueOf(fsPackageCate.getCateCode()));
+        dictData.setDictLabel(fsPackageCate.getCateName());
+        dictData.setDictSort(fsPackageCate.getSort() != null ? fsPackageCate.getSort().longValue() : 0L);
+        dictData.setStatus(fsPackageCate.getStatus() != null && fsPackageCate.getStatus() == 1 ? "0" : "1");
+        dictData.setIsDefault("N");
+        dictData.setListClass("default");
+        return dictData;
+    }
 }

+ 1 - 1
fs-user-app/src/main/java/com/fs/app/controller/CommonController.java

@@ -336,7 +336,7 @@ public class CommonController {
 
 	@ApiOperation("获取数据字典")
 	@GetMapping("/getDictByKey")
-    @Cacheable(value="dicts", key="#key")
+//    @Cacheable(value="dicts", key="#key")
 	public R getDictByKey(@RequestParam(value = "key", required = false) String key){
 		List<DictVO> dicts=dictDataService.selectDictDataListByType(key);
 		return R.ok().put("data",dicts);