Browse Source

Merge branch 'hotfix-20230721-deletedeptusercache'

lixuesong 1 year ago
parent
commit
6ea4333861

+ 16 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/WmDaDrugEntController.java

@@ -23,25 +23,31 @@ import com.qunzhixinxi.hnqz.admin.api.dto.UserInfo;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysDept;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.SysDeptMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.SysUserMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeEntRefMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskTypeMapper;
 import com.qunzhixinxi.hnqz.admin.service.*;
+import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.log.annotation.SysLog;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 
 /**
@@ -65,6 +71,7 @@ public class WmDaDrugEntController {
 	private final WmTaskTypeMapper wmTaskTypeMapper;
 	private final SysDeptMapper sysDeptMapper;
 	private final SysUserMapper sysUserMapper;
+	private final RedisTemplate redisTemplate;
 
 	/**
 	 * 分页查询
@@ -215,6 +222,7 @@ public class WmDaDrugEntController {
 	@SysLog("修改档案-药企")
 	@PutMapping
 	@PreAuthorize("@pms.hasPermission('admin_wmdadrugent_edit')")
+	@Transactional(rollbackFor = Exception.class)
 	public R updateById(@RequestBody WmDaDrugEnt wmDaDrugEnt) {
 
 		SysDept sysDept1 = new SysDept();
@@ -272,6 +280,14 @@ public class WmDaDrugEntController {
 			sysUserMapper.updateByPrimaryKeySelective(item);
 		}
 
+		if (EnableEnum.DISABLE.val().equals(wmDaDrugEnt.getEnableFlag())) {
+			// 移除user的缓存
+			Set<String> userNameKeys = sysUserList.stream()
+					.map(sysUser -> String.format("%s%s", CacheConstants.USER_DETAILS, sysUser.getUsername()))
+					.collect(Collectors.toSet());
+			redisTemplate.delete(userNameKeys);
+		}
+
 		return R.ok(wmDaDrugEntService.updateById(wmDaDrugEnt));
 	}
 

+ 16 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmDaAgentServiceImpl.java

@@ -29,15 +29,19 @@ import com.qunzhixinxi.hnqz.admin.api.entity.SysDeptRelation;
 import com.qunzhixinxi.hnqz.admin.api.entity.SysUser;
 import com.qunzhixinxi.hnqz.admin.entity.*;
 import com.qunzhixinxi.hnqz.admin.entity.input.WmDept;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.*;
 import com.qunzhixinxi.hnqz.admin.service.*;
+import com.qunzhixinxi.hnqz.common.core.constant.CacheConstants;
 import com.qunzhixinxi.hnqz.common.core.util.R;
 import com.qunzhixinxi.hnqz.common.data.datascope.DataScope;
 import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
@@ -47,6 +51,7 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 /**
@@ -73,6 +78,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 	private final SysDeptMapper sysDeptMapper;
 	private final SysDeptSubMapper sysDeptSubMapper;
 	private final WmTaskSubmissionRuleService taskSubmissionRuleService;
+	private final RedisTemplate redisTemplate;
 
 	public String getDeptBuildName(String deptId) {
 		String buildName = "";
@@ -472,6 +478,7 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public R updateByPrimaryKeySelective(WmDaAgent wmDaAgent) {
 		WmDaAgent query = new WmDaAgent();
 		query.setGsmc(wmDaAgent.getGsmc());
@@ -619,6 +626,15 @@ public class WmDaAgentServiceImpl extends ServiceImpl<WmDaAgentMapper, WmDaAgent
 			sysUser.setDelFlag(wmDaAgent.getEnableFlag());
 			sysUserMapper.updateByPrimaryKeySelective(sysUser);
 		}
+
+		if (EnableEnum.DISABLE.val().equals(wmDaAgent.getEnableFlag())) {
+			// 移除user的缓存
+			Set<String> userNameKeys = sysUserList.stream()
+					.map(sysUser -> String.format("%s%s", CacheConstants.USER_DETAILS, sysUser.getUsername()))
+					.collect(Collectors.toSet());
+			redisTemplate.delete(userNameKeys);
+		}
+
 		return R.ok();
 	}