package com.doumee.service.business.impl; import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.ArticleMapper; import com.doumee.dao.business.join.ArticleJoinMapper; import com.doumee.dao.business.model.Activity; import com.doumee.dao.business.model.Article; import com.doumee.dao.business.model.Labels; import com.doumee.dao.web.dto.ArticleDTO; import com.doumee.service.business.ArticleService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.stream.Collectors; /** * 咖啡百科文章信息表Service实现 * @author 江蹄蹄 * @date 2023/03/21 15:48 */ @Service public class ArticleServiceImpl implements ArticleService { @Autowired private ArticleMapper articleMapper; @Autowired private ArticleJoinMapper articleJoinMapper; @Autowired private SystemDictDataBiz systemDictDataBiz; @Override public Integer create(Article article) { if(StringUtils.isBlank(article.getTitle()) ||article.getLabelId()==null ||StringUtils.isBlank(article.getImgurl()) ||StringUtils.isBlank(article.getContent()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); } LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); article.setIsdeleted(Constants.ZERO); article.setCreateDate(new Date()); article.setCreator(user.getId()); article.setStatus(Constants.ZERO); articleMapper.insert(article); return article.getId(); } @Override public void deleteById(Integer id) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Article article=new Article(); article.setId(id); article.setIsdeleted(Constants.ONE); article.setEditor(user.getId()); article.setEditDate(new Date()); articleMapper.updateById(article); } @Override public void delete(Article article) { UpdateWrapper
deleteWrapper = new UpdateWrapper<>(article); articleMapper.delete(deleteWrapper); } @Override public void deleteByIdInBatch(List ids) { if (CollectionUtils.isEmpty(ids)) { return; } articleMapper.deleteBatchIds(ids); } @Override public void updateById(Article article) { LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); if(StringUtils.isBlank(article.getTitle()) ||article.getLabelId()==null ||StringUtils.isBlank(article.getImgurl()) ||StringUtils.isBlank(article.getContent()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), ResponseStatus.BAD_REQUEST.getMessage()); } article.setEditor(user.getId()); article.setEditDate(new Date()); articleMapper.updateById(article); } @Override public void updateByIdInBatch(List
articles) { if (CollectionUtils.isEmpty(articles)) { return; } for (Article article: articles) { this.updateById(article); } } @Override public Article findById(Integer id) { Article article=articleMapper.selectById(id); String path=systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()+ systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();; if(Objects.nonNull(article)&&StringUtils.isNotBlank(article.getImgurl())){ article.setImgFullUrl(path+article.getImgurl()); } return article; } @Override public Article findOne(Article article) { QueryWrapper
wrapper = new QueryWrapper<>(article); return articleMapper.selectOne(wrapper); } @Override public List findList(Article article) { String preFixPath = systemDictDataBiz.getPreFixPath(Constants.RESOURCE_PATH, Constants.BANNER_FILE); QueryWrapper
wrapper = new QueryWrapper<>(article); wrapper.lambda() .select(Article::getId,Article::getTitle,Article::getImgurl,Article::getSortnum) .orderByAsc(Article::getSortnum); List
articles = articleMapper.selectList(wrapper); List collect = articles.stream().map(s -> { ArticleDTO dto = new ArticleDTO(); dto.setId(s.getId()); dto.setTitle(s.getTitle()); dto.setImagUrl(preFixPath+s.getImgurl()); dto.setSortNum(s.getSortnum()); return dto; }).collect(Collectors.toList()); return collect; } @Override public PageData
findPage(PageWrap
pageWrap) { IPage
page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper
queryWrapper = new QueryWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(Article::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(Article::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(Article::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(Article::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(Article::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(Article::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(Article::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(Article::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getInfo() != null) { queryWrapper.lambda().eq(Article::getInfo, pageWrap.getModel().getInfo()); } if (pageWrap.getModel().getTitle() != null) { queryWrapper.lambda().eq(Article::getTitle, pageWrap.getModel().getTitle()); } if (pageWrap.getModel().getSortnum() != null) { queryWrapper.lambda().eq(Article::getSortnum, pageWrap.getModel().getSortnum()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(Article::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getImgurl() != null) { queryWrapper.lambda().eq(Article::getImgurl, pageWrap.getModel().getImgurl()); } if (pageWrap.getModel().getLabelId() != null) { queryWrapper.lambda().eq(Article::getLabelId, pageWrap.getModel().getLabelId()); } if (pageWrap.getModel().getContent() != null) { queryWrapper.lambda().eq(Article::getContent, pageWrap.getModel().getContent()); } queryWrapper.lambda().orderByAsc(Article::getSortnum); //排除字段 queryWrapper.lambda().select(Article.class,s-> !s.getColumn().equalsIgnoreCase("CONTENT")); IPage
result = articleMapper.selectPage(page, queryWrapper); String path=systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()+ systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();; if(org.apache.commons.collections.CollectionUtils.isNotEmpty(result.getRecords())) { for (Article model : result.getRecords()) { if(StringUtils.isNotBlank(model.getImgurl())){ model.setImgFullUrl(path+model.getImgurl()); } } } return PageData.from(result); } @Override public long count(Article article) { QueryWrapper
wrapper = new QueryWrapper<>(article); return articleMapper.selectCount(wrapper); } @Override public PageData
findAllpage(PageWrap
pageWrap) { IPage
page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); MPJLambdaWrapper
queryWrapper = new MPJLambdaWrapper<>(); Utils.MP.blankToNull(pageWrap.getModel()); queryWrapper.selectAll(Article.class); queryWrapper.selectAs(Labels::getName,Article::getLableName); queryWrapper.leftJoin(Labels.class,Labels::getId,Article::getLabelId); queryWrapper.eq(Article::getIsdeleted, Constants.ZERO); queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getTitle()),Article::getTitle,pageWrap.getModel().getTitle()); queryWrapper.eq(pageWrap.getModel().getLabelId()!=null,Article::getLabelId,pageWrap.getModel().getLabelId()); queryWrapper.orderByAsc(Article::getSortnum); IPage
result = articleJoinMapper.selectJoinPage(page, Article.class, queryWrapper); String path=systemDictDataBiz.queryByCode(Constants.OSS, Constants.RESOURCE_PATH).getCode()+ systemDictDataBiz.queryByCode(Constants.OSS, Constants.ACTIVITY_FILE).getCode();; if(org.apache.commons.collections.CollectionUtils.isNotEmpty(result.getRecords())) { for (Article model : result.getRecords()) { if(StringUtils.isNotBlank(model.getImgurl())){ model.setImgFullUrl(path+model.getImgurl()); } } } return PageData.from(result); } }