Bladeren bron

认筹接口

傅行帆 5 jaren geleden
bovenliggende
commit
d0ec54d2bc

+ 5
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java Bestand weergeven

@@ -651,6 +651,11 @@ public class CommConstant {
651 651
      */
652 652
     public static final String HOUSE_LOCKING_TYPE_AUTO = "auto";
653 653
 
654
+    /**
655
+     * 手动锁房
656
+     */
657
+    public static final String HOUSE_LOCKING_TYPE_MANUAL = "manual";
658
+
654 659
     /**
655 660
      * 正在缴费
656 661
      */

+ 19
- 0
src/main/java/com/huiju/estateagents/controller/TaRaiseRecordController.java Bestand weergeven

@@ -411,4 +411,23 @@ public class TaRaiseRecordController extends BaseController {
411 411
         }
412 412
         return responseBean;
413 413
     }
414
+
415
+    /**
416
+     * 微信端下认筹单
417
+     *
418
+     * @param taRaiseRecord 实体对象
419
+     * @return
420
+     */
421
+    @RequestMapping(value = "/wx/taRaiseRecord", method = RequestMethod.POST)
422
+    public ResponseBean wxRaiseRecordAdd(@RequestBody TaRaiseRecord taRaiseRecord,HttpServletRequest request) {
423
+        ResponseBean responseBean = new ResponseBean();
424
+        try {
425
+            responseBean.addSuccess(iTaRaiseRecordService.saveRaiseInfo(taRaiseRecord,getOrgId(request),getPersonId(request)));
426
+        } catch (Exception e) {
427
+            e.printStackTrace();
428
+            logger.error("taRaiseRecordAdd -=- {}", e.toString());
429
+            responseBean.addError(e.getMessage());
430
+        }
431
+        return responseBean;
432
+    }
414 433
 }

+ 8
- 0
src/main/java/com/huiju/estateagents/entity/TaRaiseRecord.java Bestand weergeven

@@ -9,6 +9,8 @@ import lombok.experimental.Accessors;
9 9
 
10 10
 import java.io.Serializable;
11 11
 import java.time.LocalDateTime;
12
+import java.util.ArrayList;
13
+import java.util.List;
12 14
 
13 15
 /**
14 16
  * <p>
@@ -171,4 +173,10 @@ public class TaRaiseRecord implements Serializable {
171 173
      */
172 174
     @TableField(exist = false)
173 175
     private String totalFee;
176
+
177
+    /**
178
+     *  小程序端提交的房源的id的集合
179
+     */
180
+    @TableField(exist = false)
181
+    private List<Integer> houseList = new ArrayList<>();
174 182
 }

+ 9
- 0
src/main/java/com/huiju/estateagents/service/ITaRaiseRecordService.java Bestand weergeven

@@ -51,4 +51,13 @@ public interface ITaRaiseRecordService extends IService<TaRaiseRecord> {
51 51
      * @return
52 52
      */
53 53
     ResponseBean listRaiseOrderByCondition(RaiseOrderRequestBO orderRequestBO, Integer pageNumber, Integer pageSize);
54
+
55
+    /**
56
+     * 小程序端保存认筹单信息
57
+     * @param taRaiseRecord
58
+     * @param orgId
59
+     * @param personId
60
+     * @return
61
+     */
62
+    TaRaiseRecord saveRaiseInfo(TaRaiseRecord taRaiseRecord, Integer orgId, String personId) throws Exception;
54 63
 }

+ 109
- 2
src/main/java/com/huiju/estateagents/service/impl/TaRaiseRecordServiceImpl.java Bestand weergeven

@@ -8,8 +8,9 @@ import com.huiju.estateagents.base.ResponseBean;
8 8
 import com.huiju.estateagents.bo.request.HousingRaiseRequestBO;
9 9
 import com.huiju.estateagents.bo.request.RaiseOrderRequestBO;
10 10
 import com.huiju.estateagents.bo.request.RaiseRecordRequestBO;
11
-import com.huiju.estateagents.entity.TaRaiseRecord;
12
-import com.huiju.estateagents.mapper.TaRaiseRecordMapper;
11
+import com.huiju.estateagents.common.CommConstant;
12
+import com.huiju.estateagents.entity.*;
13
+import com.huiju.estateagents.mapper.*;
13 14
 import com.huiju.estateagents.po.TaHousingResourcesPO;
14 15
 import com.huiju.estateagents.service.ITaRaiseRecordService;
15 16
 import org.slf4j.Logger;
@@ -17,6 +18,9 @@ import org.slf4j.LoggerFactory;
17 18
 import org.springframework.beans.factory.annotation.Autowired;
18 19
 import org.springframework.stereotype.Service;
19 20
 
