Commit 946ad375 by huangZW

外部联系人信息

parent 073de3ae
...@@ -105,6 +105,12 @@ ...@@ -105,6 +105,12 @@
<dependency> <dependency>
<groupId>com.gic</groupId> <groupId>com.gic</groupId>
<artifactId>gic-search-engine-api</artifactId>
<version>${gic-search-engine-api}</version>
</dependency>
<dependency>
<groupId>com.gic</groupId>
<artifactId>gic-member-api</artifactId> <artifactId>gic-member-api</artifactId>
<version>3.0-SNAPSHOT</version> <version>3.0-SNAPSHOT</version>
<scope>compile</scope> <scope>compile</scope>
......
...@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -23,6 +24,7 @@ import com.gic.clerk.api.service.ClerkService; ...@@ -23,6 +24,7 @@ import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.MD5Utils; import com.gic.commons.util.MD5Utils;
import com.gic.commons.util.Md5Util; import com.gic.commons.util.Md5Util;
import com.gic.commons.util.StringUtil; import com.gic.commons.util.StringUtil;
import com.gic.haoban.contacts.manage.api.dto.SearchDataDTO;
import com.gic.haoban.manage.api.dto.DepartmentDTO; import com.gic.haoban.manage.api.dto.DepartmentDTO;
import com.gic.haoban.manage.api.dto.MemberStoreDTO; import com.gic.haoban.manage.api.dto.MemberStoreDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO; import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
...@@ -48,6 +50,13 @@ import com.gic.member.api.service.MemberOpenCardBusinessService; ...@@ -48,6 +50,13 @@ import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
import com.gic.redis.data.anno.RedisLock; import com.gic.redis.data.anno.RedisLock;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.search.engine.api.constant.MemberDataEnum;
import com.gic.search.engine.api.constant.OperateEnum;
import com.gic.search.engine.api.dto.ESResponseQueryBatch;
import com.gic.search.engine.api.dto.ESResponseQuerySingle;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.filter.NewNodeAddUtil;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
@Service @Service
public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedApiService{ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedApiService{
...@@ -84,34 +93,74 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -84,34 +93,74 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired @Autowired
private StaffDepartmentRelatedService staffDepartmentRelatedService; private StaffDepartmentRelatedService staffDepartmentRelatedService;
@Autowired
private ESDataDynamicOperationApiService eSDataDynamicOperationApiService;
@Override @Override
public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId) { public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId) {
List<MemberUnionidRelated> list = memberUnionidRelatedMapper.listByExTernalUseridAndWxUserId(externalUserid, wxUserId); List<MemberUnionidRelated> list = memberUnionidRelatedMapper.listByExTernalUseridAndWxUserId(externalUserid, wxUserId);
List<MemberStoreDTO> result = new ArrayList<>();
if(CollectionUtil.isEmpty(list)){ if(CollectionUtil.isEmpty(list)){
return null; return null;
} }
//TODO 待完善 //1、查该staff的门店id
List<TabHaobanStaffDepartmentRelated> relatedIds = staffDepartmentRelatedService.listByWxUserId(wxUserId);
if(CollectionUtil.isEmpty(relatedIds)){
return null;
}
List<String> departmentIds = relatedIds.stream().map(s->s.getDepartmentId()).collect(Collectors.toList());
if(CollectionUtil.isEmpty(departmentIds)){
return null;
}
List<DepartmentDTO> stores = departmentApiService.listByDepartmentIds(departmentIds, 1);
if(CollectionUtil.isEmpty(stores)){
return null;
}
List<String> storeIds = stores.stream().map(s->s.getRelatedId()).collect(Collectors.toList());
//2、获取member的storeId
for(MemberUnionidRelated tab : list){ for(MemberUnionidRelated tab : list){
String memberId = tab.getMemberId(); String memberId = tab.getMemberId();
if(StringUtils.isEmpty(memberId)){ if(StringUtils.isEmpty(memberId)){
continue ; continue ;
} }
memberService.getMember(memberId); String gicEnterpriseId = "";
//查该staff的门店id JSONObject searchJson = new JSONObject();
List<TabHaobanStaffDepartmentRelated> relatedIds = staffDepartmentRelatedService.listByWxUserId(wxUserId); searchJson = NewNodeAddUtil.addNewNodeForAnd(MemberDataEnum.member_id.getCode(), OperateEnum.OPERATE_EQ.getValue(), memberId,searchJson);
if(CollectionUtil.isEmpty(relatedIds)){ DynamicSearchDTO dynamicSearchDTO = new DynamicSearchDTO();
break; dynamicSearchDTO.setEnterpriseId(gicEnterpriseId);
dynamicSearchDTO.setColumnCategoryCode("member");
dynamicSearchDTO.setSearchJson(searchJson);
dynamicSearchDTO.setBegin(0);
dynamicSearchDTO.setRecordNumber(1);
ESResponseQuerySingle responseQuery = eSDataDynamicOperationApiService.queryDataSingle(dynamicSearchDTO);
if(null == responseQuery){
return null;
} }
List<String> departmentIds = relatedIds.stream().map(s->s.getDepartmentId()).collect(Collectors.toList()); JSONObject res = responseQuery.getRes();
if(CollectionUtil.isEmpty(departmentIds)){ if(res == null){
break; return null;
} }
List<DepartmentDTO> stores = departmentApiService.listByDepartmentIds(departmentIds, 1); String storeId = res.get("storeId") == null?"":res.get("storeId").toString();
if(CollectionUtil.isEmpty(stores)){ if(StringUtils.isEmpty(storeId)){
break; return null;
} }
List<String> storeIds = stores.stream().map(s->s.getRelatedId()).collect(Collectors.toList()); String[] memberStoreIds =storeId.split(",");
return null; List<String> memberStoreIdList = Arrays.asList(memberStoreIds);
//取交集
memberStoreIdList.retainAll(storeIds);
if(CollectionUtil.isEmpty(memberStoreIdList)){
continue;
}else{
for(String resultStoreId : memberStoreIdList){
MemberStoreDTO dto = new MemberStoreDTO();
dto.setMemberId(memberId);
dto.setStoreId(resultStoreId);
result.add(dto);
}
}
return result;
} }
return null; return null;
} }
......
...@@ -50,6 +50,7 @@ ...@@ -50,6 +50,7 @@
<dubbo:reference interface="com.gic.enterprise.api.service.StoreService" id="storeService"/> <dubbo:reference interface="com.gic.enterprise.api.service.StoreService" id="storeService"/>
<dubbo:reference interface="com.gic.member.api.service.MemberOpenCardBusinessService" id="memberOpenCardBusinessService"/> <dubbo:reference interface="com.gic.member.api.service.MemberOpenCardBusinessService" id="memberOpenCardBusinessService"/>
<dubbo:reference id="eSDataDynamicOperationApiService" interface="com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService" timeout="10000"/>
</beans> </beans>
\ No newline at end of file
package com.gic.haoban.manage.web.controller; package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.gic.enterprise.api.dto.StoreDTO; import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
...@@ -9,6 +10,7 @@ import com.gic.haoban.common.utils.HaobanResponse; ...@@ -9,6 +10,7 @@ import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.contacts.manage.api.service.StoreService; import com.gic.haoban.contacts.manage.api.service.StoreService;
import com.gic.haoban.manage.api.dto.*; import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.service.DepartmentApiService; import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService;
import com.gic.haoban.manage.api.service.StaffApiService; import com.gic.haoban.manage.api.service.StaffApiService;
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;
...@@ -21,6 +23,7 @@ import com.gic.haoban.manage.web.vo.StoreVO; ...@@ -21,6 +23,7 @@ import com.gic.haoban.manage.web.vo.StoreVO;
import com.gic.wechat.api.dto.qywx.UserDTO; import com.gic.wechat.api.dto.qywx.UserDTO;
import com.gic.wechat.api.service.qywx.QywxCorpApiService; import com.gic.wechat.api.service.qywx.QywxCorpApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
...@@ -55,6 +58,9 @@ public class InfoController extends WebBaseController{ ...@@ -55,6 +58,9 @@ public class InfoController extends WebBaseController{
@Autowired @Autowired
private com.gic.enterprise.api.service.StoreService storeService; private com.gic.enterprise.api.service.StoreService storeService;
@Autowired
private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
private static Logger logger= LoggerFactory.getLogger(InfoController.class); private static Logger logger= LoggerFactory.getLogger(InfoController.class);
@Autowired @Autowired
...@@ -165,6 +171,15 @@ public class InfoController extends WebBaseController{ ...@@ -165,6 +171,15 @@ public class InfoController extends WebBaseController{
} }
@RequestMapping("get-member-store")
public HaobanResponse getMemberStore(String externalUserid,String wxUserId) {
if (StringUtils.isAnyBlank(externalUserid,wxUserId)) {
return resultResponse(HaoBanErrCode.ERR_2);
}
List<MemberStoreDTO> result = memberUnionidRelatedApiService.listByExTernalUseridAndWxUserId(externalUserid, wxUserId);
return resultResponse(HaoBanErrCode.ERR_1,result);
}
@RequestMapping("get-staff-info") @RequestMapping("get-staff-info")
public HaobanResponse getStaffInfo(String phoneNumber) { public HaobanResponse getStaffInfo(String phoneNumber) {
if (StringUtils.isBlank(phoneNumber)) { if (StringUtils.isBlank(phoneNumber)) {
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
<dubbo:reference interface="com.gic.haoban.manage.api.service.AuditSettingApiService" id="auditSettingApiService"/> <dubbo:reference interface="com.gic.haoban.manage.api.service.AuditSettingApiService" id="auditSettingApiService"/>
<dubbo:reference interface="com.gic.dict.api.service.ManagerDictService" id="managerDictService"/> <dubbo:reference interface="com.gic.dict.api.service.ManagerDictService" id="managerDictService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.ApplicationSettingApiService" id="applicationSettingApiService"/> <dubbo:reference interface="com.gic.haoban.manage.api.service.ApplicationSettingApiService" id="applicationSettingApiService"/>
<dubbo:reference interface="com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService" id="memberUnionidRelatedApiService"/>
<dubbo:reference interface="com.gic.haoban.communicate.api.service.valid.ValidationCodeService" id="validationCodeService"/> <dubbo:reference interface="com.gic.haoban.communicate.api.service.valid.ValidationCodeService" id="validationCodeService"/>
......
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