cy 2 lat temu
rodzic
commit
d3c276ce33
21 zmienionych plików z 483 dodań i 104 usunięć
  1. 46 37
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsArticleController.java
  2. 35 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsAuthRecordController.java
  3. 12 9
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsConfigLabelController.java
  4. 18 10
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsArticleDao.java
  5. 13 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsAuthRecordDao.java
  6. 8 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsConfigLabelDao.java
  7. 49 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsAuthRecordSearch.java
  8. 27 10
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsConfigLabelSearch.java
  9. 8 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsArticle.java
  10. 102 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsAuthRecord.java
  11. 29 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/enums/ArticleEnum.java
  12. 15 5
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsArticleService.java
  13. 17 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsAuthRecordService.java
  14. 8 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsConfigLabelService.java
  15. 14 6
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsArticleServiceImpl.java
  16. 21 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsAuthRecordServiceImpl.java
  17. 5 0
      cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsConfigLabelServiceImpl.java
  18. 1 1
      cooleshow-bbs/src/main/resources/bootstrap-dev.yml
  19. 10 6
      cooleshow-bbs/src/main/resources/config/mybatis/BbsArticleMapper.xml
  20. 17 0
      cooleshow-bbs/src/main/resources/config/mybatis/BbsAuthRecordMapper.xml
  21. 28 20
      cooleshow-bbs/src/main/resources/config/mybatis/BbsConfigLabelMapper.xml

+ 46 - 37
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsArticleController.java

@@ -1,6 +1,9 @@
 package com.yonge.cooleshow.bbs.controller;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.auth.api.entity.SysUser;
+import com.yonge.cooleshow.bbs.valid.AddGroup;
 import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
@@ -9,6 +12,8 @@ import com.yonge.toolset.mybatis.support.PageUtil;
 import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -22,65 +27,69 @@ import com.yonge.cooleshow.bbs.service.BbsArticleService;
 @RequestMapping("/bbsArticle")
 @Api(value = "文章", tags = "文章")
 public class BbsArticleController extends BaseController {
-
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
     @Autowired
     private BbsArticleService bbsArticleService;
 
-	/**
+    @PostMapping("/addArticle")
+    @ApiOperation(value = "发布文章")
+    public HttpResponseResult addArticle(@Validated(AddGroup.class) @RequestBody BbsArticle bbsArticle) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        bbsArticle.setUserId(user.getId());
+        bbsArticleService.addArticle(bbsArticle);
+        return succeed();
+    }
+
+    /**
      * 查询单条
      */
     @GetMapping("/detail/{id}")
     @ApiOperation(value = "详情", notes = "传入id")
     public HttpResponseResult<BbsArticleVo> detail(@PathVariable("id") Long id) {
-    	return succeed(bbsArticleService.detail(id));
-	}
-    
+        return succeed(bbsArticleService.detail(id));
+    }
+
     /**
      * 查询分页
      */
     @PostMapping("/page")
     @ApiOperation(value = "查询分页", notes = "传入bbsArticleSearch")
     public HttpResponseResult<PageInfo<BbsArticleVo>> page(@RequestBody BbsArticleSearch query) {
-		IPage<BbsArticleVo> pages = bbsArticleService.selectPage(PageUtil.getPage(query), query);
+        IPage<BbsArticleVo> pages = bbsArticleService.selectPage(PageUtil.getPage(query), query);
         return succeed(PageUtil.pageInfo(pages));
-	}
-    
-    /**
-	 * 新增
-	 */
-	@PostMapping("/save")
-	@ApiOperation(value = "新增", notes = "传入bbsArticle")
-	public HttpResponseResult save(@Valid @RequestBody BbsArticle bbsArticle) {
-    	return status(bbsArticleService.save(bbsArticle));
-	}
-    
+    }
+
     /**
-	 * 修改
-	 */
-	@PostMapping("/update")
-	@ApiOperation(value = "修改", notes = "传入bbsArticle")
-	public HttpResponseResult update(@Valid @RequestBody BbsArticle bbsArticle) {
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperation(value = "修改", notes = "传入bbsArticle")
+    public HttpResponseResult update(@Valid @RequestBody BbsArticle bbsArticle) {
         return status(bbsArticleService.updateById(bbsArticle));
-	}
-    
+    }
+
     /**
-	 * 新增或修改
-	 */
+     * 新增或修改
+     */
     @PostMapping("/submit")
     @ApiOperation(value = "新增或修改", notes = "传入bbsArticle")
