Browse Source

Merge branch 'dev' of http://git.ycjcjy.com/zhiyuxing/estateagents into dev

张延森 5 years ago
parent
commit
c42364cc7b

+ 5
- 0
src/main/java/com/huiju/estateagents/bo/request/RaiseOrderRequestBO.java View File

62
      * 结束时间
62
      * 结束时间
63
      */
63
      */
64
     private String payEndTime;
64
     private String payEndTime;
65
+
66
+    /**
67
+     * 微信订单号
68
+     */
69
+    private String tradeNo;
65
 }
70
 }

+ 5
- 0
src/main/java/com/huiju/estateagents/common/CommConstant.java View File

705
      * 菜单
705
      * 菜单
706
      */
706
      */
707
     public static final Object ADVANCED_TYPE_MENU = "menu";
707
     public static final Object ADVANCED_TYPE_MENU = "menu";
708
+
709
+    /**
710
+     * 线下缴费
711
+     */
712
+    public static final String PAY_TYPE_OFFLINE = "offLine";
708
 }
713
 }

+ 1
- 1
src/main/java/com/huiju/estateagents/controller/MiniAppController.java View File

333
 
333
 
334
             // 定位城市
334
             // 定位城市
335
             String location = null == lon ? null : lon + "," + lat;
335
             String location = null == lon ? null : lon + "," + lat;
336
-            TdCity tdCity = iTdCityService.getLocationCity(location, orgId, getPersonId(request));
336
+            TdCity tdCity = iTdCityService.getLocationCity(location, orgId, taPerson.getPersonId());
337
             result.put("city", tdCity);
337
             result.put("city", tdCity);
338
 
338
 
339
             return ResponseBean.success(result);
339
             return ResponseBean.success(result);

+ 22
- 4
src/main/java/com/huiju/estateagents/controller/TaHousingResourcesController.java View File

228
         Integer orgId = getOrgId(request);
228
         Integer orgId = getOrgId(request);
229
         String personId = getPersonId(request);
229
         String personId = getPersonId(request);
230
 
230
 
231
-        logger.info("TaHouseingResourcesController.listHousingResources 接收参数:orgId:{},salesBatchId:{},startPrice:{},endPrice:{},apartmentId:{}",
232
-                orgId, salesBatchId, startPrice, endPrice, apartmentId);
231
+        logger.info("TaHouseingResourcesController.listHousingResources 接收参数:orgId:{},salesBatchId:{},startPrice:{},endPrice:{},apartmentId:{},source:{}",
232
+                orgId, salesBatchId, startPrice, endPrice, apartmentId, source);
233
 
233
 
234
         try {
234
         try {
235
             //获取所有楼房的预选热度和认筹热度
235
             //获取所有楼房的预选热度和认筹热度
488
      * @return
488
      * @return
489
      */
489
      */
490
     @RequestMapping(value = "/admin/house/updateLockingStatus", method = RequestMethod.PUT)
490
     @RequestMapping(value = "/admin/house/updateLockingStatus", method = RequestMethod.PUT)
491
-    public ResponseBean updateLockingStatus(Integer houseId, String type, Integer raiseHouseId, String personId,
491
+    public ResponseBean updateLockingStatus(Integer houseId, String type, Integer raiseHouseId, String personId, Integer raiseRecordId,
492
                                             HttpServletRequest request) {
492
                                             HttpServletRequest request) {
493
         ResponseBean responseBean = new ResponseBean();
493
         ResponseBean responseBean = new ResponseBean();
494
         try {
494
         try {
495
-            responseBean = iTaHousingResourcesService.updateLockingStatus(houseId, type, getOrgId(request), raiseHouseId, personId);
495
+            responseBean = iTaHousingResourcesService.updateLockingStatus(houseId, type, getOrgId(request), raiseHouseId, personId, raiseRecordId);
496
             logger.info("updateLockingStatus 返回结果:", JSONObject.toJSONString(responseBean));
496
             logger.info("updateLockingStatus 返回结果:", JSONObject.toJSONString(responseBean));
497
         } catch (Exception e) {
497
         } catch (Exception e) {
498
             logger.error("updateLockingStatus 异常:", e);
498
             logger.error("updateLockingStatus 异常:", e);
500
         }
500
         }
501
         return responseBean;
501
         return responseBean;
502
     }
502
     }
503
+
504
+    /**
505
+     * 校验房源认筹状态
506
+     *
507
+     * @return
508
+     */
509
+    @RequestMapping(value = "/wx/check/raise", method = RequestMethod.GET)
510
+    public ResponseBean checkRaise(@RequestParam(value = "houseIds") String houseIds,HttpServletRequest request) {
511
+        ResponseBean responseBean = new ResponseBean();
512
+        try {
513
+            boolean state = iTaHousingResourcesService.checkRaiseState(houseIds,getPersonId(request),getOrgId(request));
514
+            responseBean.addSuccess(state);
515
+        } catch (Exception e) {
516
+            logger.error("校验房源状态 -=- {}", e.getMessage());
517
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_MISSING_PARAMS);
518
+        }
519
+        return responseBean;
520
+    }
503
 }
521
 }

+ 2
- 2
src/main/java/com/huiju/estateagents/controller/TaRaiseHouseController.java View File

71
      * @return
71
      * @return
72
      */
72
      */
73
     @RequestMapping(value = "/admin/taRaiseHouse", method = RequestMethod.POST)
73
     @RequestMapping(value = "/admin/taRaiseHouse", method = RequestMethod.POST)
