2026-01-16 15:37:45 +08:00
|
|
|
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;
|
|
|
|
|
|
2026-01-16 17:13:24 +08:00
|
|
|
import java.util.Collections;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
|
2026-01-16 15:37:45 +08:00
|
|
|
/**
|
2026-01-16 16:03:43 +08:00
|
|
|
* 用户订单统计 控制层
|
|
|
|
|
*
|
2026-01-16 15:37:45 +08:00
|
|
|
* @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) {
|
2026-01-16 16:03:09 +08:00
|
|
|
long staffId = StpUtil.getLoginIdAsLong();
|
|
|
|
|
CommonStaffInfo staffInfo = StpUtil.getSession().getModel(String.valueOf(staffId), CommonStaffInfo.class);
|
2026-01-16 17:13:24 +08:00
|
|
|
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());
|
|
|
|
|
}
|
2026-01-16 15:37:45 +08:00
|
|
|
JsonResult<?> jsonResult = userFeignClient.getOrderStatistics(dto);
|
|
|
|
|
if (jsonResult.getCode() != Code.SUCCESS) {
|
|
|
|
|
throw new EbikeException(jsonResult.getMessage());
|
|
|
|
|
}
|
|
|
|
|
return JsonResult.success(jsonResult.getData());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|