Commit 0f18d07e by bilingfeng

fix : 销售线索群发任务, 创建企业群发API接口改造, 适配官方的修改

parent cc7c086e
...@@ -52,6 +52,17 @@ public interface MemberUnionidRelatedApiService { ...@@ -52,6 +52,17 @@ public interface MemberUnionidRelatedApiService {
String sendMessage(String wxEnterpriseId, String userId, List<String> extendUserList, String materialId); String sendMessage(String wxEnterpriseId, String userId, List<String> extendUserList, String materialId);
/**
* 创建企业群发, 支出素材批量发送
*
* @param wxEnterpriseId : 微信企业id
* @param userId : 用户id
* @param extendUserList : 发送的用户id
* @param materialIdList : 素材id列表
* @return : 返回群发执行结果
*/
String sendMessage(String wxEnterpriseId, String userId, List<String> extendUserList, List<String> materialIdList);
JSONResponse getMessageStatus(String wxEnterpriseId, String wxMessageId); JSONResponse getMessageStatus(String wxEnterpriseId, String wxMessageId);
List<MemberUnionidRelatedDTO> getByWxUserIdListAndWxEnterpriseId(List<String> userIdList, String wxEnterpriseId); List<MemberUnionidRelatedDTO> getByWxUserIdListAndWxEnterpriseId(List<String> userIdList, String wxEnterpriseId);
......
...@@ -1010,51 +1010,161 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1010,51 +1010,161 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return PageUtil.changePageHelperToCurrentPage(memberUnionRelatedService.pageMemberUnionByParams(userIdList,sendMemberIds,enterpriseId),MemberUnionidRelatedDTO.class); return PageUtil.changePageHelperToCurrentPage(memberUnionRelatedService.pageMemberUnionByParams(userIdList,sendMemberIds,enterpriseId),MemberUnionidRelatedDTO.class);
} }
// @Override
// public String sendMessage(String wxEnterpriseId,String userId,List<String> extendUserList,String materialId){
// WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId);
// MaterialDTO material = materialApiService.selectMaterialById(materialId);
// if(material == null){
// return "";
// }
// JSONResponse jp = null;
// if(material.getMaterialType() == 2 || material.getMaterialType() == 4 || material.getMaterialType() == 5){
// Date wxLastTime = material.getWxLastUploadTime();
// String maerialId = material.getMediaId();
// if(DateUtil.addDay(wxLastTime, 3).getTime() < System.currentTimeMillis()){
// maerialId = materialApiService.reUpdalodMetail(materialId);
// }
// QywxImageExternalMessageDTO dto = new QywxImageExternalMessageDTO();
// dto.setMediaId(maerialId);
// dto.setChatType("single");
// dto.setExternalUserid(extendUserList);
// dto.setSenderUserId(userId);
// log.info("【发送消息】dto = {}",JSON.toJSONString(dto));
// jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), dto);
// }else if(material.getMaterialType() == 1){
// QywxTextExternalMessageDTO dto = new QywxTextExternalMessageDTO();
// dto.setChatType("single");
// dto.setExternalUserid(extendUserList);
// dto.setSenderUserId(userId);
// dto.setText(material.getMaterialContent());
// log.info("【发送消息】dto = {}",JSON.toJSONString(dto));
// jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), dto);
// }else if(material.getMaterialType() == 3){
// QywxIinkExternalMessageDTO dto = new QywxIinkExternalMessageDTO();
// dto.setChatType("single");
// dto.setExternalUserid(extendUserList);
// dto.setSenderUserId(userId);
// dto.setDesc(material.getMaterialDesc());
// dto.setPicurl(material.getWxImgUrl());
// dto.setTitle(material.getMaterialTitle());
// dto.setUrl(material.getLink());
// log.info("【发送消息】dto = {}",JSON.toJSONString(dto));
// jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), dto);
// }
// log.info("【发送消息】jp = {}",JSON.toJSONString(jp));
// Map<String,Object> returnMap = jp.getReturnMap();
// return returnMap.get("msgid") == null?"":returnMap.get("msgid").toString();
// }
/**
* 老的单个素材群发的api
*
* @param wxEnterpriseId : 微信企业id
* @param userId : 用户id
* @param extendUserList : 发送的用户id
* @param materialId : 素材id
* @return : 返回群发执行结果
*/
@Override @Override
public String sendMessage(String wxEnterpriseId,String userId,List<String> extendUserList,String materialId){ public String sendMessage(String wxEnterpriseId, String userId, List<String> extendUserList, String materialId) {
WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId); return this.sendMessage(wxEnterpriseId, userId, extendUserList, Collections.singletonList(materialId));
}
/**
* 创建企业群发, 支出素材批量发送
*
* @param wxEnterpriseId : 微信企业id
* @param userId : 用户id
* @param extendUserList : 发送的用户id
* @param materialIdList : 素材id列表
* @return : 返回群发执行结果
*/
@Override
public String sendMessage(String wxEnterpriseId, String userId, List<String> extendUserList, List<String> materialIdList) {
//群发请求参数
QywxExternalMessageDTO qywxExternalMessageDTO = new QywxExternalMessageDTO();
//素材列表
List<QywxMessageMaterialDTO> messageMaterialList = new ArrayList<>();
materialIdList.forEach(materialId -> {
MaterialDTO material = materialApiService.selectMaterialById(materialId); MaterialDTO material = materialApiService.selectMaterialById(materialId);
if(material == null){ if (material == null) {
return;
}
if (material.getMaterialType() == 1) {
qywxExternalMessageDTO.setContent(material.getMaterialContent());
} else {
messageMaterialList.add(this.getMessageMaterial(material));
}
});
//素材列表不存在, 并且不存在文本内容, 不执行
if (messageMaterialList.isEmpty() && StringUtils.isBlank(qywxExternalMessageDTO.getContent())) {
return ""; return "";
} }
JSONResponse jp = null; //请求参数赋值
if(material.getMaterialType() == 2 || material.getMaterialType() == 4 || material.getMaterialType() == 5){ qywxExternalMessageDTO.setChatType("single");
Date wxLastTime = material.getWxLastUploadTime(); qywxExternalMessageDTO.setExternalUserid(extendUserList);
qywxExternalMessageDTO.setSenderUserId(userId);
qywxExternalMessageDTO.setAttachments(messageMaterialList);
//调接口执行创建群发
JSONResponse jp;
WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId);
jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), qywxExternalMessageDTO);
//返回执行结果, msgId
log.info("【发送消息】jp = {}", JSON.toJSONString(jp));
Map<String, Object> returnMap = jp.getReturnMap();
return returnMap.get("msgid") == null ? "" : returnMap.get("msgid").toString();
}
/**
* 素材发送对象构造
*
* @param material : 素材对象
* @return : 返回素材发送对象
*/
private QywxMessageMaterialDTO getMessageMaterial(MaterialDTO material) {
//素材类型
Integer materialType = material.getMaterialType();
//主键id
String materialId = material.getMaterialId();
//企微对应的id
String maerialId = material.getMediaId(); String maerialId = material.getMediaId();
if(DateUtil.addDay(wxLastTime, 3).getTime() < System.currentTimeMillis()){ //判断企微id是否需要刷新
List<Integer> materialTypeList = Arrays.asList(2, 4, 5, 6);
if (materialTypeList.contains(materialType)) {
Date wxLastTime = material.getWxLastUploadTime();
if (DateUtil.addDay(wxLastTime, 3).getTime() < System.currentTimeMillis()) {
maerialId = materialApiService.reUpdalodMetail(materialId); maerialId = materialApiService.reUpdalodMetail(materialId);
} }
QywxImageExternalMessageDTO dto = new QywxImageExternalMessageDTO();
dto.setMediaId(maerialId);
dto.setChatType("single");
dto.setExternalUserid(extendUserList);
dto.setSenderUserId(userId);
log.info("【发送消息】dto = {}",JSON.toJSONString(dto));
jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), dto);
}else if(material.getMaterialType() == 1){
QywxTextExternalMessageDTO dto = new QywxTextExternalMessageDTO();
dto.setChatType("single");
dto.setExternalUserid(extendUserList);
dto.setSenderUserId(userId);
dto.setText(material.getMaterialContent());
log.info("【发送消息】dto = {}",JSON.toJSONString(dto));
jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), dto);
}else if(material.getMaterialType() == 3){
QywxIinkExternalMessageDTO dto = new QywxIinkExternalMessageDTO();
dto.setChatType("single");
dto.setExternalUserid(extendUserList);
dto.setSenderUserId(userId);
dto.setDesc(material.getMaterialDesc());
dto.setPicurl(material.getWxImgUrl());
dto.setTitle(material.getMaterialTitle());
dto.setUrl(material.getLink());
log.info("【发送消息】dto = {}",JSON.toJSONString(dto));
jp = qywxSuiteApiService.sendExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), dto);
}
log.info("【发送消息】jp = {}",JSON.toJSONString(jp));
Map<String,Object> returnMap = jp.getReturnMap();
return returnMap.get("msgid") == null?"":returnMap.get("msgid").toString();
} }
//素材对象
QywxMessageMaterialDTO dto = new QywxMessageMaterialDTO();
if (materialType == 2 || materialType == 5) {
dto.setMsgType("image");
QywxImageMaterialDTO imageMaterialDTO = new QywxImageMaterialDTO();
imageMaterialDTO.setMediaId(maerialId);
} else if (materialType == 3) {
dto.setMsgType("link");
QywxLinkMaterialDTO linkMaterialDTO = new QywxLinkMaterialDTO();
linkMaterialDTO.setTitle(material.getMaterialTitle());
linkMaterialDTO.setPicurl(material.getWxImgUrl());
linkMaterialDTO.setDesc(material.getMaterialDesc());
linkMaterialDTO.setUrl(material.getLink());
} else if (materialType == 4) {
dto.setMsgType("video");
QywxImageMaterialDTO imageMaterialDTO = new QywxImageMaterialDTO();
imageMaterialDTO.setMediaId(maerialId);
} else if (materialType == 6) {
dto.setMsgType("miniprogram");
QywxMiniprogramMaterialDTO miniprogramMaterialDTO = new QywxMiniprogramMaterialDTO();
miniprogramMaterialDTO.setTitle(material.getMaterialTitle());
//todo : 字段赋值
miniprogramMaterialDTO.setPicMediaId(maerialId);
miniprogramMaterialDTO.setAppid("");
miniprogramMaterialDTO.setPage("");
}
return dto;
}
@Override @Override
public JSONResponse getMessageStatus(String wxEnterpriseId, String wxMessageId) { public JSONResponse getMessageStatus(String wxEnterpriseId, String wxMessageId) {
WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId); WxEnterpriseDTO enterprise = wxEnterpriseService.selectById(wxEnterpriseId);
......
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