Commit 5289be9a by 墨竹

feat:绑定的商户列表和门店列表

parent 49d13bd8
package com.gic.haoban.manage.api.service; package com.gic.haoban.manage.api.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
import com.gic.api.base.commons.Page; import com.gic.api.base.commons.Page;
import com.gic.haoban.base.api.common.BasePageInfo; import com.gic.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
...@@ -12,6 +8,10 @@ import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO; ...@@ -12,6 +8,10 @@ import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO; import com.gic.haoban.manage.api.dto.ExternalClerkRelatedShortInfoDTO;
import com.gic.haoban.manage.api.dto.FriendMemberStatusDTO; import com.gic.haoban.manage.api.dto.FriendMemberStatusDTO;
import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* Created by tgs on 2020/2/9. * Created by tgs on 2020/2/9.
...@@ -27,7 +27,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -27,7 +27,7 @@ public interface ExternalClerkRelatedApiService {
* @return : 返回会员导购关联关系 * @return : 返回会员导购关联关系
*/ */
List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId); List<ExternalClerkRelatedDTO> listByMemberIdAndWxEnterpriseId(String memberId, String wxEnterpriseId, String enterpriseId);
List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId, String enterpriseId); List<ExternalClerkRelatedDTO> listByMemberIdList(List<String> memberIdList, String wxEnterpriseId, String enterpriseId);
List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String staffId, String wxEnterpriseId); List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserId(String staffId, String wxEnterpriseId);
...@@ -46,7 +46,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -46,7 +46,7 @@ public interface ExternalClerkRelatedApiService {
* *
* @return * @return
*/ */
Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String wxUserId, List<Integer> statusFlags, BasePageInfo pageInfo); Page<ExternalClerkRelatedDTO> pageExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags, BasePageInfo pageInfo);
/** /**
* 推送外部联系人 更新次数以及状态 * 推送外部联系人 更新次数以及状态
...@@ -55,7 +55,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -55,7 +55,7 @@ public interface ExternalClerkRelatedApiService {
* @return * @return
*/ */
boolean pushExternalByRelationKey(String relationKey); boolean pushExternalByRelationKey(String relationKey);
@Deprecated @Deprecated
List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(String enterpriseId, Date date); List<ExternalClerkRelatedDTO> listByEnterpriseIdAndDate(String enterpriseId, Date date);
...@@ -66,6 +66,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -66,6 +66,7 @@ public interface ExternalClerkRelatedApiService {
/** /**
* 推送外部联系人 更新次数以及状态(会员回调-绑定好友) * 推送外部联系人 更新次数以及状态(会员回调-绑定好友)
*
* @param relationKey * @param relationKey
* @param enterpriseId * @param enterpriseId
* @param memberId * @param memberId
...@@ -154,11 +155,12 @@ public interface ExternalClerkRelatedApiService { ...@@ -154,11 +155,12 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu * @author mozhu
* @date 2022-03-29 10:19:24 * @date 2022-03-29 10:19:24
*/ */
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId,String enterpriseId); List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId, String enterpriseId);
/** /**
* 这个是所有企业下的会员关联关系 性能很差 * 这个是所有企业下的会员关联关系 性能很差
* 获取会员下的关联关系列表 * 获取会员下的关联关系列表
*
* @param memberId * @param memberId
* @return * @return
*/ */
...@@ -202,7 +204,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -202,7 +204,7 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu * @author mozhu
* @date 2021-12-23 15:43:03 * @date 2021-12-23 15:43:03
*/ */
Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId,String wxEnterpriseId); Map<String, List<ClerkStaffWxUserDTO>> listMemberStaffRel(List<String> memberIdList, List<String> clerkIdList, String enterpriseId, String wxEnterpriseId);
/** /**
...@@ -226,8 +228,9 @@ public interface ExternalClerkRelatedApiService { ...@@ -226,8 +228,9 @@ public interface ExternalClerkRelatedApiService {
/** /**
* 更新新的外部userid mq * 更新新的外部userid mq
* * <p>
* routerName :"updateNewExUserIdMq" * routerName :"updateNewExUserIdMq"
*
* @param res res * @param res res
* @author mozhu * @author mozhu
* @date 2021-12-30 16:24:02 * @date 2021-12-30 16:24:02
...@@ -243,7 +246,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -243,7 +246,7 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu * @author mozhu
* @date 2022-01-19 16:52:12 * @date 2022-01-19 16:52:12
*/ */
List<ExternalClerkRelatedShortInfoDTO> listByMemberIdAndEnterpriseId(String memberId,String enterpriseId); List<ExternalClerkRelatedShortInfoDTO> listByMemberIdAndEnterpriseId(String memberId, String enterpriseId);
/** /**
...@@ -268,7 +271,7 @@ public interface ExternalClerkRelatedApiService { ...@@ -268,7 +271,7 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu * @author mozhu
* @date 2022-04-21 10:03:44 * @date 2022-04-21 10:03:44
*/ */
boolean isExternalFriendByMemberId(String memberId,String enterpriseId); boolean isExternalFriendByMemberId(String memberId, String enterpriseId);
/** /**
* 得到好友状态 * 得到好友状态
...@@ -279,17 +282,20 @@ public interface ExternalClerkRelatedApiService { ...@@ -279,17 +282,20 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu * @author mozhu
* @date 2022-04-15 16:57:30 * @date 2022-04-15 16:57:30
*/ */
FriendMemberStatusDTO getFriendMemberStatus(String memberId,String enterpriseId); FriendMemberStatusDTO getFriendMemberStatus(String memberId, String enterpriseId);
/** /**
* * @param wxEnterpriseId
* @Title: initWxEnterpriseFrient * @throws
* @Description: 初始化整个商户的好友 * @Title: initWxEnterpriseFrient
* @author xugh * @Description: 初始化整个商户的好友
* @param wxEnterpriseId * @author xugh
* @throws
*/ */
void initWxEnterpriseFriend(String wxEnterpriseId) ; void initWxEnterpriseFriend(String wxEnterpriseId);
int getCountExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags);
} }
...@@ -371,4 +371,8 @@ public interface TabHaobanExternalClerkRelatedMapper { ...@@ -371,4 +371,8 @@ public interface TabHaobanExternalClerkRelatedMapper {
@Param("staffId") String staffId); @Param("staffId") String staffId);
List<String> listMemberAndClerk(@Param("memberIdList")List<String> memberIdList, @Param("clerkIdList")List<String> clerkIdList, @Param("enterpriseId")String enterpriseId); List<String> listMemberAndClerk(@Param("memberIdList")List<String> memberIdList, @Param("clerkIdList")List<String> clerkIdList, @Param("enterpriseId")String enterpriseId);
int getCountExternalClerk(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("staffId") String staffId,
@Param("statusFlags") List<Integer> statusFlags);
} }
\ No newline at end of file
...@@ -697,4 +697,9 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA ...@@ -697,4 +697,9 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
} }
} }
} }
@Override
public int getCountExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags) {
return tabHaobanExternalClerkRelatedMapper.getCountExternalClerk(wxEnterpriseId,staffId,statusFlags);
}
} }
...@@ -692,4 +692,16 @@ ...@@ -692,4 +692,16 @@
AND status_flag = 1 AND status_flag = 1
</select> </select>
<select id="getCountExternalClerk" resultType="java.lang.Integer">
select count(*)
from tab_haoban_external_clerk_related
where
wx_enterprise_id = #{wxEnterpriseId}
and staff_id = #{staffId}
and status_flag in
<foreach collection="statusFlags" open="(" close=")" separator="," item="item">
#{item}
</foreach>
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -1297,20 +1297,96 @@ public class ClerkController extends WebBaseController { ...@@ -1297,20 +1297,96 @@ public class ClerkController extends WebBaseController {
} }
/** /**
* 获取区经的绑定商户 * 绑定商户或者门店列表
* *
* @return * @return
*/ */
@RequestMapping(value = "/getManageEnterpriseByStaffId", method = RequestMethod.GET) @RequestMapping(value = "/getEnterpriseStoreListByStaffId", method = RequestMethod.GET)
public RestResponse<List<StaffStoreVO>> getManageEnterpriseByStaffId() { public RestResponse<List<StaffStoreVO>> getEnterpriseStoreListByStaffId(Integer manageFlag,String gicEnterpriseId) {
if (manageFlag == null) {
return RestResponse.failure(Convert.toStr(HaoBanErrCode.ERR_2.getCode()), HaoBanErrCode.ERR_2.getMsg());
}
String staffId = this.getLoginUser().getStaffId(); String staffId = this.getLoginUser().getStaffId();
String wxEnterpriseId = this.getLoginUser().getWxEnterpriseId(); String wxEnterpriseId = this.getLoginUser().getWxEnterpriseId();
List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listManageBindByStaffId(staffId); List<StaffClerkRelationDTO> bindRelationList = new ArrayList<>();
List<StaffStoreVO> list = new ArrayList<>(); List<StaffStoreVO> list = new ArrayList<>();
//区经商户
if (manageFlag == 1) {
bindRelationList = staffClerkRelationApiService.listManageBindByStaffId(staffId);
if (CollectionUtils.isEmpty(bindRelationList)) {
logger.info("没有关联任何商户导购:{}", wxEnterpriseId);
return RestResponse.successResult();
}
for (StaffClerkRelationDTO staffClerkRelationDTO : bindRelationList) {
String clerkId = staffClerkRelationDTO.getClerkId();
String enterpriseId = staffClerkRelationDTO.getEnterpriseId();
ClerkDTO clerk = clerkService.getclerkById(clerkId);
if (clerk == null) {
continue;
}
StaffDTO staffDTO = staffApiService.selectById(staffId);
if (staffDTO == null) {
continue;
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
if (wxEnterpriseDTO == null) {
continue;
}
EnterpriseDTO enterpriseDTO = enterpriseService.getEnterpriseById(enterpriseId);
if (enterpriseDTO == null) {
continue;
}
StaffStoreVO vo = new StaffStoreVO();
vo.setClerkCode(clerk.getClerkCode());
vo.setClerkId(clerk.getClerkId());
vo.setClerkType(clerk.getClerkType());
vo.setEnterpriseId(enterpriseId);
vo.setPhoneNumber(clerk.getPhoneNumber());
vo.setStaffId(staffId);
vo.setWxEnterpriseId(wxEnterpriseId);
vo.setClerkName(clerk.getClerkName());
vo.setHeadImg(staffDTO.getHeadImg());
vo.setBindFlag(1);
vo.setEnterpriseName(enterpriseDTO.getBrandName());
vo.setCorpName(wxEnterpriseDTO.getCorpName());
list.add(vo);
}
return RestResponse.successResult(list);
}
//门店列表
List<EnterpriseDetailDTO> enterpriseList = wxEnterpriseRelatedApiService.listEnterpriseByWxEnterpriseId(wxEnterpriseId);
if (CollectionUtils.isEmpty(enterpriseList)) {
logger.info("没有关联任何商户:{}", wxEnterpriseId);
return RestResponse.successResult();
}
List<String> enterpriseIdList = enterpriseList.stream().filter(dto -> {
String enterpriseId = dto.getEnterpriseId();
return !this.wxEnterpriseApiService.haobanIsStop(enterpriseId);
}).map(EnterpriseDetailDTO::getEnterpriseId).collect(Collectors.toList());
if (CollectionUtils.isEmpty(enterpriseIdList)) {
logger.info("没有关联任何商户或商户都已停用:{}", wxEnterpriseId);
return RestResponse.successResult();
}
Map<String, EnterpriseDetailDTO> enterpriseTypeMap = enterpriseList.stream().collect(Collectors.toMap(dto -> dto.getEnterpriseId(), dto -> dto));
bindRelationList =staffClerkRelationApiService.listBindCodeByStaffId(enterpriseIdList, staffId);
if (CollectionUtils.isEmpty(bindRelationList)) {
logger.info("没有关联任何商户导购:{}", wxEnterpriseId);
return RestResponse.successResult();
}
logger.info("成员绑定导购数据={}", JSON.toJSONString(bindRelationList));
for (StaffClerkRelationDTO staffClerkRelationDTO : bindRelationList) { for (StaffClerkRelationDTO staffClerkRelationDTO : bindRelationList) {
String clerkId = staffClerkRelationDTO.getClerkId(); String storeId = staffClerkRelationDTO.getStoreId();
String enterpriseId = staffClerkRelationDTO.getEnterpriseId(); StoreDTO store = storeService.getStore(storeId);
ClerkDTO clerk = clerkService.getclerkById(clerkId); if (store == null) {
continue;
}
String enterpriseId = store.getEnterpriseId();
if (StringUtils.isNotBlank(gicEnterpriseId) && !gicEnterpriseId.equals(enterpriseId)) {
logger.info("非当前商户,直接跳过={},{}", gicEnterpriseId, enterpriseId);
continue;
}
ClerkDTO clerk = clerkService.getClerkByClerkCode(enterpriseId, staffClerkRelationDTO.getClerkCode());
if (clerk == null) { if (clerk == null) {
continue; continue;
} }
...@@ -1326,22 +1402,55 @@ public class ClerkController extends WebBaseController { ...@@ -1326,22 +1402,55 @@ public class ClerkController extends WebBaseController {
if (enterpriseDTO == null) { if (enterpriseDTO == null) {
continue; continue;
} }
//主门店标志
int mainStoreFlag = 0;
EnterpriseDetailDTO enterpriseDetailDTO = enterpriseTypeMap.get(enterpriseId);
staffDepartmentRelatedApiService.listByStaffId(staffId);
StaffStoreVO vo = new StaffStoreVO(); StaffStoreVO vo = new StaffStoreVO();
vo.setClerkCode(clerk.getClerkCode()); vo.setClerkCode(clerk.getClerkCode());
vo.setWxEnterpriseType(enterpriseDetailDTO != null ? enterpriseDetailDTO.getWxEnterpriseType() : null);
vo.setMemberOpenCardFlag(enterpriseDetailDTO != null ? enterpriseDetailDTO.getMemberOpenCardFlag() : null);
vo.setClerkId(clerk.getClerkId()); vo.setClerkId(clerk.getClerkId());
vo.setClerkType(clerk.getClerkType()); vo.setClerkType(clerk.getClerkType());
vo.setEnterpriseId(enterpriseId); vo.setEnterpriseId(enterpriseId);
vo.setMainStoreFlag(mainStoreFlag);
vo.setPhoneNumber(clerk.getPhoneNumber()); vo.setPhoneNumber(clerk.getPhoneNumber());
vo.setStaffId(staffId); vo.setStaffId(staffId);
vo.setStoreId(clerk.getStoreId());
vo.setStoreImg(store.getStoreImage());
vo.setStoreName(store.getStoreName());
vo.setWxEnterpriseId(wxEnterpriseId); vo.setWxEnterpriseId(wxEnterpriseId);
vo.setClerkName(clerk.getClerkName()); vo.setClerkName(clerk.getClerkName());
vo.setHeadImg(staffDTO.getHeadImg()); vo.setHeadImg(staffDTO.getHeadImg());
vo.setBindFlag(1); vo.setBindFlag(1);
vo.setEnterpriseName(enterpriseDTO.getBrandName()); vo.setEnterpriseName(enterpriseDTO.getBrandName());
vo.setCorpName(wxEnterpriseDTO.getCorpName()); vo.setCorpName(wxEnterpriseDTO.getCorpName());
vo.setEnableHaoban(clerk.getEnableHaoban());
list.add(vo); list.add(vo);
} }
if (CollectionUtils.isEmpty(list)) {
return RestResponse.successResult(list);
}
List<String> storeIdList = list.stream().map(dto -> dto.getStoreId()).collect(Collectors.toList());
// 处理主门店
ClerkMainStoreRelatedDTO mainDTO = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId, storeIdList);
String mainStoreId = mainDTO == null ? "" : mainDTO.getStoreId();
if (null != mainStoreId) {
list.forEach(item -> {
if (item.getStoreId().equals(mainStoreId)) {
item.setMainStoreFlag(1);
}
});
}
return RestResponse.successResult(list); return RestResponse.successResult(list);
} }
@RequestMapping("external-friend-count")
public HaobanResponse friendCount(String staffId, List<Integer> statusFlags) {
StaffDTO staff = staffApiService.selectById(staffId);
int countExternalClerk = externalClerkRelatedApiService.getCountExternalClerk(staff.getWxEnterpriseId(), staffId, statusFlags);
return resultResponse(HaoBanErrCode.ERR_1, countExternalClerk);
}
} }
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