From 3f226b109e49fabe9756acc13fe041791caaf2ad Mon Sep 17 00:00:00 2001 From: bianyadong Date: Fri, 10 May 2024 19:05:20 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=AD=E4=BF=A1=E3=80=81=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E5=BB=BA=E5=BA=97=E5=AE=8C=E6=88=90=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=94=A8=E6=88=B7=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/RocketMqGroupEnum.java | 2 +- .../com/cool/store/enums/RocketMqTagEnum.java | 2 + .../java/com/cool/store/enums/SMSMsgEnum.java | 1 + .../com/cool/store/dao/EnterpriseUserDAO.java | 7 +++ .../java/com/cool/store/dao/RegionDao.java | 7 +++ .../java/com/cool/store/dao/StoreDao.java | 8 +++ .../store/mapper/EnterpriseUserMapper.java | 6 ++ .../com/cool/store/mapper/RegionMapper.java | 1 + .../com/cool/store/mapper/StoreMapper.java | 2 + .../resources/mapper/EnterpriseUserMapper.xml | 8 ++- .../src/main/resources/mapper/StoreMapper.xml | 5 ++ .../XfsgTrainingPersonSyncListener.java | 55 +++++++++++++++++-- .../impl/LineInterviewServiceImpl.java | 2 + .../store/service/impl/ShopServiceImpl.java | 5 ++ .../service/impl/SysStoreAppServiceImpl.java | 7 +++ 15 files changed, 112 insertions(+), 6 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java index ca49af01b..a96ff34ff 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqGroupEnum.java @@ -31,7 +31,7 @@ public enum RocketMqGroupEnum { * 事件消息监听 */ FEI_SHU_EVENT_LISTENER("fei_shu_event_listener", new ArrayList<>(Arrays.asList(RocketMqTagEnum.USER_EVENT, RocketMqTagEnum.AUTH_SCOPE_CHANGE, RocketMqTagEnum.DEPT_EVENT))), - SYNC_TRAINING_PERSON("sync_training_person", new ArrayList<>(Arrays.asList(RocketMqTagEnum.SYNC_TRAINING_PERSON))), + SYNC_TRAINING_PERSON("sync_training_person", new ArrayList<>(Arrays.asList(RocketMqTagEnum.SYNC_TRAINING_PERSON, RocketMqTagEnum.SYNC_TRAINING_SHOP_PERSON))), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java index 8014a6138..7d63426bd 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/RocketMqTagEnum.java @@ -16,6 +16,8 @@ public enum RocketMqTagEnum { DEPT_EVENT("dept_event","部门事件"), STORE_DING_QUEUE("store_ding_queue", "微应用钉钉消息发送"), SYNC_TRAINING_PERSON("sync_training_person", "建店完成后拉取培训人员"), + + SYNC_TRAINING_SHOP_PERSON("sync_training_shop_person", "建店完成后拉取店下的培训人员"), ; diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java index eb9ebe972..2b94136e7 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/SMSMsgEnum.java @@ -27,6 +27,7 @@ public enum SMSMsgEnum { LICENSE_NOT_PASS("证照未通过","","SMS_465971250"), FRANCHISE_FEE_SUBMITTED("缴纳加盟费待缴纳","","SMS_465921311"), FRANCHISE_FEE_NOT_PASS("缴纳加盟费缴纳失败","","SMS_465896262"), + TRAINING_REGISTER_SUCCESS("培训登记中", "", "SMS_466035101"), ; diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 48488b85f..c4c527a92 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -143,4 +143,11 @@ public class EnterpriseUserDAO { } return enterpriseUserMapper.selectNameByUserId(userIdList); } + + public List getUserListByRegionId(Long regionId){ + if(regionId == null){ + return Lists.newArrayList(); + } + return enterpriseUserMapper.getUserListByRegionId(regionId); + } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDao.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDao.java index 6b3df72c7..b62e08a56 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDao.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDao.java @@ -180,4 +180,11 @@ public class RegionDao { public List getFightRegionByRegionIds(List regionIds) { return regionMapper.getFightRegionByRegionIds(regionIds); } + + public RegionDO getRegionByStoreId(String storeId) { + if (Objects.isNull(storeId)) { + return null; + } + return regionMapper.getRegionByStoreId(storeId); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java index d332dc584..d6e22cdef 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/StoreDao.java @@ -48,5 +48,13 @@ public class StoreDao { return storeMapper.getStoreNumByStoreIds(storeIdList); } + public StoreDO getByStoreNum(String storeNum) { + if(StringUtils.isBlank(storeNum)) { + return null; + } + return storeMapper.getByStoreNum(storeNum); + } + + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index 2fda9754d..fa6c9ec69 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -83,4 +83,10 @@ public interface EnterpriseUserMapper { * @return */ List getUserIdListByRegionId( @Param("regionId") Long regionId, @Param("userIdList") List userId); + /** + * 获取部门人员 + * @return + */ + List getUserListByRegionId( @Param("regionId") Long regionId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java index e3c2e7c45..b7d8831c7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java @@ -104,4 +104,5 @@ public interface RegionMapper { RegionDO getBigRegionByRegionId(@Param("regionId") long regionId); List getFightRegionByRegionIds(@Param("regionIds") List regionIds); + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java index fa47e6293..d9f95274c 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/StoreMapper.java @@ -22,4 +22,6 @@ public interface StoreMapper { List getStoreNumByStoreIds(@Param("storeIds") List storeIds); + StoreDO getByStoreNum(@Param("storeNum") String storeNum); + } diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 326cd973a..349a94f84 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -162,5 +162,11 @@ and user_region_ids like concat('%', #{regionId}, '%') - + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml index 75ba2f165..19b0ea7e9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/StoreMapper.xml @@ -73,5 +73,10 @@ + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/XfsgTrainingPersonSyncListener.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/XfsgTrainingPersonSyncListener.java index 856f76b69..3343ba1fb 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/XfsgTrainingPersonSyncListener.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/consumer/listener/XfsgTrainingPersonSyncListener.java @@ -6,12 +6,10 @@ import com.aliyun.openservices.ons.api.ConsumeContext; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.MessageListener; import com.cool.store.constants.CommonConstants; -import com.cool.store.dao.ShopInfoDAO; -import com.cool.store.dao.TempUserDetailDAO; +import com.cool.store.dao.*; import com.cool.store.dto.ehr.StaffBaseInfoDTO; import com.cool.store.dto.ehr.SyncXfsgTrainingPersonInfoDTO; -import com.cool.store.entity.ShopInfoDO; -import com.cool.store.entity.TempUserDetailDO; +import com.cool.store.entity.*; import com.cool.store.enums.RocketMqTagEnum; import com.cool.store.enums.UserRoleEnum; import com.cool.store.service.XfsgEhrService; @@ -24,6 +22,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +import java.util.List; /** * 鲜丰门店下培训人员拉取 @@ -46,6 +45,15 @@ public class XfsgTrainingPersonSyncListener implements MessageListener { @Autowired public RedisUtilPool redisUtilPool; + @Autowired + public StoreDao storeDao; + + @Autowired + public RegionDao regionDao; + + @Autowired + public EnterpriseUserDAO enterpriseUserDAO; + @Override public Action consume(Message message, ConsumeContext context) { String text = new String(message.getBody()); @@ -61,6 +69,9 @@ public class XfsgTrainingPersonSyncListener implements MessageListener { case SYNC_TRAINING_PERSON: syncXfsgTrainingPerson(text); break; + case SYNC_TRAINING_SHOP_PERSON: + syncXfsgTrainingShopPerson(text); + break; } }catch (Exception e){ log.error("XfsgTrainingPersonSyncListener consume error",e); @@ -136,6 +147,42 @@ public class XfsgTrainingPersonSyncListener implements MessageListener { return tempUserDetailDO; } + public void syncXfsgTrainingShopPerson(String text) { + log.info("syncXfsgTrainingShopPerson, reqBody={}", text); + ShopInfoDO shopInfoDO = JSONObject.parseObject(text, ShopInfoDO.class); + if(StringUtils.isAnyBlank(shopInfoDO.getStoreNum())){ + log.info("syncXfsgTrainingShopPerson={}", text); + return; + } + + StoreDO storeDO = storeDao.getByStoreNum(shopInfoDO.getStoreNum()); + + if(storeDO == null){ + log.info("syncXfsgTrainingShopPerson门店不存在={}", text); + return; + } + + RegionDO regionDO = regionDao.getRegionByStoreId(storeDO.getStoreId()); + + if(regionDO == null){ + log.info("syncXfsgTrainingShopPerson区域不存在={}", text); + return; + } + + List enterpriseUserDOList = enterpriseUserDAO.getUserListByRegionId(regionDO.getId()); + + enterpriseUserDOList.forEach(enterpriseUserDO -> { + // 拉取培训人员 + SyncXfsgTrainingPersonInfoDTO syncXfsgTrainingPersonInfoDTO = SyncXfsgTrainingPersonInfoDTO.builder() + .jobnumber(enterpriseUserDO.getJobnumber()) + .idCard(enterpriseUserDO.getThirdOaUniqueFlag()) + .storeNum(storeDO.getStoreNum()) + .build(); + this.syncXfsgTrainingPerson(JSONObject.toJSONString(syncXfsgTrainingPersonInfoDTO)); + }); + + } + // 学历 0-小学 1-初中 2-高中 3-中专 4-大专 5-本科 6-硕士 7-硕士以上 private Integer fillEducational(String highestDegree) { if("小学".equals(highestDegree)){ diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java index 23791e02d..794199eb7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineInterviewServiceImpl.java @@ -442,6 +442,8 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt lineInfoDAO.updateLineInfo(updateLine); //初始化店铺 shopService.initShop(lineInfo); + //发送短信 + commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.TRAINING_REGISTER_SUCCESS, null); //二审稽核 auditStatusService.insert(lineInfo.getId(),interviewInfo.getId(),auditId,AuditStageEnum.TWO.getCode()); //发送短信 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java index f0c6cbabc..7e3c9b30d 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ShopServiceImpl.java @@ -3,6 +3,7 @@ package com.cool.store.service.impl; import com.cool.store.dao.*; import com.cool.store.entity.*; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.SMSMsgEnum; import com.cool.store.enums.point.*; import com.cool.store.exception.ServiceException; import com.cool.store.request.AddShopRequest; @@ -43,6 +44,8 @@ public class ShopServiceImpl implements ShopService { private PointInfoDAO pointInfoDAO; @Resource private PointRecommendDAO pointRecommendDAO; + @Resource + private CommonService commonService; @Override @Transactional(rollbackFor = Exception.class) @@ -139,6 +142,8 @@ public class ShopServiceImpl implements ShopService { shopInfoDAO.batchAddShop(addShopList); List shopIds = addShopList.stream().map(ShopInfoDO::getId).collect(Collectors.toList()); shopStageInfoDAO.initShopStageInfo(lineInfo.getId(), shopIds); + //发送短信 + commonService.sendSms(lineInfo.getMobile(), SMSMsgEnum.TRAINING_REGISTER_SUCCESS, null); return 1L; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SysStoreAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SysStoreAppServiceImpl.java index f040a64bf..22000f51f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SysStoreAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/SysStoreAppServiceImpl.java @@ -14,6 +14,7 @@ import com.cool.store.enums.prepare.newStore.PassengerFlowEnum; import com.cool.store.enums.prepare.newStore.StoreOperatorEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.*; +import com.cool.store.mq.producer.SimpleMessageService; import com.cool.store.request.AuditResultRequest; import com.cool.store.request.NewStoreRequest; import com.cool.store.request.SysStoreAppRequest; @@ -76,6 +77,9 @@ public class SysStoreAppServiceImpl implements SysStoreAppService,AuditResultSer @Resource CommonService commonService; + @Resource + SimpleMessageService simpleMessageService; + @Override @Transactional(rollbackFor = Exception.class) public ResponseResult submitSysBuildStore(SysStoreAppRequest request,LoginUserInfo user) { @@ -427,6 +431,9 @@ public class SysStoreAppServiceImpl implements SysStoreAppService,AuditResultSer preparationService.contractAndBuildStoreCompletion(shopId); LineInfoDO lineInfoDO = lineInfoMapper.getByLineId(shopInfoDO.getLineId()); commonService.sendSms(lineInfoDO.getMobile(), SMSMsgEnum.SYS_BUILD_STORE_DONE); + + // 异步处理 + simpleMessageService.send(JSONObject.toJSONString(shopInfoDO), RocketMqTagEnum.SYNC_TRAINING_SHOP_PERSON); } shopAuditInfoMapper.insertSelective(shopAuditInfoDO); //更新阶段状态