Commit 5289be9a by 墨竹

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

parent 49d13bd8
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.haoban.base.api.common.BasePageInfo;
import com.gic.haoban.base.api.common.ServiceResponse;
......@@ -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.FriendMemberStatusDTO;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* Created by tgs on 2020/2/9.
......@@ -46,7 +46,7 @@ public interface ExternalClerkRelatedApiService {
*
* @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);
/**
* 推送外部联系人 更新次数以及状态
......@@ -66,6 +66,7 @@ public interface ExternalClerkRelatedApiService {
/**
* 推送外部联系人 更新次数以及状态(会员回调-绑定好友)
*
* @param relationKey
* @param enterpriseId
* @param memberId
......@@ -154,11 +155,12 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu
* @date 2022-03-29 10:19:24
*/
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId,String enterpriseId);
List<ExternalClerkRelatedShortInfoDTO> listExternalClerkByMemberId(String memberId, String enterpriseId);
/**
* 这个是所有企业下的会员关联关系 性能很差
* 获取会员下的关联关系列表
*
* @param memberId
* @return
*/
......@@ -202,7 +204,7 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu
* @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 {
/**
* 更新新的外部userid mq
*
* <p>
* routerName :"updateNewExUserIdMq"
*
* @param res res
* @author mozhu
* @date 2021-12-30 16:24:02
......@@ -243,7 +246,7 @@ public interface ExternalClerkRelatedApiService {
* @author mozhu
* @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 {
* @author mozhu
* @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 {
* @author mozhu
* @date 2022-04-15 16:57:30
*/
FriendMemberStatusDTO getFriendMemberStatus(String memberId,String enterpriseId);
FriendMemberStatusDTO getFriendMemberStatus(String memberId, String enterpriseId);
/**
*
* @param wxEnterpriseId
* @throws
* @Title: initWxEnterpriseFrient
* @Description: 初始化整个商户的好友
* @author xugh
* @param wxEnterpriseId
* @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 {
@Param("staffId") String staffId);
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
}
}
}
@Override
public int getCountExternalClerk(String wxEnterpriseId, String staffId, List<Integer> statusFlags) {
return tabHaobanExternalClerkRelatedMapper.getCountExternalClerk(wxEnterpriseId,staffId,statusFlags);
}
}
......@@ -692,4 +692,16 @@
AND status_flag = 1
</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>
\ No newline at end of file
......@@ -1297,16 +1297,26 @@ public class ClerkController extends WebBaseController {
}
/**
* 获取区经的绑定商户
* 绑定商户或者门店列表
*
* @return
*/
@RequestMapping(value = "/getManageEnterpriseByStaffId", method = RequestMethod.GET)
public RestResponse<List<StaffStoreVO>> getManageEnterpriseByStaffId() {
@RequestMapping(value = "/getEnterpriseStoreListByStaffId", method = RequestMethod.GET)
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 wxEnterpriseId = this.getLoginUser().getWxEnterpriseId();
List<StaffClerkRelationDTO> bindRelationList = staffClerkRelationApiService.listManageBindByStaffId(staffId);
List<StaffClerkRelationDTO> bindRelationList = 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();
......@@ -1343,5 +1353,104 @@ public class ClerkController extends WebBaseController {
}
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) {
String storeId = staffClerkRelationDTO.getStoreId();
StoreDTO store = storeService.getStore(storeId);
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) {
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;
}
//主门店标志
int mainStoreFlag = 0;
EnterpriseDetailDTO enterpriseDetailDTO = enterpriseTypeMap.get(enterpriseId);
staffDepartmentRelatedApiService.listByStaffId(staffId);
StaffStoreVO vo = new StaffStoreVO();
vo.setClerkCode(clerk.getClerkCode());
vo.setWxEnterpriseType(enterpriseDetailDTO != null ? enterpriseDetailDTO.getWxEnterpriseType() : null);
vo.setMemberOpenCardFlag(enterpriseDetailDTO != null ? enterpriseDetailDTO.getMemberOpenCardFlag() : null);
vo.setClerkId(clerk.getClerkId());
vo.setClerkType(clerk.getClerkType());
vo.setEnterpriseId(enterpriseId);
vo.setMainStoreFlag(mainStoreFlag);
vo.setPhoneNumber(clerk.getPhoneNumber());
vo.setStaffId(staffId);
vo.setStoreId(clerk.getStoreId());
vo.setStoreImg(store.getStoreImage());
vo.setStoreName(store.getStoreName());
vo.setWxEnterpriseId(wxEnterpriseId);
vo.setClerkName(clerk.getClerkName());
vo.setHeadImg(staffDTO.getHeadImg());
vo.setBindFlag(1);
vo.setEnterpriseName(enterpriseDTO.getBrandName());
vo.setCorpName(wxEnterpriseDTO.getCorpName());
vo.setEnableHaoban(clerk.getEnableHaoban());
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);
}
@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