package com.xzx.gc.system.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; import cn.hutool.core.lang.Dict; import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import com.xzx.gc.common.constant.CommonEnum; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.constant.OrderEnum; import com.xzx.gc.common.utils.BusinessUtil; import com.xzx.gc.common.utils.DateUtils; import com.xzx.gc.common.utils.SpringUtil; import com.xzx.gc.entity.*; import com.xzx.gc.system.mapper.PlatformReportMapper; import com.xzx.gc.util.CollUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import tk.mybatis.mapper.entity.Example; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * 平台报表 */ @Service @Transactional @Slf4j public class PlatformReportService { @Autowired private PlatformReportMapper platformReportMapper; @Autowired private UserService userService; @Autowired private OrderService orderService; @Autowired private AccountService accountService; @Autowired private OrderComplaintService orderComplaintService; @Autowired private OrderStorageService orderStorageService; @Autowired private CityPartnerService cityPartnerService; @Autowired private BusinessUtil businessUtil; @Autowired private OtherUserService otherUserService; @Autowired private AccountLogService accountLogService; /** * 按报表类型和指标类型查询 * @param reportType * @param indicatorType * @return */ public List findByType(String reportType,String indicatorType){ Example example=new Example(PlatformReport.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("reportType",reportType); criteria.andEqualTo("indicatorType",indicatorType); return platformReportMapper.selectByExample(example); } /** * 根据报表类型 及小于入参时间查询 * @param reportType * @param time * @return */ public List findByReportTypeLessThanTime(String reportType,String time){ Example example=new Example(PlatformReport.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("reportType",reportType); criteria.andLessThan("createTime",time); return platformReportMapper.selectByExample(example); } /** * 根据类型和时间筛选 * @param reportType * @param indicatorType * @param timeType * @return */ public List findByTypeAndTimeType(String reportType,String indicatorType,String timeType){ Example example=new Example(PlatformReport.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("reportType",reportType); criteria.andEqualTo("indicatorType",indicatorType); //1:近3天 2 近1个星期 3:近一个月 4:近3个月 5:近6个月 if("1".equals(timeType)){ criteria.andCondition("DATE_FORMAT(create_time,'%Y-%m-%d')>=date_sub(CURRENT_DATE(), interval 3 day)"); } else if ("2".equals(timeType)) { criteria.andCondition("DATE_FORMAT(create_time,'%Y-%m-%d')>=date_sub(CURRENT_DATE(), interval 7 day)"); }else if ("3".equals(timeType)) { criteria.andCondition("DATE_FORMAT(create_time,'%Y-%m-%d')>=date_sub(CURRENT_DATE(), interval 1 month)"); }else if ("4".equals(timeType)) { criteria.andCondition("DATE_FORMAT(create_time,'%Y-%m-%d')>=date_sub(CURRENT_DATE(), interval 3 month)"); }else if ("5".equals(timeType)) { criteria.andCondition("DATE_FORMAT(create_time,'%Y-%m-%d')>=date_sub(CURRENT_DATE(), interval 6 month)"); } example.setOrderByClause("create_time asc"); return platformReportMapper.selectByExample(example); } /** * 根据指标类型查找 * @param indicatorType * @return */ public List findByIndicatorType(String indicatorType){ Example example=new Example(PlatformReport.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("indicatorType",indicatorType); example.setOrderByClause("create_time desc"); return platformReportMapper.selectByExample(example); } /** * 根据统计时间查找 * @param time * @return */ public int findByTime(String time){ Example example=new Example(PlatformReport.class); Example.Criteria criteria = example.createCriteria(); criteria.andEqualTo("createTime",time); return platformReportMapper.selectCountByExample(example); } /** * 获取 日环比 * @param moneys * @return */ public String getRatio(List moneys ){ List collect = moneys.stream().filter(x -> DateUtil.offsetDay(new Date(),-2).toDateStr().equals(x.getCreateTime())).collect(Collectors.toList()); double yesterday = collect.stream().mapToDouble(x -> Convert.toDouble(x.getIndicator())).sum(); collect = moneys.stream().filter(x -> DateUtil.offsetDay(new Date(),-1).toDateStr().equals(x.getCreateTime())).collect(Collectors.toList()); double today = collect.stream().mapToDouble(x -> Convert.toDouble(x.getIndicator())).sum(); return businessUtil.getRatio(Convert.toBigDecimal(yesterday), Convert.toBigDecimal(today)); } /** * 删除所有报表数据 */ public void deleteAll(){ platformReportMapper.delete(new PlatformReport()); } /** * 批量添加 * @param list */ public void batchAdd(List list){ platformReportMapper.insertList(list); } /** * 初始化所有数据生成报表 */ public void init(){ List userInfos = userService.findForBidden(); List orderInfos =orderService.findPartnerId(); List storageInfos = orderStorageService.findByStorageType(Convert.toShort(OrderEnum.打包站.getValue())); List complaints = orderComplaintService.findPartner(); List accountInfos = accountService.findThanZero(); List withdraws = accountLogService.findByChannelType(Convert.toShort(CommonEnum.提现操作.getValue())); init(userInfos,orderInfos,storageInfos,complaints,accountInfos,withdraws,DateUtil.today()); } /** * 同步数据 */ @Scheduled(cron = "${order.report.cron}") @Async public void sysnc(){ log.trace("********定时执行平台报表统计任务开始【凌晨12点半执行】*********"); if(!SpringUtil.isCloud()) { List userInfos = userService.findForBiddenByTime(); List orderInfos = orderService.findPartnerIdByTime(); List storageInfos = orderStorageService.findByStorageTypeByTime(Convert.toShort(OrderEnum.打包站.getValue())); List complaints = orderComplaintService.findPartnerByTime(); List accountInfos = accountService.findThanZero(); List withdraws = accountLogService.findByChannelTypeAndTime(Convert.toShort(CommonEnum.提现操作.getValue())); init(userInfos, orderInfos, storageInfos, complaints, accountInfos,withdraws, DateUtil.yesterday().toDateStr()); } log.trace("********定时执行平台报表统计任务结束【凌晨12点半执行】*********"); } private void init(List userInfos,List orderInfos,List storageInfos,List complaints,List accountInfos,List withdraws,String time){ log.debug(businessUtil.repeatService("平台报表统计任务开始")); if(findByTime(DateUtil.yesterday().toDateStr())>0||findByTime(DateUtil.today())>0){ log.debug("统计已执行"); return; } List list=CollUtil.newArrayList(); /** *总用户量 */ //按时间统计 List> userByTime = CollUtils.groupByField(userInfos, "registTime"); if(CollUtil.isNotEmpty(userByTime)) { for (List userInfoList : userByTime) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(DateUtils.formatDate(userInfoList.get(0).getRegistTime())); platformReport.setReportType(Convert.toShort(OrderEnum.用户量.getValue())); platformReport.setIndicator(Convert.toStr(userInfoList.size())); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.用户量.getValue(),OrderEnum.按时间统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成总用户量按时间统计,统计数目:{}",list.size()); //按合伙人统计 list.clear(); //用户根据合伙人拆分成多个集合 if(CollUtil.isNotEmpty(userInfos)){ Dict dict =groupPartner(userInfos); for (String s : dict.keySet()) { List dictList = (List) dict.get(s); staticUser(dictList,list,time); } }else { initForEmptyList(list,time,OrderEnum.用户量.getValue(),OrderEnum.按合伙人统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成总用户量按合伙人统计,统计数目:{}",list.size()); /* *总订单量 */ //按时间统计 list.clear(); List> orderByTime = CollUtils.groupByField(orderInfos, "createTime"); if(CollUtil.isNotEmpty(orderByTime)) { for (List orderInfoList : orderByTime) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(DateUtils.formatDate(orderInfoList.get(0).getCreateTime())); platformReport.setReportType(Convert.toShort(OrderEnum.总下单量.getValue())); platformReport.setIndicator(Convert.toStr(orderInfoList.size())); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.总下单量.getValue(),OrderEnum.按时间统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成总订单量按时间统计,统计数目:{}",list.size()); //按合伙人统计 list.clear(); List> orderByPartner = CollUtil.groupByField(orderInfos, "partnerId"); if(CollUtil.isNotEmpty(orderByPartner)) { for (List orderInfoList : orderByPartner) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.总下单量.getValue())); platformReport.setIndicator(Convert.toStr(orderInfoList.size())); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按合伙人统计.getValue())); String partnterId = StrUtil.isBlank(orderInfoList.get(0).getPartnerId()) ? Constants.DEFAULT_ID : orderInfoList.get(0).getPartnerId(); platformReport.setUserId(partnterId); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.总下单量.getValue(),OrderEnum.按合伙人统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成总订单量按合伙人统计,统计数目:{}",list.size()); /* *总交易金额 */ //按时间统计 list.clear(); //删除金额为0(订单状态为已取消等) orderInfos.removeIf(x->StrUtil.isBlank(x.getMoney())||Convert.toBigDecimal(x.getMoney()).compareTo(BigDecimal.ZERO)==0); orderByTime = CollUtils.groupByField(orderInfos, "createTime"); if(CollUtil.isNotEmpty(orderByTime)) { for (List orderInfoList : orderByTime) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(DateUtils.formatDate(orderInfoList.get(0).getCreateTime())); platformReport.setReportType(Convert.toShort(OrderEnum.总交易金额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(orderInfoList.stream().mapToDouble(x -> Convert.toDouble(x.getMoney())).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.总交易金额.getValue(),OrderEnum.按时间统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成总交易额按时间统计,统计数目:{}",list.size()); //按合伙人统计 list.clear(); orderByPartner = CollUtil.groupByField(orderInfos, "partnerId"); if(CollUtil.isNotEmpty(orderByPartner)) { for (List orderInfoList : orderByPartner) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.总交易金额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(orderInfoList.stream().mapToDouble(x -> Convert.toDouble(x.getMoney())).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按合伙人统计.getValue())); String partnterId = StrUtil.isBlank(orderInfoList.get(0).getPartnerId()) ? Constants.DEFAULT_ID : orderInfoList.get(0).getPartnerId(); platformReport.setUserId(partnterId); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.总交易金额.getValue(),OrderEnum.按合伙人统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成总交易额按合伙人统计,统计数目:{}",list.size()); /* 打包站回收金额 */ //按时间统计 list.clear(); List> storageByTime = CollUtils.groupByField(storageInfos, "storageTime"); if(CollUtil.isNotEmpty(storageByTime)) { for (List storageInfoList : storageByTime) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(DateUtils.formatDate(storageInfoList.get(0).getStorageTime())); platformReport.setReportType(Convert.toShort(OrderEnum.打包站回收金额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(storageInfoList.stream().mapToDouble(x -> Convert.toDouble(x.getStorageMoney(),Convert.toDouble(BigDecimal.ZERO))).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.打包站回收金额.getValue(),OrderEnum.按时间统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成打包站回收金额按时间统计,统计数目:{}",list.size()); //按打包站统计 list.clear(); List> storageByPartner = CollUtil.groupByField(storageInfos, "sysStorageId"); if(CollUtil.isNotEmpty(storageByPartner)) { for (List storageInfoList : storageByPartner) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.打包站回收金额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(storageInfoList.stream().mapToDouble(x -> Convert.toDouble(x.getStorageMoney(),Convert.toDouble(BigDecimal.ZERO))).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按打包站统计.getValue())); platformReport.setUserId(Convert.toStr(storageInfoList.get(0).getSysStorageId())); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.打包站回收金额.getValue(),OrderEnum.按打包站统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成打包站回收金额按打包站统计,统计数目:{}",list.size()); /* * 投诉总量 */ //按时间统计 list.clear(); List> complaintByTime = CollUtils.groupByField(complaints, "createTime"); if(CollUtil.isNotEmpty(complaintByTime)) { for (List complaintList : complaintByTime) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(DateUtils.formatDate(complaintList.get(0).getCreateTime())); platformReport.setReportType(Convert.toShort(OrderEnum.投诉总量.getValue())); platformReport.setIndicator(Convert.toStr(complaintList.size())); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.投诉总量.getValue(),OrderEnum.按时间统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成投诉总量按时间统计,统计数目:{}",list.size()); //按合伙人统计 list.clear(); List> complaintByPartner = CollUtil.groupByField(complaints, "partnerId"); if(CollUtil.isNotEmpty(complaintByPartner)) { for (List complaintList : complaintByPartner) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.投诉总量.getValue())); platformReport.setIndicator(Convert.toStr(complaintList.size())); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按合伙人统计.getValue())); String partnterId = StrUtil.isBlank(complaintList.get(0).getPartnerId()) ? Constants.DEFAULT_ID : complaintList.get(0).getPartnerId(); platformReport.setUserId(partnterId); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.投诉总量.getValue(),OrderEnum.按合伙人统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成投诉总量按打合伙人统计,统计数目:{}",list.size()); /* * 未提现金额 */ //按时间统计 if(CollUtil.isNotEmpty(accountInfos)) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.未提现总额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(accountInfos.stream().mapToDouble(x -> Convert.toDouble(x.getMoney())).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); platformReportMapper.insertSelective(platformReport); } log.debug("已完成未提现金额按时间统计,统计数目:{}",CollUtil.isNotEmpty(accountInfos)?1:0); //按合伙人统计 list.clear(); //查询当前账户所属合伙人 打包站的账户归为合伙人 for (AccountInfo accountInfo : accountInfos) { String partnerId = getPartnerIdByUserId(accountInfo.getUserId()); accountInfo.setPartnerId(partnerId); } //账户根据合伙人拆分成多个集合 if(CollUtil.isNotEmpty(accountInfos)){ Dict dict =groupPartner(accountInfos); for (String s : dict.keySet()) { List dictList = (List) dict.get(s); staticAccount(dictList,list,time); } } if(CollUtil.isNotEmpty(list)) { platformReportMapper.insertList(list); } log.debug("已完成未提现金额按合伙人统计,统计数目:{}",list.size()); /* *已提现金额 */ //按时间统计 list.clear(); List> withdrawByTime = CollUtils.groupByField(withdraws, "createTime"); if(CollUtil.isNotEmpty(withdrawByTime)) { for (List withdrawList : withdrawByTime) { PlatformReport platformReport = new PlatformReport(); platformReport.setCreateTime(DateUtils.formatDate(withdrawList.get(0).getCreateTime())); platformReport.setReportType(Convert.toShort(OrderEnum.已提现总额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(withdrawList.stream().mapToDouble(x -> Convert.toDouble(x.getMoney())).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按时间统计.getValue())); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }else { initForEmptyList(list,time,OrderEnum.已提现总额.getValue(),OrderEnum.按时间统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成已提现总额按时间统计,统计数目:{}",list.size()); //按合伙人统计 list.clear(); //查询当前账户所属合伙人 打包站的账户归为合伙人 for (AccountLog withdraw : withdraws) { String partnerId = getPartnerIdByUserId(withdraw.getUserId()); withdraw.setPartnerId(partnerId); } //账户根据合伙人拆分成多个集合 if(CollUtil.isNotEmpty(withdraws)){ Dict dict =groupPartner(withdraws); for (String s : dict.keySet()) { List dictList = (List) dict.get(s); staticAccountLog(dictList,list,time); } }else { initForEmptyList(list,time,OrderEnum.已提现总额.getValue(),OrderEnum.按合伙人统计.getValue()); } platformReportMapper.insertList(list); log.debug("已完成已提现总额按合伙人统计,统计数目:{}",list.size()); log.debug(businessUtil.repeatService("平台报表统计任务结束")); } /** * 根据用户ID查找合伙人ID * @param userId * @return */ private String getPartnerIdByUserId(String userId) { String partnerId; OtherUserInfo byId = otherUserService.findById(userId); if(byId!=null){ if(CommonEnum.打包员.getValue().equals(byId.getUserType())||CommonEnum.打包站运营员.getValue().equals(byId.getUserType())){ //打包站id转换成合伙人id partnerId = cityPartnerService.queryById(Convert.toLong(byId.getPartnerId())).getPackingStation(); }else { partnerId=byId.getPartnerId(); } }else { UserInfo byId1 = userService.findById(userId); if(byId1==null){ partnerId=Constants.DEFAULT_PARTNER_ID; }else { partnerId = byId1.getPartnerId(); } } return partnerId; } /** * 按合伙人分组 */ private Dict groupPartner(List list) { Dict dict = Dict.create(); for (T t : list) { String partnerIds= (String) ReflectUtil.getFieldValue(t,"partnerId"); if(StrUtil.isNotBlank(partnerIds)){ String[] split = partnerIds.split(","); if(split.length>1) { for (String partnerId : split) { Object o = BeanUtil.copyProperties(t, t.getClass()); ReflectUtil.setFieldValue(o, "singlePartnerId", partnerId); groupDict(dict, o, partnerId); } }else { ReflectUtil.setFieldValue(t, "singlePartnerId", partnerIds); groupDict(dict, t, partnerIds); } }else { String partnerId=Constants.DEFAULT_ID; ReflectUtil.setFieldValue(t,"singlePartnerId",partnerId); groupDict(dict, t, partnerId); } } return dict; } private void groupDict(Dict dict, T t, String s) { if(dict.containsKey(s)){ List dictList = (List) dict.get(s); dictList.add(t); dict.put(s,dictList); }else { dict.put(s,CollUtil.newArrayList(t)); } } /** * 用户按合伙人统计 * @param userInfos * @param list * @param time */ private void staticUser(List userInfos,List list,String time){ List> userByPartner = CollUtil.groupByField(userInfos, "singlePartnerId"); for (List userInfoList : userByPartner) { PlatformReport platformReport=new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.用户量.getValue())); platformReport.setIndicator(Convert.toStr(userInfoList.size())); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按合伙人统计.getValue())); String partnterId = StrUtil.isBlank(userInfoList.get(0).getPartnerId()) ? Constants.DEFAULT_ID : userInfoList.get(0).getSinglePartnerId(); platformReport.setUserId(partnterId); list.add(platformReport); } } /** * 账户按合伙人统计 * @param list * @param time */ private void staticAccount(List accountInfos,List list,String time){ List> accountByPartner = CollUtil.groupByField(accountInfos, "singlePartnerId"); for (List accountInfoList : accountByPartner) { PlatformReport platformReport=new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.未提现总额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(accountInfoList.stream().mapToDouble(x->Convert.toDouble(x.getMoney())).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按合伙人统计.getValue())); String partnterId = StrUtil.isBlank(accountInfoList.get(0).getPartnerId()) ? Constants.DEFAULT_ID : accountInfoList.get(0).getSinglePartnerId(); platformReport.setUserId(partnterId); list.add(platformReport); } } /** * 已提现按合伙人统计 * @param list * @param time */ private void staticAccountLog(List accountInfos,List list,String time){ List> accountByPartner = CollUtil.groupByField(accountInfos, "singlePartnerId"); for (List accountInfoList : accountByPartner) { PlatformReport platformReport=new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(OrderEnum.已提现总额.getValue())); platformReport.setIndicator(businessUtil.changeMoney(Convert.toStr(accountInfoList.stream().mapToDouble(x->Convert.toDouble(x.getMoney())).sum()))); platformReport.setIndicatorType(Convert.toShort(OrderEnum.按合伙人统计.getValue())); String partnterId = StrUtil.isBlank(accountInfoList.get(0).getPartnerId()) ? Constants.DEFAULT_ID : accountInfoList.get(0).getSinglePartnerId(); platformReport.setUserId(partnterId); list.add(platformReport); } } /** * 当查询数据为空的时候初始化 */ private void initForEmptyList( List list,String time,String reportType,String indicatorType){ PlatformReport platformReport=new PlatformReport(); platformReport.setCreateTime(time); platformReport.setReportType(Convert.toShort(reportType)); platformReport.setIndicator(Convert.toStr(0)); platformReport.setIndicatorType(Convert.toShort(indicatorType)); platformReport.setUserId(Constants.DEFAULT_ID); list.add(platformReport); } }