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.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fdkankan.manage.common.PageInfo; import com.fdkankan.manage.common.CacheUtil; import com.fdkankan.manage.common.ResultCode; import com.fdkankan.manage.entity.*; import com.fdkankan.manage.exception.BusinessException; import com.fdkankan.manage.mapper.IAgentNewMapper; import com.fdkankan.manage.service.*; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.manage.vo.request.AgentAddIncrementParam; import com.fdkankan.manage.vo.request.AgentNewLogParam; import com.fdkankan.manage.vo.request.AgentParam; import com.fdkankan.manage.vo.request.OrderParam; import com.fdkankan.manage.vo.response.AgentNewLogVo; import com.fdkankan.manage.vo.response.AgentVo; import com.fdkankan.manage.vo.response.OrderVo; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; 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.ArrayList; import java.util.HashMap; import java.util.List; /** *

* 服务实现类 *

* * @author * @since 2022-11-08 */ @Service public class AgentNewServiceImpl extends ServiceImpl implements IAgentNewService { @Autowired ISysUserService sysUserService; @Autowired IIncrementTypeService incrementTypeService; @Autowired IAgentNewLogService agentNewLogService; @Autowired IExcelService excelService; @Override public Object pageList(AgentParam agentParam) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); if(StringUtils.isNotBlank(agentParam.getName())){ wrapper.like(AgentNew::getName,agentParam.getName()); } wrapper.orderByDesc(AgentNew::getCreateTime); Page page = this.page(new Page<>(agentParam.getPageNum(), agentParam.getPageSize()), wrapper); List voList = new ArrayList<>(); for (AgentNew record : page.getRecords()) { AgentVo vo = new AgentVo(); BeanUtils.copyProperties(record,vo); SysUser sysUser = sysUserService.getById(vo.getSysUserId()); if(sysUser != null){ vo.setSysUserName(sysUser.getNickName()); } voList.add(vo); } Page voPage = new Page<>(agentParam.getPageNum(), agentParam.getPageSize()); voPage.setTotal(page.getTotal()); voPage.setRecords(voList); return PageInfo.PageInfo(voPage); } @Override public void addIncrementNum(AgentAddIncrementParam param) { if(param.getId() == null ){ throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS); } AgentNew agentNew = this.getById(param.getId()); if(agentNew == null){ throw new BusinessException(ResultCode.AGENT_NEW_EMPTY); } if(param.getDownAddNum() <=0 && param.getMajorAddNum() <=0 && param.getHighAddNum() <=0 ){ return; } LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); wrapper.eq(AgentNew::getId,param.getId()); if( param.getDownAddNum() >0){ wrapper.set(AgentNew::getDownTotalNum,agentNew.getDownTotalNum() + param.getDownAddNum()); } if(param.getHighAddNum() >0){ wrapper.set(AgentNew::getHighTotalNum,agentNew.getHighTotalNum() + param.getHighAddNum()); } if( param.getMajorAddNum() >0){ wrapper.set(AgentNew::getMajorTotalNum,agentNew.getMajorTotalNum() + param.getMajorAddNum()); } this.update(wrapper); } @Override public Object logList(AgentNewLogParam param) { CacheUtil.agentParam = param; return agentNewLogService.getVoList(param); } @Override public void export(HttpServletRequest req, HttpServletResponse resp) { AgentNewLogParam param = CacheUtil.agentParam; List voList = agentNewLogService.getVoList(param); ExcelWriter excelWriter = null; try { excelWriter = EasyExcel.write(resp.getOutputStream(),AgentNewLogVo.class).build(); excelService.commonExport(req,resp,"经销商结算统计",voList,excelWriter); }catch (Exception e){ e.printStackTrace(); }finally { if(excelWriter != null){ excelWriter.finish(); } } } }