From 1ac3906964d8e18120d4b6162cd1f2489a0f5119 Mon Sep 17 00:00:00 2001
From: cccccyb <995134776@qq.com>
Date: Sat, 6 May 2023 02:54:30 +0800
Subject: [PATCH] nitice manage module compeled
---
.../controller/DepartmentController.java | 20 ++
.../pinnacle/controller/NoticeController.java | 42 ++--
.../controller/NoticeTypeController.java | 21 ++
.../com/cfive/pinnacle/entity/Department.java | 7 +
.../com/cfive/pinnacle/entity/Notice.java | 12 ++
.../cfive/pinnacle/entity/NoticeReceive.java | 11 -
.../pinnacle/service/IDepartmentService.java | 3 +
.../pinnacle/service/INoticeService.java | 4 +-
.../pinnacle/service/INoticeTypeService.java | 3 +
.../service/impl/DepartmentServiceImpl.java | 23 +-
.../service/impl/NoticeServiceImpl.java | 62 +++++-
.../service/impl/NoticeTypeServiceImpl.java | 16 +-
.../resources/mapper/DepartmentMapper.xml | 7 +-
.../main/resources/mapper/NoticeMapper.xml | 3 +-
.../com/cfive/pinnacle/notice/NoticeTest.java | 78 +++++--
ui/src/components/notice/CommitForm.vue | 201 ++++++++++++++++++
ui/src/components/notice/NoticeAdd.vue | 13 ++
ui/src/components/notice/NoticeEdit.vue | 55 -----
ui/src/components/notice/NoticeHead.vue | 91 ++++++--
ui/src/components/notice/NoticeShowDialog.vue | 45 ++++
ui/src/components/notice/NoticeTable.vue | 91 ++++++--
ui/src/pages/notice/NoticeHome.vue | 139 +++++++++++-
22 files changed, 787 insertions(+), 160 deletions(-)
create mode 100644 ui/src/components/notice/CommitForm.vue
create mode 100644 ui/src/components/notice/NoticeAdd.vue
delete mode 100644 ui/src/components/notice/NoticeEdit.vue
create mode 100644 ui/src/components/notice/NoticeShowDialog.vue
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java
index d554955..483a67b 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/DepartmentController.java
@@ -1,8 +1,17 @@
package com.cfive.pinnacle.controller;
+import com.cfive.pinnacle.entity.Department;
+import com.cfive.pinnacle.entity.common.ResponseCode;
+import com.cfive.pinnacle.entity.common.ResponseResult;
+import com.cfive.pinnacle.service.IDepartmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
/**
*
* 部门 前端控制器
@@ -13,6 +22,17 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/department")
+@CrossOrigin
public class DepartmentController {
+ @Autowired
+ IDepartmentService departmentService;
+
+ @GetMapping
+ public ResponseResult getDepartAndUser(){
+ List getDepartAndUser = departmentService.getDepartAndUser();
+ Integer code = getDepartAndUser != null ? ResponseCode.DATABASE_SELECT_OK : ResponseCode.DATABASE_SELECT_ERROR;
+ String msg = getDepartAndUser != null ? "" : "数据查询失败,请尝试!";
+ return ResponseResult.build(code, msg, getDepartAndUser);
+ }
}
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 421cd1a..d03a479 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeController.java
@@ -1,11 +1,14 @@
package com.cfive.pinnacle.controller;
import com.cfive.pinnacle.entity.Notice;
+import com.cfive.pinnacle.entity.NoticeReceive;
import com.cfive.pinnacle.entity.common.ResponseCode;
import com.cfive.pinnacle.entity.common.ResponseResult;
+import com.cfive.pinnacle.service.INoticeReceiveService;
import com.cfive.pinnacle.service.INoticeService;
import lombok.Data;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
@@ -25,7 +28,9 @@ import java.util.List;
@CrossOrigin
public class NoticeController {
@Autowired
- INoticeService noticeService;
+ private INoticeService noticeService;
+ @Autowired
+ private INoticeReceiveService noticeReceiveService;
//根据公告id查公告信息及发布人
@GetMapping("/{nid}")
@@ -36,16 +41,14 @@ public class NoticeController {
return ResponseResult.build(code, msg, noticeById);
}
- ;
-
- //添加公告
+ //查询所有公告
@GetMapping
- public ResponseResult selectAllNotice(String title) {
+ public ResponseResult selectAllNotice(String title, String type, String startTime,String endTime) {
List noticeList;
- if (title == null) {
+ if (!StringUtils.hasText(title) && !StringUtils.hasText(type) && !StringUtils.hasText(startTime) && !StringUtils.hasText(endTime)) {
noticeList = noticeService.selectAllNotice();
} else {
- noticeList = noticeService.selectByTitle(title);
+ noticeList = noticeService.selectByCond(title, type, startTime,endTime);
}
int code = noticeList != null ? ResponseCode.DATABASE_SELECT_OK : ResponseCode.DATABASE_SELECT_ERROR;
@@ -54,22 +57,33 @@ public class NoticeController {
}
- @PostMapping
+ //更新公告
+ @PutMapping
public ResponseResult updateNotice(@RequestBody Notice notice) {
- notice.setId(null); //清除id,使新插入的数据id自增
- notice.setOriginId(notice.getId());
- boolean updateById = noticeService.save(notice);
+ boolean updateById = noticeService.updateNotice(notice);
String msg = updateById ? "" : "数据修改失败,请尝试!";
return ResponseResult.build(updateById ? ResponseCode.DATABASE_UPDATE_OK : ResponseCode.DATABASE_UPDATE_ERROR, msg, updateById);
}
- @PutMapping
+ //添加公告
+ @PostMapping
public ResponseResult addNotice(@RequestBody Notice notice) {
+ notice.setSenderId(1654151877520973826L);
boolean insertNotice = noticeService.save(notice);
- String msg = insertNotice ? "" : "数据添加失败,请尝试!";
- return ResponseResult.build(insertNotice ? ResponseCode.DATABASE_SAVE_OK : ResponseCode.DATABASE_SAVE_ERROR, msg, insertNotice);
+ Long noticeId = notice.getId();
+ boolean flag = false;
+ for (Long receiveId :
+ notice.getReceivers()) {
+ NoticeReceive noticeReceive = new NoticeReceive();
+ noticeReceive.setNoticeId(noticeId);
+ noticeReceive.setUserId(receiveId);
+ flag = noticeReceiveService.save(noticeReceive);
+ }
+ String msg = (insertNotice && flag) ? "" : "数据添加失败,请尝试!";
+ return ResponseResult.build((insertNotice && flag) ? ResponseCode.DATABASE_SAVE_OK : ResponseCode.DATABASE_SAVE_ERROR, msg, noticeId);
}
+ //删除公告
@DeleteMapping("/{nid}")
public ResponseResult deleteByNoticeId(@PathVariable Long nid) {
boolean removeById = noticeService.deleteById(nid);
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeTypeController.java b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeTypeController.java
index 58590b6..6ea426a 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeTypeController.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/controller/NoticeTypeController.java
@@ -1,8 +1,18 @@
package com.cfive.pinnacle.controller;
+import com.cfive.pinnacle.entity.Notice;
+import com.cfive.pinnacle.entity.NoticeType;
+import com.cfive.pinnacle.entity.common.ResponseCode;
+import com.cfive.pinnacle.entity.common.ResponseResult;
+import com.cfive.pinnacle.service.INoticeTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.CrossOrigin;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+
/**
*
* 公告类型 前端控制器
@@ -13,6 +23,17 @@ import org.springframework.web.bind.annotation.RestController;
*/
@RestController
@RequestMapping("/noticeType")
+@CrossOrigin
public class NoticeTypeController {
+ @Autowired
+ INoticeTypeService noticeTypeService;
+
+ @GetMapping
+ public ResponseResult selectTypeList(){
+ List selectTypeName = noticeTypeService.selectTypeList();
+ Integer code = selectTypeName != null ? ResponseCode.DATABASE_SELECT_OK : ResponseCode.DATABASE_SELECT_ERROR;
+ String msg = selectTypeName != null ? "" : "数据查询失败,请尝试!";
+ return ResponseResult.build(code, msg, selectTypeName);
+ }
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Department.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Department.java
index 2d410ea..c703931 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Department.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Department.java
@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.Version;
import java.io.Serial;
import java.io.Serializable;
+import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
@@ -56,4 +57,10 @@ public class Department implements Serializable {
@TableField("version")
@Version
private Integer version;
+
+ /**
+ * 部门成员
+ */
+ @TableField(exist = false)
+ private List userList;
}
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 d271f00..c1a0fb7 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Notice.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/Notice.java
@@ -9,7 +9,9 @@ import com.baomidou.mybatisplus.annotation.Version;
import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
+import java.util.List;
+import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
@@ -77,18 +79,21 @@ public class Notice implements Serializable {
* 创建时间
*/
@TableField("create_time")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
private LocalDateTime createTime;
/**
* 发送时间
*/
@TableField("send_time")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
private LocalDateTime sendTime;
/**
* 失效时间
*/
@TableField("end_time")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
private LocalDateTime endTime;
/**
@@ -107,6 +112,7 @@ public class Notice implements Serializable {
* 修改时间
*/
@TableField("modify_time")
+ @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", timezone = "UTC")
private LocalDateTime modifyTime;
/**
@@ -130,5 +136,11 @@ public class Notice implements Serializable {
@Version
private Integer version;
+ /**
+ * 公告接收者
+ */
+ @TableField(exist = false)
+ @JsonSerialize(using = ToStringSerializer.class)
+ private List receivers;
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/NoticeReceive.java b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/NoticeReceive.java
index e9c5708..23e0b61 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/entity/NoticeReceive.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/entity/NoticeReceive.java
@@ -41,11 +41,6 @@ public class NoticeReceive implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
- /**
- * 用户
- */
- @TableField(exist = false)
- private User user;
/**
* 公告Id
@@ -54,12 +49,6 @@ public class NoticeReceive implements Serializable {
@JsonSerialize(using = ToStringSerializer.class)
private Long noticeId;
- /**
- * 公告
- */
- @TableField(exist = false)
- private Notice notice;
-
/**
* 已读
*/
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/IDepartmentService.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/IDepartmentService.java
index 87e58e2..9151f5d 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/IDepartmentService.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/IDepartmentService.java
@@ -3,6 +3,8 @@ package com.cfive.pinnacle.service;
import com.cfive.pinnacle.entity.Department;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 部门 服务类
@@ -12,5 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2023-04-30
*/
public interface IDepartmentService extends IService {
+ List getDepartAndUser();
}
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 43c3fc6..7de3d9e 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeService.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeService.java
@@ -18,7 +18,9 @@ public interface INoticeService extends IService {
List selectAllNotice();
- List selectByTitle(String title);
+ List selectByCond(String title,String type,String startTime,String endTime);
Boolean deleteById(Long nid);
+
+ Boolean updateNotice(Notice notice);
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeTypeService.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeTypeService.java
index 8740b52..e74648d 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeTypeService.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/INoticeTypeService.java
@@ -3,6 +3,8 @@ package com.cfive.pinnacle.service;
import com.cfive.pinnacle.entity.NoticeType;
import com.baomidou.mybatisplus.extension.service.IService;
+import java.util.List;
+
/**
*
* 公告类型 服务类
@@ -12,5 +14,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @since 2023-04-30
*/
public interface INoticeTypeService extends IService {
+ List selectTypeList();
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/DepartmentServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/DepartmentServiceImpl.java
index 22d247c..c3181e9 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/DepartmentServiceImpl.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/DepartmentServiceImpl.java
@@ -1,11 +1,18 @@
package com.cfive.pinnacle.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cfive.pinnacle.entity.Department;
+import com.cfive.pinnacle.entity.User;
import com.cfive.pinnacle.mapper.DepartmentMapper;
+import com.cfive.pinnacle.mapper.UserMapper;
import com.cfive.pinnacle.service.IDepartmentService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+
/**
*
* 部门 服务实现类
@@ -16,5 +23,19 @@ import org.springframework.stereotype.Service;
*/
@Service
public class DepartmentServiceImpl extends ServiceImpl implements IDepartmentService {
-
+ @Autowired
+ private DepartmentMapper departmentMapper;
+ @Autowired
+ private UserMapper userMapper;
+ @Override
+ public List getDepartAndUser() {
+ List departments = departmentMapper.selectList(null);
+ for (Department department:
+ departments) {
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(User::getDepartmentId, department.getId());
+ department.setUserList(userMapper.selectList(lqw));
+ }
+ return departments;
+ }
}
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 2b4e940..8b0a300 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
@@ -1,8 +1,10 @@
package com.cfive.pinnacle.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.cfive.pinnacle.entity.Notice;
import com.cfive.pinnacle.entity.NoticeReceive;
+import com.cfive.pinnacle.entity.NoticeType;
import com.cfive.pinnacle.mapper.NoticeMapper;
import com.cfive.pinnacle.mapper.NoticeReceiveMapper;
import com.cfive.pinnacle.mapper.NoticeTypeMapper;
@@ -11,7 +13,11 @@ 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 org.springframework.util.StringUtils;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -40,14 +46,49 @@ public class NoticeServiceImpl extends ServiceImpl impleme
@Override
public List selectAllNotice() {
- return noticeMapper.selectAllNotice();
+ List notices = noticeMapper.selectAllNotice();
+ if (null != notices) {
+ for (Notice notice :
+ notices) {
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(NoticeReceive::getNoticeId, notice.getId());
+ List noticeReceives = noticeReceiveMapper.selectList(lqw);
+ List receiverIdList = new ArrayList<>();
+ for (NoticeReceive noticeReceive :
+ noticeReceives) {
+ receiverIdList.add(noticeReceive.getUserId());
+ }
+ notice.setReceivers(receiverIdList);
+ }
+ }
+ return notices;
}
@Override
- public List selectByTitle(String title) {
- LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
- lqw.like(Notice::getTitle, title);
- List notices = noticeMapper.selectList(lqw);
+ public List selectByCond(String title, String type, String startTime,String endTime) {
+ List notices = new ArrayList<>();
+ LocalDateTime start = null;
+ LocalDateTime end = null;
+ try {
+ start = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ end = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+ } catch (Exception e) {
+ startTime = null;
+ endTime = null;
+ }
+ LambdaQueryWrapper lqw_notice = new LambdaQueryWrapper<>();
+ LambdaQueryWrapper lqw_type = new LambdaQueryWrapper<>();
+ lqw_type.like(null != type, NoticeType::getName, type);
+ List noticeTypes = noticeTypeMapper.selectList(lqw_type);
+ for (NoticeType noticeType : noticeTypes
+ ) {
+ lqw_notice.clear();
+ lqw_notice.eq(!noticeTypes.isEmpty(), Notice::getTypeId, noticeType.getId()).like(null != title, Notice::getTitle, title);
+ lqw_notice.ge(StringUtils.hasText(startTime), Notice::getSendTime, start);
+ lqw_notice.le(StringUtils.hasText(endTime), Notice::getEndTime, end);
+ List temp_notice = noticeMapper.selectList(lqw_notice);
+ notices.addAll(temp_notice);
+ }
for (Notice n : notices
) {
n.setSender(userMapper.selectById(n.getSenderId()));
@@ -68,4 +109,15 @@ public class NoticeServiceImpl extends ServiceImpl impleme
return noticeMapper.deleteById(nid) > 0;
}
+ @Override
+ public Boolean updateNotice(Notice notice) {
+ noticeMapper.update(null, new UpdateWrapper().eq("id", notice.getId()).set("old", 1)); //修改原始数据
+ notice.setOriginId(notice.getId());
+ notice.setId(null); //清除id,使新插入的数据id重新生成
+ notice.setCreateTime(null);
+ notice.setModifyTime(null);
+ notice.setOld(0);
+ return noticeMapper.insert(notice) > 0;
+ }
+
}
diff --git a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeTypeServiceImpl.java b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeTypeServiceImpl.java
index 26740a8..c6f32d7 100644
--- a/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeTypeServiceImpl.java
+++ b/Pinnacle/src/main/java/com/cfive/pinnacle/service/impl/NoticeTypeServiceImpl.java
@@ -1,11 +1,17 @@
package com.cfive.pinnacle.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cfive.pinnacle.entity.NoticeType;
import com.cfive.pinnacle.mapper.NoticeTypeMapper;
import com.cfive.pinnacle.service.INoticeTypeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+
/**
*
* 公告类型 服务实现类
@@ -16,5 +22,13 @@ import org.springframework.stereotype.Service;
*/
@Service
public class NoticeTypeServiceImpl extends ServiceImpl implements INoticeTypeService {
-
+ @Autowired
+ NoticeTypeMapper noticeTypeMapper;
+ @Override
+ public List selectTypeList() {
+ LambdaQueryWrapper lqw = new LambdaQueryWrapper<>();
+ lqw.eq(NoticeType::getEnable, 1);
+ List noticeTypes = noticeTypeMapper.selectList(lqw);
+ return noticeTypes;
+ }
}
diff --git a/Pinnacle/src/main/resources/mapper/DepartmentMapper.xml b/Pinnacle/src/main/resources/mapper/DepartmentMapper.xml
index 358754c..06ca4b0 100644
--- a/Pinnacle/src/main/resources/mapper/DepartmentMapper.xml
+++ b/Pinnacle/src/main/resources/mapper/DepartmentMapper.xml
@@ -1,5 +1,10 @@
-
+
+
+
+
diff --git a/Pinnacle/src/main/resources/mapper/NoticeMapper.xml b/Pinnacle/src/main/resources/mapper/NoticeMapper.xml
index a8b677e..45213fa 100644
--- a/Pinnacle/src/main/resources/mapper/NoticeMapper.xml
+++ b/Pinnacle/src/main/resources/mapper/NoticeMapper.xml
@@ -53,7 +53,7 @@
and type.id = n.type_id
and n.deleted = 0
and n.old = 0
-
+ order by create_time desc
@@ -70,4 +70,5 @@
+
diff --git a/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java b/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java
index 2a3256e..5cd21e3 100644
--- a/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java
+++ b/Pinnacle/src/test/java/com/cfive/pinnacle/notice/NoticeTest.java
@@ -1,27 +1,26 @@
package com.cfive.pinnacle.notice;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.cfive.pinnacle.controller.NoticeController;
-import com.cfive.pinnacle.entity.Notice;
-import com.cfive.pinnacle.entity.NoticeReceive;
-import com.cfive.pinnacle.entity.NoticeType;
-import com.cfive.pinnacle.entity.User;
+import com.cfive.pinnacle.entity.*;
import com.cfive.pinnacle.entity.common.ResponseResult;
-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 com.cfive.pinnacle.service.*;
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;
+import java.util.ArrayList;
+import java.util.List;
@SpringBootTest
public class NoticeTest {
@Autowired
private NoticeController noticeController;
@Autowired
+ private INoticeService iNoticeService;
+ @Autowired
private INoticeTypeService iNoticeTypeService;
@Autowired
private IDepartmentService iDepartmentService;
@@ -34,52 +33,87 @@ public class NoticeTest {
@Test
void selectByIdTest() {
ResponseResult selectByNoticeId = noticeController.selectByNoticeId(21L);
- System.out.println(selectByNoticeId.getData());
}
@Test
void selectAllTest() {
- ResponseResult noticeList = noticeController.selectAllNotice(null);
- System.out.println(noticeList.getData());
+ ResponseResult noticeList = noticeController.selectAllNotice(null, null,null,null);
}
@Test
void updateTest() {
ResponseResult notice = noticeController.selectByNoticeId(23L);
ResponseResult updateNotice = noticeController.updateNotice((Notice) notice.getData());
- System.out.println(updateNotice.getData());
}
@Test
void insertNoticeTest() {
- for (int i = 2; i < 20; i++) {
+ for (int i = 20; i < 40; i++) {
Notice notice = new Notice();
- notice.setTitle("title"+i);
- notice.setTypeId(1652684907554496514L);
+ notice.setTitle("title" + i);
+ notice.setTypeId(1654069011361476609L);
notice.setSenderId(1652714496280469506L);
LocalDateTime sendTime = LocalDateTime.parse("2023-05-11 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
LocalDateTime endTime = LocalDateTime.parse("2023-09-01 00:00:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
notice.setPriority(2);
notice.setSendTime(sendTime);
notice.setEndTime(endTime);
- notice.setContent("Content"+i);
+ notice.setContent("Content" + i);
noticeController.addNotice(notice);
}
}
+
@Test
- void insertNoticeTypeTest(){
- NoticeType noticeType = new NoticeType();
- noticeType.setName("通知公告");
- iNoticeTypeService.save(noticeType);
+ void insertNoticeTypeTest() {
+// NoticeType noticeType = new NoticeType();
+// noticeType.setName("调休公告");
+// iNoticeTypeService.save(noticeType);
+
+// Department department=new Department();
+// department.setName("前端开发部");
+// department.setTel("123");
+// department.setAddress("潮州");
+// iDepartmentService.save(department);
+
+ User user = new User();
+ user.setUsername("yrm");
+ user.setPasswd("123");
+ user.setDepartmentId(1654150127317569537L);
+ user.setEnable(1);
+ iUserService.save(user);
}
@Test
- void insertNoticeRecTest(){
+ void insertNoticeRecTest() {
NoticeReceive receive = new NoticeReceive();
- receive.setNoticeId(1652734384348790786L);
+ receive.setNoticeId(1654070031407886338L);
receive.setUserId(1652714496280469506L);
iNoticeReceiveService.save(receive);
}
+ @Test
+ void selectByConde() {
+ List notices = new ArrayList<>();
+ LambdaQueryWrapper lqw_notice = new LambdaQueryWrapper<>();
+ LambdaQueryWrapper lqw_type = new LambdaQueryWrapper<>();
+ lqw_type.like(NoticeType::getName, "活动");
+ List noticeTypes = iNoticeTypeService.list(lqw_type);
+ if (noticeTypes.isEmpty()) {
+ } else {
+ for (NoticeType type : noticeTypes
+ ) {
+ lqw_notice.clear();
+ lqw_notice.eq(Notice::getTypeId, type.getId()).like(Notice::getTitle, "2");
+ List temp_notice = iNoticeService.list(lqw_notice);
+ notices.addAll(temp_notice);
+ }
+ for (Notice n:notices
+ ) {
+ n.setSender(iUserService.getById(n.getSenderId()));
+ n.setNoticeType(iNoticeTypeService.getById(n.getTypeId()));
+ }
+ }
+ }
+
}
diff --git a/ui/src/components/notice/CommitForm.vue b/ui/src/components/notice/CommitForm.vue
new file mode 100644
index 0000000..cbe3f53
--- /dev/null
+++ b/ui/src/components/notice/CommitForm.vue
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{
+ ((scope.node.value = scope.data.id), (scope.node.label = scope.data.name))
+ }}
+ {{
+ ((scope.node.value = scope.data.id),
+ (scope.node.label = scope.data.username))
+ }}
+
+
+
+
+
+
+
+ 发布
+ 重置
+
+
+
+
+
+
diff --git a/ui/src/components/notice/NoticeAdd.vue b/ui/src/components/notice/NoticeAdd.vue
new file mode 100644
index 0000000..b762749
--- /dev/null
+++ b/ui/src/components/notice/NoticeAdd.vue
@@ -0,0 +1,13 @@
+
+
+
+
+
diff --git a/ui/src/components/notice/NoticeEdit.vue b/ui/src/components/notice/NoticeEdit.vue
deleted file mode 100644
index 3e53590..0000000
--- a/ui/src/components/notice/NoticeEdit.vue
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/ui/src/components/notice/NoticeHead.vue b/ui/src/components/notice/NoticeHead.vue
index fd23107..7380705 100644
--- a/ui/src/components/notice/NoticeHead.vue
+++ b/ui/src/components/notice/NoticeHead.vue
@@ -1,43 +1,99 @@
-
-
-
-
-
-
-
-
-
-
+
+ 公告标题:
- 搜索
+
-
-
+
+ 公告类型:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 搜索
+
+
diff --git a/ui/src/components/notice/NoticeTable.vue b/ui/src/components/notice/NoticeTable.vue
index 922ec93..3337a41 100644
--- a/ui/src/components/notice/NoticeTable.vue
+++ b/ui/src/components/notice/NoticeTable.vue
@@ -1,6 +1,13 @@
- 清除筛选条件
+ 清除筛选条件
+
-
+
+
+
+ {{ scope.row.noticeType.name }}
+
+
+
+
+ 查看
+
编辑
- 删除
-
-
- {{ dialogFormTitle }}
+
+
+ 编辑公告
-
+
+
+
+
+
+ 查看公告
+
+
@@ -82,11 +117,14 @@ export default {
data() {
return {
filterSenderName: [],
- dialogFormVisible: false,
- dialogFormTitle: ''
+ dialogEditVisible: false,
+ dialogShowVisible: false,
+ noticeEdit: {},
+ noticeShow: {},
+ getLoading: true
}
},
- props: ['msg', 'selectData'],
+ props: ['noticeTypeList', 'selectData', 'departmentList', 'dialogUpdateVisible', 'getLoading'],
methods: {
clearFilter() {
this.$refs.tableRef.clearFilter(['senderName'])
@@ -102,14 +140,25 @@ export default {
// 获取单元格数据
const data = row[column.property]
if (data == null) return null
-
- const dt = data.replace('T', ' ')
- return dt
+ return new Date(data).toLocaleString()
},
handleEdit(index, row) {
- this.dialogFormVisible = true
- this.dialogFormTitle = row.title
- console.log(index + ' ' + row)
+ this.dialogEditVisible = true
+ this.noticeEdit = row
+ },
+ handleUpdateNotice(updateData) {
+ this.$emit('handleUpdateNotice', updateData)
+ this.dialogEditVisible = this.dialogUpdateVisible
+ },
+ handleShow(index, row) {
+ this.dialogShowVisible = true
+ this.noticeShow = row
+ },
+ handleDelete(deleteId) {
+ this.$emit('handleDelete', deleteId)
+ },
+ showDialogVisible(visible) {
+ this.dialogShowVisible = visible
}
},
mounted() {},
@@ -128,7 +177,7 @@ export default {
senderName.value = newArr[j]
this.filterSenderName.push(senderName)
}
- console.log(this.filterSenderName)
+ // console.log(this.filterSenderName)
}
}
diff --git a/ui/src/pages/notice/NoticeHome.vue b/ui/src/pages/notice/NoticeHome.vue
index 812ac5b..86bd4c3 100644
--- a/ui/src/pages/notice/NoticeHome.vue
+++ b/ui/src/pages/notice/NoticeHome.vue
@@ -2,13 +2,35 @@
-
+
+ 发布公告
+
+
+
+ 发布公告
+
+
+
@@ -17,36 +39,135 @@