Commit 4df90591 by 墨竹

feat:增加检查员工开启联系我接口,无活码并自动创建活码

parent 7daa6b0e
......@@ -108,13 +108,4 @@ public interface HmQrcodeApiService {
void checkStaffOpenContact(String param);
/**
* 检查员工开放联系mq
*
* @param param 参数
* @author mozhu
* @date 2022-07-07 14:34:56
*/
void checkStaffOpenContactMq(String param);
}
......@@ -193,22 +193,47 @@ public interface TabHaobanStaffClerkRelationMapper {
/**
* 根据导购查询wxuserid
*
* @param clerkIds 职员id
* @param clerkIds 职员id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link String }>
* @author mozhu
* @date 2022-07-05 14:52:21
* @date 2022-07-07 15:26:34
*/
List<String> listWxUserIdByClerkIds(@Param("clerkIds") List<String> clerkIds);
List<String> listWxUserIdByClerkIds(@Param("clerkIds") List<String> clerkIds,
@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 通过userId 查询id
*
* @param wxOpenUserIds wx开放用户id
* @param wxOpenUserIds wx开放用户id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link String }>
* @author mozhu
* @date 2022-07-07 15:08:57
* @date 2022-07-07 15:26:32
*/
List<StaffClerkRelationDTO> listIdsByWxOpenUserIds(@Param("wxOpenUserIds") List<String> wxOpenUserIds,
@Param("wxEnterpriseId") String wxEnterpriseId);
/**
* 更新联系我状态
*
* @param openConcatFlag 打开concat国旗
* @param staffClerkRelationId 员工职员关系id
* @return int
* @author mozhu
* @date 2022-07-07 15:32:23
*/
List<String> listIdsByWxOpenUserIds(@Param("wxOpenUserIds") List<String> wxOpenUserIds);
int updateOpenConcatFlagById(@Param("openConcatFlag") Integer openConcatFlag, @Param("staffClerkRelationId") String staffClerkRelationId);
/**
* 通过userid 不在范围内 查询id
*
* @param wxOpenUserIds wx开放用户id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link StaffClerkRelationDTO }>
* @author mozhu
* @date 2022-07-07 16:12:05
*/
List<StaffClerkRelationDTO> listIdsByNotInWxOpenUserIds(List<String> wxOpenUserIds, String wxEnterpriseId);
}
\ No newline at end of file
......@@ -83,7 +83,7 @@ public interface TabHaobanHmQrcodeMapper {
* @author mozhu
* @date 2022-07-06 15:36:20
*/
List<HmQrcodeBO> listByClerkId(@Param("clerkId") String clerkId, @Param("enterpriseId") String enterpriseId);
List<TabHaobanHmQrcode> listByClerkId(@Param("clerkId") String clerkId, @Param("enterpriseId") String enterpriseId);
/**
......@@ -95,7 +95,7 @@ public interface TabHaobanHmQrcodeMapper {
* @author mozhu
* @date 2022-07-06 16:59:49
*/
List<HmQrcodeBO> listByStoreId(@Param("storeId") String storeId,@Param("overFlag") Integer overFlag);
List<TabHaobanHmQrcode> listByStoreId(@Param("storeId") String storeId,@Param("overFlag") Integer overFlag);
/**
* 通过id添加num
......@@ -115,5 +115,16 @@ public interface TabHaobanHmQrcodeMapper {
* @date 2022-07-07 13:54:43
*/
void resetAddNumAndOverFlag();
/**
* 查询职员id 活码
*
* @param clerkId 职员id
* @param wxEnterpriseId wx企业标识
* @return {@link TabHaobanHmQrcode }
* @author mozhu
* @date 2022-07-07 15:55:12
*/
TabHaobanHmQrcode queryByClerkId(@Param("clerkId") String clerkId, @Param("wxEnterpriseId") String wxEnterpriseId);
}
......@@ -156,10 +156,46 @@ public interface StaffClerkRelationService {
/**
* 根据导购查询wxuserid
*
* @param clerkList 职员名单
* @param clerkList 职员名单
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link String }>
* @author mozhu
* @date 2022-07-05 14:53:02
* @date 2022-07-07 15:25:55
*/
List<String> listWxUserIdByClerkIds(List<String> clerkList,String wxEnterpriseId);
/**
* 通过userid 查询id
*
* @param wxOpenUserIds wx开放用户id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link String }>
* @author mozhu
* @date 2022-07-07 15:25:57
*/
List<StaffClerkRelationDTO> listIdsByWxOpenUserIds(List<String> wxOpenUserIds,String wxEnterpriseId);
/**
* 通过userid 不在范围内 查询id
*
* @param wxOpenUserIds wx开放用户id
* @param wxEnterpriseId wx企业标识
* @return {@link List }<{@link StaffClerkRelationDTO }>
* @author mozhu
* @date 2022-07-07 16:11:25
*/
List<StaffClerkRelationDTO> listIdsByNotInWxOpenUserIds(List<String> wxOpenUserIds,String wxEnterpriseId);
/**
* 更新联系我状态
*
* @param openConcatFlag 打开concat国旗
* @param staffClerkRelationId 员工职员关系id
* @return int
* @author mozhu
* @date 2022-07-07 15:34:27
*/
List<String> listWxUserIdByClerkIds(List<String> clerkList);
int updateOpenConcatFlagById(Integer openConcatFlag,String staffClerkRelationId);
}
......@@ -97,4 +97,27 @@ public interface HmQrcodeService {
* @date 2022-07-07 13:54:24
*/
void resetAddNumAndOverFlag();
/**
* 查询职员id活码
*
* @param clerkId 职员id
* @param WxEnterpriseId wx企业标识
* @return {@link HmQrcodeBO }
* @author mozhu
* @date 2022-07-07 15:53:32
*/
HmQrcodeBO queryByClerkId(String clerkId,String WxEnterpriseId);
/**
* 更新状态通过id
*
* @param hmId hm id
* @param statusFlag 状态标志
* @return int
* @author mozhu
* @date 2022-07-07 16:18:13
*/
int updateStatusById(Long hmId,Integer statusFlag);
}
......@@ -67,12 +67,12 @@ public class HmQrcodeServiceImpl implements HmQrcodeService {
@Override
public List<HmQrcodeBO> listByClerkId(String clerkId, String enterpriseId) {
return tabHaobanHmQrcodeMapper.listByClerkId(clerkId, enterpriseId);
return EntityUtil.changeEntityListNew(HmQrcodeBO.class,tabHaobanHmQrcodeMapper.listByClerkId(clerkId, enterpriseId));
}
@Override
public List<HmQrcodeBO> listByStoreId(String storeId, Integer overFlag) {
return tabHaobanHmQrcodeMapper.listByStoreId(storeId, overFlag);
return EntityUtil.changeEntityListNew(HmQrcodeBO.class,tabHaobanHmQrcodeMapper.listByStoreId(storeId, overFlag));
}
@Override
......@@ -84,4 +84,14 @@ public class HmQrcodeServiceImpl implements HmQrcodeService {
public void resetAddNumAndOverFlag() {
tabHaobanHmQrcodeMapper.resetAddNumAndOverFlag();
}
@Override
public HmQrcodeBO queryByClerkId(String clerkId, String WxEnterpriseId) {
return EntityUtil.changeEntity(HmQrcodeBO.class,tabHaobanHmQrcodeMapper.queryByClerkId(clerkId, WxEnterpriseId));
}
@Override
public int updateStatusById(Long hmId, Integer statusFlag) {
return tabHaobanHmQrcodeMapper.updateStatusById(statusFlag, hmId);
}
}
package com.gic.haoban.manage.service.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.Page;
import com.gic.commons.util.EntityUtil;
......@@ -81,7 +82,7 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
staffClerkBindLogService.pushToMq(clerkRelation.getStaffId(), optStaffId, BindTypeEnum.UNBIND.getVal(), chanelCode, clerkRelation.getStaffClerkRelationId());
//废弃活码
hmQrcodeApiService.delByClerkId(clerkId,clerkRelation.getEnterpriseId());
hmQrcodeApiService.delByClerkId(clerkId, clerkRelation.getEnterpriseId());
}
return b;
}
......@@ -150,8 +151,6 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
hmQrcodeQDTO.setWxEnterpriseId(wxEnterpriseId);
hmQrcodeQDTO.setEnterpriseId(dto.getEnterpriseId());
hmQrcodeQDTO.setName(tabHaobanStaff.getStaffName());
hmQrcodeQDTO.setCreateTime(now);
hmQrcodeQDTO.setUpdateTime(now);
hmQrcodeQDTO.setPassFlag(1);
hmQrcodeQDTO.setStoreId(dto.getStoreId());
hmQrcodeQDTO.setClerkIdList(Collections.singletonList(dto.getClerkId()));
......@@ -301,7 +300,22 @@ public class StaffClerkRelationServiceImpl implements StaffClerkRelationService
}
@Override
public List<String> listWxUserIdByClerkIds(List<String> clerkList) {
return mapper.listWxUserIdByClerkIds(clerkList);
public List<String> listWxUserIdByClerkIds(List<String> clerkList, String wxEnterpriseId) {
return mapper.listWxUserIdByClerkIds(clerkList, wxEnterpriseId);
}
@Override
public List<StaffClerkRelationDTO> listIdsByWxOpenUserIds(List<String> wxOpenUserIds, String wxEnterpriseId) {
return mapper.listIdsByWxOpenUserIds(wxOpenUserIds, wxEnterpriseId);
}
@Override
public List<StaffClerkRelationDTO> listIdsByNotInWxOpenUserIds(List<String> wxOpenUserIds, String wxEnterpriseId) {
return mapper.listIdsByNotInWxOpenUserIds(wxOpenUserIds, wxEnterpriseId);
}
@Override
public int updateOpenConcatFlagById(Integer openConcatFlag, String staffClerkRelationId) {
return mapper.updateOpenConcatFlagById(openConcatFlag, staffClerkRelationId);
}
}
......@@ -38,6 +38,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
......@@ -77,6 +78,7 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
logger.error("未查询到微信企业");
return 0;
}
hmQrcodeQDTO.setHmId(UniqueIdUtils.uniqueLong());
Integer hmType = hmQrcodeQDTO.getHmType();
Long hmId = hmQrcodeQDTO.getHmId();
......@@ -95,7 +97,7 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
qywxExternalcontactDTO.setRemark(hmQrcodeQDTO.getName());
qywxExternalcontactDTO.setSkipVerify(hmQrcodeQDTO.getPassFlag() == 1);
qywxExternalcontactDTO.setState("HM" + hmId);
List<String> userIds = staffClerkRelationService.listWxUserIdByClerkIds(clerkIdList);
List<String> userIds = staffClerkRelationService.listWxUserIdByClerkIds(clerkIdList,wxEnterpriseId);
qywxExternalcontactDTO.setUser(userIds);
QywxExternalcontactResultDTO qywxExternalcontactResultDTO = qywxUserApiService.addContactWay(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid(), qywxExternalcontactDTO);
if (qywxExternalcontactResultDTO != null) {
......@@ -127,7 +129,7 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
qywxExternalcontactDTO.setRemark(hmQrcodeQDTO.getName());
qywxExternalcontactDTO.setSkipVerify(hmQrcodeQDTO.getPassFlag() == 1);
qywxExternalcontactDTO.setState("HM" + hmId);
List<String> userIds = staffClerkRelationService.listWxUserIdByClerkIds(clerkIdList);
List<String> userIds = staffClerkRelationService.listWxUserIdByClerkIds(clerkIdList,wxEnterpriseId);
qywxExternalcontactDTO.setUser(userIds);
boolean flag = qywxUserApiService.updateContactWay(wxEnterpriseDTO.getCorpid(), config.getWxSuiteid(), qywxExternalcontactDTO);
if (!flag) {
......@@ -154,11 +156,18 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
storeDTO.setStoreCode(storeDTO.getStoreCode());
storeDTO.setStoreName(storeDTO.getStoreName());
}
//多人活码
if (hmType == 2) {
//多人活码
insertHmClerkRelation(hmQrcodeQDTO, wxEnterpriseId, hmId, clerkIdList);
} else {
} else if (hmType == 1) {
//单人活码
String clerkId = clerkIdList.get(0);
HmQrcodeBO hmQrcodeBO = hmQrcodeService.queryByClerkId(clerkId, wxEnterpriseId);
if (hmQrcodeBO != null) {
logger.error("该导购已经生成过活码:{}",clerkId);
return null;
}
hmQrcodeQDTO.setClerkId(clerkId);
ClerkDTO clerkDTO = clerkService.getclerkById(clerkId);
if (clerkDTO != null) {
......@@ -288,18 +297,47 @@ public class HmQrcodeApiServiceImpl implements HmQrcodeApiService {
for (TabHaobanWxEnterprise tabHaobanWxEnterpris : tabHaobanWxEnterprises) {
//查询出所有正常的导购
String wxEnterpriseId = tabHaobanWxEnterpris.getWxEnterpriseId();
//企微已经开启联系我
String wxUserIds = qywxUserApiService.listCorpExternalUser(tabHaobanWxEnterpris.getCorpid(), config.getWxSuiteid());
String[] split = wxUserIds.split(",");
List<String> wxUserIdsList = Arrays.asList(split);
List<StaffClerkRelationDTO> staffClerkRelationDTOS = staffClerkRelationService.listIdsByWxOpenUserIds(wxUserIdsList, wxEnterpriseId);
if (CollectionUtils.isEmpty(staffClerkRelationDTOS)) {
logger.error("无导购关联数据");
return;
}
for (StaffClerkRelationDTO staffClerkRelationDTO : staffClerkRelationDTOS) {
//具有联系我功能的导购创建活码
staffClerkRelationService.updateOpenConcatFlagById(1,staffClerkRelationDTO.getStaffClerkRelationId());
//创建活码
HmQrcodeQDTO hmQrcodeQDTO = new HmQrcodeQDTO();
hmQrcodeQDTO.setHmType(1);
hmQrcodeQDTO.setWxEnterpriseId(wxEnterpriseId);
hmQrcodeQDTO.setEnterpriseId(staffClerkRelationDTO.getEnterpriseId());
hmQrcodeQDTO.setName(staffClerkRelationDTO.getStaffName());
hmQrcodeQDTO.setPassFlag(1);
hmQrcodeQDTO.setStoreId(staffClerkRelationDTO.getStoreId());
hmQrcodeQDTO.setClerkIdList(Collections.singletonList(staffClerkRelationDTO.getClerkId()));
add(hmQrcodeQDTO);
}
List<StaffClerkRelationDTO> relationDTOS = staffClerkRelationService.listIdsByNotInWxOpenUserIds(wxUserIdsList, wxEnterpriseId);
if (CollectionUtils.isEmpty(relationDTOS)) {
logger.error("无导购不包含关联数据");
return;
}
for (StaffClerkRelationDTO relationDTO : relationDTOS) {
//有活码,但是企微联系我功能 被关闭
String clerkId = relationDTO.getClerkId();
HmQrcodeBO hmQrcodeBO = hmQrcodeService.queryByClerkId(clerkId, relationDTO.getWxEnterpriseId());
if (hmQrcodeBO == null) {
logger.info("导购无活码,无需处理:clerkId:{}",clerkId);
continue;
}
hmQrcodeService.updateStatusById(hmQrcodeBO.getHmId(),3);
}
}
logger.info("检查员工是否开启联系我,定时任务,end");
}
@Override
public void checkStaffOpenContactMq(String param) {
}
}
......@@ -271,7 +271,14 @@
<set>
add_num = 0,over_flag = 0,update_time = now()
</set>
where status_flag != 0
where status_flag in (1,3)
</update>
<select id="queryByClerkId" resultMap="TabHaobanHmQrcodeMap">
select *
from tab_haoban_hm_qrcode
where clerk_id = #{clerkId} and status_flag in (1,3) and wx_enterprise_id = #{wxEnterpriseId}
</select>
</mapper>
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