Explorar el Código

通知公告模块:新增公告增删改查

gao hace 1 día
padre
commit
f912a35aa9

+ 60 - 0
supervision-admin/src/main/java/com/supervision/web/controller/announcement/AnnouncementController.java

@@ -0,0 +1,60 @@
+package com.supervision.web.controller.announcement;
+
+import com.supervision.announcement.domain.Announcement;
+import com.supervision.announcement.service.AnnouncementService;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@RequestMapping("/web/announcement")
+public class AnnouncementController {
+
+    @Resource
+    private AnnouncementService announcementService;
+
+    /** 列表 */
+    @GetMapping("/list")
+    public List<Announcement> list() {
+        return announcementService.listAll();
+    }
+
+    /** 新增 */
+    @PostMapping("/add")
+    public Map<String, Object> add(@RequestBody Announcement announcement) {
+        announcementService.add(announcement);
+        Map<String, Object> result = new HashMap<>();
+        result.put("success", true);
+        return result;
+    }
+
+    /** 修改 */
+    @PutMapping("/update")
+    public Map<String, Object> update(@RequestBody Announcement announcement) {
+        announcementService.update(announcement);
+        Map<String, Object> result = new HashMap<>();
+        result.put("success", true);
+        return result;
+    }
+
+    /** 删除 */
+    @DeleteMapping("/delete/{id}")
+    public Map<String, Object> delete(@PathVariable Long id) {
+        announcementService.delete(id);
+        Map<String, Object> result = new HashMap<>();
+        result.put("success", true);
+        return result;
+    }
+
+    /** 发布 */
+    @PutMapping("/publish/{id}")
+    public Map<String, Object> publish(@PathVariable Long id) {
+        announcementService.publish(id);
+        Map<String, Object> result = new HashMap<>();
+        result.put("success", true);
+        return result;
+    }
+}

+ 42 - 0
supervision-system/src/main/java/com/supervision/announcement/domain/Announcement.java

@@ -0,0 +1,42 @@
+package com.supervision.announcement.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+public class Announcement implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 标题 */
+    private String title;
+
+    /** 正文 */
+    private String content;
+
+    /** 发布人 */
+    private String publisher;
+
+    /** 发布时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date publishTime;
+
+    /** 状态:0-未发布 1-已发布 */
+    private Integer status;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createTime;
+
+    /** 更新时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updateTime;
+}

+ 21 - 0
supervision-system/src/main/java/com/supervision/announcement/mapper/AnnouncementMapper.java

@@ -0,0 +1,21 @@
+package com.supervision.announcement.mapper;
+
+import com.supervision.announcement.domain.Announcement;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface AnnouncementMapper {
+
+    List<Announcement> selectAnnouncementList();
+
+    Announcement selectAnnouncementById(@Param("id") Long id);
+
+    int insertAnnouncement(Announcement announcement);
+
+    int updateAnnouncement(Announcement announcement);
+
+    int deleteAnnouncementById(@Param("id") Long id);
+
+    int publishAnnouncement(@Param("id") Long id);
+}

+ 20 - 0
supervision-system/src/main/java/com/supervision/announcement/service/AnnouncementService.java

@@ -0,0 +1,20 @@
+package com.supervision.announcement.service;
+
+import com.supervision.announcement.domain.Announcement;
+
+import java.util.List;
+
+public interface AnnouncementService {
+
+    List<Announcement> listAll();
+
+    Announcement getById(Long id);
+
+    void add(Announcement announcement);
+
+    void update(Announcement announcement);
+
+    void delete(Long id);
+
+    void publish(Long id);
+}

+ 66 - 0
supervision-system/src/main/resources/mapper/announcement/AnnouncementMapper.xml

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.supervision.announcement.mapper.AnnouncementMapper">
+
+    <resultMap id="AnnouncementResult" type="com.supervision.announcement.domain.Announcement">
+        <id     column="id"           property="id"/>
+        <result column="title"        property="title"/>
+        <result column="content"      property="content"/>
+        <result column="publisher"    property="publisher"/>
+        <result column="publish_time" property="publishTime"/>
+        <result column="status"       property="status"/>
+        <result column="create_time"  property="createTime"/>
+        <result column="update_time"  property="updateTime"/>
+    </resultMap>
+
+    <!-- 列表 -->
+    <select id="selectAnnouncementList" resultMap="AnnouncementResult">
+        SELECT id, title, content, publisher, publish_time, status, create_time, update_time
+        FROM announcement
+        ORDER BY publish_time DESC, create_time DESC
+    </select>
+
+    <!-- 根据ID查询 -->
+    <select id="selectAnnouncementById" resultMap="AnnouncementResult">
+        SELECT id, title, content, publisher, publish_time, status, create_time, update_time
+        FROM announcement
+        WHERE id = #{id}
+    </select>
+
+    <!-- 新增 -->
+    <insert id="insertAnnouncement" parameterType="com.supervision.announcement.domain.Announcement">
+        INSERT INTO announcement
+        (title, content, publisher, publish_time, status, create_time, update_time)
+        VALUES
+            (#{title}, #{content}, #{publisher}, #{publishTime}, #{status},
+             NOW(), NOW())
+    </insert>
+
+    <!-- 修改 -->
+    <update id="updateAnnouncement" parameterType="com.supervision.announcement.domain.Announcement">
+        UPDATE announcement
+        SET
+            title        = #{title},
+            content      = #{content},
+            publisher    = #{publisher},
+            publish_time = #{publishTime},
+            status       = #{status},
+            update_time  = NOW()
+        WHERE id = #{id}
+    </update>
+
+    <!-- 删除 -->
+    <delete id="deleteAnnouncementById">
+        DELETE FROM announcement WHERE id = #{id}
+    </delete>
+
+    <!-- 发布:简单把 status 改为 1 -->
+    <update id="publishAnnouncement">
+        UPDATE announcement
+        SET status = 1, update_time = NOW()
+        WHERE id = #{id}
+    </update>
+
+</mapper>