瀏覽代碼

配送售后退货退款用户预约上门取件

fubojin 1 月之前
父節點
當前提交
eb092768df

+ 81 - 0
yami-shop-api/src/main/java/com/yami/shop/api/controller/RefundAppointmentController.java

@@ -0,0 +1,81 @@
+
+package com.yami.shop.api.controller;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.yami.shop.bean.model.OrderRefund;
+import com.yami.shop.bean.model.OrderRefundRecord;
+import com.yami.shop.bean.model.RefundAppointment;
+import com.yami.shop.common.exception.GlobalException;
+import com.yami.shop.common.util.R;
+import com.yami.shop.dao.OrderRefundRecordMapper;
+import com.yami.shop.service.OrderRefundService;
+import com.yami.shop.service.RefundAppointmentService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+
+@RestController
+@RequestMapping("/p/appointment")
+@Api(tags = "用户退款预约上门取件接口")
+@AllArgsConstructor
+public class RefundAppointmentController {
+
+    @Autowired
+    private RefundAppointmentService refundAppointmentService;
+    @Autowired
+    private OrderRefundService orderRefundService;
+    @Autowired
+    private OrderRefundRecordMapper orderRefundRecordMapper;
+    @PostMapping
+    @ApiOperation ("保存上门取件信息")
+    public R<Void> save(@RequestBody RefundAppointment refundAppointment) {
+        //添加填写物流信息轨迹
+        OrderRefund orderRefund = orderRefundService.getOne(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getRefundSn, refundAppointment.getRefundNumber()));
+
+        refundAppointmentService.save(refundAppointment);
+
+        if (ObjectUtil.isEmpty( orderRefund)){
+            throw new GlobalException("该退款单不存在");
+        }
+
+        orderRefund.setIsReturnLogistics(true);
+        orderRefundService.updateById(orderRefund);
+
+        OrderRefundRecord orderRefundRecord = new OrderRefundRecord();
+        orderRefundRecord.setOrderRefundId(orderRefund.getRefundId());
+        orderRefundRecord.setInstructions("商家收到商品井确认不影响二次销售后,将会为您处理退款");
+        Date date = new Date();
+        orderRefundRecord.setCreateTime(date);
+        orderRefundRecord.setUpdateTime(date);
+        orderRefundRecord.setAuditStatus(7);
+        orderRefundRecord.setSort(5);
+        orderRefundRecordMapper.insert(orderRefundRecord);
+        return R.SUCCESS();
+    }
+
+    @PutMapping
+    @ApiOperation ("更新上门取件信息")
+    public  R<Void> update(@RequestBody RefundAppointment refundAppointment) {
+        refundAppointmentService.updateById(refundAppointment);
+        return R.SUCCESS();
+    }
+
+
+    @GetMapping("/{refundNumber}")
+    @ApiOperation ("通过退款单号查询信息")
+    public R<RefundAppointment> getByRefundNumber(@PathVariable String refundNumber) {
+        RefundAppointment info = refundAppointmentService.getOne(new LambdaQueryWrapper<RefundAppointment>()
+                .eq(RefundAppointment::getRefundNumber, refundNumber)
+                .eq(RefundAppointment::getStatus, 0));
+        return R.SUCCESS(info);
+    }
+
+
+
+}

+ 3 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/app/dto/ApiOrderRefundDto.java

