Commit b35769df by bilingfeng

feat: 新增消息单人发送通用接口

parent 3ad13fed
...@@ -36,6 +36,18 @@ public interface StaffDepartmentRelatedApiService { ...@@ -36,6 +36,18 @@ public interface StaffDepartmentRelatedApiService {
//发送消息,单人发送 //发送消息,单人发送
boolean sendSingleMessage(String clerkId,String title,String content,String pageUrl); boolean sendSingleMessage(String clerkId,String title,String content,String pageUrl);
/**
* 单人消息发送通用方法
*
* @param clerkId : 接收人id
* @param title : 通知标题
* @param contentMap : 时间集合, key 为类型, value : 内容(例如 接收事件 : 事件内容)
* @param pageUrl : 跳转地址
* @return : 返回是否发送成功
*/
Boolean sendSingleMessage(String clerkId, String title, Map<String, String> contentMap, String pageUrl);
//发送消息,带审核理由 //发送消息,带审核理由
public boolean sendAuditMessage(String clerkId, String title,String content, String pageUrl,int auditStatus, String auditReason); public boolean sendAuditMessage(String clerkId, String title,String content, String pageUrl,int auditStatus, String auditReason);
......
package com.gic.haoban.manage.service.service.out.impl; package com.gic.haoban.manage.service.service.out.impl;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.http.client.utils.URLEncodedUtils; import org.apache.http.client.utils.URLEncodedUtils;
...@@ -47,8 +43,9 @@ import com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO; ...@@ -47,8 +43,9 @@ import com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService; import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
@Service @Service
public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRelatedApiService { public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRelatedApiService {
private static Logger logger= LoggerFactory.getLogger(StaffDepartmentRelatedApiServiceImpl.class); private static Logger logger= LoggerFactory.getLogger(StaffDepartmentRelatedApiServiceImpl.class);
...@@ -72,7 +69,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -72,7 +69,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
private TabHaobanStaffClerkRelationMapper tabHaobanStaffClerkRelationMapper; private TabHaobanStaffClerkRelationMapper tabHaobanStaffClerkRelationMapper;
@Autowired @Autowired
private StaffApiService staffApiService; private StaffApiService staffApiService;
@Override @Override
public List<StaffDepartmentRelatedDTO> listByDepartmentId( public List<StaffDepartmentRelatedDTO> listByDepartmentId(
String departmentId) { String departmentId) {
...@@ -80,7 +77,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -80,7 +77,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
List<StaffDepartmentRelatedDTO> resultList = EntityUtil.changeEntityListByJSON(StaffDepartmentRelatedDTO.class, list); List<StaffDepartmentRelatedDTO> resultList = EntityUtil.changeEntityListByJSON(StaffDepartmentRelatedDTO.class, list);
return resultList; return resultList;
} }
@Override @Override
public List<StaffDepartmentRelatedDTO> listByDepartmentIds( public List<StaffDepartmentRelatedDTO> listByDepartmentIds(
List<String> departmentIds) { List<String> departmentIds) {
...@@ -96,7 +93,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -96,7 +93,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Override @Override
public void deleteCode(StaffDepartmentRelatedDTO dto) { public void deleteCode(StaffDepartmentRelatedDTO dto) {
staffDepartmentRelatedMapper.deleteCode(EntityUtil.changeEntityByJSON(TabHaobanStaffDepartmentRelated.class, dto)); staffDepartmentRelatedMapper.deleteCode(EntityUtil.changeEntityByJSON(TabHaobanStaffDepartmentRelated.class, dto));
} }
@Override @Override
...@@ -118,7 +115,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -118,7 +115,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
List<StaffDepartmentRelatedDTO> resultList = EntityUtil.changeEntityListByJSON(StaffDepartmentRelatedDTO.class, list); List<StaffDepartmentRelatedDTO> resultList = EntityUtil.changeEntityListByJSON(StaffDepartmentRelatedDTO.class, list);
return resultList; return resultList;
} }
@Override @Override
public List<StaffDepartmentRelatedDTO> listByStaffIds(List<String> staffIds) { public List<StaffDepartmentRelatedDTO> listByStaffIds(List<String> staffIds) {
List<TabHaobanStaffDepartmentRelated> list = staffDepartmentRelatedMapper.listStaffDepartmentByStaffIds(staffIds); List<TabHaobanStaffDepartmentRelated> list = staffDepartmentRelatedMapper.listStaffDepartmentByStaffIds(staffIds);
...@@ -151,7 +148,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -151,7 +148,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
@Override @Override
public Map<String,String> getWxUserIdByClerkId(String clerkId) { public Map<String,String> getWxUserIdByClerkId(String clerkId) {
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId); TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
if(tab == null){ if(tab == null){
return map; return map;
...@@ -167,7 +164,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -167,7 +164,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
map.put("clerkName",clerkDTO.getClerkName()); map.put("clerkName",clerkDTO.getClerkName());
return map; return map;
} }
public Map<String,String> getWxUserIdByStaffId(String staffId) { public Map<String,String> getWxUserIdByStaffId(String staffId) {
Map<String,String> map = new HashMap<>(); Map<String,String> map = new HashMap<>();
StaffDTO staffDTO = staffApiService.selectById(staffId); StaffDTO staffDTO = staffApiService.selectById(staffId);
...@@ -235,7 +232,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -235,7 +232,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setItems(items); messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO)); logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO); boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b); logger.info("发送===============》{}",b);
} }
...@@ -256,8 +253,8 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -256,8 +253,8 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
String pageUrl = this.getPageUrl(AppPageType.MY_RELATED_RECORD.getCode(), data); String pageUrl = this.getPageUrl(AppPageType.MY_RELATED_RECORD.getCode(), data);
this.sendAuditMessage(staffId, messageTitle, messageContent, pageUrl, auditStatus, auditReason); this.sendAuditMessage(staffId, messageTitle, messageContent, pageUrl, auditStatus, auditReason);
} }
//导购新增,,审核记录,,消息发送 //导购新增,,审核记录,,消息发送
@Override @Override
public void sendClerkAdd (String clerkName,String clerkCode,String storeId,int auditStatus,String auditReason){ public void sendClerkAdd (String clerkName,String clerkCode,String storeId,int auditStatus,String auditReason){
...@@ -280,7 +277,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -280,7 +277,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
String pageUrl = this.getPageUrl(AppPageType.STORE_RELATED_RECORD.getCode(), data); String pageUrl = this.getPageUrl(AppPageType.STORE_RELATED_RECORD.getCode(), data);
this.sendAuditMessage(tab.getStaffId(), messageTitle, messageContent, pageUrl,auditStatus,auditReason); this.sendAuditMessage(tab.getStaffId(), messageTitle, messageContent, pageUrl,auditStatus,auditReason);
} }
//导购删除,,审核记录,,消息发送 //导购删除,,审核记录,,消息发送
public void sendClerkDel (String clerkName,String clerkCode,String storeId,int auditStatus,String auditReason){ public void sendClerkDel (String clerkName,String clerkCode,String storeId,int auditStatus,String auditReason){
//TODO huang 发送店长,门店关联记录列表 //TODO huang 发送店长,门店关联记录列表
...@@ -342,11 +339,64 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -342,11 +339,64 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setItems(items); messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO)); logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO); boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b); logger.info("发送===============》{}",b);
return b; return b;
} }
/**
* 单人消息发送通用方法
*
* @param clerkId : 接收人id
* @param title : 通知标题
* @param contentMap : 时间集合, key 为类型, value : 内容(例如 接收事件 : 事件内容)
* @param pageUrl : 跳转地址
* @return : 返回是否发送成功
*/
@Override
public Boolean sendSingleMessage(String clerkId, String title, Map<String, String> contentMap, String pageUrl) {
if(StringUtils.isEmpty(clerkId)){
logger.info("消息接收人不存在");
return Boolean.FALSE;
}
if(CollectionUtils.isEmpty(contentMap)){
logger.info("发送事件内容不存在");
return Boolean.FALSE;
}
Map<String,String> map = this.getWxUserIdByClerkId(clerkId);
String wxUserId = map.get("wxUserId");
String corpId = map.get("corpId");
String name = map.get("clerkName");
if(jodd.util.StringUtil.isEmpty(wxUserId)){
logger.info("接收人wxUserId不存在, clerkId : {}", clerkId);
return Boolean.FALSE;
}
//组装发送内容
List<ItemDTO> contentList = new ArrayList<>();
ItemDTO dto = new ItemDTO();
dto.setKey("接收人");
dto.setValue(name);
contentList.add(dto);
contentMap.forEach((key, value) -> {
ItemDTO itemDTO = new ItemDTO();
itemDTO.setKey(key);
String content = value.length() > 30 ? value.substring(0, 26) + "..." : value;
itemDTO.setValue(content);
});
QywxXcxSendMessageDTO messageDTO = new QywxXcxSendMessageDTO();
messageDTO.setAppid(this.config.getAppid());
messageDTO.setUserIds(Collections.singletonList(wxUserId));
messageDTO.setTitle(title);
messageDTO.setItems(contentList);
messageDTO.setPage(pageUrl);
logger.info("消息发送, corpId : {}, suitId : {}, messageDTO : {}", corpId, config.getWxSuiteid(),JSONObject.toJSONString(messageDTO));
boolean sendResult = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("消息发送结果, sendResult : {}", sendResult);
return sendResult;
}
@Override @Override
public boolean sendAuditMessage(String staffId, String title, public boolean sendAuditMessage(String staffId, String title,
String content, String pageUrl,int auditStatus, String auditReason) { String content, String pageUrl,int auditStatus, String auditReason) {
...@@ -394,7 +444,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela ...@@ -394,7 +444,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
messageDTO.setItems(items); messageDTO.setItems(items);
logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO)); logger.info("发送参数为corpId============:{},suitId============:{},messageDTO============:{},",corpId, config.getWxSuiteid(), JSONObject.toJSONString(messageDTO));
boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO); boolean b = qywxSuiteApiService.sendMessage(corpId,config.getWxSuiteid(), messageDTO);
logger.info("发送===============》{}",b); logger.info("发送===============》{}",b);
return b; return b;
......
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