Bladeren bron

添加预定接口

houweiyu 4 jaren geleden
bovenliggende
commit
c7a500a3c2

+ 83 - 0
dinner-core/src/main/java/com/fdage/base/dto/OrderAppReqDto.java

@@ -0,0 +1,83 @@
+package com.fdage.base.dto;
+
+import com.alibaba.fastjson.annotation.JSONField;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+
+/**
+ * 2 * @Author: Abner
+ * 3 * @Date: 2021/2/19 18:01
+ * 4
+ */
+@Data
+@ApiModel(value="OrderAppReqDto创建订单请求对象", description="OrderAppReqDto创建订单请求对象")
+public class OrderAppReqDto implements Serializable {
+    private static final long serialVersionUID=1L;
+
+    @ApiModelProperty(value = "预订人的ID")
+    private String reserveUserId;
+
+    @ApiModelProperty(value = "预订人的名称")
+    private String reserveUserName;
+
+    @ApiModelProperty(value = "定金")
+    private BigDecimal orderPrice;
+
+    @ApiModelProperty(value = "所属餐厅id")
+    private String canteenId;
+
+    @ApiModelProperty(value = "所预定的桌子id")
+    private String deskId;
+
+    @ApiModelProperty(value = "所预定的桌子名称")
+    private String deskName;
+
+    @ApiModelProperty(value = "所预定的桌子的类型:1->包厢;2->大厅")
+    private Boolean deskType;
+
+    @ApiModelProperty(value = "支付流水ID")
+    private String payId;
+
+    @ApiModelProperty(value = "付款者名称")
+    private String payName;
+
+    @ApiModelProperty(value = "预约人的手机号")
+    private String reserveUserPhone;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "支付时间")
+    private LocalDateTime payTime;
+
+
+    @ApiModelProperty(value = "支付状态:0->未付款;1->付款中;2->已付款;3->退款中;4->退款成功")
+    private Integer payStatus;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "预约到店时间")
+    private LocalDateTime reserveTime;
+
+
+    @ApiModelProperty(value = "预约用餐人数")
+    private Integer reservePersonNum;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JSONField(format = "yyyy-MM-dd")
+    @ApiModelProperty(value = "预约用餐日期")
+    private LocalDate reserveDate;
+
+    @ApiModelProperty(value = "手机短信验证码")
+    private String msgCode;
+}

+ 28 - 2
dinner-core/src/main/java/com/fdage/base/entity/TmOrder.java

@@ -1,6 +1,7 @@
 package com.fdage.base.entity;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.io.Serializable;
 
