package com.canrd.webmagic.service.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.canrd.webmagic.common.constant.ServerResult; import com.canrd.webmagic.domain.dto.ArticleDO; import com.canrd.webmagic.domain.vo.NatureArticleQueryVO; import com.canrd.webmagic.domain.vo.NatureArticleVO; import com.canrd.webmagic.mapper.ArticleMapper; import com.canrd.webmagic.service.ArticleService; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import java.util.List; import java.util.Objects; /** * nature-文章信息(NatureArticle)表服务实现类 * * @author makejava * @since 2024-04-07 18:39:49 */ @Slf4j @Service public class ArticleServiceImpl extends ServiceImpl<ArticleMapper, ArticleDO> implements ArticleService { /** * 通过ID查询单条数据 * <p> * natureArticleQueryVO 主键 * * @return 实例对象 */ @Override public ServerResult queryById(NatureArticleQueryVO natureArticleQueryVO) { if (Objects.isNull(natureArticleQueryVO.getId())) { return ServerResult.fail("id 不能为空"); } ArticleDO articleDo = getById(natureArticleQueryVO.getId()); if (Objects.isNull(articleDo)) { return ServerResult.success(null); } return ServerResult.success(BeanUtil.copyProperties(articleDo, NatureArticleVO.class)); } /** * 分页查询 * * @param natureArticleQueryVO 筛选条件 * @return 查询结果 */ @Override public ServerResult list(NatureArticleQueryVO natureArticleQueryVO) { return ServerResult.success(ServerResult.success()); } /** * 新增数据 * * @param natureArticleVO 实例对象 * @return 实例对象 */ @Override public ServerResult add(NatureArticleVO natureArticleVO) { //todo 校验 if (Objects.nonNull(natureArticleVO.getId())) { natureArticleVO.setId(null); } ArticleDO articleDo = BeanUtil.copyProperties(natureArticleVO, ArticleDO.class); save(articleDo); return ServerResult.success(); } /** * 修改数据 * * @param natureArticleVO 实例对象 * @return 实例对象 */ @Override public ServerResult edit(NatureArticleVO natureArticleVO) { //todo 校验 if (Objects.isNull(natureArticleVO.getId())) { return ServerResult.fail("id 不能为空"); } ArticleDO articleDo = BeanUtil.copyProperties(natureArticleVO, ArticleDO.class); updateById(articleDo); return ServerResult.success(); } /** * 通过主键删除数据 * * @param natureArticleQueryVO 筛选条件 * @return 是否成功 */ @Override public ServerResult deleteById(NatureArticleQueryVO natureArticleQueryVO) { List<Long> ids = natureArticleQueryVO.getIds(); if (CollUtil.isEmpty(ids)) { return ServerResult.fail("ids 参数不能为空"); } List<ArticleDO> natureArticleList = listByIds(ids); if (CollUtil.isEmpty(natureArticleList)) { return ServerResult.success(); } //todo 校验是否可以逻辑删除 LambdaUpdateWrapper<ArticleDO> updateWrapper = new LambdaUpdateWrapper<ArticleDO>() .in(ArticleDO::getId, ids); update(updateWrapper); return ServerResult.success(); } }