订单里面增加车辆图片信息
This commit is contained in:
@ -0,0 +1,20 @@
|
|||||||
|
package com.sczx.order.common.enums;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author: 张黎
|
||||||
|
* @Date: 2024/03/08/17:42
|
||||||
|
* @Description: 订单图片类型
|
||||||
|
*/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
public enum OrderCarImgTypeEnum {
|
||||||
|
RENT("RENT", "租车"),
|
||||||
|
RETURN("RETURN", "还车"),
|
||||||
|
;
|
||||||
|
private final String code;
|
||||||
|
|
||||||
|
private final String msg;
|
||||||
|
}
|
||||||
@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
|
||||||
@Builder
|
@Builder
|
||||||
@ApiModel(value = "绑定车辆到订单请求参数")
|
@ApiModel(value = "绑定车辆到订单请求参数")
|
||||||
@ -16,4 +18,7 @@ public class BindCarToOrderReq {
|
|||||||
|
|
||||||
@ApiModelProperty(value = "车辆编号")
|
@ApiModelProperty(value = "车辆编号")
|
||||||
private String vin;
|
private String vin;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "车辆照片")
|
||||||
|
private List<String> imageList;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -142,4 +142,7 @@ public class OrderDTO {
|
|||||||
|
|
||||||
@ApiModelProperty("租车子订单信息")
|
@ApiModelProperty("租车子订单信息")
|
||||||
private List<OrderSubDTO> orderSubDTOList;
|
private List<OrderSubDTO> orderSubDTOList;
|
||||||
|
|
||||||
|
@ApiModelProperty("订单车辆图片")
|
||||||
|
private List<String> orderCarImgList;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ import lombok.Data;
|
|||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@ApiModel(value = "订单详情dto", description = "租车订单详情信息")
|
@ApiModel(value = "订单详情dto", description = "租车订单详情信息")
|
||||||
@Data
|
@Data
|
||||||
@ -131,4 +132,7 @@ public class OrderDetailDTO {
|
|||||||
|
|
||||||
@ApiModelProperty("充电次数")
|
@ApiModelProperty("充电次数")
|
||||||
private Integer chargeTimes;
|
private Integer chargeTimes;
|
||||||
|
|
||||||
|
@ApiModelProperty("订单车辆图片")
|
||||||
|
private List<String> orderCarImgList;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
|
|||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ApiModel(value = "还车请求参数")
|
@ApiModel(value = "还车请求参数")
|
||||||
public class ReturnCarReq {
|
public class ReturnCarReq {
|
||||||
@ -11,4 +13,7 @@ public class ReturnCarReq {
|
|||||||
@ApiModelProperty(value = "订单编号")
|
@ApiModelProperty(value = "订单编号")
|
||||||
private String orderNo;
|
private String orderNo;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "车辆照片")
|
||||||
|
private List<String> imageList;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
16
src/main/java/com/sczx/order/mapper/OrderCarImgMapper.java
Normal file
16
src/main/java/com/sczx/order/mapper/OrderCarImgMapper.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.sczx.order.mapper;
|
||||||
|
|
||||||
|
import com.sczx.order.po.OrderCarImgPO;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 订单租车车辆图片信息 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangli
|
||||||
|
* @since 2025-08-07 21:15:07
|
||||||
|
*/
|
||||||
|
public interface OrderCarImgMapper extends BaseMapper<OrderCarImgPO> {
|
||||||
|
|
||||||
|
}
|
||||||
56
src/main/java/com/sczx/order/po/OrderCarImgPO.java
Normal file
56
src/main/java/com/sczx/order/po/OrderCarImgPO.java
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package com.sczx.order.po;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 订单租车车辆图片信息
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangli
|
||||||
|
* @since 2025-08-07 21:15:07
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@TableName("zc_order_car_img")
|
||||||
|
@ApiModel(value = "OrderCarImgPO对象", description = "订单租车车辆图片信息")
|
||||||
|
public class OrderCarImgPO implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@ApiModelProperty("主键id")
|
||||||
|
@TableId(value = "id", type = IdType.AUTO)
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("订单ID(外键)")
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
@ApiModelProperty("订单编号")
|
||||||
|
private String orderNo;
|
||||||
|
|
||||||
|
@ApiModelProperty("图片类型:RENT租车,RETURN还车")
|
||||||
|
private String imgType;
|
||||||
|
|
||||||
|
@ApiModelProperty("图片地址")
|
||||||
|
private String imgUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty("删除标志(0代表存在 2代表删除)")
|
||||||
|
private String delFlag;
|
||||||
|
|
||||||
|
@ApiModelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("更新时间")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
16
src/main/java/com/sczx/order/repository/OrderCarImgRepo.java
Normal file
16
src/main/java/com/sczx/order/repository/OrderCarImgRepo.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.sczx.order.repository;
|
||||||
|
|
||||||
|
import com.sczx.order.po.OrderCarImgPO;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 订单租车车辆图片信息 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangli
|
||||||
|
* @since 2025-08-07 21:15:07
|
||||||
|
*/
|
||||||
|
public interface OrderCarImgRepo extends IService<OrderCarImgPO> {
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,20 @@
|
|||||||
|
package com.sczx.order.repository.impl;
|
||||||
|
|
||||||
|
import com.sczx.order.po.OrderCarImgPO;
|
||||||
|
import com.sczx.order.mapper.OrderCarImgMapper;
|
||||||
|
import com.sczx.order.repository.OrderCarImgRepo;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 订单租车车辆图片信息 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author zhangli
|
||||||
|
* @since 2025-08-07 21:15:07
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class OrderCarImgRepoImpl extends ServiceImpl<OrderCarImgMapper, OrderCarImgPO> implements OrderCarImgRepo {
|
||||||
|
|
||||||
|
}
|
||||||
@ -10,8 +10,10 @@ import com.sczx.order.convert.OrderSubConvert;
|
|||||||
import com.sczx.order.dto.*;
|
import com.sczx.order.dto.*;
|
||||||
import com.sczx.order.exception.BizException;
|
import com.sczx.order.exception.BizException;
|
||||||
import com.sczx.order.exception.InnerException;
|
import com.sczx.order.exception.InnerException;
|
||||||
|
import com.sczx.order.po.OrderCarImgPO;
|
||||||
import com.sczx.order.po.OrderMainPO;
|
import com.sczx.order.po.OrderMainPO;
|
||||||
import com.sczx.order.po.OrderSubPO;
|
import com.sczx.order.po.OrderSubPO;
|
||||||
|
import com.sczx.order.repository.OrderCarImgRepo;
|
||||||
import com.sczx.order.repository.OrderMainRepo;
|
import com.sczx.order.repository.OrderMainRepo;
|
||||||
import com.sczx.order.repository.OrderSubRepo;
|
import com.sczx.order.repository.OrderSubRepo;
|
||||||
import com.sczx.order.service.OrderService;
|
import com.sczx.order.service.OrderService;
|
||||||
@ -27,6 +29,7 @@ import org.apache.commons.lang.StringUtils;
|
|||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
@ -58,6 +61,9 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private OrderCarImgRepo orderCarImgRepo;
|
||||||
|
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
@Override
|
@Override
|
||||||
public RentCarOrderResultDTO submitRentCarOrder(RentCarOrderReq rentCarOrderReq) {
|
public RentCarOrderResultDTO submitRentCarOrder(RentCarOrderReq rentCarOrderReq) {
|
||||||
@ -213,6 +219,14 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
List<OrderSubPO> orderSubPOList = orderSubRepo.list(orderSubLambdaQueryWrapper);
|
List<OrderSubPO> orderSubPOList = orderSubRepo.list(orderSubLambdaQueryWrapper);
|
||||||
List<OrderSubDTO> orderSubDTOList = OrderSubConvert.INSTANCE.posToDtos(orderSubPOList);
|
List<OrderSubDTO> orderSubDTOList = OrderSubConvert.INSTANCE.posToDtos(orderSubPOList);
|
||||||
orderDTO.setOrderSubDTOList(orderSubDTOList);
|
orderDTO.setOrderSubDTOList(orderSubDTOList);
|
||||||
|
|
||||||
|
//查询订单车辆图片
|
||||||
|
List<OrderCarImgPO> orderCarImgPOList = orderCarImgRepo.list(new LambdaQueryWrapper<OrderCarImgPO>().eq(OrderCarImgPO::getOrderId, orderDetailDTO.getOrderId()));
|
||||||
|
if(!CollectionUtils.isEmpty(orderCarImgPOList)){
|
||||||
|
List<String> orderCarImgList = orderCarImgPOList.stream().map(OrderCarImgPO::getImgUrl).collect(Collectors.toList());
|
||||||
|
orderDTO.setOrderCarImgList(orderCarImgList);
|
||||||
|
}
|
||||||
|
|
||||||
return orderDTO;
|
return orderDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -247,8 +261,12 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
SysDictDataDTO rentCarBatteyDictDataDTO = storeInteg.getDictDataByDicTypeAndValue("key_rental_type", orderDetailDTO.getDurationType().toString());
|
SysDictDataDTO rentCarBatteyDictDataDTO = storeInteg.getDictDataByDicTypeAndValue("key_rental_type", orderDetailDTO.getDurationType().toString());
|
||||||
orderDetailDTO.setDurationTypeLabel(Optional.ofNullable(rentCarBatteyDictDataDTO).map(SysDictDataDTO::getDictLabel).orElse(null));
|
orderDetailDTO.setDurationTypeLabel(Optional.ofNullable(rentCarBatteyDictDataDTO).map(SysDictDataDTO::getDictLabel).orElse(null));
|
||||||
}
|
}
|
||||||
|
//查询订单车辆图片
|
||||||
|
List<OrderCarImgPO> orderCarImgPOList = orderCarImgRepo.list(new LambdaQueryWrapper<OrderCarImgPO>().eq(OrderCarImgPO::getOrderId, orderDetailDTO.getOrderId()));
|
||||||
|
if(!CollectionUtils.isEmpty(orderCarImgPOList)){
|
||||||
|
List<String> orderCarImgList = orderCarImgPOList.stream().map(OrderCarImgPO::getImgUrl).collect(Collectors.toList());
|
||||||
|
orderDetailDTO.setOrderCarImgList(orderCarImgList);
|
||||||
|
}
|
||||||
return orderDetailDTO;
|
return orderDetailDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -309,6 +327,22 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
updateWrapper.set(OrderMainPO::getVehicleId, carDTO.getId());
|
updateWrapper.set(OrderMainPO::getVehicleId, carDTO.getId());
|
||||||
updateWrapper.eq(OrderMainPO::getOrderNo, bindCarToOrderReq.getOrderNo());
|
updateWrapper.eq(OrderMainPO::getOrderNo, bindCarToOrderReq.getOrderNo());
|
||||||
orderMainRepo.update(updateWrapper);
|
orderMainRepo.update(updateWrapper);
|
||||||
|
|
||||||
|
if(!CollectionUtils.isEmpty(bindCarToOrderReq.getImageList())){
|
||||||
|
//添加车辆图片
|
||||||
|
List<OrderCarImgPO> carImagePOList = new ArrayList<>();
|
||||||
|
for(String image:bindCarToOrderReq.getImageList()){
|
||||||
|
OrderCarImgPO imgPO = new OrderCarImgPO();
|
||||||
|
imgPO.setOrderId(orderMainPO.getOrderId());
|
||||||
|
imgPO.setOrderNo(orderMainPO.getOrderNo());
|
||||||
|
imgPO.setImgType(OrderCarImgTypeEnum.RENT.getCode());
|
||||||
|
imgPO.setImgUrl(image);
|
||||||
|
carImagePOList.add(imgPO);
|
||||||
|
}
|
||||||
|
orderCarImgRepo.saveBatch(carImagePOList);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//TODO 变更车辆状态
|
//TODO 变更车辆状态
|
||||||
|
|
||||||
return getOrderInfoByOrderNo(bindCarToOrderReq.getOrderNo());
|
return getOrderInfoByOrderNo(bindCarToOrderReq.getOrderNo());
|
||||||
@ -321,7 +355,21 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
updateWrapper.set(OrderMainPO::getReqEndRentTime, LocalDateTime.now());
|
updateWrapper.set(OrderMainPO::getReqEndRentTime, LocalDateTime.now());
|
||||||
updateWrapper.eq(OrderMainPO::getOrderNo, returnCarReq.getOrderNo());
|
updateWrapper.eq(OrderMainPO::getOrderNo, returnCarReq.getOrderNo());
|
||||||
orderMainRepo.update(updateWrapper);
|
orderMainRepo.update(updateWrapper);
|
||||||
return getOrderInfoByOrderNo(returnCarReq.getOrderNo());
|
OrderDTO orderDTO = getOrderInfoByOrderNo(returnCarReq.getOrderNo());
|
||||||
|
if(!CollectionUtils.isEmpty(returnCarReq.getImageList())){
|
||||||
|
//添加车辆图片
|
||||||
|
List<OrderCarImgPO> carImagePOList = new ArrayList<>();
|
||||||
|
for(String image:returnCarReq.getImageList()){
|
||||||
|
OrderCarImgPO imgPO = new OrderCarImgPO();
|
||||||
|
imgPO.setOrderId(orderDTO.getOrderId());
|
||||||
|
imgPO.setOrderNo(orderDTO.getOrderNo());
|
||||||
|
imgPO.setImgType(OrderCarImgTypeEnum.RETURN.getCode());
|
||||||
|
imgPO.setImgUrl(image);
|
||||||
|
carImagePOList.add(imgPO);
|
||||||
|
}
|
||||||
|
orderCarImgRepo.saveBatch(carImagePOList);
|
||||||
|
}
|
||||||
|
return orderDTO;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -341,6 +389,7 @@ public class OrderServiceImpl implements OrderService {
|
|||||||
return orderMainRepo.storeOrderStatistics(storeId);
|
return orderMainRepo.storeOrderStatistics(storeId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public IPage<OrderSimpleDTO> pageCustOrder(Integer pageNo, Integer pageSize, OrderQueryReq orderQueryReq) {
|
public IPage<OrderSimpleDTO> pageCustOrder(Integer pageNo, Integer pageSize, OrderQueryReq orderQueryReq) {
|
||||||
orderQueryReq.setCustomerId(Long.valueOf(jwtUtil.getUserInfoFromToken().getUserId().toString()));
|
orderQueryReq.setCustomerId(Long.valueOf(jwtUtil.getUserInfoFromToken().getUserId().toString()));
|
||||||
List<String> orderStatusList = orderQueryReq.getOrderStatusList().stream().map(OrderStatusEnum::getCode).collect(Collectors.toList());
|
List<String> orderStatusList = orderQueryReq.getOrderStatusList().stream().map(OrderStatusEnum::getCode).collect(Collectors.toList());
|
||||||
|
|||||||
5
src/main/resources/mapper/OrderCarImgMapper.xml
Normal file
5
src/main/resources/mapper/OrderCarImgMapper.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.sczx.order.mapper.OrderCarImgMapper">
|
||||||
|
|
||||||
|
</mapper>
|
||||||
Reference in New Issue
Block a user