@@ -36,8 +37,11 @@ public class TmOrder implements Serializable {
     @ApiModelProperty(value = "订单序号")
     private String orderNo;
 
-    @ApiModelProperty(value = "会员ID")
-    private String userId;
+    @ApiModelProperty(value = "预订人的ID")
+    private String reserveUserId;
+
+    @ApiModelProperty(value = "预订人的名称")
+    private String reserveUserName;
 
     @ApiModelProperty(value = "订单状态: 0->待支付;1->预定成功;2->取消成功;3->取消退款成功;-1->预定失败")
     private Integer status;
@@ -66,6 +70,9 @@ public class TmOrder implements Serializable {
     @ApiModelProperty(value = "所预定的桌子id")
     private String deskId;
 
+    @ApiModelProperty(value = "所预定的桌子名称")
+    private String deskName;
+
     @ApiModelProperty(value = "所预定的桌子的类型:1->包厢;2->大厅")
     private Boolean deskType;
 
@@ -75,13 +82,32 @@ public class TmOrder implements Serializable {
     @ApiModelProperty(value = "付款者名称")
     private String payName;
 
+    @ApiModelProperty(value = "预约人的手机号")
+    private String reserveUserPhone;
+
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @JSONField(format = "yyyy-MM-dd HH:mm:ss")
     @ApiModelProperty(value = "支付时间")
     private LocalDateTime payTime;
 
+
     @ApiModelProperty(value = "支付状态:0->未付款;1->付款中;2->已付款;3->退款中;4->退款成功")
     private Integer payStatus;
 
 
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @JSONField(format = "yyyy-MM-dd HH:mm:ss")
+    @ApiModelProperty(value = "预约到店时间")
+    private LocalDateTime reserveTime;
+
+
+    @ApiModelProperty(value = "预约用餐人数")
+    private Integer reservePersonNum;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @JSONField(format = "yyyy-MM-dd")
+    @ApiModelProperty(value = "预约用餐日期")
+    private LocalDate reserveDate;
+
 }

+ 21 - 1
dinner-core/src/main/java/com/fdage/base/service/impl/TmOrderServiceImpl.java

@@ -6,10 +6,16 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdage.base.entity.TmOrder;
 import com.fdage.base.dao.TmOrderDao;
+import com.fdage.base.enums.IdPreEnum;
 import com.fdage.base.service.ITmOrderService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import fdage.back.sdk.base.enums.ResultCodeEnum;
+import fdage.back.sdk.base.exception.CommonBaseException;
+import fdage.back.sdk.base.uuid.SnowFlakeUUidUtils;
 import org.springframework.stereotype.Service;
 
+import java.time.LocalDateTime;
+
 /**
  * <p>
  *  服务实现类
@@ -23,10 +29,24 @@ public class TmOrderServiceImpl extends ServiceImpl<TmOrderDao, TmOrder> impleme
 
     public IPage<TmOrder> getListByUser(String userId , long pageNum , long pageSize){
         LambdaQueryWrapper<TmOrder> lambdaQueryWrapper = new LambdaQueryWrapper<>();
-        lambdaQueryWrapper.eq(TmOrder::getUserId , userId);
+        lambdaQueryWrapper.eq(TmOrder::getReserveUserId , userId);
         lambdaQueryWrapper.eq(TmOrder::getIsDelete , 0);
         IPage<TmOrder> page = new Page<>(pageNum , pageSize);
         return getBaseMapper().selectPage(page , lambdaQueryWrapper);
     }
 
+    public TmOrder addNew(TmOrder tmOrder){
+        if(null == tmOrder){
+            return tmOrder;
+        }
+        tmOrder.setId(SnowFlakeUUidUtils.generaUUid(null , null , IdPreEnum.ORDER_PRE.getPre()));
+        tmOrder.setIsDelete(0);
+        tmOrder.setCreateTime(LocalDateTime.now());
+        tmOrder.setUpdateTime(LocalDateTime.now());
+        if(getBaseMapper().insert(tmOrder) != 1){
+            throw new CommonBaseException(ResultCodeEnum.D101 , "新增订单失败");
+        }
+        return tmOrder;
+    }
+
 }

+ 52 - 4
dinner-core/src/main/java/com/fdage/controller/app/AppOrderController.java

@@ -1,6 +1,7 @@
 package com.fdage.controller.app;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.fdage.base.dto.OrderAppReqDto;
 import com.fdage.base.entity.TmOrder;
 import com.fdage.base.entity.TmUser;
 import com.fdage.base.service.impl.TmOrderServiceImpl;
@@ -14,11 +15,10 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.log4j.Log4j2;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 
 /**
@@ -57,4 +57,52 @@ public class AppOrderController extends BaseController {
                 resultPage.getCurrent(), resultPage.getRecords()));
     }
 
+    @GetMapping("/getOne")
+    @ApiOperation(value = "根据Id获取单个订单详情")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "orderId", value = "订单ID", paramType = "query", required = true, dataType = "String")
+    })
+    public Result<TmOrder> getOneById(@RequestParam(name = "orderId") String orderId){
+        if(StringUtils.isBlank(orderId)){
+            return Result.failure("订单ID缺失");
+        }
+        TmOrder tmOrder = tmOrderService.getById(orderId);
+        if(null == tmOrder){
+            return Result.failure("订单不存在");
+        }
+        return Result.success(tmOrder);
+    }
+    @PostMapping("/addNew")
+    @ApiOperation(value = "创建订单")
+    public Result<TmOrder> addNew(@RequestBody OrderAppReqDto orderAppReqDto){
+
+        if(null == orderAppReqDto){
+            return Result.failure("入参缺失");
+        }
+        if(null == orderAppReqDto.getReservePersonNum()){
+            return Result.failure("用餐人数缺失");
+        }
+        if(null == orderAppReqDto.getReserveDate()){
+            return Result.failure("用餐日期缺失");
+        }
+        if(null == orderAppReqDto.getReserveTime()){
+            return Result.failure("用餐到店时间缺失");
+        }
+        if(StringUtils.isBlank(orderAppReqDto.getReserveUserPhone())){
+            return Result.failure("联系人手机号缺失");
+        }
+        if(StringUtils.isBlank(orderAppReqDto.getMsgCode())){
+            return Result.failure("短信验证码缺失");
+        }
+        //校验短信验证码
+        String redisCOde = (String) redisTemplate.opsForValue().get(orderAppReqDto.getReserveUserPhone());
+        if(!StringUtils.equals(redisCOde , orderAppReqDto.getMsgCode())){
+            return Result.failure("验证码非法或者已经过了有效期");
+        }
+        TmOrder newOrder = new TmOrder();
+        BeanUtils.copyProperties(orderAppReqDto , newOrder);
+        newOrder = tmOrderService.addNew(newOrder);
+        return Result.success(newOrder);
+    }
+
 }