Commit cba6398b by 徐高华

店员需过滤主导购和店长

parent ecc5d898
...@@ -96,9 +96,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -96,9 +96,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
@Autowired @Autowired
private MemberClerkApiService memberClerkApiService; private MemberClerkApiService memberClerkApiService;
@Autowired @Autowired
private HmPageService hmPageService ; private HmPageService hmPageService;
@Autowired @Autowired
private StoreService storeService ; private StoreService storeService;
@Override @Override
public ServiceResponse<String> getHmLinkUrl() { public ServiceResponse<String> getHmLinkUrl() {
...@@ -158,9 +158,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -158,9 +158,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
HmQrcodeBO hm = null; HmQrcodeBO hm = null;
HmLinkWxaDTO retDTO = new HmLinkWxaDTO(); HmLinkWxaDTO retDTO = new HmLinkWxaDTO();
log.info("小程序获取活码={},linkShortCode={},mixPhone={},memberId={},unionid={},门店={}{}", enterpriseId, linkShortCode, log.info("小程序获取活码={},linkShortCode={},mixPhone={},memberId={},unionid={},门店={}{}", enterpriseId, linkShortCode,
mixPhone, memberId, unionid,inStoreId , whitchStore); mixPhone, memberId, unionid, inStoreId, whitchStore);
HmLinkBO link = this.hmLinkService.getByLinkShortCodeCache(linkShortCode); HmLinkBO link = this.hmLinkService.getByLinkShortCodeCache(linkShortCode);
Map<String,String> remarkMap = new HashMap<>(); Map<String, String> remarkMap = new HashMap<>();
if (null == link) { if (null == link) {
log.error("链接记录不存,linkShortCode={}", linkShortCode); log.error("链接记录不存,linkShortCode={}", linkShortCode);
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "链接记录不存"); return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "链接记录不存");
...@@ -189,12 +189,12 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -189,12 +189,12 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 直接返回门店的导购活码,如果没有返回错误 // 直接返回门店的导购活码,如果没有返回错误
if (null == hm && StringUtils.isNotBlank(inStoreId)) { if (null == hm && StringUtils.isNotBlank(inStoreId)) {
String customRuleJson = link.getCustomRuleJson(); String customRuleJson = link.getCustomRuleJson();
log.info("选门店后,whitchStore={},自定义规则={}", whitchStore,customRuleJson); log.info("选门店后,whitchStore={},自定义规则={}", whitchStore, customRuleJson);
JSONObject storeRuleObj = JSONObject.parseObject(customRuleJson); JSONObject storeRuleObj = JSONObject.parseObject(customRuleJson);
int openFlag = storeRuleObj.getIntValue("open"); int openFlag = storeRuleObj.getIntValue("open");
// whitchStore 1推荐门店 2附件门店 3省市区门店 // whitchStore 1推荐门店 2附件门店 3省市区门店
if(null == whitchStore) { if (null == whitchStore) {
whitchStore = 1 ; whitchStore = 1;
} }
if (openFlag == 1) { if (openFlag == 1) {
int dz = 0, dy = 0; int dz = 0, dy = 0;
...@@ -205,7 +205,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -205,7 +205,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class); HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
dz = cityStore.getDz(); dz = cityStore.getDz();
dy = cityStore.getDy(); dy = cityStore.getDy();
}else if (whitchStore == 1 || whitchStore == 2) { } else if (whitchStore == 1 || whitchStore == 2) {
HmLinkStoreSettingDTO store = storeRuleObj.getObject("store", HmLinkStoreSettingDTO.class); HmLinkStoreSettingDTO store = storeRuleObj.getObject("store", HmLinkStoreSettingDTO.class);
if (whitchStore == 2 || (storeType == 1 && whitchStore == 1)) { if (whitchStore == 2 || (storeType == 1 && whitchStore == 1)) {
// 附近门店 或者 推荐门店 // 附近门店 或者 推荐门店
...@@ -217,12 +217,12 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -217,12 +217,12 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
dy = store.getNdy(); dy = store.getNdy();
} }
} }
hm = this.getHmFormStore(wxEnterpriseId, inStoreId, dz, dy); hm = this.getHmFormStore(wxEnterpriseId, inStoreId, dz, dy, new ArrayList<>());
log.info("获取到的门店配置dz={},dy={},获取的活码={}", dz, dy, JSON.toJSONString(hm)); log.info("获取到的门店配置dz={},dy={},获取的活码={}", dz, dy, JSON.toJSONString(hm));
if (null == hm) { if (null == hm) {
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "导购活码不存在"); return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "导购活码不存在");
} }
remarkMap.put("sm","会员选门店活码"); remarkMap.put("sm", "会员选门店活码");
} }
} }
// 会员门店 // 会员门店
...@@ -261,10 +261,11 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -261,10 +261,11 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
hm = this.getHmFromClerk(mainClerkId, wxEnterpriseId); hm = this.getHmFromClerk(mainClerkId, wxEnterpriseId);
} }
if (null == hm && StringUtils.isNotBlank(mainStoreId)) { if (null == hm && StringUtils.isNotBlank(mainStoreId)) {
hm = this.getHmFormStore(wxEnterpriseId, mainStoreId, fwStore.getDz(), fwStore.getDy()); hm = this.getHmFormStore(wxEnterpriseId, mainStoreId, fwStore.getDz(), fwStore.getDy(),
Arrays.asList(mainClerkId));
} }
if(null != hm) { if (null != hm) {
remarkMap.put("sm","会员主门店活码"); remarkMap.put("sm", "会员主门店活码");
} }
} }
// 协管门店 // 协管门店
...@@ -275,6 +276,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -275,6 +276,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
list = this.sortMemberClerk(enterpriseId, memberId, list); list = this.sortMemberClerk(enterpriseId, memberId, list);
List<String> storeIdList = new ArrayList<>(); List<String> storeIdList = new ArrayList<>();
// 协管导购 // 协管导购
List<String> clerkIdList = new ArrayList<>();
for (MemberStoreClerkDataDTO item : list) { for (MemberStoreClerkDataDTO item : list) {
String clerkId = item.getClerkIdRel(); String clerkId = item.getClerkIdRel();
if (mainStoreId.equals(item.getStoreIdRel())) { if (mainStoreId.equals(item.getStoreIdRel())) {
...@@ -287,12 +289,12 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -287,12 +289,12 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
break; break;
} }
storeIdList.add(item.getStoreIdRel()); storeIdList.add(item.getStoreIdRel());
clerkIdList.add(clerkId);
} }
log.info("");
// 店长 // 店长
if (null == hm && xgStore.getDz() == 1 && CollectionUtils.isNotEmpty(storeIdList)) { if (null == hm && xgStore.getDz() == 1 && CollectionUtils.isNotEmpty(storeIdList)) {
for (String storeId : storeIdList) { for (String storeId : storeIdList) {
hm = this.getHmFormStore(wxEnterpriseId, storeId, 1, 0); hm = this.getHmFormStore(wxEnterpriseId, storeId, 1, 0, clerkIdList);
if (null != hm) { if (null != hm) {
break; break;
} }
...@@ -301,14 +303,14 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -301,14 +303,14 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 店员 // 店员
if (null == hm && xgStore.getDy() == 1 && CollectionUtils.isNotEmpty(storeIdList)) { if (null == hm && xgStore.getDy() == 1 && CollectionUtils.isNotEmpty(storeIdList)) {
for (String storeId : storeIdList) { for (String storeId : storeIdList) {
hm = this.getHmFormStore(wxEnterpriseId, storeId, 0, 1); hm = this.getHmFormStore(wxEnterpriseId, storeId, 0, 1, clerkIdList);
if (null != hm) { if (null != hm) {
break; break;
} }
} }
} }
if(null != hm) { if (null != hm) {
remarkMap.put("sm","会员协管活码"); remarkMap.put("sm", "会员协管活码");
} }
} }
} }
...@@ -325,7 +327,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -325,7 +327,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 活码的门店 // 活码的门店
List<HmLinkStoreDTO> storeList = this.hmLinkStoreService.listByLinkId(wxEnterpriseId, enterpriseId, List<HmLinkStoreDTO> storeList = this.hmLinkStoreService.listByLinkId(wxEnterpriseId, enterpriseId,
linkId); linkId);
this.setStoreAddress(enterpriseId , storeList); this.setStoreAddress(enterpriseId, storeList);
log.info("门店规则={},推荐门店列表={}", storeType, JSON.toJSONString(storeList)); log.info("门店规则={},推荐门店列表={}", storeType, JSON.toJSONString(storeList));
HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class); HmLinkStoreSettingDTO cityStore = storeRuleObj.getObject("city_store", HmLinkStoreSettingDTO.class);
// 是否开启省市区门店查询 // 是否开启省市区门店查询
...@@ -337,9 +339,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -337,9 +339,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
} }
if (null != hm) { if (null != hm) {
log.info("获取到单人活码={}",JSON.toJSONString(hm)); log.info("获取到单人活码={}", JSON.toJSONString(hm));
retDTO.setHmId(hm.getHmId()); retDTO.setHmId(hm.getHmId());
remarkMap.put("clerk", hm.getClerkId()) ; remarkMap.put("clerk", hm.getClerkId());
// 判断是否已经是好友 // 判断是否已经是好友
boolean isFriend = false; boolean isFriend = false;
if (null != memberId) { if (null != memberId) {
...@@ -350,7 +352,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -350,7 +352,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
isFriend = true; isFriend = true;
log.info("已经是好友,staffid={},memberId={}", staffId, memberId); log.info("已经是好友,staffid={},memberId={}", staffId, memberId);
retDTO.setHmQrcode(hm.getWxQrcode()); retDTO.setHmQrcode(hm.getWxQrcode());
remarkMap.put("sm","老好友,取单人活码"); remarkMap.put("sm", "老好友,取单人活码");
} }
} }
...@@ -360,17 +362,17 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -360,17 +362,17 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
bo.setLinkId(linkId); bo.setLinkId(linkId);
bo.setHmId(hm.getHmId()); bo.setHmId(hm.getHmId());
String dthmKey = this.keyDataService.saveDataForLink(enterpriseId, bo); String dthmKey = this.keyDataService.saveDataForLink(enterpriseId, bo);
remarkMap.put("dthmKey", dthmKey) ; remarkMap.put("dthmKey", dthmKey);
if (null != dthmKey) { if (null != dthmKey) {
ServiceResponse<String> addResp = this.addQrcode(hm, dthmKey, wxEnterpriseDTO.getCorpid(), retDTO); ServiceResponse<String> addResp = this.addQrcode(hm, dthmKey, wxEnterpriseDTO.getCorpid(), retDTO);
if (!addResp.isSuccess()) { if (!addResp.isSuccess()) {
remarkMap.put("sm","创建动态活码失败,取单人活码"); remarkMap.put("sm", "创建动态活码失败,取单人活码");
if(StringUtils.isBlank(hm.getWxQrcode())) { if (StringUtils.isBlank(hm.getWxQrcode())) {
return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "导购活码不存在"); return ServiceResponse.failure(HaoBanErrCode.ERR_OTHER.getCode(), "导购活码不存在");
} }
retDTO.setHmQrcode(hm.getWxQrcode()); retDTO.setHmQrcode(hm.getWxQrcode());
} else { } else {
remarkMap.put("动态", "是") ; remarkMap.put("动态", "是");
retDTO.setHmQrcode(addResp.getResult()); retDTO.setHmQrcode(addResp.getResult());
} }
} }
...@@ -378,31 +380,30 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -378,31 +380,30 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
// 生成动态活码 // 生成动态活码
retDTO.setRemarkMap(remarkMap); retDTO.setRemarkMap(remarkMap);
log.info("活码数据返回={}",JSON.toJSONString(retDTO)); log.info("活码数据返回={}", JSON.toJSONString(retDTO));
return ServiceResponse.success(retDTO); return ServiceResponse.success(retDTO);
} }
private void setStoreAddress(String enterpriseId, List<HmLinkStoreDTO> storeList) {
private void setStoreAddress(String enterpriseId ,List<HmLinkStoreDTO> storeList) { if (CollectionUtils.isNotEmpty(storeList)) {
if(CollectionUtils.isNotEmpty(storeList)) { List<String> storeIdList = storeList.stream().map(dto -> dto.getStoreId()).collect(Collectors.toList());
List<String> storeIdList = storeList.stream().map(dto->dto.getStoreId()).collect(Collectors.toList()) ; String[] storeIds = new String[storeIdList.size()];
String[] storeIds = new String[storeIdList.size()] ; for (int i = 0; i < storeIdList.size(); i++) {
for(int i=0;i<storeIdList.size();i++) { storeIds[i] = storeIdList.get(i);
storeIds[i] = storeIdList.get(i) ;
} }
List<StoreDTO> dtoList = this.storeService.getStores(storeIds) ; List<StoreDTO> dtoList = this.storeService.getStores(storeIds);
Map<String,StoreDTO> map = dtoList.stream().collect(Collectors.toMap(StoreDTO::getStoreId, dto->dto,(k1, k2) -> k1)); Map<String, StoreDTO> map = dtoList.stream()
storeList.forEach(item->{ .collect(Collectors.toMap(StoreDTO::getStoreId, dto -> dto, (k1, k2) -> k1));
if(null != map.get(item.getStoreId())) { storeList.forEach(item -> {
if (null != map.get(item.getStoreId())) {
item.setStoreAddress(map.get(item.getStoreId()).getStoreAddress()); item.setStoreAddress(map.get(item.getStoreId()).getStoreAddress());
} }
}); });
} }
} }
private List<MemberStoreClerkDataDTO> sortMemberClerk(String enterpriseId, String memberId, private List<MemberStoreClerkDataDTO> sortMemberClerk(String enterpriseId, String memberId,
List<MemberStoreClerkDataDTO> list) { List<MemberStoreClerkDataDTO> list) {
System.out.println(""); System.out.println("");
ServiceResponse<List<MemberClerkDTO>> resp = this.memberClerkApiService.getMemberMainClerkList(enterpriseId, ServiceResponse<List<MemberClerkDTO>> resp = this.memberClerkApiService.getMemberMainClerkList(enterpriseId,
memberId); memberId);
if (!resp.isSuccess() && CollectionUtils.isEmpty(resp.getResult())) { if (!resp.isSuccess() && CollectionUtils.isEmpty(resp.getResult())) {
...@@ -477,29 +478,34 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -477,29 +478,34 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return hm; return hm;
} }
private HmQrcodeBO getHmFormStore(String wxEnterpriseId, String inStoreId, int dz, int dy) { private HmQrcodeBO getHmFormStore(String wxEnterpriseId, String inStoreId, int dz, int dy,
List<String> clerkIdList) {
if (StringUtils.isBlank(inStoreId) || "-1".equals(inStoreId)) { if (StringUtils.isBlank(inStoreId) || "-1".equals(inStoreId)) {
return null; return null;
} }
HmQrcodeBO hm = null; HmQrcodeBO hm = null;
if (dz == 1) { ClerkDTO dzClerk = this.clerkService.getClerkLeaderByStoreId(inStoreId);
ClerkDTO dzClerk = this.clerkService.getClerkLeaderByStoreId(inStoreId); if (null != dzClerk) {
if (null != dzClerk) { clerkIdList.add(dzClerk.getClerkId());
if (dz == 1) {
hm = this.getHmFromClerk(dzClerk.getClerkId(), wxEnterpriseId); hm = this.getHmFromClerk(dzClerk.getClerkId(), wxEnterpriseId);
if(null != hm) { if (null != hm) {
log.info("选择门店后,获取到店长活码,clerkId={},inStoreId={}",hm.getClerkId(),inStoreId); log.info("选择门店后,获取到店长活码,clerkId={},inStoreId={}", hm.getClerkId(), inStoreId);
} }
} else {
log.info("店长不存在,storeId={}", inStoreId);
} }
} else {
log.info("店长不存在,storeId={}", inStoreId);
} }
// 店员需要过滤主导购、店长
log.info("过滤的导购={}",clerkIdList);
if (null == hm && dy == 1) { if (null == hm && dy == 1) {
List<HmQrcodeBO> list = this.hmQrcodeService.listByStoreId(wxEnterpriseId, inStoreId, 0); List<HmQrcodeBO> list = this.hmQrcodeService.listByStoreId(wxEnterpriseId, inStoreId, 0);
list = list.stream().filter(dto -> !clerkIdList.contains(dto.getClerkId())).collect(Collectors.toList());
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(list)) {
log.info("选择门店下{},导购数={}",inStoreId,list.size()); log.info("选择门店下{},导购数={}", inStoreId, list.size());
hm = list.get(new Random().nextInt(list.size())); hm = list.get(new Random().nextInt(list.size()));
if(null != hm) { if (null != hm) {
log.info("选择门店后,获取到店员活码,clerkId={},inStoreId={}",hm.getClerkId(),inStoreId); log.info("选择门店后,获取到店员活码,clerkId={},inStoreId={}", hm.getClerkId(), inStoreId);
} }
} }
} }
......
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