package com.fdkankan.manage.service.impl; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.manage.common.PageInfo; import com.fdkankan.manage.common.CacheUtil; import com.fdkankan.manage.entity.Camera; import com.fdkankan.manage.entity.DownloadOrder; import com.fdkankan.manage.entity.ScenePlus; import com.fdkankan.manage.entity.ScenePro; import com.fdkankan.manage.mapper.IDownloadOrderMapper; import com.fdkankan.manage.service.*; import com.fdkankan.manage.vo.request.OrderParam; import com.fdkankan.manage.vo.response.DownOrderVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.HashMap; import java.util.Set; import java.util.stream.Collectors; /** *

* 下载次数订单表 服务实现类 *

* * @author * @since 2022-05-31 */ @Service public class DownloadOrderServiceImpl extends ServiceImpl implements IDownloadOrderService { @Autowired IExcelService excelService; @Autowired ISceneProService sceneProService; @Autowired IScenePlusService scenePlusService; @Autowired ICameraService cameraService; @Override public PageInfo pageList(OrderParam param) { CacheUtil.orderParam = param; return PageInfo.PageInfo(this.pageListByParam(param)); } @Override public Page pageListByParam(OrderParam orderParam) { Page page = this.getBaseMapper().pageList(new Page<>(orderParam.getPageNum(), orderParam.getPageSize()), orderParam); Set numList = page.getRecords().stream().map(DownOrderVo::getSceneNum).collect(Collectors.toSet()); HashMap snCodeMap = new HashMap<>(); if(numList.size() >0){ snCodeMap = sceneProService.getSnCodeByNumList(numList); } for (DownOrderVo record : page.getRecords()) { if(StringUtils.isNotBlank(record.getSceneNum())){ record.setSnCode(snCodeMap.get(record.getSceneNum())); } record.setCreateTime(record.getTradeTime()); } return page; } @Override public void export(HttpServletRequest req, HttpServletResponse resp) { OrderParam orderParam = CacheUtil.orderParam; orderParam.setPageNum(1); orderParam.setPageSize(5000); Page page = this.pageListByParam(orderParam); ExcelWriter excelWriter = null; try { excelWriter = EasyExcel.write(resp.getOutputStream(),DownOrderVo.class).build(); excelService.commonExport(req,resp,"下载订单",page.getRecords(),excelWriter); while (page.hasNext()){ orderParam.setPageNum(orderParam.getPageNum()+1); page = this.pageListByParam(orderParam); if(page.getRecords().size() >0){ excelService.commonExport(req,resp,"下载订单",page.getRecords(),excelWriter); } } }catch (Exception e){ e.printStackTrace(); }finally { if(excelWriter !=null){ excelWriter.finish(); } } } }