Merge branch 'dev/feat/partner1.3_20230828' into hxd/feat/labelAndlLine
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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")
|
||||
|
||||
@@ -18,5 +18,5 @@ public class AddTagsRequest {
|
||||
@ApiModelProperty("加盟申请基本信息ID")
|
||||
private Long partnerBaseInfoId;
|
||||
@ApiModelProperty("标签列表")
|
||||
private List<Long> Tags;
|
||||
private List<Long> tags;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user