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