Your Name 4 years ago
parent
commit
0adbc5abb7

+ 42
- 1
src/main/java/com/shigongli/controller/TaHousePersonController.java View File

@@ -7,6 +7,11 @@ import com.shigongli.common.BaseController;
7 7
 import com.shigongli.common.ResponseBean;
8 8
 import com.shigongli.common.StringUtils;
9 9
 import com.shigongli.constants.StatusConstant;
10
+import com.shigongli.entity.TaHouseOrder;
11
+import com.shigongli.entity.TaHouseSetting;
12
+import com.shigongli.entity.TaPerson;
13
+import com.shigongli.service.ITaHouseOrderService;
14
+import com.shigongli.service.ITaHouseSettingService;
10 15
 import com.shigongli.vo.HousePersonParams;
11 16
 import io.swagger.annotations.Api;
12 17
 import io.swagger.annotations.ApiOperation;
@@ -23,6 +28,7 @@ import com.shigongli.service.ITaHousePersonService;
23 28
 import com.shigongli.entity.TaHousePerson;
24 29
 import org.springframework.web.bind.annotation.RestController;
25 30
 
31
+import javax.servlet.http.HttpServletRequest;
26 32
 import java.util.ArrayList;
27 33
 import java.util.List;
28 34
 
@@ -45,6 +51,12 @@ public class TaHousePersonController extends BaseController {
45 51
     @Autowired
46 52
     public ITaHousePersonService iTaHousePersonService;
47 53
 
54
+    @Autowired
55
+    ITaHouseOrderService iTaHouseOrderService;
56
+
57
+    @Autowired
58
+    ITaHouseSettingService iTaHouseSettingService;
59
+
48 60
 
49 61
     /**
50 62
      * 分页查询列表
@@ -72,7 +84,8 @@ public class TaHousePersonController extends BaseController {
72 84
      */
73 85
     @RequestMapping(value="/ma/taHousePerson",method= RequestMethod.POST)
74 86
     @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
75
-    public ResponseBean taHousePersonAdd(@ApiParam("保存内容") @RequestBody HousePersonParams housePersonParams) throws Exception{
87
+    public ResponseBean taHousePersonAdd(@ApiParam("保存内容") @RequestBody HousePersonParams housePersonParams,
88
+                                         HttpServletRequest request) throws Exception{
76 89
 
77 90
         if (null == housePersonParams) {
78 91
             return ResponseBean.error("请设置入住人员信息", ResponseBean.ERROR_MISSING_PARAMS);
@@ -86,6 +99,34 @@ public class TaHousePersonController extends BaseController {
86 99
             return ResponseBean.error("请设置入住人员信息", ResponseBean.ERROR_MISSING_PARAMS);
87 100
         }
88 101
 
102
+        // 订单
103
+        TaHouseOrder taHouseOrder = iTaHouseOrderService.getById(housePersonParams.getOrderId());
104
+        if (null == taHouseOrder) {
105
+            return ResponseBean.error("校验订单信息出错", ResponseBean.ERROR_ILLEGAL_PARAMS);
106
+        }
107
+
108
+        if (!StringUtils.isEmpty(taHouseOrder.getPersonId())) {
109
+            return ResponseBean.error("该分享房源已经存在入住信息", ResponseBean.ERROR_ILLEGAL_PARAMS);
110
+        }
111
+
112
+        // 设置
113
+        TaHouseSetting taHouseSetting = iTaHouseSettingService.getById(taHouseOrder.getSettingId());
114
+        if (null == taHouseSetting) {
115
+            return ResponseBean.error("校验房源配置出错", ResponseBean.ERROR_ILLEGAL_PARAMS);
116
+        }
117
+
118
+        // 填写的入住人员数量必须与设置的人数一致
119
+        if (housePersonParams.getPersonList().size() != taHouseSetting.getPersonNum()) {
120
+            return ResponseBean.error("填写入住人员数量出错", ResponseBean.ERROR_ILLEGAL_PARAMS);
121
+        }
122
+
123
+        // 更新订单
124
+        TaPerson taPerson = getPerson(request);
125
+        taHouseOrder.setPersonId(taPerson.getPersonId());
126
+        taHouseOrder.setStatus(StatusConstant.NORMAL);
127
+        iTaHouseOrderService.updateById(taHouseOrder);
128
+
129
+        // 插入入住人
89 130
         List<TaHousePerson> taHousePersonList = new ArrayList<>();
90 131
         for (HousePersonParams.Person person: housePersonParams.getPersonList()) {
91 132
             TaHousePerson taHousePerson = new TaHousePerson();

+ 28
- 1
src/main/java/com/shigongli/controller/TaHouseSettingController.java View File

@@ -5,6 +5,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.shigongli.common.BaseController;
7 7
 import com.shigongli.common.ResponseBean;
8
+import com.shigongli.common.StringUtils;
9
+import com.shigongli.constants.StatusConstant;
10
+import com.shigongli.entity.TaHouseOrder;
11
+import com.shigongli.service.ITaHouseOrderService;
8 12
 import io.swagger.annotations.Api;
9 13
 import io.swagger.annotations.ApiOperation;
10 14
 import io.swagger.annotations.ApiParam;
@@ -39,6 +43,9 @@ public class TaHouseSettingController extends BaseController {
39 43
     @Autowired
40 44
     public ITaHouseSettingService iTaHouseSettingService;
41 45
 
46
+    @Autowired
47
+    ITaHouseOrderService iTaHouseOrderService;
48
+
42 49
 
43 50
     /**
44 51
      * 分页查询列表
@@ -64,11 +71,31 @@ public class TaHouseSettingController extends BaseController {
64 71
      * @param taHouseSetting 实体对象
65 72
      * @return
66 73
      */
67
-    @RequestMapping(value="/taHouseSetting",method= RequestMethod.POST)
74
+    @RequestMapping(value="/ma/taHouseSetting",method= RequestMethod.POST)
68 75
     @ApiOperation(value="保存", notes = "保存", httpMethod = "POST", response = ResponseBean.class)
69 76
     public ResponseBean taHouseSettingAdd(@ApiParam("保存内容") @RequestBody TaHouseSetting taHouseSetting) throws Exception{
77
+        if (null == taHouseSetting) {
78
+            return ResponseBean.error("填写房源设置出错", ResponseBean.ERROR_MISSING_PARAMS);
79
+        }
80
+
81
+        if (null == taHouseSetting.getPersonNum() || taHouseSetting.getPersonNum() < 1) {
82
+            return ResponseBean.error("房源入住人数至少1人", ResponseBean.ERROR_ILLEGAL_PARAMS);
83
+        }
84
+
85
+        if (StringUtils.isEmpty(taHouseSetting.getHouseId())) {
86
+            return ResponseBean.error("填写选择房源", ResponseBean.ERROR_MISSING_PARAMS);
87
+        }
70 88
 
71 89
         if (iTaHouseSettingService.save(taHouseSetting)){
90
+
91
+            // 生成订单
92
+            TaHouseOrder taHouseOrder = new TaHouseOrder();
93
+            taHouseOrder.setSettingId(taHouseSetting.getSettingId());
94
+            taHouseOrder.setStatus(StatusConstant.READY);
95
+            taHouseOrder.setOrderId(iTaHouseOrderService.getNextOrderId());
96
+            iTaHouseOrderService.save(taHouseOrder);
97
+            taHouseSetting.setTaHouseOrder(taHouseOrder);
98
+
72 99
             return ResponseBean.success(taHouseSetting);
73 100
         }else {
74 101
             return ResponseBean.error("保存失败, 请重试", ResponseBean.ERROR_UNAVAILABLE);

+ 5
- 2
src/main/java/com/shigongli/entity/TaHouseSetting.java View File

@@ -2,6 +2,8 @@ package com.shigongli.entity;
2 2
 
3 3
 import com.baomidou.mybatisplus.annotation.IdType;
4 4
 import java.time.LocalDateTime;
5
+
6
+import com.baomidou.mybatisplus.annotation.TableField;
5 7
 import com.baomidou.mybatisplus.annotation.TableId;
6 8
 import java.io.Serializable;
7 9
 import io.swagger.annotations.ApiModel;
@@ -27,7 +29,7 @@ public class TaHouseSetting implements Serializable {
27 29
     private static final long serialVersionUID = 1L;
28 30
 
29 31
     @ApiModelProperty(value = "设置ID")
30
-    @TableId(value = "setting_id", type = IdType.INPUT)
32
+    @TableId(value = "setting_id", type = IdType.UUID)
31 33
     private String settingId;
32 34
 
33 35
     @ApiModelProperty(value = "房源")
@@ -48,5 +50,6 @@ public class TaHouseSetting implements Serializable {
48 50
     @ApiModelProperty(value = "创建时间")
49 51
     private LocalDateTime createDate;
50 52
 
51
-
53
+    @TableField(exist = false)
54
+    private TaHouseOrder taHouseOrder;
52 55
 }

+ 1
- 0
src/main/java/com/shigongli/service/ITaHouseOrderService.java View File

@@ -13,4 +13,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
13 13
  */
14 14
 public interface ITaHouseOrderService extends IService<TaHouseOrder> {
15 15
 
16
+    String getNextOrderId();
16 17
 }

+ 11
- 0
src/main/java/com/shigongli/service/impl/TaHouseOrderServiceImpl.java View File

@@ -6,6 +6,10 @@ import com.shigongli.service.ITaHouseOrderService;
6 6
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
7 7
 import org.springframework.stereotype.Service;
8 8
 
9
+import java.time.LocalDateTime;
10
+import java.time.ZoneId;
11
+import java.util.Random;
12
+
9 13
 /**
10 14
  * <p>
11 15
  * 房源订单 服务实现类
@@ -17,4 +21,11 @@ import org.springframework.stereotype.Service;
17 21
 @Service
18 22
 public class TaHouseOrderServiceImpl extends ServiceImpl<TaHouseOrderMapper, TaHouseOrder> implements ITaHouseOrderService {
19 23
 
24
+    @Override
25
+    public String getNextOrderId() {
26
+        long sec = LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond();
27
+        String randNum = String.format("%02d", new Random().nextInt(99));
28
+
29
+        return sec + "-" + randNum;
30
+    }
20 31
 }