74
-    public ResponseBean taRaiseHouseAdd(TaRaiseHouse taRaiseHouse, HttpServletRequest request) {
74
+    public ResponseBean taRaiseHouseAdd(@RequestBody TaRaiseHouse taRaiseHouse, HttpServletRequest request) {
75
         ResponseBean responseBean = new ResponseBean();
75
         ResponseBean responseBean = new ResponseBean();
76
         try {
76
         try {
77
 
77
 
78
             // 校验参数
78
             // 校验参数
79
-            if (taRaiseHouse.getRaiseRecordId() != null) {
79
+            if (taRaiseHouse.getRaiseRecordId() == null) {
80
                 responseBean.addError("参数错误");
80
                 responseBean.addError("参数错误");
81
                 return responseBean;
81
                 return responseBean;
82
             }
82
             }

+ 31
- 6
src/main/java/com/huiju/estateagents/controller/TaRaiseRecordController.java View File

194
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
194
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
195
 
195
 
196
                 //发送订阅消息
196
                 //发送订阅消息
197
-                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"在线选房认筹通知","认筹单已作废","点击详情查看认筹单","具体原因查看详情",false);
197
+                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"认筹通知","认筹单已作废","点击详情查看认筹单","具体原因查看详情",false);
198
             });
198
             });
199
 
199
 
200
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
200
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
241
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
241
                 iTaRaiseRecordService.updateForSubtractRaiseHeat(record.getRaiseRecordId());
242
 
242
 
243
                 //发送订阅消息
243
                 //发送订阅消息
244
-                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"在线选房认筹通知","认筹单已作废","点击详情查看认筹单","具体原因查看详情",false);
244
+                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"认筹通知","认筹单已作废","点击详情查看认筹单","具体原因查看详情",false);
245
             });
245
             });
246
 
246
 
247
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
247
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
291
                     return responseBean;
291
                     return responseBean;
292
                 }
292
                 }
293
                 if (!CommConstant.PAY_STATUS_UNPAID.equals(tr.getPayStatus())) {
293
                 if (!CommConstant.PAY_STATUS_UNPAID.equals(tr.getPayStatus())) {
294
-                    responseBean.addError(String.format("认筹单编号为%s的记录已缴费或意图款,请重新选择", record.getRaiseRecordId()));
294
+                    responseBean.addError(String.format("认筹单编号为%s的记录为未缴费状态 ,请重新选择", record.getRaiseRecordId()));
295
                     return responseBean;
295
                     return responseBean;
296
                 }
296
                 }
297
             }
297
             }
307
                 record.setPayStatus(CommConstant.PAY_STATUS_PAID);
307
                 record.setPayStatus(CommConstant.PAY_STATUS_PAID);
308
                 record.setUpdateDate(LocalDateTime.now());
308
                 record.setUpdateDate(LocalDateTime.now());
309
                 //发送订阅消息
309
                 //发送订阅消息
310
-                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"在线选房认筹通知","认筹已缴费","点击详情查看认筹单","您的认筹已成功缴费",false);
310
+                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"认筹通知","认筹已缴费","点击详情查看认筹单","您的认筹已成功缴费",false);
311
             });
311
             });
312
 
312
 
313
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
313
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
379
                 record.setRefundReason(raiseRecord.getRefundReason());
379
                 record.setRefundReason(raiseRecord.getRefundReason());
380
                 record.setUpdateDate(LocalDateTime.now());
380
                 record.setUpdateDate(LocalDateTime.now());
381
                 //发送订阅消息
381
                 //发送订阅消息
382
-                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"在线选房认筹通知","认筹已退费","点击详情查看认筹单","您的认筹已成功退费",false);
382
+                iTaRaiseRecordService.sendRaiseMsg(record.getRaiseRecordId(),record.getRaiseId(),"认筹通知","认筹已退费","点击详情查看认筹单","您的认筹已成功退费",false);
383
             });
383
             });
384
 
384
 
385
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
385
             if (iTaRaiseRecordService.updateBatchById(raiseRecord.getTaRaiseRecords())) {
516
             responseBean.addSuccess(iTaRaiseRecordService.saveRaiseInfo(taRaiseRecord, getOrgId(request), getPersonId(request)));
516
             responseBean.addSuccess(iTaRaiseRecordService.saveRaiseInfo(taRaiseRecord, getOrgId(request), getPersonId(request)));
517
         } catch (Exception e) {
517
         } catch (Exception e) {
518
             logger.error("微信端下认筹单 -=- {}", e.toString());
518
             logger.error("微信端下认筹单 -=- {}", e.toString());
519
-            responseBean.addError(e.getMessage());
519
+            return ResponseBean.error(e.getMessage(), ResponseBean.ERROR_MISSING_PARAMS);
520
         }
520
         }
521
         return responseBean;
521
         return responseBean;
522
     }
522
     }
645
         }
645
         }
646
         return responseBean;
646
         return responseBean;
647
     }
647
     }
648
+
649
+    /**
650
+     * 微信端客户选择线下缴费就需要把此人的认筹单的缴费状态改为线下缴费
651
+     *
652
+     */
653
+    @RequestMapping(value = "/wx/taRaiseRecord/{raiseRecordId}", method = RequestMethod.PUT)
654
+    public ResponseBean taRaiseRecordUpdate(@PathVariable Integer raiseRecordId,
655
+                                            HttpServletRequest request) {
656
+        ResponseBean responseBean = new ResponseBean();
657
+        try {
658
+            TaRaiseRecord taRaiseRecord = new TaRaiseRecord();
659
+            taRaiseRecord.setRaiseRecordId(raiseRecordId);
660
+            taRaiseRecord.setPayType(CommConstant.PAY_TYPE_OFFLINE);
661
+            if (iTaRaiseRecordService.updateById(taRaiseRecord)) {
662
+                responseBean.addSuccess(taRaiseRecord);
663
+            } else {
664
+                responseBean.addError("fail");
665
+            }
666
+        } catch (Exception e) {
667
+            e.printStackTrace();
668
+            logger.error("taRaiseRecordUpdate -=- {}", e.toString());
669
+            responseBean.addError(e.getMessage());
670
+        }
671
+        return responseBean;
672
+    }
648
 }
