Browse Source

feat: 积分限制企业单独配置-企业没配默认取平台的限制

李学松 2 năm trước cách đây
mục cha
commit
8be2415641

+ 13 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -3586,13 +3586,22 @@ public class ApiController {
 
 					String limitValue = "30000";
 					// 查询当前企业配置的积分限制
-					WmTaskSubmissionRule scoreLimitRule = taskSubmissionRuleService.getOne(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
-							.eq(WmTaskSubmissionRule::getDeptId, sysUser.getDeptId())
+					List<WmTaskSubmissionRule> scoreLimitRuleList = taskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
+							.in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet(sysUser.getDeptId(), 1))
 							.eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.SCORE_LIMIT));
+
 					// 公共参数配置的
 					String userTaskSubScore = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-					if (scoreLimitRule != null && CollUtil.isNotEmpty(scoreLimitRule.getRule())) {
-						WmTaskSubmissionRule.SubmissionRule submissionRule = BeanUtil.toBean(scoreLimitRule.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class);
+
+					if (CollUtil.isNotEmpty(scoreLimitRuleList)) {
+						Map<Integer, Object> submissionRuleMap = scoreLimitRuleList.stream()
+								.collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, WmTaskSubmissionRule::getRule));
+						WmTaskSubmissionRule.SubmissionRule submissionRule = null;
+						if (submissionRuleMap.containsKey(sysUser.getDeptId())) {
+							submissionRule = BeanUtil.toBean(submissionRuleMap.get(sysUser.getDeptId()), WmTaskSubmissionRule.SubmissionRule.class);
+						} else {
+							submissionRule = BeanUtil.toBean(submissionRuleMap.get(1), WmTaskSubmissionRule.SubmissionRule.class);
+						}
 						limitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
 					} else if (StrUtil.isNotBlank(userTaskSubScore)) {
 						limitValue = userTaskSubScore;

+ 14 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmTaskContentServiceImpl.java

@@ -75,6 +75,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -163,13 +164,22 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 		if ("1".equals(pkgType)) {
 			String limitValue = "30000";
 			// 查询当前企业配置的积分限制
-			WmTaskSubmissionRule scoreLimitRule = taskSubmissionRuleService.getOne(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
-					.eq(WmTaskSubmissionRule::getDeptId, deptId)
+			List<WmTaskSubmissionRule> scoreLimitRuleList = taskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
+					.in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet(deptId, 1))
 					.eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.SCORE_LIMIT));
+
 			// 公共参数配置的
 			String userTaskSubScore = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-			if (scoreLimitRule != null && CollUtil.isNotEmpty(scoreLimitRule.getRule())) {
-				WmTaskSubmissionRule.SubmissionRule submissionRule = BeanUtil.toBean(scoreLimitRule.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class);
+
+			if (CollUtil.isNotEmpty(scoreLimitRuleList)) {
+				Map<Integer, Object> submissionRuleMap = scoreLimitRuleList.stream()
+						.collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, WmTaskSubmissionRule::getRule));
+				WmTaskSubmissionRule.SubmissionRule submissionRule = null;
+				if (submissionRuleMap.containsKey(deptId)) {
+					submissionRule = BeanUtil.toBean(submissionRuleMap.get(deptId), WmTaskSubmissionRule.SubmissionRule.class);
+				} else {
+					submissionRule = BeanUtil.toBean(submissionRuleMap.get(1), WmTaskSubmissionRule.SubmissionRule.class);
+				}
 				limitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
 			} else if (StrUtil.isNotBlank(userTaskSubScore)) {
 				limitValue = userTaskSubScore;

+ 13 - 4
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/service/impl/WmUserSignServiceImpl.java

@@ -119,13 +119,22 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 		if ("1".equals(tWmScorePackage.getPackageType1())) {
 			String limitValue = "30000";
 			// 查询当前企业配置的积分限制
-			WmTaskSubmissionRule scoreLimitRule = wmTaskSubmissionRuleService.getOne(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
-					.eq(WmTaskSubmissionRule::getDeptId, sysU.getDeptId())
+			List<WmTaskSubmissionRule> scoreLimitRuleList = wmTaskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
+					.in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet(sysU.getDeptId(), 1))
 					.eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.SCORE_LIMIT));
+
 			// 公共参数配置的
 			String userTaskSubScore = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-			if (scoreLimitRule != null && CollUtil.isNotEmpty(scoreLimitRule.getRule())) {
-				WmTaskSubmissionRule.SubmissionRule submissionRule = BeanUtil.toBean(scoreLimitRule.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class);
+
+			if (CollUtil.isNotEmpty(scoreLimitRuleList)) {
+				Map<Integer, Object> submissionRuleMap = scoreLimitRuleList.stream()
+						.collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, WmTaskSubmissionRule::getRule));
+				WmTaskSubmissionRule.SubmissionRule submissionRule = null;
+				if (submissionRuleMap.containsKey(sysU.getDeptId())) {
+					submissionRule = BeanUtil.toBean(submissionRuleMap.get(sysU.getDeptId()), WmTaskSubmissionRule.SubmissionRule.class);
+				} else {
+					submissionRule = BeanUtil.toBean(submissionRuleMap.get(1), WmTaskSubmissionRule.SubmissionRule.class);
+				}
 				limitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
 			} else if (StrUtil.isNotBlank(userTaskSubScore)) {
 				limitValue = userTaskSubScore;