Explorar o código

feat: 修改分享类任务

1.积分包小于3000分不校验任务类型上限;
2.逻辑0积分,直接拒绝;
shc %!s(int64=3) %!d(string=hai) anos
pai
achega
c8de2d32c7

+ 22 - 7
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/controller/ApiController.java

@@ -2978,6 +2978,7 @@ public class ApiController {
 
 		LocalDateTime now = LocalDateTime.now();
 		int score = 0;
+		boolean autoRejectFlag = false;
 		WmWkAlbum wmWkAlbum = null;
 		WmWkArticle wmWkArticle = null;
 		WmScorePackageStatus scorePackageStatus = null;
@@ -3095,7 +3096,8 @@ public class ApiController {
 				}
 				wmTask.setScore(score);
 
-				boolean needToCheckLimit = true;
+
+				boolean needToCheckLimit = tWmScorePackage.getScore() > 3000;
 				if ("open".equals(type)) {
 					List<WmWkArticleShare> wmWkArticleShareList = wmWkArticleShareService.list(Wrappers.
 							<WmWkArticleShare>lambdaQuery()
@@ -3120,11 +3122,13 @@ public class ApiController {
 					if (StringUtils.isEmpty(openUserId)) {
 						log.info("openUserId为null,任务积分为0。");
 						wmTask.setScore(0);
+						autoRejectFlag = true;
 					} else {
 						String readerOpenId = getReaderOpenId(openUserId.trim());
 						if (readerOpenId.contains("null")) {
 							log.info("获取阅读者openid失败,积分值为0");
 							wmTask.setScore(0);
+							autoRejectFlag = true;
 						} else {
 							// 过滤文章分享list,如果阅读者已经阅读过同一个分享人分享的的同一篇文章,就不再记录分数
 							List<WmWkArticleShare> shares = wmWkArticleShareList
@@ -3134,6 +3138,7 @@ public class ApiController {
 							if (CollectionUtils.isNotEmpty(shares)) {
 								log.info("同一个分享存在多次打开记录:{}", shares);
 								wmTask.setScore(0);
+								autoRejectFlag = true;
 							}
 							//  记录阅读者openid
 							wmWkArticleShare.setOpenUser(readerOpenId);
@@ -3142,12 +3147,13 @@ public class ApiController {
 					}
 
 					// 校验打开结果
-					if ("article".equalsIgnoreCase(taskCategoryName)) {
-						needToCheckLimit = checkArticleOpenLimit(wmWkArticle,sysUser,wmTask);
-					} else if ("album".equalsIgnoreCase(taskCategoryName)) {
-						needToCheckLimit = checkAlbumOpenLimit(wmWkAlbum, sysUser, wmTask);
+					if (needToCheckLimit){
+						if ("article".equalsIgnoreCase(taskCategoryName)) {
+							needToCheckLimit = checkArticleOpenLimit(wmWkArticle,sysUser,wmTask);
+						} else if ("album".equalsIgnoreCase(taskCategoryName)) {
+							needToCheckLimit = checkAlbumOpenLimit(wmWkAlbum, sysUser, wmTask);
+						}
 					}
-
 				}
 
 				// 记录分享记录
@@ -3176,7 +3182,8 @@ public class ApiController {
 				}
 
 
-				// 判断是否保存前最后校验一遍文章分享和文章阅读以及产品分享和产品分享阅读所做的积分值是否在比例范围之内(初始设定为30%)
+				// 判断是否保存前最后校验一遍文章分享和文章阅读以及产品分享和产品分享阅读所做的积分值是否在比例范围之内
+				// (初始设定为30%,积分包值小于3000不做校验)
 				if (needToCheckLimit && null != scorePackageStatus) {
 					String value = sysPublicParamService.getSysPublicParamKeyToValue("SHARE_READ_TASK_SCORE_UPPER_LIMIT_RATIO");
 					value = StringUtils.isEmpty(value) ? "0.3" : value;
@@ -3198,11 +3205,19 @@ public class ApiController {
 					if (sum >= limit) {
 						log.warn("完成任务积分值已经超过上限,设置为0");
 						wmTask.setScore(0);
+						autoRejectFlag = true;
 					}
 				}
 
+				// 校验结果为0积分的自动审核不通过
+				if (autoRejectFlag){
+					wmTask.setTaskStatus("4");
+					wmTask.setSubmitStatus("1");
+				}
+
 				boolean isSave = wmTaskService.save(wmTask);   //保存任务
 
+
 				//判断任务是否完成
 				if (isSave) {
 					WmScorePackage wmScorePackage1 = wmScorePackageService.getById(tWmScorePackage.getId());

+ 4 - 0
hnqz-upms/hnqz-upms-biz/src/main/java/com/qunzhixinxi/hnqz/admin/entity/WmTask.java

@@ -110,6 +110,10 @@ public class WmTask extends Model<WmTask> {
 	@ApiModelProperty(value="任务状态")
 	private String taskStatus;
 
+	/**
+	 * 提交审核状态
+	 */
+	@ApiModelProperty(value="提交审核状态")
 	private String submitStatus;
 
 	/**