673
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/po/TaHousingResourcesPO.java View File

107
      */
107
      */
108
     @TableField(exist = false)
108
     @TableField(exist = false)
109
     private Integer raiseRecordId;
109
     private Integer raiseRecordId;
110
+
111
+    /**
112
+     * 是否展示房源价格
113
+     */
114
+    @TableField(exist = false)
115
+    private Boolean displayHousePrice;
110
 }
116
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/po/TaPreselectionRecordPO.java View File

110
      */
110
      */
111
     @TableField(exist = false)
111
     @TableField(exist = false)
112
     private TaHousingResources housingInfo;
112
     private TaHousingResources housingInfo;
113
+
114
+    /**
115
+     * 是否展示房源价格
116
+     */
117
+    @TableField(exist = false)
118
+    private Boolean displayHousePrice;
113
 }
119
 }

+ 10
- 1
src/main/java/com/huiju/estateagents/service/ITaHousingResourcesService.java View File

170
      * @param personId
170
      * @param personId
171
      * @return
171
      * @return
172
      */
172
      */
173
-    ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId);
173
+    ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId);
174
+
175
+    /**
176
+     * 校验房源的认筹状态
177
+     * @param houseIds
178
+     * @param personId
179
+     * @param orgId
180
+     * @return
181
+     */
182
+    boolean checkRaiseState(String houseIds, String personId, Integer orgId) throws Exception;
174
 }
183
 }

+ 117
- 90
src/main/java/com/huiju/estateagents/service/impl/TaHousingResourcesServiceImpl.java View File

95
     @Autowired
95
     @Autowired
96
     private TaRaiseMapper taRaiseMapper;
96
     private TaRaiseMapper taRaiseMapper;
97
 
97
 
