package com.ruoyi.admin.controller;
|
|
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.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.Arrays;
|
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<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));
|
}
|
|
/**
|
* 用户增量
|
*
|
* @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) {
|
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);
|
}
|
|
/**
|
* 师傅接单排行
|
*
|
* @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));
|
}
|
|
}
|