diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java index 560fdb2..48c839e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java @@ -112,4 +112,11 @@ @TableField("update_time") private String updateTime; + /** + * 用户id + */ + @ApiModelProperty(hidden = true) + @TableField(exist = false) + private Long read; + } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java index 560fdb2..48c839e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java @@ -112,4 +112,11 @@ @TableField("update_time") private String updateTime; + /** + * 用户id + */ + @ApiModelProperty(hidden = true) + @TableField(exist = false) + private Long read; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java new file mode 100644 index 0000000..afe084c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java @@ -0,0 +1,45 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 通知公告与用户关联表(记录已读) + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Data +@TableName("system_notice_user_relation") +public class SystemNoticeUserRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + /** + * 通知公告主键 + */ + @TableField("notice_id") + private Long noticeId; + + /** + * 用户主键 + */ + @TableField("user_id") + private Long userId; + + @TableField("create_time") + private String createTime; + + @TableField("update_time") + private String updateTime; + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java index 560fdb2..48c839e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java @@ -112,4 +112,11 @@ @TableField("update_time") private String updateTime; + /** + * 用户id + */ + @ApiModelProperty(hidden = true) + @TableField(exist = false) + private Long read; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java new file mode 100644 index 0000000..afe084c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java @@ -0,0 +1,45 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 通知公告与用户关联表(记录已读) + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Data +@TableName("system_notice_user_relation") +public class SystemNoticeUserRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + /** + * 通知公告主键 + */ + @TableField("notice_id") + private Long noticeId; + + /** + * 用户主键 + */ + @TableField("user_id") + private Long userId; + + @TableField("create_time") + private String createTime; + + @TableField("update_time") + private String updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java index 08b23c8..3e50989 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java @@ -3,19 +3,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.NoticeAddRequest; import com.casic.missiles.dto.system.NoticeListRequest; +import com.casic.missiles.dto.system.NoticeReadRequest; import com.casic.missiles.mapper.system.SystemNoticeMapper; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; import com.casic.missiles.model.system.SystemNotice; +import com.casic.missiles.model.system.SystemNoticeUserRelation; import com.casic.missiles.service.system.ISystemNoticeService; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + /** *

* 系统管理-通知公告表 服务实现类 @@ -28,21 +37,19 @@ public class SystemNoticeServiceImpl extends ServiceImpl implements ISystemNoticeService { @Autowired private SystemNoticeMapper noticeMapper; + @Autowired + private ISystemNoticeUserRelationService noticeUserRelationService; + @Autowired + private SystemNoticeUserRelationMapper noticeUserRelationMapper; @Override public Page listPage(Page page, NoticeListRequest request) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getNoticeNo()), "notice_no", request.getNoticeNo()); - wrapper.like(StringUtils.isNotBlank(request.getNoticeTitle()), "notice_title", request.getNoticeTitle()); - wrapper.like(StringUtils.isNotBlank(request.getNoticePublisher()), "notice_publisher", request.getNoticePublisher()); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeStartTime()), - "{0} <= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeStartTime().split(" ")[0]); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeEndTime()), - "{0} >= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeEndTime().split(" ")[0]); - wrapper.eq("is_del", 0); - wrapper.orderByDesc("notice_time"); - Page trainPlanPage = noticeMapper.selectPage(page, wrapper); - return trainPlanPage; + AuthUser user = ShiroKit.getUser(); + if(!Objects.isNull(user)){ + request.setUserId(user.getId()); + } + Page noticePage = noticeMapper.selectListPage(page, request); + return noticePage; } @Override @@ -71,8 +78,28 @@ @Override public ReturnDTO deleteNotice(Long id) { if(noticeMapper.deleteById(id) > 0){ + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("notice_id", id); + noticeUserRelationMapper.delete(wrapper); return ReturnUtil.success(); } return ReturnUtil.failed("刪除失败"); } + + @Override + public ReturnDTO noticeRead(NoticeReadRequest noticeReadRequest) { + Long userId = noticeReadRequest.getUserId(); + List ids = noticeReadRequest.getIds(); + List list = new ArrayList<>(); + ids.forEach(id -> { + SystemNoticeUserRelation noticeUserRelation = new SystemNoticeUserRelation(); + noticeUserRelation.setUserId(userId); + noticeUserRelation.setId(id); + list.add(noticeUserRelation); + }); + if(noticeUserRelationService.saveBatch(list)){ + return ReturnUtil.success(); + } + return ReturnUtil.failed(); + } } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java index 560fdb2..48c839e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java @@ -112,4 +112,11 @@ @TableField("update_time") private String updateTime; + /** + * 用户id + */ + @ApiModelProperty(hidden = true) + @TableField(exist = false) + private Long read; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java new file mode 100644 index 0000000..afe084c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java @@ -0,0 +1,45 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 通知公告与用户关联表(记录已读) + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Data +@TableName("system_notice_user_relation") +public class SystemNoticeUserRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + /** + * 通知公告主键 + */ + @TableField("notice_id") + private Long noticeId; + + /** + * 用户主键 + */ + @TableField("user_id") + private Long userId; + + @TableField("create_time") + private String createTime; + + @TableField("update_time") + private String updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java index 08b23c8..3e50989 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java @@ -3,19 +3,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.NoticeAddRequest; import com.casic.missiles.dto.system.NoticeListRequest; +import com.casic.missiles.dto.system.NoticeReadRequest; import com.casic.missiles.mapper.system.SystemNoticeMapper; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; import com.casic.missiles.model.system.SystemNotice; +import com.casic.missiles.model.system.SystemNoticeUserRelation; import com.casic.missiles.service.system.ISystemNoticeService; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + /** *

* 系统管理-通知公告表 服务实现类 @@ -28,21 +37,19 @@ public class SystemNoticeServiceImpl extends ServiceImpl implements ISystemNoticeService { @Autowired private SystemNoticeMapper noticeMapper; + @Autowired + private ISystemNoticeUserRelationService noticeUserRelationService; + @Autowired + private SystemNoticeUserRelationMapper noticeUserRelationMapper; @Override public Page listPage(Page page, NoticeListRequest request) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getNoticeNo()), "notice_no", request.getNoticeNo()); - wrapper.like(StringUtils.isNotBlank(request.getNoticeTitle()), "notice_title", request.getNoticeTitle()); - wrapper.like(StringUtils.isNotBlank(request.getNoticePublisher()), "notice_publisher", request.getNoticePublisher()); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeStartTime()), - "{0} <= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeStartTime().split(" ")[0]); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeEndTime()), - "{0} >= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeEndTime().split(" ")[0]); - wrapper.eq("is_del", 0); - wrapper.orderByDesc("notice_time"); - Page trainPlanPage = noticeMapper.selectPage(page, wrapper); - return trainPlanPage; + AuthUser user = ShiroKit.getUser(); + if(!Objects.isNull(user)){ + request.setUserId(user.getId()); + } + Page noticePage = noticeMapper.selectListPage(page, request); + return noticePage; } @Override @@ -71,8 +78,28 @@ @Override public ReturnDTO deleteNotice(Long id) { if(noticeMapper.deleteById(id) > 0){ + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("notice_id", id); + noticeUserRelationMapper.delete(wrapper); return ReturnUtil.success(); } return ReturnUtil.failed("刪除失败"); } + + @Override + public ReturnDTO noticeRead(NoticeReadRequest noticeReadRequest) { + Long userId = noticeReadRequest.getUserId(); + List ids = noticeReadRequest.getIds(); + List list = new ArrayList<>(); + ids.forEach(id -> { + SystemNoticeUserRelation noticeUserRelation = new SystemNoticeUserRelation(); + noticeUserRelation.setUserId(userId); + noticeUserRelation.setId(id); + list.add(noticeUserRelation); + }); + if(noticeUserRelationService.saveBatch(list)){ + return ReturnUtil.success(); + } + return ReturnUtil.failed(); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java new file mode 100644 index 0000000..d6eec71 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.service.Impl.system; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; +import org.springframework.stereotype.Service; + +/** + *

+ * 通知公告与用户关联表(记录已读) 服务实现类 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Service +public class SystemNoticeUserRelationServiceImpl extends ServiceImpl implements ISystemNoticeUserRelationService { + +} diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java index 560fdb2..48c839e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java @@ -112,4 +112,11 @@ @TableField("update_time") private String updateTime; + /** + * 用户id + */ + @ApiModelProperty(hidden = true) + @TableField(exist = false) + private Long read; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java new file mode 100644 index 0000000..afe084c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java @@ -0,0 +1,45 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 通知公告与用户关联表(记录已读) + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Data +@TableName("system_notice_user_relation") +public class SystemNoticeUserRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + /** + * 通知公告主键 + */ + @TableField("notice_id") + private Long noticeId; + + /** + * 用户主键 + */ + @TableField("user_id") + private Long userId; + + @TableField("create_time") + private String createTime; + + @TableField("update_time") + private String updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java index 08b23c8..3e50989 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java @@ -3,19 +3,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.NoticeAddRequest; import com.casic.missiles.dto.system.NoticeListRequest; +import com.casic.missiles.dto.system.NoticeReadRequest; import com.casic.missiles.mapper.system.SystemNoticeMapper; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; import com.casic.missiles.model.system.SystemNotice; +import com.casic.missiles.model.system.SystemNoticeUserRelation; import com.casic.missiles.service.system.ISystemNoticeService; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + /** *

* 系统管理-通知公告表 服务实现类 @@ -28,21 +37,19 @@ public class SystemNoticeServiceImpl extends ServiceImpl implements ISystemNoticeService { @Autowired private SystemNoticeMapper noticeMapper; + @Autowired + private ISystemNoticeUserRelationService noticeUserRelationService; + @Autowired + private SystemNoticeUserRelationMapper noticeUserRelationMapper; @Override public Page listPage(Page page, NoticeListRequest request) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getNoticeNo()), "notice_no", request.getNoticeNo()); - wrapper.like(StringUtils.isNotBlank(request.getNoticeTitle()), "notice_title", request.getNoticeTitle()); - wrapper.like(StringUtils.isNotBlank(request.getNoticePublisher()), "notice_publisher", request.getNoticePublisher()); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeStartTime()), - "{0} <= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeStartTime().split(" ")[0]); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeEndTime()), - "{0} >= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeEndTime().split(" ")[0]); - wrapper.eq("is_del", 0); - wrapper.orderByDesc("notice_time"); - Page trainPlanPage = noticeMapper.selectPage(page, wrapper); - return trainPlanPage; + AuthUser user = ShiroKit.getUser(); + if(!Objects.isNull(user)){ + request.setUserId(user.getId()); + } + Page noticePage = noticeMapper.selectListPage(page, request); + return noticePage; } @Override @@ -71,8 +78,28 @@ @Override public ReturnDTO deleteNotice(Long id) { if(noticeMapper.deleteById(id) > 0){ + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("notice_id", id); + noticeUserRelationMapper.delete(wrapper); return ReturnUtil.success(); } return ReturnUtil.failed("刪除失败"); } + + @Override + public ReturnDTO noticeRead(NoticeReadRequest noticeReadRequest) { + Long userId = noticeReadRequest.getUserId(); + List ids = noticeReadRequest.getIds(); + List list = new ArrayList<>(); + ids.forEach(id -> { + SystemNoticeUserRelation noticeUserRelation = new SystemNoticeUserRelation(); + noticeUserRelation.setUserId(userId); + noticeUserRelation.setId(id); + list.add(noticeUserRelation); + }); + if(noticeUserRelationService.saveBatch(list)){ + return ReturnUtil.success(); + } + return ReturnUtil.failed(); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java new file mode 100644 index 0000000..d6eec71 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.service.Impl.system; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; +import org.springframework.stereotype.Service; + +/** + *

+ * 通知公告与用户关联表(记录已读) 服务实现类 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Service +public class SystemNoticeUserRelationServiceImpl extends ServiceImpl implements ISystemNoticeUserRelationService { + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java index e9db086..f1b2fed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.system.NoticeAddRequest; import com.casic.missiles.dto.system.NoticeListRequest; +import com.casic.missiles.dto.system.NoticeReadRequest; import com.casic.missiles.model.system.SystemNotice; /** @@ -25,4 +26,5 @@ ReturnDTO deleteNotice(Long id); + ReturnDTO noticeRead(NoticeReadRequest noticeReadRequest); } diff --git a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java index 1bb8875..691aebd 100644 --- a/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java +++ b/casic-metering-api/src/main/java/com/casic/missiles/controller/system/SystemController.java @@ -263,4 +263,14 @@ }); return noticeService.deleteNotice(idDTO.getId()); } + + @ApiOperation("通知公告标记已读") + @PostMapping("/notice/read") + @ResponseBody + public ReturnDTO noticeRead(@RequestBody @Valid NoticeReadRequest noticeReadRequest, BindingResult bindingResult) { + if(bindingResult.hasErrors()){ + throw new BusinessException(CoreExceptionEnum.REQUEST_NULL.getCode(), bindingResult.getFieldError().getDefaultMessage()); + } + return noticeService.noticeRead(noticeReadRequest); + } } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java index fa6e8f9..1372bfc 100644 --- a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeMapper.java @@ -1,7 +1,10 @@ package com.casic.missiles.mapper.system; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.casic.missiles.dto.system.NoticeListRequest; import com.casic.missiles.model.system.SystemNotice; +import org.apache.ibatis.annotations.Param; /** *

@@ -13,4 +16,6 @@ */ public interface SystemNoticeMapper extends BaseMapper { Long selectMaxNoticeNo(); + + Page selectListPage(Page page, @Param("request") NoticeListRequest request); } diff --git a/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java new file mode 100644 index 0000000..bb54311 --- /dev/null +++ b/casic-metering-dao/src/main/java/com/casic/missiles/mapper/system/SystemNoticeUserRelationMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.mapper.system; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) Mapper 接口 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface SystemNoticeUserRelationMapper extends BaseMapper { + +} diff --git a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml index a4ecac7..6430f52 100644 --- a/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/business/BusinessOrderSampleRelationMapper.xml @@ -48,10 +48,10 @@ AND bo.customer_no LIKE concat('%',#{request.customerNo},'%')
- AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} @@ -125,10 +125,10 @@ AND bo.customer_name LIKE concat('%',#{request.customerName},'%') - AND bo.require_over_time <= #{request.startTime} + AND bo.require_over_time >= #{request.startTime} - AND bo.require_over_time > #{request.endTime} + AND bo.require_over_time < #{request.endTime} AND bo.is_urgent = #{request.isUrgent} diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml index 59119f8..6925c7f 100644 --- a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeMapper.xml @@ -16,6 +16,7 @@ + @@ -26,4 +27,27 @@ + + diff --git a/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml new file mode 100644 index 0000000..430a93d --- /dev/null +++ b/casic-metering-dao/src/main/resources/mapper/system/SystemNoticeUserRelationMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + id, notice_id, user_id, create_time, update_time + + + diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java index 4a1685f..a71e776 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeListRequest.java @@ -37,4 +37,7 @@ private String noticeStartTime; @ApiModelProperty(value = "发布时间(结束)", dataType = "String") private String noticeEndTime; + + @ApiModelProperty(hidden = true) + private Long userId; } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java new file mode 100644 index 0000000..628782c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/dto/system/NoticeReadRequest.java @@ -0,0 +1,28 @@ +package com.casic.missiles.dto.system; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * @Description: 通知公告已读请求实体 + * @Author: wangpeng + * @Date: 2023/3/7 14:32 + */ +@ApiModel +@Data +public class NoticeReadRequest { + + @NotNull(message = "登录用户id不能为空") + @ApiModelProperty(value = "登录用户id", dataType = "Long") + private Long userId; + + @NotEmpty(message = "主键id列表不能为空") + @ApiModelProperty(value = "主键id列表", dataType = "List") + private List ids; + +} diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java index 560fdb2..48c839e 100644 --- a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNotice.java @@ -112,4 +112,11 @@ @TableField("update_time") private String updateTime; + /** + * 用户id + */ + @ApiModelProperty(hidden = true) + @TableField(exist = false) + private Long read; + } diff --git a/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java new file mode 100644 index 0000000..afe084c --- /dev/null +++ b/casic-metering-model/src/main/java/com/casic/missiles/model/system/SystemNoticeUserRelation.java @@ -0,0 +1,45 @@ +package com.casic.missiles.model.system; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.io.Serializable; + +/** + *

+ * 通知公告与用户关联表(记录已读) + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Data +@TableName("system_notice_user_relation") +public class SystemNoticeUserRelation implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId("id") + private Long id; + + /** + * 通知公告主键 + */ + @TableField("notice_id") + private Long noticeId; + + /** + * 用户主键 + */ + @TableField("user_id") + private Long userId; + + @TableField("create_time") + private String createTime; + + @TableField("update_time") + private String updateTime; + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java index 08b23c8..3e50989 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeServiceImpl.java @@ -3,19 +3,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.core.model.auth.AuthUser; +import com.casic.missiles.core.shiro.ShiroKit; import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.ReturnUtil; import com.casic.missiles.dto.system.NoticeAddRequest; import com.casic.missiles.dto.system.NoticeListRequest; +import com.casic.missiles.dto.system.NoticeReadRequest; import com.casic.missiles.mapper.system.SystemNoticeMapper; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; import com.casic.missiles.model.system.SystemNotice; +import com.casic.missiles.model.system.SystemNoticeUserRelation; import com.casic.missiles.service.system.ISystemNoticeService; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; import com.casic.missiles.utils.ConvertUtils; import com.casic.missiles.utils.NumberGeneratorUtil; -import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + /** *

* 系统管理-通知公告表 服务实现类 @@ -28,21 +37,19 @@ public class SystemNoticeServiceImpl extends ServiceImpl implements ISystemNoticeService { @Autowired private SystemNoticeMapper noticeMapper; + @Autowired + private ISystemNoticeUserRelationService noticeUserRelationService; + @Autowired + private SystemNoticeUserRelationMapper noticeUserRelationMapper; @Override public Page listPage(Page page, NoticeListRequest request) { - QueryWrapper wrapper = new QueryWrapper<>(); - wrapper.like(StringUtils.isNotBlank(request.getNoticeNo()), "notice_no", request.getNoticeNo()); - wrapper.like(StringUtils.isNotBlank(request.getNoticeTitle()), "notice_title", request.getNoticeTitle()); - wrapper.like(StringUtils.isNotBlank(request.getNoticePublisher()), "notice_publisher", request.getNoticePublisher()); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeStartTime()), - "{0} <= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeStartTime().split(" ")[0]); - wrapper.apply(StringUtils.isNotBlank(request.getNoticeEndTime()), - "{0} >= DATE_FORMAT(notice_time,'%Y-%m-%d')", request.getNoticeEndTime().split(" ")[0]); - wrapper.eq("is_del", 0); - wrapper.orderByDesc("notice_time"); - Page trainPlanPage = noticeMapper.selectPage(page, wrapper); - return trainPlanPage; + AuthUser user = ShiroKit.getUser(); + if(!Objects.isNull(user)){ + request.setUserId(user.getId()); + } + Page noticePage = noticeMapper.selectListPage(page, request); + return noticePage; } @Override @@ -71,8 +78,28 @@ @Override public ReturnDTO deleteNotice(Long id) { if(noticeMapper.deleteById(id) > 0){ + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("notice_id", id); + noticeUserRelationMapper.delete(wrapper); return ReturnUtil.success(); } return ReturnUtil.failed("刪除失败"); } + + @Override + public ReturnDTO noticeRead(NoticeReadRequest noticeReadRequest) { + Long userId = noticeReadRequest.getUserId(); + List ids = noticeReadRequest.getIds(); + List list = new ArrayList<>(); + ids.forEach(id -> { + SystemNoticeUserRelation noticeUserRelation = new SystemNoticeUserRelation(); + noticeUserRelation.setUserId(userId); + noticeUserRelation.setId(id); + list.add(noticeUserRelation); + }); + if(noticeUserRelationService.saveBatch(list)){ + return ReturnUtil.success(); + } + return ReturnUtil.failed(); + } } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java new file mode 100644 index 0000000..d6eec71 --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/Impl/system/SystemNoticeUserRelationServiceImpl.java @@ -0,0 +1,20 @@ +package com.casic.missiles.service.Impl.system; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.casic.missiles.mapper.system.SystemNoticeUserRelationMapper; +import com.casic.missiles.model.system.SystemNoticeUserRelation; +import com.casic.missiles.service.system.ISystemNoticeUserRelationService; +import org.springframework.stereotype.Service; + +/** + *

+ * 通知公告与用户关联表(记录已读) 服务实现类 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +@Service +public class SystemNoticeUserRelationServiceImpl extends ServiceImpl implements ISystemNoticeUserRelationService { + +} diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java index e9db086..f1b2fed 100644 --- a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeService.java @@ -5,6 +5,7 @@ import com.casic.missiles.dto.ReturnDTO; import com.casic.missiles.dto.system.NoticeAddRequest; import com.casic.missiles.dto.system.NoticeListRequest; +import com.casic.missiles.dto.system.NoticeReadRequest; import com.casic.missiles.model.system.SystemNotice; /** @@ -25,4 +26,5 @@ ReturnDTO deleteNotice(Long id); + ReturnDTO noticeRead(NoticeReadRequest noticeReadRequest); } diff --git a/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeUserRelationService.java b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeUserRelationService.java new file mode 100644 index 0000000..bdf3f2a --- /dev/null +++ b/casic-metering-service/src/main/java/com/casic/missiles/service/system/ISystemNoticeUserRelationService.java @@ -0,0 +1,16 @@ +package com.casic.missiles.service.system; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.casic.missiles.model.system.SystemNoticeUserRelation; + +/** + *

+ * 通知公告与用户关联表(记录已读) 服务类 + *

+ * + * @author wangpeng + * @since 2023-03-07 + */ +public interface ISystemNoticeUserRelationService extends IService { + +}