98
+    @Autowired
99
+    private TaRaiseRecordMapper taRaiseRecordMapper;
100
+
98
     /**
101
     /**
99
      * 分页获取房源列表
102
      * 分页获取房源列表
100
      *
103
      *
277
         if (null == taRaise) {
280
         if (null == taRaise) {
278
             resourcesPO.setRaiseBtn(false);
281
             resourcesPO.setRaiseBtn(false);
279
         } else {
282
         } else {
280
-            //有认筹表的情况下判断是否认筹过这个房源
281
-            boolean raiseBtnStatus = checkRaiseBtn(taRaise, salesBatchId, personId, houseId, orgId);
282
             resourcesPO.setTaRaise(taRaise);
283
             resourcesPO.setTaRaise(taRaise);
283
         }
284
         }
284
 
285
 
285
         return resourcesPO;
286
         return resourcesPO;
286
     }
287
     }
287
 
288
 
288
-    /**
289
-     * 校验认筹状态的按钮
290
-     *
291
-     * @param taRaise
292
-     * @param salesBatchId
293
-     * @param personId
294
-     * @param houseId
295
-     * @param orgId
296
-     * @return
297
-     */
298
-    private boolean checkRaiseBtn(TaRaise taRaise, Integer salesBatchId, String personId, Integer houseId, Integer orgId) {
299
-        if (taRaise.getStatus() != CommConstant.STATUS_NORMAL) {
300
-            return false;
301
-        }
302
-        if (taRaise.getNeedPreselection()) {
303
-            //查看是否有当前房源的预选记录
304
-            QueryWrapper<TaPreselectionRecord> preselectionRecordQueryWrapper = new QueryWrapper<>();
305
-            preselectionRecordQueryWrapper.eq("sales_batch_id", salesBatchId);
306
-            preselectionRecordQueryWrapper.eq("building_id", taRaise.getBuildingId());
307
-            preselectionRecordQueryWrapper.eq("org_id", orgId);
308
-            preselectionRecordQueryWrapper.eq("house_id", houseId);
309
-            preselectionRecordQueryWrapper.eq("person_id", personId);
310
-            TaPreselectionRecord taPreselectionRecord = taPreselectionRecordMapper.selectOne(preselectionRecordQueryWrapper);
311
-            if (null == taPreselectionRecord) {
312
-                return false;
313
-            }
314
-        }
315
-        //判断是否在时间之内
316
-
317
-        LocalDateTime raiseStartTime = taRaise.getRaiseStartTime();
318
-        LocalDateTime raiseEndTime = taRaise.getRaiseEndTime();
319
-        LocalDateTime now = LocalDateTime.now();
320
-        if (now.isBefore(raiseStartTime) || now.isAfter(raiseEndTime)) {
321
-            return false;
322
-        }
323
-        //销售批次校验
324
-        TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(salesBatchId);
325
-        if (taSalesBatch.getStatus() != CommConstant.STATUS_NORMAL) {
326
-            return false;
327
-        }
328
-
329
-        //房源信息
330
-        TaHousingResources taHousingResources = taHousingResourcesMapper.selectById(houseId);
331
-        if (taHousingResources.getStatus() != CommConstant.STATUS_NORMAL || CommConstant.HOUSE_LOCKING_STATUS_LOCKED.equals(taHousingResources.getHouseLockingStatus())) {
332
-            return false;
333
-        }
334
-
335
-        //查询我的认筹记录表
336
-        QueryWrapper<TaRaiseHouse> taRaiseHouseQueryWrapper = new QueryWrapper<>();
337
-        taRaiseHouseQueryWrapper.eq("org_id", orgId);
338
-        taRaiseHouseQueryWrapper.eq("house_id", houseId);
339
-        taRaiseHouseQueryWrapper.eq("person_id", personId);
340
-        List<TaRaiseHouse> list = taRaiseHouseService.list(taRaiseHouseQueryWrapper);
341
-        if (list.size() > 0) {
342
-            return false;
343
-        }
344
-
345
-        return true;
346
-    }
347
-
348
     /**
289
     /**
349
      * 校验楼栋信息存不存在
290
      * 校验楼栋信息存不存在
350
      *
291
      *
709
     }
650
     }
710
 
651
 
711
     @Override
652
     @Override
712
-    public ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId) {
653
+    public ResponseBean updateLockingStatus(Integer houseId, String type, Integer orgId, Integer raiseHouseId, String personId, Integer raiseRecordId) {
713
         logger.info("updateLockingStatus 接收参数:houseId:{},type:{},orgId:{},raiseHouseId:{},personId:{}",
654
         logger.info("updateLockingStatus 接收参数:houseId:{},type:{},orgId:{},raiseHouseId:{},personId:{}",
714
                 houseId, type, orgId, raiseHouseId, personId);
655
                 houseId, type, orgId, raiseHouseId, personId);
715
         ResponseBean responseBean = new ResponseBean();
656
         ResponseBean responseBean = new ResponseBean();
721
             return responseBean;
662
             return responseBean;
722
         }
663
         }
723
 
664
 
724
-        QueryWrapper<TaPerson> personQueryWrapper = new QueryWrapper<>();
725
-        personQueryWrapper.eq("person_id", personId);
726
-        TaPerson person = taPersonService.getOne(personQueryWrapper);
727
-        if (person == null) {
728
-            logger.info("updateLockingStatus 用户未找到");
729
-            responseBean.addError("fail");
730
-            return responseBean;
731
-        }
665
+        QueryWrapper<TaRaiseHouse> taRaiseHouseQueryWrapper = new QueryWrapper<>();
666
+        taRaiseHouseQueryWrapper.eq("raise_record_id", raiseRecordId);
667
+        taRaiseHouseQueryWrapper.eq("raise_house_id", raiseHouseId);
668
+        TaRaiseHouse taRaiseHouse = taRaiseHouseService.getOne(taRaiseHouseQueryWrapper);
669
+
670
+        QueryWrapper<TaRaiseRecord> taRaiseRecordQueryWrapper = new QueryWrapper<>();
671
+        taRaiseRecordQueryWrapper.eq("raise_record_id", raiseRecordId);
672
+        TaRaiseRecord raiseRecord = taRaiseRecordMapper.selectOne(taRaiseRecordQueryWrapper);
732
 
673
 
733
         // 更新为锁定状态
674
         // 更新为锁定状态
734
-        if ("lock".equals(type)) {
675
+        if ("locked".equals(type)) {
676
+                // 校验当前房源状态
677
+                if ("locked".equals(po.getHouseLockingStatus())){
678
+                    responseBean.addError("房源已被锁定");
679
+                    return responseBean;
680
+                }
735
 
681
 
736
-            // 校验当前房源状态
737
-            if (!"locked".equals(po.getHouseLockingStatus())) {
738
-                // 更行房源表状态
739
                 TaHousingResources housingResources = new TaHousingResources();
682
                 TaHousingResources housingResources = new TaHousingResources();
740
                 housingResources.setHouseId(po.getHouseId());
683
                 housingResources.setHouseId(po.getHouseId());
741
                 housingResources.setHouseLockingStatus("locked");
684
                 housingResources.setHouseLockingStatus("locked");
742
-                housingResources.setHouseLockingPerson(personId);
743
-                housingResources.setUpdateUser(person.getUserId());
685
+                housingResources.setHouseLockingPerson(taRaiseHouse.getPersonId());
744
                 housingResources.setUpdateDate(LocalDateTime.now());
686
                 housingResources.setUpdateDate(LocalDateTime.now());
687
+                housingResources.setHouseLockingPerson(raiseRecord.getPersonId());
745
                 updateById(housingResources);
688
                 updateById(housingResources);
746
 
689
 
690
+                //更新认筹单房源锁定状态
691
+                TaRaiseRecord taRaiseRecord = new TaRaiseRecord();
692
+                taRaiseRecord.setRaiseRecordId(raiseRecordId);
693
+                taRaiseRecord.setHouseLockingStatus("locked");
694
+                taRaiseRecordMapper.updateById(taRaiseRecord);
695
+
747
                 // 更新关联表状态
696
                 // 更新关联表状态
748
                 TaRaiseHouse raiseHouse = new TaRaiseHouse();
697
                 TaRaiseHouse raiseHouse = new TaRaiseHouse();
749
                 raiseHouse.setRaiseHouseId(raiseHouseId);
698
                 raiseHouse.setRaiseHouseId(raiseHouseId);
750
                 raiseHouse.setHouseLockingStatus("locked");
699
                 raiseHouse.setHouseLockingStatus("locked");
751
-                raiseHouse.setPersonId(personId);
752
-                raiseHouse.setPersonName(person.getName());
753
                 responseBean.addSuccess(taRaiseHouseService.updateById(raiseHouse));
700
                 responseBean.addSuccess(taRaiseHouseService.updateById(raiseHouse));
754
                 return responseBean;
701
                 return responseBean;
755
-            }
756
-            responseBean.addError("当前房源已为锁定状态");
757
-            return responseBean;
758
         }
702
         }
759
 
703
 
760
         // 更新为解锁状态
704
         // 更新为解锁状态
761
-        if ("unlock".equals(type)) {
705
+        if ("unlocked".equals(type)) {
706
+                // 校验当前房源状态
707
+                if ("unlocked".equals(po.getHouseLockingStatus())){
708
+                    responseBean.addError("房源已被解锁");
709
+                    return responseBean;
710
+                }
762
 
711
 
763
-            // 校验当前房源状态
764
-            if ("locked".equals(po.getHouseLockingStatus())) {
765
-                // 更新房源表状态
766
                 TaHousingResources housingResources = new TaHousingResources();
712
                 TaHousingResources housingResources = new TaHousingResources();
767
                 housingResources.setHouseId(po.getHouseId());
713
                 housingResources.setHouseId(po.getHouseId());
768
                 housingResources.setHouseLockingStatus("unlocked");
714
                 housingResources.setHouseLockingStatus("unlocked");
769
                 housingResources.setHouseLockingPerson("");
715
                 housingResources.setHouseLockingPerson("");
770
-                housingResources.setUpdateUser(person.getUserId());
771
                 housingResources.setUpdateDate(LocalDateTime.now());
716
                 housingResources.setUpdateDate(LocalDateTime.now());
772
                 updateById(housingResources);
717
                 updateById(housingResources);
773
 
718
 
719
+                //更新认筹单房源锁定状态
720
+                TaRaiseRecord taRaiseRecord = new TaRaiseRecord();
721
+                taRaiseRecord.setRaiseRecordId(raiseRecordId);
722
+                taRaiseRecord.setHouseLockingStatus("unlocked");
723
+                taRaiseRecordMapper.updateById(taRaiseRecord);
724
+
774
                 // 更新关联表状态
725
                 // 更新关联表状态
775
                 TaRaiseHouse raiseHouse = new TaRaiseHouse();
726
                 TaRaiseHouse raiseHouse = new TaRaiseHouse();
776
                 raiseHouse.setRaiseHouseId(raiseHouseId);
727
                 raiseHouse.setRaiseHouseId(raiseHouseId);
779
                 raiseHouse.setPersonName("");
730
                 raiseHouse.setPersonName("");
780
                 responseBean.addSuccess(taRaiseHouseService.updateById(raiseHouse));
731
                 responseBean.addSuccess(taRaiseHouseService.updateById(raiseHouse));
781
                 return responseBean;
732
                 return responseBean;
782
-            }
783
-            responseBean.addError("当前房源已为解锁状态");
784
-            return responseBean;
785
         }
733
         }
786
         responseBean.addError("fail");
734
         responseBean.addError("fail");
787
         return responseBean;
735
         return responseBean;
788
     }
736
     }
789
 
737
 
738
+    /**
739
+     * 校验房源的认筹状态
740
+     *
741
+     * @param houseIds
742
+     * @param personId
743
+     * @param orgId
744
+     * @return
745
+     */
746
+    @Override
747
+    public boolean checkRaiseState(String houseIds, String personId, Integer orgId) throws Exception {
748
+        String[] houseIdArr = houseIds.split(",");
749
+        //房源信息
750
+        TaHousingResources taHousingResources = taHousingResourcesMapper.selectById(houseIdArr[0]);
751
+        //通过销售批次信息获取认筹信息
752
+        QueryWrapper<TaRaise> taRaiseQueryWrapper = new QueryWrapper<>();
753
+        taRaiseQueryWrapper.eq("org_id",orgId);
754
+        taRaiseQueryWrapper.eq("sales_batch_id",taHousingResources.getSalesBatchId());
755
+        taRaiseQueryWrapper.eq("building_id",taHousingResources.getBuildingId());
756
+        TaRaise taRaise = taRaiseMapper.selectOne(taRaiseQueryWrapper);
757
+        if (taRaise.getStatus() != CommConstant.STATUS_NORMAL) {
758
+            throw new Exception("认筹单已经作废");
759
+        }
760
+        //校验房源是否同一批次
761
+        for (String houseId : houseIdArr){
762
+            TaHousingResources taHousingResourcesChecked = taHousingResourcesMapper.selectById(houseId);
763
+            if (taHousingResources.getSalesBatchId() != taHousingResourcesChecked.getSalesBatchId()){
764
+                throw new Exception("非同一批次房源");
765
+            }
766
+            if (taRaise.getNeedPreselection()) {
767
+                //查看是否有当前房源的预选记录
768
+                QueryWrapper<TaPreselectionRecord> preselectionRecordQueryWrapper = new QueryWrapper<>();
769
+                preselectionRecordQueryWrapper.eq("sales_batch_id", taRaise.getSalesBatchId());
770
+                preselectionRecordQueryWrapper.eq("building_id", taRaise.getBuildingId());
771
+                preselectionRecordQueryWrapper.eq("org_id", orgId);
772
+                preselectionRecordQueryWrapper.eq("house_id", houseId);
773
+                preselectionRecordQueryWrapper.eq("person_id", personId);
774
+                TaPreselectionRecord taPreselectionRecord = taPreselectionRecordMapper.selectOne(preselectionRecordQueryWrapper);
775
+                if (null == taPreselectionRecord) {
776
+                    throw new Exception("需要先预选才能认筹");
777
+                }
778
+            }
779
+            //查询我的认筹记录表
780
+            QueryWrapper<TaRaiseHouse> taRaiseHouseQueryWrapper = new QueryWrapper<>();
781
+            taRaiseHouseQueryWrapper.eq("org_id", orgId);
782
+            taRaiseHouseQueryWrapper.eq("house_id", houseId);
783
+            taRaiseHouseQueryWrapper.eq("person_id", personId);
784
+            List<TaRaiseHouse> list = taRaiseHouseService.list(taRaiseHouseQueryWrapper);
785
+            if (list.size() > 0) {
786
+                throw new Exception("您已有认筹单包含当前房源");
787
+            }
788
+
789
+        }
790
+        if (taHousingResources.getStatus() != CommConstant.STATUS_NORMAL) {
791
+            throw new Exception("房源已被取消发布");
792
+        }
793
+        if (CommConstant.HOUSE_LOCKING_STATUS_LOCKED.equals(taHousingResources.getHouseLockingStatus())){
794
+            throw new Exception("房源已被其他客户锁定");
795
+        }
796
+        //销售批次信息
797
+        TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(taHousingResources.getSalesBatchId());
798
+        //销售批次校验
799
+        if (null == taSalesBatch) {
800
+            throw new Exception("无销售批次无法认筹");
801
+        }
802
+        if (taSalesBatch.getStatus() != CommConstant.STATUS_NORMAL) {
803
+            throw new Exception("销售批次已被取消发布");
804
+        }
805
+
806
+        //判断是否在时间之内
807
+        LocalDateTime raiseStartTime = taRaise.getRaiseStartTime();
808
+        LocalDateTime raiseEndTime = taRaise.getRaiseEndTime();
809
+        LocalDateTime now = LocalDateTime.now();
810
+        if (now.isBefore(raiseStartTime) || now.isAfter(raiseEndTime)) {
811
+            throw new Exception("不在认筹时间内");
812
+        }
813
+
814
+        return true;
815
+    }
816
+
790
     //更新房号
