Commit 95e7423d by 墨竹

feat:欢迎语修改

parent b9a419bd
......@@ -43,6 +43,7 @@ import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
......@@ -125,6 +126,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
private CustomerApiService customerApiService;
@Autowired
private WxApplicationMapper wxApplicationMapper;
@Autowired
private MemberApiService memberApiService;
@Override
public void dealQywxExternalUser(String params) {
......@@ -270,7 +273,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
*/
private void insertExternalClerkRelatedNew(MemberUnionidRelatedDTO dto) {
log.info("新增外部联系人,创建关联关系:{}", JSON.toJSONString(dto));
String corpid = dto.getCorpid();
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName();
......@@ -295,23 +297,27 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("【新增外部联系人】主门店为空:{}", staffId);
return;
}
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staffId, mainStoreRelated.getStoreId());
if (staffClerkRelationDTO == null) {
log.info("【新增外部联系人】导购和clerk关联为空");
return;
}
TabHaobanWxEnterpriseRelated wxEnterpriseRelated = wxEnterpriseRelatedService.getByEnterpriseId(wxEnterpriseId, staffClerkRelationDTO.getEnterpriseId());
String enterpriseId = staffClerkRelationDTO.getEnterpriseId();
TabHaobanWxEnterpriseRelated wxEnterpriseRelated = wxEnterpriseRelatedService.getByEnterpriseId(wxEnterpriseId, enterpriseId);
if (wxEnterpriseRelated == null) {
log.info("没有存在企业关联:{},{}", staffClerkRelationDTO.getWxEnterpriseId(), staffClerkRelationDTO.getEnterpriseId());
log.info("没有存在企业关联:{},{}", staffClerkRelationDTO.getWxEnterpriseId(), enterpriseId);
return;
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (wxEnterpriseDTO == null) {
log.info("未查询到企业:wxEnterpriseId:{}", wxEnterpriseId);
return;
}
//需从表中重新查询一次,不能使用回调过来的数据
corpid = wxEnterpriseDTO.getCorpid();
String corpid = wxEnterpriseDTO.getCorpid();
if (corpid.length() < 20) {
Integer agreeExternalUseridFlag = wxEnterpriseDTO.getAgreeExternalUseridFlag();
log.info("加好友判断新旧的逻辑,corpid:{},agreeExternalUseridFlag:{}", corpid, agreeExternalUseridFlag);
......@@ -358,7 +364,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
//新增导购和外部联系人关系
String clerkCode = staffClerkRelationDTO.getClerkCode();
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
String enterpriseId = staffClerkRelationDTO.getEnterpriseId();
ClerkDTO clerk = clerkService.getClerkByClerkCode(enterpriseId, clerkCode);
log.info("【新增外部联系人】clerkCode={},unionid:{}", clerkCode, unionId);
if (clerk == null) {
log.info("【新增外部联系人】导购为空:{},{}", clerkCode, unionId);
......@@ -368,30 +375,29 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String qrcodeParam = clerk.getQrcodeParam();
if (StringUtils.isBlank(qrcodeParam)) {
powerService.saveClerkQrCode(clerk.getClerkId());
clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
clerk = clerkService.getClerkByClerkCode(enterpriseId, clerkCode);
qrcodeParam = clerk.getQrcodeParam();
}
if (StringUtils.isBlank(qrcodeParam)) {
log.info("不能生产导购二维码:{}", JSONObject.toJSONString(clerk));
return;
}
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}", staffClerkRelationDTO.getEnterpriseId(), unionId, name, avatar, qrcodeParam);
MemberDTO member = memberOpenCardBusinessService.getMemberByQywxChannelParam(staffClerkRelationDTO.getEnterpriseId(), unionId, "", name, avatar, qrcodeParam);
log.info("【新增外部联系人会员】enterpriseId={},unionId={},name={},avatar={},QrcodeParam={}", enterpriseId, unionId, name, avatar, qrcodeParam);
MemberDTO member = memberOpenCardBusinessService.getMemberByQywxChannelParam(enterpriseId, unionId, "", name, avatar, qrcodeParam);
if (member == null) {
log.info("生产会员memnerid失败:{}", unionId);
return;
}
String clerkId = staffClerkRelationDTO.getClerkId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService
.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, dto.getWxUserId());
String relationKey = SecureUtil.md5(clerkId + externalUserid);
String memberId = member.getMemberId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, dto.getWxUserId());
String relationKey = SecureUtil.md5(staffId + externalUserid);
if (CollectionUtils.isEmpty(externalClerkRelateds)) {
log.info("新增TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated();
related.setAddCreateTime(createTime);
related.setClerkId(clerkId);
related.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
related.setEnterpriseId(enterpriseId);
related.setExternalName(name);
related.setExternalUserId(externalUserid);
related.setStaffId(staffId);
......@@ -402,26 +408,28 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId);
related.setWxUserId(wxUserId);
related.setMemberId(member.getMemberId());
related.setMemberId(memberId);
externalClerkRelatedService.insert(related);
} else {
log.info("更新TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated exsitDTO = externalClerkRelateds.get(0);
exsitDTO.setMemberId(member.getMemberId());
exsitDTO.setMemberId(memberId);
exsitDTO.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
exsitDTO.setExternalUserId(externalUserid);
exsitDTO.setUnionid(unionId);
exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId());
exsitDTO.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
exsitDTO.setEnterpriseId(enterpriseId);
exsitDTO.setClerkId(clerkId);
exsitDTO.setStatusFlag(1);
externalClerkRelatedService.update(exsitDTO);
}
sendWelcome(dto, staffClerkRelationDTO, false);
sendWelcome(dto, wxEnterpriseId,enterpriseId,staffId, false);
//同步好友标签
pushTagSync(member.getMemberId(), wxEnterpriseId, staffClerkRelationDTO.getEnterpriseId());
pushTagSync(memberId, wxEnterpriseId, enterpriseId);
//回调给会员
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
}
}
......@@ -436,18 +444,65 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return null;
}
/**
* 欢迎语新增好友
*
* @param dto
*/
private void addFriendByWelcome(MemberUnionidRelatedDTO dto, StaffClerkRelationDTO staffClerkRelationDTO) {
String staffId = staffClerkRelationDTO.getStaffId();
String relationKey = SecureUtil.md5(staffId + dto.getExternalUserid());
String wxEnterpriseId = staffClerkRelationDTO.getWxEnterpriseId();
String enterpriseId = staffClerkRelationDTO.getEnterpriseId();
//发送欢迎语
sendWelcome(dto, wxEnterpriseId, enterpriseId, staffId, true);
//保存好友关系
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, dto.getExternalUserid(), dto.getWxUserId());
if (CollectionUtils.isEmpty(externalClerkRelateds)) {
log.info("新增TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated();
related.setAddCreateTime(dto.getAddCreateTime());
related.setClerkId(staffClerkRelationDTO.getClerkId());
related.setEnterpriseId(enterpriseId);
related.setExternalName(dto.getExternalName());
related.setExternalUserId(dto.getExternalUserid());
related.setStaffId(staffId);
related.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
related.setStoreId(staffClerkRelationDTO.getStoreId());
related.setRelationKey(relationKey);
related.setStatusFlag(4);
related.setPushTimes(1);
related.setWxEnterpriseId(wxEnterpriseId);
related.setWxUserId(dto.getWxUserId());
related.setHeadUrl(dto.getAvatar());
externalClerkRelatedService.insert(related);
} else {
log.info("更新TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated exsitDTO = externalClerkRelateds.get(0);
exsitDTO.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
exsitDTO.setExternalUserId(dto.getExternalUserid());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId());
exsitDTO.setEnterpriseId(enterpriseId);
exsitDTO.setClerkId(staffClerkRelationDTO.getClerkId());
exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStatusFlag(4);
externalClerkRelatedService.update(exsitDTO);
}
}
/**
* 发送欢迎语
*
* @param dto
* @param staffClerkRelationDTO
* @param wxEnterpriseId
* @param enterpriseId
* @param staffId
* @param sendApp
*/
private void sendWelcome(MemberUnionidRelatedDTO dto, StaffClerkRelationDTO staffClerkRelationDTO, boolean sendApp) {
log.info("发送欢迎语:dto:{},staffClerkRelationDTO:{},sendApp:{}", JSONObject.toJSONString(dto), JSONObject.toJSONString(staffClerkRelationDTO), sendApp);
String relationKey = SecureUtil.md5(staffClerkRelationDTO.getClerkId() + dto.getExternalUserid());
String wxEnterpriseId = staffClerkRelationDTO.getWxEnterpriseId();
private void sendWelcome(MemberUnionidRelatedDTO dto, String wxEnterpriseId, String enterpriseId, String staffId, boolean sendApp) {
log.info("发送欢迎语:dto:{},wxEnterpriseId:{},staffId:{},sendApp:{}", JSONObject.toJSONString(dto), wxEnterpriseId, staffId, sendApp);
String relationKey = SecureUtil.md5(staffId + dto.getExternalUserid());
TabWelcome tabWelcome = welcomeMapper.selectByWxEnterpriseId(wxEnterpriseId);
if (null == tabWelcome || tabWelcome.getOpenFlag() == 0) {
log.info("欢迎语未配置:wxEnterpriseId:{}", wxEnterpriseId);
......@@ -466,9 +521,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//发送小程序
if (sendApp) {
log.info("发送小程序:{}", wxEnterpriseId);
TabMiniprogramSetting miniprogramSetting = miniprogramSettingService.getMiniprogramSetting(wxEnterpriseId, staffClerkRelationDTO.getEnterpriseId());
TabMiniprogramSetting miniprogramSetting = miniprogramSettingService.getMiniprogramSetting(wxEnterpriseId, enterpriseId);
if (null == miniprogramSetting) {
log.info("需要配置小程序配置:wxEnterpriseId:{},enterpriseId:{}", wxEnterpriseId, staffClerkRelationDTO.getEnterpriseId());
log.info("需要配置小程序配置:wxEnterpriseId:{},enterpriseId:{}", wxEnterpriseId, enterpriseId);
return;
}
QywxMiniprogramExternalBaseDTO messageBaseDTO = new QywxMiniprogramExternalBaseDTO();
......@@ -504,49 +559,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
}
/**
* 欢迎语新增好友
*
* @param dto
*/
private void addFriendByWelcome(MemberUnionidRelatedDTO dto, StaffClerkRelationDTO staffClerkRelationDTO) {
String relationKey = SecureUtil.md5(staffClerkRelationDTO.getClerkId() + dto.getExternalUserid());
//保存好友关系
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService
.listByExTernalUseridAndWxUserIdAllStatus(staffClerkRelationDTO.getWxEnterpriseId(), dto.getExternalUserid(), dto.getWxUserId());
if (CollectionUtils.isEmpty(externalClerkRelateds)) {
log.info("新增TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated related = new TabHaobanExternalClerkRelated();
related.setAddCreateTime(dto.getAddCreateTime());
related.setClerkId(staffClerkRelationDTO.getClerkId());
related.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
related.setExternalName(dto.getExternalName());
related.setExternalUserId(dto.getExternalUserid());
related.setStaffId(staffClerkRelationDTO.getStaffId());
related.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
related.setStoreId(staffClerkRelationDTO.getStoreId());
related.setRelationKey(relationKey);
related.setStatusFlag(4);
related.setPushTimes(1);
related.setWxEnterpriseId(staffClerkRelationDTO.getWxEnterpriseId());
related.setWxUserId(dto.getWxUserId());
related.setHeadUrl(dto.getAvatar());
externalClerkRelatedService.insert(related);
} else {
log.info("更新TabHaobanExternalClerkRelated");
TabHaobanExternalClerkRelated exsitDTO = externalClerkRelateds.get(0);
exsitDTO.setMemberUnionidRelatedId(dto.getMemberUnionidRelatedId());
exsitDTO.setExternalUserId(dto.getExternalUserid());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId());
exsitDTO.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
exsitDTO.setClerkId(staffClerkRelationDTO.getClerkId());
exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStatusFlag(4);
externalClerkRelatedService.update(exsitDTO);
}
sendWelcome(dto, staffClerkRelationDTO, true);
}
/**
* 组装数据
......@@ -696,7 +708,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
MemberUnionidRelatedDTO dto = new MemberUnionidRelatedDTO();
String externalUserId = getExternalUserId(wxEnterprise, userId, createTime, name);
if (StringUtils.isBlank(externalUserId)) {
log.error("请求外部联系人id失败,userId:{}",userId);
log.error("请求外部联系人id失败,userId:{}", userId);
return "";
}
dto.setExternalUserid(externalUserId);
......@@ -824,6 +836,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
/**
* 查询外部联系人id
*
* @param wxEnterprise
* @param userId
* @param createTime
......@@ -836,7 +849,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String externalUserId = "";
log.info("【新增外部联系人】wxRes={}", wxRes);
if (StringUtils.isBlank(wxRes)) {
log.error("请求企微 listExternalUserid 失败:userId:{}",userId);
log.error("请求企微 listExternalUserid 失败:userId:{}", userId);
return "";
}
JSONArray jsonArr = JSON.parseArray(wxRes);
......@@ -1099,7 +1112,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (tabHaobanStaff == null) {
JSONResponse jp = new JSONResponse();
jp.setErrorCode(-1);
jp.setErrorMessage("员工未查询到,群发创建失败,userId:"+userId);
jp.setErrorMessage("员工未查询到,群发创建失败,userId:" + userId);
return jp;
}
qywxExternalMessageDTO.setSenderUserId(tabHaobanStaff.getWxOpenUseId());
......@@ -1205,13 +1218,11 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (enterprise == null) {
return null;
}
JSONResponse jp = qywxSuiteApiService.resultExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), wxMessageId);
return jp;
return qywxSuiteApiService.resultExternalMessage(enterprise.getCorpid(), config.getWxSuiteid(), wxMessageId);
}
@Override
public List<MemberUnionidRelatedDTO> getByWxUserIdListAndWxEnterpriseId(List<String> userIdList,
String wxEnterpriseId) {
public List<MemberUnionidRelatedDTO> getByWxUserIdListAndWxEnterpriseId(List<String> userIdList, String wxEnterpriseId) {
return EntityUtil.changeEntityListByJSON(MemberUnionidRelatedDTO.class, memberUnionidRelatedMapper.getByWxUserIdListAndWxEnterpriseId(userIdList, wxEnterpriseId));
}
......@@ -1293,7 +1304,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String wxRes = qywxUserApiService.listExternalUserid(corpid, config.getWxSuiteid(), userId);
List<String> list = new ArrayList<>();
log.info("【查询第三方应用】res={}", wxRes);
if (wxRes != null && wxRes.equals("1")) {
if (wxRes != null && "1".equals(wxRes)) {
log.info("代表需要重试");
return null;
}
......@@ -1326,7 +1337,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (StringUtils.isBlank(unionIdJson)) {
log.info("好友不存在");
return null;
} else if (unionIdJson.equals("1")) {
} else if ("1".equals(unionIdJson)) {
log.info("接口调用被限制");
throw new WxApiLimitException("getCorpSelfExternalUseridInfo接口调用被限制");
}
......@@ -1345,7 +1356,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (StringUtils.isBlank(uJ)) {
log.info("好友不存在");
return null;
} else if (uJ.equals("1")) {
} else if ("1".equals(uJ)) {
log.info("限制次数");
throw new WxApiLimitException("getExternalUseridInfo接口次数限制");
}
......@@ -1500,7 +1511,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
try {
clientInstance.sendMessage("qywxTagSyncDeal", JSONObject.toJSONString(pojo));
} catch (Exception e) {
e.printStackTrace();
log.info("异常:{}", e);
}
}
......@@ -1530,12 +1540,10 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String clerkId = dto.getClerkId();
String selfExternalUserId = dto.getSelfExternalUserId();
if (StringUtils.isAnyBlank(wxUserId, selfExternalUserId, wxEnterpriseId, name, createTime, externalUserId, storeId, enterpriseId, staffId, clerkId)) {
log.info("【新增外部联系人】wxUserId={},selfExternalUserId={},wxEnterpriseId={},name={},createTime={},unionId ={},externalUserId ={},memberId ={},storeId ={},enterpriseId ={},staffId={},clerkId={}"
+ "", wxUserId, selfExternalUserId, wxEnterpriseId, name, createTime, externalUserId, storeId, enterpriseId, staffId, clerkId);
log.error("参数不对:{}",JSON.toJSONString(dto));
return "参数不对";
}
String relationKey = SecureUtil.md5(dto.getClerkId() + dto.getExternalUserId());
String relationKey = SecureUtil.md5(staffId + externalUserId);
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByWxUserIdAndSelfExternalUserId(wxUserId, wxEnterpriseId, dto.getSelfExternalUserId());
String uuid = "";
if (exsitDTO == null) {
......@@ -1615,7 +1623,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
memberUnionRelatedService.delMemberUnionidRelatedBatch(wxEnterpriseId, wxUserId, new ArrayList<>(delExternalUserIds));
//删除导购和外部联系人关系
externalClerkRelatedService.delByUserIdAndExternalUserIdBatch(wxEnterpriseId, wxUserId, new ArrayList<>(delExternalUserIds));
}
@Override
......
......@@ -143,4 +143,5 @@
<dubbo:reference interface="com.gic.clerk.api.service.PowerService" id="powerService"/>
<dubbo:reference interface="com.gic.enterprise.api.service.AuthorizeService" id="authorizeService"/>
<dubbo:reference id="quartzService" interface="com.gic.quartz.api.service.QuartzService" timeout="10000"/>
<dubbo:reference id="memberApiService" interface="com.gic.member.api.service.MemberApiService" timeout="10000"/>
</beans>
\ No newline at end of file
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