Преглед изворни кода

feat(announcement): 新增公告登录弹窗功能

- 在公告实体和 DTO 中新增 popupFlag 字段标识是否登录弹窗
- 新增 /popup 接口返回已发布且未过期的弹窗公告列表
- 实现 getPopupList 查询逻辑,支持置顶优先、发布时间倒序
- 维修申请查询新增 needStop 条件过滤
- 开发环境服务端口调整为 8070
dazhaxie пре 1 недеља
родитељ
комит
016d15c3bc

+ 5 - 0
platform-dao/src/main/java/com/platform/dao/dto/upms/AnnouncementDTO.java

@@ -66,6 +66,11 @@ public class AnnouncementDTO extends BaseDTO implements Serializable {
     private Integer topFlag;
 
     /**
+     * 是否登录弹窗:1是 0否
+     */
+    private Integer popupFlag;
+
+    /**
      * 发布时间
      */
     private LocalDateTime publishTime;

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/entity/upms/Announcement.java

@@ -57,6 +57,10 @@ public class Announcement implements Serializable {
      */
     private Integer topFlag;
     /**
+     * 是否登录弹窗:1是 0否
+     */
+    private Integer popupFlag;
+    /**
      * 发布时间
      */
     private LocalDateTime publishTime;

+ 3 - 0
platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml

@@ -83,6 +83,9 @@
             <if test="planFlag != null and planFlag != ''">
                 and application.plan_flag = #{planFlag}
             </if>
+            <if test="needStop != null">
+                and application.need_stop = #{needStop}
+            </if>
             <if test="status != null and status != ''">
                 and application.status = #{status}
             </if>

+ 10 - 0
platform-rest/src/main/java/com/platform/rest/controller/upms/AnnouncementController.java

@@ -51,6 +51,16 @@ public class AnnouncementController {
     }
 
     /**
+     * 登录弹窗公告:已发布且未过期且需弹窗的公告列表,所有登录用户可访问
+     *
+     * @return R
+     */
+    @GetMapping("/popup")
+    public R<List<Announcement>> popup() {
+        return new R<>(announcementService.getPopupList());
+    }
+
+    /**
      * 获取分页(管理端)
      *
      * @param pageNum        当前页码

+ 1 - 1
platform-rest/src/main/resources/application-dev.yml

@@ -1,6 +1,6 @@
 server:
   # 端口号
-  port: 5000
+  port: 8070
 
 
 security:

+ 7 - 0
platform-service/src/main/java/com/platform/service/upms/AnnouncementService.java

@@ -56,6 +56,13 @@ public interface AnnouncementService extends IBaseService<Announcement, Announce
     List<Announcement> getPublishedList(int limit);
 
     /**
+     * 登录弹窗公告列表:已发布且未过期且 popup_flag=1,置顶优先、发布时间倒序
+     *
+     * @return :
+     */
+    List<Announcement> getPopupList();
+
+    /**
      * 管理端分页:支持标题/类型/状态条件,按发布时间倒序
      *
      * @param record   查询条件

+ 12 - 0
platform-service/src/main/java/com/platform/service/upms/impl/AnnouncementServiceImpl.java

@@ -94,6 +94,18 @@ public class AnnouncementServiceImpl extends BaseServiceImpl<AnnouncementMapper,
     }
 
     @Override
+    public List<Announcement> getPopupList() {
+        Weekend<Announcement> weekend = new Weekend<>(Announcement.class);
+        // status=1 且 popup_flag=1 且 (expire_time is null 或 expire_time > now)
+        WeekendCriteria<Announcement, Object> criteria = weekend.weekendCriteria();
+        criteria.andEqualTo(Announcement::getStatus, STATUS_PUBLISHED);
+        criteria.andEqualTo(Announcement::getPopupFlag, 1);
+        criteria.andCondition("(expire_time is null or expire_time > now())");
+        weekend.setOrderByClause("top_flag desc, publish_time desc");
+        return mapper.selectByExample(weekend);
+    }
+
+    @Override
     public AbstractPageResultBean<Announcement> selectPageInfo(AnnouncementDTO record, int pageNum, int pageSize) {
         PageHelper.startPage(pageNum, pageSize);
         Weekend<Announcement> weekend = new Weekend<>(Announcement.class);