|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //订单范围内才允许下单 | 
|---|
|  |  |  | MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId()); | 
|---|
|  |  |  | if(ObjectUtil.isEmpty(address)){ | 
|---|
|  |  |  | throw new FebsException("请重新选择提货人信息"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        MallElectronicFence mallElectronicFence = mallElectronicFenceMapper.selectByTeamLeaderCode(mallTeamLeader.getUniqueCode()); | 
|---|
|  |  |  | //        if(ObjectUtil.isNotEmpty(mallElectronicFence)){ | 
|---|
|  |  |  | //            String inStr = iMallElectronicFenceService.fenceToLocation(mallElectronicFence.getGKey(), | 
|---|
|  |  |  | 
|---|
|  |  |  | orderInfo.setCarriage(delivaryAmount); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderInfo.setAmount(total); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | orderInfo.setAddressId(address.getId()); | 
|---|
|  |  |  | orderInfo.setName(address.getName()); | 
|---|
|  |  |  | orderInfo.setPhone(address.getPhone()); | 
|---|
|  |  |  | orderInfo.setIsHome(addOrderDto.getIsHome()); | 
|---|
|  |  |  | //订单金额大于50,且选择送货上门,订单需要选择地址信息 | 
|---|
|  |  |  | if(1 == addOrderDto.getIsHome()){ | 
|---|
|  |  |  | //        if(1 == addOrderDto.getIsHome()){ | 
|---|
|  |  |  | if (StrUtil.isBlank(address.getLatitude())||StrUtil.isBlank(address.getLongitude())) { | 
|---|
|  |  |  | throw new FebsException("请添加地址"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | orderInfo.setAddress(address.getArea() + address.getAddress()); | 
|---|
|  |  |  | orderInfo.setLatitude(address.getLatitude()); | 
|---|
|  |  |  | orderInfo.setLongitude(address.getLongitude()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //        } | 
|---|
|  |  |  | this.baseMapper.updateById(orderInfo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L); | 
|---|
|  |  |  | 
|---|
|  |  |  | orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); | 
|---|
|  |  |  | orderInfo.setCancelType(MallOrderInfo.CANCEL_BY_SELF); | 
|---|
|  |  |  | this.baseMapper.updateById(orderInfo); | 
|---|
|  |  |  | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(id); | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallOrderItemList)){ | 
|---|
|  |  |  | for(MallOrderItem mallOrderItem : mallOrderItemList){ | 
|---|
|  |  |  | Long goodsId = mallOrderItem.getGoodsId(); | 
|---|
|  |  |  | Long skuId = mallOrderItem.getSkuId(); | 
|---|
|  |  |  | Integer cnt = mallOrderItem.getCnt(); | 
|---|
|  |  |  | MallGoods mallGoods = mallGoodsMapper.selectById(goodsId); | 
|---|
|  |  |  | mallGoods.setVolume(mallGoods.getVolume() - cnt); | 
|---|
|  |  |  | mallGoods.setStock(mallGoods.getStock() + cnt); | 
|---|
|  |  |  | mallGoodsMapper.updateById(mallGoods); | 
|---|
|  |  |  | MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); | 
|---|
|  |  |  | if (sku == null) { | 
|---|
|  |  |  | throw new FebsException("购买商品或sku不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallGoodsSku mallGoodsSku = mallGoodsSkuMapper.selectById(skuId); | 
|---|
|  |  |  | mallGoodsSku.setSkuVolume(mallGoodsSku.getSkuVolume() - cnt); | 
|---|
|  |  |  | mallGoodsSku.setStock(mallGoodsSku.getStock() + cnt); | 
|---|
|  |  |  | mallGoodsSkuMapper.updateById(mallGoodsSku); | 
|---|
|  |  |  | if (sku.getStock() < mallOrderItem.getCnt()) { | 
|---|
|  |  |  | throw new FebsException(sku.getSkuName() + "库存不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); | 
|---|
|  |  |  | Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); | 
|---|
|  |  |  | if(1 != goodsResult){ | 
|---|
|  |  |  | throw new FebsException(mallGoods.getGoodsName() + "库存不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); | 
|---|
|  |  |  | if(1 != skuResult){ | 
|---|
|  |  |  | throw new FebsException(sku.getSkuName() + "库存不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<OrderListVo> findOrderList(OrderListDto orderListDto) { | 
|---|
|  |  |  | log.info("订单查询"); | 
|---|
|  |  |  | MallMember member = LoginUserUtil.getLoginUser(); | 
|---|
|  |  |  | IPage<MallOrderInfo> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | orderListDto.setMemberId(member.getId()); | 
|---|
|  |  |  | IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectApiOrderListInPage(page, orderListDto); | 
|---|
|  |  |  | //        IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectApiOrderListInPage(page, orderListDto); | 
|---|
|  |  |  | IPage<MallOrderInfo> mallOrderInfos = this.baseMapper.selectNewApiOrderListInPage(page, orderListDto); | 
|---|
|  |  |  | if (CollUtil.isNotEmpty(mallOrderInfos.getRecords())) { | 
|---|
|  |  |  | mallOrderInfos.getRecords().forEach(item -> { | 
|---|
|  |  |  | item.setItems(mallOrderItemMapper.selectListByOrderId(item.getId())); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return MallOrderInfoConversion.INSTANCE.entitysToVos(mallOrderInfos.getRecords()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | orderInfo.setStatus(OrderStatusEnum.CANCEL.getValue()); | 
|---|
|  |  |  | orderInfo.setCancelType(MallOrderInfo.CANCEL_OVERTIME_NO_PAY); | 
|---|
|  |  |  | this.baseMapper.updateById(orderInfo); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectListByOrderId(orderInfo.getId()); | 
|---|
|  |  |  | if(CollUtil.isNotEmpty(mallOrderItemList)){ | 
|---|
|  |  |  | for(MallOrderItem mallOrderItem : mallOrderItemList){ | 
|---|
|  |  |  | MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(mallOrderItem.getSkuId()); | 
|---|
|  |  |  | if (sku == null) { | 
|---|
|  |  |  | throw new FebsException("购买商品或sku不存在"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //                    if (sku.getStock() < mallOrderItem.getCnt()) { | 
|---|
|  |  |  | //                        throw new FebsException(sku.getSkuName() + "库存不足"); | 
|---|
|  |  |  | //                    } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); | 
|---|
|  |  |  | Integer goodsResult = mallGoodsMapper.updateStockAndVolumeByGoodsId(mallGoods.getId(), mallOrderItem.getCnt()); | 
|---|
|  |  |  | if(1 != goodsResult){ | 
|---|
|  |  |  | throw new FebsException(mallGoods.getGoodsName() + "库存不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer skuResult = mallGoodsSkuMapper.updateStockAndVolumeBySkuId(sku.getId(),mallOrderItem.getCnt()); | 
|---|
|  |  |  | if(1 != skuResult){ | 
|---|
|  |  |  | throw new FebsException(sku.getSkuName() + "库存不足"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|