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.IncrementOrder;
import com.fdkankan.manage.mapper.IIncrementOrderMapper;
import com.fdkankan.manage.service.IExcelService;
import com.fdkankan.manage.service.IIncrementOrderService;
import com.fdkankan.manage.util.Dateutils;
import com.fdkankan.manage.vo.request.OrderParam;
import com.fdkankan.manage.vo.response.IncrementOrderVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* 增值权益订单表 服务实现类
*
*
* @author
* @since 2022-05-31
*/
@Service
public class IncrementOrderServiceImpl extends ServiceImpl implements IIncrementOrderService {
@Autowired
IExcelService excelService;
@Override
public PageInfo pageList(OrderParam param) {
CacheUtil.orderParam = param;
Page page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
for (IncrementOrderVo record : page.getRecords()) {
String tradeTime = record.getTradeTime();
if(record.getTimeZoneOff() != null){
tradeTime = Dateutils.AddMinute(record.getTradeTime(),record.getTimeZoneOff());
}
record.setCreateTime(tradeTime);
}
return PageInfo.PageInfo(page);
}
@Override
public void export(HttpServletRequest req, HttpServletResponse resp) {
OrderParam orderParam = CacheUtil.orderParam;
orderParam.setPageNum(1);
orderParam.setPageSize(5000);
Page page = this.getBaseMapper().pageList(new Page<>(orderParam.getPageNum(),orderParam.getPageSize()),orderParam);
ExcelWriter excelWriter = null;
try {
excelWriter = EasyExcel.write(resp.getOutputStream(),IncrementOrderVo.class).build();
excelService.commonExport(req,resp,"权益订单",page.getRecords(),excelWriter);
while (page.hasNext()){
orderParam.setPageNum(orderParam.getPageNum() +1);
page = this.getBaseMapper().pageList(new Page<>(orderParam.getPageNum(),orderParam.getPageSize()),orderParam);
if(page.getRecords().size() >0){
excelService.commonExport(req,resp,"权益订单",page.getRecords(),excelWriter);
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
if(excelWriter !=null){
excelWriter.finish();
}
}
}
}