Commit 946ad375 by huangZW

外部联系人信息

parent 073de3ae
......@@ -105,6 +105,12 @@
<dependency>
<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>
<version>3.0-SNAPSHOT</version>
<scope>compile</scope>
......
......@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
......@@ -23,6 +24,7 @@ import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.MD5Utils;
import com.gic.commons.util.Md5Util;
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.MemberStoreDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
......@@ -48,6 +50,13 @@ import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.member.api.service.MemberService;
import com.gic.redis.data.anno.RedisLock;
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
public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedApiService{
......@@ -84,34 +93,74 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired
private StaffDepartmentRelatedService staffDepartmentRelatedService;
@Autowired
private ESDataDynamicOperationApiService eSDataDynamicOperationApiService;
@Override
public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String wxUserId) {
List<MemberUnionidRelated> list = memberUnionidRelatedMapper.listByExTernalUseridAndWxUserId(externalUserid, wxUserId);
List<MemberStoreDTO> result = new ArrayList<>();
if(CollectionUtil.isEmpty(list)){
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){
String memberId = tab.getMemberId();
if(StringUtils.isEmpty(memberId)){
continue ;
}
memberService.getMember(memberId);
//查该staff的门店id
List<TabHaobanStaffDepartmentRelated> relatedIds = staffDepartmentRelatedService.listByWxUserId(wxUserId);
if(CollectionUtil.isEmpty(relatedIds)){
break;
String gicEnterpriseId = "";
JSONObject searchJson = new JSONObject();
searchJson = NewNodeAddUtil.addNewNodeForAnd(MemberDataEnum.member_id.getCode(), OperateEnum.OPERATE_EQ.getValue(), memberId,searchJson);
DynamicSearchDTO dynamicSearchDTO = new DynamicSearchDTO();
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());
if(CollectionUtil.isEmpty(departmentIds)){
break;
JSONObject res = responseQuery.getRes();
if(res == null){
return null;
}
List<DepartmentDTO> stores = departmentApiService.listByDepartmentIds(departmentIds, 1);
if(CollectionUtil.isEmpty(stores)){
break;
String storeId = res.get("storeId") == null?"":res.get("storeId").toString();
if(StringUtils.isEmpty(storeId)){
return null;
}
List<String> storeIds = stores.stream().map(s->s.getRelatedId()).collect(Collectors.toList());
return null;
String[] memberStoreIds =storeId.split(",");
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;
}
......
......@@ -50,6 +50,7 @@
<dubbo:reference interface="com.gic.enterprise.api.service.StoreService" id="storeService"/>
<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>
\ No newline at end of file
package com.gic.haoban.manage.web.controller;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.haoban.base.api.common.ServiceResponse;
......@@ -9,6 +10,7 @@ import com.gic.haoban.common.utils.HaobanResponse;
import com.gic.haoban.contacts.manage.api.service.StoreService;
import com.gic.haoban.manage.api.dto.*;
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.WxEnterpriseApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
......@@ -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.service.qywx.QywxCorpApiService;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
......@@ -55,6 +58,9 @@ public class InfoController extends WebBaseController{
@Autowired
private com.gic.enterprise.api.service.StoreService storeService;
@Autowired
private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
private static Logger logger= LoggerFactory.getLogger(InfoController.class);
@Autowired
......@@ -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")
public HaobanResponse getStaffInfo(String phoneNumber) {
if (StringUtils.isBlank(phoneNumber)) {
......
......@@ -34,6 +34,7 @@
<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.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"/>
......
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