diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeController.java
index 0259604..7746257 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeController.java
@@ -1,7 +1,13 @@
package com.cfive.pinnacle.controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import com.cfive.pinnacle.entity.Notice;
+import com.cfive.pinnacle.service.INoticeService;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
/**
*
@@ -11,8 +17,55 @@ import org.springframework.web.bind.annotation.RestController;
* @author FatttSnake
* @since 2023-04-30
*/
+
@RestController
@RequestMapping("/notice")
+@CrossOrigin
public class NoticeController {
+ @Autowired
+ INoticeService noticeService;
+ //根据公告id查公告信息及发布人
+ @GetMapping("/{nid}")
+ public Result selectByNoticeId(@PathVariable Long nid) {
+ Notice noticeById = noticeService.selectByNoticeId(nid);
+ Integer code = noticeById != null ? Code.SELECT_NOTICE_OK : Code.SELECT_NOTICE_ERR;
+ String msg = noticeById != null ? "" : "数据查询失败,请尝试!";
+ return new Result(code, noticeById, msg);
+ }
+
+ ;
+
+ //添加公告
+ @GetMapping
+ public Result selectAllNoticeId() {
+ List noticeList = noticeService.selectAllNoticeId();
+ Integer code = noticeList != null ? Code.SELECT_ALL_OK : Code.SELECT_ALL_ERR;
+ String msg = noticeList != null ? "" : "数据查询失败,请尝试!";
+ return new Result(code, noticeList, msg);
+ }
+
+ @PostMapping
+ public Result updateNotice(@RequestBody Notice notice) {
+ notice.setId(null); //清除id,使新插入的数据id自增
+ notice.setModifyTime(LocalDateTime.now());
+ notice.setOriginId(notice.getId());
+ boolean updateById = noticeService.save(notice);
+ Result result = new Result(updateById ? Code.UPDATE_OK : Code.UPDATE_ERR, updateById);
+ return result;
+ }
+
+ @PutMapping
+ public Result addNotice(@RequestBody Notice notice){
+ boolean insertNotice = noticeService.save(notice);
+ Result result = new Result(insertNotice ? Code.SAVE_OK : Code.SAVE_ERR, insertNotice);
+ return result;
+ }
+
+ @DeleteMapping("/{nid}")
+ public Result deleteByNoticeId(@PathVariable Long nid){
+ boolean removeById= noticeService.removeById(nid);
+ Result result = new Result(removeById ? Code.DELETE_OK : Code.DELETE_ERR, removeById);
+ return result;
+ }
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Notice.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Notice.java
index b7b0ab0..c42bc57 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Notice.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Notice.java
@@ -51,7 +51,7 @@ public class Notice implements Serializable {
private Long typeId;
/**
- * 发布者
+ * 发布者id
*/
@TableField("sender_id")
private Long senderId;
@@ -104,6 +104,12 @@ public class Notice implements Serializable {
@TableField("old")
private Integer old;
+ /**
+ * 发布者
+ */
+ @TableField(exist = false)
+ private User sender;
+
@TableField("deleted")
@TableLogic
private Integer deleted;
@@ -111,4 +117,6 @@ public class Notice implements Serializable {
@TableField("version")
@Version
private Integer version;
+
+
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/NoticeMapper.java b/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/NoticeMapper.java
index b5d970b..8543b16 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/NoticeMapper.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/mapper/NoticeMapper.java
@@ -4,6 +4,8 @@ import com.cfive.pinnacle.entity.Notice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
/**
*
* 公告 Mapper 接口
@@ -14,5 +16,7 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface NoticeMapper extends BaseMapper {
+ Notice selectByNoticeId(Long nid);
+ List selectAllNoticeId();
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeService.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeService.java
index f6cc7e5..3e31714 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeService.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeService.java
@@ -3,6 +3,8 @@ package com.cfive.pinnacle.service;
import com.cfive.pinnacle.entity.Notice;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 公告 服务类
@@ -12,5 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2023-04-30
*/
public interface INoticeService extends IService {
+ Notice selectByNoticeId(Long nid);
+ List selectAllNoticeId();
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeServiceImpl.java
index c725341..9bfc025 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeServiceImpl.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeServiceImpl.java
@@ -4,8 +4,11 @@ import com.cfive.pinnacle.entity.Notice;
import com.cfive.pinnacle.mapper.NoticeMapper;
import com.cfive.pinnacle.service.INoticeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.List;
+
/**
*
* 公告 服务实现类
@@ -16,5 +19,15 @@ import org.springframework.stereotype.Service;
*/
@Service
public class NoticeServiceImpl extends ServiceImpl implements INoticeService {
+ @Autowired
+ NoticeMapper noticeMapper;
+ @Override
+ public Notice selectByNoticeId(Long nid) {
+ return noticeMapper.selectByNoticeId(nid);
+ }
+ @Override
+ public List selectAllNoticeId() {
+ return noticeMapper.selectAllNoticeId();
+ }
}
diff --git a/Pinnacle/src/main/resources/mapper/NoticeMapper.xml b/Pinnacle/src/main/resources/mapper/NoticeMapper.xml
index 829ccc1..1744e72 100644
--- a/Pinnacle/src/main/resources/mapper/NoticeMapper.xml
+++ b/Pinnacle/src/main/resources/mapper/NoticeMapper.xml
@@ -1,5 +1,30 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java b/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java
new file mode 100644
index 0000000..85da088
--- /dev/null
+++ b/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java
@@ -0,0 +1,84 @@
+package com.cfive.pinnacle.notice;
+
+import com.cfive.pinnacle.controller.NoticeController;
+import com.cfive.pinnacle.controller.Result;
+import com.cfive.pinnacle.entity.Department;
+import com.cfive.pinnacle.entity.Notice;
+import com.cfive.pinnacle.entity.NoticeType;
+import com.cfive.pinnacle.entity.User;
+import com.cfive.pinnacle.service.IDepartmentService;
+import com.cfive.pinnacle.service.INoticeReceiveService;
+import com.cfive.pinnacle.service.INoticeTypeService;
+import com.cfive.pinnacle.service.IUserService;
+import org.junit.jupiter.api.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+
+@SpringBootTest
+public class NoticeTest {
+ @Autowired
+ private NoticeController noticeController;
+ @Autowired
+ private INoticeTypeService iNoticeTypeService;
+ @Autowired
+ private IDepartmentService iDepartmentService;
+ @Autowired
+ private IUserService iUserService;
+ @Autowired
+ private INoticeReceiveService iNoticeReceiveService;
+
+
+ @Test
+ void selectByIdTest() {
+ Result notice = noticeController.selectByNoticeId(21L);
+ System.out.println(notice.getData());
+ }
+
+ @Test
+ void selectAllTest() {
+ Result noticeList = noticeController.selectAllNoticeId();
+ System.out.println(noticeList.getData());
+ }
+
+ @Test
+ void updateTest() {
+ Result notice =noticeController.selectByNoticeId(23L);
+ Result updateNotice = noticeController.updateNotice((Notice)notice.getData());
+ System.out.println(updateNotice.getData());
+ }
+
+ @Test
+ void insertNoticeTest() {
+ Notice notice = new Notice();
+ notice.setTitle("title1");
+ notice.setTypeId(1652684907554496514L);
+ notice.setSenderId(1652714496280469506L);
+ LocalDateTime startDate = LocalDateTime.parse("2023-03-21 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ LocalDateTime endDate = LocalDateTime.parse("2023-09-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+// notice.setEffectiveDate(startDate);
+// notice.setEndDate(endDate);
+// notice.setSenderID(2);
+ notice.setContent("Content1");
+ Result updateNotice = noticeController.addNotice(notice);
+ System.out.println(updateNotice.getData());
+ }
+ @Test
+ void insertNoticeTypeTest(){
+ NoticeType noticeType = new NoticeType();
+ noticeType.setName("通知公告");
+ iNoticeTypeService.save(noticeType);
+ }
+
+ @Test
+ void insertNoticeRecTest(){
+ User user = new User();
+ user.setUsername("cyb");
+ user.setPasswd("123");
+ user.setDepartmentId(1652713919467151362L);
+ iUserService.save(user);
+// iNoticeTypeService.save(noticeType);
+ }
+}
diff --git a/ui/src/components/NoticeTable.vue b/ui/src/components/NoticeTable.vue
new file mode 100644
index 0000000..66cc48f
--- /dev/null
+++ b/ui/src/components/NoticeTable.vue
@@ -0,0 +1,131 @@
+
+ reset date filter
+ reset all filters
+
+
+
+
+
+
+
+
+ {{ scope.row.sender.userName }}
+
+
+
+
+
+ 编辑
+ 删除
+
+
+
+
+
+
+
+