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 com.ebike.feign.model.dto.FeignEbikePaymentAmountDto; 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()); } /** * 根据车辆编号修改当前订单金额 * * @param dto 车辆请求参数 */ @PostMapping("updateOrderAmount") public JsonResult updateOrderAmount(@RequestBody @Validated FeignEbikePaymentAmountDto dto) { JsonResult jsonResult = userFeignClient.updateOrderAmount(dto); if (jsonResult.getCode() != Code.SUCCESS) { throw new EbikeException(jsonResult.getMessage()); } return JsonResult.success(); } }