817
     //更新房号
791
     private void updateRoom(TaHousingResources taHousingResources) {
818
     private void updateRoom(TaHousingResources taHousingResources) {
792
         TaBuildingRoom taBuildingRoom = new TaBuildingRoom();
819
         TaBuildingRoom taBuildingRoom = new TaBuildingRoom();

+ 1
- 1
src/main/java/com/huiju/estateagents/service/impl/TaRaiseRecordServiceImpl.java View File

149
         saveRaiseRecord(taRaiseRecord, orgId, personId, taRaise);
149
         saveRaiseRecord(taRaiseRecord, orgId, personId, taRaise);
150
 
150
 
151
         //发送订阅消息
151
         //发送订阅消息
152
-        sendRaiseMsg(taRaiseRecord.getRaiseRecordId(), personId, "在线选房认筹通知", "已提交认筹", "点击详情查看认筹单", "房源紧俏,请赶紧缴费", true);
152
+        sendRaiseMsg(taRaiseRecord.getRaiseRecordId(), personId, "认筹通知", "已提交认筹", "点击详情查看认筹单", "房源紧俏,请赶紧缴费", true);
153
 
153
 
154
         return taRaiseRecord;
154
         return taRaiseRecord;
155
     }
155
     }

+ 15
- 15
src/main/java/com/huiju/estateagents/service/impl/TdCityServiceImpl.java View File

