Commit 3993f6df by 徐高华

Merge branch 'master' into 'master-xgh-好办停用'

# Conflicts:
#   haoban-manage3-service/src/main/resources/dubbo-haoban-manage-service.xml
parents 01765116 cf09d549
......@@ -3,14 +3,12 @@ package com.gic.haoban.manage.api.dto;
import java.io.Serializable;
/**
*
* @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知
* @author xugh
* @date 2022年8月18日 上午10:31:14
*
* @author xugh
* @ClassName: QwFrientNoticeDTO
* @Description: 企微加好友通知
* @date 2022年8月18日 上午10:31:14
*/
public class QwFrientNoticeDTO implements Serializable{
public class QwFrientNoticeDTO implements Serializable {
private static final long serialVersionUID = 1L;
......@@ -48,7 +46,8 @@ public class QwFrientNoticeDTO implements Serializable{
*/
private String state;
private String staffId ;
private String staffId;
private String changeType;
public String getStaffId() {
return staffId;
......@@ -185,4 +184,12 @@ public class QwFrientNoticeDTO implements Serializable{
public void setState(String state) {
this.state = state;
}
public String getChangeType() {
return changeType;
}
public void setChangeType(String changeType) {
this.changeType = changeType;
}
}
package com.gic.haoban.manage.api.service;
import java.util.List;
import com.gic.api.base.commons.JSONResponse;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalUserDTO;
import com.gic.haoban.manage.api.dto.FriendStoreInfoDTO;
import com.gic.haoban.manage.api.dto.MemberStoreDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.api.dto.QwFrientNoticeDTO;
import com.gic.haoban.manage.api.dto.*;
import java.util.List;
public interface MemberUnionidRelatedApiService {
......@@ -257,4 +252,14 @@ public interface MemberUnionidRelatedApiService {
void updateSelfExternalUseridById(String selfExternalUserid, String memberUnionidRelatedId);
/**
* 事件订阅test
*
* @param param 参数
* @author mozhu
* @date 2022-09-09 14:18:34
*/
void addDelFriendEventTest(String param);
}
......@@ -41,20 +41,31 @@ public interface StaffClerkRelationApiService {
/**
* 审核绑定
*
* @param staffClerkRelation
* @param optStaffId
* @param channelCode
*/
void delAndInsert(StaffClerkRelationDTO staffClerkRelation, String optStaffId, int channelCode);
/**
* 解绑
*
* @param storeId
* @param clerkCode
* 解绑导购
* @param staffId
* @param clerkId
* @param channelCode
* @return
*/
void delByStoreIdAndCode(String storeId, String clerkCode);
boolean unbindByStaffAndClerkId(String staffId, String clerkId, int channelCode);
/**
* 解绑门店
* @param wxEnterpriseId
* @param storeId
* @param staffId
* @param channelCode
*/
void delBindByStoreId(String wxEnterpriseId,String storeId, String staffId,int channelCode);
StaffClerkRelationDTO getOneByClerkId(String clerkId);
......@@ -70,15 +81,6 @@ public interface StaffClerkRelationApiService {
List<StaffClerkRelationDTO> listByStoreId(String storeId);
/**
* 解绑
*
* @param staffId 操作人
* @param clerkId
* @return
*/
boolean unbindByStaffAndClerkId(String staffId, String clerkId);
/**
* 查询导购信息
*
* @param clerkId
......@@ -104,13 +106,6 @@ public interface StaffClerkRelationApiService {
List<StaffClerkRelationDTO> listByEnterpriseIdAndStaffid(String enterpriseId, String staffid);
/**
* 删除关联关系
*
* @param clerkId
*/
void delByClerkId(String clerkId);
/**
* 搜索查询列表
*
* @param wxEnterpriseId
......@@ -171,7 +166,7 @@ public interface StaffClerkRelationApiService {
* @author mozhu
* @date 2022-06-20 22:46:46
*/
List<StaffClerkRelationDTO> listByStaffId(String wxEnterpriseId,String staffId);
List<StaffClerkRelationDTO> listByStaffId(String wxEnterpriseId, String staffId);
/**
* 通过职员id 查询职员id列表
......@@ -182,7 +177,7 @@ public interface StaffClerkRelationApiService {
* @author mozhu
* @date 2022-07-07 17:28:01
*/
List<StaffClerkRelationDTO> listClerkIdConcatFlagByClerkIds(List<String> clerkIds,String wxEnterpriseId);
List<StaffClerkRelationDTO> listClerkIdConcatFlagByClerkIds(List<String> clerkIds, String wxEnterpriseId);
/**
......@@ -196,16 +191,15 @@ public interface StaffClerkRelationApiService {
void clerkStoreMoveDel(String param);
/**
*
* @Title: getCanAddHmCount
* @Description: 获取能创建活码的导购数量
* @author xugh
* @param enterpriseId
* @param wxEnterpriseId
* @return
* @throws
* @Title: getCanAddHmCount
* @Description: 获取能创建活码的导购数量
* @author xugh
*/
int getCanAddHmCount(String enterpriseId , String wxEnterpriseId , String clerkId) ;
int getCanAddHmCount(String enterpriseId, String wxEnterpriseId, String clerkId);
List<String> listStaffIdByWxEnterpriseId(String wxEnterpriseId);
......
......@@ -26,6 +26,8 @@ public class Config {
private String hmLinkUrl;
@Value("${qywx_hbzs_suite}")
private String qywxHbzsSuite;
@Value("${addDelFriendEvent}")
private String addDelFriendEvent;
public String getHmLinkUrl() {
return hmLinkUrl;
......@@ -90,4 +92,12 @@ public class Config {
public void setQywxHbzsSuite(String qywxHbzsSuite) {
this.qywxHbzsSuite = qywxHbzsSuite;
}
public String getAddDelFriendEvent() {
return addDelFriendEvent;
}
public void setAddDelFriendEvent(String addDelFriendEvent) {
this.addDelFriendEvent = addDelFriendEvent;
}
}
package com.gic.haoban.manage.service.dao.mapper;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;
import java.util.Collection;
import java.util.Date;
import java.util.List;
public interface TabHaobanExternalClerkRelatedMapper {
......@@ -158,6 +157,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
List<ExternalClerkRelatedDTO> listByMemberIdList(@Param("memberIdList") List<String> memberIdList,
@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId);
/**
* 获取最新的最近的外部联系人
*
......@@ -270,7 +270,7 @@ public interface TabHaobanExternalClerkRelatedMapper {
* 根据企业id分页
*
* @param wxEnterpriseId 企业标识
* @return {@link List<TabHaobanWxEnterprise> }
* @return {@link List<TabHaobanExternalClerkRelated> }
* @author mozhu
* @date 2021-12-13 14:59:03
*/
......@@ -318,7 +318,8 @@ public interface TabHaobanExternalClerkRelatedMapper {
* @param staffId wx用户id
* @return {@link List}<{@link TabHaobanExternalClerkRelated}>
*/
List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId);
List<TabHaobanExternalClerkRelated> getByWxUserIdAndWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId);
/**
......@@ -356,5 +357,16 @@ public interface TabHaobanExternalClerkRelatedMapper {
@Param("enterpriseId") String enterpriseId);
List<TabHaobanExternalClerkRelated> listPageByWxenterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("startItem") int startItem , @Param("pageSize") int pageSize );
@Param("startItem") int startItem, @Param("pageSize") int pageSize);
/**
* 获取所有的好友会员id
*
* @param storeId 存储id
* @param staffId 员工id
* @return {@link List}<{@link String}>
*/
List<String> getByStoreIdAndStaffId(@Param("storeId") String storeId,
@Param("staffId") String staffId);
}
\ No newline at end of file
......@@ -26,8 +26,6 @@ public interface ExternalClerkRelatedService {
*/
void delByUserIdAndExternalUserIdBatch(String wxEnterpriseId, String staffId, List<String> externalUserids);
void delByClerkIdAndStaffId(String clerkId, String staffId);
void delByStoreIdAndStaffId(String storeId, String staffId);
void delByStoreIds(Collection<String> storeIds);
......@@ -38,7 +36,7 @@ public interface ExternalClerkRelatedService {
TabHaobanExternalClerkRelated getByParams(String staffId, String wxEnterpriseId, String name, String createTime);
List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserId(String externalUserid, String staffId);
List<TabHaobanExternalClerkRelated> listByExternalUseridAndWxUserId(String externalUserid, String staffId);
List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserIdAllStatus(String wxEnterpriseId, String externalUserid, String wxUserId);
......@@ -73,4 +71,13 @@ public interface ExternalClerkRelatedService {
void repairExternalUserId(String wxEnterpriseId);
/**
* 获取所有的好友会员id
*
* @param storeId 存储id
* @param staffId 员工id
* @return {@link List}<{@link String}>
*/
List<String> getByStoreIdAndStaffId(String storeId,String staffId);
}
......@@ -15,7 +15,7 @@ public interface StaffClerkRelationService {
List<StaffClerkRelationDTO> listBindCodeByStaffId(List<String> enterpriseIdList, String staffId);
/**
* 删除绑定
* 解绑-删除绑定(导购级别)
*
* @param clerkId
* @return
......@@ -23,7 +23,7 @@ public interface StaffClerkRelationService {
boolean delBind(String clerkId, String optStaffId, int channelCode);
/**
* 删除绑定
* 解绑-删除绑定(门店级别)
*
* @param wxEnterpriseId 可以不传
* @param storeIds
......
......@@ -66,6 +66,10 @@ public class ClerkMainStoreRelatedServiceImpl implements ClerkMainStoreRelatedSe
logger.info("切换主门店-刷新企业微信好友:{},{}", staffId, storeId);
//主门店切换需要刷新企业微信好友
TabHaobanStaff staff = staffService.selectById(staffId);
if (staff == null) {
logger.info("员工不存在:{}",staffId);
return;
}
String taskName = "自动刷新企业微信好友(" + staff.getStaffName() + ")";
String taskId = dealSyncOperationApiService.createWxFriendTaskSingle(wxEnterpriseId, taskName, staffId, staff.getStaffName(), SyncTaskTypeEnum.FRIEND_SINGLE.getType());
if (StringUtils.isBlank(taskId)) {
......
package com.gic.haoban.manage.service.service.impl;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.utils.DingUtils;
import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil;
......@@ -34,29 +21,35 @@ import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper;
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.TabHaobanRepairExternalUserMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanRepairExternalUser;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.dao.mapper.*;
import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.SecretSettingService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
import com.gic.search.engine.api.dto.ESResponseQuerySingle;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import static org.slf4j.LoggerFactory.getLogger;
@Service
public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedService {
......@@ -78,17 +71,23 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
@Autowired
private WxUserAddLogService wxUserAddLogService;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
private StoreService storeService;
@Autowired
private MemberUnionidRelatedMapper memberUnionidRelatedMapper ;
private ClerkService clerkService;
@Autowired
private QywxUserApiService qywxUserApiService ;
private MemberEntranceApiService memberEntranceApiService;
@Autowired
private Config config;
@Autowired
private TabHaobanRepairExternalUserMapper tabHaobanRepairExternalUserMapper ;
private WxEnterpriseService wxEnterpriseService;
@Autowired
private MemberUnionidRelatedMapper memberUnionidRelatedMapper;
@Autowired
private QywxUserApiService qywxUserApiService;
@Autowired
private SecretSettingService secretSettingService ;
private TabHaobanRepairExternalUserMapper tabHaobanRepairExternalUserMapper;
@Autowired
private SecretSettingService secretSettingService;
@Override
public void insert(TabHaobanExternalClerkRelated related) {
......@@ -106,13 +105,13 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
@Override
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto , String wxUserId) {
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto, String wxUserId) {
int count = mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto));
if (count <= 0) {
logger.error("无需删除的好友数据:{}", JSON.toJSONString(dto));
return;
}
String staffId = dto.getStaffId() ;
String staffId = dto.getStaffId();
String externalUserid = dto.getExternalUserid();
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 2);
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
......@@ -128,7 +127,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
staffId = tabHaobanStaff.getStaffId();
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId,null);
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId, null);
if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) {
logger.error("找不到员工导购关联关系:staffId:{},wxEnterpriseId:{}", staffId, wxEnterpriseId);
return;
......@@ -166,16 +165,77 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
wxUserAddLogQDTO.setStaffId(related.getStaffId());
wxUserAddLogQDTO.setClerkId(related.getClerkId());
wxUserAddLogService.save(wxUserAddLogQDTO);
//定制
addDelFriendEvent(related.getUnionid(), related.getClerkId(),wxEnterpriseId, enterpriseId, related.getMemberId(), related.getStoreId(), 0);
}
@Override
public void delByUserIdAndExternalUserIdBatch(String wxEnterpriseId, String staffId, List<String> externalUserids) {
mapper.delByUserIdAndExternalUserIdBatch(staffId, wxEnterpriseId, externalUserids);
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId,String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType) {
String addDelFriendEvent = config.getAddDelFriendEvent();
if (!addDelFriendEvent.contains(wxEnterpriseId)) {
logger.info("非定制,无需广播通知");
return;
}
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode());
}
msgBody.put("changeType", changeType);
if (changeType == 0) {
msgBody.put("delUserContact", 0);
msgBody.put("delCreateTime", new Date());
} else {
msgBody.put("addCreateTime", "");
}
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
logger.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
@Override
public void delByClerkIdAndStaffId(String clerkId, String staffId) {
mapper.delByClerkIdAndStaffId(clerkId, staffId);
public void delByUserIdAndExternalUserIdBatch(String wxEnterpriseId, String staffId, List<String> externalUserids) {
mapper.delByUserIdAndExternalUserIdBatch(staffId, wxEnterpriseId, externalUserids);
}
@Override
......@@ -193,7 +253,6 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
if (staffIds != null && !staffIds.isEmpty()) {
mapper.cleanStaffRelated(wxEnterpriseId, staffIds);
}
}
@Override
......@@ -210,7 +269,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
}
@Override
public List<TabHaobanExternalClerkRelated> listByExTernalUseridAndWxUserId(String externalUserid, String staffId) {
public List<TabHaobanExternalClerkRelated> listByExternalUseridAndWxUserId(String externalUserid, String staffId) {
return mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 1);
}
......@@ -274,139 +333,144 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
if(StringUtils.isEmpty(wxEnterpriseIds)) {
return ;
}
Object cache = RedisUtil.getCache("repairExternalUserId") ;
String[] arr = wxEnterpriseIds.split(",") ;
for(int i=0;i<arr.length;i++) {
String wxEnterpriseId = arr[i] ;
if(StringUtils.isEmpty(wxEnterpriseId)) {
continue ;
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
if(null == qwDTO) {
logger.info("外部联系人检查,企业不存在,wxEnterpriseId={}",wxEnterpriseId);
continue ;
}
SecretSettingDTO secret = this.secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CUSTOMIZED_APP.getVal()) ;
int pageSize = 800 ;
int pageNum = 0 ;
while(true) {
List<TabHaobanExternalClerkRelated> list = this.mapper.listPageByWxenterpriseId(wxEnterpriseId, pageNum*pageSize, pageSize) ;
if(CollectionUtils.isEmpty(list)) {
break ;
Object cache = RedisUtil.getCache("repairExternalUserId");
String[] arr = wxEnterpriseIds.split(",");
for (int i = 0; i < arr.length; i++) {
String wxEnterpriseId = arr[i];
if (StringUtils.isEmpty(wxEnterpriseId)) {
continue;
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (null == qwDTO) {
logger.info("外部联系人检查,企业不存在,wxEnterpriseId={}", wxEnterpriseId);
continue;
}
SecretSettingDTO secret = this.secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CUSTOMIZED_APP.getVal());
int pageSize = 800;
int pageNum = 0;
while (true) {
List<TabHaobanExternalClerkRelated> list = this.mapper.listPageByWxenterpriseId(wxEnterpriseId, pageNum * pageSize, pageSize);
if (CollectionUtils.isEmpty(list)) {
break;
}
pageNum++;
Set<String> externalUserIdSet = list.stream().map(dto->dto.getExternalUserId()).collect(Collectors.toSet()) ;
Set<String> externalUserIdSet = list.stream().map(dto -> dto.getExternalUserId()).collect(Collectors.toSet());
List<String> externalUserIdList = new ArrayList<>();
externalUserIdList.addAll(externalUserIdSet) ;
List<MemberUnionidRelated> unionidlist = this.memberUnionidRelatedMapper.listByWxEnterpriseIdAndExternalUserId(wxEnterpriseId, externalUserIdList) ;
Map<String,String> map = unionidlist.stream().collect(Collectors.toMap(MemberUnionidRelated::getExternalUserid, MemberUnionidRelated::getSelfExternalUserid,(k1,k2)->k1)) ;
logger.info("外部联系人检查,第{}次,好友数={},unionid表数={}",pageNum,externalUserIdList.size(),unionidlist.size());
List<String> delList = new ArrayList<>() ;
Set<String> checkSet = unionidlist.stream().map(dto->dto.getExternalUserid()).collect(Collectors.toSet()) ;
externalUserIdList.addAll(externalUserIdSet);
List<MemberUnionidRelated> unionidlist = this.memberUnionidRelatedMapper.listByWxEnterpriseIdAndExternalUserId(wxEnterpriseId, externalUserIdList);
Map<String, String> map = unionidlist.stream().collect(Collectors.toMap(MemberUnionidRelated::getExternalUserid, MemberUnionidRelated::getSelfExternalUserid, (k1, k2) -> k1));
logger.info("外部联系人检查,第{}次,好友数={},unionid表数={}", pageNum, externalUserIdList.size(), unionidlist.size());
List<String> delList = new ArrayList<>();
Set<String> checkSet = unionidlist.stream().map(dto -> dto.getExternalUserid()).collect(Collectors.toSet());
List<String> checkList = new ArrayList<>();
checkList.addAll(checkSet) ;
for(String item : externalUserIdList) {
if(!checkList.contains(item)) {
delList.add(item) ;
checkList.addAll(checkSet);
for (String item : externalUserIdList) {
if (!checkList.contains(item)) {
delList.add(item);
}
}
logger.info("外部联系人检查,unionid表不存在记录的数量={},待检查数={}",delList.size(),checkList.size());
logger.info("外部联系人检查,unionid表不存在记录的数量={},待检查数={}", delList.size(), checkList.size());
List<String> notExistQwList = new ArrayList<>();
List<TabHaobanRepairExternalUser> errorList = new ArrayList<>() ;
if(CollectionUtils.isNotEmpty(checkList)) {
List<TabHaobanRepairExternalUser> errorList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(checkList)) {
List<String> qwList = new ArrayList<>();
List<QywxNewExternalUseridDTO> newExternalUseridList = null ;
if(null != cache) {
newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), checkList) ;
}else {
newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), checkList) ;
List<QywxNewExternalUseridDTO> newExternalUseridList = null;
if (null != cache) {
newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), checkList);
} else {
newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), checkList);
}
if (null != newExternalUseridList) {
logger.info("外部联系人检查,查询企微数={},返回数={}",checkList.size(),newExternalUseridList.size());
logger.info("外部联系人检查,查询企微数={},返回数={}", checkList.size(), newExternalUseridList.size());
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) {
String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid();
String external_userid = qywxNewExternalUseridDTO.getExternal_userid();
qwList.add(external_userid) ;
if(new_external_userid.equals(external_userid)) {
continue ;
}else {
logger.info("外部联系人检查,数据异常={}",new_external_userid,external_userid);
qwList.add(external_userid);
if (new_external_userid.equals(external_userid)) {
continue;
} else {
logger.info("外部联系人检查,数据异常={}", new_external_userid, external_userid);
TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser();
user.setId(UniqueIdUtils.uniqueLong());
user.setUserId(external_userid);
user.setWxEnterpriseId(wxEnterpriseId);
user.setStatusFlag(111);
user.setRemark(new_external_userid);
errorList.add(user) ;
errorList.add(user);
}
}
if(checkList.size()!=newExternalUseridList.size()) {
for(String item : checkList) {
if(!qwList.contains(item)) {
notExistQwList.add(item) ;
if (checkList.size() != newExternalUseridList.size()) {
for (String item : checkList) {
if (!qwList.contains(item)) {
notExistQwList.add(item);
}
}
}
}else {
} else {
logger.info("外部联系人检查,调用企业异常");
}
// 通过外部联系人查询不到
if(CollectionUtils.isNotEmpty(notExistQwList)) {
if (CollectionUtils.isNotEmpty(notExistQwList)) {
// 需要用自建的查询的
List<String> selfList = new ArrayList<>();
List<TabHaobanRepairExternalUser> addList = new ArrayList<>();
for(String item : notExistQwList) {
for (String item : notExistQwList) {
TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser();
user.setId(UniqueIdUtils.uniqueLong());
user.setUserId(item);
if(StringUtils.isNotBlank(map.get(item)) && !map.get(item).equals(item)) {
selfList.add(map.get(item)) ;
if (StringUtils.isNotBlank(map.get(item)) && !map.get(item).equals(item)) {
selfList.add(map.get(item));
}
user.setSelfUserId(map.get(item));
user.setWxEnterpriseId(wxEnterpriseId);
user.setStatusFlag(11);
user.setRemark("企微查询不到");
addList.add(user) ;
addList.add(user);
}
if(CollectionUtils.isNotEmpty(selfList)) {
newExternalUseridList = null ;
if(null != cache) {
newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), selfList) ;
}else {
newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), selfList) ;
}
Map<String,String> selfMap = new HashMap<>() ;
if(null != newExternalUseridList) {
selfMap = newExternalUseridList.stream().collect(Collectors.toMap(QywxNewExternalUseridDTO::getExternal_userid, QywxNewExternalUseridDTO::getNew_external_userid,(k1,k2)->k1)) ;
}
for(TabHaobanRepairExternalUser item : addList) {
if (CollectionUtils.isNotEmpty(selfList)) {
newExternalUseridList = null;
if (null != cache) {
newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), selfList);
} else {
newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), selfList);
}
Map<String, String> selfMap = new HashMap<>();
if (null != newExternalUseridList) {
selfMap = newExternalUseridList.stream().collect(Collectors.toMap(QywxNewExternalUseridDTO::getExternal_userid, QywxNewExternalUseridDTO::getNew_external_userid, (k1, k2) -> k1));
}
for (TabHaobanRepairExternalUser item : addList) {
item.setNewUserId(selfMap.get(item.getSelfUserId()));
}
}
this.tabHaobanRepairExternalUserMapper.batchInsert(addList) ;
this.tabHaobanRepairExternalUserMapper.batchInsert(addList);
}
// unionid表不存在的记录
if(CollectionUtils.isNotEmpty(delList)) {
if (CollectionUtils.isNotEmpty(delList)) {
List<TabHaobanRepairExternalUser> addList = new ArrayList<>();
for(String item : delList) {
for (String item : delList) {
TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser();
user.setId(UniqueIdUtils.uniqueLong());
user.setUserId(item);
user.setWxEnterpriseId(wxEnterpriseId);
user.setStatusFlag(1);
user.setRemark("unionid不存在记录");
addList.add(user) ;
addList.add(user);
}
this.tabHaobanRepairExternalUserMapper.batchInsert(addList) ;
this.tabHaobanRepairExternalUserMapper.batchInsert(addList);
}
// 错误的ID
if(CollectionUtils.isNotEmpty(errorList)) {
this.tabHaobanRepairExternalUserMapper.batchInsert(errorList) ;
if (CollectionUtils.isNotEmpty(errorList)) {
this.tabHaobanRepairExternalUserMapper.batchInsert(errorList);
}
}
}
}
}
@Override
public List<String> getByStoreIdAndStaffId(String storeId, String staffId) {
return mapper.getByStoreIdAndStaffId(storeId, staffId);
}
}
......@@ -20,6 +20,7 @@ import com.gic.haoban.manage.service.entity.MemberClerkChatConfig;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.*;
import com.gic.member.api.service.MemberApiService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
......@@ -60,6 +61,8 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
private HmClerkRelationApiService hmClerkRelationApiService;
@Autowired
private WxEnterpriseService wxEnterpriseService;
@Autowired
private MemberApiService memberApiService;
@Override
public List<StaffClerkRelationDTO> listBindCode(String enterpriseId, Set<String> clerkCodeList) {
......@@ -80,17 +83,20 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
int i = mapper.changeStatusByClerkId(clerkId, 0);
String enterpriseId = clerkRelation.getEnterpriseId();
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(clerkRelation.getStoreId(), clerkRelation.getStaffId());
for (String memberId : memberIds) {
//解绑通知会员
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 0, new Date());
}
//删除 并设置主门店
clerkMainStoreRelatedService.delMainStore(clerkRelation.getStaffId(), clerkRelation.getStoreId(), clerkRelation.getWxEnterpriseId());
boolean b = i >= 0;
if (b) {
//推入日志
staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, clerkRelation.getStaffClerkRelationId());
//废弃活码
hmClerkRelationApiService.delByClerkId(clerkId, clerkRelation.getEnterpriseId(), clerkRelation.getWxEnterpriseId(), channelCode);
}
return b;
hmClerkRelationApiService.delByClerkId(clerkId, enterpriseId, clerkRelation.getWxEnterpriseId(), channelCode);
return i > 0;
}
@Override
......@@ -102,21 +108,27 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
List<TabHaobanStaffClerkRelation> needUnbind = mapper.listBindByStoreIds(wxEnterpriseId, storeIds);
if (CollectionUtils.isEmpty(needUnbind)) {
logger.info("没有门店绑定了需要解绑的:{}", wxEnterpriseId);
return true;
}
//清除绑定
mapper.delByStoreIds(storeIds);
//删除主门店
clerkMainStoreRelatedService.delMainStoreByStoreIds(storeIds);
List<String> need = needUnbind.stream().map(tab -> tab.getStaffClerkRelationId()).collect(Collectors.toList());
//放入队列
staffClerkBindLogService.pushToMqBatch(optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, need);
for (TabHaobanStaffClerkRelation clerkRelation : needUnbind) {
//废弃活码
hmClerkRelationApiService.delByClerkId(clerkRelation.getClerkId(), clerkRelation.getEnterpriseId(), wxEnterpriseId, channelCode);
String enterpriseId = clerkRelation.getEnterpriseId();
hmClerkRelationApiService.delByClerkId(clerkRelation.getClerkId(), enterpriseId, wxEnterpriseId, channelCode);
//删除好友通知会员
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(clerkRelation.getStoreId(), clerkRelation.getStaffId());
for (String memberId : memberIds) {
//解绑通知会员
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 0);
memberApiService.updateMemberQywxEveryOccasion(enterpriseId, memberId, 0, new Date());
}
}
return true;
}
......
......@@ -171,12 +171,6 @@ public class StoreRangeServiceImpl implements StoreRangeService {
* @param addStoreIds
*/
private void dealStoreRelation(List<TabStoreRelation> storeRelations, String enterpriseId, Set<String> delStoreIds, Set<String> addStoreIds) {
// //先删除 后新增
// tabHaobanStoreRelationMapper.deleteAllStoreRalation(enterpriseId);
// //批量插入
// insertStoreRelationBatch(storeRelations);
//先删除 后新增
if (CollectionUtils.isNotEmpty(delStoreIds)) {
logger.info("批量删除门店:{}", JSONObject.toJSONString(delStoreIds));
......
......@@ -202,15 +202,11 @@ public class AuditApiServiceImpl implements AuditApiService {
if (StringUtils.isNotBlank(batchId)) {
insertBatchLog(batchId, AuditRsultType.success.getCode(), tab);
}
//解绑日志
StaffClerkRelationDTO relationDTO = staffClerkRelationApiService.getByClerkId(obj.getClerkId());
if (null != relationDTO) {
staffClerkRelationApiService.pushToBindLog(relationDTO.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), ChannelCodeEnum.SELF_UNBIND.getCode(), relationDTO.getStaffClerkRelationId());
}
staffClerkRelationApiService.delByClerkId(obj.getClerkId());
staffClerkRelationApiService.unbindByStaffAndClerkId(optStaffId,obj.getClerkId(),ChannelCodeEnum.AUDIT_UNBIND.getCode());
staffDepartmentRelatedApiService.sendClerkDel(obj.getClerkName(), obj.getClerkCode(), tab.getCommitStoreId(), 1, "");
} else if (auditType == AuditType.CLERK_UNBIND.getCode()) {
//解绑申请,无需审核,直接通过
logger.info("解绑申请,无需审核,直接通过");
}
tab.setAuditStatus(1);
auditMapper.updateByPrimaryKeySelective(tab);
......
package com.gic.haoban.manage.service.service.out.impl;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.redisson.api.RRateLimiter;
import org.redisson.api.RateIntervalUnit;
import org.redisson.api.RateType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.api.base.dto.SubscribeMessageDTO;
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.GICMQClientUtil;
import com.gic.commons.util.UniqueIdUtils;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.app.customer.enums.GicQywxSyncTypeEnum;
import com.gic.haoban.app.customer.enums.QywxSyncTaskTypeEnum;
import com.gic.haoban.base.api.common.BasePageInfo;
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.AlertMessageDTO;
import com.gic.haoban.manage.api.dto.ClerkStaffWxUserDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO;
import com.gic.haoban.manage.api.dto.FriendMemberStatusDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.AlertTypeEnum;
import com.gic.haoban.manage.api.enums.SyncTaskTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
......@@ -45,27 +26,38 @@ import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.ExternalUseridLogMapper;
import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.dao.mapper.WxEnterpriseMapper;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabExternalUseridLog;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterprise;
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.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.redisson.api.RRateLimiter;
import org.redisson.api.RateIntervalUnit;
import org.redisson.api.RateType;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Service
public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedApiService {
......@@ -95,9 +87,17 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Autowired
private WxUserAddLogService wxUserAddLogService;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
private WxEnterpriseService wxEnterpriseService;
@Autowired
private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Autowired
private StoreService storeService;
@Autowired
private ClerkService clerkService;
@Autowired
private DealSyncOperationApiService dealSyncOperationApiService ;
private MemberService memberService;
/**
* 查询会员在企业下的好友关系
......@@ -117,7 +117,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
public List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId,
String enterpriseId) {
List<ExternalClerkRelatedDTO> list = tabHaobanExternalClerkRelatedMapper.listByMemberIdList(memberIdList, wxEnterpriseId, enterpriseId);
return list ;
return list;
}
@Override
......@@ -229,10 +229,77 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
//回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制
addDelFriendEvent(unionid, externalClerkRelated.getClerkId(), wxEnterpriseId, enterpriseId, memberId, externalClerkRelated.getStoreId(), 1);
//日志
wxUserAddLogService.updateMemberInfo(wxEnterpriseId, enterpriseId, externalClerkRelated.getStaffId(), externalClerkRelated.getExternalUserId(), memberId);
}
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId, String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType) {
String addDelFriendEvent = config.getAddDelFriendEvent();
if (!addDelFriendEvent.contains(wxEnterpriseId)) {
log.info("非定制,无需广播通知");
return;
}
log.info("欧泊莱定制:unionId:{},clerkId:{}", unionId, changeType);
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode());
}
msgBody.put("changeType", changeType);
msgBody.put("addCreateTime", new Date());
msgBody.put("delCreateTime", "");
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
log.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
/**
* 刷新标签信息
*
......@@ -325,12 +392,12 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
public void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId) {
log.info("删除会员或者合并会员,memberId:{},enterpriseId:{},mergeMemberId:{}", memberId, enterpriseId, mergeMemberId);
if (StringUtils.isBlank(mergeMemberId)) {
log.info("删除会员,memberId:{}",memberId);
log.info("删除会员,memberId:{}", memberId);
//删除会员
tabHaobanExternalClerkRelatedMapper.updateStatusByMemberId(memberId, enterpriseId);
} else {
//合并会员
log.info("合并会员,memberId:{}",memberId);
log.info("合并会员,memberId:{}", memberId);
tabHaobanExternalClerkRelatedMapper.updateMemberIdByMemberId(mergeMemberId, memberId, enterpriseId);
int i = tabHaobanExternalClerkRelatedMapper.countByMemberId(mergeMemberId, enterpriseId);
if (i > 0) {
......@@ -341,6 +408,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
}
@Override
public boolean isFriends(String memberId, String clerkId, String enterpriseId) {
TabHaobanStaffClerkRelation staffClerkRelation = staffClerkRelationMapper.getByClerkId(clerkId);
......@@ -362,11 +430,11 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
// 2个列表都为空查不了关系
return Collections.emptyMap();
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) {
return Collections.emptyMap();
}
List<MemberStaffRelExtDO> res = staffClerkRelationMapper.listMemberStaffRelNew(memberIdList, clerkIdList, enterpriseId,wxEnterpriseId);
List<MemberStaffRelExtDO> res = staffClerkRelationMapper.listMemberStaffRelNew(memberIdList, clerkIdList, enterpriseId, wxEnterpriseId);
if (CollectionUtils.isEmpty(res)) {
return Collections.emptyMap();
}
......@@ -413,7 +481,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
RedisUtil.lock(lockKey, 1L, TimeUnit.DAYS, 0L);
try {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
updateNewExUserId(tabHaobanWxEnterprise.getWxEnterpriseId(), qwDTO.getThirdCorpid());
log.info("企业外部联系人id end,wxEnterpriseId:{}", wxEnterpriseId);
RedisUtil.unlock(lockKey);
......@@ -647,8 +715,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
log.info("没有要刷新的:{},{}", wxEnterpriseId, staffList);
return;
}
staffList = staffList.stream().distinct().collect(Collectors.toList()) ;
log.info("staffList={}",JSON.toJSONString(staffList));
staffList = staffList.stream().distinct().collect(Collectors.toList());
log.info("staffList={}", JSON.toJSONString(staffList));
for (String staffId : staffList) {
this.dealSyncOperationApiService.dealWxFriendClerkSingle(taskId, staffId, staffId, wxEnterpriseId);
}
......
......@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.clerk.api.service.PowerService;
......@@ -61,10 +62,9 @@ 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;
import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberOpenCardBusinessService;
import com.gic.member.api.service.MemberService;
import com.gic.member.api.service.MemberStoreService;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.*;
import com.gic.member.tag.api.dto.outapi.MemberTagSingleDTO;
import com.gic.member.tag.api.service.MemberTagOpenApiService;
import com.gic.mq.sdk.GicMQClient;
......@@ -169,32 +169,74 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Autowired
private HmClerkRelationApiService hmClerkRelationApiService;
@Autowired
private StaffMapper staffMapper ;
private StaffMapper staffMapper;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override
public void dealQywxExternalUser(String params) {
log.info("处理外部联系人回调:{}", params);
DealQywxExternalUserPojo externalUserPojo = JSONObject.parseObject(params, DealQywxExternalUserPojo.class);
QwFrientNoticeDTO dto = externalUserPojo.getData() ;
MemberUnionidRelatedDTO inDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class,dto) ;
if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.del.getType()) {
this.delMemberUnionidRelatedProcess(inDTO , dto.getWxUserId());
} else if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.add.getType()) {
this.addMemberUnionidRelatedNew(inDTO , dto.getWxUserId());
} else if (externalUserPojo.getType() == DealQywxExternalUserPojo.DealType.edit.getType()) {
this.editMemberUnionidRelatedProcess(inDTO , dto.getWxUserId());
QwFrientNoticeDTO qwFrientNoticeDTO = externalUserPojo.getData();
int type = externalUserPojo.getType();
String wxUserId = qwFrientNoticeDTO.getWxUserId();
MemberUnionidRelatedDTO memberUnionidRelatedDTO = EntityUtil.changeEntityByJSON(MemberUnionidRelatedDTO.class, qwFrientNoticeDTO);
if (type == DealQywxExternalUserPojo.DealType.add.getType()) {
this.addMemberUnionidRelatedNew(memberUnionidRelatedDTO, wxUserId);
} else if (type == DealQywxExternalUserPojo.DealType.edit.getType()) {
this.editMemberUnionidRelatedProcess(memberUnionidRelatedDTO, wxUserId);
} else if (type == DealQywxExternalUserPojo.DealType.del.getType()) {
String changeType = qwFrientNoticeDTO.getChangeType();
//欧泊莱定制
if ("del_follow_user".equals(changeType)) {
log.info("会员删除导购");
String corpId = memberUnionidRelatedDTO.getCorpid();
TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpId, null);
if (tabHaobanWxApplication == null) {
log.info("查询tab_haoban_wx_application为空:{}", corpId);
return;
}
String wxEnterpriseId = tabHaobanWxApplication.getWxEnterpriseId();
memberUnionidRelatedDTO.setWxEnterpriseId(wxEnterpriseId);
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
String staffId = staff.getStaffId();
memberUnionidRelatedDTO.setStaffId(staffId);
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = externalClerkRelatedService.listByExternalUseridAndWxUserId(memberUnionidRelatedDTO.getExternalUserid(), memberUnionidRelatedDTO.getStaffId());
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
log.error("无好友记录");
return;
}
TabHaobanExternalClerkRelated related = tabHaobanExternalClerkRelatedList.get(0);
String enterpriseId = related.getEnterpriseId();
//添加日志
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.setStaffId(related.getStaffId());
wxUserAddLogQDTO.setClerkId(related.getClerkId());
wxUserAddLogQDTO.setDelClerkFlag(true);
wxUserAddLogService.save(wxUserAddLogQDTO);
addDelFriendEvent(related.getUnionid(), related.getClerkId(), wxEnterpriseId,enterpriseId, related.getMemberId(), related.getStoreId(), 0);
return;
}
log.info("导购删除好友");
this.delMemberUnionidRelatedProcess(memberUnionidRelatedDTO, wxUserId);
}
}
@Override
public List<MemberStoreDTO> listByExTernalUseridAndWxUserId(String externalUserid, String staffId, String storeId) {
List<TabHaobanExternalClerkRelated> list = externalClerkRelatedService.listByExTernalUseridAndWxUserId(externalUserid, staffId);
List<TabHaobanExternalClerkRelated> list = externalClerkRelatedService.listByExternalUseridAndWxUserId(externalUserid, staffId);
List<MemberStoreDTO> result = new ArrayList<>();
if (CollectionUtil.isEmpty(list)) {
return null;
}
TabHaobanStaff haobanStaff = staffService.selectById(staffId) ;
TabHaobanStaff haobanStaff = staffService.selectById(staffId);
if (null == haobanStaff) {
log.info("staff不存在");
return null;
......@@ -209,7 +251,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
log.info("staff关联门店不存在2");
return null;
}
log.info("门店信息storeIds={}",JSON.toJSONString(storeIds));
log.info("门店信息storeIds={}", JSON.toJSONString(storeIds));
//2、获取member的storeId
for (TabHaobanExternalClerkRelated tab : list) {
if (StringUtils.isNotBlank(storeId) && (!storeId.equals(tab.getStoreId()))) {
......@@ -293,12 +335,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Override
public String addMemberUnionidRelatedNew(MemberUnionidRelatedDTO dto, String wxUserId) {
//解析组装信息
dto = getMemberUnionidRelatedDTONew(dto,wxUserId);
dto = getMemberUnionidRelatedDTONew(dto, wxUserId);
if (null == dto) {
log.info("没处理完成-等下一次处理");
return null;
}
insertExternalClerkRelatedNew(dto,wxUserId);
insertExternalClerkRelatedNew(dto, wxUserId);
return dto.getMemberUnionidRelatedId();
}
......@@ -335,7 +377,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
String staffId = staff.getStaffId();
String staffName = staff.getStaffName();
log.info("新增外部联系人,staffId={}",staffId);
log.info("新增外部联系人,staffId={}", staffId);
StaffClerkRelationDTO staffClerkRelationDTO = null;
//活码处理 "DT" "HM"
WxUserAddLogQDTO wxUserAddLogQDTO = new WxUserAddLogQDTO();
......@@ -435,7 +477,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
if (StringUtils.isNotBlank(unionid)) {
log.info("有unionid处理:wxEnterpriseId:{},unionid:{}", wxEnterpriseId, unionid);
dto.setUnionid(unionid);
memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated, isHmUnionid, mobile , wxUserId);
memberId = addExternalClerkRelated(dto, staffId, staffClerkRelationDTO, wxEnterpriseRelated, isHmUnionid, mobile, wxUserId);
} else {
log.info("发送欢迎语逻辑:wxEnterpriseId:{}", wxEnterpriseId);
addFriendByWelcome(dto, staffClerkRelationDTO);
......@@ -549,6 +591,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
}
String memberId = member.getMemberId();
String storeId = staffClerkRelationDTO.getStoreId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, staffId);
String relationKey = SecureUtil.md5(staffId + externalUserid);
String memberUnionidRelatedId = dto.getMemberUnionidRelatedId();
......@@ -563,7 +606,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
related.setStaffId(staffId);
related.setHeadUrl(dto.getAvatar());
related.setMemberUnionidRelatedId(memberUnionidRelatedId);
related.setStoreId(staffClerkRelationDTO.getStoreId());
related.setStoreId(storeId);
related.setRelationKey(relationKey);
related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId);
......@@ -578,7 +621,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setUnionid(unionId);
exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId());
exsitDTO.setStoreId(storeId);
exsitDTO.setEnterpriseId(enterpriseId);
exsitDTO.setClerkId(clerkId);
exsitDTO.setStatusFlag(1);
......@@ -598,9 +641,78 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制事件订阅
addDelFriendEvent(unionId, clerkId,wxEnterpriseId, enterpriseId, memberId, storeId, 1);
return memberId;
}
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addDelFriendEvent(String unionId, String clerkId,String wxEnterpriseId, String enterpriseId, String memberId, String storeId, Integer changeType) {
String addDelFriendEvent = config.getAddDelFriendEvent();
if (!addDelFriendEvent.contains(wxEnterpriseId)) {
log.info("非定制,无需广播通知");
return;
}
log.info("欧泊莱定制:unionId:{},clerkId:{}",unionId,changeType);
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode());
}
// 1添加;0删除
msgBody.put("changeType", changeType);
if (changeType == 0) {
msgBody.put("delCreateTime", new Date());
msgBody.put("delUserContact", 1);
} else {
msgBody.put("addCreateTime", new Date());
}
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
log.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
/**
* 欢迎语新增好友
......@@ -1062,20 +1174,20 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
*
* @param dto
*/
private void delMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto , String wxUserId) {
private void delMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) {
String corpId = dto.getCorpid();
TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpId, null);
if (tabHaobanWxApplication == null) {
log.info("查询tab_haoban_wx_application为空:{}", corpId);
return ;
return;
}
String wxEnterpriseId = tabHaobanWxApplication.getWxEnterpriseId();
dto.setWxEnterpriseId(wxEnterpriseId);
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId,wxEnterpriseId) ;
String staffId = staff.getStaffId() ;
TabHaobanStaff staff = this.staffMapper.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
String staffId = staff.getStaffId();
dto.setStaffId(staffId);
externalClerkRelatedService.delByUserIdAndExternalUserId(dto , wxUserId);
memberUnionRelatedService.delMemberUnionidRelated(dto , staffId);
externalClerkRelatedService.delByUserIdAndExternalUserId(dto, wxUserId);
memberUnionRelatedService.delMemberUnionidRelated(dto, staffId);
}
private void editMemberUnionidRelatedProcess(MemberUnionidRelatedDTO dto, String wxUserId) {
......@@ -1133,6 +1245,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
List<String> materialIdList, String ecmPlanId) {
return this.sendMessage(wxEnterpriseId, staffId, extendUserList, materialIdList);
}
/**
* 创建企业群发, 支出素材批量发送
*
......@@ -1171,12 +1284,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
qywxExternalMessageDTO.setChatType("single");
qywxExternalMessageDTO.setExternalUserid(extendUserList);
TabHaobanStaff tabHaobanStaff = staffService.selectById(staffId);
if(null == tabHaobanStaff) {
log.info("staff不存在,staffId={}",staffId);
if (null == tabHaobanStaff) {
log.info("staff不存在,staffId={}", staffId);
JSONResponse jp = new JSONResponse();
jp.setErrorCode(-1);
jp.setErrorMessage("群发失败,成员查不到," + staffId);
return jp ;
return jp;
}
if (qwDTO.needOpenUserId3th()) {
qywxExternalMessageDTO.setSenderUserId(tabHaobanStaff.getWxOpenUseId());
......@@ -1382,7 +1495,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
@Override
public ExternalUserDTO getCorpSelfExternalUseridInfoForMember(String wxEnterpriseId, String wxUserId,
String externalUserId,String enterpriseId) {
String externalUserId, String enterpriseId) {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) {
log.info("企业不存在");
......@@ -1690,12 +1803,12 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
Set<String> externalUserIdList = list.stream().map(external -> external.getExternalUserId()).collect(Collectors.toSet());
Sets.SetView<String> delExternalUserIds = Sets.difference(new HashSet<>(externalUserIds), externalUserIdList);
if (CollectionUtils.isEmpty(delExternalUserIds)) {
log.info("没有需要删除的外部联系人:{},{}", staffId);
log.info("没有需要删除的外部联系人:{}", staffId);
return;
}
//删除成员与union的关联关系
List<String> khList = new ArrayList<String>(delExternalUserIds) ;
log.info("需要删除外部联系人staffId={} , khList={}", staffId,JSON.toJSONString(khList));
List<String> khList = new ArrayList<String>(delExternalUserIds);
log.info("需要删除外部联系人staffId={} , khList={}", staffId, JSON.toJSONString(khList));
memberUnionRelatedService.delMemberUnionidRelatedBatch(wxEnterpriseId, staffId, khList);
//删除导购和外部联系人关系
externalClerkRelatedService.delByUserIdAndExternalUserIdBatch(wxEnterpriseId, staffId, khList);
......@@ -1816,7 +1929,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String wxUserId = externalUserDTO.getWxUserId();
TabHaobanStaff tabHaobanStaff = staffService.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
if (tabHaobanStaff == null) {
log.error("员工不存在:{}",wxUserId);
log.error("员工不存在:{}", wxUserId);
continue;
}
TabHaobanExternalClerkRelated externalClerkRelated = externalClerkRelatedMapper.getByEnterpriseIdAndExternalUserId(wxEnterpriseId, tabHaobanStaff.getStaffId(), enterpriseId, externalUserid);
......@@ -1888,6 +2001,11 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return EntityUtil.changeEntityNew(MemberUnionidRelatedDTO.class, memberUnionidRelated);
}
@Override
public void addDelFriendEventTest(String param) {
log.info("addDelFriendEventTest:{}",param);
}
/**
* 获取客户详情列表
*
......
......@@ -10,10 +10,7 @@ import com.gic.haoban.app.customer.service.api.service.InnerApiService;
import com.gic.haoban.base.api.common.Constant;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.AppPageType;
import com.gic.haoban.manage.api.enums.NoticeMessageTypeEnum;
import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.enums.WxEditType;
import com.gic.haoban.manage.api.enums.*;
import com.gic.haoban.manage.api.service.MessageApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.StaffClerkRelationApiService;
......@@ -316,7 +313,7 @@ public class MessageApiServiceImpl implements MessageApiService {
List<StaffClerkRelationDTO> staffClerkRelationDTOS = staffClerkRelationApiService.listByStaffId(wxEnterpriseId, staffId);
if (CollectionUtils.isNotEmpty(staffClerkRelationDTOS)) {
for (StaffClerkRelationDTO staffClerkRelationDTO : staffClerkRelationDTOS) {
staffClerkRelationApiService.unbindByStaffAndClerkId(staffId, staffClerkRelationDTO.getClerkId());
staffClerkRelationApiService.unbindByStaffAndClerkId(staffId, staffClerkRelationDTO.getClerkId(), ChannelCodeEnum.ADMIN_UNBIND.getCode());
}
}
}
......
......@@ -298,8 +298,8 @@ public class StaffApiServiceImpl implements StaffApiService {
if(qwDTO.getWxSecurityType()==4) {
list = qywxUserApiService.useridToOpenuserid(qwDTO.getThirdCorpid(), config.getWxSuiteid(), Collections.singletonList(userId));
}else {
TabHaobanWxApplication app = wxApplicationService.selectByCorpId(corpid);
list = qywxUserApiService.useridToOpenuserid(qwDTO.getDkCorpid(), app.getSiteId() , Collections.singletonList(userId));
SecretSettingDTO set = this.secretSettingService.getSecretSetting(qwDTO.getWxEnterpriseId(), SecretTypeEnum.CUSTOMIZED_APP.getVal()) ;
list = qywxUserApiService.getSelfUseridToOpenuserid(qwDTO.getDkCorpid(), set.getSecretVal() , Collections.singletonList(userId));
}
logger.info("明文userId转密文={},{}",userId , JSON.toJSONString(list));
if (CollectionUtils.isEmpty(list)) {
......
......@@ -209,12 +209,10 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public void delByStoreIdAndCode(String storeId, String clerkCode) {
TabHaobanStaffClerkRelation staffClerkRelation = tabHaobanStaffClerkRelationMapper.getByCodeAndStoreId(clerkCode, storeId);
//删除绑定关系
tabHaobanStaffClerkRelationMapper.delByStoreIdAndCode(storeId, clerkCode);
//删除主门店
delSetMainStore(staffClerkRelation, ChannelCodeEnum.SELF_UNBIND.getCode());
public void delBindByStoreId(String wxEnterpriseId,String storeId, String staffId,int channelCode) {
Set<String> needUnBindStoreIds = new HashSet<>();
needUnBindStoreIds.add(storeId);
staffClerkRelationService.delBindByStoreIds(wxEnterpriseId, needUnBindStoreIds, staffId, ChannelCodeEnum.SELF_UNBIND.getCode());
}
@Override
......@@ -236,8 +234,8 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
}
@Override
public boolean unbindByStaffAndClerkId(String staffId, String clerkId) {
return staffClerkRelationService.delBind(clerkId, staffId, ChannelCodeEnum.ADMIN_UNBIND.getCode());
public boolean unbindByStaffAndClerkId(String staffId, String clerkId,int channelCode) {
return staffClerkRelationService.delBind(clerkId, staffId, channelCode);
}
@Override
......@@ -280,28 +278,6 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
}
@Override
public void delByClerkId(String clerkId) {
TabHaobanStaffClerkRelation staffClerkRelation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
tabHaobanStaffClerkRelationMapper.delByClerkId(clerkId);
delSetMainStore(staffClerkRelation, ChannelCodeEnum.AUDIT_UNBIND.getCode());
}
private void delSetMainStore(TabHaobanStaffClerkRelation staffClerkRelation, Integer channelCode) {
if (staffClerkRelation == null) {
logger.info("staffClerkRelation为空");
return;
}
String staffId = staffClerkRelation.getStaffId();
String wxEnterpriseId = staffClerkRelation.getWxEnterpriseId();
String clerkId = staffClerkRelation.getClerkId();
externalClerkRelatedService.delByClerkIdAndStaffId(clerkId, staffId);
//删除主门店
clerkMainStoreRelatedService.delMainStore(staffId, staffClerkRelation.getStoreId(), wxEnterpriseId);
//废弃活码
hmClerkRelationApiService.delByClerkId(clerkId, staffClerkRelation.getEnterpriseId(), wxEnterpriseId, channelCode);
}
@Override
public List<StaffClerkRelationDTO> listByEnterpriseIdAndStaffid(String enterpriseId, String staffid) {
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByEnterpriseIdAndStaffid(enterpriseId, staffid);
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list);
......
......@@ -316,6 +316,9 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_8.getCode()), "该活码不存在");
}
Integer hmType = hmQrcodeQDTO.getHmType();
if (hmType == null) {
return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_8.getCode()), "活码类型为空");
}
List<String> clerkIdList = setStoreClerk(hmQrcodeQDTO, wxEnterpriseId, hmId, hmType, false);
if (CollectionUtils.isEmpty(clerkIdList)) {
return ServiceResponse.failure(Convert.toStr(HaoBanErrCodeCommon.ERR_8.getCode()), "该导购已经生成过活码或未关联过好办");
......
......@@ -193,4 +193,7 @@
<dubbo:reference interface="com.gic.thirdparty.api.service.VoiceService" id="voiceService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.CommunicationService" id="communicationService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.member.api.service.MemberEntranceApiService" id="memberEntranceApiService" timeout="10000" retries="0"/>
</beans>
\ No newline at end of file
......@@ -281,6 +281,9 @@
<select id="pageStaff" resultMap="BaseResultMap">
select
a.*
<if test="departmentIds != null and departmentIds.size() > 0">
, b.department_id departmentIds
</if>
from tab_haoban_staff a
<if test="departmentIds != null and departmentIds.size() > 0">
left join tab_haoban_staff_department_related b on a.staff_id = b.staff_id and b.status_flag = 1
......
......@@ -426,7 +426,6 @@
<foreach collection="statusFlags" item="item" separator="," open="(" close=")">
#{item}
</foreach>
order by update_time desc
</select>
<update id="pushExternalByRelationKey">
......@@ -653,6 +652,8 @@
</if>
order by create_time desc limit 1
</select>
<select id="countByMemberId" resultType="int">
select count(*)
from tab_haoban_external_clerk_related
......@@ -667,4 +668,13 @@
limit ${startItem},${pageSize}
</select>
<select id="getByStoreIdAndStaffId" resultType="java.lang.String">
select member_id
from tab_haoban_external_clerk_related
where store_id = #{storeId,jdbcType=VARCHAR}
and staff_id = #{staffId}
and status_flag in (1, 3, 4)
</select>
</mapper>
\ No newline at end of file
......@@ -196,7 +196,8 @@
</select>
<select id="getByClerkIdForWxUserId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO" parameterType="java.lang.String">
<select id="getByClerkIdForWxUserId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO"
parameterType="java.lang.String">
select
a.staff_clerk_relation_id staffClerkRelationId,
a.staff_id staffId,
......
import com.gic.haoban.manage.api.dto.qdto.hm.HmQrcodeQDTO;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.api.service.WxEnterpriseRelatedApiService;
import com.gic.haoban.manage.api.service.fee.HaobanQywxFeeApiService;
......@@ -13,7 +14,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
//import com.github.binarywang.java.emoji.EmojiConverter;
......@@ -33,7 +36,7 @@ public class ServiceTest {
private QywxSuiteApiService qywxSuiteApiService;
@Autowired
private StaffApiService staffApiService;
private ExternalClerkRelatedApiService externalClerkRelatedApiService;
@Autowired
private HmQrcodeApiService hmQrcodeApiService;
......@@ -45,15 +48,15 @@ public class ServiceTest {
@Test
public void test() {
HmQrcodeQDTO hmQrcodeQDTO = new HmQrcodeQDTO();
hmQrcodeQDTO.setHmType(1);
hmQrcodeQDTO.setWxEnterpriseId("ca66a01b79474c40b3e7c7f93daf1a3b");
hmQrcodeQDTO.setEnterpriseId("ff8080815dacd3a2015dacd3ef5c0000");
hmQrcodeQDTO.setName("徐高华");
hmQrcodeQDTO.setPassFlag(1);
hmQrcodeQDTO.setStoreId("ff8080816ad96137016ad97c87580000");
hmQrcodeQDTO.setClerkIdList(Collections.singletonList("ff1307040a7748699cf3109615fb24d7"));
hmQrcodeApiService.add(hmQrcodeQDTO);
List<String> memberIdList = Arrays.asList("ff8080817e8ca826017eb3f97a8212d6","ff808081801926f801801c6cf1d531d5","ff8080818070b6fe01807453706d7a75","ff8080817e8ca790017ed7c0cbff7f1d","ff8080817e8ca790017ec95d9aaf5041","ff8080817e8ca790017ec82cee155e4e","ff80808176cea48f017705a9f05e5212","ff8080817e8ca790017ec8c0737e3c3d","ff8080817e8ca790017ed8e22ee91c14","ff8080818070b6fe0180751922bc618c","ff8080817e8ca790017ecdf4cccf1283","ff8080818070b6fe01807a4ce4310e18","ff8080818070b6fe018079e8a4a92cba","ff8080818070b6fe01807a57d36026a8","ff8080818070b6fe018079b7f82f20f2","ff8080817e8ca790017ee259594f4b2b","ff80808180bdf3ac0180c2461ec07503","ff8080817f9343b7017fa1fc7d9c77f3","ff80808180bdf3240180e01978ce09fd","ff80808180bdf3ac0180c1a248275a13","ff80808180bdf3240180e119b5020565","ff8080818070b6680180ac68deb64f0f","ff80808180bdf3ac0180d745c67a586f","ff80808180bdf3ac0180c19c6f0a4b0b","ff80808180bdf3240180e16d37f940b1","ff8080817f48cb75017f4e8a12726fff","ff80808180bdf3ac0180c270cad054fc","ff8080818070b6fe01807dc7dd1e53a4","ff8080817f48cc10017f4f7e7b9d304f","ff8080817f48cb75017f4e0c21ac7e8b","ff8080818070b6fe018078be69ff2bde","ff80808180bdf3ac0180dbbf1f2c47e6","ff80808180bdf3240180e0393b9c4adb","ff80808180bdf3ac0180c6f4c40d2f5d","ff8080818070b6680180b20d83c65745","ff8080817f9343b7017f97a32d747289","ff8080817f50ff14017f589d8d276c5b","ff80808180bdf3ac0180c21af0b815b3","ff80808180bdf3ac0180c6487a840a74","ff80808180bdf3240180e056ac502f04","ff80808180bdf3ac0180c666b6134763","ff8080817f48cc97017f4e71b5735099","ff80808180bdf3240180e0a345b01500","ff8080817f9343b7017f9769cff33534","ff80808180bdf3ac0180dbfc1e4923ef","ff80808180bdf3ac0180dfeba452220e","ff80808180bdf3240180db2003187cd7","ff80808180bdf3ac0180d1940f6c097f","ff80808180bdf3ac0180dfc06db95f26","ff8080818070b6fe0180792f04863797","ff8080817f48cb75017f49a5fa817ee3","ff8080817f50ff14017f584889c061f7","ff808081801926550180318eaf1a7dd6","ff8080817e8ca790017ec92a60e503fc","ff8080817e8ca790017ecda8b169111d","ff8080817e8ca790017ed84adaaa4003","ff808081801926f801802c0c8f1960ae","ff808081801926f801802c895b783792","ff8080818070b6fe01807477de085408","ff8080818070b6fe01807906391f4143","ff8080817e8ca790017ec42605c24eaf","ff8080818070b6fe01807923bd12188b","ff8080818070b6fe018078de95306f19","ff808081801926f801801c176f63238c","ff8080818070b6fe01807a860680155d","ff8080818070b6fe01807929baf72989","ff8080818070b6fe018079ed1af736b7","ff8080817e8ca826017ebe3c823c1019","ff8080817e8ca790017ebf54752a36c2","ff808081801926f8018021568c832ec1","ff80808180192655018035e2412e16de","ff80808180f185d401811ef7031f242d","ff80808180bdf3ac0180d6a17e644137","ff80808180bdf3240180eb05dfac225d","ff80808180f185d401810e88fb292cae","ff80808180bdf3240180ea59a2174b4a","ff80808180bdf3240180eac5258e67b4","ff80808180bdf3240180f0a57f8e6857","ff80808180bdf3240180e5e9dca07b5a","ff80808180bdf3240180e62a9cd115aa","ff8080818019265501803747a6103477","ff808081801926550180362035377ca3","ff80808180192655018031553d3d78f0","ff8080818019265501803205b982582e","ff808081801926550180319a64c71686","ff80808180192655018031edc1fd333d","ff8080817e8ca790017ee3c25b083417","ff808081762e54ce017632bbe2da2f9c","ff8080817e8ca790017ec8e2c86c7da4","ff8080818070b6fe018079ee74ea396e","ff8080817e8ca790017ebfd571562b33","ff808081801926f8018027fcc5f31d02","ff80808180192655018031ca4be173c7","ff8080818019265501803ce901db4092","ff808081801926550180310e45713db8","ff808081801926550180374d8adf3dff","ff8080817f9343b7017faca5299d61ad","ff8080817f9343b7017f9b6b4f9c2900","ff8080817e8ca790017ed763d659251c","ff8080817e8ca790017ed901b5484134","ff8080818070b6fe0180798ef13017e3","ff8080818070b6fe01807a4287ca73d0","ff8080817e8ca790017ee2cf88ca7e42","ff8080817e8ca790017ee2c12e9667aa","ff808081801926550180369ac576029c","ff8080817e8ca790017ec40640c81d2e","ff8080818019265501803688a844596d","ff8080817e8ca790017ed90591834696","ff808081753215f5017549e3626815df","ff8080817e8ca790017ebdfad3743800","ff8080817e8ca790017ed8ab10b54f6a","ff8080818070b6fe01807544c11206a7","ff8080818070b6fe01807583ff305763","ff80808174d550570174e83043f675b6","ff8080817e8ca826017ebea995335394","ff8080817e8ca790017edda87a40508d","ff8080817e8ca790017ec999e95d16e0","ff80808175bd062f0175c16577400151","ff8080818070b6fe01807857311d536d","ff8080818070b6fe01807ac056b30981","ff8080817e8ca790017ebea8f6e94d8c","ff8080817f9343b7017f97cfe7922649","ff8080818070b6680180b296fac7702b","ff8080817f9343b7017fa0afa61472e0","ff80808175321688017536921010240b","ff80808180bdf3ac0180c126dd901806","ff80808180f185d401810ab871c367f7","ff80808180bdf3ac0180c0c56bc524af","ff80808180bdf3240180e0ff8e975161","ff80808180f185d401810a8d20307a34","ff80808180f185d4018109d183c53710","ff80808176af037e0176c749503307dd","ff80808180bdf3ac0180c16fa331537b","ff80808180f185d4018118e7883842f0","ff80808180bdf3240180e66ec4bd2e07","ff80808180bdf3ac0180c1dbc29379c4","ff80808180bdf3240180eb955a116253","ff80808180bdf3ac0180c73237e93024","ff80808180bdf3ac0180c266eb413d28","ff8080818070b6680180a910bff9503a","ff80808180f185d401811daab1270820","ff80808180f185d401810416e20b6235","ff8080817fad19b1017fb5833369098f","ff8080817f9343b7017fa1577d9d39fc","ff80808180f185d4018118f0b7fc535e","ff80808180f185d401811eee2fa9114a","ff8080817e8ca790017ebf55402137a4","ff8080817e8ca826017eb927cd095ca1","ff8080817e8ca790017ec4dd3e4c1e61","ff808081801926f801801c97b5570b76","ff8080817e8ca790017ecd27e9e36277","ff808081801926f801801c65767621cd","ff808081801926550180377ac61b02d0","ff8080817e8ca790017ebebc755473c9","ff8080817e8ca790017ec3ed25406fb7","ff8080817e8ca790017ec2d7b780584d","ff80808174d54f3c01750c2e095b7701","ff8080818070b6fe018079b86fc3226b","ff8080817e8ca826017ebe058f8b48b8","ff80808180192655018031219b426cfd","ff80808180192655018031e2a72b1f1f","ff8080817e8ca790017edd73c3ac79b1","ff8080817e8ca826017ebf6190a44be8","ff8080817e8ca790017ec8d989316c92","ff8080817e8ca826017eb97f96a3702b","ff8080817e8ca790017ec2c127b843a9","ff8080818070b6fe01807ddb9cd305f6","ff80808176af037e0176c378303e7bb1","ff808081801926f80180222ed1c07da9","ff8080817f48cae8017f4f6888b8172c","ff8080818070b6680180a3977a3439b5","ff8080817f9343b7017f978186b34f1d","ff80808180bdf3240180e6202e007eff","ff80808180f185d401810ec7d08a574d","ff80808180bdf3ac0180c130c1d32fc0","ff80808180bdf3ac0180c2eb26d13fe9","ff80808180f185d401811f2c674c1f18","ff8080817f48cc97017f4f7144492412","ff80808180bdf3ac0180db1104554566","ff80808180bdf3240180e6702549313d","ff80808180bdf3240180e17406b6517c","ff80808180bdf3240180e169fe083771","ff80808180bdf3240180e68dcfe77abf","ff80808180bdf3240180e53ea5817fb1","ff80808180f185d4018119b4f4ee0f61","ff80808180bdf3240180f03916f74789","ff80808180bdf3ac0180d07767a84bff","ff8080817fad1a2f017fb174e1446fdd","ff80808180bdf3ac0180c1a628376503","ff8080818070b6fe018079d23eb37404","ff8080817f48cc97017f4ea817b0296d","ff80808180f185d4018113766a2b0e6c","ff80808180bdf3240180eb5989b86358","ff80808180bdf3240180ea76326b102f","ff80808180bdf3240180e4c845761007","ff80808180f185d4018109ac190945e4","ff8080817f9343b7017f9822dbd77691","ff80808180f185d40181054788f969d0","ff80808180bdf3ac0180c79521ce5eda","ff808081801926f801802c4f7fcf5cd7","ff80808180bdf3240180e9b76747061e","ff80808180bdf3240180eaddabe537d5","ff80808180bdf3240180e65fa90809cc","ff8080817f9343b7017fa194d61d41de","ff80808180f185d401811a13659d6382","ff8080818070b6680180b3157ab80f8f","ff8080817fad19b1017fba8337bb6cc7","ff80808180bdf3ac0180c271503f565a","ff80808180f185d401810a5feee90d76","ff80808180bdf3240180ea0dccc8363a","ff80808180bdf3ac0180c26cd2864c7f","ff80808180bdf3240180e5e0311c61b4","ff8080818070b6680180acb310285fab","ff80808180f185d401811e4f5b1c7ad8","ff80808180f185d401811e5bb0bc2d4b","ff80808180f185d401810890c1cd6052","ff80808180bdf3240180e5fbca1f2a48","ff80808180bdf3ac0180da4f92d5351d","ff80808180f185d401811e56f844215c","ff8080817fad1916017fb66bcfee4a1d","ff80808180bdf3240180eaf6821d7a60","ff8080818070b6680180a7695f2f29f2","ff8080817fad1a2f017fb5e5934d14e0","ff80808180bdf3240180e6b24f455444","ff80808180f185d4018105b6e6953a05","ff8080817f50ff14017f580d51773be4","ff80808180bdf3ac0180c065a6a56b8e","ff80808180bdf3ac0180dfc51c7d657e","ff8080817f9343b7017f97f1c3694e0b","ff8080817f9343b7017fabbf9ee00175","ff80808180bdf3ac0180c776e562298d","ff80808180bdf3ac0180c12fcf422de3","ff80808180f185d401810fb2c2e82cb7","ff80808180f185d401810ef417eb5ae4","ff80808180bdf3ac0180c5d9694442a5","ff80808180f185d40181055e785313f0","ff80808180bdf3240180e16351f127a1","ff8080817f50ff14017f585afe747b06","ff80808180bdf3240180ea78bb8816b3","ff8080818070b6fe01807f1bf8aa2f6d","ff8080818070b6680180a86368580669","ff80808180f185d401810a2d651b1ee2","ff80808180bdf3240180f0d48876383c","ff8080817f9343b7017f97188bfd5057","ff8080818070b6fe0180791d7b1904b2","ff808081801926f8018026685c9a60c2","ff80808180192655018035f81124387a","ff8080817e8ca826017eb96f5d72540f","ff8080817e8ca826017eb35365ce52f6","ff808081801926f801801cb632d853ad","ff808081801926f8018027f432470fca","ff8080818070b6fe018078cf54844a84","ff80808180bdf3240180ea93272b5c6e","ff80808180f185d40181149e1d9b1c5b","ff80808174d54fce0174e7e9d4e50085","ff80808180bdf3ac0180dba76ed51ebb","ff80808180bdf3ac0180ccbeb5695d6f","ff80808180f185d401810f1b9dec4d98","ff808081811f999801811fb26ce10ed3","ff80808180bdf3ac0180dffade5a3e86","ff80808180bdf3240180e53bcaf17953","ff80808176cea25e0176e60c49bd4a67","ff80808180f185d4018109c2246c0f61","ff80808180bdf3ac0180db8c153c6f22","ff8080817f50ff14017f59037d266632","ff80808180f185d401811a5f9f5f061d","ff80808180bdf3240180db4047693bd2","ff8080818070b6680180b2307258265d","ff80808180bdf3ac0180cbd752241989","ff8080818070b6680180b201c5f14448","ff80808180f185d401811eb94c481ee6","ff8080817fad1a2f017fb608bb55447a","ff8080817f9343b7017f9cf016941aa3","ff80808180f185d401810ac67968096e","ff80808180bdf3240180e5b8f95770d8","ff808081801926f8018022259bfe6714","ff8080817f48cb75017f49a491e77c49","ff8080818070b6fe01807dea5a8828c1","ff8080818070b6fe01807e84d8c93361","ff8080818019265501803135a52f1b78","ff80808180192655018031a533d72e0f","ff8080817f48cc97017f4e4e84c35c16","ff8080818019265501803b54319c1111","ff808081801926f8018020fe18852b40","ff80808180bdf3240180dbcfc1145ca4","ff80808180bdf3ac0180d66729665d19","ff80808180bdf3240180ea8b34c34558","ff8080817f9343b7017f9744eb1a0684","ff80808180bdf3ac0180c0fae2c2781a","ff8080817f9343b7017fa12c826662f6","ff8080818070b6680180a803d3a104a4","ff80808180bdf3ac0180c2598f141d95","ff80808180bdf3240180dc7d638039c4","ff8080817f9343b7017fa1436bc3108f","ff80808180f185d401811e4fa1f07c2f","ff8080817fad19b1017fbba362742931","ff80808180bdf3ac0180c298bbd525a8","ff80808180f185d401810e7b7a250993","ff80808180bdf3ac0180c6b78cb013f2","ff80808180bdf3240180e04313036198","ff80808180bdf3ac0180d0eb2dc6665a","ff8080818070b6680180b171d0077129","ff80808180f185d401811f5d298d1513","ff80808180f185d40181097c4b6c4743","ff8080818070b6680180ac5e1e1e43b3","ff80808180f185d401810f42a80b2ba2","ff80808180f185d4018109091bc34d83","ff80808180bdf3240180dc54f5227acb","ff80808180bdf3ac0180c670015d5c2b","ff8080817fad1a2f017fb07d0ed821e4","ff8080817f48cae8017f4f0177113cd5","ff80808180bdf3240180e0081b095c12","ff80808180bdf3240180ea3b96af0b35","ff8080817f50ff14017f592163f733e0","ff80808180bdf3ac0180dc4b22e464ee","ff8080817e8ca790017ebe67b9355027","ff80808180f185d401810ee4436b2d79","ff80808180bdf3ac0180c17db3be79e0","ff80808180bdf3ac0180cbac80545f2a","ff8080818070b6680180aca1cb4e44b0","ff80808180bdf3240180eb68f6eb0439","ff80808180bdf3240180dc4a40d16483","ff80808180bdf3240180ea3cc7c10d72","ff80808180bdf3240180e61dcbd8797c","ff80808180f185d401810f6b9ef1098d","ff80808180bdf3ac0180d624fa345fb1","ff80808180f185d401810e40ce22035e","ff80808180bdf3240180e531cc6263ae","ff80808180bdf3240180e4bd61727a8d","ff80808180bdf3240180e06ecd183f3d","ff8080817fad1a2f017faffe062570b1","ff8080817fad1916017fb0ecc7d45332","ff8080817f48cc97017f4e5de19700dc","ff8080817f48cb75017f4edf1817792d","ff8080817f48cb75017f4eb1016c2d47","ff8080817f48cae8017f4f7c969e3c0d","ff80808180f185d401810fc8b2c45e09","ff80808180bdf3240180f11747bf13c4","ff80808180f185d401810a1cafe779d7","ff8080817fad1a2f017fb58470d31038","ff8080817f9343b7017fab7d054c20e8","ff80808175bd05a70175cb357da17413","ff80808180bdf3ac0180c66453d9426e","ff8080818070b6680180a84e528871a2","ff8080817f48cb75017f4a1d0e2e4be0","ff80808180bdf3ac0180d758d6c27d54","ff80808180bdf3240180ea3d1be30e13","ff80808180bdf3240180e0e223061c09","ff80808180bdf3240180e9e8aa4971ac","ff80808180f185d401811d802b6138c6","ff80808180f185d4018119ee19750326","ff80808180f185d401810acc6d041668","ff80808180bdf3ac0180d02e1ee77d59","ff80808180f185d401810a4303084da7","ff8080817fad1a2f017fb13271923196","ff8080817f9343b7017fa6b109cb6797","ff8080818070b6680180a381d5dd0e54","ff80808180bdf3ac0180cb44cae66931","ff80808180bdf3ac0180c11687687277","ff8080817f48cc10017f4faa931b6e9b","ff80808180bdf3ac0180c58951d60853","ff80808180f185d401810a572d2e7965","ff80808180bdf3240180eb569a685dfd","ff80808176cea25e017709e6ea4c1f23","ff8080817fad1a2f017fbb3543e1235e","ff80808180bdf3240180e6152a9c66cb","ff8080818070b6680180a73fadb0629c","ff8080818070b6680180a32fd9a279aa","ff80808180f185d4018108ea208e1289","ff80808180bdf3240180eff6a3d04fee","ff80808180bdf3ac0180daa5a06a36fd","ff80808180f185d401811f336b8d3143","ff80808180bdf3240180dc27eec10fff","ff80808180f185d401811d9f4d12739c","ff80808180bdf3ac0180c1aa63e47020","ff80808180bdf3240180ebe0a9e77a8d","ff80808180bdf3240180eaaf04262995","ff80808180bdf3ac0180c04f63404598","ff80808180bdf3240180eaf5a724780d","ff80808180bdf3ac0180c071cd1d0468","ff80808180f185d401810a6e73022e6e","ff80808180f185d40181098590e95d3b","ff8080818070b6680180b137501d617b","ff80808180f185d401810ef21b5f5502","ff80808180f185d4018113c2d4583186","ff80808180192655018030f318900901","ff8080817e8ca790017ed89a5e703946","ff80808180192655018031f947e74552","ff808081801926f801801ce631374f3d","ff808081801926f801802c08cb3f5b5a","ff8080818070b6fe01807528d3a8266b","ff8080817e8ca790017eddace6b256fb","ff80808180192655018031d0144f7e1d","ff8080818070b6fe0180753b1bcb6b3e","ff8080817e8ca790017ec8b717542b56","ff8080817e8ca790017ec3f35cda7b83","ff8080817e8ca790017ec86297a620d3","ff80808180192655018031ddb6f51754","ff8080818070b6fe0180757556cd3739","ff8080817e8ca790017ec92ea35f0a8b","ff8080817e8ca790017eddd848bf14d2","ff8080817f48cb75017f49972329621e","ff8080817e8ca790017ec2ad904a32ae","ff8080818070b6fe01807f238ea74177","ff8080817f48cc97017f4aa1556e1179","ff8080817f48cb75017f4a43dbc50705","ff8080817f48cc10017f4f5a11be7721","ff8080817f50ff14017f581ca63c085c","ff80808180bdf3ac0180c0f1e4486898","ff80808180f185d4018109def68b5c5d","ff808081745486b1017494256f077541","ff80808180f185d401810442509826f0","ff8080817f9343b7017fa6bafbca7693","ff8080818070b6680180a8da09a9167b","ff80808180bdf3240180ee98b6746761","ff8080817fad1916017fbbc948995552","ff80808180bdf3ac0180c100da890559","ff80808180bdf3ac0180dbae5e3228b2","ff80808180f185d4018118b0adf949a2","ff80808180f185d401811e6a9e6d589c","ff80808180bdf3240180e1630bed26f5","ff80808180bdf3ac0180c658fcca2c2b","ff80808180bdf3240180e1a1e39740ba","ff80808180f185d401810a92df4b0953","ff80808180bdf3ac0180cbbd4ccd2e29","ff80808180f185d401811e402e004258","ff80808180f185d401810a74cd243e48","ff80808180f185d401810db2328d66e5","ff80808180f185d401811f5ee76c19a4","ff80808180f185d401811e0de0b7744c","ff8080817e8ca790017ed85b60f95a09","ff808081801926f801801c8593165aee","ff8080818070b6fe01807edc953076d8","ff8080818070b6fe01807e45a91459d0","ff8080817f48cc97017f4e7a79b25f66","ff80808180bdf3240180f022b7511084","ff80808180f185d4018109fcb6ea2df0","ff8080818070b6680180a6e0a8d8753e","ff80808180bdf3240180e46147674a6d","ff80808180f185d401810abe90cb766a","ff80808180bdf3ac0180c62bbd7454bf","ff80808180f185d401811f59d8ea0dc8","ff80808180bdf3ac0180dfb0eef34098","ff80808180bdf3240180e1a8eae54fe8","ff80808180bdf3240180df74a46d1103","ff8080817fad19b1017fb1a8e82f1fe3","ff80808180bdf3ac0180c79e05ab6f85","ff80808180f185d4018114af0fd43cb4","ff80808180bdf3ac0180d058bff12b1b","ff80808180bdf3240180ef25a41e317c","ff80808180f185d401811e20dad32cac","ff80808180f185d40181199b3bd562cd","ff80808180bdf3240180e5e582f36f3b","ff8080817f9343b7017f96b77a284057","ff80808180bdf3240180e5fdae3f2f6e","ff80808180bdf3ac0180cbac328e5eb5","ff8080818070b6680180adb3519a396b","ff8080817f9343b7017fa69b3e2e48de","ff8080817f50ff14017f58f0af483477","ff80808180bdf3ac0180c0d1953136ea","ff80808180bdf3240180e5350ad46b20","ff80808180f185d401811dcb310948b3","ff80808180bdf3240180eb252d9874c9","ff80808180bdf3240180e5cce4db2a7d","ff80808180bdf3240180e0db05830ff7","ff80808180bdf3240180dba6e9c21edf","ff80808180f185d401811a4e76ec6b3d","ff80808180f185d401811d21e0c55c47","ff8080817f48cc97017f4a7221ec4fbc","ff8080817e8ca826017eb50f0e1c429e","ff8080817e8ca790017ed823cb1106f7","ff8080817f48cc10017f4fa5a5076617","ff80808180bdf3240180e496a14b2a37","ff80808180bdf3ac0180c244af9371b9","ff8080817f48cc97017f4f15d675733f","ff80808180f185d4018114bd47755513","ff80808180f185d401810e1d3b3e3f06","ff80808180bdf3240180e0c2d41d5a70","ff80808180bdf3ac0180cb08c37e2192","ff8080817f9343b7017f973845ee73b3","ff80808180bdf3ac0180cb636f6d1122","ff80808180f185d401810ad322462594","ff80808180f185d4018118ce8d840dac","ff80808180f185d401810972adc33019","ff8080817f48cc10017f4e06affd0127","ff8080817f9343b7017fa0e2a9ea4ee9","ff80808180bdf3240180ea38576904db","ff80808180bdf3240180eacc53877d3b","ff80808180bdf3240180e02acc4d2ad7","ff80808180f185d4018109cc522a28ff","ff80808180bdf3240180eb311ef90f13","ff80808180bdf3240180eebf6edc0a64","ff80808180bdf3240180df3b45e869c8","ff80808174d550e50174fd01efbf0c62","ff80808180f185d4018113a16db54fad","ff80808180f185d401810a7bc4b75084","ff80808180f185d4018108fdd8ff397c","ff8080817f9343b7017fac25d88d700d","ff8080818070b6fe01807f1cbcc23148","ff80808180f185d401810984aec75b1d","ff80808180f185d401810f33f93909fc","ff80808180bdf3240180eaf794147d3a","ff80808180f185d40181191818e43318","ff80808180f185d401811f507a6b77cb","ff8080817f9343b7017fa18068020c1e","ff8080818070b6680180a8ae0f295b9e","ff80808180f185d401810927725e05aa","ff8080817f48cc10017f4f002b6030be","ff80808180f185d4018119ad5489031e","ff80808180bdf3240180e5dcff0f591d","ff80808180f185d401810952662b5f70","ff80808180bdf3240180e59b4af11e25","ff80808176cea401017700c9e4962c55","ff80808180bdf3240180eab9636b4580","ff80808180f185d4018114289f5057a3","ff80808180bdf3240180eb7f65f132e4","ff80808180f185d401811e21c4d4308c","ff80808180f185d401811857aea028a9","ff80808180f185d401811dd98cea755d","ff80808180bdf3ac0180df7beefb2962","ff808081767149680176941323ba7ead","ff80808180f185d401811a1f367a0115","ff8080817f9343b7017fa5b7609f398d","ff8080817f9343b7017f97cb00ef207a","ff80808180f185d401810f12c5e63526","ff80808180f185d4018114a4f5272826","ff80808180bdf3ac0180cad7bee95451","ff8080817fad1916017fb688b8cd6439","ff80808180f185d401810dd8c81e37cb","ff80808180f185d4018109645b000d17","ff80808180f185d401810ade267a3918","ff80808180bdf3ac0180dc43bba35761","ff8080817e8ca790017ebedb04ce2844","ff80808180f185d401811e86cc4c2ce7","ff8080817f9343b7017fa6294a7b7a88","ff80808180f185d401810a2394d20a65","ff80808180f185d40181098e1add73d7","ff80808180bdf3ac0180c21a0e0f1394","ff80808180bdf3240180e60a780c4e4e","ff80808180bdf3ac0180c1366fec3d66","ff80808180f185d401810944b0a140cf","ff80808180f185d401810ee64fbc3426","ff80808180f185d401810f2608906914","ff80808176cea48f01770fe0ff6c15d1","ff80808180f185d40181095b868f741f","ff80808180f185d40181095b00cb72cf","ff80808180f185d4018103c697500554","ff80808180f185d401811962834b69bc","ff80808180f185d401811d620df07238","ff8080818070b6fe01807ecacac43863","ff8080817f48cb75017f4a79a7325024","ff8080817f48cb75017f49a0c74a74bb","ff80808176cea2e8017714afd1c90537","ff8080817e8ca790017ec98e807f082b","ff80808180bdf3ac0180c076ac850dea","ff80808180bdf3ac0180c7c08ec12a80","ff80808180f185d401811dc512ac3ad6","ff80808180bdf3ac0180c15e4f2b2396","ff80808180bdf3240180ef45c7235023","ff80808180f185d40181147388d25e64","ff80808180f185d40181182dff036d83","ff80808180bdf3240180ef955e8f6e53","ff80808180f185d4018103b41ca512ea","ff80808180bdf3ac0180c1e876031902","ff80808180f185d401811d6d63b00cf1","ff8080817fad19b1017fb63dde7d0f3a","ff80808180bdf3ac0180c19ab0fd471a","ff80808180f185d40181042c630401b7","ff80808180f185d401810550a9887a62","ff8080817f9343b7017faca823686368","ff80808180f185d401811ea8dedc3884","ff80808180bdf3240180e1262e1b1bbd","ff80808180f185d401811f22a4d209f1","ff80808180f185d40181184be3c419de","ff80808180f185d401811e44b53f4f81","ff80808180f185d401810e4806471218","ff80808180f185d4018103e84a2f18e5","ff80808180bdf3ac0180c22fecf4474b","ff80808180f185d4018113ee10973491","ff80808180bdf3240180e66f52732f43","ff80808180bdf3240180e66bf8ce2693","ff80808180bdf3ac0180dbae30162854","ff80808180bdf3240180eada4da92ec0","ff80808180bdf3ac0180dfe3e261145a","ff80808180bdf3ac0180cb7b1030490e","ff80808180bdf3ac0180d05a8d762d18","ff8080818070b6680180acf2bf31547a","ff80808180f185d401810e1044c228a3","ff80808180bdf3240180ebb0e8d81e3c","ff80808180bdf3240180eb718f311565","ff80808180bdf3240180e6db512a2299","ff80808180f185d401810effa92c7c5e","ff80808180bdf3ac0180c220a19621a6","ff80808180f185d401810ab51cfb6009","ff80808180f185d40181048890f94735","ff80808180bdf3240180e5b83cc26ee9","ff80808180bdf3240180e1239cee16f4","ff80808180f185d4018103f423e12abd","ff80808180f185d401811ee953b607a1","ff80808180f185d40181188dbe7f7418","ff80808180f185d401811f58aff40afe","ff80808180bdf3240180dade7d404747","ff80808180bdf3240180eba358f700cd","ff80808180bdf3240180efce1d194f26","ff80808180f185d401811f1328b3653e","ff80808180f185d4018113e64cd626a8","ff80808180bdf3240180eb2f75120b66","ff80808180bdf3ac0180c6f335c12bb7","ff80808180bdf3240180ef06482f0a97","ff80808180f185d4018119598c6d55d9","ff80808180f185d40181055bc6780eb0","ff80808180bdf3240180e1199630050b","ff80808180f185d401810b03bc8e6a59","ff8080817f48cae8017f4fd2269a3c53","ff8080817f48cb75017f4fd8c9a838d4","ff80808176af025a0176c267f6070454","ff8080817f48cae8017f4fd8e0854718","ff80808180bdf3240180e53c7f287ae4","ff80808180f185d4018104f83cec666b","ff80808180bdf3240180eb7a159326f6","ff80808180bdf3240180e6427c2a47ee","ff80808180f185d401810ef4d41c5d2b","ff80808180f185d4018118c7e59a0327","ff80808180f185d401810ec864e55874","ff80808176af037e0176cc6c341e7f0d","ff80808180bdf3240180ea7280c9063f","ff8080818070b6680180a39d8ea945e9","ff8080817fad19b1017fb1bea0c13165","ff8080817e8ca790017ee333f2ca7c48","ff8080818070b6680180a3a562bb556b","ff80808180bdf3240180eaf7aba57d92","ff80808180f185d401810a9df38d268a","ff8080817e8ca790017edcc25b4a14d0","ff80808180bdf3240180e0b60db33be2","ff80808180bdf3ac0180c5bdbd127708","ff8080817fad19b1017fb050ae5456ae","ff8080817f9343b7017fa153c38631f3","ff80808180bdf3240180e1a9b5725121","ff80808180f185d401810ab402fc5d83","ff80808180f185d40181195bbfe65ba7","ff80808180bdf3240180e165ac6f2d5e","ff80808180f185d4018119506af93fa6","ff80808180bdf3240180e10049485328","ff80808180f185d401811d5a49c36380","ff80808180bdf3240180db6071671228","ff8080818070b6680180adec9d117a1a","ff80808180f185d401810a02a2343d38","ff80808180bdf3240180e9c3f8bb21c7","ff80808180bdf3ac0180c271403d5631","ff80808180bdf3ac0180d6fc02f64d40","ff80808180bdf3ac0180c266e3da3d11","ff80808180bdf3240180ebdc4c6e73d3","ff80808180bdf3ac0180c5c80445245f","ff80808180bdf3ac0180c08b761738de","ff80808180bdf3240180e1d34c6a1fc8","ff80808180bdf3240180eb3f827f2e8e","ff8080817f48cb75017f4edf36b2794d","ff80808180bdf3240180e9ff2f731bd7","ff80808180f185d401811d8a924f4c4d","ff80808180bdf3240180dc2211216f1b","ff80808180bdf3ac0180d0ecf35d68d5","ff8080817f9343b7017fab75951d1765","ff80808180f185d401810ea2efd3724a","ff8080817f50ff14017f58e68c77187a","ff80808180f185d40181191dd8583eff","ff8080817f9343b7017fa5ee81080cfd","ff80808180f185d401811df0acee3147","ff80808180f185d401810a54dad3741b","ff80808180f185d40181059928da0700","ff80808180f185d40181052d3c3a3cb7","ff80808180f185d401811d8ff5805636","ff80808180bdf3240180dbf93f041e86","ff80808180bdf3240180dbfff6b92af4","ff8080817f9343b7017fa60d1cb644fb","ff80808180bdf3ac0180c6d45cf15ded","ff80808180f185d4018118c1d0f570ed","ff80808180bdf3240180dc5421b3792a","ff8080817fad1916017fb6854b4a6145","ff8080818070b6680180a339a9dc0ab1","ff8080817e8ca826017eba3a11fb5f4d","ff80808180f185d401810f8517224503","ff80808180bdf3240180e51fe6503df8","ff80808180bdf3ac0180c155e2ac0d26","ff80808180bdf3240180ebc0239c3dc9","ff80808180bdf3ac0180c25347bf111b","ff8080817f50ff14017f53aef7ed448a","ff80808180bdf3240180f04f4575552d","ff80808180f185d4018109323bee1b0c","ff8080817f9343b7017fa25aaa5214d1","ff80808180f185d4018104cff2b61538","ff80808180f185d4018104d359e11ae2","ff8080817f48cc10017f4f9b649e5769","ff80808180bdf3240180e52107624052","ff8080817550da180175985bdf8a63a3","ff80808180f185d401810aa5701638b2","ff80808180f185d401810ab422a85dcb","ff8080817f48cb75017f4e45b85c457f","ff80808180f185d401810a4154a149ec","ff80808180f185d401810f48cec93977","ff80808180bdf3240180db49f0c9597e","ff8080817f9343b7017fa6bb8abf779e","ff80808180f185d401811a24f5770d64","ff8080817fad19b1017fbae679f81c0c","ff80808180bdf3240180dc1ceac665b5","ff8080817f9343b7017fa58152d1704c","ff80808180bdf3ac0180c78b79ee4c92","ff80808180bdf3ac0180c569db5021bc","ff8080817f9343b7017f96e5e9c0187e","ff80808180bdf3240180dff4052f2e96","ff80808180bdf3240180e06e4fdb3d28","ff80808180bdf3240180dffdb84a4290","ff80808180bdf3ac0180e01b6cff1097","ff8080818070b6680180add623f55f99","ff80808180bdf3240180e5bfcdcd047e","ff8080817f48cc10017f495510ac6f82","ff80808180bdf3ac0180c0ae92c87d97","ff8080817e8ca790017ec3a601266920","ff80808180bdf3ac0180c260ae4d2fde","ff8080817f48cae8017f4f6d62202349","ff80808180bdf3ac0180dc3f94254fca","ff80808180f185d401811edae93569a0","ff80808180bdf3240180daec39195ffc","ff80808180bdf3ac0180cc25e6e61276","ff80808180bdf3240180dff5bb8731eb","ff80808180bdf3240180e58f44867d6a","ff80808180f185d401810f231d146128","ff80808180f185d4018105ac55f0298f","ff80808180bdf3240180e6456aca4e7f","ff8080818070b6680180a35f1c914cf7","ff80808180bdf3240180dfe1ee6f0e52","ff80808180f185d401810f6039e47191","ff80808180bdf3ac0180dfa0a00825fa","ff80808176af02e80176b7ace68b76c5","ff80808180bdf3ac0180d7238bf3141a","ff80808180bdf3240180dfc1b6255df5","ff80808176cea25e0176e53daf6363a4","ff80808180bdf3ac0180c77c01273262","ff80808180bdf3ac0180d2092bbf5be5","ff80808180f185d401810ec2e8c54948","ff8080817fad1916017fba667a5c1851","ff80808180f185d4018109f8f084235c","ff80808180f185d4018113ce7dd074e1","ff8080817e8ca826017ea9b8f2172cb7","ff8080817f48cc10017f4ff9eef06506","ff80808180f185d401811d92c5165b41","ff8080818070b6680180a3afd21c688d","ff8080817f9343b7017f97ca35651f82","ff808081801926f8018027748b296ce9","ff80808180f185d401810e3ff34201ed","ff80808180f185d401811d9f2daa7355","ff80808180bdf3240180ead24ac618be","ff8080817f9343b7017fa14b768720fe","ff80808180f185d401810524ed083014","ff80808180bdf3240180e6a5b1923637","ff80808180f185d401810a93931b0b55","ff8080818070b6680180acfd38af627c","ff80808180bdf3240180e58c330d7522","ff80808180f185d401811e185c9b1035","ff80808180f185d401811d3d1304273d","ff80808180f185d401811ec007e8353c","ff8080817fad1a2f017fbb83030b0cbf","ff80808180bdf3ac0180c6894d591d31","ff80808180bdf3ac0180dc8a69684a35","ff80808180bdf3240180e517273d29b5","ff80808180f185d40181194470fc26cb","ff80808180bdf3ac0180cb53e47b7b8c","ff80808180f185d401810e146d272fa1","ff80808180f185d40181047b67f72f15","ff80808180f185d4018104e9e92543bc","ff80808180bdf3240180dc7f62733c2d","ff80808180bdf3240180e19eac2a39ba","ff8080817fad19b1017fb014d4800e12","ff80808176af02e80176c742b3ca149b","ff80808180f185d401810eee6d1b49e3","ff80808180f185d401810996e2ae0b29","ff80808180f185d401811821a16c3332","ff80808180bdf3240180dc18940c5c50","ff80808180f185d401810e0dcc9b247e","ff8080817f9343b7017fa03eefd46311","ff80808180f185d401811818d8e3067e","ff80808180f185d40181040ca2784f6f","ff8080818070b6680180ad34dc452a8e","ff8080817f48cc97017f4eb6e2af3d89","ff80808180bdf3ac0180e00bf4bd6685","ff80808180f185d401810f434bbc2d14","ff80808180f185d401810926f68a04c6","ff80808180f185d401810a81048e5cfd","ff80808180bdf3240180e491d95720af","ff80808180f185d401810a1f37a10007","ff80808180bdf3240180e9db25d6556a","ff80808180bdf3240180e58fd1337eef","ff808081811f999801811fa65f3b0754","ff80808180bdf3240180e0fbb40e4963","ff80808180f185d401811dd45d3862fa","ff80808180f185d401810413d4085cbf","ff80808180f185d4018109bbb3547d6e","ff8080817f9343b7017f9c612f2d5193","ff80808180bdf3ac0180dc3ab6674797","ff80808180bdf3ac0180d5c0a99c236b","ff80808180f185d4018112ef7fb234eb","ff80808180bdf3240180e67ceaf150a2","ff8080818070b6680180b28b870d645f","ff8080818070b6680180ac72bc38762b","ff80808180bdf3240180ebc072753e8f","ff80808180f185d401811ce3ace263a2","ff80808180bdf3240180f11523e4113b","ff80808180bdf3240180e0f4f0cc3dd5","ff80808180bdf3ac0180dbdcda837441","ff80808180bdf3240180e58b09a071c9","ff80808180bdf3240180eff6ab615005","ff80808180f185d401810ec2c1fd48d0","ff80808180f185d401811f329f9f2ea3","ff80808180f185d401811e88dfd733ca","ff80808180f185d40181053c082d556a","ff80808180bdf3ac0180cc56d04d5dad","ff80808180bdf3240180e0352e9d424b","ff8080817f9343b7017f9c66841d5811","ff80808180f185d4018109d471633f65") ;
List<String> clerkIdList= Arrays.asList("d4536d11274c4dc3a704c960ba02aaa9","f936be255e954c87b759d1f131dfd75e","7f9503741e0943009cf8fb0afe1358a4","d8f16b50c30b4c3fbc11147378fc8d9a","f81573e89ed7452eaa7650eee6b5c96e","d8f16b50c30b4c3fbc11147378fc8d9a","125d5d4ca74247bda905502bb742026f","f81573e89ed7452eaa7650eee6b5c96e","cf36d36f874643c79133049cb4474ff1","ec390c73fb8140cea4ee51dc6b84894b","8e3209471112441795197a9e41bf121f","2bb911119079450aa9c19c04c59a7255","d6f100e0c858450c8ba0685cef3cd3c4","0259e40c2c2147a9b68423caa290f58b","f936be255e954c87b759d1f131dfd75e","e63410c2b6d6476ea260002cd791b293","125d5d4ca74247bda905502bb742026f","cdaae4aba64b4f049d9fc3d659a5ed58","f936be255e954c87b759d1f131dfd75e","bb5b1823ea0e452f9b51379d4239dedf","2d77e27a45d54ceab0337e4a9127814a","d8f16b50c30b4c3fbc11147378fc8d9a","f936be255e954c87b759d1f131dfd75e","72aa0c00628b422b922db277a8cf00f8","8e3209471112441795197a9e41bf121f","ec390c73fb8140cea4ee51dc6b84894b","3a02ce328dcd48bea280271888f77cff","2a0dc64c71eb410fb2eb77c77f3db194","5667940e1ff041eeb7269f162372d077","8e3209471112441795197a9e41bf121f","a0af652d34914526ab3f7eda5d75b51c","e5be5a1a19cc407cb8802dda2a379ebf","d4536d11274c4dc3a704c960ba02aaa9","d4536d11274c4dc3a704c960ba02aaa9","6ff720696e174f5aade0560569a0e460","ed39eb4e67504b67826e32fa5803240b","8e3209471112441795197a9e41bf121f","906e3736f164468989cdcfe55ba61c31","bcb206d798954913a687399df02af7ea","906e3736f164468989cdcfe55ba61c31","d8f16b50c30b4c3fbc11147378fc8d9a","d8f16b50c30b4c3fbc11147378fc8d9a","3a02ce328dcd48bea280271888f77cff","827871bdaa074ac58298b86c55871966","bcb206d798954913a687399df02af7ea","d8f16b50c30b4c3fbc11147378fc8d9a","3a02ce328dcd48bea280271888f77cff","f936be255e954c87b759d1f131dfd75e","dfd60ba2eae14a3b898fdb8f438542c9","f936be255e954c87b759d1f131dfd75e","5667940e1ff041eeb7269f162372d077","ec390c73fb8140cea4ee51dc6b84894b","f936be255e954c87b759d1f131dfd75e","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","5667940e1ff041eeb7269f162372d077","5cca1edb2029466bb9f2c69f243d625d","827871bdaa074ac58298b86c55871966","3a02ce328dcd48bea280271888f77cff","5667940e1ff041eeb7269f162372d077","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","724acbf278a94bea910a04e457194337","67d43a54fb124085923fd9aa04ce9077","8e3209471112441795197a9e41bf121f","67d43a54fb124085923fd9aa04ce9077","9ddfefd212c84828a5dedbc3b4216131","d8f16b50c30b4c3fbc11147378fc8d9a","6485a3de3c154128907e95f53f42e03a","377b49b3641d44e5b3229166e7ee918e","6ff720696e174f5aade0560569a0e460","df13a9730dac45f18dee2dc65af67f05","bb5b1823ea0e452f9b51379d4239dedf","5cca1edb2029466bb9f2c69f243d625d","d6f100e0c858450c8ba0685cef3cd3c4","366941b30ceb498796440b4cf2c95667","f936be255e954c87b759d1f131dfd75e","d8f16b50c30b4c3fbc11147378fc8d9a","906e3736f164468989cdcfe55ba61c31","d8f16b50c30b4c3fbc11147378fc8d9a","ed39eb4e67504b67826e32fa5803240b","f936be255e954c87b759d1f131dfd75e","cf36d36f874643c79133049cb4474ff1","906e3736f164468989cdcfe55ba61c31","cf36d36f874643c79133049cb4474ff1","96383b8f6e2e4672b9981b5e2710377f","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","5667940e1ff041eeb7269f162372d077","cf36d36f874643c79133049cb4474ff1","710b667145bc4a5ca34c2dcaaeea3c6a","7dbe27d916714855b16584f187e7053e","f936be255e954c87b759d1f131dfd75e","3a5ddd1b9c454a1d9a2f73a832795553","dbe2c19393dc48da92fa6c562b5ab74d","cdaae4aba64b4f049d9fc3d659a5ed58","ec390c73fb8140cea4ee51dc6b84894b","67d43a54fb124085923fd9aa04ce9077","f81573e89ed7452eaa7650eee6b5c96e","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","cdaae4aba64b4f049d9fc3d659a5ed58","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","d8f16b50c30b4c3fbc11147378fc8d9a","710b667145bc4a5ca34c2dcaaeea3c6a","7f9503741e0943009cf8fb0afe1358a4","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","5cca1edb2029466bb9f2c69f243d625d","67d43a54fb124085923fd9aa04ce9077","5dd9261cf4484955b07fa6ad0f99831e","d6f100e0c858450c8ba0685cef3cd3c4","67d43a54fb124085923fd9aa04ce9077","d8f16b50c30b4c3fbc11147378fc8d9a","d8f16b50c30b4c3fbc11147378fc8d9a","67d43a54fb124085923fd9aa04ce9077","8e3209471112441795197a9e41bf121f","377b49b3641d44e5b3229166e7ee918e","6485a3de3c154128907e95f53f42e03a","710b667145bc4a5ca34c2dcaaeea3c6a","262868e633f1444390cbf9a144e01824","67d43a54fb124085923fd9aa04ce9077","72aa0c00628b422b922db277a8cf00f8","67d43a54fb124085923fd9aa04ce9077","e5be5a1a19cc407cb8802dda2a379ebf","366941b30ceb498796440b4cf2c95667","cde34087dae246e6b12425e99ee61419","cde34087dae246e6b12425e99ee61419","8e3209471112441795197a9e41bf121f","8e3209471112441795197a9e41bf121f","dbe2c19393dc48da92fa6c562b5ab74d","71a582df5997443d9c8728a9ca0cbf11","72aa0c00628b422b922db277a8cf00f8","7dbe27d916714855b16584f187e7053e","71a582df5997443d9c8728a9ca0cbf11","5cca1edb2029466bb9f2c69f243d625d","7dbe27d916714855b16584f187e7053e","15e1e033d85f47c29f1fee8ecea79e3e","a0af652d34914526ab3f7eda5d75b51c","8e3209471112441795197a9e41bf121f","e5be5a1a19cc407cb8802dda2a379ebf","dfd60ba2eae14a3b898fdb8f438542c9","0259e40c2c2147a9b68423caa290f58b","d6f100e0c858450c8ba0685cef3cd3c4","ec390c73fb8140cea4ee51dc6b84894b","710b667145bc4a5ca34c2dcaaeea3c6a","5667940e1ff041eeb7269f162372d077","67d43a54fb124085923fd9aa04ce9077","8e3209471112441795197a9e41bf121f","5667940e1ff041eeb7269f162372d077","f936be255e954c87b759d1f131dfd75e","f936be255e954c87b759d1f131dfd75e","5667940e1ff041eeb7269f162372d077","6485a3de3c154128907e95f53f42e03a","8e3209471112441795197a9e41bf121f","8e3209471112441795197a9e41bf121f","7f9503741e0943009cf8fb0afe1358a4","67d43a54fb124085923fd9aa04ce9077","cf36d36f874643c79133049cb4474ff1","5cca1edb2029466bb9f2c69f243d625d","8e3209471112441795197a9e41bf121f","6485a3de3c154128907e95f53f42e03a","5667940e1ff041eeb7269f162372d077","d8f16b50c30b4c3fbc11147378fc8d9a","7f9503741e0943009cf8fb0afe1358a4","3a02ce328dcd48bea280271888f77cff","cf36d36f874643c79133049cb4474ff1","d85ae66b21444fde82205f101701c23b","8e3209471112441795197a9e41bf121f","377b49b3641d44e5b3229166e7ee918e","ba2f7de09f11449e9d38e0ea9811efcc","19ec5671dfb24317a0ba75b874fed715","5cca1edb2029466bb9f2c69f243d625d","7f9503741e0943009cf8fb0afe1358a4","f81573e89ed7452eaa7650eee6b5c96e","7a615ec5b1ed4e8396c223abcdcbdefb","ec390c73fb8140cea4ee51dc6b84894b","6ce95c2bc25348e794374cd92a289517","72aa0c00628b422b922db277a8cf00f8","7f9503741e0943009cf8fb0afe1358a4","15e1e033d85f47c29f1fee8ecea79e3e","cdc4167a4fab4be8a03d935ee66aa272","71a582df5997443d9c8728a9ca0cbf11","9ddfefd212c84828a5dedbc3b4216131","8e3209471112441795197a9e41bf121f","d6f100e0c858450c8ba0685cef3cd3c4","ec390c73fb8140cea4ee51dc6b84894b","3a02ce328dcd48bea280271888f77cff","8e3209471112441795197a9e41bf121f","5667940e1ff041eeb7269f162372d077","5cca1edb2029466bb9f2c69f243d625d","366941b30ceb498796440b4cf2c95667","cf36d36f874643c79133049cb4474ff1","7a615ec5b1ed4e8396c223abcdcbdefb","bcb206d798954913a687399df02af7ea","8e3209471112441795197a9e41bf121f","3339b0d06f1f41f6962089ff5a07ec64","7f9503741e0943009cf8fb0afe1358a4","827871bdaa074ac58298b86c55871966","2a0dc64c71eb410fb2eb77c77f3db194","8e3209471112441795197a9e41bf121f","d6f100e0c858450c8ba0685cef3cd3c4","ed39eb4e67504b67826e32fa5803240b","5cca1edb2029466bb9f2c69f243d625d","d6f100e0c858450c8ba0685cef3cd3c4","2bb911119079450aa9c19c04c59a7255","b516b2e7160047a5b239beee5639a32e","dfd60ba2eae14a3b898fdb8f438542c9","6485a3de3c154128907e95f53f42e03a","3a02ce328dcd48bea280271888f77cff","f936be255e954c87b759d1f131dfd75e","f81573e89ed7452eaa7650eee6b5c96e","67d43a54fb124085923fd9aa04ce9077","8e3209471112441795197a9e41bf121f","dfd60ba2eae14a3b898fdb8f438542c9","f936be255e954c87b759d1f131dfd75e","d6f100e0c858450c8ba0685cef3cd3c4","bb5b1823ea0e452f9b51379d4239dedf","ec390c73fb8140cea4ee51dc6b84894b","2a0dc64c71eb410fb2eb77c77f3db194","2a0dc64c71eb410fb2eb77c77f3db194","c8b471f521d94298b9fee211a5774406","ceca04a4a10d4448b9e5e4badce5a4b9","5cca1edb2029466bb9f2c69f243d625d","5667940e1ff041eeb7269f162372d077","ba2f7de09f11449e9d38e0ea9811efcc","df13a9730dac45f18dee2dc65af67f05","ed39eb4e67504b67826e32fa5803240b","ec390c73fb8140cea4ee51dc6b84894b","d4536d11274c4dc3a704c960ba02aaa9","906e3736f164468989cdcfe55ba61c31","9772ffff70a84be1af2711eb40e9d712","ec390c73fb8140cea4ee51dc6b84894b","3339b0d06f1f41f6962089ff5a07ec64","366941b30ceb498796440b4cf2c95667","71a582df5997443d9c8728a9ca0cbf11","5667940e1ff041eeb7269f162372d077","b516b2e7160047a5b239beee5639a32e","724acbf278a94bea910a04e457194337","a0af652d34914526ab3f7eda5d75b51c","2d77e27a45d54ceab0337e4a9127814a","67d43a54fb124085923fd9aa04ce9077","5dd9261cf4484955b07fa6ad0f99831e","d8f16b50c30b4c3fbc11147378fc8d9a","3a02ce328dcd48bea280271888f77cff","0259e40c2c2147a9b68423caa290f58b","710b667145bc4a5ca34c2dcaaeea3c6a","2bb911119079450aa9c19c04c59a7255","cf36d36f874643c79133049cb4474ff1","5cca1edb2029466bb9f2c69f243d625d","d6f100e0c858450c8ba0685cef3cd3c4","5cca1edb2029466bb9f2c69f243d625d","906e3736f164468989cdcfe55ba61c31","67d43a54fb124085923fd9aa04ce9077","e5be5a1a19cc407cb8802dda2a379ebf","d8f16b50c30b4c3fbc11147378fc8d9a","8e3209471112441795197a9e41bf121f","dbe2c19393dc48da92fa6c562b5ab74d","67d43a54fb124085923fd9aa04ce9077","f936be255e954c87b759d1f131dfd75e","67d43a54fb124085923fd9aa04ce9077","71a582df5997443d9c8728a9ca0cbf11","bcb206d798954913a687399df02af7ea","d4536d11274c4dc3a704c960ba02aaa9","f936be255e954c87b759d1f131dfd75e","3a5ddd1b9c454a1d9a2f73a832795553","f81573e89ed7452eaa7650eee6b5c96e","7f9503741e0943009cf8fb0afe1358a4","b516b2e7160047a5b239beee5639a32e","cdc4167a4fab4be8a03d935ee66aa272","ec390c73fb8140cea4ee51dc6b84894b","7f9503741e0943009cf8fb0afe1358a4","125d5d4ca74247bda905502bb742026f","5084d87e17ac473991570ad423e305b2","710b667145bc4a5ca34c2dcaaeea3c6a","ec390c73fb8140cea4ee51dc6b84894b","6485a3de3c154128907e95f53f42e03a","3a02ce328dcd48bea280271888f77cff","8e3209471112441795197a9e41bf121f","d85ae66b21444fde82205f101701c23b","6934b55287504d27965ebfb0914d052c","6934b55287504d27965ebfb0914d052c","f81573e89ed7452eaa7650eee6b5c96e","67d43a54fb124085923fd9aa04ce9077","d6f100e0c858450c8ba0685cef3cd3c4","d6f100e0c858450c8ba0685cef3cd3c4","6ff720696e174f5aade0560569a0e460","3a02ce328dcd48bea280271888f77cff","3339b0d06f1f41f6962089ff5a07ec64","2a0dc64c71eb410fb2eb77c77f3db194","8e3209471112441795197a9e41bf121f","6ce95c2bc25348e794374cd92a289517","7f9503741e0943009cf8fb0afe1358a4","7a615ec5b1ed4e8396c223abcdcbdefb","710b667145bc4a5ca34c2dcaaeea3c6a","d8f16b50c30b4c3fbc11147378fc8d9a","5cca1edb2029466bb9f2c69f243d625d","906e3736f164468989cdcfe55ba61c31","d4536d11274c4dc3a704c960ba02aaa9","3a5ddd1b9c454a1d9a2f73a832795553","a327f186f43b4aa6bbe746e93244e44e","d6f100e0c858450c8ba0685cef3cd3c4","df13a9730dac45f18dee2dc65af67f05","67d43a54fb124085923fd9aa04ce9077","7f9503741e0943009cf8fb0afe1358a4","b516b2e7160047a5b239beee5639a32e","3339b0d06f1f41f6962089ff5a07ec64","b516b2e7160047a5b239beee5639a32e","5667940e1ff041eeb7269f162372d077","82e2a390a1f041e2b3927de670d6a200","ceca04a4a10d4448b9e5e4badce5a4b9","dbe2c19393dc48da92fa6c562b5ab74d","ec390c73fb8140cea4ee51dc6b84894b","dbe2c19393dc48da92fa6c562b5ab74d","67d43a54fb124085923fd9aa04ce9077","6934b55287504d27965ebfb0914d052c","e5be5a1a19cc407cb8802dda2a379ebf","906e3736f164468989cdcfe55ba61c31","d8f16b50c30b4c3fbc11147378fc8d9a","cf36d36f874643c79133049cb4474ff1","71a582df5997443d9c8728a9ca0cbf11","72aa0c00628b422b922db277a8cf00f8","906e3736f164468989cdcfe55ba61c31","7a615ec5b1ed4e8396c223abcdcbdefb","19ec5671dfb24317a0ba75b874fed715","6934b55287504d27965ebfb0914d052c","906e3736f164468989cdcfe55ba61c31","6934b55287504d27965ebfb0914d052c","bb5b1823ea0e452f9b51379d4239dedf","ec390c73fb8140cea4ee51dc6b84894b","ed39eb4e67504b67826e32fa5803240b","724acbf278a94bea910a04e457194337","7f9503741e0943009cf8fb0afe1358a4","ec390c73fb8140cea4ee51dc6b84894b","6934b55287504d27965ebfb0914d052c","7f9503741e0943009cf8fb0afe1358a4","f81573e89ed7452eaa7650eee6b5c96e","8e3209471112441795197a9e41bf121f","ec390c73fb8140cea4ee51dc6b84894b","ed39eb4e67504b67826e32fa5803240b","67d43a54fb124085923fd9aa04ce9077","ec390c73fb8140cea4ee51dc6b84894b","d6f100e0c858450c8ba0685cef3cd3c4","d8f16b50c30b4c3fbc11147378fc8d9a","bb5b1823ea0e452f9b51379d4239dedf","906e3736f164468989cdcfe55ba61c31","d6f100e0c858450c8ba0685cef3cd3c4","2a0dc64c71eb410fb2eb77c77f3db194","d8f16b50c30b4c3fbc11147378fc8d9a","71a582df5997443d9c8728a9ca0cbf11","3339b0d06f1f41f6962089ff5a07ec64","724acbf278a94bea910a04e457194337","6934b55287504d27965ebfb0914d052c","ec390c73fb8140cea4ee51dc6b84894b","827871bdaa074ac58298b86c55871966","5dd9261cf4484955b07fa6ad0f99831e","ba2f7de09f11449e9d38e0ea9811efcc","d85ae66b21444fde82205f101701c23b","7f9503741e0943009cf8fb0afe1358a4","3a02ce328dcd48bea280271888f77cff","67d43a54fb124085923fd9aa04ce9077","72aa0c00628b422b922db277a8cf00f8","df13a9730dac45f18dee2dc65af67f05","5667940e1ff041eeb7269f162372d077","7f9503741e0943009cf8fb0afe1358a4","3a02ce328dcd48bea280271888f77cff","c1dcda8442cd4feeba84916c11d7f5d4","7a615ec5b1ed4e8396c223abcdcbdefb","9772ffff70a84be1af2711eb40e9d712","906e3736f164468989cdcfe55ba61c31","bb5b1823ea0e452f9b51379d4239dedf","c79dae546eaa46d4891652045fa41c1e","d4536d11274c4dc3a704c960ba02aaa9","366941b30ceb498796440b4cf2c95667","15e1e033d85f47c29f1fee8ecea79e3e","8e3209471112441795197a9e41bf121f","366941b30ceb498796440b4cf2c95667","8e3209471112441795197a9e41bf121f","f936be255e954c87b759d1f131dfd75e","bb5b1823ea0e452f9b51379d4239dedf","67d43a54fb124085923fd9aa04ce9077","7f9503741e0943009cf8fb0afe1358a4","724acbf278a94bea910a04e457194337","5cca1edb2029466bb9f2c69f243d625d","5084d87e17ac473991570ad423e305b2","67d43a54fb124085923fd9aa04ce9077","6934b55287504d27965ebfb0914d052c","f81573e89ed7452eaa7650eee6b5c96e","5cca1edb2029466bb9f2c69f243d625d","b516b2e7160047a5b239beee5639a32e","67d43a54fb124085923fd9aa04ce9077","f936be255e954c87b759d1f131dfd75e","6934b55287504d27965ebfb0914d052c","f81573e89ed7452eaa7650eee6b5c96e","5667940e1ff041eeb7269f162372d077","6485a3de3c154128907e95f53f42e03a","cf36d36f874643c79133049cb4474ff1","a0af652d34914526ab3f7eda5d75b51c","67d43a54fb124085923fd9aa04ce9077","8e3209471112441795197a9e41bf121f","ec390c73fb8140cea4ee51dc6b84894b","5667940e1ff041eeb7269f162372d077","67d43a54fb124085923fd9aa04ce9077","5084d87e17ac473991570ad423e305b2","7f9503741e0943009cf8fb0afe1358a4","f81573e89ed7452eaa7650eee6b5c96e","5cca1edb2029466bb9f2c69f243d625d","bb5b1823ea0e452f9b51379d4239dedf","d6f100e0c858450c8ba0685cef3cd3c4","ba2f7de09f11449e9d38e0ea9811efcc","8e3209471112441795197a9e41bf121f","ed39eb4e67504b67826e32fa5803240b","906e3736f164468989cdcfe55ba61c31","bb5b1823ea0e452f9b51379d4239dedf","5667940e1ff041eeb7269f162372d077","3a02ce328dcd48bea280271888f77cff","15e1e033d85f47c29f1fee8ecea79e3e","366941b30ceb498796440b4cf2c95667","ec390c73fb8140cea4ee51dc6b84894b","f936be255e954c87b759d1f131dfd75e","72aa0c00628b422b922db277a8cf00f8","3a5ddd1b9c454a1d9a2f73a832795553","9772ffff70a84be1af2711eb40e9d712","ec390c73fb8140cea4ee51dc6b84894b","3a5ddd1b9c454a1d9a2f73a832795553","8e3209471112441795197a9e41bf121f","bb5b1823ea0e452f9b51379d4239dedf","377b49b3641d44e5b3229166e7ee918e","7a615ec5b1ed4e8396c223abcdcbdefb","f81573e89ed7452eaa7650eee6b5c96e","f936be255e954c87b759d1f131dfd75e","827871bdaa074ac58298b86c55871966","8e3209471112441795197a9e41bf121f","ec390c73fb8140cea4ee51dc6b84894b","e5be5a1a19cc407cb8802dda2a379ebf","9ddfefd212c84828a5dedbc3b4216131","6ce95c2bc25348e794374cd92a289517","bb5b1823ea0e452f9b51379d4239dedf","9772ffff70a84be1af2711eb40e9d712","3a5ddd1b9c454a1d9a2f73a832795553","7dbe27d916714855b16584f187e7053e","d6f100e0c858450c8ba0685cef3cd3c4","7dbe27d916714855b16584f187e7053e","906e3736f164468989cdcfe55ba61c31","d4536d11274c4dc3a704c960ba02aaa9","b516b2e7160047a5b239beee5639a32e","8e3209471112441795197a9e41bf121f","cf36d36f874643c79133049cb4474ff1","df13a9730dac45f18dee2dc65af67f05","366941b30ceb498796440b4cf2c95667","7f9503741e0943009cf8fb0afe1358a4","6485a3de3c154128907e95f53f42e03a","7f9503741e0943009cf8fb0afe1358a4","d6f100e0c858450c8ba0685cef3cd3c4","67d43a54fb124085923fd9aa04ce9077","906e3736f164468989cdcfe55ba61c31","6ff720696e174f5aade0560569a0e460","ec390c73fb8140cea4ee51dc6b84894b","cf36d36f874643c79133049cb4474ff1","906e3736f164468989cdcfe55ba61c31","7dbe27d916714855b16584f187e7053e","f936be255e954c87b759d1f131dfd75e","ed39eb4e67504b67826e32fa5803240b","e5be5a1a19cc407cb8802dda2a379ebf","366941b30ceb498796440b4cf2c95667","6485a3de3c154128907e95f53f42e03a","7f9503741e0943009cf8fb0afe1358a4","2bb911119079450aa9c19c04c59a7255","d8f16b50c30b4c3fbc11147378fc8d9a","9f5484cbd5f7481caf0b32af104281fc","d85ae66b21444fde82205f101701c23b","bb5b1823ea0e452f9b51379d4239dedf","7f9503741e0943009cf8fb0afe1358a4","cf36d36f874643c79133049cb4474ff1","7f9503741e0943009cf8fb0afe1358a4","ec390c73fb8140cea4ee51dc6b84894b","7dbe27d916714855b16584f187e7053e","7f9503741e0943009cf8fb0afe1358a4","8e3209471112441795197a9e41bf121f","72aa0c00628b422b922db277a8cf00f8","d4536d11274c4dc3a704c960ba02aaa9","cf36d36f874643c79133049cb4474ff1","15e1e033d85f47c29f1fee8ecea79e3e","dfd60ba2eae14a3b898fdb8f438542c9","ed39eb4e67504b67826e32fa5803240b","ec390c73fb8140cea4ee51dc6b84894b","bcb206d798954913a687399df02af7ea","f5de91e6e13f464c9737a0ddb447c052","71a582df5997443d9c8728a9ca0cbf11","7dbe27d916714855b16584f187e7053e","3a02ce328dcd48bea280271888f77cff","7dbe27d916714855b16584f187e7053e","67d43a54fb124085923fd9aa04ce9077","19ec5671dfb24317a0ba75b874fed715","19ec5671dfb24317a0ba75b874fed715","5cca1edb2029466bb9f2c69f243d625d","366941b30ceb498796440b4cf2c95667","7e48eb82171d4baf91ba97cd321582f1","f5b503e438fc4236a840af1e35a46ef5","5084d87e17ac473991570ad423e305b2","bb5b1823ea0e452f9b51379d4239dedf","5cca1edb2029466bb9f2c69f243d625d","906e3736f164468989cdcfe55ba61c31","ec390c73fb8140cea4ee51dc6b84894b","cf36d36f874643c79133049cb4474ff1","ceca04a4a10d4448b9e5e4badce5a4b9","5667940e1ff041eeb7269f162372d077","df13a9730dac45f18dee2dc65af67f05","f936be255e954c87b759d1f131dfd75e","15e1e033d85f47c29f1fee8ecea79e3e","724acbf278a94bea910a04e457194337","125d5d4ca74247bda905502bb742026f","724acbf278a94bea910a04e457194337","dfd60ba2eae14a3b898fdb8f438542c9","15e1e033d85f47c29f1fee8ecea79e3e","8e3209471112441795197a9e41bf121f","ec390c73fb8140cea4ee51dc6b84894b","8e3209471112441795197a9e41bf121f","9ddfefd212c84828a5dedbc3b4216131","5667940e1ff041eeb7269f162372d077","67d43a54fb124085923fd9aa04ce9077","ed39eb4e67504b67826e32fa5803240b","ed39eb4e67504b67826e32fa5803240b","b516b2e7160047a5b239beee5639a32e","f81573e89ed7452eaa7650eee6b5c96e","2a0dc64c71eb410fb2eb77c77f3db194","2d77e27a45d54ceab0337e4a9127814a","3339b0d06f1f41f6962089ff5a07ec64","67d43a54fb124085923fd9aa04ce9077","5cca1edb2029466bb9f2c69f243d625d","f936be255e954c87b759d1f131dfd75e","6ce95c2bc25348e794374cd92a289517","9ddfefd212c84828a5dedbc3b4216131","cdc4167a4fab4be8a03d935ee66aa272","bb5b1823ea0e452f9b51379d4239dedf","df13a9730dac45f18dee2dc65af67f05","dbe2c19393dc48da92fa6c562b5ab74d","67d43a54fb124085923fd9aa04ce9077","724acbf278a94bea910a04e457194337","df13a9730dac45f18dee2dc65af67f05","19ec5671dfb24317a0ba75b874fed715","19ec5671dfb24317a0ba75b874fed715","71a582df5997443d9c8728a9ca0cbf11","15e1e033d85f47c29f1fee8ecea79e3e","3339b0d06f1f41f6962089ff5a07ec64","5cca1edb2029466bb9f2c69f243d625d","3a02ce328dcd48bea280271888f77cff","f936be255e954c87b759d1f131dfd75e","d8f16b50c30b4c3fbc11147378fc8d9a","cdc4167a4fab4be8a03d935ee66aa272","724acbf278a94bea910a04e457194337","9ddfefd212c84828a5dedbc3b4216131","6485a3de3c154128907e95f53f42e03a","6485a3de3c154128907e95f53f42e03a","d6f100e0c858450c8ba0685cef3cd3c4","6934b55287504d27965ebfb0914d052c","366941b30ceb498796440b4cf2c95667","3a02ce328dcd48bea280271888f77cff","71a582df5997443d9c8728a9ca0cbf11","7a615ec5b1ed4e8396c223abcdcbdefb","7f9503741e0943009cf8fb0afe1358a4","ec390c73fb8140cea4ee51dc6b84894b","6ce95c2bc25348e794374cd92a289517","906e3736f164468989cdcfe55ba61c31","7f9503741e0943009cf8fb0afe1358a4","5cca1edb2029466bb9f2c69f243d625d","7f9503741e0943009cf8fb0afe1358a4","f936be255e954c87b759d1f131dfd75e","ec390c73fb8140cea4ee51dc6b84894b","d6f100e0c858450c8ba0685cef3cd3c4","bb5b1823ea0e452f9b51379d4239dedf","8e3209471112441795197a9e41bf121f","d6f100e0c858450c8ba0685cef3cd3c4","d6f100e0c858450c8ba0685cef3cd3c4","6934b55287504d27965ebfb0914d052c","f5b503e438fc4236a840af1e35a46ef5","7f9503741e0943009cf8fb0afe1358a4","bb5b1823ea0e452f9b51379d4239dedf","b516b2e7160047a5b239beee5639a32e","6934b55287504d27965ebfb0914d052c","7f9503741e0943009cf8fb0afe1358a4","d4536d11274c4dc3a704c960ba02aaa9","7f9503741e0943009cf8fb0afe1358a4","d6f100e0c858450c8ba0685cef3cd3c4","366941b30ceb498796440b4cf2c95667","cf36d36f874643c79133049cb4474ff1","cf36d36f874643c79133049cb4474ff1","67d43a54fb124085923fd9aa04ce9077","f936be255e954c87b759d1f131dfd75e","f81573e89ed7452eaa7650eee6b5c96e","d6f100e0c858450c8ba0685cef3cd3c4","8e3209471112441795197a9e41bf121f","d4536d11274c4dc3a704c960ba02aaa9","f936be255e954c87b759d1f131dfd75e","125d5d4ca74247bda905502bb742026f","71a582df5997443d9c8728a9ca0cbf11","9772ffff70a84be1af2711eb40e9d712","bb5b1823ea0e452f9b51379d4239dedf","3a02ce328dcd48bea280271888f77cff","f936be255e954c87b759d1f131dfd75e","b516b2e7160047a5b239beee5639a32e","5cca1edb2029466bb9f2c69f243d625d","ec390c73fb8140cea4ee51dc6b84894b","8e3209471112441795197a9e41bf121f","5084d87e17ac473991570ad423e305b2","15e1e033d85f47c29f1fee8ecea79e3e","bcb206d798954913a687399df02af7ea","15e1e033d85f47c29f1fee8ecea79e3e","d6f100e0c858450c8ba0685cef3cd3c4","ec390c73fb8140cea4ee51dc6b84894b","f81573e89ed7452eaa7650eee6b5c96e","19ec5671dfb24317a0ba75b874fed715","ec390c73fb8140cea4ee51dc6b84894b","6934b55287504d27965ebfb0914d052c","a96a12f2c51f4efeac417e7ffc587485","96383b8f6e2e4672b9981b5e2710377f","3339b0d06f1f41f6962089ff5a07ec64","bcb206d798954913a687399df02af7ea","15e1e033d85f47c29f1fee8ecea79e3e","72aa0c00628b422b922db277a8cf00f8","67d43a54fb124085923fd9aa04ce9077","bcb206d798954913a687399df02af7ea","7a615ec5b1ed4e8396c223abcdcbdefb","9772ffff70a84be1af2711eb40e9d712","7f9503741e0943009cf8fb0afe1358a4","2a0dc64c71eb410fb2eb77c77f3db194","ed39eb4e67504b67826e32fa5803240b","cf36d36f874643c79133049cb4474ff1","b4553dea59444c898db8315a0eb1037c","ec390c73fb8140cea4ee51dc6b84894b","906e3736f164468989cdcfe55ba61c31","d4536d11274c4dc3a704c960ba02aaa9","d85ae66b21444fde82205f101701c23b","bb5b1823ea0e452f9b51379d4239dedf","906e3736f164468989cdcfe55ba61c31","67d43a54fb124085923fd9aa04ce9077","e5be5a1a19cc407cb8802dda2a379ebf","cdaae4aba64b4f049d9fc3d659a5ed58","8e3209471112441795197a9e41bf121f","7f9503741e0943009cf8fb0afe1358a4","8e3209471112441795197a9e41bf121f","5cca1edb2029466bb9f2c69f243d625d","377b49b3641d44e5b3229166e7ee918e","3a5ddd1b9c454a1d9a2f73a832795553","e5be5a1a19cc407cb8802dda2a379ebf","8e3209471112441795197a9e41bf121f","9772ffff70a84be1af2711eb40e9d712","ec390c73fb8140cea4ee51dc6b84894b","3a5ddd1b9c454a1d9a2f73a832795553","724acbf278a94bea910a04e457194337","3a5ddd1b9c454a1d9a2f73a832795553","bb5b1823ea0e452f9b51379d4239dedf","366941b30ceb498796440b4cf2c95667","c1134d2e5c3b44378fdf5bededeb663e","f936be255e954c87b759d1f131dfd75e","cdc4167a4fab4be8a03d935ee66aa272","67d43a54fb124085923fd9aa04ce9077","b516b2e7160047a5b239beee5639a32e","d6f100e0c858450c8ba0685cef3cd3c4","15e1e033d85f47c29f1fee8ecea79e3e","6485a3de3c154128907e95f53f42e03a","ec390c73fb8140cea4ee51dc6b84894b","3339b0d06f1f41f6962089ff5a07ec64","906e3736f164468989cdcfe55ba61c31","ec390c73fb8140cea4ee51dc6b84894b","67d43a54fb124085923fd9aa04ce9077","bcb206d798954913a687399df02af7ea","19ec5671dfb24317a0ba75b874fed715","366941b30ceb498796440b4cf2c95667","d6f100e0c858450c8ba0685cef3cd3c4","3a02ce328dcd48bea280271888f77cff","366941b30ceb498796440b4cf2c95667","e63410c2b6d6476ea260002cd791b293","7f9503741e0943009cf8fb0afe1358a4","19ec5671dfb24317a0ba75b874fed715","3a5ddd1b9c454a1d9a2f73a832795553","8e3209471112441795197a9e41bf121f","710b667145bc4a5ca34c2dcaaeea3c6a","906e3736f164468989cdcfe55ba61c31","906e3736f164468989cdcfe55ba61c31","15e1e033d85f47c29f1fee8ecea79e3e","5cca1edb2029466bb9f2c69f243d625d","2bb911119079450aa9c19c04c59a7255","bcb206d798954913a687399df02af7ea","67d43a54fb124085923fd9aa04ce9077","8e3209471112441795197a9e41bf121f","d4536d11274c4dc3a704c960ba02aaa9","262868e633f1444390cbf9a144e01824","5e929f9eb2ab40cd97dbfb34e1827f6f","5cca1edb2029466bb9f2c69f243d625d","d85ae66b21444fde82205f101701c23b","3a02ce328dcd48bea280271888f77cff","67d43a54fb124085923fd9aa04ce9077","67d43a54fb124085923fd9aa04ce9077","906e3736f164468989cdcfe55ba61c31","5667940e1ff041eeb7269f162372d077","67d43a54fb124085923fd9aa04ce9077","bb5b1823ea0e452f9b51379d4239dedf","e5be5a1a19cc407cb8802dda2a379ebf","710b667145bc4a5ca34c2dcaaeea3c6a","7a615ec5b1ed4e8396c223abcdcbdefb","181ff2bc8b39469293895b0a9afc4e83","8e3209471112441795197a9e41bf121f","7f9503741e0943009cf8fb0afe1358a4","3a5ddd1b9c454a1d9a2f73a832795553","2d77e27a45d54ceab0337e4a9127814a","ed39eb4e67504b67826e32fa5803240b","e5be5a1a19cc407cb8802dda2a379ebf","3a5ddd1b9c454a1d9a2f73a832795553","366941b30ceb498796440b4cf2c95667","cf7e95967e6c4067b47198d6015442b8","ec390c73fb8140cea4ee51dc6b84894b","bcb206d798954913a687399df02af7ea","710b667145bc4a5ca34c2dcaaeea3c6a","7f9503741e0943009cf8fb0afe1358a4","7f9503741e0943009cf8fb0afe1358a4","cdaae4aba64b4f049d9fc3d659a5ed58","7f9503741e0943009cf8fb0afe1358a4","3a5ddd1b9c454a1d9a2f73a832795553","7f9503741e0943009cf8fb0afe1358a4","6485a3de3c154128907e95f53f42e03a","15e1e033d85f47c29f1fee8ecea79e3e","3a02ce328dcd48bea280271888f77cff","c79dae546eaa46d4891652045fa41c1e","d6f100e0c858450c8ba0685cef3cd3c4","19ec5671dfb24317a0ba75b874fed715","15e1e033d85f47c29f1fee8ecea79e3e","724acbf278a94bea910a04e457194337","ed39eb4e67504b67826e32fa5803240b","7f9503741e0943009cf8fb0afe1358a4","d8f16b50c30b4c3fbc11147378fc8d9a","dbe2c19393dc48da92fa6c562b5ab74d","d4536d11274c4dc3a704c960ba02aaa9","7dbe27d916714855b16584f187e7053e","67d43a54fb124085923fd9aa04ce9077","f936be255e954c87b759d1f131dfd75e","125d5d4ca74247bda905502bb742026f","9ddfefd212c84828a5dedbc3b4216131","827871bdaa074ac58298b86c55871966","8e3209471112441795197a9e41bf121f","df13a9730dac45f18dee2dc65af67f05","710b667145bc4a5ca34c2dcaaeea3c6a","8e3209471112441795197a9e41bf121f","3339b0d06f1f41f6962089ff5a07ec64","5dd9261cf4484955b07fa6ad0f99831e","ed39eb4e67504b67826e32fa5803240b","2e27759f64344ff08405103a8f47d68d","b516b2e7160047a5b239beee5639a32e","19ec5671dfb24317a0ba75b874fed715","6ce95c2bc25348e794374cd92a289517","7f9503741e0943009cf8fb0afe1358a4","bcb206d798954913a687399df02af7ea","7f9503741e0943009cf8fb0afe1358a4","bcb206d798954913a687399df02af7ea","d6f100e0c858450c8ba0685cef3cd3c4","7dbe27d916714855b16584f187e7053e","ec390c73fb8140cea4ee51dc6b84894b","8e3209471112441795197a9e41bf121f","d4536d11274c4dc3a704c960ba02aaa9","ed39eb4e67504b67826e32fa5803240b","15e1e033d85f47c29f1fee8ecea79e3e","67d43a54fb124085923fd9aa04ce9077","5cca1edb2029466bb9f2c69f243d625d","7a615ec5b1ed4e8396c223abcdcbdefb","ec390c73fb8140cea4ee51dc6b84894b","d4536d11274c4dc3a704c960ba02aaa9","377b49b3641d44e5b3229166e7ee918e","bcb206d798954913a687399df02af7ea","3339b0d06f1f41f6962089ff5a07ec64","906e3736f164468989cdcfe55ba61c31","ec390c73fb8140cea4ee51dc6b84894b","f13e10298ebb48cbbacbe39e97d1a8bf","8e3209471112441795197a9e41bf121f","f81573e89ed7452eaa7650eee6b5c96e","d6f100e0c858450c8ba0685cef3cd3c4","15e1e033d85f47c29f1fee8ecea79e3e","ec390c73fb8140cea4ee51dc6b84894b","5dd9261cf4484955b07fa6ad0f99831e","cdaae4aba64b4f049d9fc3d659a5ed58","19ec5671dfb24317a0ba75b874fed715","ec390c73fb8140cea4ee51dc6b84894b","f81573e89ed7452eaa7650eee6b5c96e","3a02ce328dcd48bea280271888f77cff","d6f100e0c858450c8ba0685cef3cd3c4","9772ffff70a84be1af2711eb40e9d712","d4536d11274c4dc3a704c960ba02aaa9","3a5ddd1b9c454a1d9a2f73a832795553","19ec5671dfb24317a0ba75b874fed715","ec390c73fb8140cea4ee51dc6b84894b","15e1e033d85f47c29f1fee8ecea79e3e","3a5ddd1b9c454a1d9a2f73a832795553","3a5ddd1b9c454a1d9a2f73a832795553","e5be5a1a19cc407cb8802dda2a379ebf","d6f100e0c858450c8ba0685cef3cd3c4","5cca1edb2029466bb9f2c69f243d625d","67d43a54fb124085923fd9aa04ce9077","a327f186f43b4aa6bbe746e93244e44e","3a02ce328dcd48bea280271888f77cff","6485a3de3c154128907e95f53f42e03a","377b49b3641d44e5b3229166e7ee918e","a327f186f43b4aa6bbe746e93244e44e","7dbe27d916714855b16584f187e7053e","3a02ce328dcd48bea280271888f77cff","bb5b1823ea0e452f9b51379d4239dedf","7a615ec5b1ed4e8396c223abcdcbdefb","125d5d4ca74247bda905502bb742026f","72aa0c00628b422b922db277a8cf00f8","7a615ec5b1ed4e8396c223abcdcbdefb","8e3209471112441795197a9e41bf121f","f81573e89ed7452eaa7650eee6b5c96e","ec390c73fb8140cea4ee51dc6b84894b","f5b9bce6b02246fb856c4fd654009950","cdc4167a4fab4be8a03d935ee66aa272","f936be255e954c87b759d1f131dfd75e","6485a3de3c154128907e95f53f42e03a","ec390c73fb8140cea4ee51dc6b84894b","d6f100e0c858450c8ba0685cef3cd3c4") ; ;
String enterpriseId ="ff808081748d32bb01748f7d2efa1d0b" ;
String wxEnterpriseId ="369038a3568b46a6898d635843b73dc6" ;
System.out.println(System.currentTimeMillis());
System.out.println(this.externalClerkRelatedApiService.listMemberStaffRel(memberIdList, clerkIdList,
enterpriseId, wxEnterpriseId));
System.out.println(System.currentTimeMillis());
}
@Test
......
......@@ -275,7 +275,7 @@ public class StaffController extends WebBaseController {
@RequestMapping("del-clerk-relation")
public HaobanResponse delStaffClerkList(String clerkId) {
WebLoginDTO login = AuthWebRequestUtil.getLoginUser();
boolean b = staffClerkRelationApiService.unbindByStaffAndClerkId(login.getClerkId(), clerkId);
boolean b = staffClerkRelationApiService.unbindByStaffAndClerkId(login.getClerkId(), clerkId,ChannelCodeEnum.ADMIN_UNBIND.getCode());
return resultResponse(HaoBanErrCode.ERR_1, b);
}
......
......@@ -110,7 +110,7 @@ public class ClerkController extends WebBaseController {
if (clerk != null) {
long memberCount = distributeApiService.getClerkMemberCount(staffClerkRelationDTO.getEnterpriseId(), clerk.getClerkId(), storeId);
logger.info("【获取会员数】enterpriseId={},clerkId={},storeId={},memberCount={}", staffClerkRelationDTO.getEnterpriseId(), clerk.getClerkId(), storeId, memberCount);
staffDTO.setMemberCount(Convert.toInt(memberCount,0));
staffDTO.setMemberCount(Convert.toInt(memberCount, 0));
staffDTO.setClerkId(clerk.getClerkId());
staffDTO.setClerkCode(clerk.getClerkCode());
resultList.add(EntityUtil.changeEntityNew(StaffVO.class, staffDTO));
......@@ -281,9 +281,9 @@ public class ClerkController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_10012);
}
// 导购code校验-字母和数字
if (!clerkCode.matches("[a-zA-Z0-9]+")) {
return resultResponse(HaoBanErrCode.ERR_10023);
}
//if (!clerkCode.matches("[a-zA-Z0-9]+")) {
// return resultResponse(HaoBanErrCode.ERR_10023);
//}
if (version == null) {
StaffDTO staff = staffApiService.selectByNationcodeAndPhoneNumber(wxEnterpriseId, nationcode, phoneNumber);
if (staff != null) {
......@@ -646,10 +646,10 @@ public class ClerkController extends WebBaseController {
return !over;
}).map(EnterpriseDetailDTO::getEnterpriseId).collect(Collectors.toList());
List<String> storeIds = wxEnterpriseRelatedApiService.listStoreIdByWxEnterpriseId(wxEnterpriseId);
if(CollectionUtils.isEmpty(storeIds)) {
if (CollectionUtils.isEmpty(storeIds)) {
return resultResponse(HaoBanErrCode.ERR_1, new ArrayList<>());
}
logger.info("查询到企微门店数={},{}",storeIds.size(),storeIds);
logger.info("查询到企微门店数={},{}", storeIds.size(), storeIds);
List<ClerkDTO> clerkList = clerkNewService.listClerkByEnterpriseIdAndSearchAndClerkType(enterpriseIdList, storeIds, keyword);
List<ClerkStoreVO> clerkStoreList = buildClerkRelation(clerkList, enterpriseIdList);
return resultResponse(HaoBanErrCode.ERR_1, clerkStoreList);
......@@ -919,9 +919,7 @@ public class ClerkController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_111145);
}
staffClerkRelationApiService.delByStoreIdAndCode(storeId, clerkCode);
//加入日志
staffClerkRelationApiService.pushToBindLog(staffClerkRelation.getStaffId(), clerkId, BindTypeEnum.UNBIND.getVal(), ChannelCodeEnum.SELF_UNBIND.getCode(), staffClerkRelation.getStaffClerkRelationId());
staffClerkRelationApiService.unbindByStaffAndClerkId(staffId, clerkId, ChannelCodeEnum.SELF_UNBIND.getCode());
return resultResponse(HaoBanErrCode.ERR_1);
}
......@@ -1217,14 +1215,14 @@ public class ClerkController extends WebBaseController {
if (StringUtils.isNotBlank(wxOpenId)) {
return RestResponse.successResult(wxOpenId);
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ;
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId);
if (qwDTO == null) {
int code = HaoBanErrCode.ERR_400002.getCode();
return RestResponse.failure(String.valueOf(code), HaoBanErrCode.ERR_400002.getMsg());
}
String wxUserId = staffDTO.getWxUserId();
if(qwDTO.needOpenUserId3th()) {
wxUserId = staffDTO.getWxOpenUseId() ;
if (qwDTO.needOpenUserId3th()) {
wxUserId = staffDTO.getWxOpenUseId();
}
String openid = qywxUserApiService.getSelfOpenIdByUserId(qwDTO.getThirdCorpid(), config.getWxSuiteid(), wxUserId);
if (StringUtils.isBlank(openid)) {
......
......@@ -387,7 +387,7 @@ public class WxEnterpriseInfoController extends WebBaseController {
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseApiService.getQwInfo(wxEnterpriseId) ;
MemberLoginQo user = new MemberLoginQo();
if (StringUtils.isBlank(qo.getUserId())) {
user = getUserByCode(wxEnterpriseId , qwDTO.getThirdCorpid() , qo.getCode(), qo.getGicEnterpriseId());
user = getUserByCode(wxEnterpriseId , qwDTO.getMemberCorpid() , qo.getCode(), qo.getGicEnterpriseId());
if (user == null) {
logger.info("登录失败,从微信获取用户信息失败");
return resultResponse(HaoBanErrCode.ERR_6);
......
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