package com.yami.trading.admin.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yami.trading.admin.controller.user.model.AgentAllStatisticsModel; import com.yami.trading.admin.controller.user.model.WalletExtendsAllModel; import com.yami.trading.admin.dto.UserAllDto; import com.yami.trading.admin.facade.PermissionFacade; import com.yami.trading.admin.model.AllStatisticsModel; import com.yami.trading.admin.model.UserStatisticsModel; import com.yami.trading.bean.model.User; import com.yami.trading.common.domain.Result; import com.yami.trading.common.util.DateUtil; import com.yami.trading.common.util.DateUtils; import com.yami.trading.common.util.StringUtils; import com.yami.trading.service.user.UserDataService; import com.yami.trading.service.user.UserRecomService; import com.yami.trading.service.user.UserService; import com.yami.trading.service.user.UserStatisticsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.commons.lang3.ObjectUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; import java.util.*; @RestController @CrossOrigin @Api(tags = "报表") @RequestMapping("statistics") public class UserStatisticsController { @Autowired UserDataService userDataService; @Autowired UserStatisticsService userStatisticsService; @Autowired UserService userService; @Autowired UserRecomService userRecomService; @Autowired PermissionFacade permissionFacade; @PostMapping(value = "userList") @ApiOperation("用户收益报表") public Result listTotal(@RequestBody @Valid UserStatisticsModel request) { Page page = new Page(request.getCurrent(), request.getSize()); if (request.getStartTime()==null&&request.getEndTime()!=null){ request.setStartTime(DateUtil.minDate(request.getStartTime())); } if (request.getEndTime()==null&&request.getStartTime()!=null){ request.setEndTime(DateUtil.maxDate(request.getEndTime())); } if(StringUtils.isNotEmpty(request.getUserId())){ List children = userRecomService.findChildren(request.getUserId()); userDataService.listUserGenefits(page, request.getStartTime(), request.getEndTime(), request.getUser_name(), children); }else{ userDataService.listUserGenefits(page, request.getStartTime(), request.getEndTime(), request.getUser_name(),permissionFacade.getOwnerUserIds()); } List> datas = page.getRecords(); Map allRecommCount = userRecomService.findAllRecommCount(); for(Map data: datas){ String userId = (String) data.get("user_id"); if(StringUtils.isNotEmpty(userId)){ int reco_num = allRecommCount.getOrDefault(userId, 0); data.put("reco_num", reco_num); } } return Result.ok(page); } /** * */ @ApiOperation("用户钱包 登录者只能看自己下面的用户钱包") @PostMapping("walletExtendsAll") public Result> walletExtendsAll(@RequestBody WalletExtendsAllModel walletExtendsAllModel) { User user=userService.findUserByUserCode(walletExtendsAllModel.getUserId()); List> wallet_data = userStatisticsService.getWalletExtends(null, user.getUserId()); List types = new ArrayList(); Map map = new HashMap<>(); map.put("wallet_data", wallet_data); if (ObjectUtils.isNotEmpty(wallet_data)) { for (Map walletMap : wallet_data) { walletMap.put("wallettype",walletMap.get("wallettype").toString().toUpperCase()); types.add(walletMap.get("wallettype").toString()); } } String wallettype = String.join(",", types); map.put("wallet_type_arr", wallettype); return Result.succeed(map); } @PostMapping(value = "userAll") @ApiOperation("总充提报表") public Result userAll(@RequestBody @Valid AllStatisticsModel request) { Page page = new Page(request.getCurrent(), request.getSize()); String paraTime = request.getParaTime(); Date startTime = null; Date endTime=null; Date now=new Date(); System.out.printf(request.getStartTime()+"========"+request.getEndTime()); if (request.getStartTime()!=null ||request.getEndTime()!=null ){ endTime=DateUtil.maxDate(request.getEndTime()); startTime=DateUtil.minDate(request.getStartTime()); } else { if ("day".equals(paraTime)) { // 当天 endTime = DateUtil.maxDate(now); startTime = DateUtil.minDate(now); } else if ("week".equals(paraTime)) { // 往前推7天 endTime = DateUtil.maxDate(now); startTime = DateUtil.minDate(DateUtils.addDate(new Date(), -7)); } else if ("month".equals(paraTime)) { // 往前推一月 endTime = DateUtil.maxDate(now); startTime= DateUtil.minDate(DateUtils.addMonth(new Date(), -1)); } else if ("all".equals(paraTime)) { // 所有数据 endTime = null; startTime = null; } } List userIds= permissionFacade.getOwnerUserIds(); UserAllDto userAllDto=new UserAllDto(); userAllDto.setList(userDataService.userAll(page,startTime,endTime,userIds)); userAllDto.setSumData( userDataService.sumAll(startTime,endTime,userIds)); return Result.ok(userAllDto); } @PostMapping(value = "agentAllStatistics") @ApiOperation("代理商充提报表") public Result agentAllStatistics(@RequestBody AgentAllStatisticsModel model){ List userIds= permissionFacade.getOwnerUserIds(); return Result.succeed( userService.getAgentAllStatistics(model.getCurrent(),model.getSize(),model.getStartTime(), model.getEndTime(),model.getUsername(),userIds)); } }