添加员工推送

master
bynt 2 years ago
parent cd628a4114
commit e5d98f6db0

@ -11,5 +11,5 @@ public class ClueTypeConstants {
public static final Integer[] SCREEN_TYPE = new Integer[]{0, 1, 2, 3, 6, 7};
public static final Integer[] TOKER_TYPE = new Integer[]{4, 5};
public static final Integer[] CLUE_POOL =new Integer[]{0,1,3};
public static final Integer[] CLUE_POOL = new Integer[]{0, 8, 1, 3};
}

@ -96,6 +96,13 @@ public interface CacheKey {
*/
String UPLOAD_BATCH = "upload::batch::";
/**
*
*/
String USER_JOB_NUMBER_CACHE = "UserJobNumberCache::";
/**
* oauth

@ -4,6 +4,7 @@ import com.baiye.annotation.Inner;
import com.baiye.http.CommonResponse;
import com.baiye.model.dto.DynamicTaskDistributionDTO;
import com.baiye.model.dto.TaskQueryCriteria;
import com.baiye.model.dto.TaskUserDTO;
import com.baiye.modules.platform.domain.Task;
import com.baiye.modules.platform.service.TaskService;
import com.baiye.modules.platform.service.dto.TaskTagDto;
@ -146,4 +147,12 @@ public class TaskController {
public CommonResponse<Object> updateDmpTask(@RequestBody TaskTagDto taskTagDto) {
return taskService.updateDmpTask(taskTagDto);
}
@Inner
@ApiOperation("用户id获取任务id")
@GetMapping("/findTaskByUserId")
public TaskUserDTO findTaskId(@RequestParam(value = "userId") Long userId, @RequestParam("number") Integer number) {
return taskService.queryTaskByUserId(userId, number);
}
}

@ -3,6 +3,7 @@ package com.baiye.modules.platform.service;
import com.baiye.http.CommonResponse;
import com.baiye.model.dto.DynamicTaskDistributionDTO;
import com.baiye.model.dto.TaskQueryCriteria;
import com.baiye.model.dto.TaskUserDTO;
import com.baiye.modules.platform.domain.Task;
import com.baiye.modules.platform.service.dto.TaskDto;
import com.baiye.modules.platform.service.dto.TaskTagDto;
@ -101,4 +102,12 @@ public interface TaskService {
* dmp
*/
CommonResponse<Object> updateDmpTask(TaskTagDto taskTagDto);
/**
* idid
* @param userId
* @param number
* @return
*/
TaskUserDTO queryTaskByUserId(Long userId, Integer number);
}

@ -31,6 +31,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.Cacheable;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
@ -122,6 +123,7 @@ public class TaskServiceImpl implements TaskService {
return CommonResponse.createBySuccess();
}
private List<String> createTag(Long taskId, Long userId, List<String> tags) {
//一个公司中已经存在的tag
@ -474,4 +476,33 @@ public class TaskServiceImpl implements TaskService {
dynamicTaskDistributionUserDTO.setRatio(countMap.get(key));
}
}
@Override
@Cacheable(value = "TaskUserCache", key = "#userId")
public TaskUserDTO queryTaskByUserId(Long userId, Integer number) {
Long managementUserId = userRepository.queryManagementUserId(userId);
if (ObjectUtil.isNotNull(managementUserId)) {
TaskUserDTO dto = new TaskUserDTO();
dto.setUserId(managementUserId);
List<Task> byCreateBy = taskRepository.findByCreateByAndIsForm(managementUserId, number);
if (CollUtil.isNotEmpty(byCreateBy)) {
Long taskId = byCreateBy.get(DefaultNumberConstants.ZERO_NUMBER).getId();
dto.setTaskId(taskId);
return dto;
}
Task task = new Task();
task.setId(IdUtil.getSnowflake(workerId, datacenterId).nextId());
task.setTotalNumber(DefaultNumberConstants.ZERO_NUMBER);
task.setTaskType(DefaultNumberConstants.ZERO_NUMBER);
task.setTaskType(DefaultNumberConstants.ONE_NUMBER);
task.setIsForm(DefaultNumberConstants.EIGHT_NUMBER);
task.setCreateBy(managementUserId);
task.setTaskName("表单回流任务");
Long taskId = taskRepository.save(task).getId();
dto.setTaskId(taskId);
return dto;
}
return null;
}
}

