浏览代码

认筹接口

傅行帆 5 年前
父节点
当前提交
d0ec54d2bc

+ 5
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java 查看文件

651
      */
651
      */
652
     public static final String HOUSE_LOCKING_TYPE_AUTO = "auto";
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 查看文件

411
         }
411
         }
412
         return responseBean;
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 查看文件

9
 
9
 
10
 import java.io.Serializable;
10
 import java.io.Serializable;
11
 import java.time.LocalDateTime;
11
 import java.time.LocalDateTime;
12
+import java.util.ArrayList;
13
+import java.util.List;
12
 
14
 
13
 /**
15
 /**
14
  * <p>
16
  * <p>
171
      */
173
      */
172
     @TableField(exist = false)
174
     @TableField(exist = false)
173
     private String totalFee;
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 查看文件

51
      * @return
51
      * @return
52
      */
52
      */
53
     ResponseBean listRaiseOrderByCondition(RaiseOrderRequestBO orderRequestBO, Integer pageNumber, Integer pageSize);
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 查看文件

8
 import com.huiju.estateagents.bo.request.HousingRaiseRequestBO;
8
 import com.huiju.estateagents.bo.request.HousingRaiseRequestBO;
9
 import com.huiju.estateagents.bo.request.RaiseOrderRequestBO;
9
 import com.huiju.estateagents.bo.request.RaiseOrderRequestBO;
10
 import com.huiju.estateagents.bo.request.RaiseRecordRequestBO;
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
 import com.huiju.estateagents.po.TaHousingResourcesPO;
14
 import com.huiju.estateagents.po.TaHousingResourcesPO;
14
 import com.huiju.estateagents.service.ITaRaiseRecordService;
15
 import com.huiju.estateagents.service.ITaRaiseRecordService;
15
 import org.slf4j.Logger;
16
 import org.slf4j.Logger;
17
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.beans.factory.annotation.Autowired;
18
 import org.springframework.stereotype.Service;
19
 import org.springframework.stereotype.Service;
19
 
20
 
21
+import java.time.LocalDateTime;
22
+import java.util.List;
23
+
20
 /**
24
 /**
21
  * <p>
25
  * <p>
22
  * 认筹单(认筹记录表)  服务实现类
26
  * 认筹单(认筹记录表)  服务实现类
33
     @Autowired
37
     @Autowired
34
     private TaRaiseRecordMapper taRaiseRecordMapper;
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
     @Override
55
     @Override
37
     public ResponseBean listHousingRaiseByCondition(HousingRaiseRequestBO requestBO, Integer pageNumber, Integer pageSize) {
56
     public ResponseBean listHousingRaiseByCondition(HousingRaiseRequestBO requestBO, Integer pageNumber, Integer pageSize) {
38
         logger.info("TaRaiseRecordServiceImpl.listRaiseRecordByCondition 接收参数:bo:{},pageNumber:{},pageSize:{}", JSONObject.toJSONString(requestBO), pageNumber, pageSize);
57
         logger.info("TaRaiseRecordServiceImpl.listRaiseRecordByCondition 接收参数:bo:{},pageNumber:{},pageSize:{}", JSONObject.toJSONString(requestBO), pageNumber, pageSize);
62
         responseBean.addSuccess(taRaiseRecordMapper.listRaiseOrderByCondition(pg, orderRequestBO));
81
         responseBean.addSuccess(taRaiseRecordMapper.listRaiseOrderByCondition(pg, orderRequestBO));
63
         return responseBean;
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
 }