Browse Source

* 增加获取提示消息接口

顾绍勇 5 years ago
parent
commit
c8527f549a

+ 58
- 2
src/main/java/com/huiju/estateagents/common/DateUtils.java View File

1
 package com.huiju.estateagents.common;
1
 package com.huiju.estateagents.common;
2
 
2
 
3
+import java.time.Duration;
3
 import java.time.Instant;
4
 import java.time.Instant;
4
 import java.time.LocalDateTime;
5
 import java.time.LocalDateTime;
5
 import java.time.ZoneId;
6
 import java.time.ZoneId;
39
     }
40
     }
40
 
41
 
41
     public static boolean checkTimeRange(LocalDateTime start, LocalDateTime end, LocalDateTime dt) {
42
     public static boolean checkTimeRange(LocalDateTime start, LocalDateTime end, LocalDateTime dt) {
42
-        if(dt == null){
43
+        if (dt == null) {
43
             dt = LocalDateTime.now();
44
             dt = LocalDateTime.now();
44
         }
45
         }
45
 
46
 
46
-        if(dt.isAfter(start) && dt.isBefore(end)){
47
+        if (dt.isAfter(start) && dt.isBefore(end)) {
47
             return true;
48
             return true;
48
         }
49
         }
49
         return false;
50
         return false;
50
     }
51
     }
52
+
53
+    /**
54
+     * 当前时间是否早于指定时间
55
+     *
56
+     * @param target
57
+     * @return
58
+     */
59
+    public static boolean isBefore(String target) {
60
+        LocalDateTime dt = LocalDateTime.now();
61
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
62
+        LocalDateTime targetTime = LocalDateTime.parse(target, df);
63
+        if (dt.isBefore(targetTime)) {
64
+            return true;
65
+        }
66
+        return false;
67
+    }
68
+
69
+    /**
70
+     * 当前时间是否晚于指定时间
71
+     *
72
+     * @param target
73
+     * @return
74
+     */
75
+    public static boolean isAfter(String target) {
76
+        LocalDateTime dt = LocalDateTime.now();
77
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
78
+        LocalDateTime targetTime = LocalDateTime.parse(target, df);
79
+        if (dt.isAfter(targetTime)) {
80
+            return true;
81
+        }
82
+        return false;
83
+    }
84
+
85
+    /**
86
+     * 获取时间差
87
+     *
88
+     * @param dt1
89
+     * @param dt2 目标时间
90
+     * @return
91
+     */
92
+    public static String diffTime(LocalDateTime dt1, LocalDateTime dt2) {
93
+        Duration duration = Duration.between(dt1, dt2);
94
+        long minutes = duration.toMinutes();
95
+        int hours = (int) Math.floor(minutes / 60);
96
+        int minute = (int) minutes % 60;
97
+        int day = (int) Math.floor(hours / 24);
98
+        int hour = hours % 24;
99
+
100
+        return day + "天" + hour + "小时" + minute + "分钟";
101
+    }
102
+
103
+    public static LocalDateTime timeToLocalDateTime(String target){
104
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
105
+        return LocalDateTime.parse(target, df);
106
+    }
51
 }
107
 }

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

