Compare commits

..

No commits in common. "a263b9b595be08e03c63516ce742abaef7415217fa9dda9cb7d637b73b35b463" and "fbb194b4375ac8ee25cd23c2860abd242bf02d741d08128f9378ba9d848d6bc5" have entirely different histories.

8 changed files with 29 additions and 63 deletions

View File

@ -1,14 +1,15 @@
package com.ebike.feign.model.vo; package com.ebike.feign.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDateTime;
import java.util.List;
/** /**
* @author yanglei * @author yanglei
@ -20,11 +21,24 @@ import java.util.List;
@AllArgsConstructor @AllArgsConstructor
public class FeignEbikeOrderStatisticsVo implements Serializable { public class FeignEbikeOrderStatisticsVo implements Serializable {
private List<Long> operatorId; @Serial
private static final long serialVersionUID = 1L;
private List<LocalDate> times; /**
* 运营商id
*/
private Long operatorId;
private List<Integer> orderCounts; /**
* 订单数量
*/
private Integer orderCount;
private List<BigDecimal> orderAmounts; /**
* 订单金额
*/
private BigDecimal orderAmount;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;
} }

View File

@ -15,8 +15,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
/** /**
* 用户订单统计 控制层
*
* @author yanglei * @author yanglei
* @since 2026-01-16 15:15 * @since 2026-01-16 15:15
*/ */
@ -35,8 +33,8 @@ public class EbikeStatisticsController {
*/ */
@PostMapping("/getOrderStatistics") @PostMapping("/getOrderStatistics")
public JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) { public JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) {
long staffId = StpUtil.getLoginIdAsLong(); Long staffId = StpUtil.getLoginIdAsLong();
CommonStaffInfo staffInfo = StpUtil.getSession().getModel(String.valueOf(staffId), CommonStaffInfo.class); CommonStaffInfo staffInfo = StpUtil.getSession().getModel(staffId.toString(), CommonStaffInfo.class);
dto.setOperatorId(staffInfo.getOperatorId()); dto.setOperatorId(staffInfo.getOperatorId());
JsonResult<?> jsonResult = userFeignClient.getOrderStatistics(dto); JsonResult<?> jsonResult = userFeignClient.getOrderStatistics(dto);
if (jsonResult.getCode() != Code.SUCCESS) { if (jsonResult.getCode() != Code.SUCCESS) {

View File

@ -168,7 +168,7 @@ public class EbikeOrderController {
*/ */
@PostMapping("/api/getOrderStatistics") @PostMapping("/api/getOrderStatistics")
public JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) { public JsonResult<?> getOrderStatistics(@RequestBody @Validated FeignEbikeOrderStatisticsDto dto) {
FeignEbikeOrderStatisticsVo result = ebikeOrderService.getOrderStatistics(dto); List<FeignEbikeOrderStatisticsVo> result = ebikeOrderService.getOrderStatistics(dto);
return JsonResult.success(result); return JsonResult.success(result);
} }
} }

View File

@ -1,8 +1,8 @@
package com.cdzy.user.mapper; package com.cdzy.user.mapper;
import com.cdzy.user.model.entity.EbikeOrder; import com.cdzy.user.model.entity.EbikeOrder;
import com.cdzy.user.model.vo.EbikeOrderStatisticsVo;
import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo; import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo;
import com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo;
import com.mybatisflex.core.BaseMapper; import com.mybatisflex.core.BaseMapper;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -33,5 +33,5 @@ public interface EbikeOrderMapper extends BaseMapper<EbikeOrder> {
* @param endTime 结束时间 * @param endTime 结束时间
* @return 订单数据及订单金额 * @return 订单数据及订单金额
*/ */
List<EbikeOrderStatisticsVo> getOrderStatistics(Long operatorId, LocalDateTime startTime, LocalDateTime endTime); List<FeignEbikeOrderStatisticsVo> getOrderStatistics(Long operatorId, LocalDateTime startTime, LocalDateTime endTime);
} }

View File

