叶君翔 3 anni fa
parent
commit
1e9e75034f

+ 5 - 15
lb-app/src/main/java/com/ydd/app/controller/OrderOpenApi.java

@@ -1,8 +1,9 @@
 package com.ydd.app.controller;
 
 import com.ydd.app.dto.OrderReq;
+import com.ydd.app.dto.OrderValuationReq;
 import com.ydd.app.dto.PushOrderDto;
-import com.ydd.app.dto.ValuationRes;
+import com.ydd.app.response.OrderValuationResponse;
 import com.ydd.app.service.OpenApiOrderService;
 import com.ydd.app.service.OpenApiOrderValuationService;
 import com.ydd.common.annotation.ControllerLog;
@@ -38,20 +39,9 @@ public class OrderOpenApi {
     @RequestMapping(value = "/valuation", method = RequestMethod.POST)
     @RepeatSubmit
     @ControllerLog("开放接口-计价")
-    public ResponseResult<ValuationRes> valuation(@RequestBody OrderReq orderReq) {
-        // 0骑手,1货运
-//        if (null == orderReq.getTransport()) {
-//            orderReq.setTransport(0);
-//        }
-//        Member member = (Member)((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest().getAttribute("memberUser");
-//        ValuationResultData resultData = apiOrderService.orderValuation(member, orderReq, 1);
-//        if (resultData == null) {
-//            return BaseResult.error("计价异常, 请联系客服!");
-//        }
-//        if (resultData.getCode() == 1) {
-//            return BaseResult.error(resultData.getMsg());
-//        }
-        return ResponseResult.success();
+    public ResponseResult<OrderValuationResponse> valuation(@RequestBody @Valid OrderValuationReq valuationDto) {
+        OrderValuationResponse response = openApiOrderValuationService.valuation(valuationDto);
+        return ResponseResult.success(response);
     }
 
     @ApiOperation("开放接口-推送订单")

+ 180 - 0
lb-app/src/main/java/com/ydd/app/dto/OrderValuationReq.java

@@ -0,0 +1,180 @@
+package com.ydd.app.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import java.io.Serializable;
+
+
+/**
+ * 订单计价请求参数
+ * @author 叶君翔
+ * @date 2022/04/11 09:35
+ */
+@Data
+public class OrderValuationReq extends BaseDto implements Serializable {
+
+    private static final long serialVersionUID = -8561104085245324941L;
+
+    /**
+     * 接入方订单编号
+     */
+    @NotBlank(message = "接入方订单编号不能为空")
+    @Size(max = 32, message = "接入方订单编号最长不能超过32个字符")
+    private String outOrderSn;
+
+    /**
+     * 收件人名称
+     */
+    @NotBlank(message = "收件人名称不能为空")
+    @Size(max = 50, message = "收件人名称最长不能超过50个字符")
+    private String receiverName;
+
+
+    /**
+     * 收件人联系电话
+     */
+    @NotBlank(message = "收件人联系电话不能为空")
+    @Size(max = 40, message = "收件人联系电话最长不能超过40个字符")
+    private String receiverPhone;
+
+    /**
+     * 收件人所在省
+     */
+    @NotBlank(message = "收件人所在省不能为空")
+    @Size(max = 30, message = "收件人所在省最长不能超过30个字符")
+    private String receiverProvinceName;
+
+    /**
+     * 收件人所在市
+     */
+    @NotBlank(message = "收件人所在市不能为空")
+    @Size(max = 30, message = "收件人详细地址最长不能超过30个字符")
+    private String receiverCityName;
+
+    /**
+     * 收件人所在区
+     */
+    @Size(max = 40, message = "收件人所在区最长不能超过40个字符")
+    private String receiverDistrictName;
+
+    /**
+     * 收件人详细地址
+     */
+    @NotBlank(message = "收件人详细地址不能为空")
+    @Size(max = 150, message = "收件人详细地址最长不能超过150个字符")
+    private String receiverAddress;
+
+
+    /**
+     * 收件人门牌号
+     */
+    @Size(max = 30, message = "收件人门牌号最长不能超过30个字符")
+    private String receiverHouseNumber;
+
+    /**
+     * 收件人经度,火星坐标系
+     */
+    @NotBlank(message = "收件人经度不能为空")
+    @Size(max = 40, message = "收件人经度最长不能超过40个字符")
+    private String receiverLng;
+
+    /**
+     * 收件人纬度,火星坐标系
+     */
+    @NotBlank(message = "收件人纬度不能为空")
+    @Size(max = 40, message = "收件人纬度最长不能超过40个字符")
+    private String receiverLat;
+
+    /**
+     * 猎豹AI门店编号
+     */
+    private String shopCode;
+
+    /**
+     * 发件人名称,当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 50, message = "发件人名称最长不能超过50个字符")
+    private String sendName;
+
+    /**
+     * 发件人联系电话,当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 40, message = "发件人联系电话最长不能超过40个字符")
+    private String sendPhone;
+
+    /**
+     * 发件人所在省,当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 30, message = "发件人所在省最长不能超过30个字符")
+    private String sendProvinceName;
+
+    /** 发件人所在市,当传入shopCode门店编号时,不必填,根据门店信息发单,最长不超过30个字符 */
+    @ApiModelProperty(value = "发件人所在市")
+
+    /**
+     * 发件人所在市,当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 30, message = "发件人所在市最长不能超过30个字符")
+    private String sendCityName;
+
+    /**
+     * 发件人所在区,当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 30, message = "发件人所在区最长不能超过30个字符")
+    private String sendDistrictName;
+
+    /**
+     * 发件人详细地址,当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 150, message = "发件人详细地址最长不能超过150个字符")
+    private String sendAddress;
+
+    /**
+     * 发件人门牌号, 当传入shopCode门店编号时,不必填,根据门店信息发单
+     */
+    @Size(max = 30, message = "发件人门牌号最长不能超过30个字符")
+    private String sendHouseNumber;
+
+    /**
+     * 发件人纬度,火星坐标系,最长不超过40个字符
+     */
+    @Size(max = 40, message = "发件人纬度最长不能超过40个字符")
+    private String sendLng;
+
+    /**
+     * 发件人经度,火星坐标系,最长不超过40个字符
+     */
+    @Size(max = 40, message = "发件人经度最长不能超过40个字符")
+    private String sendLat;
+
+    /**
+     * 物品类型
+     */
+    private Integer goodsType;
+
+    /**
+     * 物品重量, 单位为kg
+     */
+    @NotNull(message = "物品重量不可为空")
+    @Min(value = 1, message = "物品重量最低1KG")
+    private Integer goodsWeight;
+
+    /**
+     * 流水号
+     */
+    @NotBlank(message = "订单流水号不能为空")
+    @Size(max = 5, message = "流水号最长不能超过5个字符")
+    private String daySeq;
+
+    /**
+     * 订单备注
+     */
+    @Size(max = 200, message = "订单备注最长不能超过200个字符")
+    private String remark;
+
+}

+ 20 - 0
lb-app/src/main/java/com/ydd/app/response/OrderValuationResponse.java

@@ -0,0 +1,20 @@
+package com.ydd.app.response;
+
+import com.ydd.app.vo.OrderValuationVo;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *  订单计价返回结果
+ * @author 叶君翔
+ * @date 2022/04/11 11:22
+ */
+@Data
+public class OrderValuationResponse {
+
+    private String outOrderSn;
+
+    private List<OrderValuationVo> valuationList;
+
+}

+ 4 - 1
lb-app/src/main/java/com/ydd/app/service/OpenApiOrderValuationService.java

@@ -1,5 +1,8 @@
 package com.ydd.app.service;
 
+import com.ydd.app.dto.OrderValuationReq;
+import com.ydd.app.response.OrderValuationResponse;
+
 /**
  * 开放接口-订单计价Service
  * @author 叶君翔
@@ -7,6 +10,6 @@ package com.ydd.app.service;
  */
 public interface OpenApiOrderValuationService {
 
-
+    OrderValuationResponse valuation(OrderValuationReq valuationDto);
 
 }

+ 7 - 0
lb-app/src/main/java/com/ydd/app/service/impl/OpenApiOrderValuationServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ydd.app.service.impl;
 
+import com.ydd.app.dto.OrderValuationReq;
+import com.ydd.app.response.OrderValuationResponse;
 import com.ydd.app.service.OpenApiOrderValuationService;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -16,4 +18,9 @@ import org.springframework.stereotype.Service;
 @RequiredArgsConstructor(onConstructor_ = @Autowired)
 public class OpenApiOrderValuationServiceImpl implements OpenApiOrderValuationService {
 
+    @Override
+    public OrderValuationResponse valuation(OrderValuationReq valuationDto) {
+        return null;
+    }
+
 }

+ 43 - 0
lb-app/src/main/java/com/ydd/app/vo/OrderValuationVo.java

@@ -0,0 +1,43 @@
+package com.ydd.app.vo;
+
+import lombok.Data;
+
+/**
+ * 运力计价结果
+ * @author 叶君翔
+ * @date 2022/04/11 11:23
+ */
+@Data
+public class OrderValuationVo {
+
+    /**
+     * 运力id, 对应运力TYPE
+     */
+    private Integer deliveryId;
+
+    /**
+     * 运力名称
+     */
+    private String deliveryName;
+
+    /**
+     * 距离, 单位mi
+     */
+    private String distance;
+
+    /**
+     * 预估运费金额,单位: 元
+     */
+    private String deliveryAmount;
+
+    /**
+     * 优惠金额,单位: 元
+     */
+    private String discountAmount;
+
+    /**
+     * 最终需支付金额,单位: 元
+     */
+    private String needPayAmount;
+
+}