feat:通知接口

This commit is contained in:
苏竹红
2025-08-27 11:24:00 +08:00
parent 0ef79bf5fb
commit d5b1960996
13 changed files with 296 additions and 12 deletions

View File

@@ -3,6 +3,7 @@ package com.cool.store.service;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.dto.notice.NoticeDTO;
import com.cool.store.request.notice.*;
import com.cool.store.response.bigdata.ApiResponse;
import com.cool.store.vo.PartnerUserInfoVO;
import com.cool.store.vo.notice.*;
import com.github.pagehelper.PageInfo;
@@ -51,11 +52,17 @@ public interface MessageTemplateService {
/**
* batch 批量发布
* @param request
* @param user
* @param userId
* @return
*/
Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user);
Boolean batchPublishMessageTemplate(BatchPublishRequest request, String userId);
/**
* thirdMatterHandle 第三方接口处理
* @param thirdMatterRequest
* @return
*/
ApiResponse<Boolean> thirdMatterHandle(ThirdMatterRequest thirdMatterRequest);
/**
* 获取列表

View File

@@ -4,10 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.context.LoginUserInfo;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.MessageTemplateDAO;
import com.cool.store.dao.RegionDao;
import com.cool.store.dao.StoreMessageDAO;
import com.cool.store.dao.*;
import com.cool.store.dto.notice.CommonDTO;
import com.cool.store.dto.notice.MessageTemplateCountDTO;
import com.cool.store.dto.notice.NoticeDTO;
@@ -20,6 +17,7 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.StoreGroupMappingMapper;
import com.cool.store.mapper.StoreMapper;
import com.cool.store.request.notice.*;
import com.cool.store.response.bigdata.ApiResponse;
import com.cool.store.service.MessageTemplateService;
import com.cool.store.service.StoreService;
import com.cool.store.utils.CoolDateUtils;
@@ -65,6 +63,8 @@ public class MessageTemplateServiceImpl implements MessageTemplateService {
StoreMessageDAO storeMessageDAO;
@Resource
EnterpriseUserDAO enterpriseUserDAO;
@Resource
MatterConfigDAO matterConfigDAO;
@@ -135,7 +135,7 @@ public class MessageTemplateServiceImpl implements MessageTemplateService {
@Override
public Boolean batchPublishMessageTemplate(BatchPublishRequest request, LoginUserInfo user) {
public Boolean batchPublishMessageTemplate(BatchPublishRequest request, String userId) {
if (CollectionUtils.isEmpty(request.getIds())||CollectionUtils.isEmpty(request.getStoreInfoList())||CollectionUtils.isEmpty(request.getUserInfoList())){
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
}
@@ -180,11 +180,94 @@ public class MessageTemplateServiceImpl implements MessageTemplateService {
messageTemplateDAO.batchUpdateStoreInfoAndUserInfo(updateIds,
JSONObject.toJSONString(request.getStoreInfoList()),
JSONObject.toJSONString(request.getUserInfoList()),
user.getUserId());
userId);
return Boolean.TRUE;
}
@Override
public ApiResponse<Boolean> thirdMatterHandle(ThirdMatterRequest thirdMatterRequest) {
//第三方事项处理
MatterConfigDO matterConfig = matterConfigDAO.getById(thirdMatterRequest.getMatterConfigId());
//封装事项模版
MessageTemplateDO messageTemplateDO = new MessageTemplateDO();
messageTemplateDO.setMessageCode(getMessageTemplateCode());
messageTemplateDO.setModuleCode(matterConfig.getModuleCode());
messageTemplateDO.setMatterType(matterConfig.getMatterType());
messageTemplateDO.setMessageTitle(thirdMatterRequest.getMatterTitle());
messageTemplateDO.setSystemSource(matterConfig.getSystemSource());
messageTemplateDO.setProcessType(thirdMatterRequest.getProcessType());
messageTemplateDO.setRemindType(thirdMatterRequest.getRemindType());
if (RemindTypeEnum.STAGE_REMINDER.getCode().equals(thirdMatterRequest.getRemindType())){
messageTemplateDO.setRemindStartTime(thirdMatterRequest.getRemindStartTime());
messageTemplateDO.setRemindEndTime(thirdMatterRequest.getRemindEndTime());
}
messageTemplateDO.setDeadline(thirdMatterRequest.getDeadline());
messageTemplateDO.setTodayTask(thirdMatterRequest.getTodayTask());
messageTemplateDO.setMessageImage(thirdMatterRequest.getMessageImage());
messageTemplateDO.setPublishStatus(PublishStatusEnum.PUBLISHED.getCode());
messageTemplateDO.setJumpType(matterConfig.getJumpType());
messageTemplateDO.setJumpUrl(matterConfig.getJumpUrl());
if (MatterTypeEnum.LOGISTICS.getCode().equals(matterConfig.getMatterType())){
SceneEnum scene = SceneEnum.getByCode(thirdMatterRequest.getSceneCode());
messageTemplateDO.setMessageImage(scene.getScenePicture());
}
//如果是盘点 截止日期去当天
if (MatterTypeEnum.INVENTORY.getCode().equals(matterConfig.getMatterType())){
messageTemplateDO.setDeadline(new Date());
}
String storeInfo = matterConfig.getDefaultStoreInfo();
String userInfo = matterConfig.getDefaultHandlePersonInfo();
//门店
if (CollectionUtils.isNotEmpty(thirdMatterRequest.getShopCodeList())){
log.info("shopCodeList:{}",JSONObject.toJSONString(thirdMatterRequest.getShopCodeList()));
List<StoreDO> storeNumByStoreCodes = storeMapper.getStoreNumByStoreCodes(thirdMatterRequest.getShopCodeList());
if (CollectionUtils.isEmpty(storeNumByStoreCodes)){
//组装成门店信息
List<CommonDTO> storeList = new ArrayList<>();
storeNumByStoreCodes.forEach(x -> {
CommonDTO store = new CommonDTO("store", x.getStoreNum(), x.getStoreName());
storeList.add(store);
});
storeInfo = JSONObject.toJSONString(storeList);
}
}
//人员
List<EnterpriseUserDO> userInfoByUserMobileList = enterpriseUserDAO.getUserInfoByUserMobileList(thirdMatterRequest.getMobileList());
if (CollectionUtils.isEmpty(userInfoByUserMobileList)){
//组装人员信息
List<CommonDTO> userList = new ArrayList<>();
userInfoByUserMobileList.forEach(x -> {
CommonDTO user = new CommonDTO("user", x.getUserId(), x.getName());
userList.add(user);
});
userInfo = JSONObject.toJSONString(userList);
}
Boolean publishFlag = Boolean.TRUE;
//校验是否发布
if (StringUtils.isEmpty(userInfo)|| StringUtils.isEmpty(storeInfo)){
publishFlag = Boolean.FALSE;
messageTemplateDO.setPublishStatus(PublishStatusEnum.UNPUBLISHED.getCode());
}
int messageId = messageTemplateDAO.insert(messageTemplateDO);
//调用发布
if (publishFlag){
//开始计算人员门店
BatchPublishRequest batchPublishRequest = new BatchPublishRequest();
batchPublishRequest.setIds(Arrays.asList(Long.valueOf(messageId)));
batchPublishRequest.setStoreInfoList(JSONObject.parseArray(storeInfo, CommonDTO.class));
batchPublishRequest.setUserInfoList(JSONObject.parseArray(userInfo, CommonDTO.class));
try {
batchPublishMessageTemplate(batchPublishRequest,"");
} catch (ServiceException e) {
return new ApiResponse(e.getErrorCode(), e.getErrorMessage(), null);
}
return ApiResponse.success(Boolean.TRUE);
}
return ApiResponse.error(ErrorCodeEnum.MATTER_STORE_OR_USER_IS_NULL);
}
@Override
public PageInfo<NoticeDTO> getMessageTemplateList(MessageTemplateQueryRequest request) {