无关风月
2025-04-22 67f416634f95c81e618123b826e18a57ae08220d
ruoyi-service/ruoyi-admin/src/main/java/com/ruoyi/admin/controller/HomePageController.java
@@ -1,14 +1,20 @@
package com.ruoyi.admin.controller;
import com.ruoyi.admin.request.OrderCountRequest;
import com.ruoyi.admin.entity.Franchisee;
import com.ruoyi.admin.request.UserDataCountRequest;
import com.ruoyi.admin.service.FranchiseeService;
import com.ruoyi.admin.service.MasterWorkerService;
import com.ruoyi.admin.service.OrderService;
import com.ruoyi.admin.service.UserService;
import com.ruoyi.admin.vo.MasterWorkerRankVO;
import com.ruoyi.admin.vo.OrderResultVO;
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;
@@ -17,6 +23,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
/**
@@ -34,16 +41,48 @@
    @Resource
    private UserService userService;
    @Resource
    private OrderService orderService;
    private OrderClient orderClient;
    @Resource
    private TokenService tokenService;
    /**
     * 用户数据统计
     *
     * @param userDataCountRequest 请求参数
     */
    @RequiresPermissions("homepage")
    @ApiOperation(value = "后台-用户数据统计", tags = {"后台-首页"})
    @PostMapping(value = "/userDataCount")
    public R<Object> userDataCount(@RequestBody UserDataCountRequest userDataCountRequest) {
    public R<UserDataCountVO> userDataCount(@RequestBody UserDataCountRequest userDataCountRequest) {
            LoginUser loginUser = tokenService.getLoginUser();
        if (null == loginUser) {
            return R.loginExpire("登录失效!");
        }
        Integer franchiseeId = loginUser.getSysUser().getFranchiseeId();
        String[] siteIds = new String[0];
        if (franchiseeId!=null){
            Franchisee byId = franchiseeService.getById(franchiseeId);
            siteIds = byId.getSiteIds().split(",");
            if (loginUser.getIsFranchisee()&&siteIds.length==0){
                return R.ok();
            }
        }
        userDataCountRequest.setSiteIds(Arrays.asList(siteIds));
        if (loginUser.getIsFranchisee()||!userDataCountRequest.getCityList().isEmpty()) {
            if (null == userDataCountRequest.getCityList() || userDataCountRequest.getCityList().isEmpty()) {
                userDataCountRequest.setCityList(loginUser.getCityList());
            }
//            else {
////                userDataCountRequest.getCityList().addAll(loginUser.getCityList());
//            }
            R<List<Integer>> listR = orderClient.queryIdsBycodeAndSite(userDataCountRequest.getCityList(),userDataCountRequest.getSiteIds());
            return R.ok(userService.userDataCount1(userDataCountRequest, listR.getData(),userDataCountRequest.getSiteIds()));
        }
        return R.ok(userService.userDataCount(userDataCountRequest));
    }
@@ -52,21 +91,62 @@
     *
     * @param cityList 城市列表
     */
    @RequiresPermissions("homepage")
    @ApiOperation(value = "后台-用户增量", tags = {"后台-首页"})
    @PostMapping(value = "/userTrends")
    public R<List<UserTrendsVO>> userTrends(@RequestBody List<String> 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<List<Integer>> listR = orderClient.queryIdsBycode(cityList);
            return R.ok(userService.userTrends1(cityList,listR.getData()));
        }
        return R.ok(userService.userTrends(cityList));
    }
    @Resource
    private FranchiseeService franchiseeService;
    /**
     * 回收订单统计
     *
     * @param orderCount 查询所需参数
     */
    @RequiresPermissions("homepage")
    @ApiOperation(value = "后台-回收订单统计", tags = {"后台-首页"})
    @PostMapping(value = "/orderCountHome")
    public R<OrderResultVO> orderCountHome(@RequestBody OrderCountRequest orderCount) {
        return R.ok(orderService.orderCountHome(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());
            }
        }
        Integer franchiseeId = loginUser.getSysUser().getFranchiseeId();
        String[] siteIds = new String[0];
        if (franchiseeId!=null) {
            Franchisee byId = franchiseeService.getById(franchiseeId);
            siteIds = byId.getSiteIds().split(",");
            orderCount.setSiteIds(siteIds);
            if (loginUser.getIsFranchisee() && siteIds.length == 0) {
                return R.ok(new OrderResultVO());
            }
        }
        orderCount.setSiteIds(siteIds);
        return orderClient.orderCountHome(orderCount);
    }
    /**
@@ -74,9 +154,25 @@
     *
     * @param cityList 城市集合
     */
    @RequiresPermissions("homepage")
    @ApiOperation(value = "后台-师傅接单排行", tags = {"后台-首页"})
    @PostMapping(value = "/workerRanking")
    public R<List<MasterWorkerRankVO>> workerRanking(@RequestBody List<String> 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<MasterWorkerRankVO> masterWorkerRankVOS = masterWorkerService.workerRanking(cityList);
        if (masterWorkerRankVOS.size()>10){
            return R.ok(masterWorkerRankVOS.subList(0,10));
        }
        return R.ok(masterWorkerService.workerRanking(cityList));
    }