From 49936eacb21e68a44bea9900d94771726cba020a Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 16 Aug 2023 13:52:37 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E9=80=9A=E8=AF=9D=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=B7=9F=E8=BF=9B=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/mapper/CallRecordMapper.java | 9 ++++++++ .../resources/mapper/CallRecordMapper.xml | 9 ++++++++ .../cool/store/vo/follow/FollowTaskLogVO.java | 21 +++++++++++++------ .../com/cool/store/service/CallService.java | 10 +++++++++ .../store/service/impl/CallServiceImpl.java | 11 ++++++++++ .../service/impl/FollowTaskServiceImpl.java | 11 +++++++--- .../service/impl/LineHighSeasServiceImpl.java | 2 +- 7 files changed, 63 insertions(+), 10 deletions(-) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/CallRecordMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/CallRecordMapper.java index 812520b16..f64fc813a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/CallRecordMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/CallRecordMapper.java @@ -3,6 +3,8 @@ package com.cool.store.mapper; import com.cool.store.entity.CallRecordDO; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author zhangchenbiao * @date 2023-08-11 01:03 @@ -26,4 +28,11 @@ public interface CallRecordMapper { int updateByTransNoSelective(CallRecordDO record); CallRecordDO selectByTransNo(String transNo); + + /** + * 批量获取 + * @param transNos + * @return + */ + List selectByTransNos(@Param("transNos") List transNos); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/CallRecordMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/CallRecordMapper.xml index 56885e077..31212903d 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/CallRecordMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/CallRecordMapper.xml @@ -239,4 +239,13 @@ from call_record where trans_no = #{transNo} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java index 16d9f4812..fc49b16dd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java @@ -2,6 +2,7 @@ package com.cool.store.vo.follow; import com.alibaba.fastjson.JSONObject; import com.cool.store.dto.log.LogFieldDTO; +import com.cool.store.entity.CallRecordDO; import com.cool.store.entity.HyFollowTaskDO; import com.cool.store.entity.HyPartnerTaskInfoLogDO; import com.cool.store.enums.OperateLogFieldValueEnum; @@ -13,10 +14,7 @@ import lombok.Data; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -50,11 +48,12 @@ public class FollowTaskLogVO { @ApiModelProperty("操作内容") private List operateContent; - public static List convertVO(List list, List followTaskList){ + public static List convertVO(List list, List followTaskList, List callRecordList){ if(CollectionUtils.isEmpty(list)){ return Lists.newArrayList(); } Map taskMap = ListUtils.emptyIfNull(followTaskList).stream().collect(Collectors.toMap(k -> k.getId(), Function.identity(), (k1, k2) -> k1)); + Map callRecordMap = ListUtils.emptyIfNull(callRecordList).stream().collect(Collectors.toMap(k -> k.getTransNo(), Function.identity(), (k1, k2) -> k1)); List resultList = new ArrayList<>(); for (HyPartnerTaskInfoLogDO log : list) { FollowTaskLogVO result = new FollowTaskLogVO(); @@ -68,8 +67,18 @@ public class FollowTaskLogVO { if(OperateTypeEnum.ADD_FOLLOW_TASK.getCode().equals(log.getOperateType())){ Long taskId = Long.valueOf(logFieldList.stream().filter(o -> OperateLogFieldValueEnum.FOLLOW_TASK_ID.getCode().equals(o.getCode())).map(LogFieldVO::getValue).findFirst().get().toString()); HyFollowTaskDO hyFollowTask = taskMap.get(taskId); + if(Objects.isNull(hyFollowTask)){ + continue; + } logFieldList.addAll(LogFieldVO.convertLogField(hyFollowTask)); - + } + if(OperateTypeEnum.CALL_UP.getCode().equals(log.getOperateType())){ + String transNo = logFieldList.stream().filter(o -> OperateLogFieldValueEnum.CALL_TRANS_NO.getCode().equals(o.getCode())).map(LogFieldVO::getValue).findFirst().get().toString(); + CallRecordDO callRecord = callRecordMap.get(transNo); + if(Objects.isNull(callRecord)){ + continue; + } + logFieldList.addAll(LogFieldVO.convertLogField(callRecord)); } result.setOperateContent(logFieldList); resultList.add(result); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/CallService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/CallService.java index 820b498ed..848485e79 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/CallService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/CallService.java @@ -1,10 +1,13 @@ package com.cool.store.service; +import com.cool.store.entity.CallRecordDO; import com.cool.store.exception.ApiException; import com.cool.store.request.CallFinishBackReq; import com.cool.store.request.CallRecordBackReq; import com.cool.store.request.CallUpReq; +import java.util.List; + /** * @Author: young.yu * @Date: 2023-08-10 18:56 @@ -14,4 +17,11 @@ public interface CallService { String callUp(CallUpReq request) throws ApiException; void callFinishBack(CallFinishBackReq request) throws ApiException; void callRecordBack(CallRecordBackReq request) throws ApiException; + + /** + * 批量获取通话记录 + * @para transNos + * @return + */ + List getCallRecordByTransNos(List transNos); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CallServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CallServiceImpl.java index 31171a61f..9908ccd63 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CallServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/CallServiceImpl.java @@ -24,12 +24,15 @@ import com.cool.store.request.CallUpReq; import com.cool.store.service.CallService; import com.cool.store.service.LogService; import com.cool.store.utils.CoolDateUtils; +import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; +import java.util.List; /** * @Author: young.yu @@ -129,4 +132,12 @@ public class CallServiceImpl implements CallService { callRecordDO.setUpdateTime(new Date()); callRecordMapper.updateByTransNoSelective(callRecordDO); } + + @Override + public List getCallRecordByTransNos(List transNos) { + if(CollectionUtils.isEmpty(transNos)){ + return Lists.newArrayList(); + } + return callRecordMapper.selectByTransNos(transNos); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FollowTaskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FollowTaskServiceImpl.java index 422d8b9f6..8b1dd2ac1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FollowTaskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FollowTaskServiceImpl.java @@ -13,6 +13,7 @@ import com.cool.store.dto.log.LineLogInfo; import com.cool.store.dto.log.LogFieldDTO; import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.partner.PartnerSimpleInfoDTO; +import com.cool.store.entity.CallRecordDO; import com.cool.store.entity.HyFollowTaskDO; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerTaskInfoLogDO; @@ -24,6 +25,7 @@ import com.cool.store.request.follow.AddFollowLogRequest; import com.cool.store.request.follow.AddFollowTaskRequest; import com.cool.store.request.follow.FollowTaskIdRequest; import com.cool.store.request.follow.UpdateFollowTaskRequest; +import com.cool.store.service.CallService; import com.cool.store.service.FollowTaskService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.RedisUtilPool; @@ -62,6 +64,8 @@ public class FollowTaskServiceImpl implements FollowTaskService { @Resource private EnterpriseUserDAO enterpriseUserDAO; @Resource + private CallService callService; + @Resource private RedisUtilPool redisUtilPool; @Resource private ISVHttpRequest isvHttpRequest; @@ -98,11 +102,12 @@ public class FollowTaskServiceImpl implements FollowTaskService { return Long.valueOf(value); }).collect(Collectors.toList()); List followTaskList = hyFollowTaskDAO.getFollowTaskList(taskIds); - List callIds = logPage.stream().filter(o->OperateTypeEnum.ADD_FOLLOW_TASK.getCode().equals(o.getOperateType())).map(o->{ + List callTransNos = logPage.stream().filter(o->OperateTypeEnum.CALL_UP.getCode().equals(o.getOperateType())).map(o->{ List logField = JSONObject.parseArray(o.getFieldCopy(), LogFieldDTO.class); - return logField.stream().filter(f -> f.getCode().equals(OperateLogFieldValueEnum.FOLLOW_TASK_ID.getCode())).findFirst().get().getValue(); + return logField.stream().filter(f -> f.getCode().equals(OperateLogFieldValueEnum.CALL_TRANS_NO.getCode())).findFirst().get().getValue(); }).collect(Collectors.toList()); - resultList = FollowTaskLogVO.convertVO(logPage, followTaskList); + List callRecordList = callService.getCallRecordByTransNos(callTransNos); + resultList = FollowTaskLogVO.convertVO(logPage, followTaskList, callRecordList); } PageInfo resultPage = new PageInfo(logPage); resultPage.setList(resultList); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java index 3e357d8ff..6c1a4c5f7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java @@ -46,7 +46,7 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { @Value("${oss.excelFile.dir:null}") private String dir; - @Value("${manual.channel.id}") + @Value("${manual.channel.id:null}") private Integer manual; From 8a98d646b86d8876b7b0e02025cd0a8985242753 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 16 Aug 2023 14:02:04 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E9=80=9A=E8=AF=9D=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=B7=9F=E8=BF=9B=E6=97=A5=E5=BF=97=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java | 1 + .../main/java/com/cool/store/vo/follow/FollowTaskLogVO.java | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java index d82fad650..96bc473f5 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerTaskInfoLogDAO.java @@ -66,6 +66,7 @@ public class HyPartnerTaskInfoLogDAO { operateTypes.add(OperateTypeEnum.ADD_FOLLOW_TASK.getCode()); operateTypes.add(OperateTypeEnum.ADD_FOLLOW_LOG.getCode()); operateTypes.add(OperateTypeEnum.ADD_TAGS.getCode()); + operateTypes.add(OperateTypeEnum.CALL_UP.getCode()); return hyPartnerTaskInfoLogMapper.getLogPageByLineId(partnerLineId, operateTypes); } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java index fc49b16dd..c707bbca9 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/follow/FollowTaskLogVO.java @@ -5,6 +5,7 @@ import com.cool.store.dto.log.LogFieldDTO; import com.cool.store.entity.CallRecordDO; import com.cool.store.entity.HyFollowTaskDO; import com.cool.store.entity.HyPartnerTaskInfoLogDO; +import com.cool.store.enums.CallStatusEnum; import com.cool.store.enums.OperateLogFieldValueEnum; import com.cool.store.enums.OperateTypeEnum; import com.cool.store.vo.log.LogFieldVO; @@ -78,6 +79,9 @@ public class FollowTaskLogVO { if(Objects.isNull(callRecord)){ continue; } + if(CallStatusEnum.CALL_ANSWERED.getCode() != callRecord.getCallStatus()){ + callRecord.setCallStatus(CallStatusEnum.CALL_FAILED.getCode()); + } logFieldList.addAll(LogFieldVO.convertLogField(callRecord)); } result.setOperateContent(logFieldList); From 7e5e0601553deda25e6d480efbe601dd58683ba9 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 16 Aug 2023 14:58:47 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../resources/mapper/EnterpriseUserMapper.xml | 8 +++++++- .../impl/EnterpriseSyncServiceImpl.java | 20 ++++++++++++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 54da90533..bbdde729a 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -284,7 +284,13 @@