72
         if (jsonObject.getString("status").equals("1")) {
72
         if (jsonObject.getString("status").equals("1")) {
73
             JSONObject addressComponent = jsonObject.getJSONObject("regeocode").getJSONObject("addressComponent");
73
             JSONObject addressComponent = jsonObject.getJSONObject("regeocode").getJSONObject("addressComponent");
74
             String citycode = addressComponent.getString("citycode");
74
             String citycode = addressComponent.getString("citycode");
75
-            QueryWrapper<TdCity> queryWrapper = new QueryWrapper<>();
76
-            queryWrapper.eq("citycode", citycode);
77
-            queryWrapper.eq("leveltype", 2);
78
-            List<TdCity> tdCities = tdCityMapper.selectList(queryWrapper);
79
-            if (tdCities.size() > 0) {
80
-                List<TdCity> cityList = selectWxCity(null, orgId);
81
-                Integer cityId = tdCities.get(0).getId();
82
-                for (TdCity tdCity : cityList) {
83
-                    if (tdCity.getId().equals(cityId)) {
84
-                        return tdCity;
85
-                    }
86
-                }
87
-            }
88
-//            return null;
89
-
90
             // 保存用户位置信息
75
             // 保存用户位置信息
91
             if (StringUtils.isNotBlank(personId)) {
76
             if (StringUtils.isNotBlank(personId)) {
92
                 ExecutorService threadPool = Executors.newCachedThreadPool();
77
                 ExecutorService threadPool = Executors.newCachedThreadPool();
93
                 threadPool.execute(() -> {
78
                 threadPool.execute(() -> {
79
+                    logger.info("保存用户位置信息开始");
94
                     TaPersonPositon record = new TaPersonPositon();
80
                     TaPersonPositon record = new TaPersonPositon();
95
                     try {
81
                     try {
96
                         String[] locationArr = location.split(",");
82
                         String[] locationArr = location.split(",");
113
                 });
99
                 });
114
             }
100
             }
115
 
101
 
102
+            QueryWrapper<TdCity> queryWrapper = new QueryWrapper<>();
103
+            queryWrapper.eq("citycode", citycode);
104
+            queryWrapper.eq("leveltype", 2);
105
+            List<TdCity> tdCities = tdCityMapper.selectList(queryWrapper);
106
+            if (tdCities.size() > 0) {
107
+                List<TdCity> cityList = selectWxCity(null, orgId);
108
+                Integer cityId = tdCities.get(0).getId();
109
+                for (TdCity tdCity : cityList) {
110
+                    if (tdCity.getId().equals(cityId)) {
111
+                        return tdCity;
112
+                    }
113
+                }
114
+            }
115
+//            return null;
116
         }
116
         }
117
 
117
 
118
         // 没有匹配到则返回默认城市
118
         // 没有匹配到则返回默认城市

+ 4
- 4
src/main/java/com/huiju/estateagents/service/impl/WxPayServiceImpl.java View File

225
                 e.setPayTime(LocalDateTime.now());
225
                 e.setPayTime(LocalDateTime.now());
226
                 if (orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
226
                 if (orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
227
                     //发送订阅消息
227
                     //发送订阅消息
228
-                    taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getPersonId(),"在线选房认筹通知","线上退费成功","点击详情查看认筹单","线上退费成功",false);
228
+                    taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getPersonId(),"认筹通知","线上退费成功","点击详情查看认筹单","线上退费成功",false);
229
                 }
229
                 }
