Merge branch 'dev/feat/partner1.3_20230828' into hxd/feat/labelAndlLine

This commit is contained in:
xiaodong.hu
2023-08-16 13:20:16 +08:00
27 changed files with 608 additions and 35 deletions

View File

@@ -0,0 +1,42 @@
package com.cool.store.dto.follow;
import com.cool.store.constants.MessageConstants;
import com.cool.store.utils.StringUtil;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.text.MessageFormat;
/**
* @author zhangchenbiao
* @FileName: FollowTaskNumDTO
* @Description:
* @date 2023-08-14 16:01
*/
@Data
public class FollowTaskNumDTO {
@ApiModelProperty("任务跟进人id")
private String followUserId;
@ApiModelProperty("未完成数量")
private Integer todoNum;
@ApiModelProperty("逾期数量")
private Integer overdueNum;
public static String getMessageContent(FollowTaskNumDTO followTask){
if(followTask.getTodoNum() > 0 && followTask.getOverdueNum() > 0){
return MessageFormat.format(MessageConstants.FOLLOW_TASK_MESSAGE_CONTENT_1, followTask.getTodoNum(), followTask.getOverdueNum());
}
if(followTask.getTodoNum() == 0 && followTask.getOverdueNum() > 0){
return MessageFormat.format(MessageConstants.FOLLOW_TASK_MESSAGE_CONTENT_2, followTask.getOverdueNum());
}
if(followTask.getTodoNum() > 0 && followTask.getOverdueNum() == 0){
return MessageFormat.format(MessageConstants.FOLLOW_TASK_MESSAGE_CONTENT_3, followTask.getTodoNum());
}
return StringUtil.EMPTY;
}
}

View File

@@ -3,6 +3,8 @@ package com.cool.store.dto.log;
import lombok.Builder;
import lombok.Data;
import java.util.List;
/**
* @Author suzhuhong
* @Date 2023/7/4 10:05
@@ -19,4 +21,8 @@ public class AddTagsDTO {
private String operateUserId;
private String mobile;
private List<String> addLabels;
private List<String> removeLabels;
}

View File

@@ -0,0 +1,16 @@
package com.cool.store.dto.log;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.SuperBuilder;
/**
* @Author: young.yu
* @Date: 2023-08-16 11:41
* @Description:
*/
@Data
@SuperBuilder
public class CallUpLogDTO extends LogBasicDTO{
private String transNo;
}

View File

@@ -0,0 +1,21 @@
package com.cool.store.dto.partner;
import lombok.Data;
/**
* @Author suzhuhong
* @Date 2023/8/14 17:08
* @Version 1.0
*/
@Data
public class UserPortraitDTO {
private Long userPortraitId;
private String userPortraitName;
public UserPortraitDTO(Long userPortraitId, String userPortraitName) {
this.userPortraitId = userPortraitId;
this.userPortraitName = userPortraitName;
}
}

View File

