修改解密方式

master
bynt 1 year ago
parent c61f3b5ec8
commit 5bae4de6a5

@ -1,6 +1,7 @@
package com.baiye.util;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.crypto.digest.DigestUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
import lombok.extern.slf4j.Slf4j;
@ -236,17 +237,8 @@ public class AESUtils {
}
public static void main(String[] args) {
// 密钥
String key = "park_%33229*711&";
// 要加密的字符串
String txt = "18876533241";
// 加密
String txt_1 = dbEncrypt(key, txt);
System.out.println(txt + "加密的内容为:" + txt_1);
System.out.println(txt_1 + "解密的内容为:" + dbDecrypt(key, txt_1));
String md5Hex1 = DigestUtil.md5Hex("869497065278804");
System.out.println(md5Hex1.length());
}

@ -64,12 +64,13 @@ public interface TaskImeiRepository extends JpaRepository<TaskImei, Long>, JpaSp
*
*
* @param userId
* @param beginTime
* @param endTime
* @param num
* @return
*/
@Query(value = "select count(1) from tb_task_imei where" +
" to_days(create_time) = to_days(now()) and task_id = ?1 and status = ?2", nativeQuery = true)
Integer countByUserId(Long userId, Integer num);
@Query("select count(t) from TaskImei t where userId = ?1 and status = ?4 and updateTime between ?2 and ?3")
Integer countByUserId(Long userId, DateTime beginTime, DateTime endTime, Integer num);
/**
* imei

@ -148,6 +148,14 @@ public class TaskController {
return taskService.updateDmpTask(taskTagDto);
}
@ApiOperation("修改任务加密方式")
@GetMapping("/updateEncryption")
public CommonResponse<Object> updateTaskEncryption(@RequestParam Long taskId, @RequestParam Integer encryptionType) {
taskService.updateTaskEncryption(taskId, encryptionType);
return CommonResponse.createBySuccess();
}
@Inner
@ApiOperation("用户id获取任务id")
@GetMapping("/findTaskByUserId")

@ -59,11 +59,13 @@ public interface TaskImeiService {
/**
*
*
* @param taskId
* @param userId
* @param beginTime
* @param endTime
* @param num
* @return
*/
Integer countByUserIdAndDate(Long taskId, Integer num);
Integer countByUserIdAndDate(Long userId, DateTime beginTime, DateTime endTime, Integer num);
/**
* Imei()

@ -110,4 +110,12 @@ public interface TaskService {
* @return
*/
TaskUserDTO queryTaskByUserId(Long userId, Integer number);
/**
*
* @param taskId
* @param encryptionType
* @return
*/
Boolean updateTaskEncryption(Long taskId, Integer encryptionType);
}

