From dbd3caa4d1559bb3fb046d1c85a03b47ae6e97f0 Mon Sep 17 00:00:00 2001 From: Kurisu Date: Mon, 29 Nov 2021 17:29:22 +0800 Subject: [PATCH] :zap: 优化角色变动分配算法 --- fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java index 2c97241..3ef9292 100644 --- a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java +++ b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/LeaveNeedDoBizService.java @@ -12,6 +12,7 @@ import cn.fw.valhalla.common.constant.RoleCode; import cn.fw.valhalla.common.utils.DateUtil; import cn.fw.valhalla.domain.db.LeaveNeedDo; import cn.fw.valhalla.domain.db.customer.Customer; +import cn.fw.valhalla.domain.db.follow.FollowRecord; import cn.fw.valhalla.domain.db.follow.FollowTask; import cn.fw.valhalla.domain.db.pool.CustomerCluePool; import cn.fw.valhalla.domain.db.pool.StammkundePool; @@ -397,9 +398,13 @@ public class LeaveNeedDoBizService { task.setCloseTime(new Date()); task.setState(TaskStateEnum.DEFEAT); task.setReason(TaskDefeatTypeEnum.D); + FollowRecord taskRecord = followRecordService.getOne(Wrappers.lambdaQuery() + .eq(FollowRecord::getTaskId, task.getId()) + .eq(FollowRecord::getAddTodo, Boolean.FALSE) + .isNull(FollowRecord::getFollowTime) + .last(" limit 1") + ); followTaskService.updateById(task); - followRecordService.removeByTaskId(task.getId()); - if (Boolean.TRUE.equals(task.getRedistribution())) { clue.setCloseTime(new Date()); clue.setClueStatus(ClueStatusEnum.FAILURE); @@ -407,7 +412,6 @@ public class LeaveNeedDoBizService { } else { clue.setRedistribution(Boolean.TRUE); } - FollowTask nTask = new FollowTask(); nTask.setClueId(clue.getId()); nTask.setCustomerId(clue.getRefererId()); @@ -421,6 +425,13 @@ public class LeaveNeedDoBizService { nTask.setFollowShop(shopId); nTask.setGroupId(clue.getGroupId()); followTaskService.save(nTask); + if (Objects.nonNull(taskRecord)) { + taskRecord.setTaskId(nTask.getId()); + taskRecord.setUserId(nTask.getFollowUser()); + taskRecord.setUserName(nTask.getFollowUserName()); + followRecordService.updateById(taskRecord); + return; + } followBizService.startTask(nTask); } -- libgit2 0.22.2