Commit 9363846d by 墨竹

feat:添加好友增加日志

parent 9347d353
package com.gic.haoban.manage.api.service.hm;
import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.manage.api.dto.hm.HmQrcodeDTO;
import com.gic.haoban.manage.api.dto.hm.HmQrcodeListDTO;
......@@ -43,7 +44,7 @@ public interface HmQrcodeApiService {
* @author mozhu
* @date 2022-07-05 10:59:01
*/
PageResult2<HmQrcodeListDTO> queryListByPage(HmQrcodeListQDTO hmQrcodeListQDTO);
Page<HmQrcodeListDTO> queryListByPage(HmQrcodeListQDTO hmQrcodeListQDTO);
/**
* 查询详情
......
......@@ -6,6 +6,7 @@ import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
......@@ -13,6 +14,7 @@ import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberService;
......@@ -47,6 +49,8 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private StaffMapper staffMapper;
@Autowired
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired
private WxUserAddLogService wxUserAddLogService;
@Override
public void insert(TabHaobanExternalClerkRelated related) {
......@@ -61,8 +65,6 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
related.setUpdateTime(new Date());
mapper.insertSelective(related);
}
}
@Override
......@@ -75,12 +77,14 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
logger.info("无解除的好友关系:externalUserid:{},wxUserId:{}", externalUserid, wxUserId);
return;
}
List<TabHaobanStaff> tabHaobanStaffs = staffMapper.listByWxUserId(wxUserId, tabHaobanExternalClerkRelatedList.get(0).getWxEnterpriseId());
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedList.get(0);
String wxEnterpriseId = related.getWxEnterpriseId();
List<TabHaobanStaff> tabHaobanStaffs = staffMapper.listByWxUserId(wxUserId, wxEnterpriseId);
if (CollectionUtils.isEmpty(tabHaobanStaffs)) {
logger.error("找不到员工:wxUserId:{}", wxUserId);
return;
}
String wxEnterpriseId = tabHaobanStaffs.get(0).getWxEnterpriseId();
String staffId = tabHaobanStaffs.get(0).getStaffId();
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId);
if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) {
......@@ -108,6 +112,18 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 1, new Date());
}
}
//添加日志
WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO();
wxUserAddLogQDTO.setWxEnterpriseId(wxEnterpriseId);
wxUserAddLogQDTO.setEnterpriseId(enterpriseId);
wxUserAddLogQDTO.setMemberId(related.getMemberId());
wxUserAddLogQDTO.setUnionid(related.getUnionid());
wxUserAddLogQDTO.setDelFlag(true);
wxUserAddLogQDTO.setExternalUserid(related.getExternalUserId());
wxUserAddLogQDTO.setWxUserId(related.getWxUserId());
wxUserAddLogQDTO.setStaffId(related.getStaffId());
wxUserAddLogService.save(wxUserAddLogQDTO);
}
@Override
......
......@@ -14,6 +14,7 @@ import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.base.api.common.errCode.HaoBanErrCodeCommon;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO;
import com.gic.haoban.manage.api.enums.AlertTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
......@@ -23,6 +24,7 @@ import com.gic.haoban.manage.service.dao.mapper.*;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.service.MemberApiService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
......@@ -70,6 +72,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
private WxEnterpriseApiService wxEnterpriseApiService;
@Autowired
private MemberApiService memberApiService;
@Autowired
private WxUserAddLogService wxUserAddLogService;
/**
* 查询导购好友关联
......@@ -164,6 +168,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
return resp;
}
updateExternalClerkRelated(enterpriseId, memberId, unionid, externalClerkRelated);
resp.setResult(EntityUtil.changeEntityNew(ExternalClerkRelatedDTO.class, externalClerkRelated));
return resp;
}
......@@ -203,12 +208,27 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
memberUnionidRelated.setUpdateTime(new Date());
memberUnionidRelatedMapper.updateByPrimaryKeySelective(memberUnionidRelated);
}
String wxEnterpriseId = externalClerkRelated.getWxEnterpriseId();
//同步标签
pushTagSync(memberId, externalClerkRelated.getWxEnterpriseId(), enterpriseId);
pushTagSync(memberId, wxEnterpriseId, enterpriseId);
//回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
if (StringUtils.isNotBlank(memberId)) {
//添加日志
WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO();
wxUserAddLogQDTO.setWxEnterpriseId(wxEnterpriseId);
wxUserAddLogQDTO.setEnterpriseId(enterpriseId);
wxUserAddLogQDTO.setMemberId(memberId);
wxUserAddLogQDTO.setUnionid(unionid);
wxUserAddLogQDTO.setDelFlag(false);
wxUserAddLogQDTO.setExternalUserid(externalClerkRelated.getExternalUserId());
wxUserAddLogQDTO.setWxUserId(externalClerkRelated.getWxUserId());
wxUserAddLogQDTO.setStaffId(externalClerkRelated.getStaffId());
wxUserAddLogService.save(wxUserAddLogQDTO);
}
}
/**
......
......@@ -32,6 +32,7 @@ import com.gic.haoban.base.api.common.errCode.HaoBanErrCodeCommon;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.constants.Manage3Constants;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.enums.WelcomeMediaTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
......@@ -48,9 +49,11 @@ import com.gic.haoban.manage.service.exception.WxApiLimitException;
import com.gic.haoban.manage.service.pojo.DealQywxExternalUserPojo;
import com.gic.haoban.manage.service.pojo.ExternalUserPojo;
import com.gic.haoban.manage.service.pojo.QywxTagSyncInfoPojo;
import com.gic.haoban.manage.service.pojo.bo.hm.KeyDataLinkBO;
import com.gic.haoban.manage.service.pojo.bo.welcome.WelcomeDetailBO;
import com.gic.haoban.manage.service.pojo.bo.welcome.WelcomeMediaBO;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.haoban.manage.service.util.CommonUtil;
import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.member.api.dto.MemberDTO;
......@@ -148,6 +151,10 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
private StaffDepartmentRelatedService staffDepartmentRelatedService;
@Autowired
private HmQrcodeApiService hmQrcodeApiService;
@Autowired
private WxUserAddLogService wxUserAddLogService;
@Autowired
private KeyDataService keyDataService;
@Override
public void dealQywxExternalUser(String params) {
......@@ -298,6 +305,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String createTime = dto.getAddCreateTime();
String externalUserId = dto.getExternalUserid();
String unionid = dto.getUnionid();
String state = dto.getState();
log.info("新增外部联系人,wxEnterpriseId:{}", wxEnterpriseId);
if (StringUtils.isAnyBlank(wxUserId, wxEnterpriseId, name, createTime, externalUserId)) {
log.error("新增外部联系人,缺少必须字段:wxUserId:{},wxEnterpriseId:{},name:{},createTime:{},externalUserId:{}", wxUserId, wxEnterpriseId, name, createTime, externalUserId);
......@@ -328,6 +336,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
String enterpriseId = staffClerkRelationDTO.getEnterpriseId();
String clerkId = staffClerkRelationDTO.getClerkId();
TabHaobanWxEnterpriseRelated wxEnterpriseRelated = wxEnterpriseRelatedService.getByEnterpriseId(wxEnterpriseId, enterpriseId);
if (wxEnterpriseRelated == null) {
log.info("没有存在企业关联:{},{}", staffClerkRelationDTO.getWxEnterpriseId(), enterpriseId);
......@@ -339,13 +348,45 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("未查询到企业:wxEnterpriseId:{}", wxEnterpriseId);
return;
}
//活码处理 "DT" "HM"
Long refId = 0L;
WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO();
if (StringUtils.isNotBlank(state) && StringUtils.isNotBlank(clerkId)) {
String id = state.substring(2);
if (state.contains("HM")) {
//活码
refId = Convert.toLong(id);
wxUserAddLogQDTO.setHmId(refId);
hmQrcodeApiService.updateAddNumById(Convert.toLong(id),clerkId);
} else if (state.contains("DT")) {
KeyDataLinkBO dataForHmLink = keyDataService.getDataForHmLink(id);
refId = dataForHmLink.getLinkId();
unionid = dataForHmLink.getUnionid();
wxUserAddLogQDTO.setLinkId(refId);
}
}
String memberId = "";
if (StringUtils.isNotBlank(unionid)) {
log.info("同一开平逻辑:wxEnterpriseId:{}", wxEnterpriseId);
addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated);
log.info("有unionid处理:wxEnterpriseId:{},unionid:{}", wxEnterpriseId,unionid);
memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated);
} else {
log.info("发送欢迎语逻辑:wxEnterpriseId:{}", wxEnterpriseId);
addFriendByWelcome(dto, staffClerkRelationDTO);
}
if (StringUtils.isNotBlank(memberId)) {
wxUserAddLogQDTO.setWxEnterpriseId(wxEnterpriseId);
wxUserAddLogQDTO.setEnterpriseId(enterpriseId);
wxUserAddLogQDTO.setMemberId(memberId);
wxUserAddLogQDTO.setUnionid(unionid);
wxUserAddLogQDTO.setDelFlag(false);
wxUserAddLogQDTO.setExternalUserid(externalUserId);
wxUserAddLogQDTO.setWxUserId(wxUserId);
wxUserAddLogQDTO.setStaffId(staffId);
wxUserAddLogService.save(wxUserAddLogQDTO);
}
}
/**
......@@ -356,7 +397,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
* @param staffClerkRelationDTO
* @param wxEnterpriseRelated
*/
private void addExternalClerkRelated(MemberUnionidRelatedDTO dto, String staffId, StaffClerkRelationDTO staffClerkRelationDTO, TabHaobanWxEnterpriseRelated wxEnterpriseRelated) {
private String addExternalClerkRelated(MemberUnionidRelatedDTO dto, String staffId, StaffClerkRelationDTO staffClerkRelationDTO, TabHaobanWxEnterpriseRelated wxEnterpriseRelated) {
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId();
String name = dto.getExternalName();
......@@ -366,14 +407,14 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (wxEnterpriseRelated.getMemberOpenCardFlag() == 1) {
log.info("不同开平,走欢迎语逻辑,wxEnterpriseId:{}", wxEnterpriseId);
addFriendByWelcome(dto, staffClerkRelationDTO);
return;
return "";
}
log.info("同一开平,创建关联关系...");
String unionId = dto.getUnionid();
if (StringUtils.isBlank(unionId)) {
log.info("unionid不存在,走发送欢迎语逻辑:wxEnterpriseId:{}", wxEnterpriseId);
addFriendByWelcome(dto, staffClerkRelationDTO);
return;
return "";
}
//新增导购和外部联系人关系
String clerkId = staffClerkRelationDTO.getClerkId();
......@@ -383,7 +424,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("【新增外部联系人】clerkCode={},unionid:{}", clerkCode, unionId);
if (clerk == null) {
log.info("【新增外部联系人】导购为空:{},{}", clerkCode, unionId);
return;
return "";
}
String qrcodeParam = clerk.getQrcodeParam();
......@@ -394,13 +435,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
if (StringUtils.isBlank(qrcodeParam)) {
log.info("不能生产导购二维码:{}", JSONObject.toJSONString(clerk));
return;
return "";
}
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;
return "";
}
String memberId = member.getMemberId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, dto.getWxUserId());
......@@ -444,7 +485,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
return memberId;
}
......@@ -495,6 +536,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setStatusFlag(4);
externalClerkRelatedService.update(exsitDTO);
}
}
/**
......@@ -591,17 +633,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} else {
qywxUserApiService.sendWelcomeMsgByExternal(dto.getCorpid(), config.getWxSuiteid(), qywxWelcomeMsgDTO);
}
//发送完成欢迎语,数量+1
//"DT" "HM"
String refId = "";
if (StringUtils.isNotBlank(state) && StringUtils.isNotBlank(clerkId)) {
refId = state.substring(2);
if (state.contains("HM")) {
//活码
hmQrcodeApiService.updateAddNumById(Convert.toLong(refId),clerkId);
}
}
}
private void attachmentAddImage(List<QywxExternalMessageBaseDTO> attachments, WelcomeMediaBO media, WxEnterpriseDTO wxEnterpriseDTO) {
......
package com.gic.haoban.manage.service.service.out.impl.hm;
import com.gic.api.base.commons.Page;
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.UniqueIdUtils;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.common.utils.PageUtil;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
......@@ -405,8 +405,9 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
}
@Override
public PageResult2<HmQrcodeListDTO> queryListByPage(HmQrcodeListQDTO hmQrcodeListQDTO) {
return PageUtil.getPageInfo(hmQrcodeService.queryByPage(hmQrcodeListQDTO));
public Page<HmQrcodeListDTO> queryListByPage(HmQrcodeListQDTO hmQrcodeListQDTO) {
Page<HmQrcodeBO> hmQrcodeBOPage = hmQrcodeService.queryByPage(hmQrcodeListQDTO);
return PageUtil.changePageToCurrentPage(hmQrcodeBOPage,HmQrcodeListDTO.class);
}
@Override
......
......@@ -2,8 +2,8 @@ package com.gic.haoban.manage.web.controller.hm;
import cn.hutool.core.convert.Convert;
import com.gic.api.base.commons.Page;
import com.gic.commons.webapi.reponse.RestResponse;
import com.gic.haoban.base.api.common.PageResult2;
import com.gic.haoban.base.api.common.pojo.dto.WebLoginDTO;
import com.gic.haoban.common.utils.AuthWebRequestUtil;
import com.gic.haoban.manage.api.dto.hm.HmQrcodeDTO;
......@@ -78,7 +78,7 @@ public class HmQrcodeController {
* @return
*/
@RequestMapping(value = "list", method = RequestMethod.POST)
public RestResponse<PageResult2<HmQrcodeListDTO>> update(@RequestBody HmQrcodeListQDTO hmQrcodeListQDTO) {
public RestResponse<Page<HmQrcodeListDTO>> update(@RequestBody HmQrcodeListQDTO hmQrcodeListQDTO) {
WebLoginDTO loginUser = AuthWebRequestUtil.getLoginUser();
List<String> storeList = staffApiService.getHaoBanStoreIdsRolesByClerkId(loginUser.getClerkId(), loginUser.getWxEnterpriseId());
if (CollectionUtils.isEmpty(storeList)) {
......
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