package com.ruoyi.admin.controller; import com.ruoyi.admin.request.UserDataCountRequest; import com.ruoyi.admin.service.MasterWorkerService; import com.ruoyi.admin.service.UserService; import com.ruoyi.admin.vo.MasterWorkerRankVO; import com.ruoyi.admin.vo.UserDataCountVO; import com.ruoyi.admin.vo.UserTrendsVO; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.api.entity.OrderCountRequest; import com.ruoyi.order.api.entity.OrderResultVO; import com.ruoyi.order.api.feignClient.OrderClient; import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; /** * @author HJL * @version 1.0 * @since 2024-05-30 14:10 */ @RestController @RequestMapping("/homePage") @Api(tags = {"后台-首页"}) public class HomePageController { @Resource private MasterWorkerService masterWorkerService; @Resource private UserService userService; @Resource private OrderClient orderClient; @Resource private TokenService tokenService; /** * 用户数据统计 * * @param userDataCountRequest 请求参数 */ @RequiresPermissions("homepage") @ApiOperation(value = "后台-用户数据统计", tags = {"后台-首页"}) @PostMapping(value = "/userDataCount") public R userDataCount(@RequestBody UserDataCountRequest userDataCountRequest) { LoginUser loginUser = tokenService.getLoginUser(); if (null == loginUser) { return R.loginExpire("登录失效!"); } if (loginUser.getIsFranchisee()||!userDataCountRequest.getCityList().isEmpty()) { if (null == userDataCountRequest.getCityList() || userDataCountRequest.getCityList().isEmpty()) { userDataCountRequest.setCityList(loginUser.getCityList()); } // else { //// userDataCountRequest.getCityList().addAll(loginUser.getCityList()); // } R> listR = orderClient.queryIdsBycode(userDataCountRequest.getCityList()); return R.ok(userService.userDataCount1(userDataCountRequest, listR.getData())); } return R.ok(userService.userDataCount(userDataCountRequest)); } /** * 用户增量 * * @param cityList 城市列表 */ @RequiresPermissions("homepage") @ApiOperation(value = "后台-用户增量", tags = {"后台-首页"}) @PostMapping(value = "/userTrends") public R> userTrends(@RequestBody List cityList) { LoginUser loginUser = tokenService.getLoginUser(); if (null == loginUser) { return R.loginExpire("登录失效!"); } if (loginUser.getIsFranchisee()||!cityList.isEmpty()) { if (null == cityList || cityList.isEmpty()) { cityList = loginUser.getCityList(); } // else { //// cityList.addAll(loginUser.getCityList()); // } R> listR = orderClient.queryIdsBycode(cityList); return R.ok(userService.userTrends1(cityList,listR.getData())); } return R.ok(userService.userTrends(cityList)); } /** * 回收订单统计 * * @param orderCount 查询所需参数 */ @RequiresPermissions("homepage") @ApiOperation(value = "后台-回收订单统计", tags = {"后台-首页"}) @PostMapping(value = "/orderCountHome") public R orderCountHome(@RequestBody OrderCountRequest orderCount) { LoginUser loginUser = tokenService.getLoginUser(); if (null == loginUser) { return R.loginExpire("登录失效!"); } if (loginUser.getIsFranchisee()) { if (null == orderCount.getCityList() || orderCount.getCityList().isEmpty()) { orderCount.setCityList(loginUser.getCityList()); } else { // orderCount.getCityList().addAll(loginUser.getCityList()); } } return orderClient.orderCountHome(orderCount); } /** * 师傅接单排行 * * @param cityList 城市集合 */ @RequiresPermissions("homepage") @ApiOperation(value = "后台-师傅接单排行", tags = {"后台-首页"}) @PostMapping(value = "/workerRanking") public R> workerRanking(@RequestBody List cityList) { LoginUser loginUser = tokenService.getLoginUser(); if (null == loginUser) { return R.loginExpire("登录失效!"); } if (loginUser.getIsFranchisee()) { if (null == cityList || cityList.isEmpty()) { cityList = loginUser.getCityList(); } else { // cityList.addAll(loginUser.getCityList()); } } List masterWorkerRankVOS = masterWorkerService.workerRanking(cityList); if (masterWorkerRankVOS.size()>10){ return R.ok(masterWorkerRankVOS.subList(0,10)); } return R.ok(masterWorkerService.workerRanking(cityList)); } }