From ec73339e08669dc5a0d4ff93e6640f51473c08cd Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 11 一月 2025 18:03:50 +0800 Subject: [PATCH] 修改bug --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 100 ++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 88 insertions(+), 12 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 3a68b76..6153bb3 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 @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.account.api.feignClient.BalanceChangeRecordClient; @@ -135,6 +136,7 @@ orderGoodsVO.setType(goods.getType()); orderGoodsVO.setGoodsPic(goods.getHomePagePicture()); orderGoodsVO.setSellingPrice(goods.getSellingPrice()); + orderGoodsVO.setIntegral(goods.getIntegral()); orderGoodsVO.setOriginalPrice(goods.getOriginalPrice()); goodsList.add(orderGoodsVO); } @@ -230,10 +232,9 @@ @Override @Transactional(rollbackFor = Exception.class) - public void writeOff(String code,Integer shopId) { + public void writeOff(String id,Integer shopId) { LoginUser loginUserApplet = tokenService.getLoginUserApplet(); - Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>() - .eq(Order::getId, code)); + Order order = orderMapper.selectById(id); boolean check = check(order, shopId, loginUserApplet.getUserid()); if (!check){ throw new ServiceException("订单不存在"); @@ -302,13 +303,46 @@ for (OrderPageListVo orderPageListVo : list) { Long appUserId = orderPageListVo.getAppUserId(); AppUser appUser = appUserClient.getAppUserById(appUserId); - orderPageListVo.setUserName(appUser.getName()); - orderPageListVo.setPhone(appUser.getPhone()); + if(null != appUser){ + orderPageListVo.setUserName(appUser.getName()); + orderPageListVo.setPhone(appUser.getPhone()); + } + RefundPass one = refundPassService.getOne(new LambdaQueryWrapper<RefundPass>().eq(RefundPass::getOrderId, orderPageListVo.getId()).eq(RefundPass::getDelFlag, 0).last(" order by create_time desc limit 0, 1")); + orderPageListVo.setRefundPassId(null != one ? one.getId().toString() : null); } return pageInfo.setRecords(list); } - - + + + /** + * 小程序取消订单 + * @param orderId + * @return + */ + @Override + public R cancel(Long orderId) { + Order order = this.getById(orderId); + if(null == order){ + return R.fail("取消失败"); + } + Long userid = tokenService.getLoginUserApplet().getUserid(); + if(!order.getAppUserId().equals(userid)){ + return R.fail("取消失败"); + } + if(!Arrays.asList(1, 2, 3).contains(order.getOrderStatus())){ + return R.fail("订单取消失败"); + } + if(null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())){ + return R.fail("订单取消失败"); + } + order.setOrderStatus(5); + R r = refundPayMoney(order); + if(200 == r.getCode()){ + this.updateById(order); + } + return r; + } + /** * 确认发货操作 * @param orderId @@ -345,6 +379,9 @@ Order order = this.getById(orderId); if(Arrays.asList(5, 6, 7).contains(order.getOrderStatus())){ return R.fail("无效的操作"); + } + if(LocalDateTime.now().isAfter(order.getAfterSaleTime())){ + return R.fail("订单取消失败"); } order.setOrderStatus(5); R r = refundPayMoney(order); @@ -422,8 +459,10 @@ //余额退款 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(expressAmount).setScale(2, RoundingMode.HALF_EVEN)); //构建账户余额流水明细 BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); @@ -667,6 +706,18 @@ return R.fail("无效的操作"); } order.setOrderStatus(4); + R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5); + if (R.isError(baseSettingR)) { + return R.fail("售后设置获取失败"); + } + BaseSetting baseSetting = baseSettingR.getData(); + if (baseSetting == null) { + return R.fail("售后设置获取失败"); + } + String content = baseSetting.getContent(); + JSONObject jsonObject = JSONObject.parseObject(content); + Long days = jsonObject.getLong("days"); + order.setAfterSaleTime(LocalDateTime.now().plusDays(days)); this.updateById(order); return R.ok(); } @@ -686,9 +737,11 @@ orderInfo.setOrderStatus(order.getOrderStatus()); orderInfo.setCreateTime(order.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); - orderInfo.setUserName(appUser.getName()); - orderInfo.setPhone(appUser.getPhone()); - orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getExpressJson()) ? "单品-快递配送" : "单品-自提")); + if(null != appUser){ + orderInfo.setUserName(appUser.getName()); + orderInfo.setPhone(appUser.getPhone()); + } + orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getAddressJson()) ? "单品-快递配送" : "单品-上门自提")); Shop shop = shopClient.getShopById(order.getShopId()).getData(); if(null != shop){ orderInfo.setShopName(shop.getName()); @@ -730,4 +783,27 @@ orderInfo.setGoodsJson(JSON.toJSONString(goodsJson)); return orderInfo; } + + + /** + * 获取商品销售数量 + * @param goodsId + * @return + */ + @Override + public Integer getGoodsSaleNum(Integer goodsId, Integer type) { + return this.baseMapper.getGoodsSaleNum(goodsId, type); + } + + + /** + * 获取店铺订单数量 + * @param shopId + * @param type + * @return + */ + @Override + public Integer getShopSaleNum(Integer shopId, Integer type) { + return this.baseMapper.getShopSaleNum(shopId, type); + } } -- Gitblit v1.7.1