From 0e928b86a1619af790abd7fb6e00b596dfb17164 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 30 Dec 2022 15:35:11 +0800 Subject: [PATCH] 20221227 充值归集 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallOrderInfoServiceImpl.java | 204 +++++++++++++++++++------------------------------- 1 files changed, 79 insertions(+), 125 deletions(-) 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 5832db5..f86db0a 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 @@ -14,10 +14,7 @@ import cc.mrbird.febs.mall.entity.*; import cc.mrbird.febs.mall.mapper.*; import cc.mrbird.febs.mall.service.*; -import cc.mrbird.febs.mall.vo.ApiShopApplyVo; -import cc.mrbird.febs.mall.vo.OrderDetailVo; -import cc.mrbird.febs.mall.vo.OrderListVo; -import cc.mrbird.febs.mall.vo.OrderRefundVo; +import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.pay.model.AgreementPayDto; import cc.mrbird.febs.pay.model.AgreementSignDto; import cc.mrbird.febs.pay.model.UnipayDto; @@ -99,6 +96,17 @@ if(memberLevelCode < goodsStarCode){ throw new FebsException("会员等级不够"); } + if (MallGoods.ISSALE_STATUS_DISABLED.equals(goods.getIsSale())) { + throw new FebsException(goods.getGoodsName() + "已下架"); + } + /** + * 存在未支付的订单无法下单 + */ + Integer orderIng = this.baseMapper.selectOrderInfoByStatusAndMemberId(OrderStatusEnum.FINISH.getValue(), mallMember.getId()); + if(1 <= orderIng){ + throw new FebsException("请先完成未完成的订单"); + } + /** * 会员一天最多下单次数 */ @@ -114,135 +122,54 @@ throw new FebsException("会员今日已无法购买"); } -// MallAddressInfo address = mallAddressInfoMapper.selectAddressInfoByMemberIdAndId(member.getId(), addOrderDto.getAddressId()); -// if (address == null) { -// throw new FebsException("地址不存在"); -// } - String orderNo = MallUtils.getOrderNum(); MallOrderInfo orderInfo = new MallOrderInfo(); orderInfo.setOrderNo(orderNo); orderInfo.setOrderTime(new Date()); orderInfo.setMemberId(member.getId()); orderInfo.setStatus(OrderStatusEnum.WAIT_PAY.getValue()); -// orderInfo.setName(address.getName()); -// orderInfo.setAddress(address.getArea() + address.getAddress()); -// orderInfo.setPhone(address.getPhone()); -// orderInfo.setLatitude(address.getLatitude()); -// orderInfo.setLongitude(address.getLongitude()); orderInfo.setRemark(addOrderDto.getRemark()); orderInfo.setOrderType(addOrderDto.getOrderType()); //补贴金额 orderInfo.setSubsidyAmount(goods.getSubsidyAmount()); - if (CollUtil.isEmpty(addOrderDto.getItems())) { - throw new FebsException("参数错误"); - } - -// int deliverType = ObjectUtil.isEmpty(addOrderDto.getDeliverType()) ? 1 : addOrderDto.getDeliverType(); -// if(2 == deliverType){ -// if(ObjectUtil.isEmpty(addOrderDto.getShopId())){ -// throw new FebsException("请选择门店"); -// } -// Long shopId = addOrderDto.getShopId(); -// MallShopApply mallShopApply = mallShopApplyMapper.selectById(shopId); -// if(ObjectUtil.isEmpty(mallShopApply)){ -// throw new FebsException("请选择门店"); -// } -// if(MallShopApply.APPLY_AGREE != mallShopApply.getStatus()){ -// throw new FebsException("请选择门店"); -// } -// orderInfo.setShopId(shopId); -// } this.baseMapper.insert(orderInfo); - BigDecimal total = BigDecimal.ZERO; - BigDecimal carriage = BigDecimal.ZERO; - for (AddOrderItemDto item : addOrderDto.getItems()) { - MallOrderItem orderItem = new MallOrderItem(); - - // 积分商品提交订单 - if (addOrderDto.getOrderType() == 2) { - MallGoods mallGoods = mallGoodsMapper.selectById(item.getSkuId()); - if (mallGoods.getStock() < item.getCnt()) { - throw new FebsException(mallGoods.getGoodsName() + "库存不足"); - } - - if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) { - throw new FebsException(mallGoods.getGoodsName() + "已下架"); - } - - BigDecimal amount = mallGoods.getScore().multiply(BigDecimal.valueOf(item.getCnt())); - orderItem.setAmount(amount); - orderItem.setCnt(item.getCnt()); - orderItem.setOrderId(orderInfo.getId()); - orderItem.setPrice(mallGoods.getScore()); - orderItem.setGoodsId(mallGoods.getId()); - orderItem.setGoodsName(mallGoods.getGoodsName()); - orderItem.setStyleName(mallGoods.getGoodsName()); - orderItem.setSkuName(mallGoods.getGoodsName()); - orderItem.setSkuImage(mallGoods.getThumb()); - - total = total.add(amount); - } else { - MallGoodsSku sku = mallGoodsSkuMapper.selectSkuInfoById(item.getSkuId()); + List<MallGoodsSku> mallGoodsSkus = mallGoodsSkuMapper.selectSkuByGoodsId(goods.getId()); + for (MallGoodsSku sku : mallGoodsSkus) { + MallOrderItem orderItem = new MallOrderItem(); if (sku == null) { throw new FebsException("购买商品或sku不存在"); } - if (sku.getStock() < item.getCnt()) { + if (sku.getStock() < 1) { throw new FebsException(sku.getSkuName() + "库存不足"); } - MallGoods mallGoods = mallGoodsMapper.selectById(sku.getGoodsId()); - - // 零撸专区购买 - if (new BigDecimal(mallGoods.getPresentPrice()).compareTo(BigDecimal.ZERO) == 0) { - List<MallOrderItem> items = mallOrderItemMapper.selectItemByGoodsIdUnCancel(mallGoods.getId(), member.getId()); - if (CollUtil.isNotEmpty(items)) { - throw new FebsException("无法重复领取同一个商品"); - } - } - - if (MallGoods.ISSALE_STATUS_DISABLED.equals(mallGoods.getIsSale())) { - throw new FebsException(mallGoods.getGoodsName() + "已下架"); - } - - BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(item.getCnt())); + BigDecimal amount = sku.getPresentPrice().multiply(BigDecimal.valueOf(1)); orderItem.setAmount(amount); - orderItem.setCnt(item.getCnt()); + orderItem.setCnt(1); orderItem.setOrderId(orderInfo.getId()); orderItem.setPrice(sku.getPresentPrice()); orderItem.setGoodsId(sku.getGoodsId()); - orderItem.setGoodsName(sku.getGoodsName()); + orderItem.setGoodsName(goods.getGoodsName()); orderItem.setSkuId(sku.getId()); orderItem.setStyleName(sku.getStyleName()); orderItem.setSkuName(sku.getSkuName()); orderItem.setSkuImage(sku.getSkuImage()); - orderItem.setIsNormal(mallGoods.getIsNormal()); + orderItem.setIsNormal(goods.getIsNormal()); orderItem.setCostPrice(sku.getCostPrice()); - total = total.add(amount); - carriage = carriage.add(mallGoods.getCarriage()); - - sku.setStock(sku.getStock() - item.getCnt()); - sku.setSkuVolume(sku.getSkuVolume() + item.getCnt()); + sku.setStock(sku.getStock() - 1); + sku.setSkuVolume(sku.getSkuVolume() + 1); mallGoodsSkuMapper.updateById(sku); - if (addOrderDto.getType() == 1) { + if (1 == addOrderDto.getType() ) { mallShoppingCartMapper.delBySkuId(sku.getId(), member.getId()); } - } - mallOrderItemMapper.insert(orderItem); + mallOrderItemMapper.insert(orderItem); } - - orderInfo.setAmount(total); -// if(2 == deliverType){ -// orderInfo.setDeliverType(2); -// orderInfo.setCarriage(BigDecimal.ZERO); -// }else{ -// orderInfo.setDeliverType(1); -// orderInfo.setCarriage(carriage); -// } + BigDecimal presentPrice = new BigDecimal(goods.getPresentPrice()).setScale(2,BigDecimal.ROUND_DOWN); + orderInfo.setAmount(presentPrice); this.baseMapper.updateById(orderInfo); agentProducer.sendOrderCancelDelayMsg(orderInfo.getId(), 15 * 60 * 1000L); @@ -371,7 +298,7 @@ Long payFlowId = mallMoneyFlowService.addMoneyFlow( member.getId(), orderInfo.getOrderNo(), - orderInfo.getAmount().negate().setScale(BigDecimal.ROUND_DOWN, 2), + orderInfo.getAmount().negate().setScale(2, BigDecimal.ROUND_DOWN), MallMoneyFlowTypeEnum.PAY.getCode(), MallMoneyFlow.STATUS_SUCCESS, MallMoneyFlow.IS_RETURN_N, @@ -527,18 +454,18 @@ OrderDetailVo orderDetailVo = MallOrderInfoConversion.INSTANCE.entityToDetailVo(orderInfo); - Integer deliverType = (ObjectUtil.isEmpty(orderInfo.getDeliverType()) ? new Integer(0):orderInfo.getDeliverType()); - if (orderInfo.getStatus() == OrderStatusEnum.WAIT_FINISH.getValue() && 2 != deliverType) { - MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId()); - orderDetailVo.setExpressNo(expressInfo.getExpressNo()); - orderDetailVo.setExpressCom(expressInfo.getExpressCom()); - } +// Integer deliverType = (ObjectUtil.isEmpty(orderInfo.getDeliverType()) ? new Integer(0):orderInfo.getDeliverType()); +// if (orderInfo.getStatus() == OrderStatusEnum.WAIT_FINISH.getValue() && 2 != deliverType) { +// MallExpressInfo expressInfo = expressInfoMapper.selectByOrderId(orderInfo.getId()); +// orderDetailVo.setExpressNo(expressInfo.getExpressNo()); +// orderDetailVo.setExpressCom(expressInfo.getExpressCom()); +// } - if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue() || orderInfo.getStatus() == OrderStatusEnum.REFUNDED.getValue()) { - MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId()); - OrderRefundVo orderRefundVo = MallOrderRefundConversion.INSTANCE.entityToVo(orderRefund); - orderDetailVo.setOrderRefund(orderRefundVo); - } +// if (orderInfo.getStatus() == OrderStatusEnum.REFUNDING.getValue() || orderInfo.getStatus() == OrderStatusEnum.REFUNDED.getValue()) { +// MallOrderRefund orderRefund = mallOrderRefundMapper.selectOrderRefundByOrderId(orderInfo.getId()); +// OrderRefundVo orderRefundVo = MallOrderRefundConversion.INSTANCE.entityToVo(orderRefund); +// orderDetailVo.setOrderRefund(orderRefundVo); +// } if (OrderStatusEnum.WAIT_PAY.getValue() == orderInfo.getStatus()) { Date endTime = DateUtil.offsetMinute(orderInfo.getOrderTime(), 15); @@ -546,20 +473,20 @@ long remainTime = DateUtil.between(new Date(), endTime, DateUnit.SECOND, false); orderDetailVo.setRemainTime(remainTime); } - if(2 == deliverType){ - MallShopApply mallShopApply = mallShopApplyMapper.selectById(orderInfo.getShopId()); - if(ObjectUtil.isNotEmpty(mallShopApply)){ - ApiShopApplyVo apiShopApplyVo = new ApiShopApplyVo(); - apiShopApplyVo.setName(mallShopApply.getName()); - apiShopApplyVo.setPhone(mallShopApply.getPhone()); - apiShopApplyVo.setSaleArea(mallShopApply.getSaleArea()); - apiShopApplyVo.setLatitude(mallShopApply.getLatitude()); - apiShopApplyVo.setLongitude(mallShopApply.getLongitude()); - apiShopApplyVo.setShopName(mallShopApply.getShopName()); - apiShopApplyVo.setAddress(mallShopApply.getAddress()); - orderDetailVo.setApiShopApplyVo(apiShopApplyVo); - } - } +// if(2 == deliverType){ +// MallShopApply mallShopApply = mallShopApplyMapper.selectById(orderInfo.getShopId()); +// if(ObjectUtil.isNotEmpty(mallShopApply)){ +// ApiShopApplyVo apiShopApplyVo = new ApiShopApplyVo(); +// apiShopApplyVo.setName(mallShopApply.getName()); +// apiShopApplyVo.setPhone(mallShopApply.getPhone()); +// apiShopApplyVo.setSaleArea(mallShopApply.getSaleArea()); +// apiShopApplyVo.setLatitude(mallShopApply.getLatitude()); +// apiShopApplyVo.setLongitude(mallShopApply.getLongitude()); +// apiShopApplyVo.setShopName(mallShopApply.getShopName()); +// apiShopApplyVo.setAddress(mallShopApply.getAddress()); +// orderDetailVo.setApiShopApplyVo(apiShopApplyVo); +// } +// } return orderDetailVo; } @@ -762,4 +689,31 @@ } } + @Override + public FebsResponse subsidyAmountInfo() { + MallMember member = LoginUserUtil.getLoginUser(); + ApiMallSubsidyAmountInfoVo apiMallSubsidyAmountInfoVo = new ApiMallSubsidyAmountInfoVo(); + DateTime today = DateUtil.date(); + DateTime yesterday = DateUtil.yesterday(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + String yyyyMMddToday = sdf.format(today); + String yyyyMMddYesterday = sdf.format(yesterday); + //今日补贴 + BigDecimal todayAmount = this.baseMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddToday,member.getId()); + apiMallSubsidyAmountInfoVo.setTodayAmount(todayAmount); + //累计接单 + Integer todayTotalCnt = this.baseMapper.selectCountByCreateTimeAndMemberId(null,member.getId()); + apiMallSubsidyAmountInfoVo.setTodayTotalCnt(todayTotalCnt); + //昨日补贴 + BigDecimal yesterdayAmount = this.baseMapper.selectTodayAmountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId()); + apiMallSubsidyAmountInfoVo.setYesterdayAmount(yesterdayAmount); + //昨日累计接单 + Integer totalYesterdayCnt = this.baseMapper.selectCountByCreateTimeAndMemberId(yyyyMMddYesterday,member.getId()); + apiMallSubsidyAmountInfoVo.setTotalYesterdayCnt(totalYesterdayCnt); + //获得总额 + BigDecimal totalAmount = this.baseMapper.selectTodayAmountByCreateTimeAndMemberId(null,member.getId()); + apiMallSubsidyAmountInfoVo.setTotalAmount(totalAmount); + return new FebsResponse().success().data(apiMallSubsidyAmountInfoVo); + } + } -- Gitblit v1.9.1