package com.fdkankan.agent.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.fdkankan.agent.common.PageInfo; import com.fdkankan.agent.common.ResultCode; import com.fdkankan.agent.entity.AgentNewLog; import com.fdkankan.agent.entity.User; import com.fdkankan.agent.exception.BusinessException; import com.fdkankan.agent.mapper.IAgentNewLogMapper; import com.fdkankan.agent.request.DownParam; import com.fdkankan.agent.request.IncrementParam; import com.fdkankan.agent.request.LogListParam; import com.fdkankan.agent.response.*; import com.fdkankan.agent.service.IAgentNewLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.agent.service.IAgentNewService; import com.fdkankan.agent.service.IExcelService; import com.fdkankan.agent.service.IUserService; import com.fdkankan.common.util.DateUtil; 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.Date; import java.util.List; import java.util.UUID; /** *

* 服务实现类 *

* * @author * @since 2022-11-10 */ @Service public class AgentNewLogServiceImpl extends ServiceImpl implements IAgentNewLogService { @Autowired IUserService userService; @Autowired IAgentNewService agentNewService; @Autowired IExcelService excelService; @Override public Object downLogList(DownParam param) { Page downLogVoPage = this.getBaseMapper().downLogList(new Page<>(param.getPageNum(),param.getPageSize()),param); return PageInfo.PageInfo(downLogVoPage); } @Override public void addDown(IncrementParam param, AgentNewVo agent) { if(StringUtils.isBlank(param.getUserName()) || param.getCount() == null ){ throw new BusinessException(ResultCode.PARAM_MISS); } User user = userService.getByUserName(param.getUserName()); if(user == null){ throw new BusinessException(ResultCode.USER_NOT_EXIST); } if(agent.getDownSubNum() <=0 ){ throw new BusinessException(ResultCode.DOWN_NUM_EMPTY); } user.setDownloadNumTotal(user.getDownloadNumTotal() + param.getCount() ); userService.updateById(user); agentNewService.subNum(agent,user.getId(),null,param.getCount(),param.getTotalTime(),0); } @Override public LogDataVo getLogDataM(Integer agentId) { List logDataM = this.getBaseMapper().getLogDataM(agentId); LogDataVo logDataVo = new LogDataVo(); for (AgentNewLog log : logDataM) { switch (log.getType()){ case 0 : logDataVo.setLastMajorNum(log.getCount() + logDataVo.getLastMajorNum()); break; case 1 : logDataVo.setLastHighNum(log.getCount() + logDataVo.getLastHighNum()); break; case 2 : logDataVo.setLastDownNum(log.getCount() + logDataVo.getLastDownNum()); break; } } return logDataVo; } static LogListParam logListParam = new LogListParam(); @Override public PageInfo pageUnList(LogListParam param) { logListParam = param; LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(AgentNewLog::getAgentId,param.getAgentId()); if(param.getType()!=null){ wrapper.eq(AgentNewLog::getType,param.getType()); } if(param.getGiveType() != null){ wrapper.eq(AgentNewLog::getGiveType,param.getGiveType()); } if(StringUtils.isNotBlank(param.getStartTime())){ wrapper.between(AgentNewLog::getCreateTime,param.getStartTime(),param.getEndTime()); } wrapper.orderByDesc(AgentNewLog::getCreateTime); Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper); List vos = new ArrayList<>(); for (AgentNewLog record : page.getRecords()) { LogListVo vo = new LogListVo(); BeanUtils.copyProperties(record,vo); User user = userService.getById(record.getUserId()); if(user != null){ vo.setNickName(user.getNickName()); vo.setUserName(user.getUserName()); vo.setEmail(user.getEmail()); } vos.add(vo); } Page voPage = new Page<>(param.getPageNum(), param.getPageSize()); voPage.setRecords(vos); voPage.setTotal(page.getTotal()); return PageInfo.PageInfo(voPage); } @Override public void export(HttpServletRequest req, HttpServletResponse resp,String lang) { logListParam.setPageSize(100000); List list = (List) this.pageUnList(logListParam).getList(); ExcelWriter excelWriter = null; try { if("en".equals(lang)){ List listen = new ArrayList<>(); for (LogListVo listVo : list) { LogListVoEn en = new LogListVoEn(); BeanUtils.copyProperties(listVo,en); listen.add(en); } excelWriter = EasyExcel.write(resp.getOutputStream(), LogListVoEn.class).build(); excelService.commonExport(req,resp,"Sales Statistics List",listen,excelWriter); }else { excelWriter = EasyExcel.write(resp.getOutputStream(), LogListVo.class).build(); excelService.commonExport(req,resp,"经销商结算统计",list,excelWriter); } }catch (Exception e){ e.printStackTrace(); }finally { if(excelWriter != null){ excelWriter.finish(); } } } }