跟进日志处理
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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