From a8d2cb07f6440dc54dc4005b0b06d5a47cb1517d Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 16 十二月 2024 13:34:03 +0800 Subject: [PATCH] 12.16 --- ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 79 +++++++++++++++++++++++++++++---------- 1 files changed, 59 insertions(+), 20 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 a59f576..433629f 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 @@ -1,5 +1,6 @@ package com.ruoyi.order.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -11,25 +12,25 @@ import com.ruoyi.common.core.utils.StringUtils; 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; +import com.ruoyi.order.model.OrderGood; +import com.ruoyi.order.service.CommissionService; import com.ruoyi.order.service.OrderService; import com.ruoyi.order.vo.OrderDetailVO; import com.ruoyi.order.vo.OrderGoodsVO; import com.ruoyi.order.vo.OrderVO; -import com.ruoyi.other.api.domain.CouponInfo; -import com.ruoyi.other.api.domain.Goods; -import com.ruoyi.other.api.domain.OrderActivityInfo; -import com.ruoyi.other.api.domain.Technician; +import com.ruoyi.other.api.domain.*; +import com.ruoyi.other.api.feignClient.BaseSettingClient; +import com.ruoyi.other.api.feignClient.ShopClient; import com.ruoyi.other.api.feignClient.TechnicianClient; import com.ruoyi.system.api.model.LoginUser; -import model.Order; -import model.OrderGood; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -54,6 +55,13 @@ private TokenService tokenService; @Resource private TechnicianClient technicianClient; + @Resource + private ShopClient shopClient; + @Resource + private CommissionService commissionService; + @Resource + private BaseSettingClient baseSettingClient; + @Override public List<OrderVO> selectOrderListByUserId(Integer status, Long userId) { @@ -69,6 +77,11 @@ if (order == null){ throw new ServiceException("订单不存在"); } + R<Shop> shopR = shopClient.getShopById(order.getShopId()); + if (!R.isSuccess(shopR)){ + throw new ServiceException("获取门店信息失败"); + } + // 商品 List<OrderGood> orderGoods = orderGoodMapper.selectList(new LambdaQueryWrapper<OrderGood>() .eq(OrderGood::getOrderId, orderId)); @@ -77,17 +90,17 @@ for (OrderGood orderGood : orderGoods) { String goodJson = orderGood.getGoodJson(); Goods goods = JSONObject.parseObject(goodJson, Goods.class); - OrderGoodsVO orderGoodsVO = new OrderGoodsVO(); orderGoodsVO.setGoodsId(orderGood.getGoodsId()); + orderGoodsVO.setNum(orderGood.getNum()); orderGoodsVO.setGoodsName(goods.getName()); orderGoodsVO.setType(goods.getType()); - orderGoodsVO.setNum(orderGood.getNum()); orderGoodsVO.setGoodsPic(goods.getHomePagePicture()); orderGoodsVO.setSellingPrice(goods.getSellingPrice()); orderGoodsVO.setOriginalPrice(goods.getOriginalPrice()); goodsList.add(orderGoodsVO); } + // 收货地址 @@ -113,7 +126,24 @@ } OrderDetailVO orderDetailVO = new OrderDetailVO(); + + if (CollectionUtil.isNotEmpty(orderGoods)){ + String goodJson = orderGoods.get(0).getGoodJson(); + Goods goods = JSONObject.parseObject(goodJson, Goods.class); + orderDetailVO.setDistributionMode(goods.getDistributionMode()); + } + + Technician technician = new Technician(); + if (order.getTechnicianId() != null){ + R<Technician> shopdetail = technicianClient.shopdetail(order.getTechnicianId()); + if (shopdetail.getCode() != R.SUCCESS){ + throw new ServiceException("获取技师信息失败"); + } + technician = shopdetail.getData(); + } + Shop shop = shopR.getData(); orderDetailVO.setId(order.getId()); + orderDetailVO.setOrderStatus(order.getOrderStatus()); orderDetailVO.setPoint(order.getPoint()); orderDetailVO.setAddressId(userAddress.getId()); orderDetailVO.setRecieveName(userAddress.getRecieveName()); @@ -129,6 +159,12 @@ orderDetailVO.setPointAmount(order.getGetPoint()); orderDetailVO.setPaymentAmount(order.getPaymentAmount()); orderDetailVO.setGoodsList(goodsList); + orderDetailVO.setShopName(shop.getName()); + orderDetailVO.setShopAddress(shop.getAddress()); + orderDetailVO.setLongitude(shop.getLongitude()); + orderDetailVO.setLatitude(shop.getLatitude()); + orderDetailVO.setShopId(shop.getId()); + orderDetailVO.setTechnicianName(technician.getName()); return orderDetailVO; } @@ -164,7 +200,7 @@ public void writeOff(String code,Integer shopId) { LoginUser loginUserApplet = tokenService.getLoginUserApplet(); Order order = orderMapper.selectOne(new LambdaQueryWrapper<Order>() - .eq(Order::getOrderNumber, code)); + .eq(Order::getId, code)); boolean check = check(order, shopId, loginUserApplet.getUserid()); if (!check){ throw new ServiceException("订单不存在"); @@ -172,16 +208,19 @@ order.setOrderStatus(OrderStatus.COMPLETED.getCode()); orderMapper.updateById(order); Integer orderType = order.getOrderType(); - if (orderType.equals(OrderType.SERVICE.getCode())){ - R<Technician> shopdetail = technicianClient.shopdetail(order.getTechnicianId()); - if (shopdetail.getCode() != R.SUCCESS){ - throw new ServiceException("获取技师信息失败"); - } - Technician technician = shopdetail.getData(); - R<Void> r = technicianClient.updateStatus(2, technician.getId()); - if (r.getCode() != R.SUCCESS){ - throw new ServiceException("修改技师状态失败"); - } + + // 售后设置 + R<BaseSetting> baseSettingR = baseSettingClient.getBaseSetting(5); + if (R.isError(baseSettingR)) { + throw new ServiceException("售后设置获取失败"); } + BaseSetting baseSetting = baseSettingR.getData(); + if (baseSetting == null) { + throw new ServiceException("售后设置获取失败"); + } + String content = baseSetting.getContent(); + JSONObject jsonObject = JSONObject.parseObject(content); + Long days = jsonObject.getLong("days"); + commissionService.addToCommissionDelayQueue(order.getId(), LocalDateTime.now().plusDays(days)); } } -- Gitblit v1.7.1