فهرست منبع

新增增加预约信息接口

woody 1 سال پیش
والد
کامیت
461a905465

+ 1 - 1
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/CategoryModifyParam.java

@@ -26,7 +26,7 @@ public class CategoryModifyParam implements Serializable {
      * 分类名称
      */
     @NotEmpty(message = "分类名称不能为空")
-    @Size(max = 100, message = "分类名称长度不能大于50")
+    @Size(max = 100, message = "分类名称长度不能大于100")
     private String name;
 
     /**

+ 37 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/param/ReservationModifyParam.java

@@ -0,0 +1,37 @@
+package com.chelvc.cloud.vehicle.api.param;
+
+import java.io.Serializable;
+import java.util.Date;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.experimental.SuperBuilder;
+
+/**
+ * 预约信息更新参数
+ *
+ * @author Woody
+ * @date 2023/7/17
+ */
+@Data
+@SuperBuilder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ReservationModifyParam implements Serializable {
+    /**
+     * 联系电话
+     */
+    @NotEmpty(message = "联系电话不能为空")
+    @Size(max = 50, message = "联系电话长度不能大于50")
+    private String mobile;
+
+    /**
+     * 约定时间
+     */
+    @NotNull(message = "约定时间不能为空")
+    private Date appointTime;
+}

+ 19 - 0
vehicle-api/src/main/java/com/chelvc/cloud/vehicle/api/service/ReservationService.java

@@ -0,0 +1,19 @@
+package com.chelvc.cloud.vehicle.api.service;
+
+import com.chelvc.cloud.vehicle.api.param.ReservationModifyParam;
+
+/**
+ * 预约业务接口
+ *
+ * @author Woody
+ * @date 2023/7/17
+ */
+public interface ReservationService {
+    /**
+     * 新增预约信息
+     *
+     * @param merchantId 商家ID
+     * @param param      预约参数
+     */
+    void addReservation(Long merchantId, ReservationModifyParam param);
+}

+ 29 - 0
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/copier/ReservationCopier.java

@@ -0,0 +1,29 @@
+package com.chelvc.cloud.vehicle.server.copier;
+
+import com.chelvc.cloud.vehicle.api.param.ReservationModifyParam;
+import com.chelvc.cloud.vehicle.server.entity.Reservation;
+import org.mapstruct.Builder;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * 预约信息拷贝接口
+ *
+ * @author Woody
+ * @date 2023/7/17
+ */
+@Mapper(builder = @Builder(disableBuilder = true))
+public interface ReservationCopier {
+    /**
+     * 对象拷贝接口实例
+     */
+    ReservationCopier INSTANCE = Mappers.getMapper(ReservationCopier.class);
+
+    /**
+     * 预约信息拷贝
+     *
+     * @param param 预约更新参数
+     * @return 预约信息
+     */
+    Reservation copying(ReservationModifyParam param);
+}

+ 17 - 3
vehicle-server/src/main/java/com/chelvc/cloud/vehicle/server/service/impl/ReservationServiceImpl.java

@@ -1,10 +1,15 @@
 package com.chelvc.cloud.vehicle.server.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chelvc.cloud.vehicle.api.constant.ReserveStatus;
+import com.chelvc.cloud.vehicle.api.param.ReservationModifyParam;
+import com.chelvc.cloud.vehicle.server.copier.ReservationCopier;
 import com.chelvc.cloud.vehicle.server.dao.ReservationMapper;
 import com.chelvc.cloud.vehicle.server.entity.Reservation;
 import com.chelvc.cloud.vehicle.server.service.ReservationService;
-import org.springframework.stereotype.Service;
+import com.chelvc.framework.base.context.SessionContextHolder;
+import lombok.NonNull;
+import org.apache.dubbo.config.annotation.DubboService;
 
 /**
  * 预约记录业务操作实现
@@ -12,6 +17,15 @@ import org.springframework.stereotype.Service;
  * @author Woody
  * @date 2023/7/17
  */
-@Service
-public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reservation> implements ReservationService {
+@DubboService(interfaceClass = com.chelvc.cloud.vehicle.api.service.ReservationService.class)
+public class ReservationServiceImpl extends ServiceImpl<ReservationMapper, Reservation> implements ReservationService,
+        com.chelvc.cloud.vehicle.api.service.ReservationService {
+    @Override
+    public void addReservation(@NonNull Long merchantId, @NonNull ReservationModifyParam param) {
+        Reservation reservation = ReservationCopier.INSTANCE.copying(param);
+        reservation.setUserId(SessionContextHolder.getId());
+        reservation.setMerchantId(merchantId);
+        reservation.setStatus(ReserveStatus.PENDING);
+        this.save(reservation);
+    }
 }