-	public HttpResponseResult submit(@Valid @RequestBody BbsArticle bbsArticle) {
+    public HttpResponseResult submit(@Valid @RequestBody BbsArticle bbsArticle) {
         return status(bbsArticleService.saveOrUpdate(bbsArticle));
     }
 
- 	/**
-	 * 删除
-	 */
-	@PostMapping("/remove")
-	@ApiOperation(value = "逻辑删除", notes = "传入ids")
-	public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperation(value = "逻辑删除", notes = "传入ids")
+    public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
         if (StringUtil.isEmpty(ids)) {
-			return failed("参数不能为空");
-		}
-		return status(bbsArticleService.removeByIds(StringUtil.toLongList(ids)));
-	}
+            return failed("参数不能为空");
+        }
+        return status(bbsArticleService.removeByIds(StringUtil.toLongList(ids)));
+    }
 }

+ 35 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsAuthRecordController.java

@@ -0,0 +1,35 @@
+package com.yonge.cooleshow.bbs.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
+import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
+import com.yonge.cooleshow.bbs.dto.search.BbsAuthRecordSearch;
+import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
+import com.yonge.cooleshow.bbs.service.BbsAuthRecordService;
+import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
+import com.yonge.cooleshow.common.controller.BaseController;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+
+@RestController
+@RequestMapping("/bbsAuthRecord")
+@Api(value = "文章审核", tags = "文章审核")
+public class BbsAuthRecordController extends BaseController {
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private BbsAuthRecordService bbsAuthRecordService;
+
+    @PostMapping("/page")
+    @ApiOperation(value = "查询分页")
+    public HttpResponseResult<PageInfo<BbsAuthRecord>> page(@RequestBody BbsAuthRecordSearch query) {
+        IPage<BbsAuthRecord> pages = bbsAuthRecordService.selectPage(PageUtil.getPage(query), query);
+        return succeed(PageUtil.pageInfo(pages));
+    }
+}

+ 12 - 9
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/controller/BbsConfigLabelController.java

@@ -11,7 +11,6 @@ import com.yonge.cooleshow.common.entity.HttpResponseResult;
 
 import com.yonge.toolset.mybatis.support.PageUtil;
 
-import com.yonge.toolset.utils.string.StringUtil;
 import io.swagger.annotations.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -35,7 +34,7 @@ public class BbsConfigLabelController extends BaseController {
     private BbsConfigLabelService bbsConfigLabelService;
 
     @ApiOperation(value = "查询全部")
-    @PostMapping("/selectAll")
+    @GetMapping("/selectAll")
     public HttpResponseResult<List<BbsConfigLabel>> selectAll(Integer delFlag) {
         return succeed(bbsConfigLabelService.selectAll(delFlag));
     }
@@ -55,7 +54,8 @@ public class BbsConfigLabelController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
         bbsConfigLabel.setCreateBy(user.getId());
-        return status(bbsConfigLabelService.save(bbsConfigLabel));
+        bbsConfigLabelService.save(bbsConfigLabel);
+        return succeed();
     }
 
     @ApiOperation(value = "修改")
@@ -66,15 +66,18 @@ public class BbsConfigLabelController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
         bbsConfigLabel.setUpdateBy(user.getId());
-        return status(bbsConfigLabelService.updateById(bbsConfigLabel));
+        bbsConfigLabelService.updateById(bbsConfigLabel);
+        return succeed();
     }
 
