From 7ea5eece501c98a91555a5358931367e78e9d23b Mon Sep 17 00:00:00 2001
From: baizonghao <1719256278@qq.com>
Date: 星期四, 25 五月 2023 15:40:09 +0800
Subject: [PATCH] 11

---
 src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java |  102 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 102 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java b/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java
index 0887f7e..40f0e54 100644
--- a/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java
@@ -1,10 +1,27 @@
 package com.example.jz.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.example.jz.auth.TokenJwtManager;
 import com.example.jz.dao.AnnouncementDao;
+import com.example.jz.dao.UserDao;
+import com.example.jz.modle.PageParam;
 import com.example.jz.modle.entity.Announcement;
+import com.example.jz.modle.entity.User;
+import com.example.jz.modle.vo.AnnouncementVo;
 import com.example.jz.service.AnnouncementService;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * 鍏憡琛�(Announcement)琛ㄦ湇鍔″疄鐜扮被
@@ -15,4 +32,89 @@
 @Service("announcementService")
 public class AnnouncementServiceImpl extends ServiceImpl<AnnouncementDao, Announcement> implements AnnouncementService {
 
+    @Resource
+    AnnouncementDao announcementDao;
+    @Resource
+    UserDao userDao;
+
+    @Autowired
+    TokenJwtManager tokenJwtManager;
+
+    @Override
+    public PageParam<AnnouncementVo> getAnnouncements(Integer size, Integer current, String content, Integer status, Integer groupId) {
+        PageParam<Announcement> announcementPageParam = new PageParam<>();
+        announcementPageParam.setSize(size);
+        announcementPageParam.setCurrent(current);
+        QueryWrapper<Announcement> announcementQueryWrapper = new QueryWrapper<>();
+        if (StringUtils.isNotBlank(content)) {
+            announcementQueryWrapper.like("text", content);
+        }
+        if (status != null) {
+            announcementQueryWrapper.eq("status", status);
+        }
+        announcementQueryWrapper.eq("group_id", groupId);
+        announcementQueryWrapper.orderByDesc("ctime");
+        PageParam<Announcement> announcementPageParamList = announcementDao.selectPage(announcementPageParam, announcementQueryWrapper);
+        List<AnnouncementVo> announcementVoList = announcementPageParamList.getRecords().stream().map(
+                a -> {
+                    AnnouncementVo announcementVo = new AnnouncementVo();
+                    BeanUtils.copyProperties(a, announcementVo);
+                    announcementVo.setCreateName(userDao.selectOne(new QueryWrapper<User>().eq("id", a.getCreator())).getRealName());
+                    return announcementVo;
+                }
+        ).collect(Collectors.toList());
+        PageParam<AnnouncementVo> announcementVoPageParam = new PageParam<>();
+        BeanUtils.copyProperties(announcementPageParamList, announcementVoPageParam);
+        announcementVoPageParam.setRecords(announcementVoList);
+        return announcementVoPageParam;
+    }
+
+    @Override
+    public List<Announcement> getAnnouncements(Integer groupId) {
+        List<Announcement> announcements = announcementDao.selectList(Wrappers.<Announcement>lambdaQuery().eq(Announcement::getGroupId, groupId).orderByDesc(Announcement::getPublishTime));
+        return announcements;
+    }
+
+    @Override
+    public void updateStatus(Integer id,Integer status) {
+        if (status==1){
+            announcementDao.update(new Announcement().setStatus(2), new UpdateWrapper<Announcement>().eq("id", id));
+        }else {
+            Announcement announcement = new Announcement();
+            announcement.setStatus(1);
+            announcement.setPublishTime(new Date());
+            announcementDao.update(announcement, new UpdateWrapper<Announcement>().eq("id", id));
+        }
+    }
+
+
+    @Override
+    public Integer add(Integer groupId, Announcement announcement) {
+        announcement.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
+        if(announcement.getStatus()==1){
+            announcement.setPublishTime(new Date());
+        }
+        announcement.setCtime(new Date());
+        announcement.setGroupId(groupId);
+        return announcementDao.insert(announcement);
+    }
+
+    @Override
+    public Integer vxAdd(Integer groupId, Announcement announcement) {
+//        announcement.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username", SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
+        announcement.setPublishTime(new Date());
+        announcement.setCtime(new Date());
+        announcement.setGroupId(groupId);
+        return announcementDao.insert(announcement);
+    }
+
+    @Override
+    public AnnouncementVo getAnnouncementsById(Integer id) {
+        AnnouncementVo announcementVo = new AnnouncementVo();
+        Announcement announcement = announcementDao.selectById(id);
+        User user = userDao.selectOne(new QueryWrapper<User>().eq("id", announcement.getCreator()));
+        BeanUtils.copyProperties(announcement,announcementVo);
+        announcementVo.setCreateName(user.getRealName());
+        return announcementVo;
+    }
 }

--
Gitblit v1.8.0