소스 검색

Merge branch 'feat-taskrulecron-20220606' of googol/YY_BE_2 into master

李学松 3 년 전
부모
커밋
2f44561188

+ 1 - 1
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/service/WmTaskTypeService.java

@@ -29,7 +29,7 @@ import com.qunzhixinxi.hnqz.daemon.quartz.entity.WmTaskType;
 public interface WmTaskTypeService extends IService<WmTaskType> {
 	public int getWmTaskTypeByEnt(WmTaskType wmTaskType);
 
-	public int changeTaskTypeInfo();
+	public int changeTaskTypeInfo(String para);
 
 
 }

+ 44 - 29
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/service/impl/WmTaskTypeServiceImpl.java

@@ -23,7 +23,7 @@ import com.qunzhixinxi.hnqz.daemon.quartz.mapper.WmTaskTypeMapper;
 import com.qunzhixinxi.hnqz.daemon.quartz.service.WmTaskTypeService;
 import org.springframework.stereotype.Service;
 
-import java.util.ArrayList;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -52,47 +52,62 @@ public class WmTaskTypeServiceImpl extends ServiceImpl<WmTaskTypeMapper, WmTaskT
 		return 0;
 	}
 
+	/**
+	 * 根据平台积分规则,修改各企业积分规则
+	 * @return
+	 * @param para 0-覆盖所有企业积分值,1-不覆盖符合积分规则范围的企业的
+	 */
 	@Override
-	public int changeTaskTypeInfo() {
-		WmTaskType wmTaskType=new WmTaskType();
+	public int changeTaskTypeInfo(String para) {
+		// 这里能查询的前提是:在平台积分规则点击了停用或编辑的数据(点击停用或编辑后会新增一条status=1的相同数据,这些数据实际应该是临时数据,后边会删除)
+		WmTaskType wmTaskType = new WmTaskType();
 		wmTaskType.setTaskTypeLevel("1");
 		wmTaskType.setStatus("1");
-		List<WmTaskType> wmTaskTypes=super.list(Wrappers.query(wmTaskType));
+		List<WmTaskType> wmTaskTypes = super.list(Wrappers.query(wmTaskType));
 
-		for (WmTaskType wmT:wmTaskTypes) {
-			WmTaskType wmTaskTypeBase=super.getById(wmT.getBaseId());
-			WmTaskType wmTaskType1=new WmTaskType();
+		// 遍历平台需要修改的积分规则
+		for (WmTaskType wmT : wmTaskTypes) {
+			// 根据积分规则名称,查询各个企业的积分规则
+			WmTaskType wmTaskType1 = new WmTaskType();
 			wmTaskType1.setTaskTypeName(wmT.getTaskTypeName());
 			wmTaskType1.setTaskTypeLevel("2");
-			List<WmTaskType> wmTaskTypeList=super.list(Wrappers.query(wmTaskType1));
-
-			for (WmTaskType wmTaskType2:wmTaskTypeList) {
-				if(wmTaskType2.getScore()<wmT.getTaskScoreEnd()||wmTaskType2.getScore()>wmT.getTaskScoreStart())
-				{
-					wmTaskType2.setScore(wmT.getScore());
-					wmTaskType2.setTaskScoreStart(wmT.getTaskScoreStart());
-					wmTaskType2.setTaskScoreEnd(wmT.getTaskScoreEnd());
-					this.updateById(wmTaskType2);
-				}else{
-					wmTaskType2.setTaskScoreStart(wmT.getTaskScoreStart());
-					wmTaskType2.setTaskScoreEnd(wmT.getTaskScoreEnd());
-					this.updateById(wmTaskType2);
+			List<WmTaskType> wmTaskTypeList = super.list(Wrappers.query(wmTaskType1));
+			// 修改各企业的积分规则
+			LocalDateTime now = LocalDateTime.now();
+			for (WmTaskType wmTaskType2 : wmTaskTypeList) {
+				WmTaskType updateTaskType = new WmTaskType();
+				updateTaskType.setId(wmTaskType2.getId());
+				if ("1".equals(para)) {
+					// 如果企业现有的积分规则符合新的积分规则范围,则不做覆盖修改处理,否则会修改为平台的预设值
+					if (wmTaskType2.getScore() > wmT.getTaskScoreEnd() || wmTaskType2.getScore() < wmT.getTaskScoreStart()) {
+						updateTaskType.setScore(wmT.getScore());
+					}
+				} else if ("0".equals(para)) {
+					// para为0时,则直接覆盖企业积分值
+					updateTaskType.setScore(wmT.getScore());
 				}
+				updateTaskType.setTaskScoreStart(wmT.getTaskScoreStart());
+				updateTaskType.setTaskScoreEnd(wmT.getTaskScoreEnd());
+				updateTaskType.setUpdateTime(now);
+				updateTaskType.setUpdateUser(0);
+				this.updateById(updateTaskType);
 			}
 
-			wmTaskTypeBase.setScore(wmT.getScore());
-			wmTaskTypeBase.setTaskScoreEnd(wmT.getTaskScoreEnd());
-			wmTaskTypeBase.setTaskScoreStart(wmT.getTaskScoreStart());
-			this.updateById(wmTaskTypeBase);
+			// 如果baseId有对应的父级数据,则更新(原有逻辑)
+			WmTaskType wmTaskTypeBase = super.getById(wmT.getBaseId());
+			if (wmTaskTypeBase != null) {
+				wmTaskTypeBase.setScore(wmT.getScore());
+				wmTaskTypeBase.setTaskScoreEnd(wmT.getTaskScoreEnd());
+				wmTaskTypeBase.setTaskScoreStart(wmT.getTaskScoreStart());
+				wmTaskTypeBase.setUpdateTime(now);
+				wmTaskTypeBase.setUpdateUser(0);
+				this.updateById(wmTaskTypeBase);
+			}
 		}
 
-
+		// 移除这些数据(status=1的,即设置为停用的数据)
 		this.remove(Wrappers.query(wmTaskType));
 
-
-
-
-
 		return 0;
 	}
 }

+ 1 - 1
hnqz-visual/hnqz-daemon-quartz/src/main/java/com/qunzhixinxi/hnqz/daemon/quartz/task/SpringBeanTaskDemo.java

@@ -72,7 +72,7 @@ public class SpringBeanTaskDemo {
 	@SneakyThrows
 	public String changeTaskRule(String para) {
 		log.info("测试于:{},输入参数{}", LocalDateTime.now(), para);
-		wmTaskTypeService.changeTaskTypeInfo();
+		wmTaskTypeService.changeTaskTypeInfo(para);
 		return HnqzQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
 	}