@ -19,6 +19,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.json.JSONUtil;
import com.baiye.annotation.Inner;
import com.baiye.annotation.Log;
import com.baiye.component.LoginUser;
import com.baiye.config.properties.RsaProperties;
import com.baiye.constant.AdPlatFormConstants;
@ -81,6 +82,7 @@ public class UserController {
private String personnelList;
@Log("获取用户信息")
@ApiOperation("获取用户信息")
@GetMapping(value = "/info")
public ResponseEntity<Object> getUserInfo() {
@ -332,4 +334,12 @@ public class UserController {
}
@Inner
@GetMapping("/query/jobNumber")
@ApiOperation("用户id查询")
public Long findUserInfo(@RequestParam("jobNumber") String jobNumber) {
return userService.findByJobNumber(jobNumber);
}
}

@ -117,6 +117,10 @@ public class User extends BaseEntity implements Serializable {
@ApiModelProperty(value = "是否审核")
private Boolean isReview = Boolean.FALSE;
@Column(name = "job_number")
@ApiModelProperty(value = "工号")
private String jobNumber;
@Column(name = "turn_crm_num")
@ApiModelProperty(value = "用户每天最大转crm条数")
private Integer turnCrmNum;

@ -278,5 +278,21 @@ public interface UserRepository extends JpaRepository<User, Long>, JpaSpecificat
@Query(value = "select expirationTime from User where id = ?1")
Date findExpirationTimeByUserId(Long userId);
/**
*
*
* @param jobNumber
* @return /
*/
@Query(value = "select id from User where jobNumber = ?1")
Long findByJobNumber(String jobNumber);
/**
* idid
*
* @param userId
* @return
*/
@Query(value = "SELECT user_id FROM tb_company c WHERE c.id = (SELECT u.company_id FROM sys_user u WHERE u.user_id = ?1)", nativeQuery = true)
Long queryManagementUserId(Long userId);
}

@ -289,4 +289,11 @@ public interface UserService {
* @param currentUserId
*/
void removeUserExpiration(Long currentUserId);
/**
*
* @param jobNumber
* @return
*/
Long findByJobNumber(String jobNumber);
}

@ -536,6 +536,10 @@ public class UserServiceImpl implements UserService {
if (user1 != null && !user.getId().equals(user1.getId())) {
throw new EntityExistException(User.class, "phone", resources.getPhone());
}
if (StringUtils.isNotBlank(resources.getJobNumber())) {
redisUtils.del(CacheKey.USER_JOB_NUMBER_CACHE + user.getJobNumber());
}
user.setJobNumber(resources.getJobNumber());
user.setNickName(resources.getNickName());
user.setPhone(resources.getPhone());
user.setGender(resources.getGender());
@ -847,4 +851,10 @@ public class UserServiceImpl implements UserService {
}
@Override
@Cacheable(value = "UserJobNumberCache", key = "#jobNumber")
public Long findByJobNumber(String jobNumber) {
return userRepository.findByJobNumber(jobNumber);
}
}

@ -49,7 +49,6 @@ public class DeliveryBalanceTask {
private final TaskImeiService taskImeiService;
private final ClueTalkService clueTalkService;
private final DownRecordService downRecordService;

@ -61,7 +61,7 @@ public class CSVFileUtil {
// 去除重复
List<String> phoneSets = Lists.newArrayList(Sets.newHashSet(phoneList));
File csvFile = new File("C:\\Users\\a\\Desktop\\2-14-001-dmp.csv");
File csvFile = new File("C:\\Users\\a\\Desktop\\1-dmp.csv");
//导入HuTool中CSV工具包的CsvWriter类
//设置导出字符类型, CHARSET_UTF_8
CsvWriter writer = CsvUtil.getWriter(csvFile, CharsetUtil.CHARSET_UTF_8);

@ -0,0 +1,23 @@
package com.baiye.model.dto;
import lombok.Data;
import java.io.Serializable;
/**
* @author Enzo
* @date : 2023/3/3
*/
@Data
public class TaskUserDTO implements Serializable {
private static final long serialVersionUID = 3421879104683964857L;
private Long userId;
private Long taskId;
public TaskUserDTO() {
}
}

@ -94,4 +94,6 @@ public class UserDto extends BaseDTO implements Serializable {
private Boolean isTokerAdmin = false;
private Integer turnCrmNum;
private String jobNumber;
}

@ -1,9 +1,11 @@
package com.baiye.feign;
import com.baiye.constant.SecurityConstants;
import com.baiye.feign.fallback.TaskClientFallback;
import com.baiye.http.CommonResponse;
import com.baiye.model.dto.DynamicTaskDistributionDTO;
import com.baiye.model.dto.TaskQueryCriteria;
import com.baiye.model.dto.TaskUserDTO;
import com.baiye.module.entity.Task;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
@ -65,4 +67,15 @@ public interface TaskClient {
@ApiOperation("查询任务标签和小组任务标签")
@GetMapping(PAY_PREFIX + "/findTaskLabel")
ResponseEntity<List<Object>> findTaskLabel(@RequestParam(value = "userId") Long userId);
/**
*
*
* @param userId
* @param number
* @param from
* @return
*/
@GetMapping(PAY_PREFIX + "/findTaskByUserId")
TaskUserDTO findByTaskByUserId(@RequestParam(value = "userId") Long userId, @RequestParam("number") Integer number, @RequestHeader(SecurityConstants.FROM) String from);
}

@ -1,13 +1,11 @@
package com.baiye.feign;
import com.baiye.constant.SecurityConstants;
import com.baiye.feign.fallback.UserClientFallback;
import com.baiye.model.dto.UserDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
import java.util.Set;
@ -38,4 +36,13 @@ public interface UserClient {
@GetMapping(PAY_PREFIX + "/info/id")
@ApiOperation("用户id查询")
UserDto findUserInfo(@RequestParam("userId") Long userId);
/**
* id
* @param jobNumber
* @param from
* @return
*/
@GetMapping(PAY_PREFIX + "/query/jobNumber")
Long findByJobNumber(@RequestParam("jobNumber") String jobNumber, @RequestHeader(SecurityConstants.FROM) String from);
}

@ -4,6 +4,7 @@ import com.baiye.feign.TaskClient;
import com.baiye.http.CommonResponse;
import com.baiye.model.dto.DynamicTaskDistributionDTO;
import com.baiye.model.dto.TaskQueryCriteria;
import com.baiye.model.dto.TaskUserDTO;
import com.baiye.module.entity.Task;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
@ -64,4 +65,11 @@ public class TaskClientFallback implements TaskClient {
public ResponseEntity<List<Object>> findTaskLabel(Long userId) {
return null;
}
@Override
public TaskUserDTO findByTaskByUserId(Long userId, Integer number, String from) {
return null;
}
}

@ -24,4 +24,11 @@ public class UserClientFallback implements UserClient {
public UserDto findUserInfo(Long userId) {
return null;
}
@Override
public Long findByJobNumber(String jobNumber, String from) {
return null;
}
}

@ -0,0 +1,32 @@
package com.baiye.module.controller;
import com.baiye.http.CommonResponse;
import com.baiye.module.service.AbMessageService;
import com.baiye.module.service.dto.ABMessageDTO;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author Enzo
* @date : 2023/3/2
*/
@RestController
@RequestMapping("/open/v1/exchange")
@RequiredArgsConstructor
public class AbMessageController {
private final AbMessageService abMessageService;
@ApiOperation(value = "查询个人未审核信息")
@PostMapping("/form")
public CommonResponse<Object> queryNotApproved(@RequestBody @Validated ABMessageDTO abMessageDTO){
return CommonResponse.createBySuccess(abMessageService.receiveDate(abMessageDTO));
}
}

@ -29,4 +29,7 @@ public class FromTaskApi {
return formSourceService.acceptFormSource(json);
}
}

@ -0,0 +1,17 @@
package com.baiye.module.service;
import com.baiye.module.service.dto.ABMessageDTO;
/**
* @author Enzo
* @date : 2023/3/2
*/
public interface AbMessageService {
/**
*
* @param abMessageDTO
* @return
*/
Boolean receiveDate(ABMessageDTO abMessageDTO);
}

@ -0,0 +1,93 @@
package com.baiye.module.service.dto;
import com.google.gson.annotations.SerializedName;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @author Enzo
* @date 2023-3-2
*/
@Data
public class ABMessageDTO {
/**
* ID
*/
@SerializedName("app_id")
private String app_id;
/**
*
*/
@SerializedName("startTime")
private Long startTime;
/**
*
*/
@SerializedName("endTime")
private Long endTime;
/**
* ID
*/
@SerializedName("app_id")
private String recId;
/**
*
*/
@SerializedName("talkTime")
private Long talkTime;
/**
* 1.AI 2.AI+3.
* 4.5.
*/
@SerializedName("act_type")
private String actType;
/**
* Base64
*/
@NotBlank
@SerializedName("mobile")
private String mobile;
/**
*
*/
@SerializedName("job_number")
private String jobNumber;
/**
*
*/
@SerializedName("ext_account")
private String extAccount;
/**
*
*/
@SerializedName("app_id")
private Long timestamp;
/**
* Base64
*/
@SerializedName("app_id")
private String actName;
/**
*
*/
@SerializedName("audio_url")
private String audioUrl;
}

@ -0,0 +1,92 @@
package com.baiye.module.service.impl;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.util.ObjectUtil;
import com.baiye.constant.DefaultNumberConstants;
import com.baiye.constant.SecurityConstants;
import com.baiye.feign.TaskClient;
import com.baiye.feign.UserClient;
import com.baiye.model.dto.TaskUserDTO;
import com.baiye.module.dao.ClueMiddleRepository;
import com.baiye.module.dao.ClueRepository;
import com.baiye.module.entity.Clue;
import com.baiye.module.entity.ClueMiddle;
import com.baiye.module.entity.Task;
import com.baiye.module.service.AbMessageService;
import com.baiye.module.service.dto.ABMessageDTO;
import com.baiye.util.MobileUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* @author Enzo
* @date : 2022/11/24
*/
@Service
@Slf4j
@RequiredArgsConstructor
public class AbMessageServiceImpl implements AbMessageService {
private final TaskClient taskClient;
private final UserClient userClient;
private final ClueRepository clueRepository;
private final ClueMiddleRepository clueMiddleRepository;
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean receiveDate(ABMessageDTO abMessageDTO) {
String mobile = Base64.decodeStr(abMessageDTO.getMobile());
String jobNumber = abMessageDTO.getJobNumber();
if (StringUtils.isBlank(jobNumber) || StringUtils.isBlank(mobile) || !MobileUtil.checkPhone(mobile)) {
return Boolean.FALSE;
}
Long userId = userClient.findByJobNumber(jobNumber, SecurityConstants.FROM_IN);
if (ObjectUtil.isNull(userId)) {
return Boolean.FALSE;
}
TaskUserDTO dto = taskClient.findByTaskByUserId
(userId, DefaultNumberConstants.EIGHT_NUMBER, SecurityConstants.FROM_IN);
if (ObjectUtil.isNotNull(dto)
&& ObjectUtil.isNotNull(dto.getTaskId())) {
Clue clue = new Clue();
clue.setNid(mobile);
Long taskId = dto.getTaskId();
clue.setCreateBy(dto.getUserId());
clue.setAudioUrl(abMessageDTO.getAudioUrl());
clue.setOrigin(DefaultNumberConstants.FIVE_NUMBER);
clue.setName(Base64.decodeStr(abMessageDTO.getActName()));
Long clueId = clueRepository.save(clue).getId();
ClueMiddle clueMiddle = new ClueMiddle();
clueMiddle.setClueId(clueId);
clueMiddle.setTaskId(taskId);
clueMiddle.setMemberId(userId);
clueMiddle.setClueType(DefaultNumberConstants.EIGHT_NUMBER);
clueMiddle.setClueStage(DefaultNumberConstants.ZERO_NUMBER);
clueMiddle.setMemberStatus(DefaultNumberConstants.ONE_NUMBER);
clueMiddle.setClueCallStatus(DefaultNumberConstants.ZERO_NUMBER);
clueMiddle.setOptimisticVersion(DefaultNumberConstants.ZERO_NUMBER);
clueMiddleRepository.save(clueMiddle);
Task task = new Task();
// 修改任务总条数
Integer taskNum = clueMiddleRepository.findTaskNum(taskId);
task.setId(taskId);
task.setTotalNumber(taskNum);
task.setIsDistribution(DefaultNumberConstants.ONE_NUMBER);
task.setIsEncryption(DefaultNumberConstants.ZERO_NUMBER);
taskClient.updateTask(task);
return Boolean.TRUE;
}
return Boolean.FALSE;
}
}

@ -158,8 +158,8 @@ public class MailSourceTask {
FileUtil.del(unzipPath);
taskClient.updateTask(task);
deliveryRecordService.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, decryptList.size(), taskName);
log.info("============== message parsing succeeded file path as {} unzip path as {} ===============", path, unzipPath);
}
log.info("============== message parsing succeeded file path as {} unzip path as {} ===============", path, unzipPath);
}
if (byTaskName.getType() == DefaultNumberConstants.THREE_NUMBER) {
Map<String, Object> map = Maps.newHashMap();
@ -180,6 +180,7 @@ public class MailSourceTask {
map.put("data", dmpResponse);
HttpUtil.post("https://api.xiaolanben.com/blue-touch/api/v1/open/ad/dmp/exchange", JSONUtil.toJsonStr(map));
deliveryRecordService.updateStatusByTaskName(DefaultNumberConstants.ONE_NUMBER, decryptList.size(), taskName);
log.info("============== message parsing succeeded file path as {} unzip path as {} ===============", path, unzipPath);
}
}
if (byTaskName.getType() == DefaultNumberConstants.TWO_NUMBER) {

Loading…
Cancel
Save