Commit 65eb6e1e by 墨竹

Merge branch 'feat-0919' into developer

parents 225676fe 787d2c2e
...@@ -3,14 +3,12 @@ package com.gic.haoban.manage.api.dto; ...@@ -3,14 +3,12 @@ package com.gic.haoban.manage.api.dto;
import java.io.Serializable; import java.io.Serializable;
/** /**
* * @author xugh
* @ClassName: QwFrientNoticeDTO * @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知 * @Description: 企微加好友通知
* @author xugh * @date 2022年8月18日 上午10:31:14
* @date 2022年8月18日 上午10:31:14
*
*/ */
public class QwFrientNoticeDTO implements Serializable{ public class QwFrientNoticeDTO implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -18,14 +16,14 @@ public class QwFrientNoticeDTO implements Serializable{ ...@@ -18,14 +16,14 @@ public class QwFrientNoticeDTO implements Serializable{
private String suiteid; private String suiteid;
private String memberUnionidRelatedId; private String memberUnionidRelatedId;
private String memberId; private String memberId;
private String unionid; private String unionid;
private String wxEnterpriseId; private String wxEnterpriseId;
private String enterpriseId; private String enterpriseId;
private Integer statusFlag; private Integer statusFlag;
...@@ -33,13 +31,13 @@ public class QwFrientNoticeDTO implements Serializable{ ...@@ -33,13 +31,13 @@ public class QwFrientNoticeDTO implements Serializable{
private String externalUserid; private String externalUserid;
private String wxUserId; private String wxUserId;
private String selfExternalUserid; private String selfExternalUserid;
private String externalName; private String externalName;
private String addCreateTime; private String addCreateTime;
private String avatar; private String avatar;
private String welcomeCode; private String welcomeCode;
...@@ -47,8 +45,9 @@ public class QwFrientNoticeDTO implements Serializable{ ...@@ -47,8 +45,9 @@ public class QwFrientNoticeDTO implements Serializable{
* 自定义的state参数 * 自定义的state参数
*/ */
private String state; private String state;
private String staffId ; private String staffId;
private String changeType;
public String getStaffId() { public String getStaffId() {
return staffId; return staffId;
...@@ -138,45 +137,45 @@ public class QwFrientNoticeDTO implements Serializable{ ...@@ -138,45 +137,45 @@ public class QwFrientNoticeDTO implements Serializable{
this.suiteid = suiteid; this.suiteid = suiteid;
} }
public String getSelfExternalUserid() { public String getSelfExternalUserid() {
return selfExternalUserid; return selfExternalUserid;
} }
public void setSelfExternalUserid(String selfExternalUserid) { public void setSelfExternalUserid(String selfExternalUserid) {
this.selfExternalUserid = selfExternalUserid; this.selfExternalUserid = selfExternalUserid;
} }
public String getExternalName() { public String getExternalName() {
return externalName; return externalName;
} }
public void setExternalName(String externalName) { public void setExternalName(String externalName) {
this.externalName = externalName; this.externalName = externalName;
} }
public String getAddCreateTime() { public String getAddCreateTime() {
return addCreateTime; return addCreateTime;
} }
public void setAddCreateTime(String addCreateTime) { public void setAddCreateTime(String addCreateTime) {
this.addCreateTime = addCreateTime; this.addCreateTime = addCreateTime;
} }
public String getEnterpriseId() { public String getEnterpriseId() {
return enterpriseId; return enterpriseId;
} }
public void setEnterpriseId(String enterpriseId) { public void setEnterpriseId(String enterpriseId) {
this.enterpriseId = enterpriseId; this.enterpriseId = enterpriseId;
} }
public String getAvatar() { public String getAvatar() {
return avatar; return avatar;
} }
public void setAvatar(String avatar) { public void setAvatar(String avatar) {
this.avatar = avatar; this.avatar = avatar;
} }
public String getState() { public String getState() {
return state; return state;
...@@ -185,4 +184,12 @@ public class QwFrientNoticeDTO implements Serializable{ ...@@ -185,4 +184,12 @@ public class QwFrientNoticeDTO implements Serializable{
public void setState(String state) { public void setState(String state) {
this.state = state; this.state = state;
} }
public String getChangeType() {
return changeType;
}
public void setChangeType(String changeType) {
this.changeType = changeType;
}
} }
...@@ -10,35 +10,18 @@ public class WxEnterpriseQwDTO implements Serializable { ...@@ -10,35 +10,18 @@ public class WxEnterpriseQwDTO implements Serializable {
private String wxEnterpriseId; private String wxEnterpriseId;
// 好办 助手 // 好办 助手
private String dkCorpid; private String dkCorpid;
private String dkSuiteId;
// 会员小程序dk // 会员小程序dk
private String memberCorpid; private String memberCorpid;
private String memberSuiteId;
// 第三方 // 第三方
private String thirdCorpid; private String thirdCorpid;
// 第三方使用的加密的userid // 第三方使用的加密的userid
public boolean needOpenUserId3th() { public boolean needOpenUserId3th() {
return this.wxSecurityType == 2 || this.wxSecurityType == 3; return this.wxSecurityType == 2 || this.wxSecurityType == 3;
} }
public boolean needOpenUserIdDk() {
return this.wxSecurityType == 2 || this.wxSecurityType == 4 ;
}
public String getDkSuiteId() {
return dkSuiteId;
}
public String getMemberSuiteId() { public boolean needOpenUserIdDk() {
return memberSuiteId; return this.wxSecurityType == 2 || this.wxSecurityType == 4;
}
public void setDkSuiteId(String dkSuiteId) {
this.dkSuiteId = dkSuiteId;
}
public void setMemberSuiteId(String memberSuiteId) {
this.memberSuiteId = memberSuiteId;
} }
public int getWxSecurityType() { public int getWxSecurityType() {
......
...@@ -78,7 +78,7 @@ public interface MemberUnionidRelatedApiService { ...@@ -78,7 +78,7 @@ public interface MemberUnionidRelatedApiService {
* @date 2022-01-13 10:50:44 * @date 2022-01-13 10:50:44
*/ */
String sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, String materialId); String sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, String materialId);
/** /**
* 创建企业群发, 支出素材批量发送 * 创建企业群发, 支出素材批量发送
* *
...@@ -89,6 +89,9 @@ public interface MemberUnionidRelatedApiService { ...@@ -89,6 +89,9 @@ public interface MemberUnionidRelatedApiService {
* @return : 返回群发执行结果 * @return : 返回群发执行结果
*/ */
JSONResponse sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, List<String> materialIdList); JSONResponse sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, List<String> materialIdList);
JSONResponse sendMessage(String wxEnterpriseId, String staffId, List<String> extendUserList, List<String> materialIdList , String ecmPlanId);
/** /**
* 获取群发成员发送任务列表 * 获取群发成员发送任务列表
......
package com.gic.haoban.manage.api.service.out; package com.gic.haoban.manage.api.service.out;
import java.util.List;
import com.gic.haoban.manage.api.dto.SecretSettingDTO; import com.gic.haoban.manage.api.dto.SecretSettingDTO;
/** /**
...@@ -14,4 +16,6 @@ public interface SecretSettingApiService { ...@@ -14,4 +16,6 @@ public interface SecretSettingApiService {
* @return * @return
*/ */
SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType); SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType);
public List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId);
} }
package com.gic.haoban.manage.service.dao.mapper; package com.gic.haoban.manage.service.dao.mapper;
import com.gic.haoban.manage.service.entity.TabSecretSetting; import java.util.List;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.service.entity.TabSecretSetting;
@Mapper @Mapper
public interface SecretSettingMapper { public interface SecretSettingMapper {
/** /**
*/ */
int deleteByPrimaryKey(String secretId);
/**
*/
int insert(TabSecretSetting record); int insert(TabSecretSetting record);
/** /**
*/ */
int insertSelective(TabSecretSetting record);
/**
*/
TabSecretSetting selectByPrimaryKey(String secretId); TabSecretSetting selectByPrimaryKey(String secretId);
/** /**
*/ */
int updateByPrimaryKeySelective(TabSecretSetting record); int updateByPrimaryKeySelective(TabSecretSetting record);
/** /**
*/
int updateByPrimaryKey(TabSecretSetting record);
/**
* 获取企业secret配置信息 * 获取企业secret配置信息
* @param wxEnterpriseId * @param wxEnterpriseId
* @return * @return
...@@ -49,5 +40,17 @@ public interface SecretSettingMapper { ...@@ -49,5 +40,17 @@ public interface SecretSettingMapper {
TabSecretSetting getSecretSetting(@Param("wxEnterpriseId") String wxEnterpriseId, TabSecretSetting getSecretSetting(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("secretType") int secretType, @Param("secretType") int secretType,
@Param("enterpriseId") String enterpriseId); @Param("enterpriseId") String enterpriseId);
/**
*
* @Title: isExsitGicMemberApp
* @Description: 是否已经存在配置的gic会员小程序
* @author xugh
* @param wxEnterpriseId
* @param enterpriseId
* @return
* @throws
*/
List<SecretSettingDTO> exsitGicEidMemberApp(@Param("wxEnterpriseId") String wxEnterpriseId);
} }
\ No newline at end of file
...@@ -4,6 +4,8 @@ import com.gic.haoban.manage.api.dto.SecretSettingDTO; ...@@ -4,6 +4,8 @@ import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import java.util.List; import java.util.List;
import org.apache.ibatis.annotations.Param;
/** /**
* Created 2020/6/3. * Created 2020/6/3.
* *
...@@ -56,4 +58,6 @@ public interface SecretSettingService { ...@@ -56,4 +58,6 @@ public interface SecretSettingService {
* @date 2022-06-27 13:39:58 * @date 2022-06-27 13:39:58
*/ */
SecretSettingDTO getSecretSettingById(String secretId); SecretSettingDTO getSecretSettingById(String secretId);
List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId);
} }
...@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.impl; ...@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.utils.EntityUtil; import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil; import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO; import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
...@@ -17,8 +23,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation; ...@@ -17,8 +23,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService; import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService; import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService; import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.search.engine.api.dto.ESResponseQuerySingle; import com.gic.search.engine.api.dto.ESResponseQuerySingle;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO; import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService; import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
...@@ -52,6 +62,12 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -52,6 +62,12 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper; private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired @Autowired
private WxUserAddLogService wxUserAddLogService; private WxUserAddLogService wxUserAddLogService;
@Autowired
private StoreService storeService;
@Autowired
private ClerkService clerkService;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override @Override
public void insert(TabHaobanExternalClerkRelated related) { public void insert(TabHaobanExternalClerkRelated related) {
...@@ -69,13 +85,13 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -69,13 +85,13 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
} }
@Override @Override
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto , String wxUserId) { public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto, String wxUserId) {
int count = mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto)); int count = mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto));
if (count <= 0) { if (count <= 0) {
logger.error("无需删除的好友数据:{}", JSON.toJSONString(dto)); logger.error("无需删除的好友数据:{}", JSON.toJSONString(dto));
return; return;
} }
String staffId = dto.getStaffId() ; String staffId = dto.getStaffId();
String externalUserid = dto.getExternalUserid(); String externalUserid = dto.getExternalUserid();
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 2); List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 2);
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) { if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
...@@ -91,7 +107,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -91,7 +107,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
} }
staffId = tabHaobanStaff.getStaffId(); staffId = tabHaobanStaff.getStaffId();
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId,null); List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId, null);
if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) { if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) {
logger.error("找不到员工导购关联关系:staffId:{},wxEnterpriseId:{}", staffId, wxEnterpriseId); logger.error("找不到员工导购关联关系:staffId:{},wxEnterpriseId:{}", staffId, wxEnterpriseId);
return; return;
...@@ -129,6 +145,64 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -129,6 +145,64 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
wxUserAddLogQDTO.setStaffId(related.getStaffId()); wxUserAddLogQDTO.setStaffId(related.getStaffId());
wxUserAddLogQDTO.setClerkId(related.getClerkId()); wxUserAddLogQDTO.setClerkId(related.getClerkId());
wxUserAddLogService.save(wxUserAddLogQDTO); wxUserAddLogService.save(wxUserAddLogQDTO);
//定制
addDelFriendEvent(related.getUnionid(), related.getClerkId(), enterpriseId, related.getMemberId(), related.getStoreId());
}
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
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("changeType", 0);
msgBody.put("addCreateTime", "");
msgBody.put("delCreateTime", new Date());
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
logger.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
} }
@Override @Override
......
...@@ -8,6 +8,7 @@ import com.gic.haoban.manage.service.dao.mapper.SecretSettingMapper; ...@@ -8,6 +8,7 @@ import com.gic.haoban.manage.service.dao.mapper.SecretSettingMapper;
import com.gic.haoban.manage.service.entity.TabSecretSetting; import com.gic.haoban.manage.service.entity.TabSecretSetting;
import com.gic.haoban.manage.service.service.SecretSettingService; import com.gic.haoban.manage.service.service.SecretSettingService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -86,4 +87,9 @@ public class SecretSettingServiceImpl implements SecretSettingService { ...@@ -86,4 +87,9 @@ public class SecretSettingServiceImpl implements SecretSettingService {
TabSecretSetting secretSetting = secretSettingMapper.selectByPrimaryKey(secretId); TabSecretSetting secretSetting = secretSettingMapper.selectByPrimaryKey(secretId);
return EntityUtil.changeEntity(SecretSettingDTO.class, secretSetting); return EntityUtil.changeEntity(SecretSettingDTO.class, secretSetting);
} }
@Override
public List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId) {
return this.secretSettingMapper.exsitGicEidMemberApp(wxEnterpriseId);
}
} }
...@@ -70,10 +70,8 @@ public class WxEnterpriseServiceImpl implements WxEnterpriseService { ...@@ -70,10 +70,8 @@ public class WxEnterpriseServiceImpl implements WxEnterpriseService {
qw.setThirdCorpid(app.getCorpid()); qw.setThirdCorpid(app.getCorpid());
}else if(appType.equals(3)) { }else if(appType.equals(3)) {
qw.setDkCorpid(app.getCorpid()); qw.setDkCorpid(app.getCorpid());
qw.setDkSuiteId(app.getSiteId());
}else if(appType.equals(4)) { }else if(appType.equals(4)) {
qw.setMemberCorpid(app.getCorpid()); qw.setMemberCorpid(app.getCorpid());
qw.setMemberSuiteId(app.getSiteId());
} }
}); });
} }
......
package com.gic.haoban.manage.service.service.out.impl; package com.gic.haoban.manage.service.service.out.impl;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.redisson.api.RRateLimiter;
import org.redisson.api.RateIntervalUnit;
import org.redisson.api.RateType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.UniqueIdUtils; import com.gic.commons.util.UniqueIdUtils;
import com.gic.dubbo.entity.ProviderLocalTag; import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.app.customer.enums.GicQywxSyncTypeEnum; import com.gic.haoban.app.customer.enums.GicQywxSyncTypeEnum;
import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum; import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.base.api.common.errCode.HaoBanErrCodeCommon; import com.gic.haoban.base.api.common.errCode.HaoBanErrCodeCommon;
import com.gic.haoban.common.utils.PageUtil; import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.AlertMessageDTO; import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.ClerkStaffWxUserDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO;
import com.gic.haoban.manage.api.dto.FriendMemberStatusDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.enums.AlertTypeEnum; import com.gic.haoban.manage.api.enums.AlertTypeEnum;
import com.gic.haoban.manage.api.enums.SyncTaskTypeEnum; import com.gic.haoban.manage.api.enums.SyncTaskTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService; import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
...@@ -45,27 +26,38 @@ import com.gic.haoban.manage.api.service.DealSyncOperationApiService; ...@@ -45,27 +26,38 @@ import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService; import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService; import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.service.config.Config; import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.ExternalUseridLogMapper; import com.gic.haoban.manage.service.dao.mapper.*;
import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper; import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabExternalUseridLog;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO; import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo; import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService; import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService; import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO; import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.redisson.api.RRateLimiter;
import org.redisson.api.RateIntervalUnit;
import org.redisson.api.RateType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service @Service
public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService { public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService {
...@@ -95,9 +87,17 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -95,9 +87,17 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Autowired @Autowired
private WxUserAddLogService wxUserAddLogService; private WxUserAddLogService wxUserAddLogService;
@Autowired @Autowired
private WxEnterpriseService wxEnterpriseService ; private WxEnterpriseService wxEnterpriseService;
@Autowired
private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired @Autowired
private DealSyncOperationApiService dealSyncOperationApiService ; private MemberEntranceApiService memberEntranceApiService;
@Autowired
private StoreService storeService;
@Autowired
private ClerkService clerkService;
@Autowired
private MemberService memberService;
/** /**
* 查询会员在企业下的好友关系 * 查询会员在企业下的好友关系
...@@ -112,12 +112,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -112,12 +112,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdAndWxEnterpriseId(memberId, wxEnterpriseId, enterpriseId); List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdAndWxEnterpriseId(memberId, wxEnterpriseId, enterpriseId);
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list); return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, list);
} }
@Override @Override
public List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId, public List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId,
String enterpriseId) { String enterpriseId) {
List<ExternalClerkRelatedDTO> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdList(memberIdList, wxEnterpriseId, enterpriseId); List<ExternalClerkRelatedDTO> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdList(memberIdList, wxEnterpriseId, enterpriseId);
return list ; return list;
} }
@Override @Override
...@@ -151,7 +151,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -151,7 +151,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
tabHaobanExternalClerkRelatedMapper.pushExternalByRelationKey(relationKey); tabHaobanExternalClerkRelatedMapper.pushExternalByRelationKey(relationKey);
return true; return true;
} }
@Override @Override
public List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate( public List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(
String enterpriseId, Date date) { String enterpriseId, Date date) {
...@@ -229,10 +229,70 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -229,10 +229,70 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
//回调给会员,更新是否为企微好友 //回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId); log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制
addDelFriendEvent(unionid, externalClerkRelated.getClerkId(), enterpriseId, memberId, externalClerkRelated.getStoreId());
//日志 //日志
wxUserAddLogService.updateMemberInfo(wxEnterpriseId, enterpriseId, externalClerkRelated.getStaffId(), externalClerkRelated.getExternalUserId(), memberId); wxUserAddLogService.updateMemberInfo(wxEnterpriseId, enterpriseId, externalClerkRelated.getStaffId(), externalClerkRelated.getExternalUserId(), memberId);
} }
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
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("changeType", 1);
msgBody.put("addCreateTime", new Date());
msgBody.put("delCreateTime", "");
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
log.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
/** /**
* 刷新标签信息 * 刷新标签信息
* *
...@@ -303,7 +363,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -303,7 +363,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, enterpriseId); List<TabHaobanExternalClerkRelated> list = tabHaobanExternalClerkRelatedMapper.listByMemberId(memberId, enterpriseId);
return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list); return EntityUtil.changeEntityListNew(ExternalClerkRelatedShortInfoDTO.class, list);
} }
@Override @Override
public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId) { public List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId) {
if (StringUtils.isBlank(memberId)) { if (StringUtils.isBlank(memberId)) {
...@@ -325,12 +385,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -325,12 +385,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId) { public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId) {
log.info("删除会员或者合并会员,memberId:{},enterpriseId:{},mergeMemberId:{}", memberId, enterpriseId, mergeMemberId); log.info("删除会员或者合并会员,memberId:{},enterpriseId:{},mergeMemberId:{}", memberId, enterpriseId, mergeMemberId);
if (StringUtils.isBlank(mergeMemberId)) { if (StringUtils.isBlank(mergeMemberId)) {
log.info("删除会员,memberId:{}",memberId); log.info("删除会员,memberId:{}", memberId);
//删除会员 //删除会员
tabHaobanExternalClerkRelatedMapper.updateStatusByMemberId(memberId, enterpriseId); tabHaobanExternalClerkRelatedMapper.updateStatusByMemberId(memberId, enterpriseId);
} else { } else {
//合并会员 //合并会员
log.info("合并会员,memberId:{}",memberId); log.info("合并会员,memberId:{}", memberId);
tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId); tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId);
int i = tabHaobanExternalClerkRelatedMapper.countByMemberId(mergeMemberId, enterpriseId); int i = tabHaobanExternalClerkRelatedMapper.countByMemberId(mergeMemberId, enterpriseId);
if (i > 0) { if (i > 0) {
...@@ -341,6 +401,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -341,6 +401,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
} }
} }
@Override @Override
public boolean isFriends(String memberId, String clerkId, String enterpriseId) { public boolean isFriends(String memberId, String clerkId, String enterpriseId) {
TabHaobanStaffClerkRelation staffClerkRelation = staffClerkRelationMapper.getByClerkId(clerkId); TabHaobanStaffClerkRelation staffClerkRelation = staffClerkRelationMapper.getByClerkId(clerkId);
...@@ -362,7 +423,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -362,7 +423,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
// 2个列表都为空查不了关系 // 2个列表都为空查不了关系
return Collections.emptyMap(); return Collections.emptyMap();
} }
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ; WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) { if (qwDTO == null) {
return Collections.emptyMap(); return Collections.emptyMap();
} }
...@@ -413,7 +474,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -413,7 +474,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
} }
RedisUtil.lock(lockKey, 1L, TimeUnit.DAYS, 0L); RedisUtil.lock(lockKey, 1L, TimeUnit.DAYS, 0L);
try { try {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ; WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), qwDTO.getThirdCorpid()); updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), qwDTO.getThirdCorpid());
log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId); log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId);
RedisUtil.unlock(lockKey); RedisUtil.unlock(lockKey);
...@@ -634,8 +695,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -634,8 +695,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
public int countFriendCountByClerkId(String wxEnterpriseId, String enterpriseId, String staffId, String clerkId) { public int countFriendCountByClerkId(String wxEnterpriseId, String enterpriseId, String staffId, String clerkId) {
return tabHaobanExternalClerkRelatedMapper.countByClerkId(wxEnterpriseId, enterpriseId, staffId, clerkId); return tabHaobanExternalClerkRelatedMapper.countByClerkId(wxEnterpriseId, enterpriseId, staffId, clerkId);
} }
@Override @Override
public void initWxEnterpriseFriend(String wxEnterpriseId) { public void initWxEnterpriseFriend(String wxEnterpriseId) {
log.info("刷新整个企业的好友开始={}", wxEnterpriseId); log.info("刷新整个企业的好友开始={}", wxEnterpriseId);
...@@ -647,8 +708,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -647,8 +708,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
log.info("没有要刷新的:{},{}", wxEnterpriseId, staffList); log.info("没有要刷新的:{},{}", wxEnterpriseId, staffList);
return; return;
} }
staffList = staffList.stream().distinct().collect(Collectors.toList()) ; staffList = staffList.stream().distinct().collect(Collectors.toList());
log.info("staffList={}",JSON.toJSONString(staffList)); log.info("staffList={}", JSON.toJSONString(staffList));
for (String staffId : staffList) { for (String staffId : staffList) {
this.dealSyncOperationApiService.dealWxFriendClerkSingle(taskId, staffId, staffId, wxEnterpriseId); this.dealSyncOperationApiService.dealWxFriendClerkSingle(taskId, staffId, staffId, wxEnterpriseId);
} }
......
...@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON; ...@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.JSONResponse; import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO; import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
import com.gic.clerk.api.service.PowerService; import com.gic.clerk.api.service.PowerService;
...@@ -61,10 +62,9 @@ import com.gic.haoban.manage.service.service.hm.WxUserAddLogService; ...@@ -61,10 +62,9 @@ import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.haoban.manage.service.util.CommonUtil; import com.gic.haoban.manage.service.util.CommonUtil;
import com.gic.haoban.manage.service.util.EmojiFilterUtil; import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberApiService; import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.service.MemberOpenCardBusinessService; import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.*;
import com.gic.member.api.service.MemberStoreService;
import com.gic.member.tag.api.dto.outapi.MemberTagSingleDTO; import com.gic.member.tag.api.dto.outapi.MemberTagSingleDTO;
import com.gic.member.tag.api.service.MemberTagOpenApiService; import com.gic.member.tag.api.service.MemberTagOpenApiService;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
...@@ -169,21 +169,37 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -169,21 +169,37 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired @Autowired
private HmClerkRelationApiService hmClerkRelationApiService; private HmClerkRelationApiService hmClerkRelationApiService;
@Autowired @Autowired
private StaffMapper staffMapper ; private StaffMapper staffMapper;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override @Override
public void dealQywxExternalUser(String params) { public void dealQywxExternalUser(String params) {
log.info("处理外部联系人回调:{}", params); log.info("处理外部联系人回调:{}", params);
DealQywxExternalUserPojo externalUserPojo = JSONObject.parseObject(params, DealQywxExternalUserPojo.class); DealQywxExternalUserPojo externalUserPojo = JSONObject.parseObject(params, DealQywxExternalUserPojo.class);
QwFrientNoticeDTO dto = externalUserPojo.getData() ; QwFrientNoticeDTO qwFrientNoticeDTO = externalUserPojo.getData();
MemberUnionidRelatedDTO inDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class,dto) ; int type = externalUserPojo.getType();
if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.del.getType()) { MemberUnionidRelatedDTO memberUnionidRelatedDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class, qwFrientNoticeDTO);
this.delMemberUnionidRelatedProcess(inDTO , dto.getWxUserId()); if (type == DealQywxExternalUserPojo.DealType.add.getType()) {
} else if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.add.getType()) { this.addMemberUnionidRelatedNew(memberUnionidRelatedDTO, qwFrientNoticeDTO.getWxUserId());
this.addMemberUnionidRelatedNew(inDTO , dto.getWxUserId()); } else if (type == DealQywxExternalUserPojo.DealType.edit.getType()) {
} else if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.edit.getType()) { this.editMemberUnionidRelatedProcess(memberUnionidRelatedDTO, qwFrientNoticeDTO.getWxUserId());
this.editMemberUnionidRelatedProcess(inDTO , dto.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());
} }
} }
...@@ -194,7 +210,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -194,7 +210,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (CollectionUtil.isEmpty(list)) { if (CollectionUtil.isEmpty(list)) {
return null; return null;
} }
TabHaobanStaff haobanStaff = staffService.selectById(staffId) ; TabHaobanStaff haobanStaff = staffService.selectById(staffId);
if (null == haobanStaff) { if (null == haobanStaff) {
log.info("staff不存在"); log.info("staff不存在");
return null; return null;
...@@ -209,7 +225,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -209,7 +225,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("staff关联门店不存在2"); log.info("staff关联门店不存在2");
return null; return null;
} }
log.info("门店信息storeIds={}",JSON.toJSONString(storeIds)); log.info("门店信息storeIds={}", JSON.toJSONString(storeIds));
//2、获取member的storeId //2、获取member的storeId
for (TabHaobanExternalClerkRelated tab : list) { for (TabHaobanExternalClerkRelated tab : list) {
if (StringUtils.isNotBlank(storeId) && (!storeId.equals(tab.getStoreId()))) { if (StringUtils.isNotBlank(storeId) && (!storeId.equals(tab.getStoreId()))) {
...@@ -293,12 +309,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -293,12 +309,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Override @Override
public String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto, String wxUserId) { public String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto, String wxUserId) {
//解析组装信息 //解析组装信息
dto = getMemberUnionidRelatedDTONew(dto,wxUserId); dto = getMemberUnionidRelatedDTONew(dto, wxUserId);
if (null == dto) { if (null == dto) {
log.info("没处理完成-等下一次处理"); log.info("没处理完成-等下一次处理");
return null; return null;
} }
insertExternalClerkRelatedNew(dto,wxUserId); insertExternalClerkRelatedNew(dto, wxUserId);
return dto.getMemberUnionidRelatedId(); return dto.getMemberUnionidRelatedId();
} }
...@@ -335,7 +351,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -335,7 +351,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
String staffId = staff.getStaffId(); String staffId = staff.getStaffId();
String staffName = staff.getStaffName(); String staffName = staff.getStaffName();
log.info("新增外部联系人,staffId={}",staffId); log.info("新增外部联系人,staffId={}", staffId);
StaffClerkRelationDTO staffClerkRelationDTO = null; StaffClerkRelationDTO staffClerkRelationDTO = null;
//活码处理 "DT" "HM" //活码处理 "DT" "HM"
WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO(); WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO();
...@@ -435,7 +451,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -435,7 +451,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (StringUtils.isNotBlank(unionid)) { if (StringUtils.isNotBlank(unionid)) {
log.info("有unionid处理:wxEnterpriseId:{},unionid:{}", wxEnterpriseId, unionid); log.info("有unionid处理:wxEnterpriseId:{},unionid:{}", wxEnterpriseId, unionid);
dto.setUnionid(unionid); dto.setUnionid(unionid);
memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated, isHmUnionid, mobile , wxUserId); memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated, isHmUnionid, mobile, wxUserId);
} else { } else {
log.info("发送欢迎语逻辑:wxEnterpriseId:{}", wxEnterpriseId); log.info("发送欢迎语逻辑:wxEnterpriseId:{}", wxEnterpriseId);
addFriendByWelcome(dto, staffClerkRelationDTO); addFriendByWelcome(dto, staffClerkRelationDTO);
...@@ -549,6 +565,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -549,6 +565,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
String memberId = member.getMemberId(); String memberId = member.getMemberId();
String storeId = staffClerkRelationDTO.getStoreId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, staffId); List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, staffId);
String relationKey = SecureUtil.md5(staffId + externalUserid); String relationKey = SecureUtil.md5(staffId + externalUserid);
String memberUnionidRelatedId = dto.getMemberUnionidRelatedId(); String memberUnionidRelatedId = dto.getMemberUnionidRelatedId();
...@@ -563,7 +580,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -563,7 +580,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
related.setStaffId(staffId); related.setStaffId(staffId);
related.setHeadUrl(dto.getAvatar()); related.setHeadUrl(dto.getAvatar());
related.setMemberUnionidRelatedId(memberUnionidRelatedId); related.setMemberUnionidRelatedId(memberUnionidRelatedId);
related.setStoreId(staffClerkRelationDTO.getStoreId()); related.setStoreId(storeId);
related.setRelationKey(relationKey); related.setRelationKey(relationKey);
related.setUnionid(unionId); related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId); related.setWxEnterpriseId(wxEnterpriseId);
...@@ -578,7 +595,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -578,7 +595,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setUnionid(unionId); exsitDTO.setUnionid(unionId);
exsitDTO.setRelationKey(relationKey); exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar()); exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId()); exsitDTO.setStoreId(storeId);
exsitDTO.setEnterpriseId(enterpriseId); exsitDTO.setEnterpriseId(enterpriseId);
exsitDTO.setClerkId(clerkId); exsitDTO.setClerkId(clerkId);
exsitDTO.setStatusFlag(1); exsitDTO.setStatusFlag(1);
...@@ -598,9 +615,70 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -598,9 +615,70 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//回调给会员,更新是否为企微好友 //回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId); log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制事件订阅
addDelFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId, 1);
return memberId; 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, Integer changeType) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
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());
}
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
log.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
/** /**
* 欢迎语新增好友 * 欢迎语新增好友
...@@ -1062,20 +1140,20 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1062,20 +1140,20 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
* *
* @param dto * @param dto
*/ */
private void delMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto , String wxUserId) { private void delMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) {
String corpId = dto.getCorpid(); String corpId = dto.getCorpid();
TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpId, null); TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpId, null);
if (tabHaobanWxApplication == null) { if (tabHaobanWxApplication == null) {
log.info("查询tab_haoban_wx_application为空:{}", corpId); log.info("查询tab_haoban_wx_application为空:{}", corpId);
return ; return;
} }
String wxEnterpriseId = tabHaobanWxApplication.getWxEnterpriseId(); String wxEnterpriseId = tabHaobanWxApplication.getWxEnterpriseId();
dto.setWxEnterpriseId(wxEnterpriseId); dto.setWxEnterpriseId(wxEnterpriseId);
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId,wxEnterpriseId) ; TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
String staffId = staff.getStaffId() ; String staffId = staff.getStaffId();
dto.setStaffId(staffId); dto.setStaffId(staffId);
externalClerkRelatedService.delByUserIdAndExternalUserId(dto , wxUserId); externalClerkRelatedService.delByUserIdAndExternalUserId(dto, wxUserId);
memberUnionRelatedService.delMemberUnionidRelated(dto , staffId); memberUnionRelatedService.delMemberUnionidRelated(dto, staffId);
} }
private void editMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) { private void editMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) {
...@@ -1128,6 +1206,29 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1128,6 +1206,29 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return returnMap.get("msgid") == null ? "" : returnMap.get("msgid").toString(); 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> list = Arrays.asList("244fc3aa44dd492c90041d404f02b3a0",
"3c6d26dc791946a8aa8aaf06d9deb9a6",
"4dd7689a3a5e48439840fb187bfaf995",
"6a29b127c15648cc8da60fa4bf8b6b92",
"6ad57e1d64214bfbbb7662e748ed1b84",
"7e364ea272044763bdda5afef3961ae5",
"ce6ac0d3d8a54b74a4af59996597ed03",
"dded2a7d79ee4d759372741256f04cec",
"edc487470d0344198f7185d3e2e7362a");
if (list.contains(staffId)) {
JSONResponse jp = new JSONResponse();
jp.setErrorCode(-1);
jp.setErrorMessage("已触发过");
return jp;
}
}
return this.sendMessage(wxEnterpriseId, staffId, extendUserList, materialIdList);
}
/** /**
* 创建企业群发, 支出素材批量发送 * 创建企业群发, 支出素材批量发送
* *
...@@ -1166,6 +1267,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1166,6 +1267,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
qywxExternalMessageDTO.setChatType("single"); qywxExternalMessageDTO.setChatType("single");
qywxExternalMessageDTO.setExternalUserid(extendUserList); qywxExternalMessageDTO.setExternalUserid(extendUserList);
TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId); TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId);
if (null == tabHaobanStaff) {
log.info("staff不存在,staffId={}", staffId);
JSONResponse jp = new JSONResponse();
jp.setErrorCode(-1);
jp.setErrorMessage("群发失败,成员查不到," + staffId);
return jp;
}
if (qwDTO.needOpenUserId3th()) { if (qwDTO.needOpenUserId3th()) {
qywxExternalMessageDTO.setSenderUserId(tabHaobanStaff.getWxOpenUseId()); qywxExternalMessageDTO.setSenderUserId(tabHaobanStaff.getWxOpenUseId());
} else { } else {
...@@ -1367,10 +1475,10 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1367,10 +1475,10 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
ExternalUserPojo pojo = getExternalUserPojo(unionIdJson, wxUserId, wxEnterpriseId); ExternalUserPojo pojo = getExternalUserPojo(unionIdJson, wxUserId, wxEnterpriseId);
return EntityUtil.changeEntityByJSON(ExternalUserDTO.class, pojo); return EntityUtil.changeEntityByJSON(ExternalUserDTO.class, pojo);
} }
@Override @Override
public ExternalUserDTO getCorpSelfExternalUseridInfoForMember(String wxEnterpriseId, String wxUserId, public ExternalUserDTO getCorpSelfExternalUseridInfoForMember(String wxEnterpriseId, String wxUserId,
String externalUserId,String enterpriseId) { String externalUserId, String enterpriseId) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId); WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) { if (qwDTO == null) {
log.info("企业不存在"); log.info("企业不存在");
...@@ -1553,6 +1661,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1553,6 +1661,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//通知企微好友 //通知企微好友
log.info("通知会员 更新为企微好友 memberId:{}", memberId); log.info("通知会员 更新为企微好友 memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制需求
addDelFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId, 1);
return ""; return "";
} }
...@@ -1682,8 +1792,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1682,8 +1792,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return; return;
} }
//删除成员与union的关联关系 //删除成员与union的关联关系
List<String> khList = new ArrayList<String>(delExternalUserIds) ; List<String> khList = new ArrayList<String>(delExternalUserIds);
log.info("需要删除外部联系人staffId={} , khList={}", staffId,JSON.toJSONString(khList)); log.info("需要删除外部联系人staffId={} , khList={}", staffId, JSON.toJSONString(khList));
memberUnionRelatedService.delMemberUnionidRelatedBatch(wxEnterpriseId, staffId, khList); memberUnionRelatedService.delMemberUnionidRelatedBatch(wxEnterpriseId, staffId, khList);
//删除导购和外部联系人关系 //删除导购和外部联系人关系
externalClerkRelatedService.delByUserIdAndExternalUserIdBatch(wxEnterpriseId, staffId, khList); externalClerkRelatedService.delByUserIdAndExternalUserIdBatch(wxEnterpriseId, staffId, khList);
...@@ -1804,7 +1914,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1804,7 +1914,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String wxUserId = externalUserDTO.getWxUserId(); String wxUserId = externalUserDTO.getWxUserId();
TabHaobanStaff tabHaobanStaff = staffService.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId); TabHaobanStaff tabHaobanStaff = staffService.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
if (tabHaobanStaff == null) { if (tabHaobanStaff == null) {
log.error("员工不存在:{}",wxUserId); log.error("员工不存在:{}", wxUserId);
continue; continue;
} }
TabHaobanExternalClerkRelated externalClerkRelated = externalClerkRelatedMapper.getByEnterpriseIdAndExternalUserId(wxEnterpriseId, tabHaobanStaff.getStaffId(), enterpriseId, externalUserid); TabHaobanExternalClerkRelated externalClerkRelated = externalClerkRelatedMapper.getByEnterpriseIdAndExternalUserId(wxEnterpriseId, tabHaobanStaff.getStaffId(), enterpriseId, externalUserid);
...@@ -1875,7 +1985,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1875,7 +1985,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
MemberUnionidRelated memberUnionidRelated = memberUnionidRelatedMapper.selectByPrimaryKey(memberUnionidRelatedId); MemberUnionidRelated memberUnionidRelated = memberUnionidRelatedMapper.selectByPrimaryKey(memberUnionidRelatedId);
return EntityUtil.changeEntityNew(MemberUnionidRelatedDTO.class, memberUnionidRelated); return EntityUtil.changeEntityNew(MemberUnionidRelatedDTO.class, memberUnionidRelated);
} }
/** /**
* 获取客户详情列表 * 获取客户详情列表
* *
......
package com.gic.haoban.manage.service.service.out.impl; package com.gic.haoban.manage.service.service.out.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gic.haoban.manage.api.dto.SecretSettingDTO; import com.gic.haoban.manage.api.dto.SecretSettingDTO;
import com.gic.haoban.manage.api.service.out.SecretSettingApiService; import com.gic.haoban.manage.api.service.out.SecretSettingApiService;
import com.gic.haoban.manage.service.service.SecretSettingService; import com.gic.haoban.manage.service.service.SecretSettingService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/** /**
* @author mozhu * @author mozhu
...@@ -19,4 +22,9 @@ public class SecretSettingApiServiceImpl implements SecretSettingApiService { ...@@ -19,4 +22,9 @@ public class SecretSettingApiServiceImpl implements SecretSettingApiService {
public SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType) { public SecretSettingDTO getSecretSetting(String wxEnterpriseId, int secretType) {
return secretSettingService.getSecretSetting(wxEnterpriseId, secretType); return secretSettingService.getSecretSetting(wxEnterpriseId, secretType);
} }
@Override
public List<SecretSettingDTO> exsitGicEidMemberApp(String wxEnterpriseId) {
return this.secretSettingService.exsitGicEidMemberApp(wxEnterpriseId);
}
} }
...@@ -192,5 +192,6 @@ ...@@ -192,5 +192,6 @@
<dubbo:reference interface="com.gic.marketing.api.service.AccountOverdueSmsSendService" id="accountOverdueSmsSendService" timeout="10000" retries="0"/> <dubbo:reference interface="com.gic.marketing.api.service.AccountOverdueSmsSendService" id="accountOverdueSmsSendService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.VoiceService" id="voiceService" timeout="10000" retries="0"/> <dubbo:reference interface="com.gic.thirdparty.api.service.VoiceService" id="voiceService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.CommunicationService" id="communicationService" timeout="10000" retries="0"/> <dubbo:reference interface="com.gic.thirdparty.api.service.CommunicationService" id="communicationService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.member.api.service.MemberEntranceApiService" id="memberEntranceApiService" timeout="10000" retries="0"/>
</beans> </beans>
\ No newline at end of file
...@@ -23,10 +23,7 @@ ...@@ -23,10 +23,7 @@
from tab_haoban_secret_setting from tab_haoban_secret_setting
where secret_id = #{secretId,jdbcType=VARCHAR} where secret_id = #{secretId,jdbcType=VARCHAR}
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String">
delete from tab_haoban_secret_setting
where secret_id = #{secretId,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting"> <insert id="insert" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
insert into tab_haoban_secret_setting (secret_id, wx_enterprise_id, secret_name, insert into tab_haoban_secret_setting (secret_id, wx_enterprise_id, secret_name,
secret_val, enterprise_id, secret_type, secret_val, enterprise_id, secret_type,
...@@ -37,73 +34,7 @@ ...@@ -37,73 +34,7 @@
#{checkFlag,jdbcType=INTEGER}, #{statusFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP}, #{checkFlag,jdbcType=INTEGER}, #{statusFlag,jdbcType=INTEGER}, #{createTime,jdbcType=TIMESTAMP},
#{updateTime,jdbcType=TIMESTAMP}) #{updateTime,jdbcType=TIMESTAMP})
</insert> </insert>
<insert id="insertSelective" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
insert into tab_haoban_secret_setting
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="secretId != null">
secret_id,
</if>
<if test="wxEnterpriseId != null">
wx_enterprise_id,
</if>
<if test="secretName != null">
secret_name,
</if>
<if test="secretVal != null">
secret_val,
</if>
<if test="enterpriseId != null">
enterprise_id,
</if>
<if test="secretType != null">
secret_type,
</if>
<if test="checkFlag != null">
check_flag,
</if>
<if test="statusFlag != null">
status_flag,
</if>
<if test="createTime != null">
create_time,
</if>
<if test="updateTime != null">
update_time,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="secretId != null">
#{secretId,jdbcType=VARCHAR},
</if>
<if test="wxEnterpriseId != null">
#{wxEnterpriseId,jdbcType=VARCHAR},
</if>
<if test="secretName != null">
#{secretName,jdbcType=VARCHAR},
</if>
<if test="secretVal != null">
#{secretVal,jdbcType=VARCHAR},
</if>
<if test="enterpriseId != null">
#{enterpriseId,jdbcType=VARCHAR},
</if>
<if test="secretType != null">
#{secretType,jdbcType=INTEGER},
</if>
<if test="checkFlag != null">
#{checkFlag,jdbcType=INTEGER},
</if>
<if test="statusFlag != null">
#{statusFlag,jdbcType=INTEGER},
</if>
<if test="createTime != null">
#{createTime,jdbcType=TIMESTAMP},
</if>
<if test="updateTime != null">
#{updateTime,jdbcType=TIMESTAMP},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting"> <update id="updateByPrimaryKeySelective" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
update tab_haoban_secret_setting update tab_haoban_secret_setting
<set> <set>
...@@ -137,20 +68,6 @@ ...@@ -137,20 +68,6 @@
</set> </set>
where secret_id = #{secretId,jdbcType=VARCHAR} where secret_id = #{secretId,jdbcType=VARCHAR}
</update> </update>
<update id="updateByPrimaryKey" parameterType="com.gic.haoban.manage.service.entity.TabSecretSetting">
update tab_haoban_secret_setting
set wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR},
secret_name = #{secretName,jdbcType=VARCHAR},
secret_val = #{secretVal,jdbcType=VARCHAR},
enterprise_id = #{enterpriseId,jdbcType=VARCHAR},
secret_type = #{secretType,jdbcType=INTEGER},
check_flag = #{checkFlag,jdbcType=INTEGER},
status_flag = #{statusFlag,jdbcType=INTEGER},
create_time = #{createTime,jdbcType=TIMESTAMP},
update_time = #{updateTime,jdbcType=TIMESTAMP}
where secret_id = #{secretId,jdbcType=VARCHAR}
</update>
<select id="listSecretSetting" resultMap="BaseResultMap"> <select id="listSecretSetting" resultMap="BaseResultMap">
select select
...@@ -171,4 +88,10 @@ ...@@ -171,4 +88,10 @@
</if> </if>
ORDER BY create_time desc LIMIT 1 ORDER BY create_time desc LIMIT 1
</select> </select>
<select id="exsitGicEidMemberApp" resultType="com.gic.haoban.manage.api.dto.SecretSettingDTO">
select enterprise_id enterpriseId , secret_id secretId from tab_haoban_secret_setting where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag = 1 and secret_type = 4 and enterprise_id is not null
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -376,15 +376,15 @@ ...@@ -376,15 +376,15 @@
scr.clerk_id as staffClerkId scr.clerk_id as staffClerkId
from tab_haoban_external_clerk_related as ecr from tab_haoban_external_clerk_related as ecr
left join left join
(select a.staff_id, (select b.staff_id,
a.clerk_id a.clerk_id
from tab_haoban_staff_clerk_relation a from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on a.staff_id = b.staff_id left join tab_haoban_staff b on a.staff_id = b.staff_id and b.status_flag = 1
where a.clerk_id in where a.clerk_id in
<foreach collection="clerkIdList" item="item" separator="," open="(" close=")"> <foreach collection="clerkIdList" item="item" separator="," open="(" close=")">
#{item} #{item}
</foreach> </foreach>
and a.status_flag = 1 and a.status_flag = 1
group by a.staff_id, a.clerk_id) as scr on scr.staff_id = ecr.staff_id group by a.staff_id, a.clerk_id) as scr on scr.staff_id = ecr.staff_id
where ecr.status_flag = 1 where ecr.status_flag = 1
and ecr.enterprise_id = #{enterpriseId,jdbcType=VARCHAR} and ecr.enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
......
...@@ -60,6 +60,7 @@ import com.gic.haoban.manage.api.service.MaterialApiService; ...@@ -60,6 +60,7 @@ import com.gic.haoban.manage.api.service.MaterialApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService; import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService; import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService; import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService;
import com.gic.haoban.manage.api.service.out.SecretSettingApiService;
import com.gic.haoban.manage.web.config.Config; import com.gic.haoban.manage.web.config.Config;
import com.gic.haoban.manage.web.errCode.HaoBanErrCode; import com.gic.haoban.manage.web.errCode.HaoBanErrCode;
import com.gic.haoban.manage.web.qo.MiniprogramSettingQo; import com.gic.haoban.manage.web.qo.MiniprogramSettingQo;
...@@ -104,6 +105,8 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -104,6 +105,8 @@ public class WxEnterpriseController extends WebBaseController {
private HaobanUserApiService haobanUserApiService ; private HaobanUserApiService haobanUserApiService ;
@Autowired @Autowired
private HaobanQywxFeeApiService haobanQywxFeeApiService; private HaobanQywxFeeApiService haobanQywxFeeApiService;
@Autowired
private SecretSettingApiService secretSettingApiService ;
//授权企业列表 //授权企业列表
@RequestMapping("wxa-enterprise-list") @RequestMapping("wxa-enterprise-list")
...@@ -375,17 +378,32 @@ public class WxEnterpriseController extends WebBaseController { ...@@ -375,17 +378,32 @@ public class WxEnterpriseController extends WebBaseController {
if (StringUtils.isAnyBlank(memberSecret,enterpriseId)) { if (StringUtils.isAnyBlank(memberSecret,enterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
String wxEnterpriseId = "";
WebLoginDTO login = AuthWebRequestUtil.getLoginUser(); WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
wxEnterpriseId = login.getWxEnterpriseId(); String wxEnterpriseId = login.getWxEnterpriseId();
WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId); WxEnterpriseDTO wxEnterprise = wxEnterpriseApiService.getOne(wxEnterpriseId);
if (wxEnterprise == null) { if (wxEnterprise == null) {
return resultResponse(HaoBanErrCode.ERR_10012); return resultResponse(HaoBanErrCode.ERR_10012);
} }
memberSecret = memberSecret.trim(); memberSecret = memberSecret.trim();
SecretSettingDTO secretSetting = wxEnterpriseApiService.getSecretSettingById(secretId); SecretSettingDTO secretSetting = null ;
if (StringUtils.isBlank(secretId)) { if (StringUtils.isNotBlank(secretId)) {
secretSetting = new SecretSettingDTO(); secretSetting = wxEnterpriseApiService.getSecretSettingById(secretId);
}
if(null == secretSetting) {
secretSetting = new SecretSettingDTO();
}
List<SecretSettingDTO> enList = this.secretSettingApiService.exsitGicEidMemberApp(wxEnterpriseId) ;
if(CollectionUtils.isNotEmpty(enList)) {
Map<String,SecretSettingDTO> map = enList.stream().collect(Collectors.toMap(SecretSettingDTO::getEnterpriseId, dto->dto,(k1,k2)->k1));
if(StringUtils.isEmpty(secretId)) {
if(null != map.get(enterpriseId)) {
return this.fail("此商户小程序已存在") ;
}
}else {
if(null != map.get(enterpriseId) && !secretId.equals(map.get(enterpriseId).getSecretId())) {
return this.fail("此商户小程序已存在") ;
}
}
} }
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ; WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ;
String token = this.qywxCorpApiService.getToken(qwDTO.getMemberCorpid(), memberSecret); String token = this.qywxCorpApiService.getToken(qwDTO.getMemberCorpid(), memberSecret);
......
...@@ -120,4 +120,6 @@ ...@@ -120,4 +120,6 @@
<dubbo:reference id="logSearchApiService" interface="com.gic.log.record.service.LogSearchApiService" timeout="10000" retries="0" check="false" /> <dubbo:reference id="logSearchApiService" interface="com.gic.log.record.service.LogSearchApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService" id="haobanQywxFeeApiService"/> <dubbo:reference interface="com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService" id="haobanQywxFeeApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.ValidationCodeApiService" id="validationCodeApiService"/> <dubbo:reference interface="com.gic.haoban.manage.api.service.ValidationCodeApiService" id="validationCodeApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.out.SecretSettingApiService" id="secretSettingApiService"/>
</beans> </beans>
...@@ -95,7 +95,7 @@ public class StoreController extends WebBaseController { ...@@ -95,7 +95,7 @@ public class StoreController extends WebBaseController {
*/ */
@IgnoreLogin @IgnoreLogin
@RequestMapping("/store-list") @RequestMapping("/store-list")
public HaobanResponse storeList(String staffId, String wxEnterpriseId, String version) { public HaobanResponse storeList(String staffId, String wxEnterpriseId, String hbversion , String gicEnterpriseId) {
if (StringUtils.isAnyBlank(staffId, wxEnterpriseId)) { if (StringUtils.isAnyBlank(staffId, wxEnterpriseId)) {
return resultResponse(HaoBanErrCode.ERR_2); return resultResponse(HaoBanErrCode.ERR_2);
} }
...@@ -121,6 +121,10 @@ public class StoreController extends WebBaseController { ...@@ -121,6 +121,10 @@ public class StoreController extends WebBaseController {
continue; continue;
} }
String enterprsieId = store.getEnterpriseId() ; String enterprsieId = store.getEnterpriseId() ;
if(StringUtils.isNotBlank(gicEnterpriseId) && !gicEnterpriseId.equals(enterprsieId)) {
logger.info("非当前商户,直接跳过={},{}",gicEnterpriseId,enterprsieId);
continue ;
}
if(null != map.get(enterprsieId)) { if(null != map.get(enterprsieId)) {
if(Boolean.FALSE.equals(map.get(enterprsieId))) { if(Boolean.FALSE.equals(map.get(enterprsieId))) {
logger.info("该企业过期,{}", enterprsieId); logger.info("该企业过期,{}", enterprsieId);
......
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