inleft
2022-02-21 552004d0902687de16cd50e3378d4d6671d7f015
文章添加
3 files modified
123 ■■■■ changed files
snowy-base/snowy-core/src/main/java/vip/xiaonuo/core/exception/enums/BlogExceptionEnum.java 2 ●●●●● patch | view | raw | blame | history
snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java 69 ●●●●● patch | view | raw | blame | history
snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/param/BlogArticleAddDto.java 52 ●●●●● patch | view | raw | blame | history
snowy-base/snowy-core/src/main/java/vip/xiaonuo/core/exception/enums/BlogExceptionEnum.java
@@ -48,6 +48,8 @@
    article_auth_private_error(3, "那属于他的自留地,以后再来探索吧.."),
    article_not_found(4, "这是黑洞..什么也没有"),
    article_file_lose(5, "啊噢,该文件已丢失.."),
 ;
    private final Integer code;
snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/controller/BlogArticleOutsideController.java
@@ -29,9 +29,8 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import vip.xiaonuo.core.annotion.BusinessLog;
import vip.xiaonuo.core.consts.MyConstant;
import vip.xiaonuo.core.context.constant.ConstantContextHolder;
@@ -41,13 +40,17 @@
import vip.xiaonuo.core.pojo.response.ResponseData;
import vip.xiaonuo.core.pojo.response.SuccessResponseData;
import vip.xiaonuo.modular.blogarticle.entity.BlogArticle;
import vip.xiaonuo.modular.blogarticle.param.BlogArticleAddDto;
import vip.xiaonuo.modular.blogarticle.param.BlogArticleQueryDto;
import vip.xiaonuo.modular.blogarticle.param.BlogArticleVo;
import vip.xiaonuo.modular.blogarticle.service.BlogArticleService;
import vip.xiaonuo.modular.blogarticletype.entity.BlogArticleType;
import vip.xiaonuo.modular.blogarticletype.service.BlogArticleTypeService;
import vip.xiaonuo.sys.modular.file.entity.SysFileInfo;
import vip.xiaonuo.sys.modular.file.service.SysFileInfoService;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -68,7 +71,62 @@
    @Resource
    private BlogArticleTypeService blogArticleTypeService;
    @Resource
    private SysFileInfoService fileInfoService;
    @PostMapping("/blogArticle/add")
    @BusinessLog(title = "外部blog系统_blog文章_增加", opType = LogAnnotionOpTypeEnum.ADD)
    public ResponseData add(@RequestBody @Validated(BlogArticleAddDto.add.class) BlogArticleAddDto addDto) {
        if (!SecureUtil.md5(addDto.getSecret()).equals("8616CFB8D5ED3E5B")) {
            throw new BlogException("口令错误..");
        }
        if (MyConstant.Yes.equals(addDto.getIsTop()) && addDto.getTopValue() == null) {
            throw new BlogException("选择了置顶需要指定置顶值..");
        }
        if (addDto.getIsLock().equals(MyConstant.Yes)) {
            if (addDto.getAuthStatus().equals(MyConstant.AuthStatus.authCode) && StrUtil.isEmpty(addDto.getAuthPassword())) {
                throw new BlogException("选择了密码授权,密码不能为空");
            }
        } else {
            addDto.setAuthPassword(null);
        }
        if (MyConstant.Yes.equals(addDto.getIsOnline())) {
            if (addDto.getArticleFileId() == null || fileInfoService.getById(addDto.getArticleFileId()) == null) {
                throw new BlogException("已选择在线模式..文件id非法");
            }
        } else {
            if (StrUtil.isEmpty(addDto.getContent())) {
                throw new BlogException("已选择在线模式..文件内容非法");
            }
        }
        if (addDto.getCoverFileId() != null && fileInfoService.getById(addDto.getCoverFileId()) == null) {
            throw new BlogException("封面文件id非法");
        }
        if (blogArticleTypeService.lambdaQuery()
                .eq(BlogArticleType::getIsEnable, MyConstant.Yes)
                .eq(BlogArticleType::getId, addDto.getArticleTypeId())
                .one() == null) {
            throw new BlogException("分类id非法");
        }
        if (addDto.getPublishDate() == null) {
            addDto.setPublishDate(new Date());
        }
        BlogArticle article = new BlogArticle();
        BeanUtil.copyProperties(addDto, article);
        System.out.println(article.toString());
//        blogArticleService.add(blogArticleParam);
        return new SuccessResponseData();
    }
    /**
     * 查询blog文章
@@ -139,10 +197,11 @@
        if (queryDto.getId() % 2 == 0) {
            String tempURL = this.getBlogSourceURL(find.getArticleFileId());
            if (StrUtil.isEmpty(tempURL))
                throw new BlogException(BlogExceptionEnum.article_file_lose);
//            if (StrUtil.isEmpty(tempURL))
//                throw new BlogException(BlogExceptionEnum.article_file_lose);
            vo.setArticleFileURL(tempURL);
            vo.setArticleFileURL("http://t.inleft.com/share/book/blog/a岛神灯.md");
        } else {
            vo.setArticleFileURL("http://t.inleft.com/share/book/blog/es-search.md");
        }
snowy-main/src/main/java/vip/xiaonuo/modular/blogarticle/param/BlogArticleAddDto.java
@@ -1,22 +1,28 @@
package vip.xiaonuo.modular.blogarticle.param;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import vip.xiaonuo.core.pojo.base.param.BaseParam;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;
/**
* blog文章参数类
 * blog文章参数类
 *
 * @author inleft
 * @date 2022-02-09 18:21:14
*/
 */
@Data
public class BlogArticleAddDto extends BaseParam {
    @NotEmpty(message = "需要口令", groups = {add.class, edit.class})
    private String secret;
    /**
     * 文章标题
@@ -25,21 +31,29 @@
    private String title;
    /**
     * 文章文件id
     */
    @NotNull(message = "文章文件id不能为空,请检查articleFileId参数", groups = {add.class, edit.class})
    private Long articleFileId;
    /**
     * 文件类型
     */
    private Integer articleFileType;
    /**
     * 文章分类
     */
    @NotNull(message = "文章分类不能为空,请检查articleTypeId参数", groups = {add.class, edit.class})
    private Long articleTypeId;
    @NotNull
    private Integer isOnline;
    /**
     * 文章文件id
     */
    private Long articleFileId;
    /**
     * 在线生成文件内容
     */
    private String content;
    /**
     * 文件类型
     */
    @NotNull(message = "文件类型不能为空,请检查articleFileType参数", groups = {add.class, edit.class})
    private Integer articleFileType;
    /**
     * 文章引言
@@ -52,14 +66,10 @@
    private Long coverFileId;
    /**
     * 上次编辑时间
     */
    private String lastEditorDate;
    /**
     * 发布时间
     */
    private String publishDate;
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date publishDate;
    /**
     * 是否置顶
@@ -72,9 +82,11 @@
     */
    private Integer topValue;
    private Integer isLock;
    /**
     * 公开状态
     */
    @NotNull(message = "公开状态不能为空,请检查authStatus参数", groups = {add.class, edit.class})
    private Integer authStatus;
    /**
@@ -85,7 +97,9 @@
    /**
     * 编辑状态
     */
    @NotNull(message = "编辑状态不能为空,请检查editorStatus参数", groups = {add.class, edit.class})
    private Integer editorStatus;
    private List<String> tags;
}