230
                 if (!orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
230
                 if (!orderInfo.get("refund_status").equals(WXPayConstants.SUCCESS)){
231
                     //发送订阅消息
231
                     //发送订阅消息
232
-                    taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getPersonId(),"在线选房认筹通知","线上退费失败","点击详情查看认筹单","请联系置业顾问",false);
232
+                    taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getPersonId(),"认筹通知","线上退费失败","点击详情查看认筹单","请联系置业顾问",false);
233
                 }
233
                 }
234
             }
234
             }
235
             taOrderMapper.updateById(e);
235
             taOrderMapper.updateById(e);
294
         taRaiseRecord.setRefundReason(taOrder.getRefundReason());
294
         taRaiseRecord.setRefundReason(taOrder.getRefundReason());
295
         taRaiseRecordMapper.updateById(taRaiseRecord);
295
         taRaiseRecordMapper.updateById(taRaiseRecord);
296
         //发送订阅消息
296
         //发送订阅消息
297
-        taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getRaiseId(),"在线选房认筹通知","认筹正在退费","点击详情查看认筹单","正在等待微信或银行到账",false);
297
+        taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getRaiseId(),"认筹通知","认筹正在退费","点击详情查看认筹单","正在等待微信或银行到账",false);
298
     }
298
     }
299
 
299
 
