dengsixing 3 лет назад
Родитель
Сommit
4263eea8f3

+ 66 - 13
4dkankan-center-manage/src/main/java/com/fdkankan/manage/controller/NewsController.java

@@ -1,29 +1,22 @@
 package com.fdkankan.manage.controller;
 
 
-import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.dtflys.forest.annotation.Post;
 import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.manage.entity.News;
 import com.fdkankan.manage.service.INewsService;
+import com.fdkankan.manage.vo.BaseParamVO;
 import com.fdkankan.manage.vo.NewsDisplayParamVO;
-import com.fdkankan.manage.vo.NewsVO;
+import com.fdkankan.manage.vo.NewsPublicParamVO;
+import com.fdkankan.manage.vo.NewsPutTopParamVO;
 import com.fdkankan.manage.vo.PageNewsParamVO;
 import com.fdkankan.manage.vo.PageNewsVO;
-import java.io.BufferedInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.sql.Blob;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -41,14 +34,74 @@ public class NewsController extends BaseController {
     @Autowired
     private INewsService newsService;
 
+    /**
+     * 新闻列表
+     * @param param
+     * @return
+     */
     @PostMapping("/pageNews")
     public Page<PageNewsVO> pageNews(@RequestBody PageNewsParamVO param){
         return newsService.pageNews(param);
     }
 
+    /**
+     * 新闻列表
+     * @param param
+     * @return
+     */
+    @PostMapping("/publicNews")
+    public ResultData publicNews(@RequestBody @Validated NewsPublicParamVO param){
+        return newsService.publicNews(this.getUserId(), param);
+    }
+
+    /**
+     * 修改是否显示
+     * @param param
+     * @return
+     */
     @PostMapping("/display")
-    public ResultData display(@RequestBody NewsDisplayParamVO param){
-        return newsService.display(param);
+    public ResultData display(@RequestBody @Validated NewsDisplayParamVO param){
+        return newsService.display(this.getUserId(), param);
+    }
+
+    /**
+     * 修改是否置顶
+     * @param param
+     * @return
+     */
+    @PostMapping("/putTop")
+    public ResultData putTop(@RequestBody @Validated NewsPutTopParamVO param){
+        return newsService.putTop(this.getUserId(), param);
+    }
+
+    /**
+     * 修改是否置顶
+     * @param param
+     * @return
+     */
+    @PostMapping("/delete")
+    public ResultData delete(@RequestBody @Validated BaseParamVO param){
+        return newsService.delete(this.getUserId(), param);
+    }
+
+    /**
+     * 获取新闻详情
+     * @param param
+     * @return
+     */
+    @PostMapping("/getNewsDetail")
+    public News getNewsDetail(@RequestBody @Validated BaseParamVO param){
+        return newsService.getNewsDetail(param);
+    }
+
+    /**
+     * 保存
+     * @param param
+     * @return
+     */
+    @PostMapping("/save")
+    public News save(@RequestBody @Validated BaseParamVO param){
+        return newsService.getNewsDetail(param);
     }
 
 }

+ 6 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/entity/News.java

@@ -54,6 +54,12 @@ public class News extends BaseEntity {
     private Integer isTop;
 
     /**
+     * 是否发布(0-否,1-是)
+     */
+    @TableField("is_public")
+    private Integer isPublic;
+
+    /**
      * 标题
      */
     @TableField("title")

+ 13 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/INewsService.java

@@ -4,9 +4,13 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.manage.entity.News;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fdkankan.manage.vo.BaseParamVO;
 import com.fdkankan.manage.vo.NewsDisplayParamVO;
+import com.fdkankan.manage.vo.NewsPublicParamVO;
+import com.fdkankan.manage.vo.NewsPutTopParamVO;
 import com.fdkankan.manage.vo.PageNewsParamVO;
 import com.fdkankan.manage.vo.PageNewsVO;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
 
 /**
@@ -21,6 +25,14 @@ public interface INewsService extends IService<News> {
 
     Page<PageNewsVO> pageNews(PageNewsParamVO param);
 
-    ResultData display(NewsDisplayParamVO param);
+    ResultData display(Long userId, NewsDisplayParamVO param);
+
+    ResultData putTop(Long userId, NewsPutTopParamVO param);
+
+    ResultData publicNews(Long userId, NewsPublicParamVO param);
+
+    ResultData delete(Long userId, BaseParamVO param);
+
+    News getNewsDetail(BaseParamVO param);
 
 }

+ 55 - 1
4dkankan-center-manage/src/main/java/com/fdkankan/manage/service/impl/NewsServiceImpl.java

@@ -2,14 +2,20 @@ package com.fdkankan.manage.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.common.constant.CommonStatus;
+import com.fdkankan.common.constant.TbStatus;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.manage.entity.News;
 import com.fdkankan.manage.mapper.INewsMapper;
 import com.fdkankan.manage.service.INewsService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fdkankan.manage.vo.BaseParamVO;
 import com.fdkankan.manage.vo.NewsDisplayParamVO;
+import com.fdkankan.manage.vo.NewsPublicParamVO;
+import com.fdkankan.manage.vo.NewsPutTopParamVO;
 import com.fdkankan.manage.vo.PageNewsParamVO;
 import com.fdkankan.manage.vo.PageNewsVO;
+import java.util.Calendar;
 import org.springframework.stereotype.Service;
 
 /**
@@ -31,10 +37,58 @@ public class NewsServiceImpl extends ServiceImpl<INewsMapper, News> implements I
     }
 
     @Override
-    public ResultData display(NewsDisplayParamVO param) {
+    public ResultData display(Long userId, NewsDisplayParamVO param) {
         this.update(new LambdaUpdateWrapper<News>()
             .set(News::getDisplay, param.getDisplay())
+            .set(News::getUpdateTime, Calendar.getInstance().getTime())
+            .set(News::getUpdaterId, userId)
             .eq(News::getId, param.getId()));
         return ResultData.ok();
     }
+
+    @Override
+    public ResultData putTop(Long userId, NewsPutTopParamVO param) {
+
+        LambdaUpdateWrapper<News> updateWrapper = new LambdaUpdateWrapper<News>()
+            .set(News::getIsTop, param.getIsTop())
+            .set(News::getUpdateTime, Calendar.getInstance().getTime())
+            .set(News::getUpdaterId, userId)
+            .eq(News::getId, param.getId());
+        if(CommonStatus.YES.code() == param.getIsTop().byteValue()){
+            updateWrapper.set(News::getTopTime, Calendar.getInstance().getTime());
+        }
+        this.update(updateWrapper);
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData publicNews(Long userId, NewsPublicParamVO param) {
+        LambdaUpdateWrapper<News> updateWrapper = new LambdaUpdateWrapper<News>()
+            .set(News::getIsPublic, param.getIsPublic())
+            .set(News::getUpdateTime, Calendar.getInstance().getTime())
+            .set(News::getUpdaterId, userId)
+            .eq(News::getId, param.getId());
+        if(CommonStatus.YES.code() == param.getIsPublic().byteValue()){
+            updateWrapper.set(News::getPublicTime, Calendar.getInstance().getTime());
+        }
+        this.update(updateWrapper);
+
+        return ResultData.ok();
+    }
+
+    @Override
+    public ResultData delete(Long userId, BaseParamVO param) {
+        this.update(new LambdaUpdateWrapper<News>()
+            .set(News::getTbStatus, TbStatus.DELETE.code())
+            .set(News::getUpdateTime, Calendar.getInstance().getTime())
+            .set(News::getUpdaterId, userId)
+            .eq(News::getId, param.getId()));
+        return ResultData.ok();
+    }
+
+    @Override
+    public News getNewsDetail(BaseParamVO param) {
+        return this.getById(param.getId());
+    }
 }

+ 20 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/BaseParamVO.java

@@ -0,0 +1,20 @@
+package com.fdkankan.manage.vo;
+
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/7
+ **/
+@Data
+public class BaseParamVO {
+
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+}

+ 30 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/NewsPublicParamVO.java

@@ -0,0 +1,30 @@
+package com.fdkankan.manage.vo;
+
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * <p>
+ * 新闻发布参数
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/6
+ **/
+@Data
+public class NewsPublicParamVO {
+
+    /**
+     * 新闻id
+     */
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+    /**
+     * 发布状态(0-否,1-是)
+     */
+    @NotNull(message = "isPublic不能为空")
+    private Integer isPublic;
+    
+
+}

+ 30 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/NewsPutTopParamVO.java

@@ -0,0 +1,30 @@
+package com.fdkankan.manage.vo;
+
+import javax.validation.constraints.NotNull;
+import lombok.Data;
+
+/**
+ * <p>
+ * TODO
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/6/6
+ **/
+@Data
+public class NewsPutTopParamVO {
+
+    /**
+     * 新闻id
+     */
+    @NotNull(message = "id不能为空")
+    private Long id;
+
+    /**
+     * 置顶状态(0-否,1-是)
+     */
+    @NotNull(message = "isTop不能为空")
+    private Integer isTop;
+    
+
+}

+ 4 - 15
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/NewsVO.java

@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.fdkankan.db.base.BaseEntity;
 import java.sql.Blob;
 import java.util.Date;
+import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -18,10 +19,8 @@ import lombok.Setter;
  * @author 
  * @since 2022-06-06
  */
-@Getter
-@Setter
-@TableName("t_news")
-public class NewsVO extends BaseEntity {
+@Data
+public class NewsVO {
 
     private static final long serialVersionUID = 1L;
 
@@ -31,50 +30,40 @@ public class NewsVO extends BaseEntity {
     /**
      * 来源
      */
-    @TableField("source")
     private String source;
 
     /**
      * 新闻类型(1-链接,2-图文)
      */
-    @TableField("new_type")
     private Integer newType;
 
     /**
      * 是否显示(0-否,1-是)
      */
-    @TableField("display")
     private Integer display;
 
     /**
      * 是否置顶(0-否,1-是)
      */
-    @TableField("is_top")
     private Integer isTop;
 
     /**
      * 标题
      */
-    @TableField("title")
     private String title;
 
     /**
      * 新闻内容
      */
-    @TableField("content")
-    private Blob content;
+    private String content;
 
     /**
      * 封面图url
      */
-    @TableField("cover_image_url")
     private String coverImageUrl;
 
     /**
      * 发布时间
      */
-    @TableField("public_time")
     private Date publicTime;
-
-    private String contentStr;
 }

+ 5 - 0
4dkankan-center-manage/src/main/java/com/fdkankan/manage/vo/PageNewsVO.java

@@ -45,6 +45,11 @@ public class PageNewsVO{
     private Integer isTop;
 
     /**
+     * 是否发布(0-否,1-是)
+     */
+    private Integer isPublic;
+
+    /**
      * 标题
      */
     private String title;

+ 6 - 5
4dkankan-center-manage/src/main/resources/mapper/manage/NewsMapper.xml

@@ -6,12 +6,13 @@
     SELECT
     n.`title`,
     n.`source`,
-    n.`new_type` AS newsType,
-    m.`nickname` AS creater,
-    n.`create_time` AS createTime,
-    n.`public_time` AS publicTime,
+    n.`new_type`,
+    m.`nickname`,
+    n.`create_time`,
+    n.`public_time`,
     n.`display`,
-    n.`is_top`
+    n.`is_top`,
+    n.`is_public`
     FROM t_news n
     LEFT JOIN t_manager m ON n.`creater_id` = m.id AND m.`rec_status` = 'A'
     WHERE n.`tb_status` = 0