219
                                              HttpServletRequest request) {
219
                                              HttpServletRequest request) {
220
         ResponseBean responseBean = new ResponseBean();
220
         ResponseBean responseBean = new ResponseBean();
221
         Integer orgId = getOrgId(request);
221
         Integer orgId = getOrgId(request);
222
+        orgId = 25;
222
         try {
223
         try {
223
             responseBean.addSuccess(iTaHousingResourcesService.listHousingResources(orgId, salesBatchId, startPrice, endPrice, apartmentId));
224
             responseBean.addSuccess(iTaHousingResourcesService.listHousingResources(orgId, salesBatchId, startPrice, endPrice, apartmentId));
224
         } catch (Exception e) {
225
         } catch (Exception e) {

+ 8
- 7
src/main/java/com/huiju/estateagents/controller/TaSalesBatchController.java View File

92
 
92
 
93
     /**
93
     /**
94
      * 删除批次
94
      * 删除批次
95
+     *
95
      * @param taSalesBatch 实体对象
96
      * @param taSalesBatch 实体对象
96
      * @return
97
      * @return
97
      */
98
      */
98
-    @RequestMapping(value="/admin/taSalesBatch",method= RequestMethod.PUT)
99
-    public ResponseBean taSalesBatchDel(@RequestBody List<TaSalesBatch> salesBatchs, HttpServletRequest request){
99
+    @RequestMapping(value = "/admin/taSalesBatch", method = RequestMethod.PUT)
100
+    public ResponseBean taSalesBatchDel(@RequestBody List<TaSalesBatch> salesBatchs, HttpServletRequest request) {
100
         ResponseBean responseBean = new ResponseBean();
101
         ResponseBean responseBean = new ResponseBean();
101
         try {
102
         try {
102
             responseBean = iTaSalesBatchService.delSalesBatchList(getOrgId(request), salesBatchs);
103
             responseBean = iTaSalesBatchService.delSalesBatchList(getOrgId(request), salesBatchs);
103
-        }catch (Exception e){
104
+        } catch (Exception e) {
104
             e.printStackTrace();
105
             e.printStackTrace();
105
-            logger.error("taSalesBatchAdd -=- {}",e.toString());
106
+            logger.error("taSalesBatchAdd -=- {}", e.toString());
106
             responseBean.addError(e.getMessage());
107
             responseBean.addError(e.getMessage());
107
         }
108
         }
108
         return responseBean;
109
         return responseBean;
180
      *
181
      *
181
      * @param id 实体ID
182
      * @param id 实体ID
182
      */
183
      */
183
-    @RequestMapping(value = "/wx/taSalesBatch/{id}", method = RequestMethod.GET)
184
-    public ResponseBean taSalesBatchGetForMiniApp(@PathVariable Integer id) {
184
+    @RequestMapping(value = "/wx/getNoticeInfo/{id}", method = RequestMethod.GET)
185
+    public ResponseBean getNoticeInfo(@PathVariable Integer id) {
185
         ResponseBean responseBean = new ResponseBean();
186
         ResponseBean responseBean = new ResponseBean();
186
         try {
187
         try {
187
-            responseBean.addSuccess(iTaSalesBatchService.getById(id));
188
+            responseBean = iTaSalesBatchService.getNoticeInfo(id);
188
         } catch (Exception e) {
189
         } catch (Exception e) {
189
             e.printStackTrace();
190
             e.printStackTrace();
190
             logger.error("taSalesBatchGetForMiniApp -=- {}", e.toString());
191
             logger.error("taSalesBatchGetForMiniApp -=- {}", e.toString());

+ 10
- 0
src/main/java/com/huiju/estateagents/mapper/TaSalesBatchMapper.java View File

7
 import org.apache.ibatis.annotations.Param;
7
 import org.apache.ibatis.annotations.Param;
8
 
8
 
9
 import java.util.List;
9
 import java.util.List;
10
+import java.util.Map;
10
 
11
 
11
 /**
12
 /**
12
  * <p>
13
  * <p>
22
 
23
 
23
     /**
24
     /**
24
      * 根据批次号统计预选数据
25
      * 根据批次号统计预选数据
26
+     *
25
      * @param orgId
27
      * @param orgId
26
      * @param taSalesBatchList
28
      * @param taSalesBatchList
27
      * @return
29
      * @return
29
     Integer countPreSelectRecord(@Param("orgId") Integer orgId, @Param("taSalesBatchList") List<TaSalesBatch> taSalesBatchList);
31
     Integer countPreSelectRecord(@Param("orgId") Integer orgId, @Param("taSalesBatchList") List<TaSalesBatch> taSalesBatchList);
30
 
32
 
31
     void updateSalesBatchStatus(@Param("orgId") Integer orgId, @Param("taSalesBatchList") List<TaSalesBatch> taSalesBatchList);
33
     void updateSalesBatchStatus(@Param("orgId") Integer orgId, @Param("taSalesBatchList") List<TaSalesBatch> taSalesBatchList);
34
+
35
+    /**
36
+     * 获取房源总数和总热度
37
+     *
38
+     * @param salesBatchId
39
+     * @return
40
+     */
41
+    Map<String,Long> getTotalHousesAndHeat(@Param("salesBatchId") Integer salesBatchId);
32
 }
42
 }

+ 8
- 0
src/main/java/com/huiju/estateagents/service/ITaSalesBatchService.java View File

20
     IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId);
20
     IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId);
21
 
21
 
22
     ResponseBean delSalesBatchList(Integer orgId, List<TaSalesBatch> taSalesBatchList);
22
     ResponseBean delSalesBatchList(Integer orgId, List<TaSalesBatch> taSalesBatchList);
23
+
24
+    /**
25
+     * 获取通知信息
26
+     *
27
+     * @param salesBatchId  销售批次ID
28
+     * @return
29
+     */
30
+    ResponseBean getNoticeInfo(Integer salesBatchId);
23
 }
31
 }

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

4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
4
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
5
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
6
 import com.huiju.estateagents.base.ResponseBean;
6
 import com.huiju.estateagents.base.ResponseBean;
7
+import com.huiju.estateagents.common.DateUtils;
7
 import com.huiju.estateagents.entity.TaSalesBatch;
8
 import com.huiju.estateagents.entity.TaSalesBatch;
8
 import com.huiju.estateagents.mapper.TaSalesBatchMapper;
9
 import com.huiju.estateagents.mapper.TaSalesBatchMapper;
9
 import com.huiju.estateagents.service.ITaSalesBatchService;
10
 import com.huiju.estateagents.service.ITaSalesBatchService;
11
+import org.slf4j.Logger;
12
+import org.slf4j.LoggerFactory;
10
 import org.springframework.beans.factory.annotation.Autowired;
13
 import org.springframework.beans.factory.annotation.Autowired;
11
 import org.springframework.stereotype.Service;
14
 import org.springframework.stereotype.Service;
12
 
15
 
16
+import java.time.LocalDateTime;
17
+import java.util.ArrayList;
18
+import java.util.Date;
13
 import java.util.List;
19
 import java.util.List;
20
+import java.util.Map;
14
 
21
 
15
 /**
22
 /**
16
  * <p>
23
  * <p>
23
 @Service
30
 @Service
24
 public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaSalesBatch> implements ITaSalesBatchService {
31
 public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaSalesBatch> implements ITaSalesBatchService {
25
 
32
 
33
+    private Logger logger = LoggerFactory.getLogger(TaSalesBatchServiceImpl.class);
34
+
26
     @Autowired
35
     @Autowired
27
     private TaSalesBatchMapper taSalesBatchMapper;
36
     private TaSalesBatchMapper taSalesBatchMapper;
28
 
37
 
35
     public ResponseBean delSalesBatchList(Integer orgId, List<TaSalesBatch> taSalesBatchList) {
44
     public ResponseBean delSalesBatchList(Integer orgId, List<TaSalesBatch> taSalesBatchList) {
36
         ResponseBean responseBean = new ResponseBean();
45
         ResponseBean responseBean = new ResponseBean();
37
         Integer count = taSalesBatchMapper.countPreSelectRecord(orgId, taSalesBatchList);
46
         Integer count = taSalesBatchMapper.countPreSelectRecord(orgId, taSalesBatchList);
38
-        if (count > 0){
47
+        if (count > 0) {
39
             responseBean.addError("已有用户预选,请先删除预选记录。");
48
             responseBean.addError("已有用户预选,请先删除预选记录。");
40
             return responseBean;
49
             return responseBean;
41
         }
50
         }
42
         taSalesBatchMapper.updateSalesBatchStatus(orgId, taSalesBatchList);
51
         taSalesBatchMapper.updateSalesBatchStatus(orgId, taSalesBatchList);
43
         return responseBean;
52
         return responseBean;
44
     }
53
     }
54
+
55
+    /**
56
+     * 获取通知信息
57
+     *
58
+     * @param salesBatchId 销售批次ID
59
+     * @return
60
+     */
61
+    @Override
62
+    public ResponseBean getNoticeInfo(Integer salesBatchId) {
63
+        logger.info("getNoticeInfo 接收参数:saleBatchId:{}", salesBatchId);
64
+
65
+        ResponseBean responseBean = new ResponseBean();
66
+
67
+        TaSalesBatch salesBatch = getById(salesBatchId);
68
+        if (salesBatch == null) {
69
+            responseBean.addError("未查询到数据");
70
+            return responseBean;
71
+        }
72
+
73
+        List<String> noticeList = new ArrayList<>();
74
+        // 当前时间万余预选结束时间
75
+        if (DateUtils.isAfter(salesBatch.getPreselectionEndTime())) {
76
+            noticeList.add("预选已结束,请关注下轮预选");
77
+            responseBean.addSuccess(noticeList);
78
+            return responseBean;
79
+        }
80
+
81
+        // 当前时间早于预选开始时间
82
+        if (DateUtils.isBefore(salesBatch.getPreselectionStartTime())) {
83
+            String str = DateUtils.diffTime(DateUtils.timeToLocalDateTime(salesBatch.getPreselectionStartTime()), LocalDateTime.now());
84
+            noticeList.add("距离预选开始还有" + str);
85
+            responseBean.addSuccess(noticeList);
86
+            return responseBean;
87
+        }
88
+
89
+        // 当前时间在预选时间内
90
+        if (DateUtils.isAfter(salesBatch.getPreselectionStartTime()) && DateUtils.isBefore(salesBatch.getPreselectionEndTime())) {
91
+            String str = DateUtils.diffTime(LocalDateTime.now(), DateUtils.timeToLocalDateTime(salesBatch.getPreselectionEndTime()));
92
+            noticeList.add("距离预选结束还有" + str);
93
+        }
94
+
95
+        // 获取房源预选数量
96
+        Map<String, Long> result = taSalesBatchMapper.getTotalHousesAndHeat(salesBatchId);
97
+        if (result != null) {
98
+            Long totalHouses = result.get("totalHouses");
99
+            Long totalRealHeat = result.get("totalRealHeat");
100
+            if (totalRealHeat != null && totalRealHeat > 0) {
101
+                noticeList.add("当前" + totalHouses + "套房源已有" + totalRealHeat + "人成功预选 ");
102
+            }
103
+        }
104
+        responseBean.addSuccess(noticeList);
105
+        return responseBean;
106
+    }
45
 }
107
 }

+ 10
- 0
src/main/resources/mapper/TaSalesBatchMapper.xml View File

33
           #{taSalesBatch.salesBatchId}
33
           #{taSalesBatch.salesBatchId}
34
       </foreach>
34
       </foreach>
35
     </select>
35
     </select>
36
+
37
+    <select id="getTotalHousesAndHeat" resultType="java.util.Map">
38
+        SELECT
39
+            count( * ) totalHouses,
40
+            sum( t.real_heat ) totalRealHeat
41
+        FROM
42
+            ta_housing_resources t
43
+        WHERE
44
+            t.STATUS = 1 and t.sales_batch_id = #{salesBatchId}
45
+    </select>
36
 </mapper>
46
 </mapper>