From d8c1cd58845e75f393664a111a6a30aa2754527e Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 10 Feb 2023 16:37:28 +0800
Subject: [PATCH] 增加了支付之前的验证接口

---
 src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java        |    6 +--
 src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java         |    2 
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java |   68 +++++++++++++++++----------------
 src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java              |    8 +--
 4 files changed, 41 insertions(+), 43 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
index 7bfe863..5975313 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java
@@ -33,12 +33,10 @@
     private final IApiMallOrderInfoService mallOrderInfoService;
     private final IXcxPayService iXcxPayService;
 
-
-    @ApiOperation(value = "创建订单--验证收货地址是否在配送范围内 true | false", notes = "创建订单--验证收货地址是否在配送范围内")
+    @ApiOperation(value = "创建订单--验证是否允许创建", notes = "创建订单--验证是否允许创建")
     @PostMapping(value = "/createOrderVerify")
     public FebsResponse createOrderVerify(@RequestBody ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) {
-        Boolean verifyState = mallOrderInfoService.createOrderVerify(apiCreateOrderVerifyDto);
-        return new FebsResponse().success().data(verifyState);
+        return mallOrderInfoService.createOrderVerify(apiCreateOrderVerifyDto);
     }
 
     @ApiOperation(value = "创建订单", notes = "创建订单")
diff --git a/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java b/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java
index 33dd86d..3b4d4fc 100644
--- a/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java
+++ b/src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java
@@ -5,15 +5,13 @@
 import lombok.Data;
 
 import javax.validation.constraints.NotNull;
+import java.util.List;
 
 @Data
 @ApiModel(value = "ApiCreateOrderVerifyDto", description = "参数接收类")
 public class ApiCreateOrderVerifyDto {
 
-    @NotNull(message = "参数不能为空")
-    @ApiModelProperty(value = "地址ID", example = "1")
-    private Long addressId;
+    @ApiModelProperty(value = "商品明细")
+    private List<AddOrderItemDto> items;
 
-    @ApiModelProperty(value = "提货团长特征码", example = "1")
-    private String takeUniqueCode;
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
index da3baa5..3c4c494 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java
@@ -40,5 +40,5 @@
 
     FebsResponse cancelRefundOrder(Long id);
 
-    Boolean createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto);
+    FebsResponse createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
index 7f82a01..9ec706f 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -839,42 +839,44 @@
     }
 
     @Override
-    public Boolean createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) {
-        Boolean flag = false;
-        Long addressId = apiCreateOrderVerifyDto.getAddressId();
-        String takeUniqueCode = apiCreateOrderVerifyDto.getTakeUniqueCode();
+    public FebsResponse createOrderVerify(ApiCreateOrderVerifyDto apiCreateOrderVerifyDto) {
+        MallMember member = LoginUserUtil.getLoginUser();
+        List<AddOrderItemDto> items = apiCreateOrderVerifyDto.getItems();
+        if(CollUtil.isEmpty(items)){
+            return new FebsResponse().fail().message("请先挑选商品");
+        }
+        for (AddOrderItemDto item : apiCreateOrderVerifyDto.getItems()) {
+            MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId());
+            if (sku == null) {
+                return new FebsResponse().fail().message("购买商品或sku不存在");
+            }
+            if("样品".equals(sku.getSample())){
+                List<MallOrderItem> mallOrderItems = mallOrderItemMapper.selectItemBySkuIdUnCancel(sku.getId(), member.getId());
+                if (CollUtil.isNotEmpty(mallOrderItems)) {
+                    return new FebsResponse().fail().message("样品只能购买一次");
+                }
+                Integer cnt = item.getCnt();
+                if(1 < cnt){
+                    return new FebsResponse().fail().message("样品只能购买一件");
+                }
+            }else{
+                //验证用户的等级
+                if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
+                    return new FebsResponse().fail().message(sku.getSkuName() + "请先申请成为代理人");
+                }
+            }
 
-        MallAddressInfo mallAddressInfo = mallAddressInfoMapper.selectById(addressId);
-        if(ObjectUtil.isEmpty(mallAddressInfo)){
-            return flag;
-        }
-        MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(takeUniqueCode);
-        if(ObjectUtil.isEmpty(mallElectronicFence)){
-            return flag;
-        }
-        //{"data":{"count":1,"results":[{"gfid":800899,"gfname":"87053658_fence","in":0}]},"errcode":10000,"errdetail":null,"errmsg":"OK"}
-        String resultsStr = iMallElectronicFenceService.fenceToLocation(mallElectronicFence.getGKey(),
-                mallElectronicFence.getServiceId(),
-                mallAddressInfo.getLongitude() + "," + mallAddressInfo.getLatitude(),
-                mallElectronicFence.getGid());
-        if("fail".equals(resultsStr)){
-            return flag;
-        }
-        JSONArray objects = JSONUtil.parseArray(resultsStr);
-        for(Object obj : objects){
-            //{"gfid":800899,"gfname":"87053658_fence","in":0}
-            JSONObject jsonObject = JSONUtil.parseObj(obj);
-            String gfid = jsonObject.get("gfid").toString();
-            String in = jsonObject.get("in").toString();
-            String gfname = jsonObject.get("gfname").toString();
-            //指定坐标是否在围栏中
-            //1:在,
-            //0:不在;
-            if("1".equals(in)){
-                flag = true;
+            if (sku.getStock() < item.getCnt()) {
+                return new FebsResponse().fail().message(sku.getSkuName() + "库存不足");
+            }
+
+            MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId());
+            if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) {
+                return new FebsResponse().fail().message(mallGoods.getGoodsName() + "已下架");
             }
         }
-        return flag;
+
+        return new FebsResponse().success();
     }
 
 }

--
Gitblit v1.9.1