线索手机号显示修改

master
yqy 3 years ago
parent 93bff362c1
commit ac5462b27c

@ -87,4 +87,7 @@ public class ClueDto implements Serializable {
@ApiModelProperty(value = "版本号")
private Integer optimisticVersion;
@ApiModelProperty(value = "判断是否需要缓存 0:不需要 1:需要")
private Integer isRedis;
}

@ -49,6 +49,10 @@ public class BaseTask implements Serializable {
@Column(name = "is_distribution", nullable = true)
private Integer isDistribution;
@ApiModelProperty(value = "此次任务是否加密线索手机号 0:不加密 1:加密")
@Column(name = "is_encryption")
private Integer isEncryption;
/**
*
* nullable : true

@ -52,6 +52,12 @@ public class TaskController {
return new ResponseEntity<>(taskService.query(taskQueryCriteria),HttpStatus.OK);
}
@ApiOperation("查询任务详情")
@GetMapping("/queryDetails")
public ResponseEntity<Task> queryDetails(@RequestParam("taskId") Long taskId){
return new ResponseEntity<>(taskService.queryDetails(taskId),HttpStatus.OK);
}
@ApiOperation("websocket发送错误信息")
@GetMapping("/sendErrMessage")
public void sendErrMessage(String errorMessage, Long userId) {

@ -34,4 +34,11 @@ public interface TaskService {
* @return
*/
List<TaskDto> query(TaskQueryCriteria taskQueryCriteria);
/**
*
* @param taskId
* @return
*/
Task queryDetails(Long taskId);
}

@ -25,4 +25,8 @@ public class OrganizeSaveDTO {
@ApiModelProperty("小组集合")
@NotEmpty(message = "小组不能为空")
private List<Organize> organizeList;
@ApiModelProperty(value = "此次任务是否加密线索手机号 0:不加密 1:加密")
@NotNull(message = "请选择是否加密")
private Integer isEncryption;
}

