Эх сурвалжийг харах

feat(sys): 优化取消预约接口实现

- 新增 CannelOrderDTO 用于接收取消预约请求数据
- 将取消预约接口由 GET 改为 POST,使用请求体传递数据
- 取消预约服务方法参数调整为 DTO,支持取消原因传递
- 取消预约时设置取消原因 cancelRemark
- 增加预约数据存在及权限校验逻辑
zhangxf 1 сар өмнө
parent
commit
bba4a0af41

+ 3 - 3
src/main/java/com/jtzx/crm/module/api/web/sys/CustomerDataPrivateController.java

@@ -138,9 +138,9 @@ public class CustomerDataPrivateController {
     }
 
     @Operation(summary = "去消预约跟进接口")
-    @GetMapping(value = "/customer/data/cancelOrder/{id}", produces = "application/json;charset=UTF-8")
-    public ApiResult<Void> cancelOrder(@PathVariable Long id) {
-        sysCustomerFollowService.cancelOrder(id);
+    @PostMapping(value = "/customer/data/cancelOrder", produces = "application/json;charset=UTF-8")
+    public ApiResult<Void> cancelOrder(@RequestBody CannelOrderDTO dto) {
+        sysCustomerFollowService.cancelOrder(dto);
         return ApiResult.success();
     }
 }

+ 34 - 0
src/main/java/com/jtzx/crm/module/sys/model/request/CannelOrderDTO.java

@@ -0,0 +1,34 @@
+package com.jtzx.crm.module.sys.model.request;
+
+import cc.uncarbon.framework.core.constant.HelioConstant;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.Accessors;
+import lombok.experimental.SuperBuilder;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+
+/**
+ * 取消预约
+ */
+@Accessors(chain = true)
+@SuperBuilder
+@AllArgsConstructor
+@NoArgsConstructor
+@Data
+public class CannelOrderDTO implements Serializable {
+
+    @Schema(description = "主id")
+    private Long id;
+
+    @Schema(description = "预约取消原因")
+    private String cancelRemark;
+
+}

+ 4 - 2
src/main/java/com/jtzx/crm/module/sys/service/SysCustomerFollowService.java

@@ -10,6 +10,7 @@ import com.jtzx.crm.module.sys.common.QueueCommon;
 import com.jtzx.crm.module.sys.entity.*;
 import com.jtzx.crm.module.sys.mapper.*;
 import com.jtzx.crm.module.sys.model.request.AdminSysCustomerFollowInsertOrUpdateDTO;
+import com.jtzx.crm.module.sys.model.request.CannelOrderDTO;
 import com.jtzx.crm.module.sys.model.response.CustomerFollowOverViewBO;
 import com.jtzx.crm.module.sys.model.response.CustomerProductBO;
 import com.jtzx.crm.module.sys.model.response.CustomerProductOverViewBO;
@@ -93,9 +94,9 @@ public class SysCustomerFollowService {
     /**
      * 我的客户页面,预约待办列表去消预约操作
      */
-    public void cancelOrder(Long id) {
+    public void cancelOrder(CannelOrderDTO dto) {
         permissionService.publicPrivateCustomerPermission();
-        SysCustomerFollowEntity sysCustomerFollowEntity = sysCustomerFollowMapper.selectById(id);
+        SysCustomerFollowEntity sysCustomerFollowEntity = sysCustomerFollowMapper.selectById(dto.getId());
         if (sysCustomerFollowEntity == null) {
             throw new RuntimeException("预约数据不存在");
         }
@@ -106,6 +107,7 @@ public class SysCustomerFollowService {
             throw new RuntimeException("非本人预约不能取消");
         }
         sysCustomerFollowEntity.setOrderStatus(2);
+        sysCustomerFollowEntity.setCancelRemark(dto.getCancelRemark());
         sysCustomerFollowMapper.updateById(sysCustomerFollowEntity);
     }