21
+import java.time.LocalDateTime;
22
+import java.util.List;
23
+
20 24
 /**
21 25
  * <p>
22 26
  * 认筹单(认筹记录表)  服务实现类
@@ -33,6 +37,21 @@ public class TaRaiseRecordServiceImpl extends ServiceImpl<TaRaiseRecordMapper, T
33 37
     @Autowired
34 38
     private TaRaiseRecordMapper taRaiseRecordMapper;
35 39
 
40
+    @Autowired
41
+    private TaRaiseMapper taRaiseMapper;
42
+
43
+    @Autowired
44
+    private TaHousingResourcesMapper taHousingResourcesMapper;
45
+
46
+    @Autowired
47
+    private TaSalesBatchMapper taSalesBatchMapper;
48
+
49
+    @Autowired
50
+    private TaPersonMapper taPersonMapper;
51
+
52
+    @Autowired
53
+    private TaRaiseHouseMapper taRaiseHouseMapper;
54
+
36 55
     @Override
37 56
     public ResponseBean listHousingRaiseByCondition(HousingRaiseRequestBO requestBO, Integer pageNumber, Integer pageSize) {
38 57
         logger.info("TaRaiseRecordServiceImpl.listRaiseRecordByCondition 接收参数:bo:{},pageNumber:{},pageSize:{}", JSONObject.toJSONString(requestBO), pageNumber, pageSize);
@@ -62,4 +81,92 @@ public class TaRaiseRecordServiceImpl extends ServiceImpl<TaRaiseRecordMapper, T
62 81
         responseBean.addSuccess(taRaiseRecordMapper.listRaiseOrderByCondition(pg, orderRequestBO));
63 82
         return responseBean;
64 83
     }
84
+
85
+    /**
86
+     * 小程序端保存认筹单信息
87
+     *
88
+     * @param taRaiseRecord
89
+     * @param orgId
90
+     * @param personId
91
+     * @return
92
+     */
93
+    @Override
94
+    public TaRaiseRecord saveRaiseInfo(TaRaiseRecord taRaiseRecord, Integer orgId, String personId) throws Exception {
95
+        List<Integer> houseList = taRaiseRecord.getHouseList();
96
+        if (houseList.size() < 1){
97
+            throw new Exception("请选择房源!");
98
+        }
99
+        //获取认筹信息
100
+        TaRaise taRaise = taRaiseMapper.selectById(taRaiseRecord.getRaiseId());
101
+        //如果是自动锁房就要判断里面的房源有没有被锁住
102
+        if (taRaise.getHouseLockingType().equals(CommConstant.HOUSE_LOCKING_TYPE_AUTO)){
103
+            if (houseList.size() > 0){
104
+                throw new Exception("此认筹为自动锁房只能选择一个房源!");
105
+            }
106
+            //获取房源详细信息
107
+            TaHousingResources taHousingResources = taHousingResourcesMapper.selectById(houseList.get(0));
108
+            if (null == taHousingResources){
109
+                throw new Exception("此房源不存在!");
110
+            }
111
+            if (taHousingResources.getHouseLockingStatus().equals(CommConstant.HOUSE_LOCKING_STATUS_LOCKED)){
112
+                throw new Exception("此房源已被锁定!");
113
+            }
114
+            //检验成功的话先锁定房源
115
+            lockedHouseResources(taHousingResources);
116
+        }
117
+        //插入认筹单
118
+        saveRaiseRecord(taRaiseRecord,orgId,personId,taRaise);
119
+
120
+        return taRaiseRecord;
121
+    }
122
+
123
+    /**
124
+     * 插入认筹单
125
+     * @param taRaiseRecord
126
+     */
127
+    private void saveRaiseRecord(TaRaiseRecord taRaiseRecord, Integer orgId, String personId,TaRaise taRaise) {
128
+        List<Integer> houseList = taRaiseRecord.getHouseList();
129
+        //销售批次信息
130
+        TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(taRaiseRecord.getSalesBatchId());
131
+        //获取用户信息
132
+
133
+        taRaiseRecord.setOrgId(orgId);
134
+        taRaiseRecord.setBuildingId(taSalesBatch.getBuildingId());
135
+        taRaiseRecord.setPersonId(personId);
136
+        taRaiseRecord.setHouseNum(houseList.size());
137
+        if (taRaise.getHouseLockingType().equals(CommConstant.HOUSE_LOCKING_TYPE_AUTO)){
138
+            taRaiseRecord.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_LOCKED);
139
+        }
140
+        taRaiseRecord.setStatus(CommConstant.STATUS_NORMAL);
141
+        taRaiseRecord.setPayStatus(CommConstant.PAY_STATUS_UNPAID);
142
+        taRaiseRecord.setPayType(taRaise.getPayType());
143
+        taRaiseRecord.setCreateDate(LocalDateTime.now());
144
+        //插入认筹单信息
145
+        taRaiseRecordMapper.insert(taRaiseRecord);
146
+        
147
+        //插入房源与认筹单关系表
148
+        TaPerson taPerson = taPersonMapper.selectById(personId);
149
+        houseList.forEach(e -> {
150
+            TaRaiseHouse taRaiseHouse = new TaRaiseHouse();
151
+            taRaiseHouse.setHouseId(e);
152
+            taRaiseHouse.setCreateDate(LocalDateTime.now());
153
+            if (taRaise.getHouseLockingType().equals(CommConstant.HOUSE_LOCKING_TYPE_AUTO)){
154
+                taRaiseHouse.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_LOCKED);
155
+            }
156
+            taRaiseHouse.setOrgId(orgId);
157
+            taRaiseHouse.setPersonId(personId);
158
+            taRaiseHouse.setPersonName(taPerson.getName());
159
+            taRaiseHouse.setRaiseRecordId(taRaiseRecord.getRaiseRecordId());
160
+            taRaiseHouseMapper.insert(taRaiseHouse);
161
+        });
162
+    }
163
+
164
+    /**
165
+     * 锁定房源
166
+     * @param taHousingResources
167
+     */
168
+    private synchronized void lockedHouseResources(TaHousingResources taHousingResources) {
169
+        taHousingResources.setHouseLockingStatus(CommConstant.HOUSE_LOCKING_STATUS_LOCKED);
170
+        taHousingResourcesMapper.updateById(taHousingResources);
171
+    }
65 172
 }