|
@@ -1,26 +1,30 @@
|
|
package com.xy.service;
|
|
package com.xy.service;
|
|
|
|
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.xy.annotate.Runners;
|
|
|
|
+import com.xy.collections.list.JArrayList;
|
|
|
|
+import com.xy.collections.list.JList;
|
|
|
|
+import com.xy.dto.SysCodeConfigureDto;
|
|
|
|
+import com.xy.dto.SysDictDto;
|
|
import com.xy.entity.SysCodeConfigure;
|
|
import com.xy.entity.SysCodeConfigure;
|
|
|
|
+import com.xy.entity.SysCodeConfigureRedis;
|
|
|
|
+import com.xy.entity.SysDict;
|
|
import com.xy.mapper.SysCodeConfigureMapper;
|
|
import com.xy.mapper.SysCodeConfigureMapper;
|
|
-import com.xy.service.SysCodeConfigureService;
|
|
|
|
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
import com.xy.utils.*;
|
|
import com.xy.utils.*;
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
import io.swagger.annotations.Api;
|
|
import io.swagger.annotations.Api;
|
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
import lombok.AllArgsConstructor;
|
|
import lombok.AllArgsConstructor;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+import org.springframework.validation.annotation.Validated;
|
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
|
|
-import java.time.LocalDateTime;
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
-import com.xy.dto.SysCodeConfigureDto;
|
|
|
|
-import org.springframework.web.bind.annotation.RequestBody;
|
|
|
|
-import org.springframework.web.bind.annotation.PostMapping;
|
|
|
|
-import io.swagger.annotations.ApiOperation;
|
|
|
|
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
-import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
-import org.springframework.validation.annotation.Validated;
|
|
|
|
-import sun.rmi.runtime.Log;
|
|
|
|
-
|
|
|
|
import static com.xy.utils.Beans.copy;
|
|
import static com.xy.utils.Beans.copy;
|
|
import static com.xy.utils.PlusBeans.toIPage;
|
|
import static com.xy.utils.PlusBeans.toIPage;
|
|
import static com.xy.utils.PlusBeans.toPageBean;
|
|
import static com.xy.utils.PlusBeans.toPageBean;
|
|
@@ -34,11 +38,14 @@ import static com.xy.utils.PlusBeans.toPageBean;
|
|
* @author lijin
|
|
* @author lijin
|
|
* @since 2023-04-20
|
|
* @since 2023-04-20
|
|
*/
|
|
*/
|
|
|
|
+@Slf4j
|
|
@Service
|
|
@Service
|
|
@AllArgsConstructor
|
|
@AllArgsConstructor
|
|
@Api(tags = "系统编码配置表")
|
|
@Api(tags = "系统编码配置表")
|
|
public class SysCodeConfigureServiceImpl extends ServiceImpl<SysCodeConfigureMapper, SysCodeConfigure> implements SysCodeConfigureService {
|
|
public class SysCodeConfigureServiceImpl extends ServiceImpl<SysCodeConfigureMapper, SysCodeConfigure> implements SysCodeConfigureService {
|
|
|
|
|
|
|
|
+ private RedisService<SysCodeConfigureRedis> redisService;
|
|
|
|
+
|
|
@PostMapping("obj")
|
|
@PostMapping("obj")
|
|
@ApiOperation("对象查询")
|
|
@ApiOperation("对象查询")
|
|
public R<SysCodeConfigureDto.Vo> obj(@RequestBody SysCodeConfigureDto.Vo vo) {
|
|
public R<SysCodeConfigureDto.Vo> obj(@RequestBody SysCodeConfigureDto.Vo vo) {
|
|
@@ -79,6 +86,7 @@ public class SysCodeConfigureServiceImpl extends ServiceImpl<SysCodeConfigureMap
|
|
SysCodeConfigure saveInfo = copy(SysCodeConfigure.class, save)
|
|
SysCodeConfigure saveInfo = copy(SysCodeConfigure.class, save)
|
|
.createUserTime(AuthorizeUtils.getLoginId(Long.class));
|
|
.createUserTime(AuthorizeUtils.getLoginId(Long.class));
|
|
save(saveInfo);
|
|
save(saveInfo);
|
|
|
|
+ refuRedis(saveInfo);
|
|
return R.ok();
|
|
return R.ok();
|
|
}
|
|
}
|
|
|
|
|
|
@@ -88,6 +96,74 @@ public class SysCodeConfigureServiceImpl extends ServiceImpl<SysCodeConfigureMap
|
|
SysCodeConfigure updateInfo = copy(SysCodeConfigure.class, update)
|
|
SysCodeConfigure updateInfo = copy(SysCodeConfigure.class, update)
|
|
.updateUserTime(AuthorizeUtils.getLoginId(Long.class));
|
|
.updateUserTime(AuthorizeUtils.getLoginId(Long.class));
|
|
updateById(updateInfo);
|
|
updateById(updateInfo);
|
|
|
|
+ refuRedis(updateInfo);
|
|
|
|
+ return R.ok();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @ApiOperation("删除")
|
|
|
|
+ @PostMapping("del")
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public R del(@RequestBody @Validated SysCodeConfigureDto.Del del) {
|
|
|
|
+ //删除编码
|
|
|
|
+ List<SysCodeConfigure> list = list(new LambdaQueryWrapper<SysCodeConfigure>().in(SysCodeConfigure::getCode, del.getCode()));
|
|
|
|
+ removeBatchByIds(del.getCode());
|
|
|
|
+ //删除子编码
|
|
|
|
+ JList<SysCodeConfigure> paters = new JArrayList<>(list).filter().isNull(SysCodeConfigure::getPaterCode).list();
|
|
|
|
+ JList<SysCodeConfigure> paters2 = new JArrayList<>(list).filter().eq(SysCodeConfigure::getPaterCode, "").list();
|
|
|
|
+ if (Emptys.check(paters2)) {
|
|
|
|
+ paters.addAll(paters2);
|
|
|
|
+ }
|
|
|
|
+ if (Emptys.check(paters)) {
|
|
|
|
+ JList<String> codes = paters.getProperty(SysCodeConfigure::getCode);
|
|
|
|
+ remove(new LambdaQueryWrapper<SysCodeConfigure>().in(SysCodeConfigure::getPaterCode, codes));
|
|
|
|
+ }
|
|
|
|
+ //刷新redis
|
|
|
|
+ list.forEach(sysDict -> refuRedis(sysDict));
|
|
return R.ok();
|
|
return R.ok();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 刷新redis
|
|
|
|
+ *
|
|
|
|
+ * @param sysCodeConfigure
|
|
|
|
+ */
|
|
|
|
+ public void refuRedis(SysCodeConfigure sysCodeConfigure) {
|
|
|
|
+ List<SysCodeConfigure> list;
|
|
|
|
+ String key = sysCodeConfigure.getPaterCode();
|
|
|
|
+ if (!Emptys.check(key)) {
|
|
|
|
+ //父字典
|
|
|
|
+ list = list(new LambdaQueryWrapper<SysCodeConfigure>().eq(SysCodeConfigure::getPaterCode, sysCodeConfigure.getCode()));
|
|
|
|
+ key = sysCodeConfigure.getCode();
|
|
|
|
+ } else {
|
|
|
|
+ //子字典
|
|
|
|
+ list = list(new LambdaQueryWrapper<SysCodeConfigure>().eq(SysCodeConfigure::getPaterCode, key));
|
|
|
|
+ }
|
|
|
|
+ redisService.removeMap(SysCodeConfigureUtils.getKey(key));
|
|
|
|
+ for (SysCodeConfigure sysCodeConfigureInfo : list) {
|
|
|
|
+ redisService.setMap(SysCodeConfigureUtils.getKey(key), sysCodeConfigureInfo.getCode(), copy(SysCodeConfigureRedis.class, sysCodeConfigureInfo));
|
|
|
|
+ }
|
|
|
|
+ log.info("系统编码刷新redis完成~");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 全量加载配置到redis
|
|
|
|
+ */
|
|
|
|
+ @Runners
|
|
|
|
+ public void loadRedis() {
|
|
|
|
+ List<SysCodeConfigure> sysCodeConfigures = list();
|
|
|
|
+ List<SysCodeConfigureRedis> sysCodeConfigureRedis = Beans.copy(SysCodeConfigureRedis.class, sysCodeConfigures);
|
|
|
|
+ JList<SysCodeConfigureRedis> list = new JArrayList<>(sysCodeConfigureRedis);
|
|
|
|
+ JList<SysCodeConfigureRedis> paters = list.filter().isNull(SysCodeConfigureRedis::getPaterCode).list();
|
|
|
|
+ JList<SysCodeConfigureRedis> paters2 = list.filter().eq(SysCodeConfigureRedis::getPaterCode, "").list();
|
|
|
|
+ if (Emptys.check(paters2)) {
|
|
|
|
+ paters.addAll(paters2);
|
|
|
|
+ }
|
|
|
|
+ redisService.removeLikeMap(SysCodeConfigureUtils.SYS_CODE_CONFIGURE_PREFIX);
|
|
|
|
+ //[父code -> 子列表]数据结构写入redis
|
|
|
|
+ paters.forEach(sysDict -> {
|
|
|
|
+ JList<SysCodeConfigureRedis> sysCodeConfigureRedisJList = list.filter().eq(SysCodeConfigureRedis::getPaterCode, sysDict.getCode()).list();
|
|
|
|
+ sysCodeConfigureRedisJList.forEach(sysCodeConfigureRediss -> redisService.setMap(SysCodeConfigureUtils.getKey(sysDict.getCode()), sysCodeConfigureRediss.getCode(), sysCodeConfigureRediss));
|
|
|
|
+ });
|
|
|
|
+ log.info("系统编码写入redis完成~");
|
|
|
|
+ }
|
|
}
|
|
}
|