Explorar el Código

feat: 企业停用的任务类型,小程序不允许提交

李学松 hace 2 años
padre
commit
31cbec4e3e

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

@@ -62,6 +62,7 @@ import com.qunzhixinxi.hnqz.admin.entity.input.WmWkAlbumApiInput;
 import com.qunzhixinxi.hnqz.admin.entity.vo.SysUserSubVO;
 import com.qunzhixinxi.hnqz.admin.entity.vo.WmTaskTypeVO;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.enums.PackageTypeEnum;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectLocation;
 import com.qunzhixinxi.hnqz.admin.enums.SubjectTypeEnum;
@@ -3623,8 +3624,7 @@ public class ApiController {
 				WmTask wmTask = new WmTask();
 				log.info("获取积分包ID:{}", tWmScorePackage.getId());
 				// 根据任务类型获取积分值
-				WmTaskType wmTaskType = new WmTaskType();
-				wmTaskType.setRuleId(tWmScorePackage.getRuleId());
+
 				if ("share".equalsIgnoreCase(type)) {
 					if ("article".equalsIgnoreCase(taskCategoryName)) {
 						wmTask.setTaskTypeId("9");
@@ -3638,8 +3638,33 @@ public class ApiController {
 						wmTask.setTaskTypeId("11");
 					}
 				}
-				wmTaskType.setTaskTypeName(wmTaskTypeService.getById(wmTask.getTaskTypeId()).getTaskTypeName());
-				score = wmTaskTypeService.getWmTaskTypeByEnt(wmTaskType);
+
+				WmTaskType _baseTaskType = wmTaskTypeService.getById(wmTask.getTaskTypeId());
+
+				// 校验任务类型是否启用
+				WmTaskType queryTaskType = new WmTaskType();
+				queryTaskType.setRuleId(tWmScorePackage.getRuleId());
+				queryTaskType.setTaskTypeName(_baseTaskType.getTaskTypeName());
+				queryTaskType.setDelFlag("0");
+				queryTaskType.setEnableFlag("0");
+				List<WmTaskType> deptTaskTypes = wmTaskTypeService.list(Wrappers.query(queryTaskType));
+				if (CollUtil.isEmpty(deptTaskTypes)) {
+					msg = _baseTaskType.getTaskTypeName() + "任务类型不存在";
+					log.info(msg);
+					return R.failed(_baseTaskType.getTaskTypeName() + "任务类型不存在");
+				}
+
+				WmTaskType deptTaskType = deptTaskTypes.get(0);
+				if (EnableEnum.DISABLE.val().equals(deptTaskType.getEnableFlag())) {
+					msg = _baseTaskType.getTaskTypeName() + "任务类型已停用";
+					log.info(msg);
+					wmTask.setScore(0);
+				} else {
+					WmTaskType wmTaskType = new WmTaskType();
+					wmTaskType.setRuleId(tWmScorePackage.getRuleId());
+					wmTaskType.setTaskTypeName(_baseTaskType.getTaskTypeName());
+					score = deptTaskType.getScore();
+				}
 
 				log.info("任务类型预设积分:{}", score);
 				if (score < 0) {

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

@@ -38,6 +38,7 @@ import com.qunzhixinxi.hnqz.admin.entity.WmTaskType;
 import com.qunzhixinxi.hnqz.admin.entity.WmTaskTypeSubCate2;
 import com.qunzhixinxi.hnqz.admin.entity.WmUserSign;
 import com.qunzhixinxi.hnqz.admin.enums.DelEnum;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmDaHospitalMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmTaskContentMapper;
 import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
@@ -516,6 +517,20 @@ public class WmTaskContentServiceImpl extends ServiceImpl<WmTaskContentMapper, W
 
 		List<WmScorePackageStatus> statusList = checkPackageStatus(sysU.getUserId(), tWmScorePackage.getId());
 
+		// 校验任务类型是否启用
+		WmTaskType _baseTaskType = wmTaskTypeService.getById(wmTaskContent.getTemp30());
+		WmTaskType queryTaskType = new WmTaskType();
+		queryTaskType.setRuleId(tWmScorePackage.getRuleId());
+		queryTaskType.setTaskTypeName(_baseTaskType.getTaskTypeName());
+		queryTaskType.setDelFlag("0");
+		queryTaskType.setEnableFlag("0");
+		List<WmTaskType> deptTaskTypes = wmTaskTypeService.list(Wrappers.query(queryTaskType));
+		if (CollUtil.isEmpty(deptTaskTypes)) {
+			throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型不存在");
+		}
+		if (EnableEnum.DISABLE.val().equals(deptTaskTypes.get(0).getEnableFlag())) {
+			throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型已停用");
+		}
 
 		// 检验分值 3W
 		this.limitScore(sysU.getUserId(), tWmScorePackage.getPackageType1());

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

@@ -10,6 +10,7 @@ import com.qunzhixinxi.hnqz.admin.api.entity.WmTaskSubmissionRule;
 import com.qunzhixinxi.hnqz.admin.api.vo.UserVO;
 import com.qunzhixinxi.hnqz.admin.config.UpmsConfig;
 import com.qunzhixinxi.hnqz.admin.entity.*;
+import com.qunzhixinxi.hnqz.admin.enums.EnableEnum;
 import com.qunzhixinxi.hnqz.admin.mapper.WmUserSignMapper;
 import com.qunzhixinxi.hnqz.admin.service.*;
 import com.qunzhixinxi.hnqz.common.core.util.R;
@@ -86,16 +87,6 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 			return R.failed("客户拜访任务,登录人不符");
 		}
 
-		if ("1".equals(tWmScorePackage.getPackageType1())) {
-			Boolean fullFlag = wmTaskService.checkUserTaskSubScore(sysU.getUserId() + "");
-			if (fullFlag) {
-				String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
-				String info = StringUtils.isEmpty(value) ? "每日最多提交3万积分" : "每日最多提交" + Integer.parseInt(value) + "积分";
-				log.warn("系统当前限制积分上限:【{}】,提示:【{}】", value, info);
-				return R.failed(1, info);
-			}
-		}
-
 		String taskTypeId;
 		if ("1".equals(wmUserSign.getSignEntType())) {
 			taskTypeId = "5";
@@ -108,6 +99,30 @@ public class WmUserSignServiceImpl extends ServiceImpl<WmUserSignMapper, WmUserS
 		}
 		wmUserSign.setTaskTypeId(taskTypeId);
 
+		// 校验任务类型是否启用
+		WmTaskType _baseTaskType = wmTaskTypeService.getById(taskTypeId);
+		WmTaskType queryTaskType = new WmTaskType();
+		queryTaskType.setRuleId(tWmScorePackage.getRuleId());
+		queryTaskType.setTaskTypeName(_baseTaskType.getTaskTypeName());
+		queryTaskType.setDelFlag("0");
+		queryTaskType.setEnableFlag("0");
+		List<WmTaskType> deptTaskTypes = wmTaskTypeService.list(Wrappers.query(queryTaskType));
+		if (CollUtil.isEmpty(deptTaskTypes)) {
+			throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型不存在");
+		}
+		if (EnableEnum.DISABLE.val().equals(deptTaskTypes.get(0).getEnableFlag())) {
+			throw new RuntimeException(_baseTaskType.getTaskTypeName() + "任务类型已停用");
+		}
+
+		if ("1".equals(tWmScorePackage.getPackageType1())) {
+			Boolean fullFlag = wmTaskService.checkUserTaskSubScore(sysU.getUserId() + "");
+			if (fullFlag) {
+				String value = sysPublicParamService.getSysPublicParamKeyToValue("USER_TASK_SUB_SCORE");
+				String info = StringUtils.isEmpty(value) ? "每日最多提交3万积分" : "每日最多提交" + Integer.parseInt(value) + "积分";
+				log.warn("系统当前限制积分上限:【{}】,提示:【{}】", value, info);
+				return R.failed(1, info);
+			}
+		}
 
 		if ("33".equals(taskTypeId)) {
 			// 一个用户,在同一打卡地点,4小时内只能打卡一次