From d60406e8f251a7c8343825403f5fd71de1680975 Mon Sep 17 00:00:00 2001
From: wl <173@qq.com>
Date: 星期一, 08 八月 2022 13:31:48 +0800
Subject: [PATCH] bug解决

---
 src/main/java/com/example/jz/modle/dto/PublicityLoadDto.java           |   27 +++
 src/main/java/com/example/jz/modle/entity/Sensitive.java               |    4 
 src/main/java/com/example/jz/modle/vo/QuestionVo.java                  |   28 ++++
 src/main/java/com/example/jz/modle/entity/Announcement.java            |    3 
 src/main/java/com/example/jz/service/impl/PublicityServiceImpl.java    |   42 ++++++
 src/main/java/com/example/jz/modle/entity/User.java                    |    2 
 src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java |   36 ++++-
 src/main/java/com/example/jz/modle/vo/SensitiveVO.java                 |    2 
 src/main/java/com/example/jz/service/AnnouncementService.java          |   12 
 src/main/java/com/example/jz/controller/CommonQuestionController.java  |   33 ++++
 src/main/java/com/example/jz/service/PublicityService.java             |    3 
 src/main/java/com/example/jz/controller/SensitiveController.java       |   30 ++-
 src/main/java/com/example/jz/controller/TestController.java            |    7 
 src/main/java/com/example/jz/controller/UserController.java            |   32 +++-
 src/main/java/com/example/jz/controller/PublicityController.java       |   46 ++++++
 src/main/java/com/example/jz/modle/dto/SensitiveDto.java               |    2 
 src/main/java/com/example/jz/modle/vo/AnnouncementVo.java              |    3 
 src/main/java/com/example/jz/modle/vo/PublicityVo.java                 |   29 ++++
 src/main/java/com/example/jz/controller/AnnouncementController.java    |   24 +-
 19 files changed, 309 insertions(+), 56 deletions(-)

diff --git a/src/main/java/com/example/jz/controller/AnnouncementController.java b/src/main/java/com/example/jz/controller/AnnouncementController.java
index 9a3a3dd..8321be2 100644
--- a/src/main/java/com/example/jz/controller/AnnouncementController.java
+++ b/src/main/java/com/example/jz/controller/AnnouncementController.java
@@ -38,6 +38,13 @@
         return R.ok(announcementService.getAnnouncements(size, current, content, status, groupId));
     }
 
+    @ApiOperation(httpMethod = "GET", value = "缇ゅ叕鍛婇�氳繃id鏌ヨ")
+    @GetMapping("/getAnnouncementsById")
+    @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
+    public R getAnnouncements(@RequestParam(value = "id") Integer id) {
+        return R.ok(announcementService.getAnnouncementsById(id));
+    }
+
     @ApiOperation(httpMethod = "POST", value = "缇ゅ叕鍛婃坊鍔�")
     @PostMapping("/add")
     @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
@@ -45,21 +52,16 @@
         return R.ok(announcementService.add(groupId, announcement));
     }
 
-    @ApiOperation(httpMethod = "PUT", value = "缇ゅ叕鍛婂彂甯�")
-    @PutMapping("/updateStatusPublic")
+    @ApiOperation(httpMethod = "PUT", value = "缇ゅ叕鍛婂彂甯�/涓嬫灦")
+    @PutMapping("/publicOrUnshelve")
     @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
