用户订单金额及数量统计
This commit is contained in:
parent
fbb194b437
commit
c893cc47f4
@ -1,15 +1,14 @@
|
|||||||
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.LocalDateTime;
|
import java.time.LocalDate;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author yanglei
|
* @author yanglei
|
||||||
@ -21,24 +20,11 @@ import java.time.LocalDateTime;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class FeignEbikeOrderStatisticsVo implements Serializable {
|
public class FeignEbikeOrderStatisticsVo implements Serializable {
|
||||||
|
|
||||||
@Serial
|
private List<Long> operatorId;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,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(staffId.toString(), CommonStaffInfo.class);
|
CommonStaffInfo staffInfo = StpUtil.getSession().getModel(String.valueOf(staffId), 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) {
|
||||||
|
|||||||
@ -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) {
|
||||||
List<FeignEbikeOrderStatisticsVo> result = ebikeOrderService.getOrderStatistics(dto);
|
FeignEbikeOrderStatisticsVo result = ebikeOrderService.getOrderStatistics(dto);
|
||||||
return JsonResult.success(result);
|
return JsonResult.success(result);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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<FeignEbikeOrderStatisticsVo> getOrderStatistics(Long operatorId, LocalDateTime startTime, LocalDateTime endTime);
|
List<EbikeOrderStatisticsVo> getOrderStatistics(Long operatorId, LocalDateTime startTime, LocalDateTime endTime);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,38 @@
|
|||||||
|
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;
|
||||||
|
}
|
||||||
@ -123,5 +123,5 @@ public interface EbikeOrderService extends IService<EbikeOrder> {
|
|||||||
* @param dto 订单请求参数
|
* @param dto 订单请求参数
|
||||||
* @return 订单数据及订单金额
|
* @return 订单数据及订单金额
|
||||||
*/
|
*/
|
||||||
List<FeignEbikeOrderStatisticsVo> getOrderStatistics(FeignEbikeOrderStatisticsDto dto);
|
FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -20,6 +20,7 @@ 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;
|
||||||
@ -51,6 +52,7 @@ 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;
|
||||||
@ -356,14 +358,20 @@ public class EbikeOrderServiceImpl extends ServiceImpl<EbikeOrderMapper, EbikeOr
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FeignEbikeOrderStatisticsVo> getOrderStatistics(FeignEbikeOrderStatisticsDto dto) {
|
public FeignEbikeOrderStatisticsVo getOrderStatistics(FeignEbikeOrderStatisticsDto dto) {
|
||||||
TimeRangeEnum timeRange = TimeRangeEnum.fromCode(dto.getTimeRange());
|
TimeRangeEnum timeRange = TimeRangeEnum.fromCode(dto.getTimeRange());
|
||||||
LocalDateTime[] range = timeRange.getRange();
|
LocalDateTime[] range = timeRange.getRange();
|
||||||
return this.mapper.getOrderStatistics(
|
List<EbikeOrderStatisticsVo> orderStatistics = 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();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -56,7 +56,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<select id="getOrderStatistics" resultType="com.ebike.feign.model.vo.FeignEbikeOrderStatisticsVo">
|
<select id="getOrderStatistics" resultType="com.cdzy.user.model.vo.EbikeOrderStatisticsVo">
|
||||||
SELECT
|
SELECT
|
||||||
operator_id AS operatorId,
|
operator_id AS operatorId,
|
||||||
create_time::date::timestamp AS createTime,
|
create_time::date::timestamp AS createTime,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user