@ -1,38 +0,0 @@
package com.cdzy.user.model.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* @author yanglei
* @since 2026-01-16 15:43
*/
@Data
public class EbikeOrderStatisticsVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 运营商id
*/
private Long operatorId;
/**
* 订单数量
*/
private Integer orderCount;
/**
* 订单金额
*/
private BigDecimal orderAmount;
@JsonFormat(pattern = "yyyy-MM-dd")
private LocalDateTime createTime;
}

View File

@ -123,5 +123,5 @@ public interface EbikeOrderService extends IService<EbikeOrder> {
* @param dto 订单请求参数 * @param dto 订单请求参数
* @return 订单数据及订单金额 * @return 订单数据及订单金额
*/ */
FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto); List<FeignEbikeOrderStatisticsVo> getOrderStatistics(FeignEbikeOrderStatisticsDto dto);
} }

View File

@ -20,7 +20,6 @@ import com.cdzy.user.model.entity.EbikeOrderDetail;
import com.cdzy.user.model.entity.EbikePayment; import com.cdzy.user.model.entity.EbikePayment;
import com.cdzy.user.model.vo.EbikeBikeInfoVo; import com.cdzy.user.model.vo.EbikeBikeInfoVo;
import com.cdzy.user.model.vo.EbikeOrderDetailVo; import com.cdzy.user.model.vo.EbikeOrderDetailVo;
import com.cdzy.user.model.vo.EbikeOrderStatisticsVo;
import com.cdzy.user.model.vo.EbikePaymentCostDetailVo; import com.cdzy.user.model.vo.EbikePaymentCostDetailVo;
import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo; import com.cdzy.user.model.vo.EbikeRevenueStatisticsVo;
import com.cdzy.user.model.vo.EbikeUserAllOrdersVo; import com.cdzy.user.model.vo.EbikeUserAllOrdersVo;
@ -52,7 +51,6 @@ import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.stream.Collectors;
import static com.cdzy.user.model.entity.table.EbikeOrderTableDef.EBIKE_ORDER; import static com.cdzy.user.model.entity.table.EbikeOrderTableDef.EBIKE_ORDER;
import static com.cdzy.user.model.entity.table.EbikeRefundTableDef.EBIKE_REFUND; import static com.cdzy.user.model.entity.table.EbikeRefundTableDef.EBIKE_REFUND;
@ -358,20 +356,14 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
} }
@Override @Override
public FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto) { public List<FeignEbikeOrderStatisticsVo> getOrderStatistics(FeignEbikeOrderStatisticsDto dto) {
TimeRangeEnum timeRange = TimeRangeEnum.fromCode(dto.getTimeRange()); TimeRangeEnum timeRange = TimeRangeEnum.fromCode(dto.getTimeRange());
LocalDateTime[] range = timeRange.getRange(); LocalDateTime[] range = timeRange.getRange();
List<EbikeOrderStatisticsVo> orderStatistics = this.mapper.getOrderStatistics( return this.mapper.getOrderStatistics(
dto.getOperatorId(), dto.getOperatorId(),
range[0], range[0],
range[1] range[1]
); );
return FeignEbikeOrderStatisticsVo.builder()
.operatorId(orderStatistics.stream().map(EbikeOrderStatisticsVo::getOperatorId).collect(Collectors.toList()))
.times(orderStatistics.stream().map(vo -> vo.getCreateTime().toLocalDate()).collect(Collectors.toList()))
.orderCounts(orderStatistics.stream().map(EbikeOrderStatisticsVo::getOrderCount).collect(Collectors.toList()))
.orderAmounts(orderStatistics.stream().map(EbikeOrderStatisticsVo::getOrderAmount).collect(Collectors.toList()))
.build();
} }
/** /**

View File

@ -56,7 +56,7 @@
</select> </select>
<select id="getOrderStatistics" resultType="com.cdzy.user.model.vo.EbikeOrderStatisticsVo"> <select id="getOrderStatistics" resultType="com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo">
SELECT SELECT
operator_id AS operatorId, operator_id AS operatorId,
create_time::date::timestamp AS createTime, create_time::date::timestamp AS createTime,