300
     /**
300
     /**
352
         taRaiseRecordMapper.updateById(taRaiseRecord);
352
         taRaiseRecordMapper.updateById(taRaiseRecord);
353
 
353
 
354
         //发送订阅消息
354
         //发送订阅消息
355
-        taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getRaiseId(),"在线选房认筹通知","认筹支付成功","点击详情查看认筹单","已付款成功",false);
355
+        taRaiseRecordService.sendRaiseMsg(taRaiseRecord.getRaiseRecordId(),taRaiseRecord.getRaiseId(),"认筹通知","认筹支付成功","点击详情查看认筹单","已付款成功",false);
356
     }
356
     }
357
 
357
 
358
     /**
358
     /**

+ 16
- 33
src/main/resources/mapper/TaHousingResourcesMapper.xml View File

8
         FROM
8
         FROM
9
         (
9
         (
10
         SELECT
10
         SELECT
11
-        t.house_id,
11
+        t.*,
12
         (
12
         (
13
         CASE
13
         CASE
14
         WHEN ( SELECT num_char_extract ( t.term_name, 2 ) + 0 ) = 0 THEN
14
         WHEN ( SELECT num_char_extract ( t.term_name, 2 ) + 0 ) = 0 THEN
27
         ( SELECT num_char_extract ( t.unit_name, 2 ) ) ELSE ( SELECT num_char_extract ( t.unit_name, 2 ) + 0 )
27
         ( SELECT num_char_extract ( t.unit_name, 2 ) ) ELSE ( SELECT num_char_extract ( t.unit_name, 2 ) + 0 )
28
         END
28
         END
29
         ) unitNamePre,
29
         ) unitNamePre,
30
-        t.building_id,
31
-        t.block_id,
32
-        t.block_name,
33
-        t.sales_batch_id,
34
-        t.unit_id,
35
-        t.unit_name,
36
-        t.floor_id,
37
-        t.floor_name,
38
-        t.room_id,
39
-        t.room_name,
40
-        t.price,
41
-        t.heat,
42
-        t.real_heat,
43
-        t.apartment_id,
44
-        t.`status`,
45
-        t.org_id,
46
         t2.inside_area,
30
         t2.inside_area,
47
         t2.building_area,
31
         t2.building_area,
48
-        t2.apartment_name,
49
-        t3.term_id,
50
-        t.term_name,
51
-        t.raise_heat,
52
-        t.raise_real_heat,
53
-        t.house_locking_status
32
+        t2.apartment_name
54
         FROM
33
         FROM
55
         ta_housing_resources t
34
         ta_housing_resources t
56
         LEFT JOIN ta_building_apartment t2 ON t.apartment_id = t2.apartment_id
35
         LEFT JOIN ta_building_apartment t2 ON t.apartment_id = t2.apartment_id
57
-        LEFT JOIN ta_building_block t3 ON t.block_id = t3.block_id
58
         LEFT JOIN ta_sales_batch t4 ON t.sales_batch_id = t4.sales_batch_id
36
         LEFT JOIN ta_sales_batch t4 ON t.sales_batch_id = t4.sales_batch_id
59
         <if test="source == 'raiseChoose'">
37
         <if test="source == 'raiseChoose'">
60
             LEFT JOIN ta_raise_house t5 ON t.house_id = t5.house_id
38
             LEFT JOIN ta_raise_house t5 ON t.house_id = t5.house_id
61
             LEFT JOIN ta_raise_record t6 ON t6.raise_record_id = t5.raise_record_id
39
             LEFT JOIN ta_raise_record t6 ON t6.raise_record_id = t5.raise_record_id
40
+            LEFT JOIN ta_raise t7 ON t.sales_batch_id = t7.sales_batch_id
62
         </if>
41
         </if>
63
         WHERE
42
         WHERE
64
-        t.sales_batch_id = #{salesBatchId}
65
-        AND t.org_id = #{orgId}
66
-        AND t.`status` > 0
67
-        AND t4.`status` = 1
43
+            t.sales_batch_id = #{salesBatchId}
44
+            AND t.org_id = #{orgId}
45
+            AND t.`status` > 0
46
+            AND t4.`status` = 1
68
         <if test = "source == 'raiseChoose'">
47
         <if test = "source == 'raiseChoose'">
69
             AND ( t6.`status` != 0 OR t6.`status` IS NULL )
48
             AND ( t6.`status` != 0 OR t6.`status` IS NULL )
49
+            AND (t.house_locking_status  != 'locked' OR t.house_locking_status IS NULL)
50
+            AND t7.raise_start_time &lt;= now( ) AND t7.raise_end_time &gt;= now()
70
             <if test="personId != null and personId != ''">
51
             <if test="personId != null and personId != ''">
71
-                AND t6.person_id != #{personId}
52
+                AND (t6.person_id != #{personId} OR t6.person_id IS NULL)
72
             </if>
53
             </if>
73
-            AND (t.house_locking_status  != 'locked'
74
-            OR t.house_locking_status IS NULL)
75
         </if>
54
         </if>
76
         <choose>
55
         <choose>
77
             <when test=" endPrice != null and startPrice == null">
56
             <when test=" endPrice != null and startPrice == null">
90
             AND t.apartment_id = #{apartmentId}
69
             AND t.apartment_id = #{apartmentId}
91
         </if>
70
         </if>
92
         ) t5
71
         ) t5
72
+        GROUP BY
73
+        t5.house_id
93
         ORDER BY
74
         ORDER BY
94
         t5.termNamePre,
75
         t5.termNamePre,
95
         t5.blockNamePre,
76
         t5.blockNamePre,
332
     <update id="batchUpdateRaiseHeat">
313
     <update id="batchUpdateRaiseHeat">
333
         UPDATE ta_housing_resources t
314
         UPDATE ta_housing_resources t
334
         SET t.raise_heat = #{raiseHeat},
315
         SET t.raise_heat = #{raiseHeat},
335
-        t.update_user = #{updateUser}
316
+        t.update_user = #{updateUser},
317
+        t.update_date =now()
336
         WHERE
318
         WHERE
337
         t.org_id = #{orgId}
319
         t.org_id = #{orgId}
338
         AND t.sales_batch_id = #{salesBatchId}
320
         AND t.sales_batch_id = #{salesBatchId}
345
     <update id="batchUpdateHeat">
327
     <update id="batchUpdateHeat">
346
         UPDATE ta_housing_resources t
328
         UPDATE ta_housing_resources t
347
         SET t.heat = #{heat},
329
         SET t.heat = #{heat},
348
-        t.update_user = #{updateUser}
330
+        t.update_user = #{updateUser},
331
+        t.update_date =now()
349
         WHERE
332
         WHERE
350
         t.org_id = #{orgId}
333
         t.org_id = #{orgId}
351
         AND t.sales_batch_id = #{salesBatchId}
334
         AND t.sales_batch_id = #{salesBatchId}

+ 2
- 1
src/main/resources/mapper/TaPreselectionRecordMapper.xml View File

14
             t2.apartment_id,
14
             t2.apartment_id,
15
             t2.building_id buildingId,
15
             t2.building_id buildingId,
16
             t2.`status` housingStatus,
16
             t2.`status` housingStatus,
17
-            t3.`status` saleBatchStatus
17
+            t3.`status` saleBatchStatus,
18
+            t3.display_house_price
18
         FROM
19
         FROM
19
             ta_preselection_record t
20
             ta_preselection_record t
20
         LEFT JOIN ta_housing_resources t2 ON t.house_id = t2.house_id
21
         LEFT JOIN ta_housing_resources t2 ON t.house_id = t2.house_id

+ 3
- 0
src/main/resources/mapper/TaRaiseRecordMapper.xml View File

165
             <if test = "bo.transactionId != null and bo.transactionId != ''">
165
             <if test = "bo.transactionId != null and bo.transactionId != ''">
166
                 AND t2.transaction_id = #{bo.transactionId}
166
                 AND t2.transaction_id = #{bo.transactionId}
167
             </if>
167
             </if>
168
+            <if test = "bo.tradeNo != null and bo.tradeNo != ''">
169
+                AND t2.trade_no = #{bo.tradeNo}
170
+            </if>
168
             <if test = "bo.refundNo != null and bo.refundNo != ''">
171
             <if test = "bo.refundNo != null and bo.refundNo != ''">
169
                 AND t2.refund_no = #{bo.refundNo}
172
                 AND t2.refund_no = #{bo.refundNo}
170
             </if>
173
             </if>