|
|
|
@ -1,5 +1,6 @@
|
|
|
|
|
package com.baiye.modules.distribute.service.impl;
|
|
|
|
|
|
|
|
|
|
import cn.hutool.cache.CacheUtil;
|
|
|
|
|
import cn.hutool.core.codec.Base64;
|
|
|
|
|
import cn.hutool.core.text.CharSequenceUtil;
|
|
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
|
@ -24,6 +25,7 @@ import com.baiye.system.service.SysUserRoleService;
|
|
|
|
|
import com.baiye.system.service.SysUserService;
|
|
|
|
|
import com.baiye.util.AESUtils;
|
|
|
|
|
import com.baiye.util.DecryptPnoUtil;
|
|
|
|
|
import com.baiye.util.RedisUtils;
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
@ -35,6 +37,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @author Enzo
|
|
|
|
@ -52,6 +55,8 @@ public class TripartiteServiceImpl implements TripartiteService {
|
|
|
|
|
@Value("${snowflake.datacenterId}")
|
|
|
|
|
private int datacenterId;
|
|
|
|
|
|
|
|
|
|
private final RedisUtils redisUtils;
|
|
|
|
|
|
|
|
|
|
private final ClueService clueService;
|
|
|
|
|
|
|
|
|
|
private final CustomService customService;
|
|
|
|
@ -70,9 +75,11 @@ public class TripartiteServiceImpl implements TripartiteService {
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
|
public Boolean callbackByAppKeyAndNid(String appKey, PushClueDTO dto) {
|
|
|
|
|
String recId = dto.getRecId();
|
|
|
|
|
String called = dto.getCalled();
|
|
|
|
|
String remark = dto.getRemark();
|
|
|
|
|
String phone = CharSequenceUtil.EMPTY;
|
|
|
|
|
|
|
|
|
|
String typeName = dto.getEmpClientTypeName();
|
|
|
|
|
if (StringUtils.isNotBlank(dto.getMobile())) {
|
|
|
|
|
phone = Base64.decodeStr(dto.getMobile());
|
|
|
|
@ -90,6 +97,10 @@ public class TripartiteServiceImpl implements TripartiteService {
|
|
|
|
|
Long baseUserId = byAppKey.getCompanyId();
|
|
|
|
|
// 录入员id
|
|
|
|
|
Long reportUserId = byAppKey.getCreateBy();
|
|
|
|
|
// 已经存在的进行修改
|
|
|
|
|
if (StringUtils.isNotBlank(recId) && ObjectUtil.isNotNull(redisUtils.get(recId))) {
|
|
|
|
|
return customService.updateByNid(phone, remark);
|
|
|
|
|
}
|
|
|
|
|
List<String> channelIdentifying = byAppKey.getChannelIdentifying();
|
|
|
|
|
// 查询所有分发员
|
|
|
|
|
List<Long> userList = sysUserRoleService.selectUserIdByRoleCode
|
|
|
|
@ -106,7 +117,7 @@ public class TripartiteServiceImpl implements TripartiteService {
|
|
|
|
|
Long clueId = IdUtil.getSnowflake(workerId, datacenterId).nextId();
|
|
|
|
|
ClueDTO clueDTO = ClueDTO.builder().originName(ClueSourceEnum.STORE_DISTRIBUTION.getDescription()).clueId(clueId).remark
|
|
|
|
|
(remark).nid(AESUtils.encrypt(phone, securityProperties.getPasswordSecretKey())).assignedBy
|
|
|
|
|
(reportUserId).createBy(distributeId).isNewClue(Boolean.TRUE).build();
|
|
|
|
|
(reportUserId).createBy(distributeId).isNewClue(Boolean.TRUE).build();
|
|
|
|
|
list.add(clueDTO);
|
|
|
|
|
clueService.saveClueListByStoreInfo(list);
|
|
|
|
|
}
|
|
|
|
@ -114,7 +125,10 @@ public class TripartiteServiceImpl implements TripartiteService {
|
|
|
|
|
CallbackCustomDTO customDTO = CallbackCustomDTO.builder().channelType(DefaultNumberConstants.FOUR_NUMBER).customNid(phone).channelName(byAppKey.getName()).
|
|
|
|
|
distributeId(distributeId).sex(DefaultNumberConstants.MINUS_ONE_NUMBER).identifying(channelIdentifying).reportUserId(reportUserId).remark(remark).companyId
|
|
|
|
|
(byId.getWhichUserId()).enterName(byId.getUsername()).build();
|
|
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(recId)) {
|
|
|
|
|
// 缓存三天
|
|
|
|
|
redisUtils.set(recId, phone, DefaultNumberConstants.THREE_NUMBER, TimeUnit.DAYS);
|
|
|
|
|
}
|
|
|
|
|
// 插入资源表
|
|
|
|
|
return customService.createByCallBack(Collections.singletonList(customDTO));
|
|
|
|
|
}
|
|
|
|
|