@ -3,6 +3,7 @@ package com.baiye.modules.system.service.dto;
import com.baiye.modules.system.domain.TaskOrganize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@ -23,6 +24,9 @@ public class TaskDto implements Serializable {
private Integer isDistribution;
@ApiModelProperty(value = "此次任务是否加密线索手机号 0:不加密 1:加密")
private Integer isEncryption;
private Long createBy;
private Long updateBy;

@ -262,6 +262,7 @@ public class OrganizeServiceImpl implements OrganizeService {
task.setIsDistribution(1);
task.setUpdateTime(new Date());
task.setTaskName(organizeSaveDTO.getOrganizeTaskName());
task.setIsEncryption(organizeSaveDTO.getIsEncryption());
taskRepository.save(task);
// 分配任务引擎
DistributeDTO distributeDTO = new DistributeDTO();
@ -293,7 +294,6 @@ public class OrganizeServiceImpl implements OrganizeService {
taskOrganize.setRemark(organizeList.get(index).getRemark());
index++;
TaskOrganize saveTaskOrganize = taskOrganizeRepository.save(taskOrganize);
redisUtils.set(String.valueOf(saveTaskOrganize.getTaskId()), saveTaskOrganize.getOrganizeTaskName(), 2592000);//缓存时间三十天
// 发送通知的用户id
OrganizeUser organizeUser = organizeUserRepository.findByOrganizeIdAndIsLeader(distributeResponseDTO.getDeptId(), true);
userIdList.add(organizeUser.getUserId());
@ -535,22 +535,33 @@ public class OrganizeServiceImpl implements OrganizeService {
@Override
public Map<String, List<String>> getLabel(ClueDto clueDto) {
TaskOrganizeQueryCriteria taskOrganizeQueryCriteria = new TaskOrganizeQueryCriteria();
Map<String, List<String>> map = new HashMap<>();
Long organizeId = clueDto.getOrganizeId();
Long taskId = clueDto.getTaskId();
//查询任务(加密手机号状态)
Task taskDetails = taskRepository.findById(taskId).orElseGet(Task::new);
List<String> encryptionList = new ArrayList<>();
encryptionList.add(taskDetails.getIsEncryption() + "");
map.put("taskIsEncryption", encryptionList);
if (organizeId != null) {
taskOrganizeQueryCriteria.setOrganizeId(organizeId);
}
taskOrganizeQueryCriteria.setTaskId(taskId);
List<TaskOrganizeDto> taskOrganizeDtos = taskOrganizeMapper.toDto(taskOrganizeRepository.findAll((root, criteriaQuery, criteriaBuilder) -> QueryHelp.getPredicate(root, taskOrganizeQueryCriteria, criteriaBuilder)));
TaskOrganizeDto taskOrganizeDto = taskOrganizeDtos.get(0);
Map<String, List<String>> map = new HashMap<>();
//判断redis中是否有值,线索列表时查询任务名称,任务id作为key,任务名称为val,任务名称不能修改
String taskName = (String) redisUtils.get(taskOrganizeDto.getTaskId() + "");
if (organizeId == null && StringUtils.isBlank(taskName)) {
List<String> list = new ArrayList<>();
list.add(taskOrganizeDto.getOrganizeTaskName());
map.put("taskName", list);
redisUtils.set(String.valueOf(taskOrganizeDto.getTaskId()), taskOrganizeDto.getOrganizeTaskName(), 2592000);// 缓存三十天
if (clueDto.getIsRedis() != null && clueDto.getIsRedis() == 1) {
String taskNameKey = "task:name:" + taskOrganizeDto.getTaskId();
if (!redisUtils.hasKey(taskNameKey)){
List<String> list = new ArrayList<>();
list.add(taskOrganizeDto.getOrganizeTaskName());
map.put("taskName", list);
redisUtils.set(taskNameKey, taskOrganizeDto.getOrganizeTaskName(), 2592000);// 缓存三十天
}
String taskIsEncryptionKey = "task:encryption:" + taskOrganizeDto.getTaskId();
if (!redisUtils.hasKey(taskIsEncryptionKey)) {
redisUtils.set(taskIsEncryptionKey, taskDetails.getIsEncryption() + "", 2592000);// 缓存三十天
}
return map;
}
map.put("organizeLabel", taskOrganizeDto.getOrganizeLabel());

@ -85,6 +85,12 @@ public class TaskServiceImpl implements TaskService {
return taskDtos;
}
@Override
public Task queryDetails(Long taskId) {
Task task = taskRepository.findById(taskId).orElseGet(Task::new);
return task;
}
/**
* id
*

@ -30,4 +30,8 @@ public interface TaskClient {
@ApiOperation("websocket发送错误信息")
@GetMapping(PAY_PREFIX + "/sendErrMessage")
void sendErrMessage(@RequestParam("errorMessage") String errorMessage, @RequestParam("userId") Long userId);
@ApiOperation("查询任务详情")
@GetMapping(PAY_PREFIX + "/queryDetails")
ResponseEntity<Task> queryDetails(@RequestParam("taskId") Long taskId);
}

@ -22,4 +22,9 @@ public class TaskClientFallback implements TaskClient {
public void sendErrMessage(String errorMessage, Long userId) {
}
@Override
public ResponseEntity<Task> queryDetails(Long taskId) {
return null;
}
}

@ -2,10 +2,13 @@ package com.baiye.module.dao;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baiye.feign.OrganizeClient;
import com.baiye.model.dto.ClueDto;
import com.baiye.model.dto.ClueQueryCriteria;
import com.baiye.model.vo.ResSourceLabel;
import com.baiye.util.AESUtils;
import com.baiye.util.RedisUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.hibernate.query.internal.NativeQueryImpl;
import org.hibernate.transform.Transformers;
@ -13,6 +16,7 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
@ -24,10 +28,15 @@ import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class ClueJpa {
@PersistenceContext
EntityManager entityManager;
@Resource
private RedisUtils redisUtils;
@Resource
private OrganizeClient organizeClient;
@Value("${aes.secret}")
private String secret;
@ -133,12 +142,28 @@ public class ClueJpa {
clueDto.setMemberStatus((Integer) row.get("memberStatus"));
clueDto.setName((String) row.get("name"));
clueDto.setCreateTime((Date) row.get("createTime"));
BigInteger taskId = (BigInteger) row.get("taskId");
clueDto.setTaskId(taskId.longValue());
String phone = (String) row.get("nid");
if (StringUtils.isNotBlank(phone)) {
String nid = AESUtils.decrypt(phone, secret);
StringBuilder stringBuilder = new StringBuilder(nid);
String str = stringBuilder.replace(3, 7, "****").toString();
clueDto.setNid(str);
String key = "task:encryption:" + taskId;
String str = String.valueOf(redisUtils.get(key));
if (str.equals("null") || StringUtils.isBlank(str)) {
ClueDto clueDtoClient = new ClueDto();
clueDtoClient.setTaskId(taskId.longValue());
clueDtoClient.setIsRedis(1);
Map<String, List<String>> body = organizeClient.getLabel(clueDtoClient).getBody();
str = body.get("taskIsEncryption").get(0);
}
//str此次任务是否加密线索手机号 0:不加密 1:加密
if (str.equals("0")){
clueDto.setNid(nid);
}else{
StringBuilder stringBuilder = new StringBuilder(nid);
String strRep = stringBuilder.replace(3, 7, "****").toString();
clueDto.setNid(strRep);
}
}
clueDto.setWx((String) row.get("wx"));
clueDto.setAddress((String) row.get("address"));
@ -149,8 +174,6 @@ public class ClueJpa {
clueDto.setOrganizeId(organizeId.longValue());
BigInteger memberId = (BigInteger) row.get("memberId");
clueDto.setMemberId(memberId.longValue());
BigInteger taskId = (BigInteger) row.get("taskId");
clueDto.setTaskId(taskId.longValue());
clueDto.setOptimisticVersion((Integer) row.get("optimisticVersion"));
clueDtoList.add(clueDto);
}
@ -182,5 +205,4 @@ public class ClueJpa {
}
return list;
}
}

@ -149,10 +149,11 @@ public class ClueServiceImpl implements ClueService {
Long count = clueJpa.getCount(clueQueryCriteria);
// 列表中查询标签信息 和 axb请求字段
for (ClueDto clueDto : clueDtoList) {
String str = (String) redisUtils.get(String.valueOf(clueDto.getTaskId()));
if (StringUtils.isBlank(str)) {
String taskNameKey = "task:name:" + clueDto.getTaskId();
String str = (String) redisUtils.get(taskNameKey);
if (str.equals("null") || StringUtils.isBlank(str)) {
//设置空,取值判断空
clueDto.setOrganizeId(null);
clueDto.setIsRedis(1);
Map<String, List<String>> body = organizeClient.getLabel(clueDto).getBody();
str = body.get("taskName").get(0);
}
@ -174,6 +175,7 @@ public class ClueServiceImpl implements ClueService {
if (clueQueryCriteria.getId() != null) {
for (ClueDto clueDto : clueDtoList) {
//循环查库ID查询只一次循环
clueDto.setIsRedis(0);
Map<String, List<String>> mapList = organizeClient.getLabel(clueDto).getBody();
clueDto.setBaseLabel(mapList.get("baseLabel"));
clueDto.setOrganizeLabel(mapList.get("organizeLabel"));

Loading…
Cancel
Save