Commit 1ed40a97 by 徐高华

画布-群发

parent 59475986
package com.gic.haoban.manage.api.qdto;
import java.io.Serializable;
public class CanvasInfoQDTO implements Serializable {
private Long canvasId ;
private Long nodeId ;
private Long execLogId ;
private String clerkId ;
private Long taskTime ;
public Long getCanvasId() {
return canvasId;
}
public void setCanvasId(Long canvasId) {
this.canvasId = canvasId;
}
public Long getNodeId() {
return nodeId;
}
public void setNodeId(Long nodeId) {
this.nodeId = nodeId;
}
public Long getExecLogId() {
return execLogId;
}
public void setExecLogId(Long execLogId) {
this.execLogId = execLogId;
}
public String getClerkId() {
return clerkId;
}
public void setClerkId(String clerkId) {
this.clerkId = clerkId;
}
public Long getTaskTime() {
return taskTime;
}
public void setTaskTime(Long taskTime) {
this.taskTime = taskTime;
}
}
......@@ -4,6 +4,7 @@ import java.util.List;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.qdto.CanvasInfoQDTO;
public interface QywxSendService {
......@@ -13,6 +14,13 @@ public interface QywxSendService {
public ServiceResponse<String> sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<String> materialIdList , String planId);
/**
* 画布
*/
public ServiceResponse<String> sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<String> materialIdList , String planId , CanvasInfoQDTO canvas);
/**
* 素材-分享
*/
......
......@@ -3,11 +3,10 @@ package com.gic.haoban.manage.service.service.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.gic.commons.util.DateUtil;
import com.gic.enterprise.api.dto.EnterpriseWxaRelationDTO;
import com.gic.enterprise.api.service.EnterpriseService;
import com.gic.enterprise.api.service.EnterpriseWxaLinkService;
import com.gic.haoban.manage.api.qdto.CanvasInfoQDTO;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -82,26 +81,31 @@ public class QywxSendServiceImpl implements QywxSendService {
@Override
public ServiceResponse<String> sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<String> materialIdList,String planId) {
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, null, 1 , single , planId , 1);
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, null, 1 , single , planId , 1,null);
}
@Override
public ServiceResponse<String> sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, List<String> materialIdList, String planId, CanvasInfoQDTO canvas) {
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, null, 1 , single , planId , 1,canvas);
}
@Override
public ServiceResponse<String> sendMessageShare(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<ContentMaterialDTO> imageList, String message) {
List<String> materialIdList = this.materialService.getImageMediaId(wxEnterpriseId, imageList, 1);
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, message, 2,null,null,null);
return this.send(wxEnterpriseId, staffId, extendUserList, materialIdList, message, 2,null,null,null,null);
}
// 群发发送
private ServiceResponse<String> send(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<String> materialIdList, String message, int from , String chatType ,String planId , Integer planType) {
List<String> materialIdList, String message, int from , String chatType ,String planId , Integer planType,CanvasInfoQDTO canvas) {
TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId);
if (null == tabHaobanStaff) {
log.info("staff不存在,staffId={}", staffId);
return ServiceResponse.failure("9999", "群发失败,成员不存在");
}
// 群发请求参数
QywxExternalMessageDTO messageDTO = this.getMessage(from, message, materialIdList,chatType,planId,planType);
QywxExternalMessageDTO messageDTO = this.getMessage(from, message, materialIdList,chatType,planId,planType,canvas);
log.info("群发信息={}",JSON.toJSONString(messageDTO));
if (messageDTO.getAttachments().isEmpty() && StringUtils.isBlank(messageDTO.getContent())) {
log.info("群发素材不存在, 群发创建失败");
......@@ -140,7 +144,7 @@ public class QywxSendServiceImpl implements QywxSendService {
List<ContentMaterialDTO> imageList) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
List<String> materialIdList = this.materialService.getImageMediaId(wxEnterpriseId, imageList, 2);
QywxExternalMessageDTO dto = this.getMessage(2, message, materialIdList,null,null,null);
QywxExternalMessageDTO dto = this.getMessage(2, message, materialIdList,null,null,null,null);
MomentTaskDTO moment = EntityUtil.changeEntity(MomentTaskDTO.class, dto);
Text text = new Text();
text.setContent(dto.getContent());
......@@ -174,7 +178,7 @@ public class QywxSendServiceImpl implements QywxSendService {
}
// from 1好办素材 2内容中台
private QywxExternalMessageDTO getMessage(int from, String message, List<String> materialIdList , String chatType , String planId , Integer planType) {
private QywxExternalMessageDTO getMessage(int from, String message, List<String> materialIdList , String chatType , String planId , Integer planType, CanvasInfoQDTO canvas) {
QywxExternalMessageDTO messageDTO = new QywxExternalMessageDTO();
messageDTO.setChatType(chatType);
List<QywxMessageMaterialDTO> attachList = new ArrayList<>();
......@@ -193,7 +197,7 @@ public class QywxSendServiceImpl implements QywxSendService {
if (material.getMaterialType() == 1) {
messageDTO.setContent(material.getMaterialContent());
} else {
attachList.add(this.getMessageMaterial(material,planId,planType));
attachList.add(this.getMessageMaterial(material,planId,planType,canvas));
}
});
}
......@@ -204,7 +208,10 @@ public class QywxSendServiceImpl implements QywxSendService {
/**
* 素材发送对象构造
*/
private QywxMessageMaterialDTO getMessageMaterial(MaterialDTO material, String planId , Integer planType) {
private QywxMessageMaterialDTO getMessageMaterial(MaterialDTO material, String planId , Integer planType , CanvasInfoQDTO canvas) {
if(null == canvas) {
canvas = new CanvasInfoQDTO() ;
}
// 素材类型
Integer materialType = material.getMaterialType();
// 企微对应的id
......@@ -237,13 +244,14 @@ public class QywxSendServiceImpl implements QywxSendService {
miniprogramMaterialDTO.setPage(material.getLink());
// 卡券
if(materialType==7) {
String nodeId = "736591066084777985";
String canvasId = "1123" ;
String execLogId = "111" ;
Long sendTime = DateUtil.getStartTimeOfDay().getTime() ;
String str = "{\"id\":48,\"url\":\"/pages/member-center/coupon/coupon-group-get/coupon-group-get?execLogId="+execLogId+"&canvasId="+canvasId+"&time="+sendTime+"&nodeId="+nodeId+"\"}" ;
Long canvasId = canvas.getCanvasId();
Long nodeId = canvas.getNodeId();
Long execLogId = canvas.getExecLogId() ;
Long clerkTaskTime = canvas.getTaskTime();
String clerkId = canvas.getClerkId() ;
String str = "{\"id\":48,\"url\":\"/pages/member-center/coupon/coupon-group-get/coupon-group-get?execLogId="+execLogId+"&canvasId="+canvasId+"&time="+clerkTaskTime+"&nodeId="+nodeId+"\"}" ;
EnterpriseWxaRelationDTO en = this.enterpriseService.getByWxappkey(material.getAppId()) ;
Map<String, Object> map = this.enterpriseWxaLinkService.getWxaLinkAndQrCodeWithChannelAndSceneOfNotUrl(en.getEnterpriseId(),str,canvasId,"canvas",nodeId) ;
Map<String, Object> map = this.enterpriseWxaLinkService.getWxaLinkAndQrCodeWithChannelAndSceneOfNotUrl(en.getEnterpriseId(),str,canvasId+"","canvas",nodeId+"_"+execLogId+"_"+clerkTaskTime+"_"+clerkId) ;
miniprogramMaterialDTO.setPage(map.get("link").toString());
}
if(null != planType && StringUtils.isNotBlank(planId)) {
......@@ -264,12 +272,12 @@ public class QywxSendServiceImpl implements QywxSendService {
@Override
public ServiceResponse<String> sendChatMessage(String wxEnterpriseId, String staffId, List<String> materialIdList,int planType ,String planId) {
return this.send(wxEnterpriseId, staffId, null, materialIdList, null, 1 , group,planId,planType);
return this.send(wxEnterpriseId, staffId, null, materialIdList, null, 1 , group,planId,planType,null);
}
@Override
public ServiceResponse<String> sendChatMessage(String wxEnterpriseId, String staffId, List<ContentMaterialDTO> imageList, String message) {
List<String> materialIdList = this.materialService.getImageMediaId(wxEnterpriseId, imageList, 1);
return this.send(wxEnterpriseId, staffId, null, materialIdList, message, 2 , group,null,null);
return this.send(wxEnterpriseId, staffId, null, materialIdList, message, 2 , group,null,null,null);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment