From 03191fa2f10c3064ee13087c2b30941b1607e248 Mon Sep 17 00:00:00 2001 From: Vinjor Date: Mon, 24 Feb 2025 14:20:14 +0800 Subject: [PATCH] 1 --- .../cn/iocoder/yudao/common/MessageSend.java | 1 + .../iocoder/yudao/common/dto/MessageDTO.java | 2 ++ .../module/notice/vo/DlBaseNoticeReqVO.java | 5 ++++ .../mapper/notice/DlBaseNoticeMapper.xml | 7 +++-- .../impl/DlDriveSchoolStaffServiceImpl.java | 9 +++++++ .../module/base/vo/DlDriveSchoolStaffVO.java | 7 +++++ .../mapper/base/DlDriveSchoolCoachMapper.xml | 3 +++ .../controller/admin/NotifyMessageSocket.java | 20 +++++++------- .../admin/RepairWorkerController.java | 6 +++-- .../base/service/RepairWorkerService.java | 4 +-- .../service/impl/RepairWorkerServiceImpl.java | 11 ++++---- .../impl/DlRepairBookingServiceImpl.java | 6 ++--- .../service/impl/RepairWaresServiceImpl.java | 13 +++++----- .../service/impl/DlRepairSoServiceImpl.java | 6 ++--- .../impl/DlRepairTicketsServiceImpl.java | 26 +++++++++---------- .../impl/DlTicketWaresServiceImpl.java | 9 ++++--- .../dto/NotifySendSingleToUserReqDTO.java | 4 +++ .../api/notify/NotifyMessageSendApiImpl.java | 4 +-- .../admin/notify/NotifyMessageController.java | 4 +-- .../notify/NotifyTemplateController.java | 4 +-- .../vo/template/NotifyTemplateSendReqVO.java | 4 +++ .../notify/ApiNotifyMessageController.java | 4 +-- .../dal/mysql/notify/NotifyMessageMapper.java | 3 ++- .../service/notify/NotifyMessageService.java | 7 ++--- .../notify/NotifyMessageServiceImpl.java | 11 ++++---- .../service/notify/NotifySendService.java | 6 ++--- .../service/notify/NotifySendServiceImpl.java | 15 ++++++----- 27 files changed, 124 insertions(+), 77 deletions(-) diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/MessageSend.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/MessageSend.java index deb65978..36c7a3c1 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/common/MessageSend.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/MessageSend.java @@ -45,6 +45,7 @@ public class MessageSend { new NotifySendSingleToUserReqDTO() .setUserId(id) .setTemplateCode(messageDTO.getTemplateCode()) + .setSystemCode(messageDTO.getSystemCode()) .setTemplateParams(map)); }); } diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/common/dto/MessageDTO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/common/dto/MessageDTO.java index c1ccb675..7a013573 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/common/dto/MessageDTO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/common/dto/MessageDTO.java @@ -18,6 +18,8 @@ public class MessageDTO { /** 模板枚举 */ private String templateCode; + /** 系统标识 */ + private String systemCode; /** 参数列表 */ private List paramList; diff --git a/dl-module-base/src/main/java/cn/iocoder/yudao/module/notice/vo/DlBaseNoticeReqVO.java b/dl-module-base/src/main/java/cn/iocoder/yudao/module/notice/vo/DlBaseNoticeReqVO.java index fcfb4cd3..caa6bb52 100644 --- a/dl-module-base/src/main/java/cn/iocoder/yudao/module/notice/vo/DlBaseNoticeReqVO.java +++ b/dl-module-base/src/main/java/cn/iocoder/yudao/module/notice/vo/DlBaseNoticeReqVO.java @@ -11,4 +11,9 @@ import lombok.Data; **/ @Data public class DlBaseNoticeReqVO extends DlBaseNotice { + + /** + * 公告类型(1通知 2公告 3操作指南),多个以英文逗号隔开 + */ + private String typeStr; } diff --git a/dl-module-base/src/main/resources/mapper/notice/DlBaseNoticeMapper.xml b/dl-module-base/src/main/resources/mapper/notice/DlBaseNoticeMapper.xml index 2595e0a6..9fc35a2a 100644 --- a/dl-module-base/src/main/resources/mapper/notice/DlBaseNoticeMapper.xml +++ b/dl-module-base/src/main/resources/mapper/notice/DlBaseNoticeMapper.xml @@ -35,8 +35,11 @@ and dbn.server = #{map.server} - - and dbn.type = #{map.type} + + and dbn.type IN + + #{item} + and dbn.status = #{map.status} diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStaffServiceImpl.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStaffServiceImpl.java index 6ddd8b97..1f298d77 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStaffServiceImpl.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/service/impl/DlDriveSchoolStaffServiceImpl.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.base.service.impl; +import cn.hutool.core.date.DateUtil; import cn.iocoder.yudao.module.base.service.DlDriveSchoolCoachService; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStaffService; import cn.iocoder.yudao.module.base.service.DlDriveSchoolStudentService; @@ -10,6 +11,7 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.Date; /** * 驾校人员管理通用接口实现类 @@ -44,6 +46,13 @@ public class DlDriveSchoolStaffServiceImpl implements DlDriveSchoolStaffService } else { //教练和员工 staffVOIPage = coachService.pageStaffCoach(staffVO,page); + staffVOIPage.getRecords().forEach(item->{ + if(null!=item.getCarRegisterDate()){ + //计算车龄 + Long carOld = DateUtil.betweenYear(item.getCarRegisterDate(),new Date(),true); + item.setCarOld(carOld); + } + }); } return staffVOIPage; } diff --git a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java index 4501c81c..be8f6501 100644 --- a/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java +++ b/dl-module-jx/src/main/java/cn/iocoder/yudao/module/base/vo/DlDriveSchoolStaffVO.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.module.base.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import java.util.Date; + @Schema(description = "驾校人员-手机APP查询专用接口") @Data public class DlDriveSchoolStaffVO { @@ -26,6 +28,11 @@ public class DlDriveSchoolStaffVO { private String courseTypes; /**用户ID*/ private Long userId; + /**车辆注册日期*/ + private Date carRegisterDate; + + /**车龄*/ + private Long carOld; /**时间查询类型(all-全部|day-当日|month-当月|more-自定义)*/ diff --git a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml index 89c90166..50f7da46 100644 --- a/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml +++ b/dl-module-jx/src/main/resources/mapper/base/DlDriveSchoolCoachMapper.xml @@ -32,10 +32,13 @@ main.car_id AS carId, main.phone AS phone, main.image AS avatar, + main.user_id AS userId, + dsc.car_register_date AS carRegisterDate, GROUP_CONCAT(DISTINCT dscc.course_type SEPARATOR ',') AS courseTypes FROM drive_school_coach main LEFT JOIN drive_school_coach_course dscc ON main.id = dscc.coach_id AND dscc.deleted = 0 + LEFT JOIN drive_school_car dsc ON main.user_id = dsc.user_id AND dsc.deleted = 0 main.deleted = 0 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/admin/NotifyMessageSocket.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/admin/NotifyMessageSocket.java index 4acfc31c..ae1b3ee8 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/admin/NotifyMessageSocket.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/app/controller/admin/NotifyMessageSocket.java @@ -17,7 +17,7 @@ import java.util.concurrent.ConcurrentHashMap; * @author vinjor-M * @date 10:22 2024/10/17 **/ -@ServerEndpoint(value = "/websocket/message/{tenantId}/{userId}") +@ServerEndpoint(value = "/websocket/message/{systemCode}/{tenantId}/{userId}") @Component public class NotifyMessageSocket { private final static Logger log = LoggerFactory.getLogger(NotifyMessageSocket.class); @@ -40,8 +40,8 @@ public class NotifyMessageSocket { * @param userId */ @OnOpen - public void onOpen(Session session, @PathParam(value = "tenantId") String tenantId,@PathParam(value = "userId") String userId) { - this.sessionMap.put(tenantId+"_"+userId,session); + public void onOpen(Session session,@PathParam(value = "systemCode") String systemCode, @PathParam(value = "tenantId") String tenantId,@PathParam(value = "userId") String userId) { + this.sessionMap.put(systemCode+"_"+tenantId+"_"+userId,session); log.info("{}租户下用户{}已创建连接", tenantId,userId); } @@ -68,8 +68,8 @@ public class NotifyMessageSocket { * @param userId */ @OnClose - public void onClose(Session session,@PathParam(value = "tenantId") String tenantId,@PathParam(value = "userId") String userId){ - this.sessionMap.remove(tenantId+"_"+userId); + public void onClose(Session session,@PathParam(value = "systemCode") String systemCode,@PathParam(value = "tenantId") String tenantId,@PathParam(value = "userId") String userId){ + this.sessionMap.remove(systemCode+"_"+tenantId+"_"+userId); } @@ -81,17 +81,17 @@ public class NotifyMessageSocket { * @param userId 用户id */ @OnError - public void onError(Throwable throwable,@PathParam(value = "tenantId") String tenantId,@PathParam(value = "userId") String userId){ - log.error("{}租户下用户{}已创建连接", tenantId,userId); + public void onError(Throwable throwable,@PathParam(value = "systemCode") String systemCode,@PathParam(value = "tenantId") String tenantId,@PathParam(value = "userId") String userId){ + log.error("{}系统{}租户下用户{}已创建连接", systemCode,tenantId,userId); } /** * 发送给指定的用户 * @param message */ - public void sendMessage(String message, String tenantId,String userId) throws IOException { - if (sessionMap.containsKey(tenantId+"_"+userId)){ - Session session = sessionMap.get(tenantId+"_"+userId); + public void sendMessage(String systemCode,String message, String tenantId,String userId) throws IOException { + if (sessionMap.containsKey(systemCode+"_"+tenantId+"_"+userId)){ + Session session = sessionMap.get(systemCode+"_"+tenantId+"_"+userId); session.getAsyncRemote().sendText(message); } } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java index b298da64..11fc9f02 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/controller/admin/RepairWorkerController.java @@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.base.controller.admin; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.MessageSend; +import cn.iocoder.yudao.common.SystemEnum; import cn.iocoder.yudao.common.dto.MessageDTO; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; @@ -150,7 +151,7 @@ public class RepairWorkerController { /** - * 测试给维修工发送消息---测试 + * 测试发送消息---测试 * @author vinjor-M * @date 18:08 2024/10/16 * @return cn.iocoder.yudao.framework.common.pojo.CommonResult @@ -167,9 +168,10 @@ public class RepairWorkerController { List paramList = new ArrayList<>(); paramList.add("测试"); paramList.add("3"); + messageDTO.setSystemCode(SystemEnum.SCHOOL.getCode()); messageDTO.setParamList(paramList); messageSend.send(messageDTO); - notifyMessageSocket.sendMessage("11","180",userId.toString()); + notifyMessageSocket.sendMessage(SystemEnum.SCHOOL.getCode(),"11","180",userId.toString()); } catch (IOException e) { e.printStackTrace(); } diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java index f1edb86f..a710ad75 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/RepairWorkerService.java @@ -85,7 +85,7 @@ public interface RepairWorkerService extends IService { * @param userId 用户id * @param text 消息通知内容 **/ - void sentMessage(Long userId,String text); + void sentMessage(String systemCode,Long userId,String text); /** * 向指定用户发送消息(用户,非员工) @@ -96,7 +96,7 @@ public interface RepairWorkerService extends IService { * @param text 消息通知内容 * @param isSMS 是否需要发短信 **/ - void sentMessageToCus(String ticketId, String text, Boolean isSMS); + void sentMessageToCus(String systemCode,String ticketId, String text, Boolean isSMS); /** * 通过班组长的id查该班组的员工 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java index 5110d502..59b33182 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/base/service/impl/RepairWorkerServiceImpl.java @@ -1,7 +1,6 @@ package cn.iocoder.yudao.module.base.service.impl; import cn.hutool.core.collection.CollectionUtil; -import cn.iocoder.yudao.common.RepairRoleEnum; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; @@ -200,7 +199,7 @@ public class RepairWorkerServiceImpl extends ServiceImpl allServicer = getAllServicer(TenantContextHolder.getRequiredTenantId()); // 发送消息通知 - allServicer.forEach(item -> repairWorkerService.sentMessage(item.getId(), message)); + allServicer.forEach(item -> repairWorkerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); } // 正常的新增、修改 diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairWaresServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairWaresServiceImpl.java index 4aa8e503..83ca85d3 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairWaresServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/project/service/impl/RepairWaresServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.RepairDictConstants; import cn.iocoder.yudao.common.RepairRoleEnum; +import cn.iocoder.yudao.common.SystemEnum; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.base.service.RepairWorkerService; @@ -260,8 +261,8 @@ public class RepairWaresServiceImpl extends ServiceImpl names = repairWares.stream().map(RepairWares::getName).collect(Collectors.toList()); String result = String.join(",", names); String message = "以下配件未使用天数超过设定的未使用天数提醒,请及时处理相关事项!" + result; - warehouse.forEach(item -> workerService.sentMessage(item.getId(), message)); - admin.forEach(item -> workerService.sentMessage(item.getId(), message)); + warehouse.forEach(item -> workerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); + admin.forEach(item -> workerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); } } @@ -292,8 +293,8 @@ public class RepairWaresServiceImpl extends ServiceImpl names = repairWares.stream().map(RepairWares::getName).collect(Collectors.toList()); String result = String.join(",", names); String message = "以下配件库存低于设定的库存不足提醒,请及时处理相关事项!\n" + result; - warehouse.forEach(item -> workerService.sentMessage(item.getId(), message)); - admin.forEach(item -> workerService.sentMessage(item.getId(), message)); + warehouse.forEach(item -> workerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); + admin.forEach(item -> workerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); } } @@ -310,10 +311,10 @@ public class RepairWaresServiceImpl extends ServiceImpl workerService.sentMessage(item.getId(), message)); + warehouse.forEach(item -> workerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); } if (CollUtil.isNotEmpty(admin)) { - admin.forEach(item -> workerService.sentMessage(item.getId(), message)); + admin.forEach(item -> workerService.sentMessage(SystemEnum.REPAIR.getCode(),item.getId(), message)); } } } \ No newline at end of file diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java index eb1de94e..89470bff 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/stockOperate/service/impl/DlRepairSoServiceImpl.java @@ -217,7 +217,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl sois = repairSoiService.list(new LambdaQueryWrapper().in(DlRepairSoi::getSoId, so.getId())); @@ -345,7 +345,7 @@ public class DlRepairSoServiceImpl extends ServiceImpl sois = repairSoiService.list(new LambdaQueryWrapper().eq(DlRepairSoi::getSoId, id)); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java index 274079a0..3b908845 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlRepairTicketsServiceImpl.java @@ -339,7 +339,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl dataList = dictDataApi.getDictDataList("repair_work_type"); DictDataRespDTO dictDataRespDTO = dataList.stream().filter(item -> item.getValue().equals(worker.getWorkType())).findFirst().orElse(null); String message = String.format("您的爱车%s已由%s %s接单了", tickets.getCarNo(), (dictDataRespDTO != null ? dictDataRespDTO.getLabel() : "维修工"), worker.getUserName()); - repairWorkerService.sentMessageToCus(id, message, false); + repairWorkerService.sentMessageToCus(SystemEnum.REPAIR.getCode(),id, message, false); // 更新工单主表时间 refreshUpdateTime(id); @@ -1188,7 +1188,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl() .setSql("now_repair_id = adviser_id") @@ -1331,7 +1331,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl { - repairWorkerService.sentMessage(id, message); + repairWorkerService.sentMessage(SystemEnum.REPAIR.getCode(),id, message); }); } @@ -1369,7 +1369,7 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl { - repairWorkerService.sentMessage(id, "待总检车牌为:" + item.getCarNo() + "工单已经超时,但无法自动总检,请手动处理"); + repairWorkerService.sentMessage(SystemEnum.REPAIR.getCode(),id, "待总检车牌为:" + item.getCarNo() + "工单已经超时,但无法自动总检,请手动处理"); }); } return flag; @@ -1960,9 +1960,9 @@ public class DlRepairTicketsServiceImpl extends ServiceImpl { - repairWorkerService.sentMessage(Long.valueOf(item.getAdviserId()), "您有新的工单可以出厂检验"); + repairWorkerService.sentMessage(SystemEnum.REPAIR.getCode(),Long.valueOf(item.getAdviserId()), "您有新的工单可以出厂检验"); ids.forEach(id -> { - repairWorkerService.sentMessage(id, "车牌为:" + item.getCarNo() + "工单已由系统自动总检并移交服务顾问"); + repairWorkerService.sentMessage(SystemEnum.REPAIR.getCode(),id, "车牌为:" + item.getCarNo() + "工单已由系统自动总检并移交服务顾问"); }); // 记录日志 repairRecordsService.saveRepairRecord(item.getId(), null, RecordTypeEnum.ZJ.getCode(), "该工单由系统自动总检完成", null); diff --git a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java index 28c04272..501a3e02 100644 --- a/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java +++ b/dl-module-repair/src/main/java/cn/iocoder/yudao/module/tickets/service/impl/DlTicketWaresServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.common.RecordTypeEnum; import cn.iocoder.yudao.common.RepairRoleEnum; import cn.iocoder.yudao.common.SoStatusEnum; +import cn.iocoder.yudao.common.SystemEnum; import cn.iocoder.yudao.framework.security.core.LoginUser; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; import cn.iocoder.yudao.module.base.entity.RepairWorker; @@ -237,7 +238,7 @@ public class DlTicketWaresServiceImpl extends ServiceImpl ids = permissionApi.getUserIdByRoleId(roleInfo.getId()); // 发通知 if (CollectionUtil.isNotEmpty(ids)) { - ids.forEach(id -> repairWorkerService.sentMessage(id, "您有新的配件申请单需要审核")); + ids.forEach(id -> repairWorkerService.sentMessage(SystemEnum.REPAIR.getCode(),id, "您有新的配件申请单需要审核")); } // 更新工单主表时间 @@ -376,7 +377,7 @@ public class DlTicketWaresServiceImpl extends ServiceImpl templateParams; + /** + * 业务系统标识 + */ + private String systemCode; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java index f1b0ae72..18e5c009 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/notify/NotifyMessageSendApiImpl.java @@ -20,13 +20,13 @@ public class NotifyMessageSendApiImpl implements NotifyMessageSendApi { @Override public Long sendSingleMessageToAdmin(NotifySendSingleToUserReqDTO reqDTO) { return notifySendService.sendSingleNotifyToAdmin(reqDTO.getUserId(), - reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + reqDTO.getTemplateCode(), reqDTO.getTemplateParams(),reqDTO.getSystemCode()); } @Override public Long sendSingleMessageToMember(NotifySendSingleToUserReqDTO reqDTO) { return notifySendService.sendSingleNotifyToMember(reqDTO.getUserId(), - reqDTO.getTemplateCode(), reqDTO.getTemplateParams()); + reqDTO.getTemplateCode(), reqDTO.getTemplateParams(),reqDTO.getSystemCode()); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java index 53212fa2..222eba9a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyMessageController.java @@ -90,9 +90,9 @@ public class NotifyMessageController { @GetMapping("/get-unread-count") @Operation(summary = "获得当前用户的未读站内信数量") @ApiAccessLog(enable = false) // 由于前端会不断轮询该接口,记录日志没有意义 - public CommonResult getUnreadNotifyMessageCount() { + public CommonResult getUnreadNotifyMessageCount(@RequestParam(value = "systemCode",required = false) String systemCode) { return success(notifyMessageService.getUnreadNotifyMessageCount( - getLoginUserId(), UserTypeEnum.ADMIN.getValue())); + getLoginUserId(), UserTypeEnum.ADMIN.getValue(),systemCode)); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java index 81c5d3a8..f16e289e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/NotifyTemplateController.java @@ -79,10 +79,10 @@ public class NotifyTemplateController { public CommonResult sendNotify(@Valid @RequestBody NotifyTemplateSendReqVO sendReqVO) { if (UserTypeEnum.MEMBER.getValue().equals(sendReqVO.getUserType())) { return success(notifySendService.sendSingleNotifyToMember(sendReqVO.getUserId(), - sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams(),sendReqVO.getSystemCode())); } else { return success(notifySendService.sendSingleNotifyToAdmin(sendReqVO.getUserId(), - sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams())); + sendReqVO.getTemplateCode(), sendReqVO.getTemplateParams(),sendReqVO.getSystemCode())); } } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java index 82cdf1f2..f15b95a3 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/notify/vo/template/NotifyTemplateSendReqVO.java @@ -24,5 +24,9 @@ public class NotifyTemplateSendReqVO { @Schema(description = "模板参数") private Map templateParams; + /** + * 业务系统标识 + */ + private String systemCode; } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/notify/ApiNotifyMessageController.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/notify/ApiNotifyMessageController.java index 498dc10c..ad8b9386 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/notify/ApiNotifyMessageController.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/app/notify/ApiNotifyMessageController.java @@ -77,7 +77,7 @@ public class ApiNotifyMessageController { @GetMapping("/get-unread-count") @Operation(summary = "获得当前用户的未读站内信数量") @ApiAccessLog(enable = false) // 由于前端会不断轮询该接口,记录日志没有意义 - public CommonResult getUnreadNotifyMessageCount() { - return success(notifyMessageService.getWXUnreadNotifyMessageCount(getLoginUserId())); + public CommonResult getUnreadNotifyMessageCount(@RequestParam(value = "systemCode",required = false) String systemCode) { + return success(notifyMessageService.getWXUnreadNotifyMessageCount(getLoginUserId(),systemCode)); } } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java index bd28549f..b6ad446a 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/notify/NotifyMessageMapper.java @@ -71,10 +71,11 @@ public interface NotifyMessageMapper extends BaseMapperX { .orderByDesc("id").limitN(size)); } - default Long selectUnreadCountByUserIdAndUserType(Long userId, Integer userType) { + default Long selectUnreadCountByUserIdAndUserType(Long userId, Integer userType,String systemCode) { return selectCount(new LambdaQueryWrapperX() .eq(NotifyMessageDO::getReadStatus, false) .eq(NotifyMessageDO::getUserId, userId) + .eqIfPresent(NotifyMessageDO::getSystemCode,systemCode) .eqIfPresent(NotifyMessageDO::getUserType, userType)); } diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java index aa428695..b40d9a99 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageService.java @@ -28,7 +28,7 @@ public interface NotifyMessageService { * @return 站内信编号 */ Long createNotifyMessage(Long userId, Integer userType, - NotifyTemplateDO template, String templateContent, Map templateParams); + NotifyTemplateDO template, String templateContent, Map templateParams,String systemCode); /** * 获得站内信分页 @@ -80,16 +80,17 @@ public interface NotifyMessageService { * * @param userId 用户编号 * @param userType 用户类型 + * @param systemCode 系统标识 systemCode * @return 返回未读站内信条数 */ - Long getUnreadNotifyMessageCount(Long userId, Integer userType); + Long getUnreadNotifyMessageCount(Long userId, Integer userType,String systemCode); /** * 统计用户未读站内信条数--微信小程序 * * @param userId 用户编号 * @return 返回未读站内信条数 */ - Long getWXUnreadNotifyMessageCount(Long userId); + Long getWXUnreadNotifyMessageCount(Long userId,String systemCode); /** * 标记站内信为已读 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java index b2a7dc07..88f347b6 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifyMessageServiceImpl.java @@ -29,9 +29,10 @@ public class NotifyMessageServiceImpl implements NotifyMessageService { @Override public Long createNotifyMessage(Long userId, Integer userType, - NotifyTemplateDO template, String templateContent, Map templateParams) { + NotifyTemplateDO template, String templateContent, Map templateParams,String systemCode) { NotifyMessageDO message = new NotifyMessageDO().setUserId(userId).setUserType(userType) .setTemplateId(template.getId()).setTemplateCode(template.getCode()) + .setSystemCode(systemCode) .setTemplateType(template.getType()).setTemplateNickname(template.getNickname()) .setTemplateContent(templateContent).setTemplateParams(templateParams).setReadStatus(false); notifyMessageMapper.insert(message); @@ -64,13 +65,13 @@ public class NotifyMessageServiceImpl implements NotifyMessageService { } @Override - public Long getUnreadNotifyMessageCount(Long userId, Integer userType) { - return notifyMessageMapper.selectUnreadCountByUserIdAndUserType(userId, userType); + public Long getUnreadNotifyMessageCount(Long userId, Integer userType,String systemCode) { + return notifyMessageMapper.selectUnreadCountByUserIdAndUserType(userId, userType,systemCode); } @Override @TenantIgnore - public Long getWXUnreadNotifyMessageCount(Long userId) { - return notifyMessageMapper.selectUnreadCountByUserIdAndUserType(userId, 1); + public Long getWXUnreadNotifyMessageCount(Long userId,String systemCode) { + return notifyMessageMapper.selectUnreadCountByUserIdAndUserType(userId, 1, systemCode); } @Override diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java index d848bcb7..7bebc2a0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendService.java @@ -21,7 +21,7 @@ public interface NotifySendService { * @return 发送日志编号 */ Long sendSingleNotifyToAdmin(Long userId, - String templateCode, Map templateParams); + String templateCode, Map templateParams,String systemCode); /** * 发送单条站内信给用户 APP 的用户 * @@ -33,7 +33,7 @@ public interface NotifySendService { * @return 发送日志编号 */ Long sendSingleNotifyToMember(Long userId, - String templateCode, Map templateParams); + String templateCode, Map templateParams,String systemCode); /** * 发送单条站内信给用户 @@ -45,7 +45,7 @@ public interface NotifySendService { * @return 发送日志编号 */ Long sendSingleNotify( Long userId, Integer userType, - String templateCode, Map templateParams); + String templateCode, Map templateParams,String systemCode); default void sendBatchNotify(List mobiles, List userIds, Integer userType, String templateCode, Map templateParams) { diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java index f71c5fe5..8c14b65e 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/notify/NotifySendServiceImpl.java @@ -13,7 +13,8 @@ import java.util.Map; import java.util.Objects; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTICE_NOT_FOUND; +import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.NOTIFY_SEND_TEMPLATE_PARAM_MISS; /** * 站内信发送 Service 实现类 @@ -32,17 +33,17 @@ public class NotifySendServiceImpl implements NotifySendService { private NotifyMessageService notifyMessageService; @Override - public Long sendSingleNotifyToAdmin(Long userId, String templateCode, Map templateParams) { - return sendSingleNotify(userId, UserTypeEnum.ADMIN.getValue(), templateCode, templateParams); + public Long sendSingleNotifyToAdmin(Long userId, String templateCode, Map templateParams,String systemCode) { + return sendSingleNotify(userId, UserTypeEnum.ADMIN.getValue(), templateCode, templateParams,systemCode); } @Override - public Long sendSingleNotifyToMember(Long userId, String templateCode, Map templateParams) { - return sendSingleNotify(userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams); + public Long sendSingleNotifyToMember(Long userId, String templateCode, Map templateParams,String systemCode) { + return sendSingleNotify(userId, UserTypeEnum.MEMBER.getValue(), templateCode, templateParams,systemCode); } @Override - public Long sendSingleNotify(Long userId, Integer userType, String templateCode, Map templateParams) { + public Long sendSingleNotify(Long userId, Integer userType, String templateCode, Map templateParams,String systemCode) { // 校验模版 NotifyTemplateDO template = validateNotifyTemplate(templateCode); if (Objects.equals(template.getStatus(), CommonStatusEnum.DISABLE.getStatus())) { @@ -54,7 +55,7 @@ public class NotifySendServiceImpl implements NotifySendService { // 发送站内信 String content = notifyTemplateService.formatNotifyTemplateContent(template.getContent(), templateParams); - return notifyMessageService.createNotifyMessage(userId, userType, template, content, templateParams); + return notifyMessageService.createNotifyMessage(userId, userType, template, content, templateParams,systemCode); } @VisibleForTesting