package com.fdkankan.manage.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.common.response.PageInfo;
import com.fdkankan.manage.entity.Order;
import com.fdkankan.manage.mapper.IOrderMapper;
import com.fdkankan.manage.service.IExcelService;
import com.fdkankan.manage.service.IOrderService;
import com.fdkankan.manage.vo.request.OrderParam;
import com.fdkankan.manage.vo.response.OrderVo;
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.List;
import java.util.stream.Collectors;
/**
*
* 订单表 服务实现类
*
*
* @author
* @since 2022-06-20
*/
@Service
public class OrderServiceImpl extends ServiceImpl implements IOrderService {
@Autowired
IExcelService excelService;
@Override
public List getOrderSn(String content) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
wrapper.like(Order::getOrderSn,content);
return this.list(wrapper).parallelStream().map(Order::getOrderSn).collect(Collectors.toList());
}
@Override
public PageInfo pageList(OrderParam param) {
Page page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
return PageInfo.PageInfo(page);
}
@Override
public void export(HttpServletRequest req, HttpServletResponse resp) throws Exception {
OrderParam param = new OrderParam();
param.setPageNum(1);
param.setPageSize(5000);
Page page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
ExcelWriter excelWriter = null;
try {
excelWriter = EasyExcel.write(resp.getOutputStream(),OrderVo.class).build();
excelService.commonExport(req,resp,"相机订单",page.getRecords(),excelWriter);
while (page.hasNext()){
param.setPageNum(param.getPageNum() +1);
page = this.getBaseMapper().pageList(new Page<>(param.getPageNum(),param.getPageSize()),param);
if(page.getRecords().size() > 0){
excelService.commonExport(req,resp,"相机订单",page.getRecords(),excelWriter);
}
}
}catch (Exception e){
e.printStackTrace();
}finally {
if(excelWriter != null){
excelWriter.finish();
}
}
}
}