Ver Fonte

Merge remote-tracking branch 'origin/point_dev' into point_dev

jinshihui há 6 dias atrás
pai
commit
38d5a55b80

+ 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("申请原因")

+ 16 - 2
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;
@@ -12,7 +13,7 @@ import java.time.LocalDateTime;
 public class OrderBaseInfoVo {
 
     @ApiModelProperty("订单ID")
-    private Long id;
+    private String id;
 
     @ApiModelProperty("订单号")
     private String orderNo;
@@ -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;
+
 }

+ 4 - 4
nightFragrance-massage/src/main/java/com/ylx/massage/enums/ProductOrderStatusEnum.java

@@ -23,19 +23,19 @@ public enum ProductOrderStatusEnum {
     WAIT_DELIVERY(1, "待发货"),
 
     /**
-     * 已发货
+     * 售后中
      */
-    DELIVERED(2, "已发货"),
+    AFTER_SALES(4, "售后中"),
 
     /**
      * 待收货
      */
-    WAIT_RECEIVE(3, "待收货"),
+    WAIT_RECEIVE(2, "待收货"),
 
     /**
      * 已收货
      */
-    RECEIVED(4, "已收货"),
+    RECEIVED(3, "已收货"),
 
     /**
      * 换货待审核

+ 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);
 }

+ 41 - 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;
@@ -186,7 +188,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     /**
      * 构建订单商品明细
      *
-     * @param request 订单创建请求
+     * @param request   订单创建请求
      * @param orderInfo 订单主表信息
      * @return ProductOrderItem 订单商品明细
      */
@@ -214,6 +216,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
 
     /**
      * 支付订单
+     *
      * @param productOrderPayRequest 订单支付请求
      * @return R 订单支付结果
      * @throws Exception
@@ -243,7 +246,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) {
@@ -286,7 +289,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("微信支付");
         }
@@ -305,7 +308,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     /**
      * 分页查询用户商品订单列表
      *
-     * @param page 分页参数
+     * @param page   分页参数
      * @param openId 用户openId
      * @return Page<ProductOrderListVo> 订单分页列表
      */
@@ -330,7 +333,7 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
      * 查询订单详情
      *
      * @param orderNo 订单编号
-     * @param openId 用户openId
+     * @param openId  用户openId
      * @return ProductOrderDetailVo 订单详情
      */
     @Override
@@ -414,8 +417,8 @@ public class ProductOrderInfoServiceImpl extends ServiceImpl<ProductOrderInfoMap
     /**
      * 释放库存并更新订单状态(事务内执行)
      *
-     * @param order 订单信息
-     * @param orderItem 订单商品明细
+     * @param order        订单信息
+     * @param orderItem    订单商品明细
      * @param cancelReason 取消原因
      */
     @Transactional(rollbackFor = Exception.class)
@@ -499,13 +502,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. 商品列表
@@ -528,10 +531,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());
@@ -540,6 +541,24 @@ 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);
+
+        // 保证只有在待发货的状态才能修改
+        if(ObjectUtil.notEqual(ProductOrderStatusEnum.WAIT_DELIVERY.getCode(), productOrderInfo.getOrderStatus())){
+            throw new ServiceException("订单状态不是待发货状态无权限操作");
+        }
+
+        BeanUtil.copyProperties(dto, productOrderInfo);
+        productOrderInfo.setUpdateTime(LocalDateTime.now());
+
+        this.productOrderInfoMapper.updateById(productOrderInfo);
+    }
+
     private WxLoginUser getCurrentWxLoginUser() {
         WxLoginUser loginUser = SecurityUtils.getWxLoginUser();
         if (ObjectUtil.isNull(loginUser)) {
@@ -550,8 +569,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);
@@ -561,16 +583,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