-    @ApiOperation(value = "逻辑删除", notes = "传入ids")
+    @ApiOperation(value = "逻辑删除")
     @PostMapping("/remove")
-    public HttpResponseResult remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
-        if (StringUtil.isEmpty(ids)) {
-            return failed("参数不能为空");
+    public HttpResponseResult remove(@Validated @RequestBody BbsConfigLabelSearch query) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return status(bbsConfigLabelService.removeByIds(StringUtil.toLongList(ids)));
+        bbsConfigLabelService.updateFlagByIds(query, user.getId());
+        return succeed();
     }
 }

+ 18 - 10
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsArticleDao.java

@@ -10,21 +10,29 @@ import com.yonge.cooleshow.bbs.vo.BbsArticleVo;
 import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 
 
-public interface BbsArticleDao extends BaseMapper<BbsArticle>{
-	/**
-	 * 查询详情
+public interface BbsArticleDao extends BaseMapper<BbsArticle> {
+    /**
+     * 发布文章
+     *
+     * @param bbsArticle
+     */
+    void addArticle(BbsArticle bbsArticle);
+
+    /**
+     * 查询详情
+     *
      * @author liweifan
      * @date 2022-06-09 17:27:11
      * @return: com.yonge.cooleshow.bbs.vo.BbsArticleVo
-	 */
-	BbsArticleVo detail(@Param("id") Long id);
+     */
+    BbsArticleVo detail(@Param("id") Long id);
 
-	/**
-	 * 分页查询
+    /**
+     * 分页查询
+     *
      * @author liweifan
      * @date 2022-06-09 17:27:11
      * @return: com.yonge.cooleshow.bbs.vo.BbsArticleVo
-	 */
-	List<BbsArticleVo> selectPage(@Param("page") IPage page, @Param("param") BbsArticleSearch bbsArticle);
-	
+     */
+    List<BbsArticleVo> selectPage(@Param("page") IPage page, @Param("param") BbsArticleSearch bbsArticle);
 }

+ 13 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsAuthRecordDao.java

@@ -0,0 +1,13 @@
+package com.yonge.cooleshow.bbs.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.yonge.cooleshow.bbs.dto.search.BbsAuthRecordSearch;
+import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface BbsAuthRecordDao extends BaseMapper<BbsAuthRecord> {
+    List<BbsAuthRecord> selectPage(@Param("page") IPage page, @Param("param") BbsAuthRecordSearch bbsArticle);
+}

+ 8 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dao/BbsConfigLabelDao.java

@@ -35,4 +35,12 @@ public interface BbsConfigLabelDao extends BaseMapper<BbsConfigLabel> {
      * @return
      */
     List<BbsConfigLabel> selectAll(Integer delFlag);
+
+    /**
+     * 逻辑删除
+     *
+     * @param query
+     * @param userId
+     */
+    void updateFlagByIds(@Param("param") BbsConfigLabelSearch query, @Param("userId") Long userId);
 }

+ 49 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsAuthRecordSearch.java

