Explorar o código

feat(order): 添加订单和退货状态管理功能

- 在CustomerContactServiceImpl中添加客户联系人查询时关联客户名称显示
- 新增updatePayStatus方法用于修改订单支付状态
- 新增updateReturnStatus方法用于修改退货状态
- 添加changePayStatus和changeReturnStatus控制器接口
- 优化代码导入和注释格式
- 添加customerName字段到CustomerContactVo用于显示客户名称
hurx hai 5 días
pai
achega
427d23eaa6

+ 2 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/CustomerContactVo.java

@@ -148,5 +148,7 @@ public class CustomerContactVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    private String customerName;
 
+    private Date createTime;
 }

+ 13 - 9
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CustomerContactServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.customer.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -9,7 +10,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.dromara.common.core.enums.IsDefault;
 import org.dromara.common.core.enums.SysPlatformYesNo;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -19,12 +19,10 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.redis.utils.SequenceUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.customer.domain.CustomerContact;
-import org.dromara.customer.domain.CustomerShippingAddress;
+import org.dromara.customer.domain.CustomerInfo;
 import org.dromara.customer.domain.bo.CustomerContactBo;
-import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
 import org.dromara.customer.domain.vo.CustomerContactVo;
 import org.dromara.customer.domain.vo.CustomerInfoVo;
-import org.dromara.customer.domain.vo.CustomerShippingAddressVo;
 import org.dromara.customer.mapper.CustomerContactMapper;
 import org.dromara.customer.mapper.CustomerInfoMapper;
 import org.dromara.customer.service.ICustomerContactService;
@@ -35,10 +33,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.Duration;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -85,7 +80,16 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
     public TableDataInfo<CustomerContactVo> queryPageList(CustomerContactBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<CustomerContact> lqw = buildQueryWrapper(bo);
         Page<CustomerContactVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-
+        List<CustomerContactVo> records = result.getRecords();
+        if (ObjectUtil.isNotEmpty(records)) {
+            Set<Long> customerIds = records.stream().map(CustomerContactVo::getCustomerId).collect(Collectors.toSet());
+            List<CustomerInfo> customerInfos = customerInfoMapper.selectByIds(customerIds);
+            Map<Long, String> customerNameMap = customerInfos.stream().collect(Collectors.toMap(CustomerInfo::getId, CustomerInfo::getCustomerName));
+
+            records.forEach(item -> {
+                item.setCustomerName(customerNameMap.get(item.getCustomerId()));
+            });
+        }
         return TableDataInfo.build(result);
     }
 

+ 9 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderMainController.java

@@ -19,7 +19,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.tenant.helper.PlatformHelper;
 import org.dromara.common.web.core.BaseController;
-import org.dromara.order.domain.OrderProduct;
 import org.dromara.order.domain.bo.OrderMainBo;
 import org.dromara.order.domain.bo.OrderProductBo;
 import org.dromara.order.domain.vo.OrderMainVo;
@@ -217,4 +216,13 @@ public class OrderMainController extends BaseController {
     public R<Void> checkStatus(@RequestBody OrderMainBo bo) {
         return toAjax(orderMainService.updateCheckStatus(bo));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "订单主信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/changePayStatus")
+    public R<Void> changePayStatus(@RequestBody OrderMainBo bo) {
+        return toAjax(orderMainService.updatePayStatus(bo));
+    }
 }

+ 23 - 14
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderReturnController.java

@@ -1,26 +1,26 @@
 package org.dromara.order.controller;
 
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.order.domain.vo.OrderReturnVo;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
 import org.dromara.order.domain.bo.OrderReturnBo;
+import org.dromara.order.domain.vo.OrderReturnVo;
 import org.dromara.order.service.IOrderReturnService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 退货主
@@ -103,4 +103,13 @@ public class OrderReturnController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(orderReturnService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "退货主", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeReturnStatus")
+    public R<Void> changeReturnStatus(@RequestBody OrderReturnBo bo) {
+        return toAjax(orderReturnService.updateReturnStatus(bo));
+    }
 }

+ 3 - 0
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderMainService.java

