diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/constant/ClueTypeConstants.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/constant/ClueTypeConstants.java index ccbc369f..4cfea804 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/constant/ClueTypeConstants.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/constant/ClueTypeConstants.java @@ -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}; } diff --git a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java index cb09bc74..e0263969 100644 --- a/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java +++ b/ad-platform-common/ad-platform-common-core/src/main/java/com/baiye/util/CacheKey.java @@ -96,6 +96,13 @@ public interface CacheKey { */ String UPLOAD_BATCH = "upload::batch::"; + /** + * 用户信息缓存 + */ + String USER_JOB_NUMBER_CACHE = "UserJobNumberCache::"; + + + /** * oauth 客户端信息 diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/rest/TaskController.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/rest/TaskController.java index ec97142d..fddf0db7 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/rest/TaskController.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/rest/TaskController.java @@ -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 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); + } + } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/TaskService.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/TaskService.java index 53efdea7..fb0307ba 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/TaskService.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/TaskService.java @@ -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 updateDmpTask(TaskTagDto taskTagDto); + + /** + * 用户id查找任务id + * @param userId + * @param number + * @return + */ + TaskUserDTO queryTaskByUserId(Long userId, Integer number); } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskServiceImpl.java index 419f1b08..5c0566fa 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/platform/service/impl/TaskServiceImpl.java @@ -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 createTag(Long taskId, Long userId, List 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 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; + } } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/controller/UserController.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/controller/UserController.java index 28091fd1..5536b639 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/controller/UserController.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/controller/UserController.java @@ -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 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); + } + + } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/User.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/User.java index dbf8e80e..4a9d1419 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/User.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/domain/User.java @@ -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; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/UserRepository.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/UserRepository.java index 36233426..1eed83d9 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/UserRepository.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/repository/UserRepository.java @@ -278,5 +278,21 @@ public interface UserRepository extends JpaRepository, 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); + /** + * 用户id查找管理员id + * + * @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); } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/UserService.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/UserService.java index b721a99f..d7f0f18f 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/UserService.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/UserService.java @@ -289,4 +289,11 @@ public interface UserService { * @param currentUserId */ void removeUserExpiration(Long currentUserId); + + /** + * 工号查找用户 + * @param jobNumber + * @return + */ + Long findByJobNumber(String jobNumber); } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/UserServiceImpl.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/UserServiceImpl.java index 7ed16f8e..97b62008 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/UserServiceImpl.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/modules/system/service/impl/UserServiceImpl.java @@ -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); + } + } diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java index e29e4ad1..4a0ce3a9 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/timed/DeliveryBalanceTask.java @@ -49,7 +49,6 @@ public class DeliveryBalanceTask { private final TaskImeiService taskImeiService; - private final ClueTalkService clueTalkService; private final DownRecordService downRecordService; diff --git a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/CSVFileUtil.java b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/CSVFileUtil.java index b38232c0..50bf626b 100644 --- a/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/CSVFileUtil.java +++ b/ad-platform-manage/ad-platform-management/src/main/java/com/baiye/util/CSVFileUtil.java @@ -61,7 +61,7 @@ public class CSVFileUtil { // 去除重复 List 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); diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/dto/TaskUserDTO.java b/ad-platform-pojo/src/main/java/com/baiye/model/dto/TaskUserDTO.java new file mode 100644 index 00000000..a8eeae25 --- /dev/null +++ b/ad-platform-pojo/src/main/java/com/baiye/model/dto/TaskUserDTO.java @@ -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() { + } + + +} diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/dto/UserDto.java b/ad-platform-pojo/src/main/java/com/baiye/model/dto/UserDto.java index c97bf6d2..5c5575ea 100644 --- a/ad-platform-pojo/src/main/java/com/baiye/model/dto/UserDto.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/dto/UserDto.java @@ -94,4 +94,6 @@ public class UserDto extends BaseDTO implements Serializable { private Boolean isTokerAdmin = false; private Integer turnCrmNum; + + private String jobNumber; } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/TaskClient.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/TaskClient.java index 6de92755..34888067 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/TaskClient.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/TaskClient.java @@ -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> 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); } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/UserClient.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/UserClient.java index 43e41794..e6519b4f 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/UserClient.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/UserClient.java @@ -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); } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskClientFallback.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskClientFallback.java index 95baf35e..e509e01a 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskClientFallback.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/TaskClientFallback.java @@ -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> findTaskLabel(Long userId) { return null; } + + @Override + public TaskUserDTO findByTaskByUserId(Long userId, Integer number, String from) { + return null; + } + + } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java index 4f76d21a..0a6f60a0 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/feign/fallback/UserClientFallback.java @@ -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; + } + + } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/AbMessageController.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/AbMessageController.java new file mode 100644 index 00000000..285210d7 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/AbMessageController.java @@ -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 queryNotApproved(@RequestBody @Validated ABMessageDTO abMessageDTO){ + return CommonResponse.createBySuccess(abMessageService.receiveDate(abMessageDTO)); + } +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/FromTaskApi.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/FromTaskApi.java index 32bb0dba..3eda839a 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/FromTaskApi.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/controller/FromTaskApi.java @@ -29,4 +29,7 @@ public class FromTaskApi { return formSourceService.acceptFormSource(json); } + + + } diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/AbMessageService.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/AbMessageService.java new file mode 100644 index 00000000..24904268 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/AbMessageService.java @@ -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); +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ABMessageDTO.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ABMessageDTO.java new file mode 100644 index 00000000..a8276c3c --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/dto/ABMessageDTO.java @@ -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; + + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/AbMessageServiceImpl.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/AbMessageServiceImpl.java new file mode 100644 index 00000000..d8a0bd77 --- /dev/null +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/module/service/impl/AbMessageServiceImpl.java @@ -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; + } + +} diff --git a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java index 4871cc65..7dc2be2f 100644 --- a/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java +++ b/ad-platform-services/ad-platform-source/src/main/java/com/baiye/task/MailSourceTask.java @@ -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 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) {