通知优化 区分各个类型
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package com.cool.store.enums;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
* @Author: young.yu
|
||||
* @Date: 2023-07-19 16:49
|
||||
@@ -7,34 +9,40 @@ package com.cool.store.enums;
|
||||
*/
|
||||
public enum FeiShuNoticeMsgEnum {
|
||||
|
||||
//分配招商经理
|
||||
ALLOCATION_INVESTMENT_MANAGER("分配招商经理", "有新的线索 于 {0} 分配给您,线索信息{1}手机号{2},请及时跟进"),
|
||||
//转让招商经理
|
||||
TRANS_INVESTMENT_MANAGER("转让招商经理", "有新的线索 于 {0} 转让给您,线索信息{1}手机号{2},请及时跟进"),
|
||||
//意向申请通知
|
||||
INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人{0}手机号{1}于 {2} 提交加盟意向申请,请及时处理");
|
||||
|
||||
ALLOCATION_INVESTMENT_MANAGER("分配招商经理", "有新的线索 于 {0} 分配给您,线索信息{1}手机号{2},请及时跟进", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag"),
|
||||
TRANS_INVESTMENT_MANAGER("转让招商经理", "有新的线索 于 {0} 转让给您,线索信息{1}手机号{2},请及时跟进", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag"),
|
||||
INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人{0}手机号{1}于 {2} 提交加盟意向申请,请及时处理", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag"),
|
||||
FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag"),
|
||||
INTERVIEW_APPOINTMENT("面试预约申请", "{0}","img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag"),
|
||||
;
|
||||
|
||||
private String title;
|
||||
private String content;
|
||||
private String imageMediaId;
|
||||
|
||||
FeiShuNoticeMsgEnum(String title, String content) {
|
||||
FeiShuNoticeMsgEnum(String title, String content, String imageMediaId) {
|
||||
this.title = title;
|
||||
this.content = content;
|
||||
this.imageMediaId = imageMediaId;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
this.content = content;
|
||||
public String getImageMediaId() {
|
||||
return imageMediaId;
|
||||
}
|
||||
|
||||
public JSONObject getMessageObject() {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("name", this.title);
|
||||
object.put("imageMediaId", this.imageMediaId);
|
||||
return object;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,61 +0,0 @@
|
||||
package com.cool.store.enums;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: MessageTypeEnum
|
||||
* @Description:
|
||||
* @date 2023-06-15 10:14
|
||||
*/
|
||||
public enum MessageTypeEnum {
|
||||
|
||||
SCHEDULE_REMINDER("schedule_reminder", "日历提醒事件", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag"),
|
||||
FOLLOW_TASK("follow_task", "跟进任务提醒", "img_v2_0709ece3-77a8-49a4-820f-f245b2a4fdag")
|
||||
|
||||
|
||||
|
||||
;
|
||||
|
||||
private String code;
|
||||
|
||||
private String name;
|
||||
|
||||
private String imageMediaId;
|
||||
|
||||
MessageTypeEnum(String code, String name, String imageMediaId) {
|
||||
this.code = code;
|
||||
this.name = name;
|
||||
this.imageMediaId = imageMediaId;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getImageMediaId() {
|
||||
return imageMediaId;
|
||||
}
|
||||
|
||||
public static String getImageMediaId(String code){
|
||||
for (MessageTypeEnum value : MessageTypeEnum.values()) {
|
||||
if(value.code.equals(code)){
|
||||
return value.imageMediaId;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public JSONObject getMessageTypeObject() {
|
||||
JSONObject object = new JSONObject();
|
||||
object.put("code", this.code);
|
||||
object.put("name", this.name);
|
||||
object.put("imageMediaId", this.imageMediaId);
|
||||
return object;
|
||||
}
|
||||
}
|
||||
@@ -122,18 +122,18 @@ public class HyFollowTaskDAO {
|
||||
* 分页获取任务
|
||||
* @param followUserId
|
||||
* @param taskStatus
|
||||
* @param deadlineStartTIme
|
||||
* @param deadlineEndTIme
|
||||
* @param deadlineStartTime
|
||||
* @param deadlineEndTime
|
||||
* @param pageNum
|
||||
* @param pageSize
|
||||
* @return
|
||||
*/
|
||||
public Page<HyFollowTaskDO> getTaskPage(String followUserId, Integer taskStatus, String deadlineStartTIme, String deadlineEndTIme, Integer pageNum, Integer pageSize){
|
||||
public Page<HyFollowTaskDO> getTaskPage(String followUserId, Integer taskStatus, String deadlineStartTime, String deadlineEndTime, Integer pageNum, Integer pageSize){
|
||||
if(StringUtils.isBlank(followUserId)){
|
||||
return new Page<>();
|
||||
}
|
||||
PageHelper.startPage(pageNum, pageSize);
|
||||
return hyFollowTaskMapper.getTaskPage(followUserId, taskStatus, deadlineStartTIme, deadlineEndTIme);
|
||||
return hyFollowTaskMapper.getTaskPage(followUserId, taskStatus, deadlineStartTime, deadlineEndTime);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -38,11 +38,11 @@ public interface HyFollowTaskMapper {
|
||||
* 获取任务列表
|
||||
* @param followUserId
|
||||
* @param taskStatus
|
||||
* @param deadlineStartTIme
|
||||
* @param deadlineEndTIme
|
||||
* @param deadlineStartTime
|
||||
* @param deadlineEndTime
|
||||
* @return
|
||||
*/
|
||||
Page<HyFollowTaskDO> getTaskPage(@Param("followUserId")String followUserId, @Param("taskStatus")Integer taskStatus, @Param("deadlineStartTIme")String deadlineStartTIme, @Param("deadlineEndTIme")String deadlineEndTIme);
|
||||
Page<HyFollowTaskDO> getTaskPage(@Param("followUserId")String followUserId, @Param("taskStatus")Integer taskStatus, @Param("deadlineStartTime")String deadlineStartTime, @Param("deadlineEndTime")String deadlineEndTime);
|
||||
|
||||
/**
|
||||
* 获取跟进任务详情
|
||||
|
||||
@@ -151,11 +151,11 @@
|
||||
<if test="taskStatus != null">
|
||||
and task_status = #{taskStatus}
|
||||
</if>
|
||||
<if test="deadlineStartTIme != null">
|
||||
and deadline >= #{deadlineStartTIme}
|
||||
<if test="deadlineStartTime != null">
|
||||
and deadline >= #{deadlineStartTime}
|
||||
</if>
|
||||
<if test="deadlineEndTIme != null">
|
||||
<![CDATA[ and deadline <= #{deadlineEndTIme}]]>
|
||||
<if test="deadlineEndTime != null">
|
||||
<![CDATA[ and deadline <= #{deadlineEndTime}]]>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.cool.store.dto.message;
|
||||
|
||||
import com.cool.store.enums.MessageTypeEnum;
|
||||
import com.cool.store.enums.FeiShuNoticeMsgEnum;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@@ -27,7 +27,7 @@ public class SendCardMessageDTO {
|
||||
@ApiModelProperty("消息内容")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty("消息类型, MessageTypeEnum")
|
||||
private MessageTypeEnum messageType;
|
||||
@ApiModelProperty("消息类型, FeiShuNoticeMsgEnum")
|
||||
private FeiShuNoticeMsgEnum messageType;
|
||||
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import com.cool.store.dto.enterprise.SysDepartmentDTO;
|
||||
import com.cool.store.dto.login.UserIdInfoDTO;
|
||||
import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.dto.response.ResultDTO;
|
||||
import com.cool.store.enums.MessageTypeEnum;
|
||||
import com.cool.store.enums.FeiShuNoticeMsgEnum;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.exception.ServiceException;
|
||||
import com.cool.store.mq.util.HttpRestTemplateService;
|
||||
@@ -357,9 +357,9 @@ public class ISVHttpRequest {
|
||||
String url = isvDomain + "/sendFeiShuCardMessage";
|
||||
ResultDTO responseEntity = null;
|
||||
try {
|
||||
MessageTypeEnum messageType = param.getMessageType();
|
||||
FeiShuNoticeMsgEnum messageType = param.getMessageType();
|
||||
JSONObject request = JSONObject.parseObject(JSONObject.toJSONString(param));
|
||||
request.put("messageType", messageType.getMessageTypeObject());
|
||||
request.put("messageType", messageType.getMessageObject());
|
||||
responseEntity = httpRestTemplateService.postForObject(url, request, ResultDTO.class);
|
||||
log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -72,19 +72,19 @@ public class FollowTaskServiceImpl implements FollowTaskService {
|
||||
@Resource
|
||||
private RedisUtilPool redisUtilPool;
|
||||
@Resource
|
||||
private ISVHttpRequest isvHttpRequest;
|
||||
private NoticeService noticeService;
|
||||
@Value("${feishu.notice.link.url:null}")
|
||||
private String linkUrl;
|
||||
|
||||
@Override
|
||||
public PageInfo<FollowTaskPageVO> getFollowTaskPage(Integer pageNum, Integer pageSize, Integer taskStatus, String queryDate, String followUserId) {
|
||||
String deadlineStartTIme = null, deadlineEndTIme = null;
|
||||
String deadlineStartTime = null, deadlineEndTIme = null;
|
||||
if(StringUtils.isNotBlank(queryDate) && FollowTaskStatusEnum.TODO.getCode().equals(taskStatus)){
|
||||
//只有待完成的时候需要根据截止时间查询
|
||||
deadlineStartTIme = queryDate + CommonConstants.DAY_START_TIME_SUFFIX;
|
||||
deadlineStartTime = queryDate + CommonConstants.DAY_START_TIME_SUFFIX;
|
||||
deadlineEndTIme = queryDate + CommonConstants.DAY_END_TIME_SUFFIX;
|
||||
}
|
||||
Page<HyFollowTaskDO> taskPage = hyFollowTaskDAO.getTaskPage(followUserId, taskStatus, deadlineStartTIme, deadlineEndTIme, pageNum, pageSize);
|
||||
Page<HyFollowTaskDO> taskPage = hyFollowTaskDAO.getTaskPage(followUserId, taskStatus, deadlineStartTime, deadlineEndTIme, pageNum, pageSize);
|
||||
PageInfo resultPage = new PageInfo(taskPage);
|
||||
if(CollectionUtils.isNotEmpty(taskPage)){
|
||||
List<Long> partnerLineIds = taskPage.stream().map(HyFollowTaskDO::getPartnerLineId).distinct().collect(Collectors.toList());
|
||||
@@ -213,19 +213,9 @@ public class FollowTaskServiceImpl implements FollowTaskService {
|
||||
//一小时内发送过不再发送通知
|
||||
continue;
|
||||
}
|
||||
SendCardMessageDTO sendCardMessage = new SendCardMessageDTO();
|
||||
sendCardMessage.setMessageUrl(linkUrl);
|
||||
sendCardMessage.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
String dateline = DateUtil.format(followTask.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2);
|
||||
String content = MessageFormat.format(MessageConstants.FOLLOW_TASK_MESSAGE_CONTENT, dateline, partnerInfo.getUsername(), partnerInfo.getMobile());
|
||||
sendCardMessage.setContent(content);
|
||||
sendCardMessage.setTitle(MessageConstants.FOLLOW_TASK_MESSAGE_TITLE);
|
||||
sendCardMessage.setUserIds(Arrays.asList(followTask.getFollowUserId()));
|
||||
try {
|
||||
isvHttpRequest.sendFeiShuCardMessage(sendCardMessage);
|
||||
} catch (ApiException e) {
|
||||
log.error("跟进任务发送通知失败, {}", JSONObject.toJSONString(followTask));
|
||||
}
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.FOLLOW_TASK, Arrays.asList(followTask.getFollowUserId()), content);
|
||||
}
|
||||
}
|
||||
//更新过期的任务状态
|
||||
@@ -248,17 +238,7 @@ public class FollowTaskServiceImpl implements FollowTaskService {
|
||||
pageNum++;
|
||||
List<FollowTaskNumDTO> followTaskList = hyFollowTaskDAO.getUserTaskNum(remindFollowUserIds);
|
||||
for (FollowTaskNumDTO followTask : followTaskList) {
|
||||
SendCardMessageDTO sendCardMessage = new SendCardMessageDTO();
|
||||
sendCardMessage.setMessageUrl(linkUrl);
|
||||
sendCardMessage.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
sendCardMessage.setContent(FollowTaskNumDTO.getMessageContent(followTask));
|
||||
sendCardMessage.setTitle(MessageConstants.FOLLOW_TASK_MESSAGE_TITLE);
|
||||
sendCardMessage.setUserIds(Arrays.asList(followTask.getFollowUserId()));
|
||||
try {
|
||||
isvHttpRequest.sendFeiShuCardMessage(sendCardMessage);
|
||||
} catch (ApiException e) {
|
||||
log.error("跟进任务发送通知失败, {}", JSONObject.toJSONString(followTask));
|
||||
}
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.FOLLOW_TASK, Arrays.asList(followTask.getFollowUserId()), FollowTaskNumDTO.getMessageContent(followTask));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -293,16 +273,6 @@ public class FollowTaskServiceImpl implements FollowTaskService {
|
||||
}
|
||||
String dateline = DateUtil.format(task.getDeadline(), CoolDateUtils.DATE_FORMAT_SEC_2);
|
||||
String content = MessageFormat.format(MessageConstants.FOLLOW_TASK_MESSAGE_CONTENT, dateline, partnerInfo.getUsername(), partnerInfo.getMobile());
|
||||
SendCardMessageDTO sendCardMessage = new SendCardMessageDTO();
|
||||
sendCardMessage.setMessageUrl(linkUrl);
|
||||
sendCardMessage.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
sendCardMessage.setContent(content);
|
||||
sendCardMessage.setTitle(MessageConstants.FOLLOW_TASK_MESSAGE_TITLE);
|
||||
sendCardMessage.setUserIds(Arrays.asList(task.getFollowUserId()));
|
||||
try {
|
||||
isvHttpRequest.sendFeiShuCardMessage(sendCardMessage);
|
||||
} catch (ApiException e) {
|
||||
log.error("跟进任务发送通知失败, {}", JSONObject.toJSONString(task));
|
||||
}
|
||||
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.FOLLOW_TASK, Arrays.asList(task.getFollowUserId()), content);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,7 @@ import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO;
|
||||
import com.cool.store.dto.partner.PartnerInterviewInfoDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.MessageTypeEnum;
|
||||
import com.cool.store.enums.RoomStatus;
|
||||
import com.cool.store.enums.WorkflowStageEnum;
|
||||
import com.cool.store.enums.WorkflowStatusEnum;
|
||||
import com.cool.store.enums.*;
|
||||
import com.cool.store.exception.ApiException;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||
@@ -272,7 +269,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan
|
||||
userIds.add(interviewMsgDTO.getInterviewerId());
|
||||
SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO();
|
||||
sendCardMessageDTO.setUserIds(userIds);
|
||||
sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
sendCardMessageDTO.setMessageType(FeiShuNoticeMsgEnum.INTERVIEW_APPOINTMENT);
|
||||
sendCardMessageDTO.setMessageUrl(linkUrl);
|
||||
sendCardMessageDTO.setTitle("面试预约申请");
|
||||
sendCardMessageDTO.setContent(interviewService.generateFeiShuInterviewMsg(interviewMsgDTO.getPartnerName(), interviewMsgDTO.getPartnerMobile(), interviewMsgDTO.getStartTime()));
|
||||
|
||||
@@ -455,7 +455,7 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
userIds.add(interviewrId);
|
||||
SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO();
|
||||
sendCardMessageDTO.setUserIds(userIds);
|
||||
sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
sendCardMessageDTO.setMessageType(FeiShuNoticeMsgEnum.INTERVIEW_APPOINTMENT);
|
||||
sendCardMessageDTO.setMessageUrl(linkUrl);
|
||||
sendCardMessageDTO.setTitle("面试预约申请");
|
||||
sendCardMessageDTO.setContent(generateFeiShuInterviewMsg(interviewVO.getPartnerName(), interviewVO.getPartnerMobile(), interviewVO.getStartTime()));
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.cool.store.service.impl;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.cool.store.dto.message.SendCardMessageDTO;
|
||||
import com.cool.store.enums.FeiShuNoticeMsgEnum;
|
||||
import com.cool.store.enums.MessageTypeEnum;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
@@ -26,7 +25,8 @@ public class NoticeService {
|
||||
private String linkUrl;
|
||||
@Autowired
|
||||
private ISVHttpRequest isvHttpRequest;
|
||||
public void sendFeiShuNotice(FeiShuNoticeMsgEnum feiShuNoticeMsgEnum, List<String> userIds,Object... objects) {
|
||||
|
||||
public void sendFeiShuNotice(FeiShuNoticeMsgEnum feiShuNoticeMsgEnum, List<String> userIds, Object... objects) {
|
||||
try{
|
||||
if (CollectionUtils.isEmpty(userIds)){
|
||||
log.info("sendFeiShuNotice_feiShuNoticeMsgEnum:{} userIds:{},objects:{}",feiShuNoticeMsgEnum.getTitle(), JSONObject.toJSONString(userIds),JSONObject.toJSONString(objects));
|
||||
@@ -34,7 +34,7 @@ public class NoticeService {
|
||||
}
|
||||
SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO();
|
||||
sendCardMessageDTO.setUserIds(userIds);
|
||||
sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
|
||||
sendCardMessageDTO.setMessageType(feiShuNoticeMsgEnum);
|
||||
sendCardMessageDTO.setMessageUrl(linkUrl);
|
||||
sendCardMessageDTO.setTitle(feiShuNoticeMsgEnum.getTitle());
|
||||
sendCardMessageDTO.setContent(MessageFormat.format(feiShuNoticeMsgEnum.getContent(),objects));
|
||||
|
||||
Reference in New Issue
Block a user