package com.example.jz.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import com.alibaba.excel.metadata.data.ReadCellData; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.example.jz.dao.PublicityDao; import com.example.jz.dao.UserDao; import com.example.jz.modle.PageParam; import com.example.jz.modle.dto.CauseLoadDto; import com.example.jz.modle.dto.PublicityDto; import com.example.jz.modle.dto.PublicityLoadDto; import com.example.jz.modle.entity.Publicity; import com.example.jz.modle.entity.User; import com.example.jz.service.PublicityService; import lombok.SneakyThrows; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.Serializable; import java.util.Date; import java.util.Map; /** * 公共宣传表(Publicity)表服务实现类 * * @author makejava * @since 2022-07-11 16:35:57 */ @Service("publicityService") public class PublicityServiceImpl extends ServiceImpl implements PublicityService { @Resource private PublicityDao publicityDao; @Resource private UserDao userDao; @Override public Boolean undercarriage(Serializable id) { Publicity publicity = publicityDao.selectById(id); publicity.setStatus(2); if (publicityDao.updateById(publicity) == 1) { return true; } return false; } @Override public Boolean grounding(Serializable id) { Publicity publicity = publicityDao.selectById(id); publicity.setStatus(1); publicity.setReleaseTime(new Date()); if (publicityDao.updateById(publicity) == 1) { return true; } return false; } @Override public IPage findByPage(PageParam page, QueryWrapper publicityDtoQueryWrapper) { return publicityDao.findByPage(page, publicityDtoQueryWrapper); } @Override @SneakyThrows public void loadFile(MultipartFile multipartFile) { EasyExcel.read(multipartFile.getInputStream(), PublicityLoadDto.class, new AnalysisEventListener(){ @Override public void invoke(PublicityLoadDto data, AnalysisContext context) { if (StringUtils.isNotBlank(data.getPublicityTitle()) && StringUtils.isNotBlank(data.getUserName())) { Publicity publicity = new Publicity(); publicity.setStatus(0); BeanUtils.copyProperties(data,publicity); publicity.setCtime(new Date()); publicity.setCreator(userDao.selectOne(new QueryWrapper().eq("real_name",data.getUserName())).getId()); publicityDao.insert(publicity); } } @Override public void doAfterAllAnalysed(AnalysisContext context) { } }) .autoCloseStream(true) .doReadAll(); } }