@ -24,8 +24,8 @@ public class TaskDto implements Serializable {
private Integer isDistribution;
@ApiModelProperty(value = "此次任务是否加密线索手机号 0:不加密 1:加密")
private Integer isEncryption;
@ApiModelProperty(value = "此次任务是否加密线索手机号 3:不加密 2:随机 1:不加密")
private Integer encryptionType;
@ApiModelProperty(value = "任务类型: 0:正常任务 1:动态任务")
private Integer taskType;

@ -288,7 +288,7 @@ public class OrganizeServiceImpl implements OrganizeService {
task.setIsDistribution(1);
task.setUpdateTime(new Date());
task.setTaskName(organizeSaveDTO.getOrganizeTaskName());
task.setIsEncryption(organizeSaveDTO.getIsEncryption());
task.setEncryptionType(organizeSaveDTO.getIsEncryption());
//插入标签
List<String> labelList = labelService.findLabelList(new HashSet<>(Collections.singleton(labelOrganizeId)));
if (CollUtil.isNotEmpty(labelList)) {

@ -3,7 +3,6 @@ package com.baiye.modules.platform.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.text.StrPool;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.config.properties.DeliveryProperties;
@ -30,7 +29,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@ -108,8 +106,8 @@ public class TaskImeiServiceImpl implements TaskImeiService {
}
@Override
public Integer countByUserIdAndDate(Long taskId, Integer num) {
return taskImeiRepository.countByUserId(taskId, num);
public Integer countByUserIdAndDate(Long userId, DateTime beginTime, DateTime endTime, Integer num) {
return taskImeiRepository.countByUserId(userId, beginTime, endTime, num);
}
@Override

@ -32,6 +32,7 @@ import com.baiye.util.SecurityUtils;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.annotation.CachePut;
import org.springframework.cache.annotation.Cacheable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
@ -162,7 +163,7 @@ public class TaskServiceImpl implements TaskService {
private void createTask(Long taskId, Long id, String taskName, Integer isForm, Long labelOrganizeId, String remark) {
Task task = new Task();
task.setId(taskId);
task.setIsEncryption(DefaultNumberConstants.ZERO_NUMBER);
task.setEncryptionType(DefaultNumberConstants.ZERO_NUMBER);
//设置默认值
task.setIsDistribution(DefaultNumberConstants.ZERO_NUMBER);
task.setTaskType(DefaultNumberConstants.ONE_NUMBER);
@ -323,7 +324,7 @@ public class TaskServiceImpl implements TaskService {
Task task = taskRepository.findById(taskId).orElseGet(Task::new);
Long id = task.getId();
String taskName = task.getTaskName();
Integer isEncryption = task.getIsEncryption();
Integer isEncryption = task.getEncryptionType();
switch (type) {
// 任务名称查询并set到缓存中
case 0:
@ -333,7 +334,7 @@ public class TaskServiceImpl implements TaskService {
redisUtils.set(taskNameKey, taskName, 2592000);// 缓存三十天
}
break;
case 1:
default:
// 任务加密状态查询并set到缓存中
String taskIsEncryptionKey = KeyFieldConstants.TASK_ENCRYPTION_KEY + id;
if (!redisUtils.hasKey(taskIsEncryptionKey)) {
@ -442,15 +443,17 @@ public class TaskServiceImpl implements TaskService {
public void updateTaskEncryption(Long taskId) {
Task task = taskRepository.findById(taskId).orElseGet(Task::new);
if (task.getIsDistribution() == 0) {
task.setIsEncryption(1);
task.setEncryptionType(1);
} else {
task.setIsEncryption(0);
task.setEncryptionType(0);
}
taskRepository.save(task);
String key = "task:encryption:" + taskId;
if (!redisUtils.hasKey(key)) {
redisUtils.set(key, String.valueOf(task.getIsEncryption()), 2592000);
redisUtils.set(key, String.valueOf(task.getEncryptionType()), 2592000);
}
}
@ -529,4 +532,17 @@ public class TaskServiceImpl implements TaskService {
}
return null;
}
@Override
public Boolean updateTaskEncryption(Long taskId, Integer encryptionType) {
Task task = taskRepository.findById(taskId).orElseGet(Task::new);
task.setEncryptionType(encryptionType);
taskRepository.save(task);
String name = KeyFieldConstants.TASK_NAME_KEY + taskId;
String key = KeyFieldConstants.TASK_ENCRYPTION_KEY + taskId;
redisUtils.del(name);
redisUtils.del(key);
redisUtils.set(key, String.valueOf(task.getEncryptionType()), 2592000);
return Boolean.TRUE;
}
}

@ -337,7 +337,7 @@ public class UserServiceImpl implements UserService {
Task task = new Task();
task.setId(taskId);
task.setTaskName(username);
task.setIsEncryption(DefaultNumberConstants.ZERO_NUMBER);
task.setEncryptionType(DefaultNumberConstants.ZERO_NUMBER);
//设置默认值
if (isForm == DefaultNumberConstants.SIX_NUMBER || isForm == DefaultNumberConstants.SEVEN_NUMBER) {
task.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);

@ -2,6 +2,7 @@ package com.baiye.timed;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.text.CharSequenceUtil;
import cn.hutool.core.text.StrPool;
@ -105,8 +106,10 @@ public class DeliveryBalanceTask {
// 截取数据
if (ObjectUtil.isNotNull(dmpLimitNum)
&& dmpLimitNum > DefaultNumberConstants.ZERO_NUMBER) {
DateTime now = DateUtil.date();
// 统计今天数量
Integer count = taskImeiService.countByUserIdAndDate(taskId, DefaultNumberConstants.ONE_NUMBER);
Integer count = taskImeiService.countByUserIdAndDate
(userId, DateUtil.beginOfDay(now), DateUtil.endOfDay(now), DefaultNumberConstants.ONE_NUMBER);
downList = CollUtil.sub(list, count >=
dmpLimitNum ? DefaultNumberConstants.ZERO_NUMBER : dmpLimitNum, list.size());
list = CollUtil.sub(list, DefaultNumberConstants.ZERO_NUMBER,

@ -3,6 +3,7 @@ package com.baiye.model.entity;
import com.baiye.util.JpaConverterListJson;
import com.baiye.valid.AddGroup;
import io.swagger.annotations.ApiModelProperty;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
@ -28,66 +29,66 @@ import java.util.List;
@EntityListeners(AuditingEntityListener.class)
public class BaseTask implements Serializable {
private static final long serialVersionUID = 8623354712013889005L;
private static final long serialVersionUID = 8623354712013889005L;
@ApiModelProperty(value = "任务名称")
@Column(name = "task_name")
@NotNull(groups = AddGroup.class, message = "任务名称不能为空")
private String taskName;
@ApiModelProperty(value = "任务名称")
@Column(name = "task_name")
@NotNull(groups = AddGroup.class, message = "任务名称不能为空")
private String taskName;
@ApiModelProperty(value = "任务资源总条数")
@Column(name = "total_number")
private Integer totalNumber = 0;
@ApiModelProperty(value = "任务资源总条数")
@Column(name = "total_number")
private Integer totalNumber = 0;
@ApiModelProperty(value = "分配状态 0未分配 1已分配")
@Column(name = "is_distribution")
private Integer isDistribution;
@ApiModelProperty(value = "分配状态 0未分配 1已分配")
@Column(name = "is_distribution")
private Integer isDistribution;
@ApiModelProperty(value = "此次任务是否加密线索手机号 0:不加密 1:加密")
@Column(name = "is_encryption")
private Integer isEncryption;
@ApiModelProperty(value = "此次任务是否加密线索手机号 0:不加密 1:加密")
@Column(name = "encryption_type")
private Integer encryptionType;
@ApiModelProperty(value = "任务类型: 0:正常任务 1:动态任务")
@Column(name = "task_type")
@NotNull(groups = AddGroup.class, message = "任务状态不能为空")
private Integer taskType;
@ApiModelProperty(value = "任务类型: 0:正常任务 1:动态任务")
@Column(name = "task_type")
@NotNull(groups = AddGroup.class, message = "任务状态不能为空")
private Integer taskType;
@ApiModelProperty(value = "关联的标签组id")
@Column(name = "label_organize_id")
private Long labelOrganizeId;
@ApiModelProperty(value = "关联的标签组id")
@Column(name = "label_organize_id")
private Long labelOrganizeId;
@ApiModelProperty(value = "创建人")
@Column(name = "create_by")
@NotNull(groups = AddGroup.class, message = "用户不能为空")
private Long createBy;
@ApiModelProperty(value = "创建人")
@Column(name = "create_by")
@NotNull(groups = AddGroup.class, message = "用户不能为空")
private Long createBy;
@ApiModelProperty(value = "更新人")
@Column(name = "update_by")
private Long updateBy;
@ApiModelProperty(value = "更新人")
@Column(name = "update_by")
private Long updateBy;
@ApiModelProperty(value = "创建时间")
@Column(name = "create_time")
@CreationTimestamp
private java.util.Date createTime;
@ApiModelProperty(value = "创建时间")
@Column(name = "create_time")
@CreationTimestamp
private java.util.Date createTime;
@ApiModelProperty(value = "更新时间")
@Column(name = "update_time")
@LastModifiedDate
private java.util.Date updateTime;
@ApiModelProperty(value = "更新时间")
@Column(name = "update_time")
@LastModifiedDate
private java.util.Date updateTime;
@Convert(converter = JpaConverterListJson.class)
private List<String> baseLabel;
@Convert(converter = JpaConverterListJson.class)
private List<String> baseLabel;
@ApiModelProperty(value = "备注")
@Column(name = "remark")
private String remark;
@ApiModelProperty(value = "备注")
@Column(name = "remark")
private String remark;
@ApiModelProperty(value = "特殊任务 1-动态表单任务 2-员工个人上传任务 3-抖音任务 4-dmp(投流) 5-拓客 6-拓客回流 7-投流回流")
@Column(name = "is_form")
@NotNull(groups = AddGroup.class, message = "任务状态不能为空")
private Integer isForm=0;
@ApiModelProperty(value = "特殊任务 1-动态表单任务 2-员工个人上传任务 3-抖音任务 4-dmp(投流) 5-拓客 6-拓客回流 7-投流回流")
@Column(name = "is_form")
@NotNull(groups = AddGroup.class, message = "任务状态不能为空")
private Integer isForm = 0;
@ApiModelProperty(value = "是否开启了自动分配 0:关闭 1:开启")
@Column(name = "is_open")
private Integer isOpen = 0;
@ApiModelProperty(value = "是否开启了自动分配 0:关闭 1:开启")
@Column(name = "is_open")
private Integer isOpen = 0;
}

@ -7,6 +7,7 @@ import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONUtil;
import com.baiye.constant.AdPlatFormConstants;
import com.baiye.constant.ClueTypeConstants;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.KeyFieldConstants;
import com.baiye.exception.BadRequestException;
import com.baiye.feign.TaskClient;
@ -293,33 +294,38 @@ public class ClueJpa {
clueDto.setTaskId(taskId.longValue());
String phone = (String) row.get("nid");
Integer isClueEncryption = (Integer) row.get("isEncryption");
//查看任务是否需要加密显示资源
String taskEncryption = String.valueOf(redisUtils.get(KeyFieldConstants.TASK_ENCRYPTION_KEY + taskId));
if (StringUtils.isBlank(taskEncryption) || taskEncryption.equals("null")) {
ResponseEntity<Map<String, Object>> response = taskClient.findRedisTask(taskId.longValue(), 1);
if (response.getStatusCode().value() != 200) {
throw new BadRequestException("获取加密信息错误");
}
taskEncryption = String.valueOf(Objects.requireNonNull(response.getBody()).get(KeyFieldConstants.TASK_ENCRYPTION_KEY));
}
//处理手机号显示是否用****隐藏,管理员查看任务下的资源不需要加密(isAdmin控制)
if (StringUtils.isNotBlank(phone)) {
String nid = AESUtils.decrypt(phone, secret);
//投流线索 返回处理
if (clueType != null && clueType == 4) {
clueDto.setNid(RandomUtil.randomString(22));
} else if (clueType != null && clueType == 5
&& Integer.parseInt(taskEncryption) > DefaultNumberConstants.ZERO_NUMBER) {
nid = Integer.parseInt(taskEncryption) == DefaultNumberConstants.ONE_NUMBER
? nid.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2")
: RandomUtil.randomString(22);
clueDto.setNid(nid);
} else {
//查看资源是否需要加密显示
if (isClueEncryption != null && isClueEncryption == 1) {
StringBuilder stringBuilder = new StringBuilder(nid);
nid = stringBuilder.replace(3, 7, "****").toString();
} else {
if (!isAdmin) {
//查看任务是否需要加密显示资源
String isTaskEncryption = String.valueOf(redisUtils.get(KeyFieldConstants.TASK_ENCRYPTION_KEY + taskId));
if (StringUtils.isEmpty(isTaskEncryption) || isTaskEncryption.equals("null")) {
ResponseEntity<Map<String, Object>> response = taskClient.findRedisTask(taskId.longValue(), 1);
if (response.getStatusCode().value() != 200) {
throw new BadRequestException("获取加密信息错误");
}
isTaskEncryption = String.valueOf(Objects.requireNonNull(response.getBody()).get(KeyFieldConstants.TASK_ENCRYPTION_KEY));
}
//任务是否加密 0:不加密 1:加密
if (isTaskEncryption.equals("1")) {
StringBuilder stringBuilder = new StringBuilder(nid);
nid = stringBuilder.replace(3, 7, "****").toString();
}
if (!isAdmin && (taskEncryption.equals("1"))) {
StringBuilder stringBuilder = new StringBuilder(nid);
nid = stringBuilder.replace(3, 7, "****").toString();
}
}
clueDto.setNid(nid);

@ -82,7 +82,7 @@ public class AbMessageServiceImpl implements AbMessageService {
task.setId(taskId);
task.setTotalNumber(taskNum);
task.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);
task.setIsEncryption(DefaultNumberConstants.ZERO_NUMBER);
task.setEncryptionType(DefaultNumberConstants.ZERO_NUMBER);
taskClient.updateTask(task);
return Boolean.TRUE;
}

@ -889,7 +889,7 @@ public class ClueServiceImpl implements ClueService {
username = "拓客模块-拓客回流池";
}
task.setTaskName(username);
task.setIsEncryption(DefaultNumberConstants.ZERO_NUMBER);
task.setEncryptionType(DefaultNumberConstants.ZERO_NUMBER);
task.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);
task.setTaskType(DefaultNumberConstants.ONE_NUMBER);
task.setIsForm(crmClueType);

@ -88,7 +88,7 @@ platform:
emailPassword: baiye2022
customerId: QISX0xz4l6fR3YL2sUNSpzM2
toEmailAddress: lambda0821@outlook.com
toGenderEmailAddress: ggggod_2022@outlook.com
toGenderEmailAddress: lambda0821@outlook.com
dmpDownPath: http://8.130.96.163:8001/dmp/down/
privateKey: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAJi+nz0zudS+4Sh+SmTnRfzgJOBIEwlLlJhcRgUbInvFx03zUgdzOUrGsvD2OTPPssnY8dv+Zgz2kUSEDYaWWKUs+VAklVOo0sOxzRMaUfwHRBN3Eq9OkqibDerYf6WUdv1k1BJsXSIdTlz8m6rtVbPF2hz8x/kYyJFzhM2IKTITAgMBAAECgYAgTZAXvWy7lXLAwZSyKkce57hkxllgSd+vKTSVt9tfGcDAt4jNkoy3R7ZoR2ppjq9dCMh9ohuq+ipWtya1I+6zC5sflk9HI/rf+5bq3JRJvxq3EJYe5DlSjQitLUMRP6PQorHnZZj/bdqKgRvrulI8XtK5Fv9Cd4jhkbSZtzgpYQJBAOJu0nu4qJCqIYLCmFWDpRzi9cu8/TFCBLVDH0xhNi28JL6G8xOfdzxsQa8ZlLOxPwn56VbS3+Korq34WCOAG5cCQQCssI4I7dshlA7kXeurVSFvui1YV/7ofFOxRs019+V88tfwNby5TAS9YjX7AuvGkobjpBBNEkE0JExf69m6VBzlAkB5te4HuLNKx1gp7CVr2c43n7tVHynNf1n+gKzjJmGz5ayuiOVBx/aUkPAhiZOHnx9uYlnNZJ4ZPGhgdNwTgPnTAkB61pQSMe/AMOtu8ogjNck1CoAa6W0/vsBhx/VNQGsTuEJ2ciMuw65TcLrpNKi2daBR6XBXAnczOebCDKix7AcpAkEArrU+bx6GwR+UbgoNAl1KwFLrV50pasK7Mlp0BkHM0cz4BGB53O5ng+TJHzen03OgC9I1W1WFAYHj03lb84qM/w==
publicKey: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYvp89M7nUvuEofkpk50X84CTgSBMJS5SYXEYFGyJ7xcdN81IHczlKxrLw9jkzz7LJ2PHb/mYM9pFEhA2GllilLPlQJJVTqNLDsc0TGlH8B0QTdxKvTpKomw3q2H+llHb9ZNQSbF0iHU5c/Juq7VWzxdoc/Mf5GMiRc4TNiCkyEwIDAQAB

Loading…
Cancel
Save