wangzhijun 6 өдөр өмнө
parent
commit
87774e5dad

+ 8 - 0
nightFragrance-admin/src/main/java/com/ylx/web/controller/massage/ProductOrderController.java

@@ -169,4 +169,12 @@ public class ProductOrderController extends BaseController {
         return R.ok();
     }
 
+    @PreAuthorize("@ss.hasPermi('product:order:edit')")
+    @PutMapping("/admin/edit/consignees/info")
+    @ApiOperation("积分订单管理详情修改收货人信息接口")
+    public R editConsigneesInfo(@Validated @RequestBody ProductOrderOperateDTO dto) {
+        this.productOrderInfoService.editConsigneesInfo(dto);
+        return R.ok();
+    }
+
 }

+ 10 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/domain/dto/ProductOrderOperateDTO.java

@@ -11,10 +11,19 @@ import javax.validation.constraints.NotNull;
 public class ProductOrderOperateDTO {
 
     @NotNull(message = "订单ID不能为空")
-    @ApiModelProperty("订单ID")
+    @ApiModelProperty(value = "订单ID", required = true)
     private Long orderId;
 
     @ApiModelProperty("操作备注/原因")
     private String remark;
 
+    @ApiModelProperty("用户姓名")
+    private String userName;
+
+    @ApiModelProperty("用户电话")
+    private String userPhone;
+
+    @ApiModelProperty("用户详细地址")
+    private String userAddress;
+
 }

+ 1 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/AfterSaleOrderFeeVo.java

