Commit 488ba86c by 徐高华

导购关联表关联成员状态

parent f5a1498b
......@@ -82,8 +82,6 @@ public interface StaffClerkRelationApiService {
*/
List<StaffClerkRelationDTO> listByStoreId(String storeId);
List<StaffClerkRelationDTO> listByStoreIds(List<String> storeIds);
/**
* 查询导购信息
* @param storeId
......
......@@ -14,130 +14,69 @@ public interface TabHaobanStaffClerkRelationMapper {
TabHaobanStaffClerkRelation selectByPrimaryKey(String staffClerkRelationId);
List<TabHaobanStaffClerkRelation> listBindCode(@Param("wxEnterpriseId") String wxEnterpriseId,
List<StaffClerkRelationDTO> listBindCode(@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId,
@Param("clerkCodeList") Set<String> clerkCodeList);
List<TabHaobanStaffClerkRelation> listBindCodeByStaffId(@Param("enterpriseIdList") List<String> enterpriseIdList, @Param("staffId") String staffId);
List<StaffClerkRelationDTO> listBindCodeByStaffId(@Param("enterpriseIdList") List<String> enterpriseIdList, @Param("staffId") String staffId);
TabHaobanStaffClerkRelation getOneByClerkId(@Param("clerkId") String clerkId);
StaffClerkRelationDTO getOneByClerkId(@Param("clerkId") String clerkId,@Param("wxEnterpriseId") String wxEnterpriseId);
StaffClerkRelationDTO getByCodeAndEnterpriseId(@Param("clerkCode") String clerkCode, @Param("enterpriseId") String enterpriseId);
List<StaffClerkRelationDTO> listByClerkIds(@Param("clerkIds") List<String> clerkIds, @Param("wxEnterpriseId") String wxEnterpriseId);
StaffClerkRelationDTO getOneByStoreIdAndStaffId(@Param("storeId") String storeId, @Param("staffId") String staffId);
/**
* 改变状态 格局clerkId
*
* @param clerkId
* @param status
* @return
*/
int changeStatusByClerkId(@Param("clerkId") String clerkId, @Param("status") Integer status);
/**
* 更新信息
*
* @param record
* @return
*/
int updateByClerkId(TabHaobanStaffClerkRelation record);
/**
* 格局clerkId 查询staffClerkRelation
*
* @param clerkId
* @param wxEnterpriseId
* @return
*/
TabHaobanStaffClerkRelation getBindByClerkId(@Param("clerkId") String clerkId, @Param("wxEnterpriseId") String wxEnterpriseId);
TabHaobanStaffClerkRelation getByCodeAndEnterpriseId(@Param("clerkCode") String clerkCode, @Param("enterpriseId") String enterpriseId);
/**
* 解绑
*/
void delByStoreIdAndCode(@Param("storeId") String storeId, @Param("clerkCode") String clerkCode);
/**
* 由职员id列表
*
* @param clerkIds 职员id
* @return {@link List<StaffClerkRelationDTO> }
* @author mozhu
* @date 2022-01-13 11:36:11
*/
List<StaffClerkRelationDTO> listByClerkIds(@Param("clerkIds") List<String> clerkIds, @Param("wxEnterpriseId") String wxEnterpriseId);
List<TabHaobanStaffClerkRelation> listByStoreId(@Param("storeId") String storeId);
TabHaobanStaffClerkRelation getOneByStoreIdAndStaffId(@Param("storeId") String storeId, @Param("staffId") String staffId);
/**
* 解绑
*/
int cleanStaffDepart(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffIds") List<String> staffIds);
TabHaobanStaffClerkRelation getOneBindStoreId(@Param("staffId") String staffId, @Param("storeId") String storeId);
TabHaobanStaffClerkRelation getByClerkId(@Param("clerkId") String clerkId, @Param("wxEnterpriseId") String wxEnterpriseId);
int delByPrimaryKey(@Param("staffClerkRelationId") String staffClerkRelationId);
void delByClerkId(@Param("clerkId") String clerkId);
List<TabHaobanStaffClerkRelation> listByEnterpriseIdAndStaffid(@Param("enterpriseId") String enterpriseId, @Param("staffId") String staffId);
List<StaffClerkRelationDTO> listByEnterpriseIdAndStaffid(@Param("enterpriseId") String enterpriseId, @Param("staffId") String staffId);
List<TabHaobanStaffClerkRelation> lisByStaffId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId, @Param("storeIdList") List<String> storeIdList);
List<StaffClerkRelationDTO> lisByStaffId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("staffId") String staffId, @Param("storeIdList") List<String> storeIdList);
TabHaobanStaffClerkRelation getByCodeAndStoreId(@Param("clerkCode") String clerkCode, @Param("storeId") String storeId);
StaffClerkRelationDTO getByCodeAndStoreId(@Param("clerkCode") String clerkCode, @Param("storeId") String storeId);
List<String> listByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
List<TabHaobanStaffClerkRelation> pageByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
List<StaffClerkRelationDTO> pageByWxEnterpriseId(@Param("wxEnterpriseId") String wxEnterpriseId);
List<StaffClerkRelationDTO> listBindByStoreId(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("storeId") String storeId);
/**
* 授权绑定的列表
*
* @param wxEnterpriseId
* @param storeIds
* @return
* 查询有关联的员工id列表
*/
List<TabHaobanStaffClerkRelation> listBindByStoreIds(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("storeIds") Set<String> storeIds);
List<String> listRelationsStaffId(@Param("staffIdList") Set<String> staffIdList);
/**
* 授权绑定的列表
*
* @param wxEnterpriseId
* @param storeIds
* @return
* 已使用的门店id列表
*/
List<TabHaobanStaffClerkRelation> listBindNotInStoreIds(@Param("wxEnterpriseId") String wxEnterpriseId, @Param("enterpriseId") String enterpriseId, @Param("storeIds") Set<String> storeIds);
List<StaffClerkRelationDTO> listBindStoreIdByEnterpriseId(String enterpriseId);
/**
* 删除绑定根据门店
*
* @param storeIds
*/
void delByStoreIds(@Param("storeIds") Set<String> storeIds);
/**
* 已使用的门店id列表
*
* @param enterpriseId
*/
List<TabHaobanStaffClerkRelation> listBindStoreIdByEnterpriseId(String enterpriseId);
/**
* 查询有关联的员工id列表
*
* @param staffIdList 员工id列表
* @return {@link List<String>}
* @author: YongEn
*/
List<String> listRelationsStaffId(@Param("staffIdList") Set<String> staffIdList);
/**
* 批量查询会员与导购关系并且返回关联信息(新企业)
* 批量查询会员与导购关系并且返回关联信息
*/
List<MemberStaffRelExtDO> listMemberStaffRelNew(
@Param("memberIdList") List<String> memberIdList,
......@@ -146,77 +85,24 @@ public interface TabHaobanStaffClerkRelationMapper {
/**
* 根据导购查询wxuserid
*
* @param clerkIds 职员id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link String }>
* @author mozhu
* @date 2022-07-07 15:26:34
*/
List<String> listWxUserIdByClerkIds(@Param("clerkIds") List<String> clerkIds,
@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 根据导购查询wxopenuserid
*
* @param clerkIds 职员id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link String }>
* @author mozhu
* @date 2022-08-09 00:42:31
*/
List<String> listWxOpenUserIdByClerkIds(@Param("clerkIds") List<String> clerkIds,
@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 通过open userId 查询id
*
* @param wxOpenUserIds wx开放用户id
* @param wxEnterpriseId wx企业标识
* @param enterpriseId 企业标识
* @return {@link List }<{@link StaffClerkRelationDTO }>
* @author mozhu
* @date 2022-08-08 21:51:22
*/
List<StaffClerkRelationDTO> listIdsByWxOpenUserIds(@Param("wxOpenUserIds") List<String> wxOpenUserIds,
@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId);
@Param("wxEnterpriseId") String wxEnterpriseId , @Param("type") int type);
/**
* id wx用户id列表
*
* @param wxUserIds wx用户id
* @param wxEnterpriseId wx企业标识
* @param enterpriseId 企业标识
* @return {@link List }<{@link StaffClerkRelationDTO }>
* @author mozhu
* @date 2022-08-16 14:35:28
*/
List<StaffClerkRelationDTO> listIdsByWxUserIds(@Param("wxUserIds") List<String> wxUserIds,
@Param("wxEnterpriseId") String wxEnterpriseId,
@Param("enterpriseId") String enterpriseId);
@Param("enterpriseId") String enterpriseId , @Param("type")int type);
/**
* 更新联系我状态
*
* @param openConcatFlag 打开concat国旗
* @param staffClerkRelationId 员工职员关系id
* @return int
* @author mozhu
* @date 2022-07-07 15:32:23
*/
int updateOpenConcatFlagById(@Param("openConcatFlag") Integer openConcatFlag, @Param("staffClerkRelationId") String staffClerkRelationId);
/**
* 通过openuserid 不在范围内 查询id
*
* @param wxOpenUserIds wx开放用户id
* @param wxEnterpriseId wx企业标识
* @param enterpriseId 企业标识
* @return {@link List }<{@link StaffClerkRelationDTO }>
* @author mozhu
* @date 2022-08-08 22:02:18
*/
List<StaffClerkRelationDTO> listIdsByNotInWxOpenUserIds(@Param("wxOpenUserIds") List<String> wxOpenUserIds,
@Param("wxEnterpriseId") String wxEnterpriseId,
......@@ -225,13 +111,6 @@ public interface TabHaobanStaffClerkRelationMapper {
/**
* 通过userid 不在范围内 查询id
*
* @param wxUserIds wx用户id
* @param wxEnterpriseId wx企业标识
* @param enterpriseId 企业标识
* @return {@link List }<{@link StaffClerkRelationDTO }>
* @author mozhu
* @date 2022-08-16 14:45:57
*/
List<StaffClerkRelationDTO> listIdsByNotInWxUserIds(@Param("wxUserIds") List<String> wxUserIds,
@Param("wxEnterpriseId") String wxEnterpriseId,
......@@ -241,16 +120,12 @@ public interface TabHaobanStaffClerkRelationMapper {
/**
* 获取区经
*
* @param enterpriseId 企业标识
* @return int
*/
int getBindByManage(@Param("enterpriseId") String enterpriseId);
int getBindByStaffIdAndEnterpriseId(@Param("enterpriseId") String enterpriseId, @Param("staffId") String staffId);
List<TabHaobanStaffClerkRelation> listManageBindByStaffId(@Param("staffId") String staffId);
List<StaffClerkRelationDTO> listManageBindByStaffId(@Param("staffId") String staffId);
List<TabHaobanStaffClerkRelation> listByStoreIds(@Param("storeIds") List<String> storeIds);
List<StaffClerkRelationDTO> listByStoreIds(@Param("wxEnterpriseId") String wxEnterpriseId,@Param("storeIds") List<String> storeIds);
}
\ No newline at end of file
......@@ -72,17 +72,17 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
@Override
public List<StaffClerkRelationDTO> listBindCode(String wxEnterpriseId, String enterpriseId, Set<String> clerkCodeList) {
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, mapper.listBindCode(wxEnterpriseId, enterpriseId, clerkCodeList));
return mapper.listBindCode(wxEnterpriseId, enterpriseId, clerkCodeList);
}
@Override
public List<StaffClerkRelationDTO> listBindCodeByStaffId(List<String> enterpriseIdList, String staffId) {
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, mapper.listBindCodeByStaffId(enterpriseIdList, staffId));
return mapper.listBindCodeByStaffId(enterpriseIdList, staffId);
}
@Override
public boolean delBind(String oldClerkId, String optStaffId, int channelCode, String newClerkId) {
TabHaobanStaffClerkRelation clerkRelation = mapper.getByClerkId(oldClerkId, null);
StaffClerkRelationDTO clerkRelation = mapper.getOneByClerkId(oldClerkId, null);
if (null == clerkRelation) {
logger.info("老的绑定关联不存在,clerkId={}", oldClerkId);
return true;
......@@ -126,13 +126,15 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
logger.info("没有传门店列表:{}", wxEnterpriseId);
return true;
}
List<TabHaobanStaffClerkRelation> needUnbind = mapper.listBindByStoreIds(wxEnterpriseId, storeIds);
List<String> storeIdList = new ArrayList<>();
storeIdList.addAll(storeIds) ;
List<StaffClerkRelationDTO> needUnbind = mapper.listByStoreIds(wxEnterpriseId, storeIdList);
if (CollectionUtils.isEmpty(needUnbind)) {
logger.info("没有门店绑定了需要解绑的:{}", wxEnterpriseId);
return true;
}
for (TabHaobanStaffClerkRelation staffClerkRelation : needUnbind) {
for (StaffClerkRelationDTO staffClerkRelation : needUnbind) {
String enterpriseId = staffClerkRelation.getEnterpriseId();
//删除好友通知会员
List<String> memberIds = externalClerkRelatedService.getByStoreIdAndStaffId(staffClerkRelation.getStoreId(), staffClerkRelation.getStaffId());
......@@ -146,7 +148,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
clerkMainStoreRelatedService.delMainStoreByStoreIds(storeIds);
//放入队列
staffClerkBindLogService.pushToMqBatch(optStaffId, BindTypeEnum.UNBIND.getVal(), channelCode, need);
for (TabHaobanStaffClerkRelation clerkRelation : needUnbind) {
for (StaffClerkRelationDTO clerkRelation : needUnbind) {
//废弃活码
String enterpriseId = clerkRelation.getEnterpriseId();
hmClerkRelationApiService.delByClerkId(clerkRelation.getClerkId(), enterpriseId, wxEnterpriseId, channelCode);
......@@ -212,13 +214,12 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
@Override
public StaffClerkRelationDTO getBindByClerkId(String clerkId, String wxEnterpriseId) {
TabHaobanStaffClerkRelation relation = mapper.getBindByClerkId(clerkId, wxEnterpriseId);
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, relation);
return mapper.getOneByClerkId(clerkId, wxEnterpriseId);
}
@Override
public StaffClerkRelationDTO getByCodeAndEnterpriseId(String clerkCode, String enterpriseId) {
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, mapper.getByCodeAndEnterpriseId(clerkCode, enterpriseId));
return mapper.getByCodeAndEnterpriseId(clerkCode, enterpriseId);
}
......@@ -254,17 +255,17 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
@Override
public StaffClerkRelationDTO getOneBindByStoreId(String staffId, String storeId) {
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, mapper.getOneBindStoreId(staffId, storeId));
return mapper.getOneByStoreIdAndStaffId(storeId,staffId);
}
@Override
public StaffClerkRelationDTO getByClerkId(String clerkId) {
return EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, mapper.getByClerkId(clerkId, null));
return mapper.getOneByClerkId(clerkId, null);
}
@Override
public StaffClerkRelationDTO getByClerkId(String clerkId, String wxEnterpriseId) {
TabHaobanStaffClerkRelation staffClerkRelation = mapper.getByClerkId(clerkId, wxEnterpriseId);
StaffClerkRelationDTO staffClerkRelation = mapper.getOneByClerkId(clerkId, wxEnterpriseId);
return EntityUtil.changeEntityNew(StaffClerkRelationDTO.class, staffClerkRelation);
}
......@@ -308,19 +309,19 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
@Override
public Page<StaffClerkRelationDTO> pageByWxEnterpriseId(String wxEnterpriseId, BasePageInfo pageInfo) {
PageHelper.startPage(pageInfo);
List<TabHaobanStaffClerkRelation> clerkBindList = mapper.pageByWxEnterpriseId(wxEnterpriseId);
List<StaffClerkRelationDTO> clerkBindList = mapper.pageByWxEnterpriseId(wxEnterpriseId);
Page<StaffClerkRelationDTO> retPage = PageUtil.changePageHelperToCurrentPage(new PageInfo<>(clerkBindList), StaffClerkRelationDTO.class);
return retPage;
}
@Override
public List<StaffClerkRelationDTO> listBindByStoreId(String wxEnterpriseId, String storeId) {
return mapper.listBindByStoreId(wxEnterpriseId, storeId);
return mapper.listByStoreIds(wxEnterpriseId, Arrays.asList(storeId));
}
@Override
public List<StaffClerkRelationDTO> listBindStoreIdByEnterpriseId(String enterpriseId) {
List<TabHaobanStaffClerkRelation> clerkRelations = mapper.listBindStoreIdByEnterpriseId(enterpriseId);
List<StaffClerkRelationDTO> clerkRelations = mapper.listBindStoreIdByEnterpriseId(enterpriseId);
if (CollectionUtils.isEmpty(clerkRelations)) {
return new ArrayList<>();
}
......@@ -339,9 +340,9 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO.needOpenUserId3th()) {
return mapper.listWxOpenUserIdByClerkIds(clerkList, wxEnterpriseId);
return mapper.listWxUserIdByClerkIds(clerkList, wxEnterpriseId,2);
}
return mapper.listWxUserIdByClerkIds(clerkList, wxEnterpriseId);
return mapper.listWxUserIdByClerkIds(clerkList, wxEnterpriseId,1);
}
@Override
......@@ -351,9 +352,9 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if (qwDTO.needOpenUserId3th()) {
return mapper.listIdsByWxOpenUserIds(wxUserIds, wxEnterpriseId, enterpriseId);
return mapper.listIdsByWxUserIds(wxUserIds, wxEnterpriseId, enterpriseId,2);
}
return mapper.listIdsByWxUserIds(wxUserIds, wxEnterpriseId, enterpriseId);
return mapper.listIdsByWxUserIds(wxUserIds, wxEnterpriseId, enterpriseId,1);
}
@Override
......@@ -385,6 +386,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
@Override
public List<StaffClerkRelationDTO> listManageBindByStaffId(String staffId) {
return EntityUtil.changeEntityListNew(StaffClerkRelationDTO.class, mapper.listManageBindByStaffId(staffId));
return mapper.listManageBindByStaffId(staffId);
}
}
......@@ -439,7 +439,7 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
@Override
public boolean isFriends(String memberId, String clerkId, String enterpriseId) {
TabHaobanStaffClerkRelation staffClerkRelation = staffClerkRelationMapper.getByClerkId(clerkId,null);
StaffClerkRelationDTO staffClerkRelation = staffClerkRelationMapper.getOneByClerkId(clerkId,null);
if (staffClerkRelation == null) {
return false;
}
......
......@@ -246,18 +246,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public List<StaffClerkRelationDTO> listByStoreId(String storeId) {
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByStoreId(storeId);
if (CollectionUtil.isEmpty(list)) {
return new ArrayList<>();
}
List<StaffClerkRelationDTO> result = EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list);
return result;
}
@Override
public List<StaffClerkRelationDTO> listByStoreIds(List<String> storeIds) {
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByStoreIds(storeIds);
return EntityUtil.changeEntityListNew(StaffClerkRelationDTO.class, list);
return tabHaobanStaffClerkRelationMapper.listByStoreIds(null,Arrays.asList(storeId));
}
@Override
......@@ -267,9 +256,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public StaffClerkRelationDTO getOneByClerkId(String clerkId) {
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
StaffClerkRelationDTO result = EntityUtil.changeEntityByJSON(StaffClerkRelationDTO.class, tab);
return result;
return tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId,null);
}
@Override
......@@ -284,13 +271,12 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
}
@Override
public StaffClerkRelationDTO getOneByStoreIdAndStaffId(String storeId,
String staffId) {
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByStoreIdAndStaffId(storeId, staffId);
public StaffClerkRelationDTO getOneByStoreIdAndStaffId(String storeId,String staffId) {
StaffClerkRelationDTO tab = tabHaobanStaffClerkRelationMapper.getOneByStoreIdAndStaffId(storeId, staffId);
if (tab == null) {
return null;
}
return EntityUtil.changeEntity(StaffClerkRelationDTO.class, tab);
return tab;
}
@Override
......@@ -338,8 +324,7 @@ public class StaffClerkRelationApiServiceImpl implements StaffClerkRelationApiSe
@Override
public List<StaffClerkRelationDTO> listByEnterpriseIdAndStaffid(String enterpriseId, String staffid) {
List<TabHaobanStaffClerkRelation> list = tabHaobanStaffClerkRelationMapper.listByEnterpriseIdAndStaffid(enterpriseId, staffid);
return EntityUtil.changeEntityListByJSON(StaffClerkRelationDTO.class, list);
return tabHaobanStaffClerkRelationMapper.listByEnterpriseIdAndStaffid(enterpriseId, staffid);
}
@Override
......
package com.gic.haoban.manage.service.service.out.impl;
import cn.hutool.core.collection.CollectionUtil;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import com.alibaba.fastjson.JSONObject;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.EntityUtil;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.dto.StaffDepartmentRelatedDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
......@@ -16,24 +33,14 @@ import com.gic.haoban.manage.api.util.notify.NoticeMessageUtil;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.StaffDepartmentRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.entity.TabHaobanStaffDepartmentRelated;
import com.gic.haoban.manage.service.service.StaffDepartmentRelatedService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.wechat.api.dto.qywx.ItemDTO;
import com.gic.wechat.api.dto.qywx.QywxXcxSendMessageDTO;
import com.gic.wechat.api.service.qywx.QywxSuiteApiService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.*;
import cn.hutool.core.collection.CollectionUtil;
@Service
public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRelatedApiService {
......@@ -135,7 +142,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
public Map<String, String> getWxUserIdByClerkId(String clerkId) {
Map<String, String> map = new HashMap<>();
TabHaobanStaffClerkRelation relation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId);
StaffClerkRelationDTO relation = tabHaobanStaffClerkRelationMapper.getOneByClerkId(clerkId,null);
if (relation == null) {
return map;
}
......@@ -267,7 +274,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
logger.info("店长不存在,发送消息失败{}", storeId);
return;
}
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(gicClerk.getClerkId());
StaffClerkRelationDTO tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(gicClerk.getClerkId(),null);
if (tab == null) {
logger.info("店长未绑定clerkId={}", gicClerk.getClerkId());
return;
......@@ -298,7 +305,7 @@ public class StaffDepartmentRelatedApiServiceImpl implements StaffDepartmentRela
logger.info("店长不存在,发送消息失败{}", storeId);
return;
}
TabHaobanStaffClerkRelation tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(gicClerk.getClerkId());
StaffClerkRelationDTO tab = tabHaobanStaffClerkRelationMapper.getOneByClerkId(gicClerk.getClerkId(),null);
if (tab == null) {
logger.info("店长未绑定clerkId={}", gicClerk.getClerkId());
return;
......
......@@ -17,8 +17,7 @@
<result column="clerk_type" property="clerkType" jdbcType="INTEGER"/>
</resultMap>
<sql id="Base_Column_List">
staff_clerk_relation_id
,
staff_clerk_relation_id,
staff_id,
wx_enterprise_id,
enterprise_id,
......@@ -54,41 +53,44 @@
</insert>
<select id="listBindCode" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and wx_enterprise_id = #{wxEnterpriseId} and status_flag = 1
and clerk_code in
<select id="listBindCode" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO" parameterType="java.lang.String">
<include refid="leftJoinStaffSQL"/>
where a.enterprise_id = #{enterpriseId}
and a.wx_enterprise_id = #{wxEnterpriseId} and a.status_flag = 1 and b.status_flag = 1
and a.clerk_code in
<foreach collection="clerkCodeList" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</select>
<select id="listBindCodeByStaffId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where staff_id = #{staffId,jdbcType=VARCHAR}
and status_flag = 1
<select id="listBindCodeByStaffId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.staff_id = #{staffId,jdbcType=VARCHAR}
and a.status_flag = 1 and b.status_flag = 1
<if test="enterpriseIdList!=null and enterpriseIdList.size &gt; 0">
and enterprise_id in
and a.enterprise_id in
<foreach collection="enterpriseIdList" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</if>
</select>
<select id="getOneByClerkId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where
status_flag = 1
and clerk_id = #{clerkId}
<select id="getOneByClerkId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.status_flag = 1 and a.clerk_id = #{clerkId} and b.status_flag = 1
<if test="null != wxEnterpriseId">
and a.wx_enterprise_id = #{wxEnterpriseId}
</if>
</select>
<select id="getByCodeAndEnterpriseId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.status_flag = 1 and b.status_flag = 1
and a.enterprise_id = #{enterpriseId}
and a.clerk_code = #{clerkCode} order by a.create_time desc limit 1
</select>
<update id="changeStatusByClerkId">
update tab_haoban_staff_clerk_relation
set status_flag = #{status},
......@@ -105,24 +107,6 @@
where clerk_id = #{clerkId,jdbcType=VARCHAR}
</update>
<select id="getBindByClerkId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where clerk_id = #{clerkId,jdbcType=VARCHAR} and wx_enterprise_id=#{wxEnterpriseId} and status_flag=1
</select>
<select id="getByCodeAndEnterpriseId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where
status_flag = 1
and enterprise_id = #{enterpriseId}
and clerk_code = #{clerkCode} order by create_time desc limit 1
</select>
<update id="delByStoreIdAndCode">
update tab_haoban_staff_clerk_relation
set status_flag = 0,
......@@ -132,21 +116,8 @@
and status_flag = 1
</update>
<select id="listByClerkIds" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO" parameterType="java.lang.String">
select a.staff_clerk_relation_id staffClerkRelationId,
a.staff_id staffId,
a.wx_enterprise_id wxEnterpriseId,
a.enterprise_id enterpriseId,
a.store_id storeId,
a.clerk_id clerkId,
a.clerk_code clerkCode,
a.status_flag statusFlag,
a.open_concat_flag openConcatFlag ,
a.clerk_type clerkType ,
a.manage_flag manageFlag ,
b.wx_user_id qwUserId,
b.wx_open_user_id openUserId
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on b.staff_id = a.staff_id
<select id="listByClerkIds" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.status_flag=1 and b.status_flag = 1
<if test="wxEnterpriseId != null and wxEnterpriseId != ''">
and a.wx_enterprise_id = #{wxEnterpriseId}
......@@ -157,24 +128,14 @@
</foreach>
</select>
<select id="listByStoreId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where status_flag=1
and store_id = #{storeId,jdbcType=VARCHAR}
</select>
<select id="getOneByStoreIdAndStaffId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where status_flag=1
and staff_id = #{staffId,jdbcType=VARCHAR}
<select id="getOneByStoreIdAndStaffId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL" />
where a.status_flag=1 and b.status_flag=1
and a.staff_id = #{staffId,jdbcType=VARCHAR}
<if test="null != storeId and storeId != ''">
and store_id = #{storeId}
and a.store_id = #{storeId}
</if>
order by update_time desc limit 1
order by a.update_time desc limit 1
</select>
......@@ -190,28 +151,6 @@
</foreach>
</update>
<select id="getOneBindStoreId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where store_id = #{storeId,jdbcType=VARCHAR}
and staff_id = #{staffId}
and status_flag=1
order by update_time desc limit 1
</select>
<select id="getByClerkId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where clerk_id = #{clerkId,jdbcType=VARCHAR}
and status_flag=1
<if test="wxEnterpriseId != null and wxEnterpriseId != ''">
and wx_enterprise_id = #{wxEnterpriseId}
</if>
order by create_time desc limit 1
</select>
<update id="delByPrimaryKey">
update tab_haoban_staff_clerk_relation
set status_flag = 0,
......@@ -228,55 +167,44 @@
and status_flag = 1
</update>
<select id="listByEnterpriseIdAndStaffid" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where
enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and staff_id = #{staffId}
<select id="listByEnterpriseIdAndStaffid" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL" />
where a.enterprise_id = #{enterpriseId,jdbcType=VARCHAR}
and a.staff_id = #{staffId} and a.status_flag=1 and b.status_flag=1
</select>
<select id="getByCodeAndStoreId" resultMap="BaseResultMap" parameterType="java.lang.String">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where
clerk_code = #{clerkCode}
and store_id = #{storeId}
and status_flag = 1
<select id="getByCodeAndStoreId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL" />
where a.clerk_code = #{clerkCode}
and a.store_id = #{storeId}
and a.status_flag = 1 and b.status_flag=1
</select>
<select id="listByWxEnterpriseId" resultType="String">
select staff_id
from tab_haoban_staff_clerk_relation
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag = 1
select a.staff_id
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and a.status_flag = 1 and b.status_flag = 1
</select>
<select id="lisByStaffId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where
wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and staff_id = #{staffId}
and status_flag = 1
<select id="lisByStaffId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL" />
where a.wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and a.staff_id = #{staffId}
and a.status_flag = 1 and b.status_flag = 1
<if test="null != storeIdList">
and store_id in
and a.store_id in
<foreach collection="storeIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
</if>
order by create_time desc
order by a.create_time desc
</select>
<select id="pageByWxEnterpriseId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag =1
<select id="pageByWxEnterpriseId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.wx_enterprise_id = #{wxEnterpriseId}
and a.status_flag =1
</select>
<select id="listBindByStoreId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
......@@ -299,34 +227,7 @@
and a.status_flag = 1
</select>
<select id="listBindByStoreIds" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where store_id in
<foreach collection="storeIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
<if test="wxEnterpriseId!=null">
and wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</if>
and status_flag =1
</select>
<select id="listBindNotInStoreIds" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where store_id NOT in
<foreach collection="storeIds" item="item" separator="," open="(" close=")">
#{item}
</foreach>
<if test="wxEnterpriseId!=null">
and wx_enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
</if>
and enterprise_id=#{enterpriseId}
and status_flag =1
</select>
<update id="delByStoreIds">
UPDATE
tab_haoban_staff_clerk_relation
......@@ -340,24 +241,21 @@
and status_flag =1
</update>
<select id="listBindStoreIdByEnterpriseId" resultMap="BaseResultMap">
select store_id,
wx_enterprise_id
from tab_haoban_staff_clerk_relation
where enterprise_id = #{wxEnterpriseId,jdbcType=VARCHAR}
and status_flag = 1
group by store_id
<select id="listBindStoreIdByEnterpriseId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL" />
where a.enterprise_id = #{wxEnterpriseId}
and a.status_flag = 1 and b.status_flag = 1
group by a.store_id
</select>
<select id="listRelationsStaffId" resultType="java.lang.String">
select staff_id
from tab_haoban_staff_clerk_relation
where staff_id in
select a.staff_id
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.staff_id in
<foreach collection="staffIdList" item="item" separator="," open="(" close=")">
#{item}
</foreach>
and status_flag = 1 group by staff_id;
and a.status_flag = 1 and b.status_flag = 1 group by a.staff_id;
</select>
<select id="listMemberStaffRelNew" resultType="com.gic.haoban.manage.service.entity.ext.MemberStaffRelExtDO">
......@@ -392,53 +290,21 @@
<select id="listWxUserIdByClerkIds" resultType="string">
select
<if test="type==1">
DISTINCT b.wx_user_id
from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.status_flag=1 and a.wx_enterprise_id = #{wxEnterpriseId}
and a.clerk_id in
<foreach collection="clerkIds" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</select>
<select id="listWxOpenUserIdByClerkIds" resultType="string">
select
</if>
<if test="type==2">
DISTINCT b.wx_open_user_id
</if>
from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.status_flag=1 and a.wx_enterprise_id = #{wxEnterpriseId}
where a.status_flag=1 and b.status_flag=1 and a.wx_enterprise_id = #{wxEnterpriseId}
and a.clerk_id in
<foreach collection="clerkIds" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</select>
<select id="listIdsByWxOpenUserIds" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
select
a.staff_clerk_relation_id staffClerkRelationId,
a.store_id storeId,
a.wx_enterprise_id wxEnterpriseId,
a.enterprise_id enterpriseId,
b.wx_user_id wxUserId,
a.staff_id staffId,
a.clerk_id clerkId,
b.staff_name staffName,
b.wx_open_user_id wxOpenUserId
from tab_haoban_staff_clerk_relation a
left join tab_haoban_staff b on b.staff_id = a.staff_id
where a.status_flag=1 and b.status_flag = 1
and a.wx_enterprise_id = #{wxEnterpriseId}
and a.enterprise_id = #{enterpriseId}
and b.wx_open_user_id in
<foreach collection="wxOpenUserIds" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
group by a.staff_clerk_relation_id
</select>
<select id="listIdsByWxUserIds" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
select
a.staff_clerk_relation_id staffClerkRelationId,
......@@ -455,10 +321,18 @@
where a.status_flag=1 and b.status_flag = 1
and a.wx_enterprise_id = #{wxEnterpriseId}
and a.enterprise_id = #{enterpriseId}
<if test="type==1">
and b.wx_user_id in
<foreach collection="wxUserIds" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</if>
<if test="type==2">
and b.wx_open_user_id in
<foreach collection="wxOpenUserIds" item="id" index="index" open="(" close=")" separator=",">
#{id,jdbcType=VARCHAR}
</foreach>
</if>
group by a.staff_clerk_relation_id
</select>
......@@ -526,38 +400,52 @@
<select id="getBindByManage" resultType="java.lang.Integer">
select count(*)
from tab_haoban_staff_clerk_relation
where status_flag = 1
and enterprise_id = #{enterpriseId}
and manage_flag = 1
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.status_flag = 1 and b.status_flag = 1
and a.enterprise_id = #{enterpriseId}
and a.manage_flag = 1
</select>
<select id="getBindByStaffIdAndEnterpriseId" resultType="java.lang.Integer">
select count(*)
from tab_haoban_staff_clerk_relation
where status_flag = 1
and enterprise_id = #{enterpriseId}
and staff_id = #{staffId}
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on a.staff_id = b.staff_id
where a.status_flag = 1 and b.status_flag = 1
and a.enterprise_id = #{enterpriseId}
and a.staff_id = #{staffId}
</select>
<select id="listManageBindByStaffId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"></include>
from tab_haoban_staff_clerk_relation
where status_flag=1 and manage_flag = 1 and staff_id = #{staffId}
<select id="listManageBindByStaffId" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.status_flag=1 and a.manage_flag = 1 and a.staff_id = #{staffId}
and b.status_flag = 1
</select>
<select id="listByStoreIds" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from tab_haoban_staff_clerk_relation
where status_flag=1
<if test="null != storeIds and storeIds.size gt 0">
and store_id in
<sql id="leftJoinStaffSQL">
select a.staff_clerk_relation_id staffClerkRelationId,
a.staff_id staffId,
a.wx_enterprise_id wxEnterpriseId,
a.enterprise_id enterpriseId,
a.store_id storeId,
a.clerk_id clerkId,
a.clerk_code clerkCode,
a.status_flag statusFlag,
a.open_concat_flag openConcatFlag ,
a.clerk_type clerkType ,
a.manage_flag manageFlag ,
b.wx_user_id qwUserId,
b.wx_open_user_id openUserId
from tab_haoban_staff_clerk_relation a left join tab_haoban_staff b on b.staff_id = a.staff_id
</sql>
<select id="listByStoreIds" resultType="com.gic.haoban.manage.api.dto.StaffClerkRelationDTO">
<include refid="leftJoinStaffSQL"/>
where a.status_flag=1 and b.status_flag=1 and a.store_id in
<foreach collection="storeIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="null != wxEnterpriseId">
and a.wx_enterprise_id = #{wxEnterpriseId}
</if>
</select>
......
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