zhongrj
2024-04-09 daa9d8eba1f2b36d7b094d9079948b081008059d
src/main/java/org/springblade/modules/article/controller/ArticleController.java
@@ -1,6 +1,5 @@
package org.springblade.modules.article.controller;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -8,18 +7,18 @@
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.es.service.ElasticsearchDocumentService;
import org.springblade.es.vo.EsParam;
import org.springblade.modules.article.entity.Article;
import org.springblade.modules.article.service.ArticleService;
import org.springblade.modules.article.vo.ArticleVO;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -34,11 +33,13 @@
public class ArticleController {
   private final ArticleService articleService;
   private final ElasticsearchDocumentService elasticsearchDocumentService;
   /**
    * 查询资讯分页信息
    * @param article  资讯对象
    * @param query    查询参数
    *
    * @param article 资讯对象
    * @param query   查询参数
    * @return
    */
   @GetMapping("/pageWeb")
@@ -46,10 +47,16 @@
      return R.data(articleService.selectArticlePage(Condition.getPage(query), article));
   }
   @GetMapping("/getArticleByDistrictId")
   public R<List<ArticleVO>> getArticleByDistrictId(ArticleVO article) {
      return R.data(articleService.getArticleByDistrictId(article));
   }
   /**
    * 查询资讯分页信息-app
    * @param article  资讯对象
    * @param query    查询参数
    *
    * @param article 资讯对象
    * @param query   查询参数
    * @return
    */
   @GetMapping("/page")
@@ -59,8 +66,9 @@
   /**
    * 敏感词预警
    * @param article  资讯对象
    * @param query    查询参数
    *
    * @param article 资讯对象
    * @param query   查询参数
    * @return
    */
   @GetMapping("/pageWords")
@@ -70,8 +78,9 @@
   /**
    * 查询资讯分页信息(角色权限)
    * @param article  资讯对象
    * @param query    查询参数
    *
    * @param article 资讯对象
    * @param query   查询参数
    * @return
    */
   @GetMapping("/pageDate")
@@ -86,8 +95,9 @@
   /**
    * 查询资讯分页信息(角色权限)附带点赞评论数
    * @param article  资讯对象
    * @param query    查询参数
    *
    * @param article 资讯对象
    * @param query   查询参数
    * @return
    */
   @GetMapping("/pageLikes")
@@ -107,7 +117,7 @@
   /**
    * 资讯详情
    *
    * @param article  资讯查询对象
    * @param article 资讯查询对象
    */
   @GetMapping("/detail")
   @ApiOperationSupport(order = 1)
@@ -118,11 +128,11 @@
      objectUpdateWrapper.setSql("view_number = view_number + 1");
      objectUpdateWrapper.eq("id", article.getId());
      articleService.update(null, objectUpdateWrapper);
      List<List<String>> lists = new ArrayList<>();
      if (StringUtils.isNotBlank(detail.getArticleRange())) {
         lists = (List<List<String>>) JSON.parse(detail.getArticleRange());
      }
      detail.setArticleList(lists);
//      List<List<String>> lists = new ArrayList<>();
//      if (StringUtils.isNotBlank(detail.getArticleRange())) {
//         lists = (List<List<String>>) JSON.parse(detail.getArticleRange());
//      }
//      detail.setArticleList(lists);
      return R.data(detail);
   }
@@ -140,6 +150,7 @@
   /**
    * 修改资讯信息
    *
    * @param article 资讯对象
    */
   @PostMapping("/update")
@@ -155,32 +166,64 @@
    * @param article 资讯对象信息
    */
   @PostMapping("/submit")
   public R submit(@RequestBody ArticleVO article) {
   @ApiOperationSupport(order = 6)
   @ApiOperation(value = "新增或修改资讯信息", notes = "传入article")
   public R submit(@RequestBody Article article) {
      boolean flag = false;
      if (null == article.getId()) {
         flag = true;
         if (null == article.getCreateTime()) {
            article.setCreateTime(new Date());
         }
      }
      article.setUpdateTime(new Date());
      return R.status(articleService.saveOrUpdate(article));
      boolean saveOrUpdate = articleService.saveOrUpdate(article);
      if (saveOrUpdate){
         EsParam esParam = new EsParam();
         esParam.setIndexName("test");
         esParam.setTableName("jczz_article");
         if (flag) {
            // 更新到es库
            elasticsearchDocumentService.addArticle(esParam, article);
         }else {
            esParam.setTableId(article.getId().toString());
            // 更新
            elasticsearchDocumentService.update(esParam,article);
         }
      }
      return R.status(saveOrUpdate);
   }
   /**
    * 删除资讯信息
    *
    * @param ids 资讯主键id,id集合
    */
   @PostMapping("/remove")
   @ApiOperationSupport(order = 8)
   @ApiOperation(value = "删除", notes = "传入ids")
   public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
      return R.status(articleService.removeByIds(Func.toLongList(ids)));
      List<Long> longs = Func.toLongList(ids);
      boolean removeByIds = articleService.removeByIds(longs);
      if (removeByIds){
         for (Long id : longs) {
            EsParam esParam = new EsParam();
            esParam.setIndexName("test");
            esParam.setTableName("jczz_article");
            esParam.setTableId(id.toString());
            elasticsearchDocumentService.removeByQuery(esParam);
         }
      }
      return R.status(removeByIds);
   }
   /**
    * 批量修改评论区状态
    */
   @PostMapping("/upcomment")
   @ApiOperationSupport(order = 5)
   @ApiOperation(value = "批量修改评论区状态", notes = "传入article")
   public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids, String type) {
      String[] split = ids.split(",");
      String strArrays = "";
@@ -193,25 +236,28 @@
   /**
    * 查询个人资讯
    *
    * @param article
    * @param query
    * @return
    */
   @GetMapping("/selectArticleG")
   @ApiOperationSupport(order = 5)
   @ApiOperation(value = "查询个人资讯", notes = "传入article")
   public R<IPage<Article>> selectArticleG(ArticleVO article, Query query) {
      return R.data(articleService.selectArticleG(Condition.getPage(query), article));
   }
   /**
    * 通知公告表浏览数量加一
    * 通知公告表浏览数量加一(反诈的居民查看会得积分)
    */
   @PostMapping("/addNumber")
   @ApiOperationSupport(order = 8)
   @ApiOperation(value = "添加浏览数量", notes = "传入notice")
   public R addNumber(@Valid @RequestBody Article notice) {
   public R addNumber(@Valid @RequestBody ArticleVO notice) {
      UpdateWrapper<Article> objectUpdateWrapper = new UpdateWrapper<>();
      objectUpdateWrapper.setSql("view_number = view_number + 1");
      objectUpdateWrapper.eq("id",notice.getId());
      return R.status(articleService.update(null ,objectUpdateWrapper));
      objectUpdateWrapper.eq("id", notice.getId());
      return R.status(articleService.updateArticle(objectUpdateWrapper,notice.getId(),notice.getHouseCode()));
   }
}