@@ -18,7 +18,8 @@ import lombok.NoArgsConstructor;
@NoArgsConstructor
@AllArgsConstructor
public class HyFollowTaskDO implements Serializable {
@ApiModelProperty("")
@ApiModelProperty("跟进任务id")
private Long id;
@ApiModelProperty("hy_partner_line_info.id")

View File

@@ -18,5 +18,5 @@ public class AddTagsRequest {
@ApiModelProperty("加盟申请基本信息ID")
private Long partnerBaseInfoId;
@ApiModelProperty("标签列表")
private List<Long> Tags;
private List<Long> tags;
}

View File

@@ -1,5 +1,6 @@
package com.cool.store.vo;
import com.cool.store.dto.partner.UserPortraitDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -49,7 +50,7 @@ public class PartnerLineInfoAndBaseInfoVO {
private String investmentManagerPhone;
@ApiModelProperty("用户画像")
private List<String> userPortrait;
private List<UserPortraitDTO> userPortrait;
@ApiModelProperty("线索状态")
private Integer lineStatus;

View File

@@ -1,9 +1,24 @@
package com.cool.store.vo.follow;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.dto.log.LogFieldDTO;
import com.cool.store.entity.HyFollowTaskDO;
import com.cool.store.entity.HyPartnerTaskInfoLogDO;
import com.cool.store.enums.OperateLogFieldValueEnum;
import com.cool.store.enums.OperateTypeEnum;
import com.cool.store.vo.log.LogFieldVO;
import com.google.common.collect.Lists;
import io.swagger.annotations.ApiModelProperty;
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.function.Function;
import java.util.stream.Collectors;
/**
* @author zhangchenbiao
@@ -33,6 +48,33 @@ public class FollowTaskLogVO {
private String operateType;
@ApiModelProperty("操作内容")
private String operateContent;
private List<LogFieldVO> operateContent;
public static List<FollowTaskLogVO> convertVO(List<HyPartnerTaskInfoLogDO> list, List<HyFollowTaskDO> followTaskList){
if(CollectionUtils.isEmpty(list)){
return Lists.newArrayList();
}
Map<Long, HyFollowTaskDO> taskMap = ListUtils.emptyIfNull(followTaskList).stream().collect(Collectors.toMap(k -> k.getId(), Function.identity(), (k1, k2) -> k1));
List<FollowTaskLogVO> resultList = new ArrayList<>();
for (HyPartnerTaskInfoLogDO log : list) {
FollowTaskLogVO result = new FollowTaskLogVO();
result.setFollowLogId(log.getId());
result.setPartnerLineId(log.getPartnerLineId());
result.setOperateTime(log.getCreateTime());
result.setOperateUserId(log.getOperateUserId());
result.setOperateUsername(log.getOperateUsername());
result.setOperateType(log.getOperateType());
List<LogFieldVO> logFieldList = JSONObject.parseArray(log.getFieldCopy(), LogFieldVO.class);
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);
logFieldList.addAll(LogFieldVO.convertLogField(hyFollowTask));
}
result.setOperateContent(logFieldList);
resultList.add(result);
}
return resultList;
}
}

View File

@@ -17,6 +17,9 @@ import java.util.*;
@Data
public class FollowTaskPageVO {
@ApiModelProperty("任务id")
private Long followTaskId;
@ApiModelProperty("线索id")
private Long partnerLineId;
@@ -35,6 +38,9 @@ public class FollowTaskPageVO {
@ApiModelProperty("跟进阶段")
private String workflowStage;
@ApiModelProperty("线索用户id")
private String partnerId;
@ApiModelProperty("线索用户名")
private String partnerUsername;
@@ -51,12 +57,14 @@ public class FollowTaskPageVO {
continue;
}
FollowTaskPageVO result = new FollowTaskPageVO();
result.setFollowTaskId(task.getId());
result.setPartnerLineId(task.getPartnerLineId());
result.setTaskTitle(task.getTaskTitle());
result.setCommunicationType(task.getCommunicationType());
result.setDeadline(task.getDeadline());
result.setTaskStatus(task.getTaskStatus());
result.setWorkflowStage(partnerInfo.getWorkflowStage());
result.setPartnerId(partnerInfo.getPartnerId());
result.setPartnerUsername(partnerInfo.getUsername());
result.setPartnerMobile(partnerInfo.getMobile());
resultList.add(result);

View File

@@ -0,0 +1,48 @@
package com.cool.store.vo.log;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
/**
* @Author: young.yu
* @Date: 2023-06-28 15:32
* @Description:
*/
@Data
public class LogFieldVO {
@ApiModelProperty("字段名称")
private String code;
@ApiModelProperty("字段定义")
private String name;
@ApiModelProperty("字段值")
private Object value;
public static List<LogFieldVO> convertLogField(Object object){
Field[] declaredFields = object.getClass().getDeclaredFields();
List<LogFieldVO> resultList = new ArrayList<>();
for (Field declaredField : declaredFields) {
try {
declaredField.setAccessible(true);
LogFieldVO field = new LogFieldVO();
ApiModelProperty annotation = declaredField.getAnnotation(ApiModelProperty.class);
if(Objects.nonNull(annotation)){
field.setName(annotation.value());
}
field.setCode(declaredField.getName());
field.setValue(declaredField.get(object));
resultList.add(field);
} catch (IllegalAccessException e) {
continue;
}
}
return resultList;
}
}