package com.mzl.flower.service.content; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.config.exception.ValidationException; import com.mzl.flower.config.security.SecurityUtils; import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.BatchDTO; import com.mzl.flower.dto.request.content.QueryFilmsetDTO; import com.mzl.flower.dto.response.content.FilmsetDTO; import com.mzl.flower.entity.content.Filmset; import com.mzl.flower.mapper.content.FilmsetMapper; import com.mzl.flower.utils.DateUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.time.LocalDate; import java.util.List; @Service @Transactional public class FilmsetService { private final FilmsetMapper filmsetMapper; public FilmsetService(FilmsetMapper filmsetMapper) { this.filmsetMapper = filmsetMapper; } public void add(Filmset dto) { if(dto.getId()!=null){ throw new ValidationException("id必须为空"); } dto.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name()); dto.create(SecurityUtils.getUserId()); filmsetMapper.insert(dto); } public void update(Filmset dto) { if(dto.getId()==null || dto.getId()==0){ throw new ValidationException("id不能为空"); } Filmset filmset = filmsetMapper.selectById(dto.getId()); if(filmset==null){ throw new ValidationException("找不到id为"+dto.getId()+"的公告"); } BeanUtils.copyProperties(dto, filmset, "id", "createTime", "createBy","deleted","status","publishDate"); filmset.update(SecurityUtils.getUserId()); filmsetMapper.updateById(filmset); } public void delete(Long id) { Filmset filmset = filmsetMapper.selectById(id); if(filmset==null){ throw new ValidationException("找不到id为"+id+"的公告"); } filmsetMapper.deleteById(id); } public FilmsetDTO detail(Long id) { Filmset filmset = filmsetMapper.selectById(id); if(filmset==null){ return null; } FilmsetDTO dto = new FilmsetDTO(); BeanUtils.copyProperties(filmset,dto); return dto; } public Page queryPage(QueryFilmsetDTO dto, Page page) { if(StringUtils.isNotBlank(dto.getCreateDateBeginStr())){ dto.setCreateDateBegin(DateUtils.dateToLocalDateTime(dto.getCreateDateBeginStr(),true)); } if(StringUtils.isNotBlank(dto.getCreateDateEndStr())){ dto.setCreateDateEnd(DateUtils.dateToLocalDateTime(dto.getCreateDateEndStr(),false)); } List list = filmsetMapper.queryPage(dto,page); page.setRecords(list); return page; } public void changeStatus(Long id) { Filmset filmset = filmsetMapper.selectById(id); if(filmset==null){ throw new ValidationException("找不到id为"+id+"的公告"); } if(Constants.COMMON_PUBLISH_STATUS.published.name().equals(filmset.getStatus())){ filmset.setStatus(Constants.COMMON_PUBLISH_STATUS.unpublished.name()); }else{ filmset.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name()); filmset.setPublishDate(LocalDate.now()); } filmsetMapper.updateById(filmset); } public void batchDelete(BatchDTO dto) { filmsetMapper.deleteBatchIds(dto.getIds()); } public void batchPublish(BatchDTO dto) { List list = filmsetMapper.selectList(new LambdaQueryWrapper().in(Filmset::getId, dto.getIds())); for (Filmset filmset : list) { filmset.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name()); filmset.setPublishDate(LocalDate.now()); filmsetMapper.updateById(filmset); } } public List queryList(String type) { QueryFilmsetDTO dto = new QueryFilmsetDTO(); dto.setType(type); dto.setStatus(Constants.COMMON_PUBLISH_STATUS.published.name()); List list = filmsetMapper.queryList(dto); return list; } }