-    public R updateStatusPublic(@RequestParam(value = "id") Integer id) {
-        announcementService.updateStatus(id);
+    public R updateStatusPublic(@RequestParam(value = "id") Integer id,
+                                @RequestParam(value = "status")Integer status) {
+        announcementService.updateStatus(id,status);
         return R.ok();
     }
 
-    @ApiOperation(httpMethod = "PUT", value = "缇ゅ叕鍛婁笅鏋�")
-    @PutMapping("/updateStatusUnshelve")
-    @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
-    public R updateStatusUnshelve(@RequestParam(value = "id") Integer id) {
-        announcementService.updateStatusUnshelve(id);
-        return R.ok();
-    }
+
 
     @ApiOperation(httpMethod = "DELETE", value = "缇ゅ叕鍛婂垹闄�")
     @DeleteMapping("/delete")
diff --git a/src/main/java/com/example/jz/controller/CommonQuestionController.java b/src/main/java/com/example/jz/controller/CommonQuestionController.java
index 6445380..f0bc12a 100644
--- a/src/main/java/com/example/jz/controller/CommonQuestionController.java
+++ b/src/main/java/com/example/jz/controller/CommonQuestionController.java
@@ -3,17 +3,25 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.api.ApiController;
-import com.baomidou.mybatisplus.extension.api.R;
+
+import com.example.jz.dao.UserDao;
 import com.example.jz.modle.PageParam;
+import com.example.jz.modle.R;
 import com.example.jz.modle.entity.CommonQuestion;
+import com.example.jz.modle.entity.User;
+import com.example.jz.modle.vo.QuestionVo;
 import com.example.jz.service.CommonQuestionService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
 
 /**
@@ -31,6 +39,8 @@
      */
     @Resource
     private CommonQuestionService commonQuestionService;
+    @Resource
+    UserDao userDao;
 
     /**
      * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�
@@ -41,8 +51,24 @@
      */
     @GetMapping
     @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
-    public R<IPage<CommonQuestion>> selectAll(PageParam<CommonQuestion> page, CommonQuestion commonQuestion) {
-        return R.ok(commonQuestionService.page(page, new QueryWrapper<>(commonQuestion)));
+    public R<IPage<QuestionVo>> selectAll(PageParam<CommonQuestion> page, CommonQuestion commonQuestion) {
+        ArrayList<QuestionVo> QuestionVos = new ArrayList<>();
+        PageParam<CommonQuestion> CommonQuestionPageParam ;
+        if (commonQuestion.getStatus()!=null ){
+            CommonQuestionPageParam = commonQuestionService.page(page, new QueryWrapper<CommonQuestion>().like(StringUtils.isNotBlank(commonQuestion.getQuestionTitle()),"question_title",commonQuestion.getQuestionTitle()).eq("status",commonQuestion.getStatus()).orderByDesc("ctime"));
+        }else {
+            CommonQuestionPageParam = commonQuestionService.page(page, new QueryWrapper<CommonQuestion>().like(StringUtils.isNotBlank(commonQuestion.getQuestionTitle()),"question_title",commonQuestion.getQuestionTitle()).orderByDesc("ctime"));
+        }
+        CommonQuestionPageParam.getRecords().forEach(item->{
+            QuestionVo QuestionVo = new QuestionVo();
+            BeanUtils.copyProperties(item,QuestionVo);
+            QuestionVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id",item.getCreator())).getRealName());
+            QuestionVos.add(QuestionVo);
+        });
+        PageParam<QuestionVo> QuestionVoPageParam = new PageParam<>();
+        BeanUtils.copyProperties(CommonQuestionPageParam,QuestionVoPageParam);
+        QuestionVoPageParam.setRecords(QuestionVos);
+        return R.ok(QuestionVoPageParam);
     }
 
     /**
@@ -68,6 +94,7 @@
     public R<Boolean> insert(@RequestBody CommonQuestion commonQuestion) {
         commonQuestion.setStatus(0);
         commonQuestion.setCtime(new Date());
+        commonQuestion.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username",  SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
         return R.ok(commonQuestionService.save(commonQuestion));
     }
 
diff --git a/src/main/java/com/example/jz/controller/PublicityController.java b/src/main/java/com/example/jz/controller/PublicityController.java
index 107e9bf..7a24eb8 100644
--- a/src/main/java/com/example/jz/controller/PublicityController.java
+++ b/src/main/java/com/example/jz/controller/PublicityController.java
@@ -2,18 +2,27 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.example.jz.dao.UserDao;
 import com.example.jz.modle.PageParam;
-import com.example.jz.modle.entity.Publicity;
 import com.example.jz.modle.R;
+import com.example.jz.modle.entity.Publicity;
+import com.example.jz.modle.entity.User;
+import com.example.jz.modle.vo.PublicityVo;
 import com.example.jz.service.PublicityService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiResponse;
+import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
+import java.util.ArrayList;
 import java.util.Date;
 
 /**
@@ -31,6 +40,8 @@
      */
     @Resource
     private PublicityService publicityService;
+    @Resource
+    UserDao userDao;
 
     /**
      * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�
@@ -41,8 +52,24 @@
      */
     @GetMapping
     @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
-    public R<IPage<Publicity>> selectAll(PageParam<Publicity> page, Publicity publicity) {
-        return R.ok(publicityService.page(page, new QueryWrapper<>(publicity)));
+    public R<IPage<PublicityVo>> selectAll(PageParam<Publicity> page, Publicity publicity) {
+        ArrayList<PublicityVo> publicityVos = new ArrayList<>();
+        PageParam<Publicity> publicityPageParam ;
+        if (publicity.getStatus()!=null ){
+            publicityPageParam = publicityService.page(page, new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),"publicity_title",publicity.getPublicityTitle()).eq("status",publicity.getStatus()).orderByDesc("ctime"));
+        }else {
+            publicityPageParam = publicityService.page(page, new QueryWrapper<Publicity>().like(StringUtils.isNotBlank(publicity.getPublicityTitle()),"publicity_title",publicity.getPublicityTitle()).orderByDesc("ctime"));
+        }
+        publicityPageParam.getRecords().forEach(item->{
+            PublicityVo publicityVo = new PublicityVo();
+            BeanUtils.copyProperties(item,publicityVo);
+            publicityVo.setUserName(userDao.selectOne(new QueryWrapper<User>().eq("id",item.getCreator())).getRealName());
+            publicityVos.add(publicityVo);
+        });
+        PageParam<PublicityVo> publicityVoPageParam = new PageParam<>();
+        BeanUtils.copyProperties(publicityPageParam,publicityVoPageParam);
+        publicityVoPageParam.setRecords(publicityVos);
+        return R.ok(publicityVoPageParam);
     }
 
     /**
@@ -66,7 +93,9 @@
     @PostMapping
     @ApiOperation("娣诲姞鍏叡瀹d紶")
     public R<Boolean> insert(@RequestBody Publicity publicity) {
+        publicity.setStatus(0);
         publicity.setCtime(new Date());
+        publicity.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("login_username",  SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId());
         return R.ok(publicityService.save(publicity));
     }
 
@@ -117,4 +146,13 @@
     public R<Boolean> delete(@PathVariable Serializable id) {
         return R.ok(publicityService.removeById(id));
     }
+
+    @ApiOperation(httpMethod = "POST", value = "妗堜欢鍙�-妗堜欢褰曞叆-妗堜欢瀵煎叆")
+    @PostMapping("/upload")
+    @ApiResponse(message = "鎵ц鎴愬姛", code = 200)
+    @SneakyThrows
+    public R upload(@RequestParam(value = "multipartFile") MultipartFile multipartFile) {
+        publicityService.loadFile(multipartFile);
+        return R.ok();
+    }
 }
diff --git a/src/main/java/com/example/jz/controller/SensitiveController.java b/src/main/java/com/example/jz/controller/SensitiveController.java
index 7f44460..6b1bd38 100644
--- a/src/main/java/com/example/jz/controller/SensitiveController.java
+++ b/src/main/java/com/example/jz/controller/SensitiveController.java
@@ -3,16 +3,20 @@
 
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.api.ApiController;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.example.jz.dao.UserDao;
 import com.example.jz.modle.PageParam;
 import com.example.jz.modle.R;
 import com.example.jz.modle.entity.Sensitive;
 import com.example.jz.modle.dto.SensitiveDto;
+import com.example.jz.modle.entity.User;
 import com.example.jz.modle.vo.SensitiveVO;
 import com.example.jz.service.SensitiveService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -39,6 +43,9 @@
     @Resource
     private SensitiveService sensitiveService;
 
+    @Resource
+    UserDao userDao;
+
     /**
      * 鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�
      *
@@ -49,13 +56,14 @@
     @GetMapping
     @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
     public R<Page<SensitiveVO>> selectAll(PageParam<Sensitive> page, Sensitive sensitive) {
-        Page<Sensitive> sensitivePage = sensitiveService.page(page, new QueryWrapper<>(sensitive));
+        Page<Sensitive> sensitivePage = sensitiveService.page(page, new QueryWrapper<Sensitive>()
+                .like(StringUtils.isNotBlank(sensitive.getWords()),"words",sensitive.getWords()).orderByDesc("ctime"));
         // 灏唖ensitive杞崲鎴恠ensitiveVO
         List<SensitiveVO> sensitiveVOList = new ArrayList<>();
         for (Sensitive s : sensitivePage.getRecords()) {
             SensitiveVO sensitiveVO = new SensitiveVO();
             BeanUtil.copyProperties(s, sensitiveVO);
-            sensitiveVO.setWords(Arrays.asList(s.getWord().split(",")));
+            sensitiveVO.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("id",s.getCreator())).getRealName());
             sensitiveVOList.add(sensitiveVO);
         }
         // 灏佽鍒嗛〉鏁版嵁
@@ -77,7 +85,7 @@
         Sensitive sensitive = sensitiveService.getById(id);
         SensitiveVO sensitiveVO = new SensitiveVO();
         BeanUtil.copyProperties(sensitive, sensitiveVO);
-        sensitiveVO.setWords(Arrays.asList(sensitive.getWord().split(",")));
+        sensitiveVO.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("id",sensitive.getCreator())).getRealName());
         return R.ok(sensitiveVO);
     }
 
@@ -90,7 +98,9 @@
     @PostMapping
     @ApiOperation("鏂板鏁版嵁")
     public R<Boolean> insert(@RequestBody SensitiveDto sensitiveDto) {
-        Sensitive sensitive = new Sensitive().setCreator(sensitiveDto.getCreator()).setCtime(new Date()).setWord(String.join(",", sensitiveDto.getWords()));
+        Sensitive sensitive = new Sensitive().setCreator(userDao.selectOne(new QueryWrapper<User>()
+                        .eq("login_username",  SecurityContextHolder.getContext().getAuthentication().getPrincipal())).getId())
+                .setCtime(new Date()).setWords(sensitiveDto.getWords());
         return R.ok(sensitiveService.save(sensitive));
     }
 
@@ -100,12 +110,12 @@
      * @param sensitiveDto 瀹炰綋瀵硅薄
      * @return 淇敼缁撴灉
      */
-    @PutMapping
-    @ApiOperation("淇敼鏁版嵁")
-    public R<Boolean> update(@RequestBody SensitiveDto sensitiveDto) {
-        Sensitive sensitive = new Sensitive().setId(sensitiveDto.getId()).setCreator(sensitiveDto.getCreator()).setWord(String.join(",", sensitiveDto.getWords()));
-        return R.ok(sensitiveService.updateById(sensitive));
-    }
+//    @PutMapping
+//    @ApiOperation("淇敼鏁版嵁")
+//    public R<Boolean> update(@RequestBody SensitiveDto sensitiveDto) {
+//        Sensitive sensitive = new Sensitive().setId(sensitiveDto.getId()).setCreator(sensitiveDto.getCreator()).setWord(String.join(",", sensitiveDto.getWords()));
+//        return R.ok(sensitiveService.updateById(sensitive));
+//    }
 
     /**
      * 鍒犻櫎鏁版嵁
diff --git a/src/main/java/com/example/jz/controller/TestController.java b/src/main/java/com/example/jz/controller/TestController.java
index 7cdf69a..7cde586 100644
--- a/src/main/java/com/example/jz/controller/TestController.java
+++ b/src/main/java/com/example/jz/controller/TestController.java
@@ -1,8 +1,11 @@
 package com.example.jz.controller;
 
+import com.example.jz.auth.TokenJwtManager;
 import com.example.jz.exception.BusinessException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -14,11 +17,13 @@
 @RestController("test")
 @Api(value = "娴嬭瘯鎺ュ彛", tags = "娴嬭瘯鎺ュ彛")
 public class TestController {
+    @Autowired
+    TokenJwtManager tokenJwtManager;
 
     @GetMapping("/business")
     @ApiOperation("涓氬姟寮傚父娴嬭瘯")
     public String test() {
-        throw new BusinessException("涓氬姟寮傚父");
+        return null;
     }
 
     @GetMapping("/custom")
diff --git a/src/main/java/com/example/jz/controller/UserController.java b/src/main/java/com/example/jz/controller/UserController.java
index 20d0031..eb3c7ec 100644
--- a/src/main/java/com/example/jz/controller/UserController.java
+++ b/src/main/java/com/example/jz/controller/UserController.java
@@ -1,10 +1,10 @@
 package com.example.jz.controller;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.api.ApiController;
-import com.baomidou.mybatisplus.extension.api.R;
-import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.example.jz.modle.R;
 import com.example.jz.modle.entity.User;
 import com.example.jz.service.UserService;
 import com.example.jz.utils.Md5Utils;
@@ -15,8 +15,8 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import javax.annotation.Resource;
 import java.io.Serializable;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -46,7 +46,11 @@
     @GetMapping
     @ApiOperation("鍒嗛〉鏌ヨ鎵�鏈夋暟鎹�")
     public R selectAll(Page<User> page, User user) {
-        return success(this.userService.page(page, new QueryWrapper<>(user)));
+        return R.ok(this.userService.page(page, new QueryWrapper<User>()
+                        .like(StringUtils.isNotBlank(user.getNickName()),"nick_name",user.getNickName())
+                .or()
+                .like(StringUtils.isNotBlank(user.getRealName()),"real_name",user.getRealName())
+                .orderByDesc("ctime")));
     }
 
     /**
@@ -58,7 +62,7 @@
     @GetMapping("{id}")
     @ApiOperation("閫氳繃涓婚敭鏌ヨ鍗曟潯鏁版嵁")
     public R selectOne(@PathVariable Serializable id) {
-        return success(this.userService.getById(id));
+        return R.ok(this.userService.getById(id));
     }
 
     /**
@@ -70,7 +74,7 @@
     @PutMapping
     @ApiOperation("淇敼鐢ㄦ埛鏁版嵁")
     public R update(@RequestBody User user) {
-        return success(userService.updateById(user));
+        return R.ok(userService.updateById(user));
     }
 
     /**
@@ -81,8 +85,8 @@
      */
     @DeleteMapping
     @ApiOperation("鍒犻櫎鐢ㄦ埛鏁版嵁")
-    public R delete(@RequestParam("idList") List<Long> idList) {
-        return success(this.userService.removeByIds(idList));
+    public R delete(@RequestParam("id") Integer id) {
+        return R.ok(this.userService.removeById(id));
     }
 
     /**
@@ -101,8 +105,16 @@
     })
     public R addAdmin(@PathVariable Serializable id, String username, String password) {
         User user = userService.getById(id).setLoginUsername(username).setLoginPassword(Md5Utils.md5(password)).setRole(1);
-        return success(userService.updateById(user));
+        return R.ok(userService.updateById(user));
     }
+
+    @PostMapping("/add")
+    @ApiOperation("娣诲姞")
+    public R add(@RequestBody User user) {
+        user.setCtime(new Date());
+        return R.ok(userService.save(user));
+    }
+
 
     /**
      * 閲嶇疆绠$悊鍛樺瘑鐮�
@@ -116,6 +128,6 @@
         User user = userService.getById(id);
         // 閲嶇疆鍒濆瀵嗙爜涓鸿韩浠借瘉鍚庡叚浣�
         user.setLoginPassword(Md5Utils.md5(user.getUserIdcard().substring(user.getUserIdcard().length() - 6)));
-        return success(userService.updateById(user));
+        return R.ok(userService.updateById(user));
     }
 }
diff --git a/src/main/java/com/example/jz/modle/dto/PublicityLoadDto.java b/src/main/java/com/example/jz/modle/dto/PublicityLoadDto.java
new file mode 100644
index 0000000..2027206
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/dto/PublicityLoadDto.java
@@ -0,0 +1,27 @@
+package com.example.jz.modle.dto;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ApiModel(description = "缇ゅ叕鍛婂綍鍏ュ鍏�", value = "PublicityLoadDto")
+public class PublicityLoadDto {
+    //妗堜欢缂栧彿
+    @ApiModelProperty(dataType = "String", value = "鏍囬")
+    @ExcelProperty(value = "鏍囬", index = 0)
+    private String publicityTitle;
+
+    @ApiModelProperty(dataType = "String", value = "鍐呭")
+    @ExcelProperty(value = "鍐呭", index = 1)
+    private String text;
+
+
+    //璐熻矗浜�
+    @ApiModelProperty(dataType = "String", value = "鍒涘缓浜�")
+    @ExcelProperty(value = "鍒涘缓浜�", index = 2)
+    private String userName;
+}
diff --git a/src/main/java/com/example/jz/modle/dto/SensitiveDto.java b/src/main/java/com/example/jz/modle/dto/SensitiveDto.java
index d718229..d68e827 100644
--- a/src/main/java/com/example/jz/modle/dto/SensitiveDto.java
+++ b/src/main/java/com/example/jz/modle/dto/SensitiveDto.java
@@ -25,7 +25,7 @@
     private Integer id;
     //鏁忔劅璇嶏紝鐢�,鍒嗛殧
     @ApiModelProperty(value = "鏁忔劅璇�")
-    private List<String> words;
+    private String words;
     //鍒涘缓鑰�
     @ApiModelProperty(value = "鍒涘缓鑰�")
     private String creator;
diff --git a/src/main/java/com/example/jz/modle/entity/Announcement.java b/src/main/java/com/example/jz/modle/entity/Announcement.java
index 09497ff..dba3a43 100644
--- a/src/main/java/com/example/jz/modle/entity/Announcement.java
+++ b/src/main/java/com/example/jz/modle/entity/Announcement.java
@@ -52,5 +52,8 @@
 
     //鐘舵��
     private Integer status;
+
+    //鍙戝竷鏃堕棿
+    private Date publishTime;
 }
 
diff --git a/src/main/java/com/example/jz/modle/entity/Sensitive.java b/src/main/java/com/example/jz/modle/entity/Sensitive.java
index dd95f08..10e206a 100644
--- a/src/main/java/com/example/jz/modle/entity/Sensitive.java
+++ b/src/main/java/com/example/jz/modle/entity/Sensitive.java
@@ -30,9 +30,9 @@
     @TableId
     private Integer id;
     //鏁忔劅璇嶏紝鐢�,鍒嗛殧
-    private String word;
+    private String words;
     //鍒涘缓鑰�
-    private String creator;
+    private Integer creator;
     //鍒涘缓鏃堕棿
     private Date ctime;
 
diff --git a/src/main/java/com/example/jz/modle/entity/User.java b/src/main/java/com/example/jz/modle/entity/User.java
index 65b195b..d04b868 100644
--- a/src/main/java/com/example/jz/modle/entity/User.java
+++ b/src/main/java/com/example/jz/modle/entity/User.java
@@ -84,5 +84,7 @@
     private Integer id;
 
     private Integer role;
+
+    private Date ctime;
 }
 
diff --git a/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java b/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java
index a5d0ef6..39fd936 100644
--- a/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java
+++ b/src/main/java/com/example/jz/modle/vo/AnnouncementVo.java
@@ -37,4 +37,7 @@
 
     //鐘舵��
     private Integer status;
+
+    //鍙戝竷鏃堕棿
+    private Date publishTime;
 }
diff --git a/src/main/java/com/example/jz/modle/vo/PublicityVo.java b/src/main/java/com/example/jz/modle/vo/PublicityVo.java
new file mode 100644
index 0000000..87b3326
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/vo/PublicityVo.java
@@ -0,0 +1,29 @@
+package com.example.jz.modle.vo;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class PublicityVo {
+
+    @ApiModelProperty(dataType = "Integer", value = "id")
+    private Integer id;
+
+    @ApiModelProperty(dataType = "String", value = "鏍囬")
+    private String publicityTitle;
+
+    //妗堜欢鐘舵��
+    @ApiModelProperty(dataType = "Integer", value = "鐘舵��")
+    private Integer status;
+
+    //璐熻矗浜�
+    @ApiModelProperty(dataType = "String", value = "鍒涘缓浜�")
+    private String userName;
+
+    //鏈�鏃╂妗堝彂鏃堕棿
+    @ApiModelProperty(dataType = "Date", value = "鍙戝竷鏃堕棿")
+    private Date releaseTime;
+}
diff --git a/src/main/java/com/example/jz/modle/vo/QuestionVo.java b/src/main/java/com/example/jz/modle/vo/QuestionVo.java
new file mode 100644
index 0000000..064fd7d
--- /dev/null
+++ b/src/main/java/com/example/jz/modle/vo/QuestionVo.java
@@ -0,0 +1,28 @@
+package com.example.jz.modle.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class QuestionVo {
+
+    @ApiModelProperty(dataType = "Integer", value = "id")
+    private Integer id;
+
+    @ApiModelProperty(dataType = "String", value = "鍏抽敭瀛�")
+    private String questionTitle;
+
+    //妗堜欢鐘舵��
+    @ApiModelProperty(dataType = "Integer", value = "鐘舵��")
+    private Integer status;
+
+    //璐熻矗浜�
+    @ApiModelProperty(dataType = "String", value = "鍒涘缓浜�")
+    private String userName;
+
+    //鏈�鏃╂妗堝彂鏃堕棿
+    @ApiModelProperty(dataType = "Date", value = "鍙戝竷鏃堕棿")
+    private Date releaseTime;
+}
diff --git a/src/main/java/com/example/jz/modle/vo/SensitiveVO.java b/src/main/java/com/example/jz/modle/vo/SensitiveVO.java
index d71b9a1..eafec18 100644
--- a/src/main/java/com/example/jz/modle/vo/SensitiveVO.java
+++ b/src/main/java/com/example/jz/modle/vo/SensitiveVO.java
@@ -27,7 +27,7 @@
     private Integer id;
     //鏁忔劅璇嶏紝鐢�,鍒嗛殧
     @ApiModelProperty(value = "鏁忔劅璇�")
-    private List<String> words;
+    private String words;
     //鍒涘缓鑰�
     @ApiModelProperty(value = "鍒涘缓鑰�")
     private String creator;
diff --git a/src/main/java/com/example/jz/service/AnnouncementService.java b/src/main/java/com/example/jz/service/AnnouncementService.java
index 3f16e7d..ff1f818 100644
--- a/src/main/java/com/example/jz/service/AnnouncementService.java
+++ b/src/main/java/com/example/jz/service/AnnouncementService.java
@@ -23,19 +23,19 @@
     PageParam<AnnouncementVo> getAnnouncements(Integer size, Integer current, String content, Integer status,Integer groupId);
 
     /**
-     * @Description 鍙戝竷
+     * @Description 鍙戝竷/涓嬫灦
      * @Param [id]
      * @return java.lang.Integer
      **/
-    Integer updateStatus(Integer id);
+    void updateStatus(Integer id,Integer status);
 
     /**
-     * @Description 涓嬫灦
-     * @Param [id]
+     * @Description 娣诲姞
+     * @Param [groupId, announcement]
      * @return java.lang.Integer
      **/
-    Integer updateStatusUnshelve(Integer id);
-
     Integer add(Integer groupId, Announcement announcement);
+
+    AnnouncementVo getAnnouncementsById(Integer id);
 }
 
diff --git a/src/main/java/com/example/jz/service/PublicityService.java b/src/main/java/com/example/jz/service/PublicityService.java
index 7173d3a..e45a634 100644
--- a/src/main/java/com/example/jz/service/PublicityService.java
+++ b/src/main/java/com/example/jz/service/PublicityService.java
@@ -6,6 +6,7 @@
 import com.example.jz.modle.PageParam;
 import com.example.jz.modle.dto.PublicityDto;
 import com.example.jz.modle.entity.Publicity;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.io.Serializable;
 
@@ -22,4 +23,6 @@
     Boolean grounding(Serializable id);
 
     IPage<PublicityDto> findByPage(PageParam<PublicityDto> page, QueryWrapper<PublicityDto> publicityDtoQueryWrapper);
+
+    void loadFile(MultipartFile multipartFile);
 }
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 5e343a3..993cc40 100644
--- a/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/AnnouncementServiceImpl.java
@@ -4,6 +4,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 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;
@@ -12,6 +13,8 @@
 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;
