|
@@ -2,6 +2,7 @@ package org.jeecg.modules.orderplatform.util;
|
|
|
|
|
|
import cn.com.ctop.common.module.mapper.MailLogMapper;
|
|
import cn.com.ctop.common.module.mapper.MailLogMapper;
|
|
import cn.com.ctop.common.module.utils.CorpWexinUtils;
|
|
import cn.com.ctop.common.module.utils.CorpWexinUtils;
|
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.jeecg.modules.orderplatform.service.IPlatformMaterialService;
|
|
import org.jeecg.modules.orderplatform.service.IPlatformMaterialService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -22,66 +23,152 @@ public class ApprovalNodeNoticeHandler {
|
|
IPlatformMaterialService platformMaterialService;
|
|
IPlatformMaterialService platformMaterialService;
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 审批节点发送
|
|
|
|
|
|
+ * 企业微信通知
|
|
*/
|
|
*/
|
|
- public void notice(String operate, Set<String> acceptor) {
|
|
|
|
|
|
+ public void NOTICE_WE_CHAT_ORDER(String operate, String orderCode){
|
|
|
|
+ Map<String, JSONObject> relatePerson=relatePerson(orderCode,null);
|
|
|
|
+ message(operate,null, relatePerson.get("orderRelatePerson"));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public void NOTICE_WE_CHAT_MATERIAL(String operate, String materialCode){
|
|
|
|
+ Map<String, JSONObject> relatePerson=relatePerson(null,materialCode);
|
|
|
|
+ message(operate,relatePerson.get("materialRelatePerson"),null);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询消息接收者
|
|
|
|
+ */
|
|
|
|
+ private Map<String, JSONObject> relatePerson(String orderCode, String materialCode) {
|
|
|
|
+ Map<String, JSONObject> result = new HashMap<>();
|
|
|
|
+ if (null==materialCode) {
|
|
|
|
+ result.put("orderRelatePerson", platformMaterialService.getOrderRelatePersonByMaterialCode(orderCode));
|
|
|
|
+ } else {
|
|
|
|
+ result.put("materialRelatePerson", platformMaterialService.getMaterialRelatePersonByMaterialCode(materialCode));
|
|
|
|
+ }
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 消息模板
|
|
|
|
+ */
|
|
|
|
+ private void message(String operate, JSONObject materialRelatePerson, JSONObject orderRelatePerson) {
|
|
switch (operate) {
|
|
switch (operate) {
|
|
- //设计组长接单,暂时不通知
|
|
|
|
|
|
+ //运营下单,通知设计组长接单派单
|
|
|
|
+ case "PAYOUT":
|
|
|
|
+ sendWeChat(orderRelatePerson.getString("design"),
|
|
|
|
+ String.format("您收到一条新的素材订单,请及时查看!\n订单名称:%s\n 订单ID:%s\n下单人:%s",
|
|
|
|
+ orderRelatePerson.getString("orderTitle"),
|
|
|
|
+ orderRelatePerson.getLong("orderId"),
|
|
|
|
+ orderRelatePerson.getString("operatorName")));
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ //设计组长接单,发送通知给
|
|
case "ACCEPT_ORDER":
|
|
case "ACCEPT_ORDER":
|
|
- sendWeChat(acceptor, "您发起的订单接单成功");
|
|
|
|
|
|
+ sendWeChat(orderRelatePerson.getString("operator"),
|
|
|
|
+ String.format("您的订单“%s”已接单,请及时查看!\n 订单ID:%s\n操作人:%s",
|
|
|
|
+ orderRelatePerson.getString("orderTitle"),
|
|
|
|
+ orderRelatePerson.getLong("orderId"),
|
|
|
|
+ orderRelatePerson.getString("designName")));
|
|
break;
|
|
break;
|
|
|
|
+
|
|
//设计组长驳回订单,通知下单运营订单已被驳回
|
|
//设计组长驳回订单,通知下单运营订单已被驳回
|
|
case "REJECT_ORDER":
|
|
case "REJECT_ORDER":
|
|
- sendWeChat(acceptor, "您有订单被驳回,请前往汇创平台处理");
|
|
|
|
|
|
+ sendWeChat(orderRelatePerson.getString("operator"),
|
|
|
|
+ String.format("您的订单“%s”被驳回,请及时查看!\n 订单ID:%s\n操作人:%s\n驳回原因:%s",
|
|
|
|
+ orderRelatePerson.getString("orderTitle"),
|
|
|
|
+ orderRelatePerson.getLong("orderId"),
|
|
|
|
+ orderRelatePerson.getString("designName"),
|
|
|
|
+ orderRelatePerson.getString("orderAdvice")));
|
|
break;
|
|
break;
|
|
- //脚本审批通过,通知剪辑上传视频
|
|
|
|
- case "ACCEPT_SCRIPT":
|
|
|
|
- sendWeChat(acceptor, "有物料需要您上传视频,请前往汇创平台处理");
|
|
|
|
|
|
+
|
|
|
|
+ //销毁订单
|
|
|
|
+ case "DESTROY_ORDER":
|
|
|
|
+ sendWeChat(orderRelatePerson.getString("design"),
|
|
|
|
+ String.format("您的订单“%s”已被撤回\n 订单ID:%s\n操作人:%s",
|
|
|
|
+ orderRelatePerson.getString("orderTitle"),
|
|
|
|
+ orderRelatePerson.getLong("orderId"),
|
|
|
|
+ orderRelatePerson.getString("operatorName")));
|
|
break;
|
|
break;
|
|
- //脚本被驳回,通知编导重新上传脚本
|
|
|
|
- case "REJECT_SCRIPT":
|
|
|
|
- sendWeChat(acceptor, "您上传的脚本被驳回,请前往汇创平台处理");
|
|
|
|
|
|
+
|
|
|
|
+ //脚本上传成功,通知运营审核
|
|
|
|
+ case "SCRIPT":
|
|
|
|
+ sendWeChat(materialRelatePerson.getString("operator"),
|
|
|
|
+ String.format("您的订单“%s”收到一条新的脚本,请及时审核!\n 订单ID:%s\n操作人:%s",
|
|
|
|
+ materialRelatePerson.getString("orderTitle"),
|
|
|
|
+ materialRelatePerson.getLong("orderId"),
|
|
|
|
+ materialRelatePerson.getString("planName")));
|
|
break;
|
|
break;
|
|
|
|
+
|
|
|
|
+ //视频上传成功,通知运营审核
|
|
|
|
+ case "VIDEO":
|
|
|
|
+ sendWeChat(materialRelatePerson.getString("operator"),
|
|
|
|
+ String.format("您的订单“%s”收到一条新的视频,请及时审核!\n 订单ID:%s\n操作人:%s",
|
|
|
|
+ materialRelatePerson.getString("orderTitle"),
|
|
|
|
+ materialRelatePerson.getLong("orderId"),
|
|
|
|
+ materialRelatePerson.getString("clipName")));
|
|
|
|
+ break;
|
|
|
|
+
|
|
|
|
+ //脚本审批通过,通知上传人
|
|
|
|
+ case "ACCEPT_SCRIPT":
|
|
|
|
+ sendWeChat(materialRelatePerson.getString("plan"),
|
|
|
|
+ String.format("您的脚本“%s”已审核通过\n 所属订单:%s\n 订单ID:%s\n审核人:%s",
|
|
|
|
+ materialRelatePerson.getString("scriptName"),
|
|
|
|
+ materialRelatePerson.getString("orderTitle"),
|
|
|
|
+ materialRelatePerson.getLong("orderId"),
|
|
|
|
+ materialRelatePerson.getString("operatorName")));
|
|
|
|
+ break;
|
|
|
|
+
|
|
//视频通过暂不通知
|
|
//视频通过暂不通知
|
|
case "ACCEPT_VIDEO":
|
|
case "ACCEPT_VIDEO":
|
|
- sendWeChat(acceptor, "审批通过了视频,请前往汇创平台处理");
|
|
|
|
|
|
+ sendWeChat(materialRelatePerson.getString("clip"),
|
|
|
|
+ String.format("您的视频“%s”已审核通过\n 所属订单:%s\n 订单ID:%s\n审核人:%s",
|
|
|
|
+ materialRelatePerson.getString("videoName"),
|
|
|
|
+ materialRelatePerson.getString("orderTitle"),
|
|
|
|
+ materialRelatePerson.getLong("orderId"),
|
|
|
|
+ materialRelatePerson.getString("operatorName")));
|
|
break;
|
|
break;
|
|
|
|
+
|
|
|
|
+ //脚本被驳回,通知编导重新上传脚本
|
|
|
|
+ case "REJECT_SCRIPT":
|
|
|
|
+ sendWeChat(materialRelatePerson.getString("plan"),
|
|
|
|
+ String.format("您的脚本“%s”被驳回,请及时查看!\n 所属订单:%s\n 订单ID:%s\n审核人:%s",
|
|
|
|
+ materialRelatePerson.getString("scriptName"),
|
|
|
|
+ materialRelatePerson.getString("orderTitle"),
|
|
|
|
+ materialRelatePerson.getLong("orderId"),
|
|
|
|
+ materialRelatePerson.getString("operatorName")));
|
|
|
|
+ break;
|
|
|
|
+
|
|
//视频被驳回,通知剪辑重新上传视频
|
|
//视频被驳回,通知剪辑重新上传视频
|
|
case "REJECT_VIDEO":
|
|
case "REJECT_VIDEO":
|
|
- sendWeChat(acceptor, "您上传的视频被驳回,请前往汇创平台处理");
|
|
|
|
- break;
|
|
|
|
- //运营下单,通知设计组长接单派单
|
|
|
|
- case "PAYOUT":
|
|
|
|
- sendWeChat(acceptor, "有一个订单需要您审批,请前往汇创平台处理");
|
|
|
|
- break;
|
|
|
|
- //设计上传脚本,通知运营审核
|
|
|
|
- case "SCRIPT":
|
|
|
|
- sendWeChat(acceptor, "有一个脚本需要您审批,请前往汇创平台处理");
|
|
|
|
- break;
|
|
|
|
- //设计上传视频,通知运营审核
|
|
|
|
- case "VIDEO":
|
|
|
|
- sendWeChat(acceptor, "有一个视频需要您审批,请前往汇创平台处理");
|
|
|
|
- break;
|
|
|
|
|
|
+ sendWeChat(materialRelatePerson.getString("clip"),
|
|
|
|
+ String.format("您的视频“%s”被驳回,请及时查看!\n 所属订单:%s\n 订单ID:%s\n审核人:%s",
|
|
|
|
+ materialRelatePerson.getString("videoName"),
|
|
|
|
+ materialRelatePerson.getString("orderTitle"),
|
|
|
|
+ materialRelatePerson.getLong("orderId"),
|
|
|
|
+ materialRelatePerson.getString("operatorName")));
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 查询消息接收者
|
|
|
|
|
|
+ * 发送通知消息到多人企业微信
|
|
*/
|
|
*/
|
|
- private Map<String, Map<String,String>> relatePerson(String orderCode,String materialCode){
|
|
|
|
- Map<String,Map<String,String>> result= new HashMap<>();
|
|
|
|
- if(materialCode.isEmpty()){
|
|
|
|
-
|
|
|
|
- }else {
|
|
|
|
-
|
|
|
|
- }
|
|
|
|
- return result;
|
|
|
|
|
|
+ private void sendWeChat(Set<String> users, String message) {
|
|
|
|
+ users.forEach(userId -> {
|
|
|
|
+ String weChatId = mailLogMapper.getWChatIdByUserId(userId);
|
|
|
|
+ if (weChatId.isEmpty()) {
|
|
|
|
+ log.error(String.format("User WeChat not found. userId =%s", userId));
|
|
|
|
+ //TODO 通知管理员添加邮箱
|
|
|
|
+ } else {
|
|
|
|
+ CorpWexinUtils.sendMessageByWeChatId(weChatId, message);
|
|
|
|
+ }
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
+
|
|
/**
|
|
/**
|
|
- * 发送通知消息到企业微信
|
|
|
|
|
|
+ * 发送通知消息到多人企业微信
|
|
*/
|
|
*/
|
|
- private void sendWeChat(Set<String> users, String message) {
|
|
|
|
- users.forEach(userId->{
|
|
|
|
|
|
+ private void sendWeChat(String userId, String message) {
|
|
String weChatId = mailLogMapper.getWChatIdByUserId(userId);
|
|
String weChatId = mailLogMapper.getWChatIdByUserId(userId);
|
|
if (weChatId.isEmpty()) {
|
|
if (weChatId.isEmpty()) {
|
|
log.error(String.format("User WeChat not found. userId =%s", userId));
|
|
log.error(String.format("User WeChat not found. userId =%s", userId));
|
|
@@ -89,6 +176,5 @@ public class ApprovalNodeNoticeHandler {
|
|
} else {
|
|
} else {
|
|
CorpWexinUtils.sendMessageByWeChatId(weChatId, message);
|
|
CorpWexinUtils.sendMessageByWeChatId(weChatId, message);
|
|
}
|
|
}
|
|
- });
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|