xiaoyong931011
2023-02-13 22efeb60fb14d886fbc0e5b842a4622c860fe7d9
src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java
@@ -88,9 +88,9 @@
    public Long createOrder(AddOrderDto addOrderDto) {
        MallMember member = LoginUserUtil.getLoginUser();
        //验证用户的等级
        if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
            throw new FebsException("请先申请成为代理人");
        }
//        if(AgentLevelEnum.ZERO_LEVEL.name().equals(member.getLevel())){
//            throw new FebsException("请先申请成为代理人");
//        }
        //订单范围内才允许下单
        MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId());
@@ -150,6 +150,10 @@
                        List<MallOrderItem> items = mallOrderItemMapper.selectItemBySkuIdUnCancel(sku.getId(), member.getId());
                        if (CollUtil.isNotEmpty(items)) {
                            throw new FebsException("样品一个用户只能购买一次");
                        }
                        Integer cnt = item.getCnt();
                        if(1 < cnt){
                            throw new FebsException("样品只能购买一件");
                        }
                    }
@@ -217,7 +221,7 @@
        if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) {
            throw new FebsException("请添加地址");
        }
        orderInfo.setAddress(address.getArea() + address.getAddress());
        orderInfo.setAddress(address.getProvince()+address.getCity()+address.getArea() + address.getAddress());
        orderInfo.setLatitude(address.getLatitude());
        orderInfo.setLongitude(address.getLongitude());
        this.baseMapper.updateById(orderInfo);
@@ -835,42 +839,48 @@
    }
    @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();
    }
    public static void main(String[] args) {
        System.out.print(AgentLevelEnum.ZERO_LEVEL.name());
    }
}