Commit 777af585 by 墨竹

Merge remote-tracking branch 'origin/developer' into developer

parents 3787af53 31165474
...@@ -147,7 +147,6 @@ public interface TabHaobanHmQrcodeMapper { ...@@ -147,7 +147,6 @@ public interface TabHaobanHmQrcodeMapper {
*/ */
TabHaobanHmQrcode queryByClerkIdAndOverFlag(@Param("clerkId") String clerkId, TabHaobanHmQrcode queryByClerkIdAndOverFlag(@Param("clerkId") String clerkId,
@Param("wxEnterpriseId") String wxEnterpriseId, @Param("wxEnterpriseId") String wxEnterpriseId,
@Param("overFlag") Integer overFlag,
@Param("hmType") Integer hmType); @Param("hmType") Integer hmType);
/** /**
......
...@@ -123,7 +123,7 @@ public interface HmQrcodeService { ...@@ -123,7 +123,7 @@ public interface HmQrcodeService {
* @author mozhu * @author mozhu
* @date 2022-07-27 14:52:40 * @date 2022-07-27 14:52:40
*/ */
HmQrcodeBO queryByClerkId(String clerkId, String wxEnterpriseId, Integer overFlag,Integer hmType); HmQrcodeBO queryByClerkId(String clerkId, String wxEnterpriseId, Integer hmType);
/** /**
......
...@@ -109,9 +109,9 @@ public class HmQrcodeServiceImpl implements HmQrcodeService { ...@@ -109,9 +109,9 @@ public class HmQrcodeServiceImpl implements HmQrcodeService {
} }
@Override @Override
public HmQrcodeBO queryByClerkId(String clerkId, String wxEnterpriseId, Integer overFlag, Integer hmType) { public HmQrcodeBO queryByClerkId(String clerkId, String wxEnterpriseId, Integer hmType) {
return EntityUtil.changeEntity(HmQrcodeBO.class, return EntityUtil.changeEntity(HmQrcodeBO.class,
tabHaobanHmQrcodeMapper.queryByClerkIdAndOverFlag(clerkId, wxEnterpriseId, overFlag, hmType)); tabHaobanHmQrcodeMapper.queryByClerkIdAndOverFlag(clerkId, wxEnterpriseId, hmType));
} }
@Override @Override
......
package com.gic.haoban.manage.service.service.out.impl.hm; package com.gic.haoban.manage.service.service.out.impl.hm;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
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.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 com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.BasePageInfo; import com.gic.api.base.commons.BasePageInfo;
...@@ -13,10 +30,13 @@ import com.gic.enterprise.api.dto.StoreDTO; ...@@ -13,10 +30,13 @@ import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.utils.DingUtils; import com.gic.haoban.common.utils.DingUtils;
import com.gic.haoban.manage.api.dto.WxEnterpriseDTO; import com.gic.haoban.manage.api.dto.WxEnterpriseDTO;
import com.gic.haoban.manage.api.dto.hm.*; import com.gic.haoban.manage.api.dto.hm.HmLinkDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkStoreDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkStoreSettingDTO;
import com.gic.haoban.manage.api.dto.hm.HmLinkWxaDTO;
import com.gic.haoban.manage.api.dto.hm.HmPageDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO; import com.gic.haoban.manage.api.dto.qdto.hm.HmLinkSearchQDTO;
import com.gic.haoban.manage.api.service.hm.HmLinkApiService; import com.gic.haoban.manage.api.service.hm.HmLinkApiService;
import com.gic.haoban.manage.api.service.hm.HmQrcodeApiService;
import com.gic.haoban.manage.service.config.Config; import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper; import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated; import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
...@@ -29,27 +49,18 @@ import com.gic.haoban.manage.service.pojo.qo.HmQrcodeTempQO; ...@@ -29,27 +49,18 @@ import com.gic.haoban.manage.service.pojo.qo.HmQrcodeTempQO;
import com.gic.haoban.manage.service.service.KeyDataService; import com.gic.haoban.manage.service.service.KeyDataService;
import com.gic.haoban.manage.service.service.MemberQueryService; import com.gic.haoban.manage.service.service.MemberQueryService;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.service.hm.*; import com.gic.haoban.manage.service.service.hm.HmLinkService;
import com.gic.member.api.dto.MemberClerkDTO; import com.gic.haoban.manage.service.service.hm.HmLinkStoreService;
import com.gic.haoban.manage.service.service.hm.HmPageService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeService;
import com.gic.haoban.manage.service.service.hm.HmQrcodeTempService;
import com.gic.member.api.dto.es.MemberDataDTO; import com.gic.member.api.dto.es.MemberDataDTO;
import com.gic.member.api.dto.es.MemberStoreClerkDataDTO; import com.gic.member.api.dto.es.MemberStoreClerkDataDTO;
import com.gic.member.api.service.MemberClerkApiService;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.welcome.QywxExternalcontactDTO; import com.gic.wechat.api.dto.qywx.welcome.QywxExternalcontactDTO;
import com.gic.wechat.api.dto.qywx.welcome.QywxExternalcontactResultDTO; import com.gic.wechat.api.dto.qywx.welcome.QywxExternalcontactResultDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.logging.log4j.LogManager;
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 java.util.*;
import java.util.stream.Collectors;
@Service("hmLinkApiService") @Service("hmLinkApiService")
public class HmLinkApiServiceImpl implements HmLinkApiService { public class HmLinkApiServiceImpl implements HmLinkApiService {
...@@ -81,13 +92,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -81,13 +92,9 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
@Autowired @Autowired
private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper; private TabHaobanExternalClerkRelatedMapper tabHaobanExternalClerkRelatedMapper;
@Autowired @Autowired
private MemberClerkApiService memberClerkApiService;
@Autowired
private HmPageService hmPageService; private HmPageService hmPageService;
@Autowired @Autowired
private StoreService storeService; private StoreService storeService;
@Autowired
private HmQrcodeApiService hmQrcodeApiService;
@Override @Override
public ServiceResponse<String> getHmLinkUrl() { public ServiceResponse<String> getHmLinkUrl() {
...@@ -172,7 +179,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -172,7 +179,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
// 判断导购是否有活码,如果没有返回错误 // 判断导购是否有活码,如果没有返回错误
if (StringUtils.isNotBlank(inClerkId)) { if (StringUtils.isNotBlank(inClerkId)) {
hm = this.getHmFromClerk(inClerkId, wxEnterpriseId); hm = this.getHmFromClerk(inClerkId, wxEnterpriseId , memberId , enterpriseId);
if (null == hm) { if (null == hm) {
remarkMap.put("reason","无任何导购活码"); remarkMap.put("reason","无任何导购活码");
retDTO.setRemarkMap(remarkMap); retDTO.setRemarkMap(remarkMap);
...@@ -210,7 +217,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -210,7 +217,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
dy = store.getNdy(); dy = store.getNdy();
} }
} }
hm = this.getHmFormStore(wxEnterpriseId, inStoreId, dz, dy, new ArrayList<>()); hm = this.getHmFormStore(wxEnterpriseId, inStoreId, dz, dy, new ArrayList<>(),enterpriseId,memberId);
log.info("获取到的门店配置dz={},dy={},获取的活码={}", dz, dy, JSON.toJSONString(hm)); log.info("获取到的门店配置dz={},dy={},获取的活码={}", dz, dy, JSON.toJSONString(hm));
if (null == hm) { if (null == hm) {
remarkMap.put("reason","无任何导购活码"); remarkMap.put("reason","无任何导购活码");
...@@ -257,7 +264,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -257,7 +264,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
if(StringUtils.isNotBlank(mainClerkId)) { if(StringUtils.isNotBlank(mainClerkId)) {
clerkIdList.add(mainClerkId); clerkIdList.add(mainClerkId);
if (fwStore.getZs() == 1) { if (fwStore.getZs() == 1) {
hm = this.getHmFromClerk(mainClerkId, wxEnterpriseId); hm = this.getHmFromClerk(mainClerkId, wxEnterpriseId , memberId, enterpriseId);
if(null != hm) { if(null != hm) {
log.info("获取服务导购活码,mainClerkId={}",mainClerkId); log.info("获取服务导购活码,mainClerkId={}",mainClerkId);
remarkMap.put("sm", "主门店-服务导购"); remarkMap.put("sm", "主门店-服务导购");
...@@ -266,7 +273,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -266,7 +273,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
} }
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(),
clerkIdList); clerkIdList,enterpriseId,memberId);
if (null != hm) { if (null != hm) {
remarkMap.put("sm", "主门店-店长-店员"); remarkMap.put("sm", "主门店-店长-店员");
} }
...@@ -288,7 +295,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -288,7 +295,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
continue; continue;
} }
if(xgStore.getZs()==1) { if(xgStore.getZs()==1) {
hm = this.getHmFromClerk(clerkId, wxEnterpriseId); hm = this.getHmFromClerk(clerkId, wxEnterpriseId , memberId, enterpriseId);
if (null != hm) { if (null != hm) {
remarkMap.put("sm", "协管活码-主导购"); remarkMap.put("sm", "协管活码-主导购");
storeIdList = null; storeIdList = null;
...@@ -301,7 +308,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -301,7 +308,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
// 店长 // 店长
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, clerkIdList); hm = this.getHmFormStore(wxEnterpriseId, storeId, 1, 0, clerkIdList,enterpriseId,memberId);
if (null != hm) { if (null != hm) {
remarkMap.put("sm", "协管活码-店长"); remarkMap.put("sm", "协管活码-店长");
break; break;
...@@ -311,7 +318,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -311,7 +318,7 @@ 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, clerkIdList); hm = this.getHmFormStore(wxEnterpriseId, storeId, 0, 1, clerkIdList,enterpriseId,memberId);
if (null != hm) { if (null != hm) {
remarkMap.put("sm", "协管活码-店员"); remarkMap.put("sm", "协管活码-店员");
break; break;
...@@ -419,27 +426,10 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -419,27 +426,10 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return storeList ; return storeList ;
} }
// 先不排序,可以随机
private List<MemberStoreClerkDataDTO> sortMemberClerk(String enterpriseId, String memberId, private List<MemberStoreClerkDataDTO> sortMemberClerk(String enterpriseId, String memberId,
List<MemberStoreClerkDataDTO> list) { List<MemberStoreClerkDataDTO> list) {
ServiceResponse<List<MemberClerkDTO>> resp = this.memberClerkApiService.getMemberMainClerkList(enterpriseId, return list;
memberId);
if (!resp.isSuccess() && CollectionUtils.isEmpty(resp.getResult())) {
log.info("member主导购={},memberId", resp.getMessage(), memberId);
return list;
}
List<MemberStoreClerkDataDTO> retList = new ArrayList<>();
List<String> mainClerkIdList = resp.getResult().stream().map(dto -> dto.getClerkId())
.collect(Collectors.toList());
List<MemberStoreClerkDataDTO> notMainClerkList = new ArrayList<>();
for (MemberStoreClerkDataDTO item : list) {
if (mainClerkIdList.contains(item.getClerkIdRel())) {
retList.add(item);
} else {
notMainClerkList.add(item);
}
}
retList.addAll(notMainClerkList);
return retList;
} }
// 创建活码 // 创建活码
...@@ -487,16 +477,26 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -487,16 +477,26 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
return hm.getWxQrcode(); return hm.getWxQrcode();
} }
private HmQrcodeBO getHmFromClerk(String clerkId, String wxEnterpriseId) { private HmQrcodeBO getHmFromClerk(String clerkId, String wxEnterpriseId , String memberId , String enterpriseId) {
if (StringUtils.isBlank(clerkId) || "-1".equals(clerkId)) { if (StringUtils.isBlank(clerkId) || "-1".equals(clerkId)) {
return null; return null;
} }
HmQrcodeBO hm = this.hmQrcodeService.queryByClerkId(clerkId, wxEnterpriseId, 0,1); HmQrcodeBO hm = this.hmQrcodeService.queryByClerkId(clerkId, wxEnterpriseId,1);
// 已经达上线
if(null != hm && hm.getOverFlag()==1 && StringUtils.isNotBlank(memberId)) {
String staffId = hm.getStaffId();
TabHaobanExternalClerkRelated friend = tabHaobanExternalClerkRelatedMapper.getByMemberIdAndStaffId(staffId, enterpriseId, memberId);
if (null != friend) {
return hm ;
}else {
return null ;
}
}
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) { List<String> clerkIdList , String enterpriseId , String memberId) {
if (StringUtils.isBlank(inStoreId) || "-1".equals(inStoreId)) { if (StringUtils.isBlank(inStoreId) || "-1".equals(inStoreId)) {
return null; return null;
} }
...@@ -505,7 +505,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService { ...@@ -505,7 +505,7 @@ public class HmLinkApiServiceImpl implements HmLinkApiService {
if (null != dzClerk) { if (null != dzClerk) {
clerkIdList.add(dzClerk.getClerkId()); clerkIdList.add(dzClerk.getClerkId());
if (dz == 1) { if (dz == 1) {
hm = this.getHmFromClerk(dzClerk.getClerkId(), wxEnterpriseId); hm = this.getHmFromClerk(dzClerk.getClerkId(), wxEnterpriseId , memberId , enterpriseId);
if (null != hm) { if (null != hm) {
log.info("获取到店长活码,clerkId={},inStoreId={}", hm.getClerkId(), inStoreId); log.info("获取到店长活码,clerkId={},inStoreId={}", hm.getClerkId(), inStoreId);
} }
......
...@@ -311,7 +311,6 @@ ...@@ -311,7 +311,6 @@
from tab_haoban_hm_qrcode from tab_haoban_hm_qrcode
where clerk_id = #{clerkId} and status_flag = 1 where clerk_id = #{clerkId} and status_flag = 1
and wx_enterprise_id = #{wxEnterpriseId} and wx_enterprise_id = #{wxEnterpriseId}
and over_flag = #{overFlag}
<if test="hmType != null"> <if test="hmType != null">
and hm_type = #{hmType} and hm_type = #{hmType}
</if> </if>
......
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