AgentNewLogServiceImpl.java 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. package com.fdkankan.agent.service.impl;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.alibaba.excel.ExcelWriter;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.fdkankan.agent.common.PageInfo;
  7. import com.fdkankan.agent.common.ResultCode;
  8. import com.fdkankan.agent.entity.AgentNewLog;
  9. import com.fdkankan.agent.entity.User;
  10. import com.fdkankan.agent.exception.BusinessException;
  11. import com.fdkankan.agent.mapper.IAgentNewLogMapper;
  12. import com.fdkankan.agent.request.DownParam;
  13. import com.fdkankan.agent.request.IncrementParam;
  14. import com.fdkankan.agent.request.LogListParam;
  15. import com.fdkankan.agent.response.*;
  16. import com.fdkankan.agent.service.IAgentNewLogService;
  17. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  18. import com.fdkankan.agent.service.IAgentNewService;
  19. import com.fdkankan.agent.service.IExcelService;
  20. import com.fdkankan.agent.service.IUserService;
  21. import com.fdkankan.common.util.DateUtil;
  22. import org.apache.commons.lang3.StringUtils;
  23. import org.springframework.beans.BeanUtils;
  24. import org.springframework.beans.factory.annotation.Autowired;
  25. import org.springframework.stereotype.Service;
  26. import javax.servlet.http.HttpServletRequest;
  27. import javax.servlet.http.HttpServletResponse;
  28. import java.util.ArrayList;
  29. import java.util.Date;
  30. import java.util.List;
  31. import java.util.UUID;
  32. /**
  33. * <p>
  34. * 服务实现类
  35. * </p>
  36. *
  37. * @author
  38. * @since 2022-11-10
  39. */
  40. @Service
  41. public class AgentNewLogServiceImpl extends ServiceImpl<IAgentNewLogMapper, AgentNewLog> implements IAgentNewLogService {
  42. @Autowired
  43. IUserService userService;
  44. @Autowired
  45. IAgentNewService agentNewService;
  46. @Autowired
  47. IExcelService excelService;
  48. @Override
  49. public Object downLogList(DownParam param) {
  50. Page<DownLogVo> downLogVoPage = this.getBaseMapper().downLogList(new Page<>(param.getPageNum(),param.getPageSize()),param);
  51. return PageInfo.PageInfo(downLogVoPage);
  52. }
  53. @Override
  54. public void addDown(IncrementParam param, AgentNewVo agent) {
  55. if(StringUtils.isBlank(param.getUserName())
  56. || param.getCount() == null ){
  57. throw new BusinessException(ResultCode.PARAM_MISS);
  58. }
  59. User user = userService.getByUserName(param.getUserName());
  60. if(user == null){
  61. throw new BusinessException(ResultCode.USER_NOT_EXIST);
  62. }
  63. if(agent.getDownSubNum() <=0 ){
  64. throw new BusinessException(ResultCode.DOWN_NUM_EMPTY);
  65. }
  66. user.setDownloadNumTotal(user.getDownloadNumTotal() + param.getCount() );
  67. userService.updateById(user);
  68. agentNewService.subNum(agent,user.getId(),null,param.getCount(),param.getTotalTime(),0);
  69. }
  70. @Override
  71. public LogDataVo getLogDataM(Integer agentId) {
  72. List<AgentNewLog> logDataM = this.getBaseMapper().getLogDataM(agentId);
  73. LogDataVo logDataVo = new LogDataVo();
  74. for (AgentNewLog log : logDataM) {
  75. switch (log.getType()){
  76. case 0 : logDataVo.setLastMajorNum(log.getCount() + logDataVo.getLastMajorNum()); break;
  77. case 1 : logDataVo.setLastHighNum(log.getCount() + logDataVo.getLastHighNum()); break;
  78. case 2 : logDataVo.setLastDownNum(log.getCount() + logDataVo.getLastDownNum()); break;
  79. }
  80. }
  81. return logDataVo;
  82. }
  83. static LogListParam logListParam = new LogListParam();
  84. @Override
  85. public PageInfo pageUnList(LogListParam param) {
  86. logListParam = param;
  87. LambdaQueryWrapper<AgentNewLog> wrapper = new LambdaQueryWrapper<>();
  88. wrapper.eq(AgentNewLog::getAgentId,param.getAgentId());
  89. if(param.getType()!=null){
  90. wrapper.eq(AgentNewLog::getType,param.getType());
  91. }
  92. if(param.getGiveType() != null){
  93. wrapper.eq(AgentNewLog::getGiveType,param.getGiveType());
  94. }
  95. if(StringUtils.isNotBlank(param.getStartTime())){
  96. wrapper.between(AgentNewLog::getCreateTime,param.getStartTime(),param.getEndTime());
  97. }
  98. wrapper.orderByDesc(AgentNewLog::getCreateTime);
  99. Page<AgentNewLog> page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
  100. List<LogListVo> vos = new ArrayList<>();
  101. for (AgentNewLog record : page.getRecords()) {
  102. LogListVo vo = new LogListVo();
  103. BeanUtils.copyProperties(record,vo);
  104. User user = userService.getById(record.getUserId());
  105. if(user != null){
  106. vo.setNickName(user.getNickName());
  107. vo.setUserName(user.getUserName());
  108. vo.setEmail(user.getEmail());
  109. }
  110. vos.add(vo);
  111. }
  112. Page<LogListVo> voPage = new Page<>(param.getPageNum(), param.getPageSize());
  113. voPage.setRecords(vos);
  114. voPage.setTotal(page.getTotal());
  115. return PageInfo.PageInfo(voPage);
  116. }
  117. @Override
  118. public void export(HttpServletRequest req, HttpServletResponse resp,String lang) {
  119. logListParam.setPageSize(100000);
  120. List<LogListVo> list = (List<LogListVo>) this.pageUnList(logListParam).getList();
  121. ExcelWriter excelWriter = null;
  122. try {
  123. if("en".equals(lang)){
  124. List<LogListVoEn> listen = new ArrayList<>();
  125. for (LogListVo listVo : list) {
  126. LogListVoEn en = new LogListVoEn();
  127. BeanUtils.copyProperties(listVo,en);
  128. listen.add(en);
  129. }
  130. excelWriter = EasyExcel.write(resp.getOutputStream(), LogListVoEn.class).build();
  131. excelService.commonExport(req,resp,"Sales Statistics List",listen,excelWriter);
  132. }else {
  133. excelWriter = EasyExcel.write(resp.getOutputStream(), LogListVo.class).build();
  134. excelService.commonExport(req,resp,"经销商结算统计",list,excelWriter);
  135. }
  136. }catch (Exception e){
  137. e.printStackTrace();
  138. }finally {
  139. if(excelWriter != null){
  140. excelWriter.finish();
  141. }
  142. }
  143. }
  144. }