@@ -0,0 +1,49 @@
+package com.yonge.cooleshow.bbs.dto.search;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@ApiModel
+public class BbsAuthRecordSearch extends QueryInfo{
+    @ApiModelProperty(value = "审核中:DOING,通过:PASS,驳回:REJECT")
+    private String auditStatus;
+
+    @ApiModelProperty(value = "开始时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date endTime;
+
+    public String getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(String auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}

+ 27 - 10
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/dto/search/BbsConfigLabelSearch.java

@@ -4,22 +4,39 @@ import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.util.List;
+
 /**
  * @Author: liweifan
  * @Data: 2022-06-09 17:27:11
  */
 @ApiModel(value = "BbsConfigLabelSearch对象", description = "论坛标签设置查询对象")
-public class BbsConfigLabelSearch extends QueryInfo{
-	private static final long serialVersionUID = 1L;
+public class BbsConfigLabelSearch extends QueryInfo {
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("0:正常 1:删除")
+    private Integer delFlag;
+
+    @ApiModelProperty("标签id集合")
+    @NotNull(message = "ids不能为空")
+    @Size(min = 1, message = "ids不能为空")
+    private List<Integer> ids;
+
+    public List<Integer> getIds() {
+        return ids;
+    }
 
-	@ApiModelProperty("0:正常 1:删除")
-	private Integer delFlag;
+    public void setIds(List<Integer> ids) {
+        this.ids = ids;
+    }
 
-	public Integer getDelFlag() {
-		return delFlag;
-	}
+    public Integer getDelFlag() {
+        return delFlag;
+    }
 
-	public void setDelFlag(Integer delFlag) {
-		this.delFlag = delFlag;
-	}
+    public void setDelFlag(Integer delFlag) {
+        this.delFlag = delFlag;
+    }
 }

+ 8 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsArticle.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import com.yonge.cooleshow.bbs.valid.AddGroup;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
@@ -13,6 +14,9 @@ import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
 /**
  * 文章
  */
@@ -30,14 +34,17 @@ public class BbsArticle implements Serializable {
 
     @ApiModelProperty("文章标题")
     @TableField(value = "title_")
+    @NotBlank(groups = {AddGroup.class},message = "标题不能为空")
     private String title;
 
     @ApiModelProperty("文章内容")
     @TableField(value = "content_")
+    @NotBlank(groups = {AddGroup.class},message = "内容不能为空")
     private String content;
 
     @ApiModelProperty("标签id")
     @TableField(value = "label_id_")
+    @NotNull(groups = {AddGroup.class},message = "标签id不能为空")
     private Integer labelId;
 
     @ApiModelProperty("标签名称(冗余字段)")
@@ -70,6 +77,7 @@ public class BbsArticle implements Serializable {
 
     @ApiModelProperty("是否可评论 0:不可评论 1:可评论")
     @TableField(value = "reply_flag_")
+    @NotNull(groups = {AddGroup.class},message = "评论状态不能为空")
     private Integer replyFlag;
 
     @ApiModelProperty("审核通过时间")

+ 102 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/entity/BbsAuthRecord.java

@@ -0,0 +1,102 @@
+package com.yonge.cooleshow.bbs.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@TableName("bbs_auth_record")
+@ApiModel(value = "BbsAuthRecord对象", description = "文章审核表")
+public class BbsAuthRecord implements Serializable {
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    @ApiModelProperty("文章id")
+    @TableField(value = "article_id_")
+    private Long articleId;
+
+    @ApiModelProperty("审核id")
+    @TableField(value = "verify_user_id_")
+    private Long verifyUserId;
+
+    @ApiModelProperty("审核中:DOING,通过:PASS,驳回:REJECT")
+    @TableField(value = "audit_state_")
+    private String auditStatus;
+
+    @ApiModelProperty("审核理由")
+    @TableField(value = "reason_")
+    private String reason;
+
+    @TableField(value = "created_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date createdTime;
+
+    @TableField(value = "updated_time_")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    private Date updatedTime;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getArticleId() {
+        return articleId;
+    }
+
+    public void setArticleId(Long articleId) {
+        this.articleId = articleId;
+    }
+
+    public Long getVerifyUserId() {
+        return verifyUserId;
+    }
+
+    public void setVerifyUserId(Long verifyUserId) {
+        this.verifyUserId = verifyUserId;
+    }
+
+    public String getAuditStatus() {
+        return auditStatus;
+    }
+
+    public void setAuditStatus(String auditStatus) {
+        this.auditStatus = auditStatus;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    public Date getCreatedTime() {
+        return createdTime;
+    }
+
+    public void setCreatedTime(Date createdTime) {
+        this.createdTime = createdTime;
+    }
+
+    public Date getUpdatedTime() {
+        return updatedTime;
+    }
+
+    public void setUpdatedTime(Date updatedTime) {
+        this.updatedTime = updatedTime;
+    }
+}

+ 29 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/enums/ArticleEnum.java

@@ -0,0 +1,29 @@
+package com.yonge.cooleshow.bbs.enums;
+
+import com.baomidou.mybatisplus.annotation.EnumValue;
+import com.yonge.toolset.base.enums.BaseEnum;
+
+public enum ArticleEnum implements BaseEnum<String, ArticleEnum> {
+    DRAFT("草稿"),
+    DOING("审核中"),
+    PASS("通过"),
+    REJECT("驳回");
+
+    @EnumValue
+    private String code;
+
+    private String msg;
+
+    ArticleEnum(String msg) {
+        this.code = this.name();
+        this.msg = msg;
+    }
+
+    public String getCode() {
+        return this.code;
+    }
+
+    public String getMsg() {
+        return this.msg;
+    }
+}

+ 15 - 5
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsArticleService.java

@@ -8,22 +8,32 @@ import com.yonge.cooleshow.bbs.entity.BbsArticle;
 
 /**
  * 文章 服务类
+ *
  * @author liweifan
  * @date 2022-06-09
  */
-public interface BbsArticleService extends IService<BbsArticle>  {
+public interface BbsArticleService extends IService<BbsArticle> {
 
-	/**
+    /**
+     * 发布文章
+     *
+     * @param bbsArticle
+     */
+    void addArticle(BbsArticle bbsArticle);
+
+    /**
      * 查询详情
+     *
      * @author liweifan
- 	 * @date 2022-06-09
+     * @date 2022-06-09
      */
-	BbsArticleVo detail(Long id);
+    BbsArticleVo detail(Long id);
 
     /**
      * 分页查询
+     *
      * @author liweifan
- 	 * @date 2022-06-09
+     * @date 2022-06-09
      */
     IPage<BbsArticleVo> selectPage(IPage<BbsArticleVo> page, BbsArticleSearch query);
 }

+ 17 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsAuthRecordService.java

@@ -0,0 +1,17 @@
+package com.yonge.cooleshow.bbs.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yonge.cooleshow.bbs.dto.search.BbsAuthRecordSearch;
+import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
+
+public interface BbsAuthRecordService extends IService<BbsAuthRecord> {
+    /**
+     * 分页查询
+     *
+     * @param page
+     * @param query
+     * @return
+     */
+    IPage<BbsAuthRecord> selectPage(IPage<BbsAuthRecord> page, BbsAuthRecordSearch query);
+}

+ 8 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/BbsConfigLabelService.java

@@ -39,4 +39,12 @@ public interface BbsConfigLabelService extends IService<BbsConfigLabel> {
      * @return
      */
     List<BbsConfigLabel> selectAll(Integer delFlag);
+
+    /**
+     * 逻辑删除
+     *
+     * @param query
+     * @param userId
+     */
+    void updateFlagByIds(BbsConfigLabelSearch query, Long userId);
 }

+ 14 - 6
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsArticleServiceImpl.java

@@ -2,6 +2,7 @@ package com.yonge.cooleshow.bbs.service.impl;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.bbs.enums.ArticleEnum;
 import org.springframework.stereotype.Service;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -11,19 +12,26 @@ import com.yonge.cooleshow.bbs.dto.search.BbsArticleSearch;
 import com.yonge.cooleshow.bbs.dao.BbsArticleDao;
 import com.yonge.cooleshow.bbs.service.BbsArticleService;
 
-
 @Service
 public class BbsArticleServiceImpl extends ServiceImpl<BbsArticleDao, BbsArticle> implements BbsArticleService {
     private final static Logger log = LoggerFactory.getLogger(BbsArticleServiceImpl.class);
 
-	@Override
+    @Override
+    public void addArticle(BbsArticle bbsArticle) {
+        //状态为null,默认审核中,否则为草稿
+        if (bbsArticle.getStatus() == null) {
+            bbsArticle.setStatus(ArticleEnum.DOING.getCode());
+        } else bbsArticle.setStatus(ArticleEnum.DRAFT.getCode());
+        baseMapper.addArticle(bbsArticle);
+    }
+
+    @Override
     public BbsArticleVo detail(Long id) {
         return baseMapper.detail(id);
     }
-    
-     @Override
-    public IPage<BbsArticleVo> selectPage(IPage<BbsArticleVo> page, BbsArticleSearch query){
+
+    @Override
+    public IPage<BbsArticleVo> selectPage(IPage<BbsArticleVo> page, BbsArticleSearch query) {
         return page.setRecords(baseMapper.selectPage(page, query));
     }
-	
 }

+ 21 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsAuthRecordServiceImpl.java

@@ -0,0 +1,21 @@
+package com.yonge.cooleshow.bbs.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yonge.cooleshow.bbs.dao.BbsAuthRecordDao;
+import com.yonge.cooleshow.bbs.dto.search.BbsAuthRecordSearch;
+import com.yonge.cooleshow.bbs.entity.BbsAuthRecord;
+import com.yonge.cooleshow.bbs.service.BbsAuthRecordService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+@Service
+public class BbsAuthRecordServiceImpl extends ServiceImpl<BbsAuthRecordDao, BbsAuthRecord> implements BbsAuthRecordService {
+    private final static Logger log = LoggerFactory.getLogger(BbsAuthRecordServiceImpl.class);
+
+    @Override
+    public IPage<BbsAuthRecord> selectPage(IPage<BbsAuthRecord> page, BbsAuthRecordSearch query) {
+        return page.setRecords(baseMapper.selectPage(page, query));
+    }
+}

+ 5 - 0
cooleshow-bbs/src/main/java/com/yonge/cooleshow/bbs/service/impl/BbsConfigLabelServiceImpl.java

@@ -31,4 +31,9 @@ public class BbsConfigLabelServiceImpl extends ServiceImpl<BbsConfigLabelDao, Bb
     public List<BbsConfigLabel> selectAll(Integer delFlag) {
         return baseMapper.selectAll(delFlag);
     }
+
+    @Override
+    public void updateFlagByIds(BbsConfigLabelSearch query, Long userId) {
+        baseMapper.updateFlagByIds(query, userId);
+    }
 }

+ 1 - 1
cooleshow-bbs/src/main/resources/bootstrap-dev.yml

@@ -9,4 +9,4 @@ spring:
         file-extension: yaml
         refresh:
           enabled: true
-        enabled: true
+        enabled: true

+ 10 - 6
cooleshow-bbs/src/main/resources/config/mybatis/BbsArticleMapper.xml

@@ -19,8 +19,8 @@
 	        <result column="created_time_" property="createdTime" />
 	        <result column="updated_time_" property="updatedTime" />
 	        <result column="del_flag_" property="delFlag" />
-		</resultMap>  
-    
+		</resultMap>
+
     <!-- 表字段 -->
     <sql id="baseColumns">
          t.id_ as id
@@ -40,17 +40,21 @@
         , t.created_time_ as createdTime
         , t.updated_time_ as updatedTime
         , t.del_flag_ as delFlag
-        </sql> 
-    
+        </sql>
+
+    <insert id="addArticle">
+        INSERT INTO bbs_article
+        (user_id_,title_,content_,label_id_,label_name_,status_,reply_flag_)
+        VALUES(#{userId},#{title},#{content},#{labelId},#{labelName},#{status},#{replyFlag})
+    </insert>
     <select id="detail" resultType="com.yonge.cooleshow.bbs.vo.BbsArticleVo">
         SELECT
             <include refid="baseColumns"/>
         FROM bbs_article t
         where t.id_ = #{id}
     </select>
-    
     <select id="selectPage" resultType="com.yonge.cooleshow.bbs.vo.BbsArticleVo">
-		SELECT         
+		SELECT
         	<include refid="baseColumns" />
 		FROM bbs_article t
 	</select>

+ 17 - 0
cooleshow-bbs/src/main/resources/config/mybatis/BbsAuthRecordMapper.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.yonge.cooleshow.bbs.dao.BbsAuthRecordDao">
+    <select id="selectPage" resultType="com.yonge.cooleshow.bbs.entity.BbsAuthRecord">
+        SELECT
+        r.id_ AS id,
+        r.article_id_ AS articleId,
+        r.audit_state_ AS auditState,
+        r.verify_user_id_ AS verifyUserId
+        FROM bbs_auth_record r
+        <where>
+            <if test="">
+                article_id_ = #{param.}
+            </if>
+        </where>
+    </select>
+</mapper>

+ 28 - 20
cooleshow-bbs/src/main/resources/config/mybatis/BbsConfigLabelMapper.xml

@@ -1,16 +1,16 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
 <mapper namespace="com.yonge.cooleshow.bbs.dao.BbsConfigLabelDao">
-	<resultMap id="BaseResultMap" type="com.yonge.cooleshow.bbs.entity.BbsConfigLabel">
-            <result column="id_" property="id" />
-	        <result column="label_name_" property="labelName" />
-	        <result column="create_by_" property="createBy" />
-	        <result column="update_by_" property="updateBy" />
-	        <result column="created_time_" property="createdTime" />
-	        <result column="updated_time_" property="updatedTime" />
-	        <result column="del_flag_" property="delFlag" />
-		</resultMap>  
-    
+    <resultMap id="BaseResultMap" type="com.yonge.cooleshow.bbs.entity.BbsConfigLabel">
+        <result column="id_" property="id"/>
+        <result column="label_name_" property="labelName"/>
+        <result column="create_by_" property="createBy"/>
+        <result column="update_by_" property="updateBy"/>
+        <result column="created_time_" property="createdTime"/>
+        <result column="updated_time_" property="updatedTime"/>
+        <result column="del_flag_" property="delFlag"/>
+    </resultMap>
+
     <!-- 表字段 -->
     <sql id="baseColumns">
          t.id_ as id
@@ -20,32 +20,40 @@
         , t.created_time_ as createdTime
         , t.updated_time_ as updatedTime
         , t.del_flag_ as delFlag
-        </sql> 
-    
+    </sql>
+
     <select id="detail" resultType="com.yonge.cooleshow.bbs.vo.BbsConfigLabelVo">
         SELECT
-            <include refid="baseColumns"/>
+        <include refid="baseColumns"/>
         FROM bbs_config_label t
         where t.id_ = #{id}
     </select>
     <select id="selectPage" resultType="com.yonge.cooleshow.bbs.vo.BbsConfigLabelVo">
-		SELECT         
-        	<include refid="baseColumns" />
-		FROM bbs_config_label t
+        SELECT
+        <include refid="baseColumns"/>
+        FROM bbs_config_label t
         <where>
             <if test="param.delFlag != null">
                 t.del_flag_ = #{param.delFlag}
             </if>
         </where>
-	</select>
+    </select>
     <select id="selectAll" resultType="com.yonge.cooleshow.bbs.entity.BbsConfigLabel">
         SELECT
-        <include refid="baseColumns" />
+        <include refid="baseColumns"/>
         FROM bbs_config_label t
         <where>
-            <if test="delFlag != null">
-                t.del_flag_ = #{delFlag}
+            <if test="_parameter != null">
+                AND t.del_flag_ = #{delFlag}
             </if>
         </where>
     </select>
+    <update id="updateFlagByIds">
+        UPDATE bbs_config_label
+        SET del_flag_ = 1
+        WHERE id_ IN
+        <foreach collection="param.ids" item="item" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
 </mapper>