|
@@ -13,10 +13,10 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
|
|
|
import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
|
|
|
import com.qunzhixinxi.hnqz.admin.entity.*;
|
|
|
import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
|
|
|
+import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmTaskMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
|
|
|
import com.qunzhixinxi.hnqz.admin.service.*;
|
|
|
-import com.qunzhixinxi.hnqz.common.core.constant.enums.CommonFlag;
|
|
|
import com.qunzhixinxi.hnqz.common.core.exception.BizException;
|
|
|
import com.qunzhixinxi.hnqz.common.core.util.R;
|
|
|
import com.qunzhixinxi.hnqz.common.security.util.SecurityUtils;
|
|
@@ -230,68 +230,6 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 校验积分限制
|
|
|
- *
|
|
|
- * @param entId 企业ID
|
|
|
- * @param userId 用户ID
|
|
|
- */
|
|
|
- private void checkLimitScore(Integer entId, Integer userId) {
|
|
|
- String limitValue = "30000";
|
|
|
- // 查询当前企业配置的积分限制
|
|
|
- List<WmTaskSubmissionRule> scoreLimitRuleList = wmTaskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
|
|
|
- .in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet(entId, 1))
|
|
|
- .eq(WmTaskSubmissionRule::getOptFlag, CommonFlag.OptFlag.OK)
|
|
|
- .eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.SCORE_LIMIT));
|
|
|
-
|
|
|
- // 公共参数配置的
|
|
|
- String userTaskSubScore = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
|
|
|
-
|
|
|
- if (CollUtil.isNotEmpty(scoreLimitRuleList)) {
|
|
|
- Map<Integer, WmTaskSubmissionRule.SubmissionRule> submissionRuleMap = scoreLimitRuleList.stream()
|
|
|
- .collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, rules ->
|
|
|
- BeanUtil.toBean(rules.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class)));
|
|
|
- WmTaskSubmissionRule.SubmissionRule submissionRule = submissionRuleMap.containsKey(entId) ? submissionRuleMap.get(entId) : submissionRuleMap.get(1);
|
|
|
- limitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
|
|
|
- } else if (StrUtil.isNotBlank(userTaskSubScore)) {
|
|
|
- limitValue = userTaskSubScore;
|
|
|
- }
|
|
|
-
|
|
|
- boolean fullFlag = wmTaskService.checkUserTaskSubScore(userId.toString(), limitValue);
|
|
|
- if (fullFlag) {
|
|
|
- String info = String.format("每日最多提交%s积分", limitValue);
|
|
|
- log.warn("系统当前限制积分上限:【{}】,提示:【{}】", limitValue, info);
|
|
|
- throw new BizException(info);
|
|
|
- }
|
|
|
-
|
|
|
- // 月度积分限制
|
|
|
- String monthLimitValue;
|
|
|
- List<WmTaskSubmissionRule> monthScoreLimitRuleList = wmTaskSubmissionRuleService.list(Wrappers.<WmTaskSubmissionRule>lambdaQuery()
|
|
|
- .in(WmTaskSubmissionRule::getDeptId, CollUtil.newHashSet(entId, 1))
|
|
|
- .eq(WmTaskSubmissionRule::getOptFlag, CommonFlag.OptFlag.OK)
|
|
|
- .eq(WmTaskSubmissionRule::getSubCategory, UpmsType.TaskSubCategory.MONTH_SCORE_LIMIT));
|
|
|
- if (CollUtil.isNotEmpty(monthScoreLimitRuleList)) {
|
|
|
- Map<Integer, WmTaskSubmissionRule.SubmissionRule> submissionRuleMap = monthScoreLimitRuleList.stream()
|
|
|
- .collect(Collectors.toMap(WmTaskSubmissionRule::getDeptId, rules ->
|
|
|
- BeanUtil.toBean(rules.getRule().get(0), WmTaskSubmissionRule.SubmissionRule.class)));
|
|
|
- WmTaskSubmissionRule.SubmissionRule submissionRule = submissionRuleMap.containsKey(entId) ? submissionRuleMap.get(entId) : submissionRuleMap.get(1);
|
|
|
- monthLimitValue = String.valueOf(submissionRule.getFrequency().get(0).get("quantity"));
|
|
|
- } else {
|
|
|
- monthLimitValue = "300000";
|
|
|
- }
|
|
|
-
|
|
|
- LocalDate localDate = LocalDate.now();
|
|
|
- LocalDateTime startOfMonth = localDate.withDayOfMonth(1).atStartOfDay();
|
|
|
- LocalDateTime startOfNextMonth = localDate.plusMonths(1).withDayOfMonth(1).atStartOfDay();
|
|
|
- int total = wmTaskMapper.getUserTaskSubScore(String.valueOf(userId), startOfMonth, startOfNextMonth);
|
|
|
-
|
|
|
- if (total >= Integer.parseInt(monthLimitValue)) {
|
|
|
- String info = String.format("每月最多提交%s积分", monthLimitValue);
|
|
|
- log.warn("系统当前限制月度积分上限:【{}】,提示:【{}】", monthLimitValue, info);
|
|
|
- throw new BizException(info);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 获取积分包领取明细
|
|
|
*
|
|
@@ -705,8 +643,9 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
|
|
|
WmScorePackageStatus packageStatus = checkPkgStatus(tWmScorePackage.getId(), sysU.getUserId());
|
|
|
|
|
|
// 校验积分限制
|
|
|
- if ("1".equals(tWmScorePackage.getPackageType1())) {
|
|
|
- checkLimitScore(sysU.getDeptId(), sysU.getUserId());
|
|
|
+ if (StrUtil.equals(PackageTypeEnum.TYPE1_SCOTE_PACKAGE.val(), tWmScorePackage.getPackageType1())
|
|
|
+ || StrUtil.equals(PackageTypeEnum.TYPE1_SCORE_AND_TASK_PACKAGE.val(), tWmScorePackage.getPackageType1())) {
|
|
|
+ wmTaskContentService.limitScore(sysU.getUserId(), sysU.getDeptId(), "1");
|
|
|
}
|
|
|
|
|
|
// 设置参数 && 保存
|