Переглянути джерело

Merge remote-tracking branch 'origin/master'

wangtao 3 роки тому
батько
коміт
95dd8235fd

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

@@ -52,19 +52,19 @@ public class OrderOpenApi {
 
     @ApiOperation("开放接口-推送订单")
     @RequestMapping(value = "/push", method = RequestMethod.POST)
-    public ResponseResult pushOrder(@Valid @RequestBody OrderPushReq pushReq) {
+    public ResponseResult pushOrder(@RequestBody @Valid OrderPushReq pushReq) {
         return openApiOrderService.pushOrder(pushReq);
     }
 
     @ApiOperation("开放接口-取消订单")
     @RequestMapping(value = "/cancel", method = RequestMethod.POST)
-    public ResponseResult cancelOrder(@Valid @RequestBody OrderCancelReq cancelReq) {
+    public ResponseResult cancelOrder(@RequestBody @Valid OrderCancelReq cancelReq) {
         return openApiOrderService.cancelOrder(cancelReq);
     }
 
     @ApiOperation("开放接口-骑手位置")
     @RequestMapping(value = "/rider/location", method = RequestMethod.POST)
-    public ResponseResult location(@Valid @RequestBody OrderLocationReq locationReq) {
+    public ResponseResult location(@RequestBody @Valid OrderLocationReq locationReq) {
         return openApiOrderService.riderLocation(locationReq);
     }
 

+ 18 - 2
lb-app/src/main/java/com/ydd/app/dto/OrderPushReq.java

@@ -7,6 +7,7 @@ import lombok.experimental.Accessors;
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
 
@@ -34,14 +35,14 @@ public class OrderPushReq extends BaseDto implements Serializable {
     /**
      * 物品ID
      */
-    @NotEmpty(message = "物品ID不能为空")
+    @NotNull(message = "物品ID不能为空")
     @ApiModelProperty(required = true, value = "物品ID")
     private Integer categoryId;
 
     /**
      * 物品重量,单位KG
      */
-    @NotEmpty(message = "物品重量不能为空")
+    @NotNull(message = "物品重量不能为空")
     @ApiModelProperty(required = true, value = "物品重量")
     private Integer weight;
 
@@ -120,6 +121,14 @@ public class OrderPushReq extends BaseDto implements Serializable {
     private String receiverLat;
 
     /**
+     * 收件人城市code,最长不超过30个字符
+     */
+    @NotBlank(message = "收件人城市code不能为空")
+    @Size(max = 30, message = "收件人城市code最长不能超过30个字符")
+    @ApiModelProperty(required = true, value = "收件人城市code")
+    private String receiverCityCode;
+
+    /**
      * 猎豹AI门店编号,最长不超过45个字符
      */
     @ApiModelProperty(value = "猎豹AI门店编号")
@@ -189,6 +198,13 @@ public class OrderPushReq extends BaseDto implements Serializable {
     private String sendLat;
 
     /**
+     * 发件人城市code,最长不超过30个字符
+     */
+    @Size(max = 30, message = "发件人城市code最长不能超过30个字符")
+    @ApiModelProperty(required = true, value = "发件人城市code")
+    private String sendCityCode;
+
+    /**
      * 流水号,最长不超过5个字符
      */
     @NotBlank(message = "流水号不能为空")

+ 34 - 5
lb-app/src/main/java/com/ydd/app/service/impl/OpenApiOrderServiceImpl.java

@@ -28,10 +28,7 @@ import com.ydd.module.CancelOrderUtils;
 import com.ydd.module.domain.*;
 import com.ydd.module.dto.CancelOrderDto;
 import com.ydd.module.dto.CouponDto;
-import com.ydd.module.enums.DeliveryStatusEnum;
-import com.ydd.module.enums.MemberCouponStatusEnum;
-import com.ydd.module.enums.OrderCancelTypeEnum;
-import com.ydd.module.enums.PayStatusEnum;
+import com.ydd.module.enums.*;
 import com.ydd.module.service.*;
 import com.ydd.third.common.utils.CoordinateUtils;
 import com.ydd.third.common.vo.ResObject;
@@ -88,6 +85,9 @@ public class OpenApiOrderServiceImpl implements OpenApiOrderService {
     private final IShopWaimaiService iShopWaimaiService;
     private final IDspWaimaiService iDspWaimaiService;
 
+    private final IMerchantService iMerchantService;
+    private final IMemberService iMemberService;
+
     @Override
     public ResponseResult pushOrder(OrderPushReq pushReq) {
         // 特殊必填处理
@@ -96,12 +96,21 @@ public class OpenApiOrderServiceImpl implements OpenApiOrderService {
             return result;
         }
 
+        Merchant merchant = iMerchantService.getOne(new QueryWrapper<Merchant>().eq("deleted", 0).eq("app_id", pushReq.getAppId()));
+        if (Objects.isNull(merchant)) {
+            return ResponseResult.error(ResponseResultCodeEnum.APP_ID_ERR);
+        }
+        Member member = iMemberService.getOne(new QueryWrapper<Member>().eq("deleted", 0)
+                .eq("merchant_id", merchant.getId()).eq("member_type", MemberTypeEnum.MERCHANT.getType()));
+
         Order order = iOrderService.getOne(new QueryWrapper<Order>().eq("deleted", 0).eq("out_trade_no", pushReq.getOutOrderSn()));
         if (order == null) {
             order = new Order();
         }
 
         // 添加订单其它属性
+        order.setMemberId(member.getId());
+        order.setMerchantId(merchant.getId());
         order.setOutTradeNo(pushReq.getOutOrderSn());
         order.setProductId(pushReq.getCategoryId().longValue());
         Product product = iProductService.getById(order.getProductId());
@@ -123,14 +132,30 @@ public class OpenApiOrderServiceImpl implements OpenApiOrderService {
         }
         order.setReceiptLng(pushReq.getReceiverLng());
         order.setReceiptLat(pushReq.getReceiverLat());
+        order.setReceiptCityCode(pushReq.getReceiverCityCode());
+        order.setDeliveryStatus(DeliveryStatusEnum.ORDERS_TO_BE_BILLED.getStatus());
         if (StringUtils.isNotBlank(pushReq.getShopCode())) {
             Shop shop = iShopService.getOne(new QueryWrapper<Shop>().eq("deleted", 0).eq("code", pushReq.getShopCode()));
             if (shop != null) {
-                order.setMerchantId(shop.getMerchantId());
                 order.setShopId(shop.getId());
                 order.setShopName(shop.getName());
+                order.setSendProvinceName(shop.getProvinceName());
+                order.setSendCityName(shop.getCityName());
+                order.setSendDistrictName(shop.getDistrictName());
+                order.setSendAddress(shop.getAddress());
+                order.setSendContactName(shop.getContactName());
+                order.setSendPhone(shop.getMobile());
+                order.setSendLng(shop.getLng());
+                order.setSendLat(shop.getLat());
+                order.setSendStreet(shop.getStreet());
+                order.setSendCityCode(shop.getCityCode());
+            }else {
+                return ResponseResult.error(ResponseResultCodeEnum.SHOP_NOT_EXIST);
             }
         } else {
+            order.setShopId(member.getShopId());
+            Shop shop = iShopService.getById(order.getShopId());
+            order.setShopName(shop.getName());
             order.setSendContactName(pushReq.getSendName());
             order.setSendPhone(pushReq.getSendPhone());
             order.setSendProvinceName(pushReq.getSendProvinceName());
@@ -144,6 +169,7 @@ public class OpenApiOrderServiceImpl implements OpenApiOrderService {
             }
             order.setSendLng(pushReq.getSendLng());
             order.setSendLat(pushReq.getSendLat());
+            order.setSendCityCode(pushReq.getSendCityCode());
         }
         order.setLbDaySeq(pushReq.getDaySeq());
         order.setOrderSn(SnCodeUtils.createSn());
@@ -185,6 +211,9 @@ public class OpenApiOrderServiceImpl implements OpenApiOrderService {
             if (StringUtils.isBlank(orderDto.getSendLat())) {
                 return ResponseResult.error(ResponseResultCodeEnum.FIELD_EMPTY, "发件人经度", null);
             }
+            if (StringUtils.isBlank(orderDto.getSendCityCode())) {
+                return ResponseResult.error(ResponseResultCodeEnum.FIELD_EMPTY, "发件人测试code", null);
+            }
         }
         return result;
     }