新增订单详情接口
处理订单金额 <0 默认为0
This commit is contained in:
parent
089ead49be
commit
d08bb52783
@ -0,0 +1,99 @@
|
||||
package com.evotech.hd.common.core.Dto.order;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* 类
|
||||
*
|
||||
* @ClassName:OrderDetailVo
|
||||
* @date: 2025年07月23日 15:12
|
||||
* @author: andy.shi
|
||||
* @contact: 17330188597
|
||||
* @remark: 开发人员联系方式 1042025947@qq.com/微信同步
|
||||
*/
|
||||
@Data
|
||||
public class OrderDetailVo {
|
||||
|
||||
@Schema(description = "订单编号")
|
||||
private String orderNo;
|
||||
|
||||
@Schema(name = "订单类型", description = "1=换电;2=充电")
|
||||
private Integer orderType;
|
||||
|
||||
@Schema(name = "车牌号")
|
||||
private String plateNum;
|
||||
|
||||
@Schema(name = "订单状态", description = "订单状态:1-已创建,2-换电中,3-换电完成,4-充电中,5-充电完成,6-待结算,7-已完成,9-已取消, -1-退款")
|
||||
private Integer status;
|
||||
|
||||
@Schema(name = "订单时间")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
|
||||
private Date orderTime;
|
||||
|
||||
@Schema(name = "换电站")
|
||||
private String stationName;
|
||||
|
||||
@Schema(name = "预约人")
|
||||
private String perName;
|
||||
|
||||
@Schema(name = "交易编码", description = "第三方收款返回的唯一标识")
|
||||
private String notifyOrderNo;
|
||||
|
||||
@Schema(name = "订单总金额")
|
||||
private Integer amount;
|
||||
|
||||
@Schema(name = "计费类型", description="1-ODO, 2-SOC, 3-电量")
|
||||
private Integer feeType;
|
||||
|
||||
@Schema(name = "订单金额")
|
||||
private Integer orderFee;
|
||||
|
||||
@Schema(name = "服务金额")
|
||||
private Integer serviceFee;
|
||||
|
||||
@Schema(name = "服务开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date serviceTimeBegin;
|
||||
|
||||
@Schema(name = "服务结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date serviceTimeEnd;
|
||||
|
||||
@Schema(name = "订单开始时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date orderTimeBegin;
|
||||
|
||||
@Schema(name = "订单结束时间")
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
private Date orderTimeEnd;
|
||||
|
||||
@Schema(name = "耗电量", description = "耗电量; 如果是soc结算 则是soc的差值, ODO则是里程")
|
||||
private Double electricityQuantity;
|
||||
|
||||
@Schema(name = "开始充电的电量", description = "feeType=3时, 不为空")
|
||||
private Double electStart;
|
||||
|
||||
@Schema(name = "结束充电的电量", description = "feeType=3时, 不为空")
|
||||
private Double electEnd;
|
||||
|
||||
@Schema(name = "租借电池包SOC", description = "feeType=2时, 不为空")
|
||||
private Double rentBatSoc;
|
||||
|
||||
@Schema(name = "归还电池包SOC", description = "feeType=2时, 不为空")
|
||||
private Double returnBatSoc;
|
||||
|
||||
@Schema(name = "换电模式", description="1-全自动; 2-半自动; 3-人工干预")
|
||||
private Integer changeMode;
|
||||
|
||||
@Schema(name = "换电车道", description="1-换电车道A; 2-换电车道B")
|
||||
private Integer changeLane;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.evotech.hd.cloud.entity.vo.NativePayVO;
|
||||
import com.evotech.hd.cloud.service.OrderService;
|
||||
import com.evotech.hd.common.core.Dto.Result;
|
||||
import com.evotech.hd.common.core.Dto.order.OrderDetailVo;
|
||||
import com.evotech.hd.common.core.Dto.order.OrderListVo;
|
||||
import com.evotech.hd.common.core.entity.cloud.OrderSwapBatteryStep;
|
||||
import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse;
|
||||
@ -38,6 +39,14 @@ public class OrderSwapBatteryController {
|
||||
return orderService.pageList(plsor);
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "查询订单详情")
|
||||
@GetMapping("/{orderNo}")
|
||||
@ApiOperationSupport(order = 6)
|
||||
public Result<OrderDetailVo> getOne(@PathVariable(value = "orderNo") String orderNo) {
|
||||
return orderService.getOneByOrderNo(orderNo);
|
||||
}
|
||||
|
||||
@Operation(summary = "查询换电步骤")
|
||||
@GetMapping("/step/list")
|
||||
@ApiOperationSupport(order = 9)
|
||||
@ -45,12 +54,7 @@ public class OrderSwapBatteryController {
|
||||
return orderService.listStep(orderNo);
|
||||
}
|
||||
|
||||
@Operation(summary = "个人账户余额支付")
|
||||
@PostMapping({"/one"})
|
||||
@ApiOperationSupport(order = 11)
|
||||
public Result<Order> one(@RequestParam String orderNo) {
|
||||
return orderService.one(orderNo);
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "个人账户余额支付")
|
||||
@PostMapping({"/wallet/pay"})
|
||||
@ -59,10 +63,6 @@ public class OrderSwapBatteryController {
|
||||
return orderService.walletPay(orderNo, wuid, uname);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Operation(summary = "查询公司订单")
|
||||
@GetMapping("/listcompanyorder")
|
||||
@ApiOperationSupport(order = 8)
|
||||
@ -133,4 +133,12 @@ public class OrderSwapBatteryController {
|
||||
return orderService.checkList(plsor);
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "个人账户余额支付")
|
||||
@PostMapping({"/one"})
|
||||
@ApiOperationSupport(order = 11)
|
||||
public Result<Order> one(@RequestParam String orderNo) {
|
||||
return orderService.one(orderNo);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -16,12 +16,16 @@ import com.evotech.hd.cloud.mqtt.message.processor.strategy.impl.state.MqttState
|
||||
import com.evotech.hd.cloud.service.TradeService;
|
||||
import com.evotech.hd.cloud.utils.components.SwapOrderBasicFeeComponent;
|
||||
import com.evotech.hd.common.core.Dto.Result;
|
||||
import com.evotech.hd.common.core.dao.cloud.OrderDao;
|
||||
import com.evotech.hd.common.core.dao.cloud.OrderDetailDao;
|
||||
import com.evotech.hd.common.core.utils.Collections;
|
||||
import jakarta.annotation.Resource;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.Map;
|
||||
|
||||
@ -53,6 +57,13 @@ public class TestController {
|
||||
// @Resource
|
||||
// MongoDBService mongoDBService;
|
||||
|
||||
// @Resource
|
||||
// private OrderSwapBatteryDao orderSwapBatteryDao;
|
||||
@Autowired
|
||||
private OrderDao orderDao;
|
||||
@Autowired
|
||||
private OrderDetailDao orderDetailDao;
|
||||
|
||||
@PostMapping("/mongodb/save")
|
||||
public Result mongodbSave() {
|
||||
mqttStateChargingDataRequestExchangeProcessor.exchange(null,null,JSONUtil.parseObj("{batCode:123,orderNo:123321}"));
|
||||
@ -173,4 +184,58 @@ public class TestController {
|
||||
return new Result().success(DHRequestUtil.storeList(page, pageSize));
|
||||
}
|
||||
|
||||
@GetMapping("/copy/order")
|
||||
public Result copyOrder(@RequestParam String stationCode) {
|
||||
// for (OrderSwapBattery orderSwapBattery : orderSwapBatteryDao.selectList(new LambdaQueryWrapper<OrderSwapBattery>().eq(OrderSwapBattery::getStationCode, stationCode))){
|
||||
// Order order = new Order();
|
||||
// order.setStationCode(orderSwapBattery.getStationCode());
|
||||
// order.setStationName(orderSwapBattery.getStationName());
|
||||
// order.setOrderNo(orderSwapBattery.getOrderNo());
|
||||
// order.setOrderPreId(orderSwapBattery.getOrderPreId());
|
||||
// order.setPreWechatId(orderSwapBattery.getOrderPreUid());
|
||||
// order.setOrderPreUname(orderSwapBattery.getOrderPreUname());
|
||||
// order.setPlateNum(orderSwapBattery.getPlateNum());
|
||||
// order.setOrderTime(orderSwapBattery.getOrderTime());
|
||||
// order.setOrderType(orderSwapBattery.getOrderType());
|
||||
// order.setStatus(orderSwapBattery.getStatus());
|
||||
// order.setDelFlag(orderSwapBattery.getDelFlag());
|
||||
// order.setOrderAmount(orderSwapBattery.getAmount());
|
||||
// orderDao.insert(order);
|
||||
//
|
||||
// OrderDetail detail = new OrderDetail();
|
||||
// detail.setOrderId(order.getPkId());
|
||||
// detail.setFeeType(orderSwapBattery.getFeeType());
|
||||
// detail.setOrderFee(findDefaultValue(orderSwapBattery.getBasicFee(), DEFAULT_VALUE).intValue());
|
||||
// detail.setServiceFee(findDefaultValue(orderSwapBattery.getServiceFee(), DEFAULT_VALUE).intValue());
|
||||
// detail.setServiceTimeBegin(orderSwapBattery.getServiceTimeBegin());
|
||||
// detail.setServiceTimeEnd(orderSwapBattery.getServiceTimeEnd());
|
||||
// detail.setOrderTimeBegin(orderSwapBattery.getServiceTimeBegin());
|
||||
// detail.setOrderTimeEnd(orderSwapBattery.getServiceTimeEnd());
|
||||
// detail.setFeeStandard(orderSwapBattery.getFeeStandardJson());
|
||||
// detail.setElectricityQuantity(findDefaultValue(orderSwapBattery.getElectAmount(), DEFAULT_VALUE).doubleValue());
|
||||
// detail.setRentBatNo(String.valueOf(orderSwapBattery.getRentBatNo()));
|
||||
// detail.setRentBatNo(String.valueOf(orderSwapBattery.getRentBatNo()));
|
||||
// detail.setRentBatCode(String.valueOf(orderSwapBattery.getRentBatCode()));
|
||||
// detail.setRentBatSoc(Double.valueOf(findDefaultValue(orderSwapBattery.getRentBatSoc(),0)));
|
||||
//
|
||||
// detail.setReturnBatNo(String.valueOf(orderSwapBattery.getReturnBatNo()));
|
||||
// detail.setReturnBatCode(String.valueOf(orderSwapBattery.getReturnBatCode()));
|
||||
// detail.setReturnBatSoc(Double.valueOf(findDefaultValue(orderSwapBattery.getReturnBatSoc(),0)));
|
||||
// detail.setChangeMode(orderSwapBattery.getChangeMode());
|
||||
// detail.setChangeLane(orderSwapBattery.getChangeLane());
|
||||
// orderDetailDao.insert(detail);
|
||||
// }
|
||||
return new Result().success("成功");
|
||||
}
|
||||
|
||||
public static final BigDecimal DEFAULT_VALUE = new BigDecimal(0);
|
||||
|
||||
|
||||
public static <T> T findDefaultValue(T v, T dv){
|
||||
if(ObjectUtils.isNotEmpty(v)){
|
||||
return v;
|
||||
}
|
||||
return dv;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -2,14 +2,15 @@ package com.evotech.hd.cloud.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.evotech.hd.common.core.entity.order.Order;
|
||||
import com.evotech.hd.cloud.entity.vo.NativePayVO;
|
||||
import com.evotech.hd.common.core.Dto.Result;
|
||||
import com.evotech.hd.common.core.Dto.order.OrderDetailVo;
|
||||
import com.evotech.hd.common.core.Dto.order.OrderListVo;
|
||||
import com.evotech.hd.common.core.entity.cloud.OrderSwapBatteryPre;
|
||||
import com.evotech.hd.common.core.entity.cloud.OrderSwapBatteryStep;
|
||||
import com.evotech.hd.common.core.entity.cloud.request.BatterySwapResponse;
|
||||
import com.evotech.hd.common.core.entity.cloud.request.PageListSwapOrderRequest;
|
||||
import com.evotech.hd.common.core.entity.order.Order;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
|
||||
@ -73,4 +74,6 @@ public interface OrderService extends IService<Order> {
|
||||
Result<BatterySwapResponse> getStartSwap(String wuid, String orderId);
|
||||
|
||||
Result<Order> one(String orderNo);
|
||||
|
||||
Result<OrderDetailVo> getOneByOrderNo(String orderNo);
|
||||
}
|
||||
|
||||
@ -31,6 +31,7 @@ import com.evotech.hd.cloud.utils.CommonUtil;
|
||||
import com.evotech.hd.cloud.utils.ParamServiceUtils;
|
||||
import com.evotech.hd.cloud.utils.components.SwapOrderBasicFeeComponent;
|
||||
import com.evotech.hd.common.core.Dto.Result;
|
||||
import com.evotech.hd.common.core.Dto.order.OrderDetailVo;
|
||||
import com.evotech.hd.common.core.Dto.order.OrderListVo;
|
||||
import com.evotech.hd.common.core.constant.HDConstant;
|
||||
import com.evotech.hd.common.core.dao.cloud.OrderDao;
|
||||
@ -149,6 +150,9 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
}
|
||||
// 3. 选择费用计算方式 计算费用, 这里计算出来直接就是分
|
||||
BigDecimal orderFee = new BigDecimal(orderDetail.getUnitPrice()).multiply(new BigDecimal(orderDetail.getElectricityQuantity())).setScale(0, RoundingMode.HALF_UP);
|
||||
if(orderFee.compareTo(new BigDecimal(0)) < 0){
|
||||
orderFee = new BigDecimal(0);
|
||||
}
|
||||
//订单价格
|
||||
orderDetail.setOrderFee(orderFee.intValue());
|
||||
// 4. 跟新订单
|
||||
@ -498,6 +502,17 @@ public class OrderServiceImpl extends ServiceImpl<OrderDao, Order> implements Or
|
||||
public Result<Order> one(String orderNo) {
|
||||
return new Result<Order>().success(getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<OrderDetailVo> getOneByOrderNo(String orderNo) {
|
||||
OrderDetailVo orderDetailVo = new OrderDetailVo();
|
||||
Order order = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNo, orderNo));
|
||||
BeanUtils.copyProperties(order, orderDetailVo);
|
||||
orderDetailVo.setAmount(order.getOrderAmount());
|
||||
OrderDetail orderDetail = orderDetailDao.selectOne(new LambdaQueryWrapper<OrderDetail>().eq(OrderDetail::getOrderId, order.getPkId()));
|
||||
BeanUtils.copyProperties(orderDetail, orderDetailVo);
|
||||
return new Result<OrderDetailVo>().success(orderDetailVo);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -68,12 +68,6 @@ public class SwapOrderController {
|
||||
}
|
||||
|
||||
|
||||
// @Operation(summary = "个人账户余额支付")
|
||||
// @PostMapping({"/wallet/pay"})
|
||||
// @ApiOperationSupport(order = 6)
|
||||
// public Result<String> walletPay(@RequestParam String orderNo, String wuid, String uname) {
|
||||
// return orderService.walletPay(orderNo, wuid, uname);
|
||||
// }
|
||||
|
||||
@Operation(summary = "开始换电")
|
||||
@PostMapping("/startSwap")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user