@@ -11,7 +11,7 @@ import java.math.BigDecimal;
 public class AfterSaleOrderFeeVo {
 
     @ApiModelProperty("费用ID")
-    private Long id;
+    private String id;
 
     @ApiModelProperty("费用类型")
     private String type;

+ 3 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/OrderAfterSaleVo.java

@@ -1,5 +1,6 @@
 package com.ylx.massage.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -12,12 +13,13 @@ import java.util.List;
 public class OrderAfterSaleVo {
 
     @ApiModelProperty("售后信息ID")
-    private Long afterSaleOrderId;
+    private String afterSaleOrderId;
 
     @ApiModelProperty("售后类型:1退货 2换货")
     private Integer afterSaleType;
 
     @ApiModelProperty("申请时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private LocalDateTime createTime;
 
     @ApiModelProperty("申请原因")

+ 15 - 1
nightFragrance-massage/src/main/java/com/ylx/massage/domain/vo/OrderBaseInfoVo.java

@@ -1,6 +1,7 @@
 package com.ylx.massage.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.annotation.JsonIgnore;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -58,7 +59,20 @@ public class OrderBaseInfoVo {
     @ApiModelProperty("订单备注")
     private String buyerRemark;
 
-    @ApiModelProperty("地址ID")
+    @JsonIgnore
+    @ApiModelProperty(value = "地址ID", hidden = true)
     private Long addressId;
 
+    @JsonIgnore
+    @ApiModelProperty(value = "用户姓名", hidden = true)
+    private String userName;
+
+    @JsonIgnore
+    @ApiModelProperty(value ="用户电话", hidden = true)
+    private String userPhone;
+
+    @JsonIgnore
+    @ApiModelProperty(value ="用户详细地址", hidden = true)
+    private String userAddress;
+
 }

+ 2 - 0
nightFragrance-massage/src/main/java/com/ylx/massage/service/IProductOrderInfoService.java

@@ -66,4 +66,6 @@ public interface IProductOrderInfoService extends IService<ProductOrderInfo> {
     ProductOrderCountVo adminPageStats();
 
     void editLogisticsNo(ProductOrderEditLogisticsNo dto);
+
+    void editConsigneesInfo(ProductOrderOperateDTO dto);
 }

+ 36 - 24
nightFragrance-massage/src/main/java/com/ylx/massage/service/impl/ProductOrderInfoServiceImpl.java

@@ -1,6 +1,8 @@
 package com.ylx.massage.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -178,7 +180,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     /**
      * 构建订单商品明细
      *
-     * @param request 订单创建请求
+     * @param request   订单创建请求
      * @param orderInfo 订单主表信息
      * @return ProductOrderItem 订单商品明细
      */
@@ -206,6 +208,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
 
     /**
      * 支付订单
+     *
      * @param productOrderPayRequest 订单支付请求
      * @return R 订单支付结果
      * @throws Exception
@@ -235,7 +238,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
             //微信支付
             R resp = rechargeService.getPay(orderInfo.getOrderNo(), orderInfo.getTotalAmount(), orderInfo.getOpenId(), BillTypeEnum.WX_PAY.getInfo(), BillTypeEnum.WX_PAY.getCode().toString());
             return resp;
-        }else{
+        } else {
             //余额支付
             TWxUser user = wxUserService.getByOpenId(orderInfo.getOpenId());
             if (null == user) {
@@ -278,7 +281,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
         if (orderInfo.getPayType().equals(MassageConstants.INTEGER_TWO)) {
             tConsumptionLog.setBillType(BillTypeEnum.BALANCE_PAYMENT.getCode());
             tConsumptionLog.setNote("余额支付");
-        } else if(orderInfo.getPayType().equals(MassageConstants.INTEGER_ONE)){
+        } else if (orderInfo.getPayType().equals(MassageConstants.INTEGER_ONE)) {
             tConsumptionLog.setBillType(BillTypeEnum.WX_PAY.getCode());
             tConsumptionLog.setNote("微信支付");
         }
@@ -297,7 +300,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     /**
      * 分页查询用户商品订单列表
      *
-     * @param page 分页参数
+     * @param page   分页参数
      * @param openId 用户openId
      * @return Page<ProductOrderListVo> 订单分页列表
      */
@@ -322,7 +325,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
      * 查询订单详情
      *
      * @param orderNo 订单编号
-     * @param openId 用户openId
+     * @param openId  用户openId
      * @return ProductOrderDetailVo 订单详情
      */
     @Override
@@ -406,8 +409,8 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     /**
      * 释放库存并更新订单状态(事务内执行)
      *
-     * @param order 订单信息
-     * @param orderItem 订单商品明细
+     * @param order        订单信息
+     * @param orderItem    订单商品明细
      * @param cancelReason 取消原因
      */
     @Transactional(rollbackFor = Exception.class)
@@ -491,13 +494,13 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
 
         // 1. 订单基础信息
         OrderBaseInfoVo orderBaseInfo = this.productOrderInfoMapper.getOrderBaseInfoById(orderId);
-        if(ObjectUtil.isNull(orderBaseInfo)){
+        if (ObjectUtil.isNull(orderBaseInfo)) {
             throw new ServiceException("订单不存在");
         }
         vo.setOrderBaseInfo(orderBaseInfo);
 
         // 2. 收货人信息
-        ReceiverInfoVo receiverInfo = getReceiverInfo(orderBaseInfo.getAddressId());
+        ReceiverInfoVo receiverInfo = getReceiverInfo(orderBaseInfo);
         vo.setReceiverInfo(receiverInfo);
 
         // 3. 商品列表
@@ -520,10 +523,8 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     @Transactional(rollbackFor = Exception.class)
     public void editLogisticsNo(ProductOrderEditLogisticsNo dto) {
 
-        ProductOrderInfo productOrderInfo = this.productOrderInfoMapper.selectById(dto.getOrderId());
-        if(ObjectUtil.isNull(productOrderInfo)){
-            throw new ServiceException("订单不存在");
-        }
+        // 查询并校验订单(公共方法提取)
+        ProductOrderInfo productOrderInfo = getAndCheckOrder(dto.getOrderId(), null);
 
         productOrderInfo.setLogisticsNo(dto.getLogisticsNo());
         productOrderInfo.setUpdateTime(LocalDateTime.now());
@@ -532,6 +533,19 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
         this.productOrderInfoMapper.updateById(productOrderInfo);
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void editConsigneesInfo(ProductOrderOperateDTO dto) {
+
+        // 查询并校验订单(公共方法提取)
+        ProductOrderInfo productOrderInfo = getAndCheckOrder(dto.getOrderId(), null);
+
+        BeanUtil.copyProperties(dto, productOrderInfo);
+        productOrderInfo.setUpdateTime(LocalDateTime.now());
+
+        this.productOrderInfoMapper.updateById(productOrderInfo);
+    }
+
     private WxLoginUser getCurrentWxLoginUser() {
         WxLoginUser loginUser = SecurityUtils.getWxLoginUser();
         if (ObjectUtil.isNull(loginUser)) {
@@ -542,8 +556,11 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
 
     private ProductOrderInfo getAndCheckOrder(Long orderId, String openId) {
         LambdaQueryWrapper<ProductOrderInfo> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(ProductOrderInfo::getId, orderId)
-                .eq(ProductOrderInfo::getOpenId, openId);
+        queryWrapper.eq(ProductOrderInfo::getId, orderId);
+
+        if (StrUtil.isNotBlank(openId)) {
+            queryWrapper.eq(ProductOrderInfo::getOpenId, openId);
+        }
 
         // 订单是单条,直接用 selectOne 更合理
         ProductOrderInfo orderInfo = this.productOrderInfoMapper.selectOne(queryWrapper);
@@ -553,16 +570,11 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
         return orderInfo;
     }
 
-    private ReceiverInfoVo getReceiverInfo(Long addressId) {
+    private ReceiverInfoVo getReceiverInfo(OrderBaseInfoVo vo) {
         ReceiverInfoVo receiverInfo = new ReceiverInfoVo();
-        if (ObjectUtil.isNotNull(addressId)) {
-            TAddress address = this.addressService.getById(addressId);
-            if (ObjectUtil.isNotNull(address)) {
-                receiverInfo.setReceiverName(address.getUserName());
-                receiverInfo.setReceiverPhone(address.getPhone());
-                receiverInfo.setFullAddress(address.getAddress());
-            }
-        }
+        receiverInfo.setReceiverName(vo.getUserName());
+        receiverInfo.setReceiverPhone(vo.getUserPhone());
+        receiverInfo.setFullAddress(vo.getUserAddress());
         return receiverInfo;
     }
 

+ 4 - 1
nightFragrance-massage/src/main/resources/mapper/massage/ProductOrderInfoMapper.xml

@@ -166,7 +166,10 @@
             poi.create_time,
             poi.logistics_no,
             poi.buyer_remark,
-            poi.address_id
+            poi.address_id,
+            poi.user_name,
+            poi.user_phone,
+            poi.user_address
         FROM
             product_order_info poi
         LEFT JOIN product_order_item item ON poi.id = item.order_id