短信、通知以及建店完成更新用户数据

This commit is contained in:
bianyadong
2024-05-10 19:05:20 +08:00
parent d5eb2b9def
commit 3f226b109e
15 changed files with 112 additions and 6 deletions

View File

@@ -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))),
;

View File

@@ -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", "建店完成后拉取店下的培训人员"),
;

View File

@@ -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"),
;

View File

@@ -143,4 +143,11 @@ public class EnterpriseUserDAO {
}
return enterpriseUserMapper.selectNameByUserId(userIdList);
}
public List<EnterpriseUserDO> getUserListByRegionId(Long regionId){
if(regionId == null){
return Lists.newArrayList();
}
return enterpriseUserMapper.getUserListByRegionId(regionId);
}
}

View File

@@ -180,4 +180,11 @@ public class RegionDao {
public List<RegionDO> getFightRegionByRegionIds(List<String> regionIds) {
return regionMapper.getFightRegionByRegionIds(regionIds);
}
public RegionDO getRegionByStoreId(String storeId) {
if (Objects.isNull(storeId)) {
return null;
}
return regionMapper.getRegionByStoreId(storeId);
}
}

View File

@@ -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);
}
}

View File

@@ -83,4 +83,10 @@ public interface EnterpriseUserMapper {
* @return
*/
List<String> getUserIdListByRegionId( @Param("regionId") Long regionId, @Param("userIdList") List<String> userId);
/**
* 获取部门人员
* @return
*/
List<EnterpriseUserDO> getUserListByRegionId( @Param("regionId") Long regionId);
}

View File

@@ -104,4 +104,5 @@ public interface RegionMapper {
RegionDO getBigRegionByRegionId(@Param("regionId") long regionId);
List<RegionDO> getFightRegionByRegionIds(@Param("regionIds") List<String> regionIds);
}

View File

@@ -22,4 +22,6 @@ public interface StoreMapper {
List<String> getStoreNumByStoreIds(@Param("storeIds") List<String> storeIds);
StoreDO getByStoreNum(@Param("storeNum") String storeNum);
}

View File

@@ -162,5 +162,11 @@
and user_region_ids like concat('%', #{regionId}, '%')
</select>
<select id="getUserListByRegionId" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>,
<include refid="Blob_Column_List"/>
from enterprise_user_${enterpriseId}
where user_region_ids like concat('%', #{regionId}, '%') and active = true
</select>
</mapper>

View File

@@ -73,5 +73,10 @@
</foreach>
</if>
</select>
<select id="getByStoreNum" resultMap="BaseResultMap">
select *
from store_${enterpriseId}
where store_num = #{storeNum}
</select>
</mapper>

View File

@@ -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<EnterpriseUserDO> 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)){

View File

@@ -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());
//发送短信

View File

@@ -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<Long> 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;
}

View File

@@ -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);
//更新阶段状态