xp-robotaxi-api/src/main/java/com/xiaopeng/api/dto/order/GetOrderNumDto.java
New file @@ -0,0 +1,18 @@ package com.xiaopeng.api.dto.order; import io.swagger.annotations.ApiModel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @ApiModel(value = "获取订单数量") @AllArgsConstructor @NoArgsConstructor public class GetOrderNumDto { // 时间参数 private String timeStr; // 开通城市ID private Long openCityId; } xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/order/XpOrderClient.java
@@ -1,5 +1,6 @@ package com.xiaopeng.api.feignClient.order; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.factory.order.XpOrderClientFallbackFactory; @@ -76,11 +77,11 @@ /** * 获取订单数量 * * @param timeStr 时间 * @param * @return 订单数量 */ @PostMapping("/inner/order/getOrderNum") R<Integer> getOrderNum(String timeStr); R<Integer> getOrderNum(@RequestBody GetOrderNumDto dto); } xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/XpPricingUtil.java
@@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.feignClient.order.XpOrderClient; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.common.redis.service.RedisService; @@ -66,7 +67,7 @@ // value=时间 String timeStr = dynamicPriceObj.toString(); // 判断当前距离这个时间范围的新增订单数(排除取消) / 上浮数量 算出应该增加的价格率 R<Integer> r = xpOrderClient.getOrderNum(timeStr); R<Integer> r = xpOrderClient.getOrderNum(new GetOrderNumDto(timeStr,openCityId)); if(r.getData()==200){ int num = r.getData(); // X单上升一次调价 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -4,6 +4,7 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.hutool.core.bean.BeanUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.model.order.XpOrder; @@ -105,12 +106,11 @@ /** * 获取订单数量 * * @param timeStr 时间 * @return 订单数量 */ @PostMapping("/inner/order/getOrderNum") public R<Integer> getOrderNum(String timeStr){ return R.ok(xpOrderService.getOrderNum(timeStr)); public R<Integer> getOrderNum(@RequestBody GetOrderNumDto dto){ return R.ok(xpOrderService.getOrderNum(dto)); } /** xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java
@@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.model.order.XpOrder; @@ -167,9 +168,8 @@ /** * 获取订单数量 * @param timeStr 时间 * @return */ Integer getOrderNum(String timeStr); Integer getOrderNum(GetOrderNumDto dto); } xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -9,6 +9,7 @@ import com.google.common.collect.ImmutableMap; import com.xiaopeng.api.dto.account.GetUserCouponDto; import com.xiaopeng.api.dto.operation.LonLatDto; import com.xiaopeng.api.dto.order.GetOrderNumDto; import com.xiaopeng.api.dto.order.HistoryEndPointsDto; import com.xiaopeng.api.dto.order.HistoryStartPointsDto; import com.xiaopeng.api.dto.statistics.DailyCountDTO; @@ -910,17 +911,29 @@ return R.ok(); } /** * 添加订单 * @param xpOrder * @return */ @Override public boolean addOrder(XpOrder xpOrder) { int insert = this.baseMapper.insert(xpOrder); if (insert <= 0) { return false; } return true; } /** * 获取订单数量 * @param dto * @return */ @Override public Integer getOrderNum(String timeStr) { this.baseMapper.selectCount(new LambdaQueryWrapper<XpOrder>()); return 0; public Integer getOrderNum(GetOrderNumDto dto) { Long num = this.baseMapper.selectCount(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getCityId, dto.getOpenCityId()).between(BaseModel::getCreateTime, dto.getTimeStr(), new Date())); return num.intValue(); }