增加用户和门店查询订单接口
This commit is contained in:
@ -15,7 +15,9 @@ public enum OrderStatusEnum {
|
||||
WAIT_PICK("WAIT_PICK", "待取车"),
|
||||
RENT_ING("RENT_ING", "租赁中"),
|
||||
WAIT_RETURN("WAIT_RETURN", "待还车"),
|
||||
RENT_END("RENT_END", "已结束"),
|
||||
RENT_OVERDUE("RENT_OVERDUE", "逾期"),
|
||||
AUTO_END("AUTO_END", "自动结束"),
|
||||
MANUAL_END("MANUAL_END", "手动结束"),
|
||||
;
|
||||
private final String code;
|
||||
|
||||
|
||||
@ -1,10 +1,8 @@
|
||||
package com.sczx.order.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.sczx.order.common.Result;
|
||||
import com.sczx.order.dto.OrderDTO;
|
||||
import com.sczx.order.dto.RentCarOrderReq;
|
||||
import com.sczx.order.dto.RentCarOrderResultDTO;
|
||||
import com.sczx.order.dto.ReturnCarReq;
|
||||
import com.sczx.order.dto.*;
|
||||
import com.sczx.order.service.OrderService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@ -24,6 +22,14 @@ public class ClientOrderController {
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
|
||||
@ApiOperation(value = "查询用户订单列表")
|
||||
@PostMapping("/pageCustOrder")
|
||||
public Result<IPage<OrderSimpleDTO>> pageCustOrder(@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
|
||||
@RequestBody OrderQueryReq orderQueryReq){
|
||||
return Result.ok(orderService.pageStoreOrder(pageNo, pageSize, orderQueryReq));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "生成租车订单")
|
||||
@PostMapping("/confirmRentalCarOrder")
|
||||
public Result<RentCarOrderResultDTO> confirmRentalCarOrder(@RequestBody RentCarOrderReq rentCarOrderReq){
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package com.sczx.order.controller;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.sczx.order.common.Result;
|
||||
import com.sczx.order.dto.*;
|
||||
import com.sczx.order.service.OrderService;
|
||||
@ -21,6 +22,20 @@ public class StoreOrderController {
|
||||
@Autowired
|
||||
private OrderService orderService;
|
||||
|
||||
@ApiOperation(value = "门店订单统计")
|
||||
@GetMapping("/storeOrderStatistics")
|
||||
public Result<StoreOrderStatisticsDTO> storeOrderStatistics(@RequestParam("storeId") Long storeId){
|
||||
return Result.ok(orderService.storeOrderStatistics(storeId));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "查询门店订单列表")
|
||||
@PostMapping("/pageStoreOrder")
|
||||
public Result<IPage<OrderSimpleDTO>> pageStoreOrder(@RequestParam(name = "pageNo", required = false, defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(name = "pageSize", required = false, defaultValue = "10") Integer pageSize,
|
||||
@RequestBody OrderQueryReq storeOrderQueryReq){
|
||||
return Result.ok(orderService.pageStoreOrder(pageNo, pageSize, storeOrderQueryReq));
|
||||
}
|
||||
|
||||
@ApiOperation(value = "绑定车辆")
|
||||
@PostMapping("/bindCarToOrder")
|
||||
public Result<OrderDTO> bindCarToOrder(@RequestBody BindCarToOrderReq bindCarToOrderReq){
|
||||
|
||||
@ -11,6 +11,6 @@ public class BindCarToOrderReq {
|
||||
@ApiModelProperty(value = "订单编号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty(value = "车辆ID")
|
||||
private Long vehicleId;
|
||||
@ApiModelProperty(value = "车辆编号")
|
||||
private String vin;
|
||||
}
|
||||
|
||||
25
src/main/java/com/sczx/order/dto/OrderQueryReq.java
Normal file
25
src/main/java/com/sczx/order/dto/OrderQueryReq.java
Normal file
@ -0,0 +1,25 @@
|
||||
package com.sczx.order.dto;
|
||||
|
||||
import com.sczx.order.common.enums.OrderStatusEnum;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Author: 张黎
|
||||
* @Date: 2025/07/30/16:02
|
||||
* @Description:
|
||||
*/
|
||||
@ApiModel(value = "门店订单查询请求参数")
|
||||
@Data
|
||||
public class OrderQueryReq {
|
||||
|
||||
@ApiModelProperty("门店ID")
|
||||
private Long storeId;
|
||||
|
||||
@ApiModelProperty("用户id")
|
||||
private Long customerId;
|
||||
|
||||
@ApiModelProperty("订单状态")
|
||||
private OrderStatusEnum orderStatus;
|
||||
}
|
||||
59
src/main/java/com/sczx/order/dto/OrderSimpleDTO.java
Normal file
59
src/main/java/com/sczx/order/dto/OrderSimpleDTO.java
Normal file
@ -0,0 +1,59 @@
|
||||
package com.sczx.order.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.sczx.order.thirdpart.dto.CarModelSimpleDTO;
|
||||
import com.sczx.order.thirdpart.dto.CompanyStoreDTO;
|
||||
import com.sczx.order.thirdpart.dto.RentBatteyRuleDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author: 张黎
|
||||
* @Date: 2025/07/25/17:18
|
||||
* @Description:
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "简单订单列表dto", description = "租车订单信息")
|
||||
public class OrderSimpleDTO {
|
||||
|
||||
@ApiModelProperty("订单ID(主键)")
|
||||
private Long orderId;
|
||||
|
||||
@ApiModelProperty("订单编号")
|
||||
private String orderNo;
|
||||
|
||||
@ApiModelProperty("订单状态:下单未提车、租赁中、已结束-自动、已结束-手动")
|
||||
private String orderStatus;
|
||||
|
||||
@ApiModelProperty("车型ID")
|
||||
private Long carModelId;
|
||||
|
||||
@ApiModelProperty("车型名称")
|
||||
private String modelName;
|
||||
|
||||
@ApiModelProperty("品牌名称")
|
||||
private String brandName;
|
||||
|
||||
@ApiModelProperty("车型图片")
|
||||
private String image;
|
||||
|
||||
@ApiModelProperty("订单状态标签")
|
||||
private String orderStatusLabel;
|
||||
|
||||
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@ApiModelProperty("首次下单时间")
|
||||
private LocalDateTime firstOrderTime;
|
||||
|
||||
|
||||
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
@ApiModelProperty("还车时间")
|
||||
private LocalDateTime endRentTime;
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,35 @@
|
||||
package com.sczx.order.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Author: 张黎
|
||||
* @Date: 2025/07/30/15:01
|
||||
* @Description:
|
||||
*/
|
||||
@ApiModel(value = "门店订单统计")
|
||||
@Data
|
||||
public class StoreOrderStatisticsDTO {
|
||||
|
||||
@ApiModelProperty("订单总数")
|
||||
private Integer totalOrders;
|
||||
|
||||
@ApiModelProperty("本月完成订单数")
|
||||
private Integer monthlyCompletedOrders;
|
||||
|
||||
@ApiModelProperty("本月完成订单总金额")
|
||||
private BigDecimal monthlyOrderAmount;
|
||||
|
||||
@ApiModelProperty("待提车订单数")
|
||||
private Integer pendingPickupCount;
|
||||
|
||||
@ApiModelProperty("待还车订单数")
|
||||
private Integer pendingReturnCount;
|
||||
|
||||
@ApiModelProperty("逾期订单数")
|
||||
private Integer overdueCount;
|
||||
}
|
||||
@ -1,7 +1,12 @@
|
||||
package com.sczx.order.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.sczx.order.dto.OrderSimpleDTO;
|
||||
import com.sczx.order.dto.StoreOrderStatisticsDTO;
|
||||
import com.sczx.order.po.OrderMainPO;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@ -12,5 +17,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
* @since 2025-07-25 17:16:50
|
||||
*/
|
||||
public interface OrderMainMapper extends BaseMapper<OrderMainPO> {
|
||||
StoreOrderStatisticsDTO storeOrderStatistics(@Param("storeId") Long storeId);
|
||||
|
||||
IPage<OrderSimpleDTO> pageQueryOrder(Page<OrderSimpleDTO> page, @Param("customerId") Long customerId, @Param("storeId") Long storeId, @Param("orderStatus") String orderStatus);
|
||||
}
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
package com.sczx.order.repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.sczx.order.dto.OrderSimpleDTO;
|
||||
import com.sczx.order.dto.StoreOrderStatisticsDTO;
|
||||
import com.sczx.order.po.OrderMainPO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
@ -12,5 +15,17 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
* @since 2025-07-25 17:16:50
|
||||
*/
|
||||
public interface OrderMainRepo extends IService<OrderMainPO> {
|
||||
StoreOrderStatisticsDTO storeOrderStatistics(Long storeId);
|
||||
|
||||
/**
|
||||
* 分页查询订单列表
|
||||
*
|
||||
* @param pageNo 页码
|
||||
* @param pageSize 每页条数
|
||||
* @param customerId 客户ID
|
||||
* @param storeId 门店ID
|
||||
* @param orderStatus 订单状态
|
||||
* @return
|
||||
*/
|
||||
IPage<OrderSimpleDTO> pageQueryOrder(Integer pageNo, Integer pageSize, Long customerId, Long storeId, String orderStatus);
|
||||
}
|
||||
|
||||
@ -1,5 +1,9 @@
|
||||
package com.sczx.order.repository.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.sczx.order.dto.OrderSimpleDTO;
|
||||
import com.sczx.order.dto.StoreOrderStatisticsDTO;
|
||||
import com.sczx.order.po.OrderMainPO;
|
||||
import com.sczx.order.mapper.OrderMainMapper;
|
||||
import com.sczx.order.repository.OrderMainRepo;
|
||||
@ -17,4 +21,14 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
public class OrderMainRepoImpl extends ServiceImpl<OrderMainMapper, OrderMainPO> implements OrderMainRepo {
|
||||
|
||||
@Override
|
||||
public StoreOrderStatisticsDTO storeOrderStatistics(Long storeId) {
|
||||
return this.getBaseMapper().storeOrderStatistics(storeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<OrderSimpleDTO> pageQueryOrder(Integer pageNo, Integer pageSize, Long customerId, Long storeId, String orderStatus) {
|
||||
Page<OrderSimpleDTO> page = new Page<>(pageNo, pageSize);
|
||||
return this.getBaseMapper().pageQueryOrder(page, customerId, storeId, orderStatus);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.sczx.order.service;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.sczx.order.dto.*;
|
||||
|
||||
public interface OrderService {
|
||||
@ -40,5 +41,24 @@ public interface OrderService {
|
||||
*/
|
||||
OrderDTO confirmReturnCar(ReturnCarReq returnCarReq);
|
||||
|
||||
/**
|
||||
* 门店订单统计
|
||||
* @param storeId
|
||||
* @return
|
||||
*/
|
||||
StoreOrderStatisticsDTO storeOrderStatistics(Long storeId);
|
||||
|
||||
/**
|
||||
* 查询门店订单列表
|
||||
* @param orderQueryReq
|
||||
* @return
|
||||
*/
|
||||
IPage<OrderSimpleDTO> pageCustOrder(Integer pageNo, Integer pageSize, OrderQueryReq orderQueryReq);
|
||||
|
||||
/**
|
||||
* 查询门店订单列表
|
||||
* @param orderQueryReq
|
||||
* @return
|
||||
*/
|
||||
IPage<OrderSimpleDTO> pageStoreOrder(Integer pageNo, Integer pageSize, OrderQueryReq orderQueryReq);
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.sczx.order.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.sczx.order.common.constant.RedisKeyConstants;
|
||||
import com.sczx.order.common.enums.MiniProgramTypeEnum;
|
||||
import com.sczx.order.common.enums.OrderStatusEnum;
|
||||
@ -79,7 +80,7 @@ public class OrderServiceImpl implements OrderService {
|
||||
//TODO 这里保存订单要做事物处理
|
||||
//生成订单主表
|
||||
OrderMainPO orderMainPO = OrderConvert.INSTANCE.subOrderToPo(rentCarOrderReq, userInfoDTO, rentCarRuleDTO);
|
||||
orderMainPO.setOperatorId(Long.valueOf(companyStoreDTO.getId().toString()));
|
||||
orderMainPO.setOperatorId(Long.valueOf(companyStoreDTO.getOperatingCompanyId()));
|
||||
orderMainPO.setOrderNo(OrderUtil.generateOrderNo());
|
||||
//TODO 默认应该是待支付状态,这里先默认支付完成待取车
|
||||
// orderMainPO.setOrderStatus(OrderStatusEnum.WAIT_PAY.getCode());
|
||||
@ -189,11 +190,12 @@ public class OrderServiceImpl implements OrderService {
|
||||
|
||||
@Override
|
||||
public OrderDTO bindCarToOrder(BindCarToOrderReq bindCarToOrderReq) {
|
||||
|
||||
//变更订单状态,记录租车时间
|
||||
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_ING.getCode());
|
||||
updateWrapper.set(OrderMainPO::getStartRentTime, LocalDateTime.now());
|
||||
updateWrapper.set(OrderMainPO::getVehicleId, bindCarToOrderReq.getVehicleId());
|
||||
// updateWrapper.set(OrderMainPO::getVehicleId, bindCarToOrderReq.getVehicleId());
|
||||
updateWrapper.eq(OrderMainPO::getOrderNo, bindCarToOrderReq.getOrderNo());
|
||||
orderMainRepo.update(updateWrapper);
|
||||
//TODO 变更车辆状态
|
||||
@ -215,11 +217,27 @@ public class OrderServiceImpl implements OrderService {
|
||||
public OrderDTO confirmReturnCar(ReturnCarReq returnCarReq) {
|
||||
//变更订单状态,记录还车时间
|
||||
LambdaUpdateWrapper<OrderMainPO> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.RENT_END.getCode());
|
||||
updateWrapper.set(OrderMainPO::getOrderStatus, OrderStatusEnum.AUTO_END.getCode());
|
||||
updateWrapper.set(OrderMainPO::getActEndRentTime, LocalDateTime.now());
|
||||
updateWrapper.eq(OrderMainPO::getOrderNo, returnCarReq.getOrderNo());
|
||||
orderMainRepo.update(updateWrapper);
|
||||
//TODO 变更车辆状态
|
||||
return getOrderInfoByOrderNo(returnCarReq.getOrderNo());
|
||||
}
|
||||
|
||||
@Override
|
||||
public StoreOrderStatisticsDTO storeOrderStatistics(Long storeId) {
|
||||
return orderMainRepo.storeOrderStatistics(storeId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<OrderSimpleDTO> pageCustOrder(Integer pageNo, Integer pageSize, OrderQueryReq orderQueryReq) {
|
||||
orderQueryReq.setCustomerId(Long.valueOf(jwtUtil.getUserInfoFromToken().getUserId().toString()));
|
||||
return orderMainRepo.pageQueryOrder(pageNo, pageSize, orderQueryReq.getCustomerId(), orderQueryReq.getStoreId(), orderQueryReq.getOrderStatus().getCode());
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<OrderSimpleDTO> pageStoreOrder(Integer pageNo, Integer pageSize, OrderQueryReq storeOrderQueryReq) {
|
||||
return orderMainRepo.pageQueryOrder(pageNo, pageSize, storeOrderQueryReq.getCustomerId(), storeOrderQueryReq.getStoreId(), storeOrderQueryReq.getOrderStatus().getCode());
|
||||
}
|
||||
}
|
||||
|
||||
40
src/main/resources/doc/dbInit.sql
Normal file
40
src/main/resources/doc/dbInit.sql
Normal file
@ -0,0 +1,40 @@
|
||||
CREATE TABLE `zc_order_main` (
|
||||
`order_id` bigint NOT NULL AUTO_INCREMENT COMMENT '订单ID(主键)',
|
||||
`order_no` varchar(50) NOT NULL COMMENT '订单编号',
|
||||
`order_status` varchar(20) NOT NULL COMMENT '订单状态:下单未提车、租赁中、已结束-自动、已结束-手动',
|
||||
`operator_id` bigint NOT NULL COMMENT '所属运营商ID',
|
||||
`store_id` bigint NOT NULL COMMENT '所属门店ID',
|
||||
`vehicle_id` bigint DEFAULT NULL COMMENT '车辆ID',
|
||||
`car_model_id` bigint NOT NULL COMMENT '车型ID',
|
||||
`customer_id` bigint NOT NULL COMMENT '客户id',
|
||||
`customer_name` varchar(50) NOT NULL COMMENT '客户姓名',
|
||||
`customer_phone` varchar(20) NOT NULL COMMENT '客户联系电话',
|
||||
`battery_type` varchar(50) DEFAULT '' COMMENT '选择的电池类型(48V标准版/100km,48V超长版/200km等)',
|
||||
`rental_type` varchar(20) NOT NULL COMMENT '租赁类型(时租/日租/按天数/以租代售)',
|
||||
`rental_days` int DEFAULT NULL COMMENT '租赁天数(当类型为"按天数"时使用)',
|
||||
`rental_price` decimal(10,2) NOT NULL COMMENT '租车价格(元)',
|
||||
`deposit_price` decimal(10,2) NOT NULL COMMENT '押金价格(元)',
|
||||
`overdue_fee` decimal(10,2) NOT NULL COMMENT '逾期金额(元)',
|
||||
`overdue_type` varchar(10) DEFAULT '按日计费' COMMENT '逾期计费类型(按日计费/按月计费)',
|
||||
`is_deposit_free` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否开通免押',
|
||||
`is_auto_deduct` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否开通代扣',
|
||||
`first_order_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '首次下单时间',
|
||||
`start_rent_time` datetime DEFAULT NULL COMMENT '开始计费时间',
|
||||
`end_rent_time` datetime DEFAULT NULL COMMENT '预计还车时间',
|
||||
`req_end_rent_time` datetime DEFAULT NULL COMMENT '申请还车时间',
|
||||
`act_end_rent_time` datetime DEFAULT NULL COMMENT '实际还车时间',
|
||||
`overdue_days` int NOT NULL DEFAULT '0' COMMENT '逾期天数',
|
||||
`renewal_times` int NOT NULL DEFAULT '0' COMMENT '续租次数',
|
||||
`charge_times` int NOT NULL DEFAULT '0' COMMENT '充电次数',
|
||||
`rent_car_rule_id` bigint DEFAULT NULL COMMENT '租车套餐id',
|
||||
`rent_battey_rule_id` bigint DEFAULT NULL COMMENT '租电套餐id',
|
||||
`end_order_time` datetime DEFAULT NULL COMMENT '订单结束时间',
|
||||
`del_flag` char(1) DEFAULT '0' COMMENT '删除标志(0代表存在 2代表删除)',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
PRIMARY KEY (`order_id`),
|
||||
KEY `idx_order_no` (`order_no`),
|
||||
KEY `idx_customer_id` (`customer_id`),
|
||||
KEY `idx_operator_id` (`operator_id`),
|
||||
KEY `idx_store_id` (`store_id`)
|
||||
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='租车订单信息';
|
||||
@ -2,4 +2,46 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.sczx.order.mapper.OrderMainMapper">
|
||||
|
||||
<select id="storeOrderStatistics" resultType="com.sczx.order.dto.StoreOrderStatisticsDTO">
|
||||
SELECT
|
||||
store_id,
|
||||
COUNT(*) as total_orders,
|
||||
SUM(CASE WHEN (status = 'AUTO_END' OR status = 'MANUAL_END') AND DATE_FORMAT(end_order_time, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') THEN 1 ELSE 0 END) as monthly_completed_orders,
|
||||
SUM(CASE WHEN (status = 'AUTO_END' OR status = 'MANUAL_END') AND DATE_FORMAT(end_order_time, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m') THEN order_amount ELSE 0 END) as monthly_order_amount,
|
||||
COUNT(CASE WHEN status = 'WAIT_RETURN' THEN 1 END) as pending_pickup_count,
|
||||
COUNT(CASE WHEN status = 'WAIT_RETURN' THEN 1 END) as pending_return_count,
|
||||
COUNT(CASE WHEN status = 'RENT_OVERDUE' THEN 1 END) as overdue_count
|
||||
FROM zc_order_main
|
||||
WHERE store_id = #{storeId}
|
||||
GROUP BY store_id
|
||||
</select>
|
||||
|
||||
<select id="pageQueryOrder" resultType="com.sczx.order.dto.OrderSimpleDTO">
|
||||
|
||||
SELECT
|
||||
o.order_id,
|
||||
o.order_no,
|
||||
o.status,
|
||||
o.first_order_time,
|
||||
o.end_rent_time,
|
||||
o.car_model_id,
|
||||
m.model_name,
|
||||
m.brand_name,
|
||||
m.image
|
||||
from zc_order_main o join zc_car_model m on o.car_model_id = m.id
|
||||
<where>
|
||||
<if test="customerId != null">
|
||||
and o.customer_id = #{customerId}
|
||||
</if>
|
||||
<if test="storeId != null">
|
||||
and o.store_id = #{storeId}
|
||||
</if>
|
||||
<if test="orderStatus != null and orderStatus!= ''">
|
||||
and o.status = #{orderStatus}
|
||||
</if>
|
||||
</where>
|
||||
order by o.update_time desc
|
||||
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
Reference in New Issue
Block a user