@@ -22,6 +22,9 @@ public class ApiOrderRefundDto {
     @ApiModelProperty("订单编号")
     private String orderNumber;
 
+    @ApiModelProperty("门店ID")
+    private Long shopId;
+
     @ApiModelProperty("订单总金额")
     private BigDecimal orderAmount;
 

+ 5 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/dto/OrderRefundDto.java

@@ -60,6 +60,11 @@ public class OrderRefundDto extends OrderRefund implements Serializable {
      */
     private RefundDelivery refundDelivery;
 
+    /**
+     * 门店ID
+     */
+    private Long shopId;
+
     /**
      * 店铺名称
      */

+ 83 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/model/RefundAppointment.java

@@ -0,0 +1,83 @@
+package com.yami.shop.bean.model;
+
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+@Data
+@ApiModel("退款预约信息")
+@TableName("tz_refund_appointment")
+public class RefundAppointment {
+    /**
+     * 预约ID
+     */
+    @TableId
+    private Long id;
+    /**
+     * 退款单号
+     */
+    @ApiModelProperty(value = "退款单号")
+    private String refundNumber;
+
+    /**
+     * 客户姓名
+     */
+    @ApiModelProperty(value = "客户姓名")
+    private String customerName;
+
+    /**
+     * 联系电话
+     */
+    @ApiModelProperty(value = "联系电话")
+    private String phoneNumber;
+
+    /**
+     * 配送地址
+     */
+    @ApiModelProperty(value = "配送地址")
+    private String deliveryAddress;
+
+    /**
+     * 退货方式(1-上门取件,2用户自送)
+     */
+    @ApiModelProperty(value = "退货方式(1-上门取件,2用户自送)")
+    private Integer refundMethod;
+
+    /**
+     * 运费
+     */
+    @ApiModelProperty(value = "运费")
+    private Double shippingFee;
+
+    /**
+     * 是否已经支付运费
+     */
+    @ApiModelProperty(value = "是否已经支付运费")
+    private Boolean hasPaidShippingFee;
+
+    /**
+     * 预约时间
+     */
+    @ApiModelProperty(value = "预约时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date appointmentTime;
+
+    /**
+     * 特殊要求
+     */
+    @ApiModelProperty(value = "特殊要求")
+    private String specialRequirements;
+
+    /**
+     * 预约状态(0-待处理,1-已确认,2-已完成,3-已取消)
+     */
+    @ApiModelProperty(value = "预约状态(0-待处理,1-已确认,2-已完成,3-已取消)")
+    private Integer status;
+
+}

+ 3 - 4
yami-shop-common/src/main/java/com/yami/shop/common/util/R.java

@@ -1,9 +1,8 @@
 package com.yami.shop.common.util;
 
 /**
- * <p>TODO</p>
  *
- * @author mr wang
+ * @author fubojin
  * @version 1.0.0
  * @since 2025-08-26
  */
@@ -18,8 +17,8 @@ import lombok.NoArgsConstructor;
  * <p>统一响应结果</p>
  *
  * @param <T> 任意泛型
- * @author 王坚
- * @time 2018-11-8
+ * @author fubojin
+ * @time 2025-08-26
  */
 @Data
 @AllArgsConstructor

+ 2 - 2
yami-shop-platform/src/main/resources/application.yml

@@ -1,8 +1,8 @@
 spring:
   # 环境 dev|prod|docker quartz定时任务
   profiles:
-#    active: dev
-    active: prod
+    active: dev
+#    active: prod
   #文件上传设置
   servlet:
 

+ 1 - 4
yami-shop-security/yami-shop-security-api/src/main/java/com/yami/shop/security/api/config/ResourceServerConfiguration.java

@@ -47,10 +47,7 @@ public class ResourceServerConfiguration extends ResourceServerConfigurerAdapter
 
                 .authorizeRequests()
                 .antMatchers(
-                        "/p/delivery/getDeliveryList",
-                        "/p/order/orderNumber",
-                        "/p/refundAddr/**",
-                        "/p/orderRefund/**"
+                        "/p/appointment/**"
                         ).permitAll()
                 .and()
 

+ 9 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/RefundAppointmentMapper.java

@@ -0,0 +1,9 @@
+
+package com.yami.shop.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yami.shop.bean.model.RefundAppointment;
+
+public interface RefundAppointmentMapper extends BaseMapper<RefundAppointment> {
+
+}

+ 13 - 0
yami-shop-service/src/main/java/com/yami/shop/service/RefundAppointmentService.java

@@ -0,0 +1,13 @@
+
+package com.yami.shop.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.yami.shop.bean.model.RefundAppointment;
+
+/**
+ * @author fubojin
+ */
+public interface RefundAppointmentService extends IService<RefundAppointment> {
+
+
+}

+ 16 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/RefundAppointmentImpl.java

@@ -0,0 +1,16 @@
+
+package com.yami.shop.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.yami.shop.bean.model.RefundAppointment;
+import com.yami.shop.dao.RefundAppointmentMapper;
+import com.yami.shop.service.RefundAppointmentService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author fubojin
+ */
+@Service
+public class RefundAppointmentImpl extends ServiceImpl<RefundAppointmentMapper, RefundAppointment> implements RefundAppointmentService {
+
+}

+ 1 - 0
yami-shop-service/src/main/resources/mapper/PointsRechargeMapper.xml

@@ -13,5 +13,6 @@
               <if test="channelId != null"> channel_id = #{channelId}</if>
         </where>
         GROUP BY channel_id, channel_name
+        ORDER BY create_time DESC
     </select>
 </mapper>