62 lines
2.1 KiB
Java

package com.cdzy.operations.controller;
import cn.dev33.satoken.stp.StpUtil;
import com.cdzy.common.enums.Code;
import com.cdzy.common.ex.EbikeException;
import com.cdzy.common.model.response.CommonStaffInfo;
import com.cdzy.common.model.response.JsonResult;
import com.ebike.feign.clients.UserFeignClient;
import com.ebike.feign.model.dto.FeignEbikeOrderStatisticsDto;
import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
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 java.util.Collections;
import java.util.Optional;
/**
* 用户订单统计 控制层
*
* @author yanglei
* @since 2026-01-16 15:15
*/
@RestController
@RequestMapping("/statistics")
public class EbikeStatisticsController {
@Resource
private UserFeignClient userFeignClient;
/**
* 查询用户订单统计
*
* @param dto 参数参数
* @return 用户订单数据统计
*/
@PostMapping("/getOrderStatistics")
public JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) {
long staffId = StpUtil.getLoginIdAsLong();
CommonStaffInfo staffInfo = StpUtil.getSession().getModel(String.valueOf(staffId), CommonStaffInfo.class);
if (staffInfo == null) {
throw new EbikeException("当前用户信息不存在");
}
boolean isSuperAdmin = Optional.ofNullable(staffInfo.getRoles())
.orElse(Collections.emptyList())
.stream()
.anyMatch(role -> "super_admin".equals(role.getRoleCode()));
// 判断是否超级管理员
if (!isSuperAdmin) {
dto.setOperatorId(staffInfo.getOperatorId());
}
JsonResult<?> jsonResult = userFeignClient.getOrderStatistics(dto);
if (jsonResult.getCode() != Code.SUCCESS) {
throw new EbikeException(jsonResult.getMessage());
}
return JsonResult.success(jsonResult.getData());
}
}