package com.nova.sankuai.service.impl; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nova.sankuai.domain.dto.AddHotIssuesDto; import com.nova.sankuai.domain.dto.QueryHotIssuesPageDto; import com.nova.sankuai.domain.dto.UpdateHotIssuesDto; import com.nova.sankuai.domain.entity.HotIssues; import com.nova.sankuai.domain.vo.HotIssuesAppListVo; import com.nova.sankuai.domain.vo.HotIssuesListVo; import com.nova.sankuai.infra.config.CommonException; import com.nova.sankuai.infra.mapper.HotIssuesMapper; import com.nova.sankuai.infra.utils.PageRequest; import com.nova.sankuai.infra.utils.PageUtil; import com.nova.sankuai.service.HotIssuesService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import java.util.Date; @Service @Slf4j @AllArgsConstructor public class HotIssuesServiceImpl extends ServiceImpl implements HotIssuesService { private final PageUtil pageUtil; private final HotIssuesMapper hotIssuesMapper; @Override public void addHotIssues(AddHotIssuesDto addHotIssuesDto) { if (StringUtils.isEmpty(addHotIssuesDto.getIssuesContent())){ throw new CommonException("问题内容不能为空"); } HotIssues hotIssues = new HotIssues(); BeanUtils.copyProperties(addHotIssuesDto,hotIssues); hotIssues.setCreationDate(new Date()); hotIssues.setLastUpdateDate(new Date()); boolean save = save(hotIssues); if (!save){ throw new CommonException("新增失败"); } } @Override public void updateHotIssues(UpdateHotIssuesDto updateHotIssuesDto) { HotIssues hotIssuesById = getById(updateHotIssuesDto.getId()); if (hotIssuesById==null){ throw new CommonException("未查询到该热门问题"); } if (StringUtils.isEmpty(updateHotIssuesDto.getIssuesContent())){ throw new CommonException("问题内容不能为空"); } if (updateHotIssuesDto.getSeqencing()==null){ updateHotIssuesDto.setSeqencing(0); } LambdaUpdateWrapper updateWrapper = Wrappers.lambdaUpdate(); updateWrapper.set(HotIssues::getIssuesContent,updateHotIssuesDto.getIssuesContent()); updateWrapper.set(HotIssues::getAnswerContent,updateHotIssuesDto.getAnswerContent()); updateWrapper.set(HotIssues::getSeqencing,updateHotIssuesDto.getSeqencing()); updateWrapper.set(HotIssues::getLastUpdateDate,new Date()); updateWrapper.eq(HotIssues::getId,updateHotIssuesDto.getId()); boolean update = update(updateWrapper); if (!update){ throw new CommonException("修改失败"); } } @Override public void deleteHotIssues(Long id) { HotIssues hotIssuesById = getById(id); if (hotIssuesById==null){ throw new CommonException("未查询到该热门问题"); } boolean removeById = removeById(id); if (!removeById){ throw new CommonException("删除失败"); } } @Override public IPage getHotIssues(QueryHotIssuesPageDto queryHotIssuesPageDto) { Page page = pageUtil.getPage(queryHotIssuesPageDto); IPage hotIssues = hotIssuesMapper.getHotIssues(page, queryHotIssuesPageDto.getIssuesContent()); return hotIssues; } @Override public IPage getAppHotIssues(PageRequest pageRequest) { Page page = pageUtil.getPage(pageRequest); IPage appHotIssues = hotIssuesMapper.getAppHotIssues(page); return appHotIssues; } }