@@ -85,6 +85,9 @@ public interface IOrderMainService extends IService<OrderMain> {
 
     int updateStatus(OrderMainBo bo);
 
+    /*修改支付状态*/
+    int updatePayStatus(OrderMainBo bo);
+
 
     Boolean orderPay(Long customerId, Long orderId, String payType);
 

+ 7 - 4
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderReturnService.java

@@ -2,12 +2,12 @@ package org.dromara.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import jakarta.validation.constraints.NotNull;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.order.domain.OrderReturn;
 import org.dromara.order.domain.OrderReturnPickCrrc;
-import org.dromara.order.domain.vo.OrderReturnVo;
 import org.dromara.order.domain.bo.OrderReturnBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.order.domain.vo.OrderReturnVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -18,7 +18,7 @@ import java.util.List;
  * @author LionLi
  * @date 2026-01-05
  */
-public interface IOrderReturnService extends IService<OrderReturn>{
+public interface IOrderReturnService extends IService<OrderReturn> {
 
     /**
      * 查询退货主
@@ -61,6 +61,8 @@ public interface IOrderReturnService extends IService<OrderReturn>{
      */
     Boolean updateByBo(OrderReturnBo bo);
 
+    int updateReturnStatus(OrderReturnBo bo);
+
     /**
      * 校验并批量删除退货主信息
      *
@@ -72,6 +74,7 @@ public interface IOrderReturnService extends IService<OrderReturn>{
 
     /**
      * 查询中车售后订单
+     *
      * @param bo
      * @param pageQuery
      * @return

+ 15 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderMainServiceImpl.java

@@ -612,7 +612,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
                 this.update(Wrappers.lambdaUpdate(OrderMain.class)
                     .eq(OrderMain::getId, orderId)
                     .set(OrderMain::getOrderStatus, 1)); // 假设 1 代表某种特定状态,需确认枚举值
-            }else {
+            } else {
                 log.info("失败初始化审批流程,订单ID: {}", orderId);
                 this.update(Wrappers.lambdaUpdate(OrderMain.class)
                     .eq(OrderMain::getId, orderId)
@@ -862,6 +862,20 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
         return baseMapper.updateById(order);
     }
 
+    /**
+     * 修改支付状态
+     *
+     * @param bo 信息
+     * @return 结果
+     */
+    @Override
+    public int updatePayStatus(OrderMainBo bo) {
+        OrderMain order = new OrderMain();
+        order.setId(bo.getId());
+        order.setPaymentStatus(bo.getPaymentStatus());
+        return baseMapper.updateById(order);
+    }
+
     /**
      * 修改审核状态
      *

+ 12 - 5
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderReturnServiceImpl.java

@@ -20,7 +20,6 @@ import org.dromara.order.domain.OrderReturnItem;
 import org.dromara.order.domain.OrderReturnPickCrrc;
 import org.dromara.order.domain.bo.OrderReturnBo;
 import org.dromara.order.domain.bo.OrderReturnItemBo;
-import org.dromara.order.domain.vo.OrderMainCrrcExtVo;
 import org.dromara.order.domain.vo.OrderReturnVo;
 import org.dromara.order.mapper.OrderReturnItemMapper;
 import org.dromara.order.mapper.OrderReturnMapper;
@@ -312,6 +311,14 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
         }
     }
 
+    @Override
+    public int updateReturnStatus(OrderReturnBo bo) {
+        OrderReturn orderReturn = new OrderReturn();
+        orderReturn.setId(bo.getId());
+        orderReturn.setReturnStatus(bo.getReturnStatus());
+        return baseMapper.updateById(orderReturn);
+    }
+
     /**
      * 保存前的数据校验
      */
@@ -340,7 +347,7 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
         lqw.eq(OrderReturn::getDataSource, "zhongche");
         Page<OrderReturnVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         List<OrderReturnVo> records = result.getRecords();
-        if (CollUtil.isNotEmpty( records)){
+        if (CollUtil.isNotEmpty(records)) {
             // 2. 提取所有orderId组成集合(去重,减少查询次数)
             Set<Long> orderIdSet = records.stream()
                 .map(OrderReturnVo::getOrderId) // 假设orderId是Long类型,根据实际类型调整
@@ -397,8 +404,8 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
                     String buyerName = ext.getBuyerName();    // 获取买家姓名
                     String buyerMobile = ext.getBuyerMobile();// 获取买家手机号
                     // 业务处理:比如赋值给订单对象、组装VO等
-                     orderReturnVo.setBuyerName(buyerName);
-                     orderReturnVo.setBuyerMobile(buyerMobile);
+                    orderReturnVo.setBuyerName(buyerName);
+                    orderReturnVo.setBuyerMobile(buyerMobile);
                 }
 
                 // 2. 赋值pick_type(新增逻辑)
@@ -409,7 +416,7 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
                 }
             }
 
-            }
+        }
         return TableDataInfo.build(result);
     }