From 95df3085922d985e68c5eb10550f55c1bc0aa7f4 Mon Sep 17 00:00:00 2001 From: Kurisu Date: Mon, 13 Mar 2023 11:10:21 +0800 Subject: [PATCH] :sparkles: feature(*): 新增查询续保成交的数据 --- fw-valhalla-dao/src/main/resources/mapper/ClueTaskMapper.xml | 3 ++- fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/dto/ShouldBeCompletedDTO.java | 4 ++++ fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/query/BeCompletedQuery.java | 4 ++++ fw-valhalla-sdk/pom.xml | 9 ++++++++- fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/api/FollowApiService.java | 9 +++++++++ fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/param/ShouldBeCompletedQuery.java | 4 ++-- fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/result/ShouldBeCompletedResult.java | 8 ++++++++ fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/api/FollowApiServiceImpl.java | 7 +++++++ fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.java | 98 -------------------------------------------------------------------------------------------------- fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.kt | 123 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ pom.xml | 21 ++++----------------- 11 files changed, 171 insertions(+), 119 deletions(-) delete mode 100644 fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.java create mode 100644 fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.kt diff --git a/fw-valhalla-dao/src/main/resources/mapper/ClueTaskMapper.xml b/fw-valhalla-dao/src/main/resources/mapper/ClueTaskMapper.xml index 974f9a4..987f8b5 100644 --- a/fw-valhalla-dao/src/main/resources/mapper/ClueTaskMapper.xml +++ b/fw-valhalla-dao/src/main/resources/mapper/ClueTaskMapper.xml @@ -195,7 +195,8 @@ t2.vin, t1.follow_user user_id, t1.follow_user_name user_name, - t1.follow_shop shop_id + t1.follow_shop shop_id, + t1.state state from clue_task t1 inner join follow_clue t2 on t1.clue_id = t2.id diff --git a/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/dto/ShouldBeCompletedDTO.java b/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/dto/ShouldBeCompletedDTO.java index b012ddf..837be36 100644 --- a/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/dto/ShouldBeCompletedDTO.java +++ b/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/dto/ShouldBeCompletedDTO.java @@ -29,4 +29,8 @@ public class ShouldBeCompletedDTO { * 门店id */ private Long shopId; + /** + * 状态 1:进行中 2:已成交 3:战败 + */ + private Integer state; } diff --git a/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/query/BeCompletedQuery.java b/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/query/BeCompletedQuery.java index 9806846..2e00adf 100644 --- a/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/query/BeCompletedQuery.java +++ b/fw-valhalla-domain/src/main/java/cn/fw/valhalla/domain/query/BeCompletedQuery.java @@ -1,6 +1,8 @@ package cn.fw.valhalla.domain.query; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** @@ -13,6 +15,8 @@ import lombok.Data; * @date : 2022-10-20 14:53 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class BeCompletedQuery { /** * 跟进人员id diff --git a/fw-valhalla-sdk/pom.xml b/fw-valhalla-sdk/pom.xml index e8205d4..64ad36a 100644 --- a/fw-valhalla-sdk/pom.xml +++ b/fw-valhalla-sdk/pom.xml @@ -10,7 +10,7 @@ ../pom.xml fw-valhalla-sdk - 1.2.4 + 1.2.5 jar fw-valhalla-sdk @@ -46,6 +46,13 @@ org.apache.maven.plugins + maven-deploy-plugin + + false + + + + org.apache.maven.plugins maven-source-plugin ${maven-source-plugin.version} diff --git a/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/api/FollowApiService.java b/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/api/FollowApiService.java index 6ba6c69..61a32c0 100644 --- a/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/api/FollowApiService.java +++ b/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/api/FollowApiService.java @@ -52,4 +52,13 @@ public interface FollowApiService { */ @GetMapping("/should/ins/completed") Message> queryInsShouldBeCompleted(@Validated @SpringQueryMap ShouldBeCompletedQuery query); + + /** + * 查询续保跟进成交数据 + * + * @param query 查询参数 + * @return 人员 + */ + @GetMapping("/ins/completed_arr") + Message> queryInsCompletedGuys(@Validated @SpringQueryMap ShouldBeCompletedQuery query); } \ No newline at end of file diff --git a/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/param/ShouldBeCompletedQuery.java b/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/param/ShouldBeCompletedQuery.java index 2bac42a..be06597 100644 --- a/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/param/ShouldBeCompletedQuery.java +++ b/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/param/ShouldBeCompletedQuery.java @@ -42,7 +42,7 @@ public class ShouldBeCompletedQuery { return String.valueOf(second); } String timeStr = String.valueOf(startTime); - return timeStr.length() >= 9 ? timeStr.substring(0, 9) : timeStr; + return timeStr.length() >= 10 ? timeStr.substring(0, 10) : timeStr; } public String getEndTime() { @@ -51,6 +51,6 @@ public class ShouldBeCompletedQuery { return String.valueOf(second); } String timeStr = String.valueOf(endTime); - return timeStr.length() >= 9 ? timeStr.substring(0, 9) : timeStr; + return timeStr.length() >= 10 ? timeStr.substring(0, 10) : timeStr; } } diff --git a/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/result/ShouldBeCompletedResult.java b/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/result/ShouldBeCompletedResult.java index f7d7e4f..b2102b6 100644 --- a/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/result/ShouldBeCompletedResult.java +++ b/fw-valhalla-sdk/src/main/java/cn/fw/valhalla/sdk/result/ShouldBeCompletedResult.java @@ -1,6 +1,8 @@ package cn.fw.valhalla.sdk.result; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; /** * 应成交数据 @@ -12,6 +14,8 @@ import lombok.Data; * @date : 2022-10-20 11:35 */ @Data +@AllArgsConstructor +@NoArgsConstructor public class ShouldBeCompletedResult { /** * 车架号 @@ -29,4 +33,8 @@ public class ShouldBeCompletedResult { * 门店id */ private Long shopId; + /** + * 状态 1:进行中 2:已成交 3:战败 + */ + private Integer state; } diff --git a/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/api/FollowApiServiceImpl.java b/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/api/FollowApiServiceImpl.java index 0e1bd8a..38b4a3e 100644 --- a/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/api/FollowApiServiceImpl.java +++ b/fw-valhalla-server/src/main/java/cn/fw/valhalla/controller/api/FollowApiServiceImpl.java @@ -79,4 +79,11 @@ public class FollowApiServiceImpl implements FollowApiService { public Message> queryInsShouldBeCompleted(@Validated @SpringQueryMap ShouldBeCompletedQuery query) { return success(followApiBizService.queryShouldBeCompleted(query, FollowTypeEnum.IR)); } + + @Override + @GetMapping("/ins/completed_arr") + @ControllerMethod("查询续保跟进应成交台数") + public Message> queryInsCompletedGuys(@Validated @SpringQueryMap ShouldBeCompletedQuery query) { + return success(followApiBizService.queryCompletedGuys(query, FollowTypeEnum.IR)); + } } diff --git a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.java b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.java deleted file mode 100644 index 7cbcb79..0000000 --- a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.java +++ /dev/null @@ -1,98 +0,0 @@ -package cn.fw.valhalla.service.bus.follow; - -import cn.fw.valhalla.domain.db.customer.AccidentPool; -import cn.fw.valhalla.domain.db.follow.ClueTask; -import cn.fw.valhalla.domain.db.follow.FollowClue; -import cn.fw.valhalla.domain.dto.ShouldBeCompletedDTO; -import cn.fw.valhalla.domain.enums.ClueStatusEnum; -import cn.fw.valhalla.domain.enums.FollowTypeEnum; -import cn.fw.valhalla.domain.query.BeCompletedQuery; -import cn.fw.valhalla.sdk.param.ShouldBeCompletedQuery; -import cn.fw.valhalla.sdk.result.ShouldBeCompletedResult; -import cn.fw.valhalla.service.data.AccidentPoolService; -import cn.fw.valhalla.service.data.ClueTaskService; -import cn.fw.valhalla.service.data.FollowClueService; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * 跟进api接口业务实现 - * - * @author : kurisu - * @version : 1.0 - * @className : FollowApiBizService - * @description : 跟进api接口业务实现 - * @date : 2022-10-20 14:35 - */ -@Service -public class FollowApiBizService { - private final ClueTaskService clueTaskService; - private final AccidentPoolService accidentPoolService; - private final FollowClueService followClueService; - - @Autowired - public FollowApiBizService(final ClueTaskService clueTaskService, - final AccidentPoolService accidentPoolService, - final FollowClueService followClueService) { - this.clueTaskService = clueTaskService; - this.accidentPoolService = accidentPoolService; - this.followClueService = followClueService; - } - - /** - * 查询应成交台数 - * - * @param query - * @param followTypeEnum - * @return - */ - public List queryShouldBeCompleted(ShouldBeCompletedQuery query, FollowTypeEnum followTypeEnum) { - BeCompletedQuery search = new BeCompletedQuery(); - search.setType(followTypeEnum.getValue()); - search.setShopId(query.getShopId()); - search.setUserId(query.getUserId()); - search.setStartTime(query.getStartTime()); - search.setEndTime(query.getEndTime()); - List dtoList = clueTaskService.queryShouldBeCompleted(search); - List results = new ArrayList<>(); - for (ShouldBeCompletedDTO dto : dtoList) { - ShouldBeCompletedResult result = new ShouldBeCompletedResult(); - result.setVin(dto.getVin()); - result.setUserId(dto.getUserId()); - result.setUserName(dto.getUserName()); - result.setShopId(dto.getShopId()); - results.add(result); - } - return results; - } - - public ClueTask queryAccidentFollowerByPlate(String plateNo, Long groupId) { - AccidentPool lastOne = accidentPoolService.getOne(Wrappers.lambdaQuery() - .eq(AccidentPool::getPlateNo, plateNo) - .eq(AccidentPool::getGroupId, groupId) - .orderByDesc(AccidentPool::getCreateTime) - .last(" limit 1 ") - ); - - if (Objects.isNull(lastOne)) { - return null; - } - FollowClue lastOngoingClue = followClueService.getOne(Wrappers.lambdaQuery() - .eq(FollowClue::getPlateNo, plateNo) - .eq(FollowClue::getClueType, FollowTypeEnum.AC) - .eq(FollowClue::getClueState, ClueStatusEnum.ONGOING) - .eq(FollowClue::getGroupId, groupId) - .last(" limit 1 ") - ); - - if (Objects.isNull(lastOngoingClue)) { - return null; - } - return clueTaskService.queryOngoingTaskByClueId(lastOngoingClue.getId()); - } -} diff --git a/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.kt b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.kt new file mode 100644 index 0000000..59eeb26 --- /dev/null +++ b/fw-valhalla-service/src/main/java/cn/fw/valhalla/service/bus/follow/FollowApiBizService.kt @@ -0,0 +1,123 @@ +package cn.fw.valhalla.service.bus.follow; + +import cn.fw.valhalla.domain.db.customer.AccidentPool +import cn.fw.valhalla.domain.db.follow.ClueTask +import cn.fw.valhalla.domain.db.follow.FollowClue +import cn.fw.valhalla.domain.enums.ClueStatusEnum +import cn.fw.valhalla.domain.enums.FollowTypeEnum +import cn.fw.valhalla.domain.enums.TaskStateEnum +import cn.fw.valhalla.domain.query.BeCompletedQuery +import cn.fw.valhalla.sdk.param.ShouldBeCompletedQuery +import cn.fw.valhalla.sdk.result.ShouldBeCompletedResult +import cn.fw.valhalla.service.data.AccidentPoolService +import cn.fw.valhalla.service.data.ClueTaskService +import cn.fw.valhalla.service.data.FollowClueService +import com.baomidou.mybatisplus.core.toolkit.Wrappers +import org.springframework.stereotype.Service +import java.util.* + +/** + * 跟进api接口业务实现 + * + * @author : kurisu + * @version : 1.0 + * @className : FollowApiBizService + * @description : 跟进api接口业务实现 + * @date : 2022-10-20 14:35 + */ +@Service +class FollowApiBizService( + val clueTaskService: ClueTaskService, + val accidentPoolService: AccidentPoolService, + val followClueService: FollowClueService +) { + + + /** + * 查询已成交续保数据 + * + * @param query + * @param followTypeEnum + * @return + */ + fun queryCompletedGuys( + query: ShouldBeCompletedQuery, + followTypeEnum: FollowTypeEnum + ): List { + val search = BeCompletedQuery() + search.type = followTypeEnum.value + search.shopId = query.shopId + search.userId = query.userId + search.startTime = query.startTime + search.endTime = query.endTime + val dtoList = clueTaskService.queryShouldBeCompleted(search) + return dtoList + .filter { TaskStateEnum.COMPLETE.value.equals(it.state) } + .map { + ShouldBeCompletedResult( + it.vin, + it.userId, + it.userName, + it.shopId, + it.state + ) + } + } + + /** + * 查询应成交台数 + * + * @param query + * @param followTypeEnum + * @return + */ + fun queryShouldBeCompleted( + query: ShouldBeCompletedQuery, + followTypeEnum: FollowTypeEnum + ): List { + val search = BeCompletedQuery( + query.userId, + query.shopId, + query.startTime, + query.endTime, + followTypeEnum.value + ) + val dtoList = clueTaskService.queryShouldBeCompleted(search) + return dtoList.map { + ShouldBeCompletedResult( + it.vin, + it.userId, + it.userName, + it.shopId, + it.state + ) + } + } + + fun queryAccidentFollowerByPlate(plateNo: String, groupId: Long): ClueTask? { + val lastOne = accidentPoolService.getOne( + Wrappers.lambdaQuery() + .eq(AccidentPool::getPlateNo, plateNo) + .eq(AccidentPool::getGroupId, groupId) + .orderByDesc(AccidentPool::getCreateTime) + .last(" limit 1 ") + ) + + if (Objects.isNull(lastOne)) { + return null + } + val lastOngoingClue = followClueService.getOne( + Wrappers.lambdaQuery() + .eq(FollowClue::getPlateNo, plateNo) + .eq(FollowClue::getClueType, FollowTypeEnum.AC) + .eq(FollowClue::getClueState, ClueStatusEnum.ONGOING) + .eq(FollowClue::getGroupId, groupId) + .last(" limit 1 ") + ); + + if (Objects.isNull(lastOngoingClue)) { + return null; + } + return clueTaskService.queryOngoingTaskByClueId(lastOngoingClue.id); + } +} diff --git a/pom.xml b/pom.xml index 7066c41..674786e 100644 --- a/pom.xml +++ b/pom.xml @@ -122,7 +122,7 @@ cn.fw fw-valhalla-sdk - 1.2.4 + 1.2.5 cn.fw @@ -300,14 +300,17 @@ org.jetbrains.kotlin kotlin-stdlib + ${kotlin.version} org.jetbrains.kotlin kotlin-reflect + ${kotlin.version} org.jetbrains.kotlin kotlin-stdlib-jdk8 + ${kotlin.version} com.fasterxml.jackson.module @@ -343,22 +346,6 @@ - - - aliyun - aliyun - https://maven.aliyun.com/nexus/content/groups/public/ - - - - - - aliyun - aliyun - https://maven.aliyun.com/nexus/content/groups/public/ - - - feewee-maven-releases -- libgit2 0.22.2