Commit 787d2c2e by 墨竹

feat:欧泊莱定制需求

parent a0847830
......@@ -3,14 +3,12 @@ package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
*
* @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知
* @author xugh
* @date 2022年8月18日 上午10:31:14
*
* @author xugh
* @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知
* @date 2022年8月18日 上午10:31:14
*/
public class QwFrientNoticeDTO implements Serializable{
public class QwFrientNoticeDTO implements Serializable {
private static final long serialVersionUID = 1L;
......@@ -18,14 +16,14 @@ public class QwFrientNoticeDTO implements Serializable{
private String suiteid;
private String memberUnionidRelatedId;
private String memberUnionidRelatedId;
private String memberId;
private String unionid;
private String wxEnterpriseId;
private String enterpriseId;
private Integer statusFlag;
......@@ -33,13 +31,13 @@ public class QwFrientNoticeDTO implements Serializable{
private String externalUserid;
private String wxUserId;
private String selfExternalUserid;
private String externalName;
private String addCreateTime;
private String avatar;
private String welcomeCode;
......@@ -47,8 +45,9 @@ public class QwFrientNoticeDTO implements Serializable{
* 自定义的state参数
*/
private String state;
private String staffId ;
private String staffId;
private String changeType;
public String getStaffId() {
return staffId;
......@@ -138,45 +137,45 @@ public class QwFrientNoticeDTO implements Serializable{
this.suiteid = suiteid;
}
public String getSelfExternalUserid() {
return selfExternalUserid;
}
public String getSelfExternalUserid() {
return selfExternalUserid;
}
public void setSelfExternalUserid(String selfExternalUserid) {
this.selfExternalUserid = selfExternalUserid;
}
public void setSelfExternalUserid(String selfExternalUserid) {
this.selfExternalUserid = selfExternalUserid;
}
public String getExternalName() {
return externalName;
}
public String getExternalName() {
return externalName;
}
public void setExternalName(String externalName) {
this.externalName = externalName;
}
public void setExternalName(String externalName) {
this.externalName = externalName;
}
public String getAddCreateTime() {
return addCreateTime;
}
public String getAddCreateTime() {
return addCreateTime;
}
public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime;
}
public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime;
}
public String getEnterpriseId() {
return enterpriseId;
}
public String getEnterpriseId() {
return enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId;
}
public String getAvatar() {
return avatar;
}
public String getAvatar() {
return avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public void setAvatar(String avatar) {
this.avatar = avatar;
}
public String getState() {
return state;
......@@ -185,4 +184,12 @@ public class QwFrientNoticeDTO implements Serializable{
public void setState(String state) {
this.state = state;
}
public String getChangeType() {
return changeType;
}
public void setChangeType(String changeType) {
this.changeType = changeType;
}
}
......@@ -169,23 +169,37 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired
private HmClerkRelationApiService hmClerkRelationApiService;
@Autowired
private StaffMapper staffMapper ;
private StaffMapper staffMapper;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override
public void dealQywxExternalUser(String params) {
log.info("处理外部联系人回调:{}", params);
DealQywxExternalUserPojo externalUserPojo = JSONObject.parseObject(params, DealQywxExternalUserPojo.class);
QwFrientNoticeDTO dto = externalUserPojo.getData() ;
MemberUnionidRelatedDTO inDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class,dto) ;
if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.del.getType()) {
this.delMemberUnionidRelatedProcess(inDTO , dto.getWxUserId());
} else if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.add.getType()) {
this.addMemberUnionidRelatedNew(inDTO , dto.getWxUserId());
} else if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.edit.getType()) {
this.editMemberUnionidRelatedProcess(inDTO , dto.getWxUserId());
QwFrientNoticeDTO qwFrientNoticeDTO = externalUserPojo.getData();
int type = externalUserPojo.getType();
MemberUnionidRelatedDTO memberUnionidRelatedDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class, qwFrientNoticeDTO);
if (type == DealQywxExternalUserPojo.DealType.add.getType()) {
this.addMemberUnionidRelatedNew(memberUnionidRelatedDTO, qwFrientNoticeDTO.getWxUserId());
} else if (type == DealQywxExternalUserPojo.DealType.edit.getType()) {
this.editMemberUnionidRelatedProcess(memberUnionidRelatedDTO, qwFrientNoticeDTO.getWxUserId());
} else if (type == DealQywxExternalUserPojo.DealType.del.getType()) {
String changeType = qwFrientNoticeDTO.getChangeType();
//欧泊莱定制
if ("del_follow_user".equals(changeType)) {
log.info("会员删除导购:{}", JSON.toJSONString(memberUnionidRelatedDTO));
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = externalClerkRelatedService.listByExTernalUseridAndWxUserId(memberUnionidRelatedDTO.getExternalUserid(), memberUnionidRelatedDTO.getStaffId());
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
log.error("无好友记录");
return;
}
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedList.get(0);
addDelFriendEvent(related.getUnionid(), related.getClerkId(), related.getEnterpriseId(), related.getMemberId(), related.getStoreId(), 0);
return;
}
this.delMemberUnionidRelatedProcess(memberUnionidRelatedDTO, qwFrientNoticeDTO.getWxUserId());
}
}
......@@ -196,7 +210,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (CollectionUtil.isEmpty(list)) {
return null;
}
TabHaobanStaff haobanStaff = staffService.selectById(staffId) ;
TabHaobanStaff haobanStaff = staffService.selectById(staffId);
if (null == haobanStaff) {
log.info("staff不存在");
return null;
......@@ -211,7 +225,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("staff关联门店不存在2");
return null;
}
log.info("门店信息storeIds={}",JSON.toJSONString(storeIds));
log.info("门店信息storeIds={}", JSON.toJSONString(storeIds));
//2、获取member的storeId
for (TabHaobanExternalClerkRelated tab : list) {
if (StringUtils.isNotBlank(storeId) && (!storeId.equals(tab.getStoreId()))) {
......@@ -295,12 +309,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Override
public String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto, String wxUserId) {
//解析组装信息
dto = getMemberUnionidRelatedDTONew(dto,wxUserId);
dto = getMemberUnionidRelatedDTONew(dto, wxUserId);
if (null == dto) {
log.info("没处理完成-等下一次处理");
return null;
}
insertExternalClerkRelatedNew(dto,wxUserId);
insertExternalClerkRelatedNew(dto, wxUserId);
return dto.getMemberUnionidRelatedId();
}
......@@ -337,7 +351,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
String staffId = staff.getStaffId();
String staffName = staff.getStaffName();
log.info("新增外部联系人,staffId={}",staffId);
log.info("新增外部联系人,staffId={}", staffId);
StaffClerkRelationDTO staffClerkRelationDTO = null;
//活码处理 "DT" "HM"
WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO();
......@@ -437,7 +451,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (StringUtils.isNotBlank(unionid)) {
log.info("有unionid处理:wxEnterpriseId:{},unionid:{}", wxEnterpriseId, unionid);
dto.setUnionid(unionid);
memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated, isHmUnionid, mobile , wxUserId);
memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated, isHmUnionid, mobile, wxUserId);
} else {
log.info("发送欢迎语逻辑:wxEnterpriseId:{}", wxEnterpriseId);
addFriendByWelcome(dto, staffClerkRelationDTO);
......@@ -603,19 +617,20 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制事件订阅
addDelFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId);
addDelFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId, 1);
return memberId;
}
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId) {
private void addDelFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId, Integer changeType) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
......@@ -627,17 +642,20 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName",storeDTO.getStoreName());
msgBody.put("storeCode",storeDTO.getStoreCode());
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName",clerkDTO.getClerkName());
msgBody.put("clerkCode",clerkDTO.getClerkCode());
msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode());
}
// 1添加;0删除
msgBody.put("changeType", changeType);
if (changeType == 1) {
msgBody.put("addCreateTime", new Date());
} else {
msgBody.put("delCreateTime", new Date());
}
msgBody.put("changeType",1);
msgBody.put("addCreateTime",new Date());
msgBody.put("delCreateTime","");
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
......@@ -1122,20 +1140,20 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
*
* @param dto
*/
private void delMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto , String wxUserId) {
private void delMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) {
String corpId = dto.getCorpid();
TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpId, null);
if (tabHaobanWxApplication == null) {
log.info("查询tab_haoban_wx_application为空:{}", corpId);
return ;
return;
}
String wxEnterpriseId = tabHaobanWxApplication.getWxEnterpriseId();
dto.setWxEnterpriseId(wxEnterpriseId);
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId,wxEnterpriseId) ;
String staffId = staff.getStaffId() ;
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
String staffId = staff.getStaffId();
dto.setStaffId(staffId);
externalClerkRelatedService.delByUserIdAndExternalUserId(dto , wxUserId);
memberUnionRelatedService.delMemberUnionidRelated(dto , staffId);
externalClerkRelatedService.delByUserIdAndExternalUserId(dto, wxUserId);
memberUnionRelatedService.delMemberUnionidRelated(dto, staffId);
}
private void editMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) {
......@@ -1187,21 +1205,21 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
Map<String, Object> returnMap = jp.getReturnMap();
return returnMap.get("msgid") == null ? "" : returnMap.get("msgid").toString();
}
@Override
public JSONResponse sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList,
List<String> materialIdList, String ecmPlanId) {
if(StringUtils.isNotBlank(ecmPlanId) && "ff80808182ef67cd0182f3152b2900cf".equals(ecmPlanId)) {
List<String> materialIdList, String ecmPlanId) {
if (StringUtils.isNotBlank(ecmPlanId) && "ff80808182ef67cd0182f3152b2900cf".equals(ecmPlanId)) {
List<String> list = Arrays.asList("244fc3aa44dd492c90041d404f02b3a0",
"3c6d26dc791946a8aa8aaf06d9deb9a6",
"4dd7689a3a5e48439840fb187bfaf995",
"6a29b127c15648cc8da60fa4bf8b6b92",
"6ad57e1d64214bfbbb7662e748ed1b84",
"7e364ea272044763bdda5afef3961ae5",
"ce6ac0d3d8a54b74a4af59996597ed03",
"dded2a7d79ee4d759372741256f04cec",
"edc487470d0344198f7185d3e2e7362a") ;
if(list.contains(staffId)) {
"3c6d26dc791946a8aa8aaf06d9deb9a6",
"4dd7689a3a5e48439840fb187bfaf995",
"6a29b127c15648cc8da60fa4bf8b6b92",
"6ad57e1d64214bfbbb7662e748ed1b84",
"7e364ea272044763bdda5afef3961ae5",
"ce6ac0d3d8a54b74a4af59996597ed03",
"dded2a7d79ee4d759372741256f04cec",
"edc487470d0344198f7185d3e2e7362a");
if (list.contains(staffId)) {
JSONResponse jp = new JSONResponse();
jp.setErrorCode(-1);
jp.setErrorMessage("已触发过");
......@@ -1210,6 +1228,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
return this.sendMessage(wxEnterpriseId, staffId, extendUserList, materialIdList);
}
/**
* 创建企业群发, 支出素材批量发送
*
......@@ -1248,12 +1267,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
qywxExternalMessageDTO.setChatType("single");
qywxExternalMessageDTO.setExternalUserid(extendUserList);
TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId);
if(null == tabHaobanStaff) {
log.info("staff不存在,staffId={}",staffId);
if (null == tabHaobanStaff) {
log.info("staff不存在,staffId={}", staffId);
JSONResponse jp = new JSONResponse();
jp.setErrorCode(-1);
jp.setErrorMessage("群发失败,成员查不到," + staffId);
return jp ;
return jp;
}
if (qwDTO.needOpenUserId3th()) {
qywxExternalMessageDTO.setSenderUserId(tabHaobanStaff.getWxOpenUseId());
......@@ -1456,10 +1475,10 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
ExternalUserPojo pojo = getExternalUserPojo(unionIdJson, wxUserId, wxEnterpriseId);
return EntityUtil.changeEntityByJSON(ExternalUserDTO.class, pojo);
}
@Override
public ExternalUserDTO getCorpSelfExternalUseridInfoForMember(String wxEnterpriseId, String wxUserId,
String externalUserId,String enterpriseId) {
String externalUserId, String enterpriseId) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) {
log.info("企业不存在");
......@@ -1643,7 +1662,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("通知会员 更新为企微好友 memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制需求
addDelFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId);
addDelFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId, 1);
return "";
}
......@@ -1773,8 +1792,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return;
}
//删除成员与union的关联关系
List<String> khList = new ArrayList<String>(delExternalUserIds) ;
log.info("需要删除外部联系人staffId={} , khList={}", staffId,JSON.toJSONString(khList));
List<String> khList = new ArrayList<String>(delExternalUserIds);
log.info("需要删除外部联系人staffId={} , khList={}", staffId, JSON.toJSONString(khList));
memberUnionRelatedService.delMemberUnionidRelatedBatch(wxEnterpriseId, staffId, khList);
//删除导购和外部联系人关系
externalClerkRelatedService.delByUserIdAndExternalUserIdBatch(wxEnterpriseId, staffId, khList);
......@@ -1895,7 +1914,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String wxUserId = externalUserDTO.getWxUserId();
TabHaobanStaff tabHaobanStaff = staffService.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
if (tabHaobanStaff == null) {
log.error("员工不存在:{}",wxUserId);
log.error("员工不存在:{}", wxUserId);
continue;
}
TabHaobanExternalClerkRelated externalClerkRelated = externalClerkRelatedMapper.getByEnterpriseIdAndExternalUserId(wxEnterpriseId, tabHaobanStaff.getStaffId(), enterpriseId, externalUserid);
......@@ -1966,7 +1985,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
MemberUnionidRelated memberUnionidRelated = memberUnionidRelatedMapper.selectByPrimaryKey(memberUnionidRelatedId);
return EntityUtil.changeEntityNew(MemberUnionidRelatedDTO.class, memberUnionidRelated);
}
/**
* 获取客户详情列表
*
......
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