跟进日志处理

This commit is contained in:
zhangchenbiao
2023-08-15 16:32:35 +08:00
parent 6fa6b3cf8d
commit 6bdc773aa5
10 changed files with 179 additions and 4 deletions

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

@@ -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

@@ -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;
}
}