@@ -32,6 +35,9 @@
     AnnouncementDao announcementDao;
     @Resource
     UserDao userDao;
+
+    @Autowired
+    TokenJwtManager tokenJwtManager;
 
     @Override
     public PageParam<AnnouncementVo> getAnnouncements(Integer size, Integer current, String content, Integer status, Integer groupId) {
@@ -63,20 +69,36 @@
     }
 
     @Override
-    public Integer updateStatus(Integer id) {
-        return announcementDao.update(new Announcement().setStatus(1), new UpdateWrapper<Announcement>().eq("id", id));
+    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 updateStatusUnshelve(Integer id) {
-        return announcementDao.update(new Announcement().setStatus(2), new UpdateWrapper<Announcement>().eq("id", id));
-    }
 
     @Override
     public Integer add(Integer groupId, Announcement announcement) {
-        announcement.setStatus(0);
+        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 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;
+    }
 }
diff --git a/src/main/java/com/example/jz/service/impl/PublicityServiceImpl.java b/src/main/java/com/example/jz/service/impl/PublicityServiceImpl.java
index 90390a8..28f970f 100644
--- a/src/main/java/com/example/jz/service/impl/PublicityServiceImpl.java
+++ b/src/main/java/com/example/jz/service/impl/PublicityServiceImpl.java
@@ -1,18 +1,31 @@
 package com.example.jz.service.impl;
 
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+import com.alibaba.excel.metadata.data.ReadCellData;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.example.jz.dao.PublicityDao;
+import com.example.jz.dao.UserDao;
 import com.example.jz.modle.PageParam;
