From c8ea2d96f5b0522a09f3203ae98fe796084d2d15 Mon Sep 17 00:00:00 2001 From: Pu Zhibing <393733352@qq.com> Date: 星期六, 04 一月 2025 09:34:21 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 66 ++++++++++++++++++--------------- 1 files changed, 36 insertions(+), 30 deletions(-) diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index 585c0f4..e3bc81d 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -12,9 +12,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; +import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.order.enums.OrderStatus; -import com.ruoyi.order.enums.OrderType; import com.ruoyi.order.mapper.OrderGoodMapper; import com.ruoyi.order.mapper.OrderMapper; import com.ruoyi.order.model.Order; @@ -130,9 +130,6 @@ orderGoodsVO.setOriginalPrice(goods.getOriginalPrice()); goodsList.add(orderGoodsVO); } - - - // 收货地址 String addressJson = order.getAddressJson(); UserAddress userAddress = new UserAddress(); @@ -140,7 +137,6 @@ userAddress = JSONObject.parseObject(addressJson, UserAddress.class); } - // 优惠券 String couponJson = order.getCouponJson(); CouponInfo couponInfo = new CouponInfo(); @@ -154,7 +150,6 @@ if (StringUtils.isNotEmpty(activityJson)){ orderActivityInfo = JSONObject.parseObject(activityJson, OrderActivityInfo.class); } - OrderDetailVO orderDetailVO = new OrderDetailVO(); if (CollectionUtil.isNotEmpty(orderGoods)){ @@ -235,9 +230,6 @@ if (!check){ throw new ServiceException("订单不存在"); } - order.setOrderStatus(OrderStatus.COMPLETED.getCode()); - orderMapper.updateById(order); - Integer orderType = order.getOrderType(); // 售后设置 R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5); @@ -251,7 +243,11 @@ String content = baseSetting.getContent(); JSONObject jsonObject = JSONObject.parseObject(content); Long days = jsonObject.getLong("days"); - commissionService.addToCommissionDelayQueue(order.getId(), LocalDateTime.now().plusDays(days)); + order.setOrderStatus(OrderStatus.COMPLETED.getCode()); + order.setIsCommission(0); + order.setAfterSaleTime(LocalDateTime.now().plusDays(days)); + order.setEndTime(LocalDateTime.now()); + orderMapper.updateById(order); } @@ -261,7 +257,7 @@ * @return */ @Override - public List<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) { + public PageInfo<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) { Long userid = tokenService.getLoginUser().getUserid(); SysUser sysUser = sysUserClient.getSysUser(userid).getData(); if(2 == sysUser.getRoleType()){ @@ -292,14 +288,16 @@ } } - List<OrderPageListVo> list = this.baseMapper.getOrderPageList(orderPageList); + PageInfo<OrderPageListVo> pageInfo = new PageInfo(orderPageList.getPageCurr(), orderPageList.getPageSize()); + + List<OrderPageListVo> list = this.baseMapper.getOrderPageList(pageInfo, orderPageList); for (OrderPageListVo orderPageListVo : list) { Long appUserId = orderPageListVo.getAppUserId(); AppUser appUser = appUserClient.getAppUserById(appUserId); orderPageListVo.setUserName(appUser.getName()); orderPageListVo.setPhone(appUser.getPhone()); } - return list; + return pageInfo.setRecords(list); } @@ -310,7 +308,7 @@ * @return */ @Override - public R confirmDelivery(String orderId, String code) { + public R confirmDelivery(Long orderId, String code) { Order order = this.getById(orderId); if(1 == order.getPayStatus()){ return R.fail("订单还未完成支付"); @@ -337,11 +335,21 @@ @Override public R cancelOrder(Long orderId) { Order order = this.getById(orderId); - if(Arrays.asList(4, 5, 6, 7, 8).contains(order.getOrderStatus())){ + if(Arrays.asList(5, 6, 7).contains(order.getOrderStatus())){ return R.fail("无效的操作"); } order.setOrderStatus(5); this.updateById(order); + refundPayMoney(order); + return R.ok(); + } + + + /** + * 返回订单支付金额和回退积分和会员等级 + * @param order + */ + public void refundPayMoney(Order order){ //开始退款 Integer payMethod = order.getPayMethod(); BigDecimal paymentAmount = order.getPaymentAmount(); @@ -351,16 +359,18 @@ } if(2 == payMethod){ //余额退款 - OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, orderId)); + OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, order.getId())); BigDecimal balance = appUser.getBalance(); - appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); - appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); + if(null != orderBalancePayment){ + appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); + appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); + } appUser.setBalance(balance.add(paymentAmount).setScale(2, RoundingMode.HALF_EVEN)); appUser.setShopAmount(appUser.getShopAmount().subtract(paymentAmount).setScale(2, RoundingMode.HALF_EVEN)); - + //构建账户余额流水明细 BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); - balanceChangeRecord.setOrderId(orderId); + balanceChangeRecord.setOrderId(order.getId()); balanceChangeRecord.setAppUserId(order.getAppUserId()); balanceChangeRecord.setChangeType(6); balanceChangeRecord.setBeforeAmount(balance); @@ -374,7 +384,7 @@ if(3 == payMethod){ //积分退款 appUser.setLavePoint(appUser.getLavePoint() + order.getPoint()); - + //开始运费退款,积分支付,运费是单独进行支付的,所以需要单独退款 if(null != order.getExpressAmount() && BigDecimal.ZERO.compareTo(order.getExpressAmount()) < 0){ BigDecimal expressAmount = order.getExpressAmount(); @@ -383,14 +393,14 @@ } if(2 == order.getExpressPayMethod()){ //余额退款 - OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, orderId)); + OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, order.getId())); BigDecimal balance = appUser.getBalance(); appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); appUser.setBalance(balance.add(expressAmount).setScale(2, RoundingMode.HALF_EVEN)); //构建账户余额流水明细 BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); - balanceChangeRecord.setOrderId(orderId); + balanceChangeRecord.setOrderId(order.getId()); balanceChangeRecord.setAppUserId(order.getAppUserId()); balanceChangeRecord.setChangeType(6); balanceChangeRecord.setBeforeAmount(balance); @@ -409,7 +419,7 @@ PointSetting pointSetting = pointSettingClient.getPointSetting(vipDemotion ? appUser.getVipId() - 1 : appUser.getVipId()).getData(); int earnPoint1 = getPoint; if(null != pointSetting && 1 == pointSetting.getBuyPointOpen()){ - earnPoint1 = getPoint / (100 - pointSetting.getBuyPoint()); + earnPoint1 = new BigDecimal(getPoint).divide(pointSetting.getBuyPoint().divide(new BigDecimal(100))).intValue(); } appUser.setLavePoint(lavePoint - getPoint); appUser.setShopPoint(appUser.getShopPoint() - earnPoint1); @@ -426,10 +436,9 @@ userPoint.setBalance(appUser.getLavePoint()); userPoint.setCreateTime(LocalDateTime.now()); userPoint.setAppUserId(order.getAppUserId()); - userPoint.setObjectId(orderId); + userPoint.setObjectId(order.getId()); userPointClient.saveUserPoint(userPoint); appUserClient.editAppUserById(appUser); - return R.ok(); } @@ -444,10 +453,7 @@ VipSetting vipSetting = vipSettingClient.getVipSetting(vipId).getData(); Integer vipLevelUpShopRole = vipSetting.getVipLevelUpShopRole(); Integer vipLevelUpShop = vipSetting.getVipLevelUpShop(); - if(1 == vipLevelUpShopRole && shopPoint < vipLevelUpShop){ - return true; - } - return false; + return 1 == vipLevelUpShopRole && shopPoint < vipLevelUpShop; } -- Gitblit v1.7.1