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 @@ + + + + +