Commit a856112d by 徐高华

Merge branch 'feature/xgh/成长值装修' into 'master'

Feature/xgh/成长值装修

See merge request !2128
parents d9a14efc bdd92808
......@@ -224,6 +224,11 @@
<artifactId>gic-content-api</artifactId>
<version>${gic-content-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-member-ext-api</artifactId>
<version>${gic-member-ext-api}</version>
</dependency>
</dependencies>
<build>
......
......@@ -13,4 +13,6 @@ public interface ExternalMemberService {
public void welcomeForMember();
}
public void updateMemberGrowth(String enterpriseId , String memberId , String ruleCode , String title , String remark) ;
}
......@@ -13,6 +13,8 @@ import java.util.stream.Collectors;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.service.*;
import com.gic.member.ext.api.enums.growth.GrowthRuleEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
......@@ -64,11 +66,6 @@ import com.gic.haoban.manage.service.entity.chat.TabGroupChatOwner;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatOwnerHistory;
import com.gic.haoban.manage.service.entity.chat.TabGroupChatUser;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatBO;
import com.gic.haoban.manage.service.service.DepartmentService;
import com.gic.haoban.manage.service.service.SecretSettingService;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.chat.GroupChatHmService;
import com.gic.haoban.manage.service.service.chat.GroupChatService;
import com.gic.member.api.dto.MemberDTO;
......@@ -129,6 +126,8 @@ public class GroupChatServiceImpl implements GroupChatService {
private StoreService storeService ;
@Autowired
private WxEnterpriseMapper wxEnterpriseMapper ;
@Autowired
private ExternalMemberService externalMemberService ;
private static GicMQClient mqClient = GICMQClientUtil.getClientInstance();
......@@ -819,7 +818,7 @@ public class GroupChatServiceImpl implements GroupChatService {
hbUser.setAdminFlag(2);
}
if (StringUtils.isEmpty(hbUser.getMemberId()) && qwUser.getType() == 2) {
this.matchGicMember(wxEnterpriseId, enterpriseId, qwUser.getUnionid(), userId, hbUser);
this.matchGicMember(wxEnterpriseId, enterpriseId, qwUser.getUnionid(), userId, hbUser,groupChatId);
}
if (hbUser.getUserType() == 3) {
totalMemberCount = 1;
......@@ -957,7 +956,7 @@ public class GroupChatServiceImpl implements GroupChatService {
// 匹配群成员-客户
private void matchGicMember(String wxEnterpriseId, String enterpriseId, String unionid, String externalUserId,
TabGroupChatUser user) {
TabGroupChatUser user , Long groupChatId) {
logger.info("入群匹配群客户,unionid={},exteruserid={}", unionid, externalUserId);
if (StringUtils.isBlank(enterpriseId)) {
return;
......@@ -976,6 +975,10 @@ public class GroupChatServiceImpl implements GroupChatService {
logger.info("匹配群客户,externalUserId");
user.setMemberId(related.getMemberId());
user.setUserType(3);
TabGroupChat group = this.groupChatMapper.selectById(groupChatId) ;
if(null != group) {
this.externalMemberService.updateMemberGrowth(related.getEnterpriseId(),related.getMemberId(), GrowthRuleEnum.ADD_HAOBAN_GROUP.getRuleCode(), "群信息",group.getName() + "(" + groupChatId + ")");
}
}
}
}
......
......@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.impl;
import java.util.Date;
import java.util.List;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.commons.util.ToolUtil;
import com.gic.member.ext.api.dto.growth.req.MemberGrowthChangeValueReq;
import com.gic.member.ext.api.dto.growth.resp.MemberGrowthOperateResp;
import com.gic.member.ext.api.service.MemberGrowthWriteApiService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
......@@ -35,6 +41,8 @@ public class ExternalMemberServiceImpl implements ExternalMemberService {
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper ;
@Autowired
private MemberService memberService ;
@Autowired
private MemberGrowthWriteApiService memberGrowthWriteApiService ;
@Override
public int insert(ExternalMemberLogDTO log) {
......@@ -90,4 +98,21 @@ public class ExternalMemberServiceImpl implements ExternalMemberService {
}
}
public void updateMemberGrowth(String enterpriseId , String memberId , String ruleCode , String title , String remark) {
try {
MemberGrowthChangeValueReq req = new MemberGrowthChangeValueReq();
req.setEnterpriseId(enterpriseId);
req.setMemberId(memberId);
req.setRuleCode(ruleCode);
req.setChannelCode(com.gic.enterprise.api.enums.PlatformChannelEnum.C_WORK_WECHAT.getChannelCode());
req.setOuterChangeId(ToolUtil.randomUUID());
req = req.desc(title, remark);
ServiceResponse<MemberGrowthOperateResp> resp = this.memberGrowthWriteApiService.updateMemberGrowthChangeValue(req) ;
logger.info("调用成长值={},{}", JSONObject.toJSONString(req), JSONObject.toJSONString(resp));
}catch (Exception e) {
logger.info("异常",e);
}
}
}
......@@ -21,6 +21,7 @@ import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.service.impl.PreDealServiceImpl;
import com.gic.haoban.manage.service.task.BaseSyncOperation;
import com.gic.haoban.manage.service.util.CustomSwitcher;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.service.qywx.QywxDepartmentApiService;
......@@ -544,7 +545,13 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
unlockTask(wxEnterpriseId);
return "没有配置secret";
}
List<com.gic.wechat.api.dto.qywx.DepartmentDTO> list = qywxDepartmentApiService.listSelfDepartment(qwDTO.getDkCorpid(), secretSetting.getSecretVal(), 1,qwDTO.getUrlHost());
Map<String,Integer> map = CustomSwitcher.haoban_department_id ;
int id = 1 ;
if(null != map && null != map.get(wxEnterpriseId)) {
id = map.get(wxEnterpriseId) ;
}
logger.info("id={}",id);
List<com.gic.wechat.api.dto.qywx.DepartmentDTO> list = qywxDepartmentApiService.listSelfDepartment(qwDTO.getDkCorpid(), secretSetting.getSecretVal(), id,qwDTO.getUrlHost());
if (CollectionUtils.isEmpty(list)) {
logger.info("企微部门数量0,退出同步");
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.exception_close.getVal());
......@@ -552,11 +559,17 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
return "没有数据同步或权限没设置全部";
}
logger.info("企微部门数={}",list.size());
final int _id = id ;
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.group_sync.getVal());
List<TabHaobanPreDealLog> dealLogList = list.stream().map(dto -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(dto.getId().toString());
dealLog.setpDataId(dto.getParentid().toString());
if(dto.getId().toString().equals(_id+"")) {
dealLog.setpDataId("0");
dto.setParentid(0);
}else {
dealLog.setpDataId(dto.getParentid().toString());
}
dealLog.setDataType(0);
dealLog.setStatusFlag(0);
dealLog.setTaskId(taskId);
......@@ -567,7 +580,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
// 保存部门数据
preDealService.insert(dealLogList);
HashSet<String> hashSet = new HashSet<>();
hashSet.add("1");
hashSet.add(""+id);
sendToMq(taskId, hashSet, SyncTaskStatusEnum.group_sync,"departmentSyncDealMq2");
return null;
}
......
......@@ -9,6 +9,7 @@ import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.util.EventUtils;
import com.gic.haoban.manage.service.util.HBQwMonitorUtils;
import com.gic.member.ext.api.enums.growth.GrowthRuleEnum;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
......@@ -748,13 +749,18 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (StringUtils.isNotBlank(mobile)) {
memberId = memberService.getMemberIdByPhoneNumber(mobile, enterpriseId);
}
boolean flag = false ;
if (null == memberId) {
memberId = this.getMeberId(enterpriseId,unionId, name, avatar, qrcodeParam, externalUserid, wxEnterpriseRelated.getWxEnterpriseType(), 2 , dto.getAddCreateTime()) ;
memberId = this.getMeberId(enterpriseId,unionId, name, avatar, qrcodeParam, externalUserid, wxEnterpriseRelated.getWxEnterpriseType(), 2 , dto.getAddCreateTime(),clerkId) ;
flag = true ;
}
if (memberId == null) {
log.info("新增外部联系人,创建member失败,unionid={},外部联系人id={},", unionId,externalUserid);
return "";
}
if(!flag) {
this.updateMemberGrowth(enterpriseId,memberId,clerkId);
}
String storeId = staffClerkRelationDTO.getStoreId();
this.saveExternalClerk(memberId, staffId, dto, staffClerkRelationDTO , 1);
// this.sendWelcome(dto, qwDTO, enterpriseId, staffId, clerkId,memberId);
......@@ -1961,7 +1967,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("导购码不存在:" + clerkId);
qrcodeParam = "clerk_clerk_"+clerk.getClerkId() ;
}
String memberId = this.getMeberId(enterpriseId, externalUserDTO.getUnionId(), externalUserDTO.getName(), externalUserDTO.getAvatar(), qrcodeParam, externalUserDTO.getExternalUserId(), wxEnterpriseRelated.getWxEnterpriseType(), 1 , externalUserDTO.getAddCreateTime()) ;
String memberId = this.getMeberId(enterpriseId, externalUserDTO.getUnionId(), externalUserDTO.getName(), externalUserDTO.getAvatar(), qrcodeParam, externalUserDTO.getExternalUserId(), wxEnterpriseRelated.getWxEnterpriseType(), 1 , externalUserDTO.getAddCreateTime(),clerk.getClerkId()) ;
if (memberId == null) {
return "会员不存在:unionid:" + externalUserDTO.getUnionId();
}
......@@ -1969,7 +1975,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return this.saveExternalUser(externalUserDTO);
}
private String getMeberId(String enterpriseId , String unionid , String name , String image ,String qrcodeParam , String externalUserId , int wxEnterpriseType , int sence , String qwTime) {
private String getMeberId(String enterpriseId , String unionid , String name , String image ,String qrcodeParam , String externalUserId , int wxEnterpriseType , int sence , String qwTime,String clerkId) {
QywxMemberQDTO qdto = new QywxMemberQDTO() ;
qdto.setEnterpriseId(enterpriseId);
qdto.setNick(name);
......@@ -1990,10 +1996,22 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if(resp.isSuccess()) {
MemberSimpleDetailDTO member = resp.getResult() ;
memberId = member.getMemberId() ;
this.updateMemberGrowth(enterpriseId,memberId,clerkId);
}
return memberId ;
}
private void updateMemberGrowth(String enterpriseId,String memberId , String clerkId) {
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
if(clerkDTO != null && null != clerkDTO.getStoreId()) {
String storeId = clerkDTO.getStoreId() ;
StoreDTO storeDTO = storeService.getStore(storeId);
if(null != storeDTO) {
this.externalMemberService.updateMemberGrowth(enterpriseId, memberId, GrowthRuleEnum.ADD_HAOBAN_FRIEND.getRuleCode(), "导购信息", clerkDTO.getClerkName() + "(" + clerkDTO.getClerkCode() + ") , " + storeDTO.getStoreName() + "(" + storeDTO.getStoreCode() + ")");
}
}
}
private void updateExternalStatus(String externalUserId , String staffId) {
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = externalClerkRelatedService.listByExternalUseridAndWxUserId(externalUserId, staffId);
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
......@@ -2004,4 +2022,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedList.get(0);
this.externalClerkRelatedMapper.updateExternalStatusById(related.getExternalClerkRelatedId(),1) ;
}
}
package com.gic.haoban.manage.service.task;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.service.util.CustomSwitcher;
import com.gic.wechat.api.service.qywx.QywxDepartmentApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
......@@ -175,7 +177,13 @@ public class QywxDeptSyncOperation implements BaseSyncOperation {
private String getStaff(String taskId, String dataId, String enterpriseId, String wxEnterpriseId,SecretSettingDTO secretSetting,WxEnterpriseQwDTO qwDTO) {
if("1".equals(dataId)) {
logger.info("getstaff={}",dataId);
String id = "1" ;
Map<String,Integer> map = CustomSwitcher.haoban_department_id ;
if(null != map && null != map.get(wxEnterpriseId)) {
id = map.get(wxEnterpriseId) +"" ;
}
if(id.equals(dataId)) {
List<UserDTO> list = null ;
if(qwDTO.getWxSecurityType()==4) {
list = this.qywxUserApiService.listDepartmentUser(qwDTO.getThirdCorpid(), config.getWxSuiteid(), dataId, 1) ;
......
......@@ -20,4 +20,7 @@ public class CustomSwitcher {
@Switcher
public static String haoban_one_bind_many ;
@Switcher
public static Map<String,Integer> haoban_department_id ;
}
\ No newline at end of file
......@@ -239,6 +239,6 @@
<dubbo:reference interface="com.gic.content.api.service.ContentMaterialApiService" id="contentMaterialApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.content.api.service.ContentSettingApiService" id="contentSettingApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.clerk.api.service.MenuApiService" id="menuApiService" timeout="10000" retries="0" check="false" />
<dubbo:reference interface="com.gic.member.ext.api.service.MemberGrowthWriteApiService" id="memberGrowthWriteApiService" timeout="10000" retries="0" check="false" />
</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