+import com.example.jz.modle.dto.CauseLoadDto;
 import com.example.jz.modle.dto.PublicityDto;
+import com.example.jz.modle.dto.PublicityLoadDto;
 import com.example.jz.modle.entity.Publicity;
+import com.example.jz.modle.entity.User;
 import com.example.jz.service.PublicityService;
+import lombok.SneakyThrows;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import java.io.Serializable;
 import java.util.Date;
+import java.util.Map;
 
 /**
  * 鍏叡瀹d紶琛�(Publicity)琛ㄦ湇鍔″疄鐜扮被
@@ -25,6 +38,9 @@
 
     @Resource
     private PublicityDao publicityDao;
+
+    @Resource
+    private UserDao userDao;
 
     @Override
     public Boolean undercarriage(Serializable id) {
@@ -51,4 +67,30 @@
     public IPage<PublicityDto> findByPage(PageParam<PublicityDto> page, QueryWrapper<PublicityDto> publicityDtoQueryWrapper) {
         return publicityDao.findByPage(page, publicityDtoQueryWrapper);
     }
+
+    @Override
+    @SneakyThrows
+    public void loadFile(MultipartFile multipartFile) {
+        EasyExcel.read(multipartFile.getInputStream(), PublicityLoadDto.class, new AnalysisEventListener<PublicityLoadDto>(){
+
+            @Override
+            public void invoke(PublicityLoadDto data, AnalysisContext context) {
+                if (StringUtils.isNotBlank(data.getPublicityTitle()) && StringUtils.isNotBlank(data.getUserName())) {
+                    Publicity publicity = new Publicity();
+                        publicity.setStatus(0);
+                    BeanUtils.copyProperties(data,publicity);
+                    publicity.setCtime(new Date());
+                    publicity.setCreator(userDao.selectOne(new QueryWrapper<User>().eq("real_name",data.getUserName())).getId());
+                    publicityDao.insert(publicity);
+                }
+
+            }
+
+            @Override
+            public void doAfterAllAnalysed(AnalysisContext context) {
+
+            }
+        }) .autoCloseStream(true)
+                .doReadAll();
+    }
 }

--
Gitblit v1.8.0