Prechádzať zdrojové kódy

user_reservation 增加type 0线上预订 1app扫码 2线下开台

qinxuyang 3 týždňov pred
rodič
commit
6e4bed8036

+ 4 - 0
alien-entity/src/main/java/shop/alien/entity/store/UserReservation.java

@@ -86,6 +86,10 @@ public class UserReservation {
     @TableField("reason")
     private String reason;
 
+    @ApiModelProperty(value = "来源类型:0-线上预订,1-app扫码,2-线下开台")
+    @TableField("type")
+    private Integer type;
+
     @ApiModelProperty(value = "删除标记, 0:未删除, 1:已删除")
     @TableField("delete_flag")
     @TableLogic

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/dto/UserReservationDTO.java

@@ -57,6 +57,9 @@ public class UserReservationDTO {
     @ApiModelProperty(value = "预约人电话")
     private String reservationUserPhone;
 
+    @ApiModelProperty(value = "来源类型:0-线上预订,1-app扫码,2-线下开台;不传默认0")
+    private Integer type;
+
     @ApiModelProperty(value = "关联的桌号ID列表(store_booking_table.id)")
     private List<Integer> tableIds;
 }

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/StoreReservationListVo.java

@@ -67,6 +67,9 @@ public class StoreReservationListVo {
     @ApiModelProperty(value = "取消原因(商家端取消)")
     private String reason;
 
+    @ApiModelProperty(value = "来源类型:0-线上预订,1-app扫码,2-线下开台")
+    private Integer type;
+
     @ApiModelProperty(value = "预约状态 0:待确认 1:已确认 2:已到店 3:已取消 4:未到店超时 5:用餐结束")
     private Integer status;
 

+ 3 - 0
alien-entity/src/main/java/shop/alien/entity/store/vo/UserReservationVo.java

@@ -64,6 +64,9 @@ public class UserReservationVo {
     @ApiModelProperty(value = "预约人电话")
     private String reservationUserPhone;
 
+    @ApiModelProperty(value = "来源类型:0-线上预订,1-app扫码,2-线下开台")
+    private Integer type;
+
     @ApiModelProperty(value = "关联的桌号ID列表")
     private List<Integer> tableIds;
 

+ 5 - 0
alien-entity/src/main/resources/mapper/UserReservationMapper.xml

@@ -19,6 +19,7 @@
         <result column="reservation_user_gender" property="reservationUserGender" />
         <result column="reservation_user_phone" property="reservationUserPhone" />
         <result column="reason" property="reason" />
+        <result column="type" property="type" />
         <result column="delete_flag" property="deleteFlag" />
         <result column="created_time" property="createdTime" />
         <result column="created_user_id" property="createdUserId" />
@@ -43,6 +44,7 @@
         <result column="customer_name" property="customerName" />
         <result column="contact_phone" property="contactPhone" />
         <result column="remark" property="remark" />
+        <result column="type" property="type" />
         <result column="status" property="status" />
         <result column="status_text" property="statusText" />
         <result column="total_amount" property="totalAmount" />
@@ -72,6 +74,7 @@
         <result column="reservation_user_name" property="reservationUserName" />
         <result column="reservation_user_gender" property="reservationUserGender" />
         <result column="reservation_user_phone" property="reservationUserPhone" />
+        <result column="type" property="type" />
         <result column="created_time" property="createdTime" />
         <result column="updated_time" property="updatedTime" />
     </resultMap>
@@ -95,6 +98,7 @@
             ur.reservation_user_name,
             ur.reservation_user_gender,
             ur.reservation_user_phone,
+            ur.type,
             ur.created_time,
             ur.updated_time
         FROM
@@ -138,6 +142,7 @@
             IFNULL(lu.real_name, lu.user_name) AS customer_name,
             lu.user_phone AS contact_phone,
             ur.remark,
+            ur.type,
             ur.status,
             CASE ur.status
                 WHEN 0 THEN '待确认'

+ 1 - 1
alien-store/src/main/java/shop/alien/store/controller/UserReservationController.java

@@ -37,7 +37,7 @@ public class UserReservationController {
     @ApiOperationSupport(order = 1)
     @PostMapping("/add")
     public R<Integer> add(@RequestBody UserReservationDTO dto) {
-        log.info("UserReservationController.add?userId={}, storeId={}", dto.getUserId(), dto.getStoreId());
+        log.info("UserReservationController.add?userId={}, storeId={}, type={}", dto.getUserId(), dto.getStoreId(), dto.getType());
         try {
             Integer id = userReservationService.add(dto);
             return R.data(id);

+ 15 - 2
alien-store/src/main/java/shop/alien/store/service/impl/UserReservationServiceImpl.java

@@ -119,9 +119,14 @@ public class UserReservationServiceImpl extends ServiceImpl<UserReservationMappe
         if (dto.getGuestCount() == null || dto.getGuestCount() < 1) {
             throw new RuntimeException("预约人数至少为1");
         }
+        int sourceType = dto.getType() == null ? 0 : dto.getType();
+        if (sourceType < 0 || sourceType > 2) {
+            throw new RuntimeException("type参数不合法,仅支持0-线上预订、1-app扫码、2-线下开台");
+        }
 
         UserReservation entity = new UserReservation();
-        BeanUtils.copyProperties(dto, entity, "id", "tableIds");
+        BeanUtils.copyProperties(dto, entity, "id", "tableIds", "type");
+        entity.setType(sourceType);
         entity.setId(null);
         entity.setReservationNo(generateReservationNo());
         if (entity.getStatus() == null) {
@@ -212,9 +217,17 @@ public class UserReservationServiceImpl extends ServiceImpl<UserReservationMappe
         String oldTableNumber = tableIdsToTableNumberString(listTableIdsByReservationId(existing.getId()));
 
         UserReservation entity = new UserReservation();
-        BeanUtils.copyProperties(dto, entity, "tableIds", "reservationNo");
+        BeanUtils.copyProperties(dto, entity, "tableIds", "reservationNo", "type");
         entity.setId(existing.getId());
         entity.setReservationNo(existing.getReservationNo());
+        if (dto.getType() != null) {
+            if (dto.getType() < 0 || dto.getType() > 2) {
+                throw new RuntimeException("type参数不合法,仅支持0-线上预订、1-app扫码、2-线下开台");
+            }
+            entity.setType(dto.getType());
+        } else {
+            entity.setType(existing.getType());
+        }
         this.updateById(entity);
 
         saveReservationTables(existing.getId(), dto.getTableIds());