提交 358aa33d authored 作者: hzh's avatar hzh

代码优化

上级 6668cd4a
package org.dromara.order.api.domain;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Size;
import lombok.Data;
import lombok.experimental.Accessors;
import org.dromara.order.api.enums.FeeType;
......@@ -7,6 +9,8 @@ import org.dromara.order.api.enums.OrderType;
import org.dromara.order.api.enums.Source;
import org.dromara.order.api.enums.TradeType;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
......@@ -18,15 +22,20 @@ import java.util.List;
**/
@Data
@Accessors(chain = true)
public class RemoteSaveOrder {
public class RemoteSaveOrder implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 订单来源
*/
@NotNull(message = "订单来源不能为空")
private Source source;
/**
* 原订单号
*/
@NotNull(message = "原订单号不能为空")
private String originOrderNo;
/**
* 订单类型
......@@ -43,6 +52,7 @@ public class RemoteSaveOrder {
/**
* 费用列表
*/
@Size(min = 1, message = "费用列表不能为空")
private List<Fee> feeList;
/**
......@@ -50,11 +60,15 @@ public class RemoteSaveOrder {
*/
@Data
@Accessors(chain = true)
public static class Fee {
public static class Fee implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
* 费用描述
*/
@NotNull(message = "费用描述不能为空")
private String feeDesc;
/**
......@@ -65,6 +79,7 @@ public class RemoteSaveOrder {
/**
* 费用金额
*/
@NotNull(message = "费用金额不能为空")
private BigDecimal feeAmount;
/**
......
......@@ -3,7 +3,7 @@ package org.dromara.server.api;
/**
* @author wenhe
*/
public interface RemoteOrderService {
public interface RemoteYsOrderService {
/**
* 更新机场订单
......
......@@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.springframework.stereotype.Component;
/**
......@@ -18,10 +18,10 @@ import org.springframework.stereotype.Component;
public class OrderAirportJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
private RemoteYsOrderService remoteYsOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateAirportOrder();
remoteYsOrderService.updateAirportOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.springframework.stereotype.Component;
/**
......@@ -18,10 +18,10 @@ import org.springframework.stereotype.Component;
public class OrderAirportRefundJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
private RemoteYsOrderService remoteYsOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateAirportRefundOrder();
remoteYsOrderService.updateAirportRefundOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.springframework.stereotype.Component;
/**
......@@ -18,10 +18,10 @@ import org.springframework.stereotype.Component;
public class OrderHotelJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
private RemoteYsOrderService remoteYsOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateHotelOrder();
remoteYsOrderService.updateHotelOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.springframework.stereotype.Component;
/**
......@@ -18,10 +18,10 @@ import org.springframework.stereotype.Component;
public class OrderTrainJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
private RemoteYsOrderService remoteYsOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateTrainOrder();
remoteYsOrderService.updateTrainOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.springframework.stereotype.Component;
/**
......@@ -18,10 +18,10 @@ import org.springframework.stereotype.Component;
public class OrderTrainRefundJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
private RemoteYsOrderService remoteYsOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateTrainRefundOrder();
remoteYsOrderService.updateTrainRefundOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -5,7 +5,7 @@ import com.aizuda.snailjob.client.job.core.dto.JobArgs;
import com.aizuda.snailjob.client.model.ExecuteResult;
import lombok.AllArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.springframework.stereotype.Component;
/**
......@@ -18,10 +18,10 @@ import org.springframework.stereotype.Component;
public class OrderVehicleJobExecutor {
@DubboReference
private RemoteOrderService remoteOrderService;
private RemoteYsOrderService remoteYsOrderService;
public ExecuteResult jobExecute(JobArgs jobArgs) {
remoteOrderService.updateVehicleOrder();
remoteYsOrderService.updateVehicleOrder();
return ExecuteResult.success("更新成功");
}
}
......@@ -3,8 +3,6 @@ package org.dromara.order.domain;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.tenant.core.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
......@@ -16,9 +14,8 @@ import java.math.BigDecimal;
* @date 2024-12-05
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("biz_order_fee")
public class OrderFee extends TenantEntity {
public class OrderFee {
@Serial
private static final long serialVersionUID = 1L;
......
package org.dromara.order.domain;
import lombok.Data;
/**
* @author hzh
* @date 2024-12-05
**/
@Data
public class PayInfo {
}
package org.dromara.order.dubbo;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StreamUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.core.utils.ValidatorUtils;
import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.order.api.RemoteOrderService;
import org.dromara.order.api.domain.RemoteSaveOrder;
......@@ -42,9 +43,9 @@ import java.util.stream.Collectors;
@DubboService
public class RemoteOrderServiceImpl implements RemoteOrderService {
private IOrderService orderService;
private IOrderTradeService orderTradeService;
private IOrderFeeService orderFeeService;
private final IOrderService orderService;
private final IOrderTradeService orderTradeService;
private final IOrderFeeService orderFeeService;
@Value("${pay.expire.minute:5}")
private int expireMinute;
......@@ -52,6 +53,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
@GlobalTransactional(rollbackFor = Exception.class)
@Override
public String createOrder(RemoteSaveOrder remoteOrder) {
ValidatorUtils.validate(remoteOrder);
//查询订单信息
Long userId = LoginHelper.getUserId();
//获取订单信息
......@@ -71,10 +73,10 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
.setOtherInfo(JSONObject.toJSONString(remoteOrder.getOtherInfo()))
.setStatus(OrderStatus.WAIT_PAY.getCode());
orderService.insertByBo(bo);
return MapstructUtils.convert(bo, OrderVo.class);
return BeanUtil.copyProperties(bo, OrderVo.class);
});
//判断订单是否已支付
if (StringUtils.equals(order.getStatus(), order.getStatus())) {
if (StringUtils.equals(order.getStatus(), OrderStatus.PAYED.getCode())) {
throw new RuntimeException("订单已支付");
}
//获取订单支付信息
......@@ -93,7 +95,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
.setRemark(fee.getRemark());
}).collect(Collectors.toList());
orderFeeService.batchInsertByList(ofList);
return MapstructUtils.convert(ofList, OrderFeeVo.class);
return BeanUtil.copyToList(ofList, OrderFeeVo.class);
});
//获取总金额
assert feeList != null;
......@@ -124,7 +126,7 @@ public class RemoteOrderServiceImpl implements RemoteOrderService {
order.setPayAmount(ot.getPayAmount());
order.setActualPayAmount(ot.getActualPayAmount());
order.setDiscountAmount(ot.getDiscountAmount());
orderService.updateByBo(MapstructUtils.convert(order, OrderBo.class));
orderService.updateByBo(BeanUtil.copyProperties(order, OrderBo.class));
//获取支付订单
return IPayStrategy.pay(JSON.toJSONString(ot), feeList, remoteOrder.getTradeType().name());
......
......@@ -42,7 +42,7 @@ import java.util.Map;
@RequiredArgsConstructor
public class JsapiPayStrategy implements IPayStrategy {
private WechatPayConfiguration config;
private final WechatPayConfiguration config;
@Override
public String pay(String tradeBody, List<OrderFeeVo> feeList) {
......
......@@ -7,10 +7,12 @@ import org.dromara.server.domain.vo.OrderPayVo;
import org.dromara.server.service.IPayOrderService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 订单
* @author hzh
* @date 2024-12-06
**/
......@@ -20,13 +22,13 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/order")
public class OrderController {
private IPayOrderService service;
private final IPayOrderService service;
/**
* 下单支付接口
*/
@PostMapping("/pay")
public R<Object> pay(@Validated OrderPayVo vo) {
public R<Object> pay(@Validated @RequestBody OrderPayVo vo) {
OrderType ot = OrderType.getEnum(vo.getOrderType());
return R.ok(service.createOrder(vo.getOrderNo(), ot));
}
......
......@@ -33,7 +33,7 @@ import org.dromara.server.domain.bo.OrderAirportBo;
import org.dromara.server.domain.bo.OrderAirportRefundBo;
import org.dromara.server.domain.vo.OrderAirportRefundVo;
import org.dromara.server.domain.vo.OrderAirportVo;
import org.dromara.server.dubbo.RemoteOrderServiceImpl;
import org.dromara.server.dubbo.RemoteYsOrderServiceImpl;
import org.dromara.server.service.IOrderAirportRefundService;
import org.dromara.server.service.IOrderAirportService;
import org.springframework.validation.annotation.Validated;
......@@ -279,7 +279,7 @@ public class AirportController extends BaseController {
@PostMapping("/local/refresh")
public R<Boolean> refresh() throws InterruptedException {
List<OrderAirportVo> orderList = orderAirportService.queryList(new OrderAirportBo().setPersonCode(getUserId()));
List<String> orderStatusList = RemoteOrderServiceImpl.AIRPORT_ORDER_STATUS_LIST;
List<String> orderStatusList = RemoteYsOrderServiceImpl.AIRPORT_ORDER_STATUS_LIST;
List<String> orderNoList = StreamUtils.filter(orderList, o -> !orderStatusList.contains(o.getOrderStatus())).stream().map(OrderAirportVo::getOrderNo).collect(Collectors.toList());
orderAirportRefundService.updateOrderInfo(orderNoList);
Thread.sleep(3000);
......
......@@ -13,7 +13,7 @@ import org.dromara.common.ys.service.IHotelService;
import org.dromara.server.base.BaseController;
import org.dromara.server.domain.bo.OrderHotelBo;
import org.dromara.server.domain.vo.OrderHotelVo;
import org.dromara.server.dubbo.RemoteOrderServiceImpl;
import org.dromara.server.dubbo.RemoteYsOrderServiceImpl;
import org.dromara.server.service.IOrderHotelService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
......@@ -122,7 +122,7 @@ public class HotelController extends BaseController {
@PostMapping("/local/refresh")
public R<Boolean> refresh() throws InterruptedException {
List<OrderHotelVo> orderList = orderHotelService.queryList(new OrderHotelBo().setPersonCode(getUserId()));
List<String> orderStatusList = RemoteOrderServiceImpl.HOTEL_ORDER_STATUS_LIST;
List<String> orderStatusList = RemoteYsOrderServiceImpl.HOTEL_ORDER_STATUS_LIST;
List<String> orderNoList = StreamUtils.filter(orderList, o -> !orderStatusList.contains(o.getOrderStatus())).stream().map(OrderHotelVo::getOrderNo).collect(Collectors.toList());
orderHotelService.updateOrderInfo(orderNoList);
Thread.sleep(3000);
......
......@@ -30,7 +30,7 @@ import org.dromara.server.domain.bo.OrderTrainBo;
import org.dromara.server.domain.bo.OrderTrainRefundBo;
import org.dromara.server.domain.vo.OrderTrainRefundVo;
import org.dromara.server.domain.vo.OrderTrainVo;
import org.dromara.server.dubbo.RemoteOrderServiceImpl;
import org.dromara.server.dubbo.RemoteYsOrderServiceImpl;
import org.dromara.server.service.IOrderTrainRefundService;
import org.dromara.server.service.IOrderTrainService;
import org.springframework.validation.annotation.Validated;
......@@ -273,7 +273,7 @@ public class TrainController extends BaseController {
@PostMapping("/local/refresh")
public R<Boolean> refresh() throws InterruptedException {
List<OrderTrainVo> orderList = orderTrainService.queryList(new OrderTrainBo().setPersonCode(getUserId()));
List<String> orderStatusList = RemoteOrderServiceImpl.TRAIN_ORDER_STATUS_LIST;
List<String> orderStatusList = RemoteYsOrderServiceImpl.TRAIN_ORDER_STATUS_LIST;
List<String> orderNoList = StreamUtils.filter(orderList, o -> !orderStatusList.contains(o.getOrderStatus())).stream().map(OrderTrainVo::getOrderNo).collect(Collectors.toList());
orderTrainService.updateOrderInfo(orderNoList);
Thread.sleep(3000);
......
......@@ -17,7 +17,7 @@ import org.dromara.common.ys.service.IVehiclesService;
import org.dromara.server.base.BaseController;
import org.dromara.server.domain.bo.OrderVehiclesBo;
import org.dromara.server.domain.vo.OrderVehiclesVo;
import org.dromara.server.dubbo.RemoteOrderServiceImpl;
import org.dromara.server.dubbo.RemoteYsOrderServiceImpl;
import org.dromara.server.service.IOrderVehiclesService;
import org.springframework.web.bind.annotation.*;
......@@ -155,7 +155,7 @@ public class VehiclesController extends BaseController {
@PostMapping("/local/refresh")
public R<Boolean> refresh() throws InterruptedException {
List<OrderVehiclesVo> orderList = orderVehiclesService.queryList(new OrderVehiclesBo().setPersonCode(getUserId()));
List<String> orderStatusList = RemoteOrderServiceImpl.VEHICLES_ORDER_STATUS_LIST;
List<String> orderStatusList = RemoteYsOrderServiceImpl.VEHICLES_ORDER_STATUS_LIST;
List<String> orderNoList = StreamUtils.filter(orderList, o -> !orderStatusList.contains(o.getOrderStatus())).stream().map(OrderVehiclesVo::getOrderNo).collect(Collectors.toList());
orderVehiclesService.updateOrderInfo(orderNoList);
Thread.sleep(3000);
......
......@@ -5,7 +5,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboService;
import org.dromara.common.ys.constant.airport.OrderStatus;
import org.dromara.common.ys.constant.train.RefundOrderStatus;
import org.dromara.server.api.RemoteOrderService;
import org.dromara.server.api.RemoteYsOrderService;
import org.dromara.server.domain.bo.*;
import org.dromara.server.domain.vo.*;
import org.dromara.server.service.*;
......@@ -23,7 +23,7 @@ import java.util.stream.Collectors;
@RequiredArgsConstructor
@Service
@DubboService
public class RemoteOrderServiceImpl implements RemoteOrderService {
public class RemoteYsOrderServiceImpl implements RemoteYsOrderService {
private final IOrderAirportService orderAirportService;
private final IOrderTrainService orderTrainService;
......
......@@ -23,7 +23,7 @@ import java.util.List;
@RequiredArgsConstructor
public class AirportOrderStrategy implements IOrderStrategy {
private IAirportService airportService;
private final IAirportService airportService;
@Override
public RemoteSaveOrder createOrder(String orderNo) {
......
......@@ -23,7 +23,7 @@ import java.util.List;
@RequiredArgsConstructor
public class CarOrderStrategy implements IOrderStrategy {
private IVehiclesService vehiclesService;
private final IVehiclesService vehiclesService;
@Override
public RemoteSaveOrder createOrder(String orderNo) {
......
......@@ -23,7 +23,7 @@ import java.util.List;
@RequiredArgsConstructor
public class HotelOrderStrategy implements IOrderStrategy {
private IHotelService hotelService;
private final IHotelService hotelService;
@Override
public RemoteSaveOrder createOrder(String orderNo) {
......
......@@ -28,6 +28,7 @@ public class PayOrderServiceImpl implements IPayOrderService {
order.setSource(Source.YSH);
order.setOriginOrderNo(orderNo);
order.setTradeType(TradeType.JSAPI);
order.setOrderType(orderType);
return remoteOrderService.createOrder(order);
}
}
......@@ -24,7 +24,7 @@ import java.util.List;
@RequiredArgsConstructor
public class TrainOrderStrategy implements IOrderStrategy {
private ITrainService trainService;
private final ITrainService trainService;
@Override
public RemoteSaveOrder createOrder(String orderNo) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论