xiaoyong931011
2023-02-10 d8c1cd58845e75f393664a111a6a30aa2754527e
增加了支付之前的验证接口
4 files modified
84 ■■■■ changed files
src/main/java/cc/mrbird/febs/mall/controller/ApiMallOrderController.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/dto/ApiCreateOrderVerifyDto.java 8 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/IApiMallOrderInfoService.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java 68 ●●●● patch | view | raw | blame | history
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 = "创建订单")
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;
}
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);
}
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();
    }
}