顾绍勇 5 лет назад
Родитель
Сommit
b2346fa656
18 измененных файлов: 501 добавлений и 106 удалений
  1. 72
    44
      src/main/java/com/huiju/estateagents/controller/TaLiveActivityController.java
  2. 32
    9
      src/main/java/com/huiju/estateagents/controller/TaShareController.java
  3. 3
    2
      src/main/java/com/huiju/estateagents/controller/TdLiveDictController.java
  4. 5
    0
      src/main/java/com/huiju/estateagents/entity/TaLiveActivity.java
  5. 6
    0
      src/main/java/com/huiju/estateagents/entity/TaShare.java
  6. 12
    1
      src/main/java/com/huiju/estateagents/mapper/TaLiveActivityMapper.java
  7. 2
    0
      src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java
  8. 4
    2
      src/main/java/com/huiju/estateagents/service/IMiniAppService.java
  9. 33
    1
      src/main/java/com/huiju/estateagents/service/ITaLiveActivityService.java
  10. 2
    0
      src/main/java/com/huiju/estateagents/service/ITaShareService.java
  11. 38
    11
      src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java
  12. 108
    1
      src/main/java/com/huiju/estateagents/service/impl/TaLiveActivityServiceImpl.java
  13. 114
    34
      src/main/java/com/huiju/estateagents/service/impl/TaPreselectionRecordServiceImpl.java
  14. 10
    0
      src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java
  15. 8
    0
      src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java
  16. 9
    0
      src/main/resources/mapper/Activity.xml
  17. 12
    0
      src/main/resources/mapper/TaLiveActivityMapper.xml
  18. 31
    1
      src/main/resources/mapper/TaShareMapper.xml

+ 72
- 44
src/main/java/com/huiju/estateagents/controller/TaLiveActivityController.java Просмотреть файл

@@ -12,16 +12,18 @@ import org.slf4j.LoggerFactory;
12 12
 import org.springframework.beans.factory.annotation.Autowired;
13 13
 import org.springframework.web.bind.annotation.*;
14 14
 
15
+import javax.servlet.http.HttpServletRequest;
16
+
15 17
 /**
16 18
  * <p>
17
-    *   前端控制器
18
-    * </p>
19
+ * 前端控制器
20
+ * </p>
19 21
  *
20 22
  * @author jobob
21 23
  * @since 2020-02-20
22 24
  */
23 25
 @RestController
24
-@RequestMapping("/")
26
+@RequestMapping("/api")
25 27
 public class TaLiveActivityController extends BaseController {
26 28
 
27 29
     private final Logger logger = LoggerFactory.getLogger(TaLiveActivityController.class);
@@ -29,28 +31,33 @@ public class TaLiveActivityController extends BaseController {
29 31
     @Autowired
30 32
     public ITaLiveActivityService iTaLiveActivityService;
31 33
 
32
-
33 34
     /**
34 35
      * 分页查询列表
36
+     *
35 37
      * @param pageNum
36 38
      * @param pageSize
39
+     * @param liveActivityTitle 直播活动标题
40
+     * @param cityId            所属城市
41
+     * @param buildingId        所属楼盘
42
+     * @param liveDetailType    详情类型 0是模板,1是自定义
43
+     * @param status            状态
44
+     * @param request
37 45
      * @return
38 46
      */
39
-    @RequestMapping(value="/taLiveActivity",method= RequestMethod.GET)
40
-    public ResponseBean taLiveActivityList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
41
-                                           @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
47
+    @RequestMapping(value = "/admin/taLiveActivity", method = RequestMethod.GET)
48
+    public ResponseBean taLiveActivityList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
49
+                                           @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
50
+                                           String liveActivityTitle, String cityId, String buildingId,
51
+                                           String liveDetailType, Integer status,
52
+                                           HttpServletRequest request) {
42 53
         ResponseBean responseBean = new ResponseBean();
43 54
         try {
44
-            //使用分页插件
45
-		    IPage<TaLiveActivity> pg = new Page<>(pageNum, pageSize);
46
-            QueryWrapper<TaLiveActivity> queryWrapper = new QueryWrapper<>();
47
-            queryWrapper.orderByDesc("create_date");
48
-
49
-            IPage<TaLiveActivity> result = iTaLiveActivityService.page(pg, queryWrapper);
50
-            responseBean.addSuccess(result);
51
-        }catch (Exception e){
55
+            Integer orgId = getOrgId(request);
56
+            responseBean = iTaLiveActivityService.listLiveActivityByCondition(pageNum, pageSize, orgId,
57
+                    liveActivityTitle, cityId, buildingId, liveDetailType, status);
58
+        } catch (Exception e) {
52 59
             e.printStackTrace();
53
-            logger.error("taLiveActivityList -=- {}",e.toString());
60
+            logger.error("taLiveActivityList -=- {}", e.toString());
54 61
             responseBean.addError(e.getMessage());
55 62
         }
56 63
         return responseBean;
@@ -58,21 +65,20 @@ public class TaLiveActivityController extends BaseController {
58 65
 
59 66
     /**
60 67
      * 保存对象
68
+     *
61 69
      * @param taLiveActivity 实体对象
62 70
      * @return
63 71
      */
64
-    @RequestMapping(value="/taLiveActivity",method= RequestMethod.POST)
65
-    public ResponseBean taLiveActivityAdd(@RequestBody TaLiveActivity taLiveActivity){
72
+    @RequestMapping(value = "/admin/taLiveActivity", method = RequestMethod.POST)
73
+    public ResponseBean taLiveActivityAdd(@RequestBody TaLiveActivity taLiveActivity, HttpServletRequest request) {
66 74
         ResponseBean responseBean = new ResponseBean();
67 75
         try {
68
-            if (iTaLiveActivityService.save(taLiveActivity)){
69
-                responseBean.addSuccess(taLiveActivity);
70
-            }else {
71
-                responseBean.addError("fail");
72
-            }
73
-        }catch (Exception e){
76
+            Integer orgId = getOrgId(request);
77
+            taLiveActivity.setOrgId(orgId);
78
+            responseBean = iTaLiveActivityService.taLiveActivityAdd(taLiveActivity);
79
+        } catch (Exception e) {
74 80
             e.printStackTrace();
75
-            logger.error("taLiveActivityAdd -=- {}",e.toString());
81
+            logger.error("taLiveActivityAdd -=- {}", e.toString());
76 82
             responseBean.addError(e.getMessage());
77 83
         }
78 84
         return responseBean;
@@ -80,21 +86,22 @@ public class TaLiveActivityController extends BaseController {
80 86
 
81 87
     /**
82 88
      * 根据id删除对象
83
-     * @param id  实体ID
89
+     *
90
+     * @param id 实体ID
84 91
      */
85 92
     @ResponseBody
86
-    @RequestMapping(value="/taLiveActivity/{id}", method= RequestMethod.DELETE)
87
-    public ResponseBean taLiveActivityDelete(@PathVariable Integer id){
93
+    @RequestMapping(value = "/taLiveActivity/{id}", method = RequestMethod.DELETE)
94
+    public ResponseBean taLiveActivityDelete(@PathVariable Integer id) {
88 95
         ResponseBean responseBean = new ResponseBean();
89 96
         try {
90
-            if(iTaLiveActivityService.removeById(id)){
97
+            if (iTaLiveActivityService.removeById(id)) {
91 98
                 responseBean.addSuccess("success");
92
-            }else {
99
+            } else {
93 100
                 responseBean.addError("fail");
94 101
             }
95
-        }catch (Exception e){
102
+        } catch (Exception e) {
96 103
             e.printStackTrace();
97
-            logger.error("taLiveActivityDelete -=- {}",e.toString());
104
+            logger.error("taLiveActivityDelete -=- {}", e.toString());
98 105
             responseBean.addError(e.getMessage());
99 106
         }
100 107
         return responseBean;
@@ -102,23 +109,24 @@ public class TaLiveActivityController extends BaseController {
102 109
 
103 110
     /**
104 111
      * 修改对象
105
-     * @param id  实体ID
112
+     *
113
+     * @param id             实体ID
106 114
      * @param taLiveActivity 实体对象
107 115
      * @return
108 116
      */
109
-    @RequestMapping(value="/taLiveActivity/{id}",method= RequestMethod.PUT)
117
+    @RequestMapping(value = "/admin/taLiveActivity/{id}", method = RequestMethod.PUT)
110 118
     public ResponseBean taLiveActivityUpdate(@PathVariable Integer id,
111
-                                             @RequestBody TaLiveActivity taLiveActivity){
119
+                                             @RequestBody TaLiveActivity taLiveActivity) {
112 120
         ResponseBean responseBean = new ResponseBean();
113 121
         try {
114
-            if (iTaLiveActivityService.updateById(taLiveActivity)){
122
+            if (iTaLiveActivityService.updateById(taLiveActivity)) {
115 123
                 responseBean.addSuccess(taLiveActivity);
116
-            }else {
124
+            } else {
117 125
                 responseBean.addError("fail");
118 126
             }
119
-        }catch (Exception e){
127
+        } catch (Exception e) {
120 128
             e.printStackTrace();
121
-            logger.error("taLiveActivityUpdate -=- {}",e.toString());
129
+            logger.error("taLiveActivityUpdate -=- {}", e.toString());
122 130
             responseBean.addError(e.getMessage());
123 131
         }
124 132
         return responseBean;
@@ -126,16 +134,36 @@ public class TaLiveActivityController extends BaseController {
126 134
 
127 135
     /**
128 136
      * 根据id查询对象
129
-     * @param id  实体ID
137
+     *
138
+     * @param id 实体ID
130 139
      */
131
-    @RequestMapping(value="/taLiveActivity/{id}",method= RequestMethod.GET)
132
-    public ResponseBean taLiveActivityGet(@PathVariable Integer id){
140
+    @RequestMapping(value = "/taLiveActivity/{id}", method = RequestMethod.GET)
141
+    public ResponseBean taLiveActivityGet(@PathVariable Integer id) {
133 142
         ResponseBean responseBean = new ResponseBean();
134 143
         try {
135 144
             responseBean.addSuccess(iTaLiveActivityService.getById(id));
136
-        }catch (Exception e){
145
+        } catch (Exception e) {
146
+            e.printStackTrace();
147
+            logger.error("taLiveActivityDelete -=- {}", e.toString());
148
+            responseBean.addError(e.getMessage());
149
+        }
150
+        return responseBean;
151
+    }
152
+
153
+    /**
154
+     * 访问量自增
155
+     *
156
+     * @param id
157
+     * @return
158
+     */
159
+    @RequestMapping(value = "/wx/addVisitNum", method = RequestMethod.PUT)
160
+    public ResponseBean addVisitNum(@RequestParam("id") String id) {
161
+        ResponseBean responseBean = new ResponseBean();
162
+        try {
163
+            responseBean = iTaLiveActivityService.addVisitNum(id);
164
+        } catch (Exception e) {
137 165
             e.printStackTrace();
138
-            logger.error("taLiveActivityDelete -=- {}",e.toString());
166
+            logger.error("addVisitNum -=- {}", e.toString());
139 167
             responseBean.addError(e.getMessage());
140 168
         }
141 169
         return responseBean;

+ 32
- 9
src/main/java/com/huiju/estateagents/controller/TaShareController.java Просмотреть файл

@@ -47,6 +47,7 @@ public class TaShareController extends BaseController {
47 47
 
48 48
     /**
49 49
      * 确认分享, 送积分
50
+     *
50 51
      * @param typeOf
51 52
      * @param id
52 53
      * @param request
@@ -61,23 +62,45 @@ public class TaShareController extends BaseController {
61 62
     }
62 63
 
63 64
     @RequestMapping(value = "/admin/taHouseShare", method = RequestMethod.GET)
64
-    public ResponseBean taHouseShareList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
65
-                                         @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
66
-                                         @RequestParam(value = "shareType", required = false)String shareType,
67
-                                         @RequestParam(value = "personType", required = false)String personType,
68
-                                         @RequestParam(value = "phone", required = false)String phone,
69
-                                         @RequestParam(value = "salesBatchId")Integer salesBatchId, HttpServletRequest request){
65
+    public ResponseBean taHouseShareList(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
66
+                                         @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
67
+                                         @RequestParam(value = "shareType", required = false) String shareType,
68
+                                         @RequestParam(value = "personType", required = false) String personType,
69
+                                         @RequestParam(value = "phone", required = false) String phone,
70
+                                         @RequestParam(value = "salesBatchId") Integer salesBatchId, HttpServletRequest request) {
70 71
         ResponseBean responseBean = new ResponseBean();
71 72
         try {
72
-            if (salesBatchId == null){
73
+            if (salesBatchId == null) {
73 74
                 return ResponseBean.success("");
74 75
             }
75 76
             responseBean = taShareService.selectHouseShareList(pageNum, pageSize, getOrgId(request), personType, shareType, phone, salesBatchId);
76
-        }catch (Exception e){
77
+        } catch (Exception e) {
77 78
             e.printStackTrace();
78
-            logger.error("taShareCountList -=- {}",e.toString());
79
+            logger.error("taShareCountList -=- {}", e.toString());
79 80
             responseBean.addError(e.getMessage());
80 81
         }
81 82
         return responseBean;
82 83
     }
84
+
85
+    @RequestMapping(value = "/admin/taLiveShare", method = RequestMethod.GET)
86
+    public ResponseBean listLiveShare(@RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
87
+                                      @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
88
+                                      @RequestParam(value = "shareType", required = false) String shareType,
89
+                                      @RequestParam(value = "personType", required = false) String personType,
90
+                                      @RequestParam(value = "phone", required = false) String phone,
91
+                                      @RequestParam(value = "liveActivityId") Integer liveActivityId, HttpServletRequest request) {
92
+        ResponseBean responseBean = new ResponseBean();
93
+        try {
94
+            if (liveActivityId == null) {
95
+                return ResponseBean.success("");
96
+            }
97
+            responseBean = taShareService.listLiveShare(pageNum, pageSize, getOrgId(request), personType, shareType, phone, liveActivityId);
98
+        } catch (Exception e) {
99
+            e.printStackTrace();
100
+            logger.error("listLiveShare -=- {}", e.toString());
101
+            responseBean.addError(e.getMessage());
102
+        }
103
+        return responseBean;
104
+
105
+    }
83 106
 }

+ 3
- 2
src/main/java/com/huiju/estateagents/controller/TdLiveDictController.java Просмотреть файл

@@ -21,7 +21,7 @@ import org.springframework.web.bind.annotation.*;
21 21
  * @since 2020-02-20
22 22
  */
23 23
 @RestController
24
-@RequestMapping("/")
24
+@RequestMapping("/api")
25 25
 public class TdLiveDictController extends BaseController {
26 26
 
27 27
     private final Logger logger = LoggerFactory.getLogger(TdLiveDictController.class);
@@ -36,7 +36,7 @@ public class TdLiveDictController extends BaseController {
36 36
      * @param pageSize
37 37
      * @return
38 38
      */
39
-    @RequestMapping(value="/tdLiveDict",method= RequestMethod.GET)
39
+    @RequestMapping(value="/admin/tdLiveDict",method= RequestMethod.GET)
40 40
     public ResponseBean tdLiveDictList(@RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
41 41
                                        @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize){
42 42
         ResponseBean responseBean = new ResponseBean();
@@ -44,6 +44,7 @@ public class TdLiveDictController extends BaseController {
44 44
             //使用分页插件
45 45
 		    IPage<TdLiveDict> pg = new Page<>(pageNum, pageSize);
46 46
             QueryWrapper<TdLiveDict> queryWrapper = new QueryWrapper<>();
47
+            queryWrapper.eq("status",1);
47 48
             queryWrapper.orderByDesc("create_date");
48 49
 
49 50
             IPage<TdLiveDict> result = iTdLiveDictService.page(pg, queryWrapper);

+ 5
- 0
src/main/java/com/huiju/estateagents/entity/TaLiveActivity.java Просмотреть файл

@@ -125,5 +125,10 @@ public class TaLiveActivity implements Serializable {
125 125
      */
126 126
     private String updateUser;
127 127
 
128
+    /**
129
+     * 权重
130
+     */
131
+//    private Integer weight;
132
+
128 133
 
129 134
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/entity/TaShare.java Просмотреть файл

@@ -96,4 +96,10 @@ public class TaShare implements Serializable {
96 96
      */
97 97
     @TableField(exist = false)
98 98
     private String salesBatchName;
99
+
100
+    /**
101
+     * 分享内容
102
+     */
103
+    @TableField(exist = false)
104
+    private String shareContent;
99 105
 }

+ 12
- 1
src/main/java/com/huiju/estateagents/mapper/TaLiveActivityMapper.java Просмотреть файл

@@ -3,16 +3,27 @@ package com.huiju.estateagents.mapper;
3 3
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4 4
 import com.huiju.estateagents.entity.TaLiveActivity;
5 5
 import org.apache.ibatis.annotations.Mapper;
6
+import org.apache.ibatis.annotations.Param;
7
+import org.springframework.stereotype.Component;
6 8
 
7 9
 /**
8 10
  * <p>
9
- *   Mapper 接口
11
+ * Mapper 接口
10 12
  * </p>
11 13
  *
12 14
  * @author jobob
13 15
  * @since 2020-02-20
14 16
  */
15 17
 @Mapper
18
+@Component
16 19
 public interface TaLiveActivityMapper extends BaseMapper<TaLiveActivity> {
17 20
 
21
+    /**
22
+     * 访问人数自增
23
+     *
24
+     * @param id
25
+     * @return
26
+     */
27
+    Boolean addVisitNum(@Param("id") String id);
28
+
18 29
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java Просмотреть файл

@@ -19,4 +19,6 @@ import java.util.List;
19 19
 @Mapper
20 20
 public interface TaShareMapper extends BaseMapper<TaShare> {
21 21
     List<TaShare> selectHouseShareList(Page page, @Param("orgId") Integer orgId, @Param("personType") String personType, @Param("shareType")String shareType, @Param("phone")String phone, @Param("saleBatchId")Integer saleBatchId);
22
+
23
+    List<TaShare> listLiveShare(Page page, @Param("orgId") Integer orgId, @Param("personType") String personType, @Param("shareType")String shareType, @Param("phone")String phone, @Param("liveActivityId")Integer liveActivityId);
22 24
 }

+ 4
- 2
src/main/java/com/huiju/estateagents/service/IMiniAppService.java Просмотреть файл

@@ -25,11 +25,13 @@ public interface IMiniAppService {
25 25
     WxMaPhoneNumberInfo getPhoneNoInfo(String sessionKey, String encryptedData, String iv, String appid);
26 26
 
27 27
     void sendNoticeMessage(TaPerson toUser, String link, String name, String phone, String content, LocalDateTime dt);
28
-    
28
+
29 29
     void sendHelpMessage(TaPerson toUser, String link, String result, String activityName, LocalDateTime dt);
30
-    
30
+
31 31
     void sendGroupMessage(TaPerson toUser, String link, String result, String activityName, LocalDateTime dt);
32 32
 
33
+    void sendCheckMessage(TaPerson toUser, String link, String name, String result, String programName, String failReason, String remark, LocalDateTime dt);
34
+
33 35
     ResponseBean getQrCode(String paramsStr, String appid);
34 36
 
35 37
     String createQrCode(WxMaService service, String path) throws Exception;

+ 33
- 1
src/main/java/com/huiju/estateagents/service/ITaLiveActivityService.java Просмотреть файл

@@ -1,11 +1,12 @@
1 1
 package com.huiju.estateagents.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.huiju.estateagents.base.ResponseBean;
4 5
 import com.huiju.estateagents.entity.TaLiveActivity;
5 6
 
6 7
 /**
7 8
  * <p>
8
- *   服务类
9
+ * 服务类
9 10
  * </p>
10 11
  *
11 12
  * @author jobob
@@ -13,4 +14,35 @@ import com.huiju.estateagents.entity.TaLiveActivity;
13 14
  */
14 15
 public interface ITaLiveActivityService extends IService<TaLiveActivity> {
15 16
 
17
+    /**
18
+     * 保存数据
19
+     *
20
+     * @param taLiveActivity
21
+     * @return
22
+     */
23
+    ResponseBean taLiveActivityAdd(TaLiveActivity taLiveActivity);
24
+
25
+    /**
26
+     * 条件查询直播活动列表
27
+     *
28
+     * @param pageNum
29
+     * @param pageSize
30
+     * @param orgId
31
+     * @param liveActivityTitle
32
+     * @param cityId
33
+     * @param buildingId
34
+     * @param liveDetailType
35
+     * @param status
36
+     * @return
37
+     */
38
+    ResponseBean listLiveActivityByCondition(Integer pageNum, Integer pageSize, Integer orgId, String liveActivityTitle,
39
+                                             String cityId, String buildingId, String liveDetailType, Integer status);
40
+
41
+    /**
42
+     * 访问量自增
43
+     *
44
+     * @param id
45
+     * @return
46
+     */
47
+    ResponseBean addVisitNum(String id);
16 48
 }

+ 2
- 0
src/main/java/com/huiju/estateagents/service/ITaShareService.java Просмотреть файл

@@ -21,4 +21,6 @@ public interface ITaShareService extends IService<TaShare> {
21 21
     void makeSure(String openid, String typeOf, String id, Integer orgId);
22 22
 
23 23
     ResponseBean selectHouseShareList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer saleBatchId);
24
+
25
+    ResponseBean listLiveShare(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer liveActivityId);
24 26
 }

+ 38
- 11
src/main/java/com/huiju/estateagents/service/impl/MiniAppServiceImpl.java Просмотреть файл

@@ -88,7 +88,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
88 88
         TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
89 89
         if (null == miniapp) {
90 90
             log.error("小程序 {} 不存在", toUser.getMiniappId());
91
-            return ;
91
+            return;
92 92
         }
93 93
 
94 94
         // 消息内容类型
@@ -132,7 +132,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
132 132
             }
133 133
         }
134 134
 
135
-        String[] smsParams = { name, miniapp.getName() + "小程序" };
135
+        String[] smsParams = {name, miniapp.getName() + "小程序"};
136 136
         if (null == tpl) {
137 137
             log.error("小程序 {} 不存在 或者 无通知消息模板 {}", toUser.getMiniappId(), contentType);
138 138
 
@@ -141,7 +141,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
141 141
         } else {
142 142
 
143 143
             if (isSubscribe) {
144
-                String[] data = new String[] { name, phone, content, DateUtils.cutSecond(dt) };
144
+                String[] data = new String[]{name, phone, content, DateUtils.cutSecond(dt)};
145 145
                 ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
146 146
                 if (res.getCode() != ResponseBean.CODE_SUCCESS) {
147 147
                     // 使用短信发送
@@ -161,13 +161,13 @@ public class MiniAppServiceImpl implements IMiniAppService {
161 161
         // 更新消息发送时间
162 162
         iTaPersonMessageRuleService.saveOrUpdateByPersonAndMessage(toUser.getPersonId(), messageType, contentType, toUser.getOrgId());
163 163
     }
164
-    
164
+
165 165
     @Override
166 166
     public void sendHelpMessage(TaPerson toUser, String link, String result, String activityName, LocalDateTime dt) {
167 167
         TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
168 168
         if (null == miniapp) {
169 169
             log.error("小程序 {} 不存在", toUser.getMiniappId());
170
-            return ;
170
+            return;
171 171
         }
172 172
 
173 173
         // 消息内容类型
@@ -181,7 +181,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
181 181
         String messageType = null == tpl ? CommConstant.MESSAGE_TYPE_OF_SMS :
182 182
                 isSubscribe ? CommConstant.MESSAGE_TYPE_OF_MINIAPP_SUBSCRIBE : CommConstant.MESSAGE_TYPE_OF_MINIAPP_TEMPLATE;
183 183
 
184
-        String[] smsParams = { miniapp.getName() + "小程序-" + activityName };
184
+        String[] smsParams = {miniapp.getName() + "小程序-" + activityName};
185 185
 
186 186
         if (null == tpl) {
187 187
             log.error("小程序 {} 无通知消息模板 {}", toUser.getMiniappId(), contentType);
@@ -191,7 +191,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
191 191
         } else {
192 192
 
193 193
             if (isSubscribe) {
194
-                String[] data = new String[] { activityName, result, DateUtils.cutSecond(dt)};
194
+                String[] data = new String[]{activityName, result, DateUtils.cutSecond(dt)};
195 195
                 ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
196 196
                 if (res.getCode() != ResponseBean.CODE_SUCCESS) {
197 197
                     // 使用短信发送
@@ -219,7 +219,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
219 219
         TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
220 220
         if (null == miniapp) {
221 221
             log.error("小程序 {} 不存在", toUser.getMiniappId());
222
-            return ;
222
+            return;
223 223
         }
224 224
 
225 225
         // 消息内容类型
@@ -233,7 +233,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
233 233
         String messageType = null == tpl ? CommConstant.MESSAGE_TYPE_OF_SMS :
234 234
                 isSubscribe ? CommConstant.MESSAGE_TYPE_OF_MINIAPP_SUBSCRIBE : CommConstant.MESSAGE_TYPE_OF_MINIAPP_TEMPLATE;
235 235
 
236
-        String[] smsParams = { miniapp.getName() + "小程序-" + activityName };
236
+        String[] smsParams = {miniapp.getName() + "小程序-" + activityName};
237 237
 
238 238
         if (null == tpl) {
239 239
             log.error("小程序 {} 无通知消息模板 {}", toUser.getMiniappId(), contentType);
@@ -243,7 +243,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
243 243
         } else {
244 244
 
245 245
             if (isSubscribe) {
246
-                String[] data = new String[] { activityName, result, DateUtils.cutSecond(dt) };
246
+                String[] data = new String[]{activityName, result, DateUtils.cutSecond(dt)};
247 247
                 ResponseBean res = sendSubscribeMessage(tpl, toUser, link, data);
248 248
                 if (res.getCode() != ResponseBean.CODE_SUCCESS) {
249 249
                     // 使用短信发送
@@ -266,6 +266,33 @@ public class MiniAppServiceImpl implements IMiniAppService {
266 266
         iTaPersonMessageRuleService.saveOrUpdateByPersonAndMessage(toUser.getPersonId(), messageType, contentType, toUser.getOrgId());
267 267
     }
268 268
 
269
+    @Override
270
+    public void sendCheckMessage(TaPerson toUser, String link, String name, String result, String programName,
271
+                                 String failReason, String remark, LocalDateTime dt) {
272
+        TaMiniapp miniapp = taMiniappMapper.selectById(toUser.getMiniappId());
273
+        if (null == miniapp) {
274
+            log.error("小程序 {} 不存在", toUser.getMiniappId());
275
+            return;
276
+        }
277
+
278
+        // 消息内容类型
279
+        String contentType = CommConstant.MESSAGE_CONTENT_OF_CHECK;
280
+        TaMiniappTemplate tpl = getTplByType(contentType, toUser.getMiniappId());
281
+        boolean isSubscribe = null != tpl && (null == tpl.getIsSubscribe() ? false : tpl.getIsSubscribe());
282
+        // 消息发送类型
283
+        String messageType = null == tpl ? CommConstant.MESSAGE_TYPE_OF_SMS :
284
+                isSubscribe ? CommConstant.MESSAGE_TYPE_OF_MINIAPP_SUBSCRIBE : CommConstant.MESSAGE_TYPE_OF_MINIAPP_TEMPLATE;
285
+        if (isSubscribe) {
286
+            String[] data = new String[]{name, result, programName, failReason, DateUtils.cutSecond(dt)};
287
+            sendSubscribeMessage(tpl, toUser, link, data);
288
+        }
289
+
290
+        // TODO 写消息发送日志
291
+        // 更新消息发送时间
292
+        iTaPersonMessageRuleService.saveOrUpdateByPersonAndMessage(toUser.getPersonId(), messageType, contentType, toUser.getOrgId());
293
+    }
294
+
295
+
269 296
     @Override
270 297
     public ResponseBean getQrCode(String paramsStr, String appid) {
271 298
         if (null == paramsStr) return ResponseBean.error("请指定二维码生成参数", ResponseBean.ERROR_MISSING_PARAMS);
@@ -365,7 +392,7 @@ public class MiniAppServiceImpl implements IMiniAppService {
365 392
         }
366 393
 
367 394
         TaMiniappTemplate tpl = getTplByType(tplName, toUser.getMiniappId());
368
-        if (null == tpl) return ;
395
+        if (null == tpl) return;
369 396
 
370 397
         String formid = taMiniFormidsService.getFormidBy(toUser.getMiniOpenid(), true);
371 398
         if (StringUtils.isEmpty(formid)) {

+ 108
- 1
src/main/java/com/huiju/estateagents/service/impl/TaLiveActivityServiceImpl.java Просмотреть файл

@@ -1,14 +1,31 @@
1 1
 package com.huiju.estateagents.service.impl;
2 2
 
3
+import com.alibaba.fastjson.JSONObject;
4
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
5
+import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
3 7
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8
+import com.huiju.estateagents.base.ResponseBean;
9
+import com.huiju.estateagents.common.CommConstant;
4 10
 import com.huiju.estateagents.entity.TaLiveActivity;
11
+import com.huiju.estateagents.entity.TaMiniapp;
12
+import com.huiju.estateagents.entity.TaShareContent;
5 13
 import com.huiju.estateagents.mapper.TaLiveActivityMapper;
14
+import com.huiju.estateagents.service.IMiniAppService;
6 15
 import com.huiju.estateagents.service.ITaLiveActivityService;
16
+import com.huiju.estateagents.service.ITaMiniappService;
17
+import com.huiju.estateagents.service.TaShareContentService;
18
+import org.slf4j.Logger;
19
+import org.slf4j.LoggerFactory;
20
+import org.springframework.beans.factory.annotation.Autowired;
7 21
 import org.springframework.stereotype.Service;
22
+import org.springframework.transaction.annotation.Transactional;
23
+
24
+import java.time.LocalDateTime;
8 25
 
9 26
 /**
10 27
  * <p>
11
- *   服务实现类
28
+ * 服务实现类
12 29
  * </p>
13 30
  *
14 31
  * @author jobob
@@ -17,4 +34,94 @@ import org.springframework.stereotype.Service;
17 34
 @Service
18 35
 public class TaLiveActivityServiceImpl extends ServiceImpl<TaLiveActivityMapper, TaLiveActivity> implements ITaLiveActivityService {
19 36
 
37
+    private Logger logger = LoggerFactory.getLogger(TaLiveActivityServiceImpl.class);
38
+
39
+    @Autowired
40
+    private TaShareContentService taShareContentService;
41
+
42
+    @Autowired
43
+    private ITaMiniappService taMiniappService;
44
+
45
+    @Autowired
46
+    private IMiniAppService miniAppService;
47
+
48
+    @Autowired
49
+    private TaLiveActivityMapper taLiveActivityMapper;
50
+
51
+
52
+    @Override
53
+    public ResponseBean taLiveActivityAdd(TaLiveActivity taLiveActivity) {
54
+        logger.info("TaLiveActivityServiceImpl.taLiveActivityAdd 接收参数:" + JSONObject.toJSONString(taLiveActivity));
55
+
56
+        ResponseBean responseBean = new ResponseBean();
57
+
58
+        taLiveActivity.setVisitNum(0);
59
+        taLiveActivity.setCreateDate(LocalDateTime.now());
60
+        taLiveActivity.setUpdateDate(LocalDateTime.now());
61
+        Boolean result = save(taLiveActivity);
62
+        if (!result) {
63
+            responseBean.addError("fail");
64
+            return responseBean;
65
+        }
66
+
67
+        // 生成二维码
68
+        QueryWrapper<TaMiniapp> taMiniappQuery = new QueryWrapper<>();
69
+        taMiniappQuery.eq("org_id", taLiveActivity.getOrgId());
70
+        TaMiniapp taMiniapp = taMiniappService.getOne(taMiniappQuery);
71
+        /**
72
+         *  TODO 部分信息待修改
73
+         */
74
+        ResponseBean taMiniappQrcode = miniAppService.getQrCode
75
+                (CommConstant.ACTIVITY_QRCODE.replace("#0", taLiveActivity.getLiveActivityId().toString())
76
+                        .replace("#1", "live"), taMiniapp.getMiniappId());
77
+        taLiveActivity.setQrCode(String.valueOf(taMiniappQrcode.getData()));
78
+        updateById(taLiveActivity);
79
+
80
+        // 设置默认海报数据
81
+        TaShareContent shareContent = new TaShareContent();
82
+        shareContent.setOrgId(taLiveActivity.getOrgId());
83
+        shareContent.setTargetId(taLiveActivity.getLiveActivityId().toString());
84
+        shareContent.setShareContentTitle("直播看房,在线答疑,快上车~");
85
+        shareContent.setShareContentImg(taLiveActivity.getDetailImg());
86
+        shareContent.setShareContentType("live");
87
+        shareContent.setStatus(1);
88
+        shareContent.setCreateDate(LocalDateTime.now());
89
+        taShareContentService.save(shareContent);
90
+
91
+        responseBean.addSuccess(taLiveActivity);
92
+        return responseBean;
93
+    }
94
+
95
+    @Override
96
+    public ResponseBean listLiveActivityByCondition(Integer pageNum, Integer pageSize, Integer orgId, String liveActivityTitle,
97
+                                                    String cityId, String buildingId, String liveDetailType, Integer status) {
98
+        logger.info("TaLiveActivityServiceImpl.listLiveActivityByCondition 接收参数:pageNum:{},pageSize:{},orgId:{}," +
99
+                    "liveActivityTitle:{},cityId:{},buildingId:{},liveDetailType:{},status:{}", pageNum, pageSize,
100
+                liveActivityTitle, cityId, buildingId, liveDetailType, status);
101
+
102
+        ResponseBean responseBean = new ResponseBean();
103
+        IPage<TaLiveActivity> pg = new Page<>(pageNum, pageSize);
104
+        QueryWrapper<TaLiveActivity> queryWrapper = new QueryWrapper<>();
105
+        queryWrapper.like("live_activity_title", liveActivityTitle);
106
+        queryWrapper.eq("city_id", cityId);
107
+        queryWrapper.eq("building_id", buildingId);
108
+        queryWrapper.eq("live_detail_type", liveDetailType);
109
+        queryWrapper.eq("status", status);
110
+        queryWrapper.orderByDesc("create_date");
111
+        IPage<TaLiveActivity> result = page(pg, queryWrapper);
112
+        responseBean.addSuccess(result);
113
+        return responseBean;
114
+    }
115
+
116
+    @Override
117
+    public ResponseBean addVisitNum(String id) {
118
+        ResponseBean responseBean = new ResponseBean();
119
+        Boolean result = taLiveActivityMapper.addVisitNum(id);
120
+        if(result){
121
+            responseBean.addSuccess("成功");
122
+            return responseBean;
123
+        }
124
+        responseBean.addError("fail");
125
+        return responseBean;
126
+    }
20 127
 }

+ 114
- 34
src/main/java/com/huiju/estateagents/service/impl/TaPreselectionRecordServiceImpl.java Просмотреть файл

@@ -8,11 +8,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
8 8
 import com.huiju.estateagents.base.ResponseBean;
9 9
 import com.huiju.estateagents.common.CommConstant;
10 10
 import com.huiju.estateagents.common.DateUtils;
11
-import com.huiju.estateagents.common.StringUtils;
12 11
 import com.huiju.estateagents.entity.TaApartmentImg;
13 12
 import com.huiju.estateagents.entity.TaBuildingImg;
13
+import com.huiju.estateagents.entity.TaPerson;
14 14
 import com.huiju.estateagents.entity.TaPreselectionRecord;
15
-import com.huiju.estateagents.entity.TaSharePersonFrom;
16 15
 import com.huiju.estateagents.mapper.TaApartmentImgMapper;
17 16
 import com.huiju.estateagents.mapper.TaBuildingImgMapper;
18 17
 import com.huiju.estateagents.mapper.TaHousingResourcesMapper;
@@ -30,6 +29,8 @@ import org.springframework.transaction.annotation.Transactional;
30 29
 import java.time.LocalDateTime;
31 30
 import java.util.ArrayList;
32 31
 import java.util.List;
32
+import java.util.concurrent.ExecutorService;
33
+import java.util.concurrent.Executors;
33 34
 
34 35
 /**
35 36
  * <p>
@@ -56,6 +57,12 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
56 57
     @Autowired
57 58
     TaApartmentImgMapper taApartmentImgMapper;
58 59
 
60
+    @Autowired
61
+    private MiniAppServiceImpl miniAppService;
62
+
63
+    @Autowired
64
+    private TaPersonServiceImpl taPersonService;
65
+
59 66
     @Override
60 67
     public IPage<TaPreselectionRecordPO> listPreselectionRecord(Integer pageNum, Integer pageSize, Integer orgId, String personId) {
61 68
         logger.info("listPreselectionRecord 接收参数:pageNum:{},pageSize:{},orgId:{},personId:{}", pageNum, pageSize, orgId, personId);
@@ -64,28 +71,30 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
64 71
         iPage = taPreselectionRecordMapper.listPreselectionRecord(iPage, orgId, personId);
65 72
 
66 73
         List<TaPreselectionRecordPO> poList = iPage.getRecords();
67
-        if (CollectionUtils.isNotEmpty(poList)) {
68
-            List<TaPreselectionRecordPO> resultList = new ArrayList<>();
69
-            List<TaBuildingImg> taBuildingImgList;
70
-            List<TaApartmentImg> buildingImg;
71
-            QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper;
72
-            QueryWrapper<TaBuildingImg> buildingImgQueryWrapper;
73
-            for (TaPreselectionRecordPO po : poList) {
74
-                apartmentImgQueryWrapper = new QueryWrapper<>();
75
-                apartmentImgQueryWrapper.eq("apartment_id", po.getApartmentId());
76
-                buildingImg = taApartmentImgMapper.selectList(apartmentImgQueryWrapper);
77
-                for (TaApartmentImg apartmentImg : buildingImg) {
78
-                    buildingImgQueryWrapper = new QueryWrapper<>();
79
-                    buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
80
-                    buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
81
-                    buildingImgQueryWrapper.orderByAsc("order_no");
82
-                    taBuildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
83
-                    po.setBuildingImgList(taBuildingImgList);
84
-                }
85
-                resultList.add(po);
74
+        if (CollectionUtils.isEmpty(poList)) {
75
+            return iPage;
76
+        }
77
+
78
+        List<TaPreselectionRecordPO> resultList = new ArrayList<>();
79
+        List<TaBuildingImg> taBuildingImgList;
80
+        List<TaApartmentImg> buildingImg;
81
+        QueryWrapper<TaApartmentImg> apartmentImgQueryWrapper;
82
+        QueryWrapper<TaBuildingImg> buildingImgQueryWrapper;
83
+        for (TaPreselectionRecordPO po : poList) {
84
+            apartmentImgQueryWrapper = new QueryWrapper<>();
85
+            apartmentImgQueryWrapper.eq("apartment_id", po.getApartmentId());
86
+            buildingImg = taApartmentImgMapper.selectList(apartmentImgQueryWrapper);
87
+            for (TaApartmentImg apartmentImg : buildingImg) {
88
+                buildingImgQueryWrapper = new QueryWrapper<>();
89
+                buildingImgQueryWrapper.eq("img_id", apartmentImg.getImgId());
90
+                buildingImgQueryWrapper.eq("img_type", CommConstant.BUILDING_IMG_APARMENT);
91
+                buildingImgQueryWrapper.orderByAsc("order_no");
92
+                taBuildingImgList = taBuildingImgMapper.selectList(buildingImgQueryWrapper);
93
+                po.setBuildingImgList(taBuildingImgList);
86 94
             }
87
-            iPage.setRecords(resultList);
95
+            resultList.add(po);
88 96
         }
97
+        iPage.setRecords(resultList);
89 98
         return iPage;
90 99
     }
91 100
 
@@ -95,36 +104,50 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
95 104
         logger.info("listPreselectionRecord 接收参数:taPreselectionRecord:{}", JSONObject.toJSONString(taPreselectionRecord));
96 105
 
97 106
         ResponseBean responseBean = new ResponseBean();
107
+        String tip;
108
+        String checkType = "预选";
109
+
110
+        String houseId = taPreselectionRecord.getHouseId();
111
+        String personId = taPreselectionRecord.getPersonId();
98 112
 
99 113
         // 校验用户是否已经预选房源
100
-        TaPreselectionRecord record = taPreselectionRecordMapper
101
-                .getRecordByPersonIdAndHouseId(taPreselectionRecord.getPersonId(), taPreselectionRecord.getHouseId());
114
+        TaPreselectionRecord record = taPreselectionRecordMapper.getRecordByPersonIdAndHouseId(personId, houseId);
102 115
         if (record != null) {
103
-            responseBean.addError("已预选过此房源,请到选房记录中查看。");
116
+            tip = "已预选过此房源,请到选房记录中查看。";
117
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip);
118
+            responseBean.addError(tip);
104 119
             return responseBean;
105 120
         }
106 121
 
107 122
         TaHousingResourcesPO resourcesPO = taHousingResourcesMapper.getHousingDetailById(taPreselectionRecord.getHouseId(), "0");
108 123
         if (resourcesPO == null) {
109
-            responseBean.addError("fail");
124
+            tip = "未知原因失败,请联系置业顾问。";
125
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip);
126
+            responseBean.addError(tip);
110 127
             return responseBean;
111 128
         }
112 129
 
113 130
         // 校验当前批次状态是否为已发布
114 131
         if (resourcesPO.getSaleBatchStatus() != 1) {
115
-            responseBean.addError("当前销售批次已临时取消发布,请稍后再试或联系置业顾问了解详情。");
132
+            tip = "当前销售批次已临时取消发布,请稍后再试或联系置业顾问了解详情。";
133
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip);
134
+            responseBean.addError(tip);
116 135
             return responseBean;
117 136
         }
118 137
 
119 138
         // 校验当前房源状态是否为已发布
120 139
         if (1 != resourcesPO.getStatus()) {
121
-            responseBean.addError("当前房源已临时取消发布,请稍后再试或联系置业顾问了解详情。");
140
+            tip = "当前房源已临时取消发布,请稍后再试或联系置业顾问了解详情。";
141
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip);
142
+            responseBean.addError(tip);
122 143
             return responseBean;
123 144
         }
124 145
 
125 146
         // 校验预选操作时间是否在规定范围内
126 147
         if (!DateUtils.checkTimeRange(resourcesPO.getPreselectionStartTime(), resourcesPO.getPreselectionEndTime(), null)) {
127
-            responseBean.addError("当前时间不在预选时间范围内,请联系置业顾问了解详情。");
148
+            tip = "当前时间不在预选时间范围内,请联系置业顾问了解详情。";
149
+            sendSubscribeMsg(houseId, personId, checkType, "失败", tip);
150
+            responseBean.addError(tip);
128 151
             return responseBean;
129 152
         }
130 153
 
@@ -137,10 +160,13 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
137 160
         // 更新房源表热度
138 161
         Boolean result = taHousingResourcesMapper.updateForAddHeat(taPreselectionRecord.getHouseId());
139 162
         if (result) {
163
+            sendSubscribeMsg(houseId, personId, checkType, "成功", "");
140 164
             responseBean.addSuccess(taPreselectionRecord);
141 165
             return responseBean;
142 166
         }
143
-        responseBean.addError("fail");
167
+        tip = "未知原因失败,请联系置业顾问。";
168
+        sendSubscribeMsg(houseId, personId, checkType, "失败", tip);
169
+        responseBean.addError(tip);
144 170
         return responseBean;
145 171
     }
146 172
 
@@ -150,22 +176,31 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
150 176
         logger.info("taPreselectionRecordCancel 接收参数:personId:{},houseId:{}", personId, houseId);
151 177
 
152 178
         ResponseBean responseBean = new ResponseBean<>();
179
+        String tip;
180
+        String checkType = "取消预选";
181
+
153 182
         // 校验是否已经取消
154 183
         TaPreselectionRecord preselectionRecord = taPreselectionRecordMapper.getRecordByPersonIdAndHouseId(personId, houseId);
155 184
         if (preselectionRecord == null) {
156
-            responseBean.addError("未预选过此房源,或已取消预选此房源");
185
+            tip = "未预选过此房源,或已取消预选此房源";
186
+            sendSubscribeMsg(houseId,personId,checkType,"失败",tip);
187
+            responseBean.addError(tip);
157 188
             return responseBean;
158 189
         }
159 190
 
160 191
         TaHousingResourcesPO resourcesPO = taHousingResourcesMapper.getHousingDetailById(houseId, "0");
161 192
         if (resourcesPO == null || 1 != resourcesPO.getStatus()) {
162
-            responseBean.addError("当前房源已临时取消发布,请稍后再试或联系置业顾问了解详情。");
193
+            tip = "当前房源已临时取消发布,请稍后再试或联系置业顾问了解详情。";
194
+            sendSubscribeMsg(houseId,personId,checkType,"失败",tip);
195
+            responseBean.addError(tip);
163 196
             return responseBean;
164 197
         }
165 198
 
166 199
         // 校验当前批次状态是否为已发布
167 200
         if (resourcesPO.getSaleBatchStatus() != 1) {
168
-            responseBean.addError("当前销售批次已临时取消发布,请稍后再试或联系置业顾问了解详情。");
201
+            tip = "当前销售批次已临时取消发布,请稍后再试或联系置业顾问了解详情。";
202
+            sendSubscribeMsg(houseId,personId,checkType,"失败",tip);
203
+            responseBean.addError(tip);
169 204
             return responseBean;
170 205
         }
171 206
 
@@ -177,7 +212,14 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
177 212
         updateById(record);
178 213
 
179 214
         // 更新房源表热度
180
-        responseBean.addSuccess(taHousingResourcesMapper.updateForSubtractHeat(houseId));
215
+        Boolean result = taHousingResourcesMapper.updateForSubtractHeat(houseId);
216
+        if (result) {
217
+            responseBean.addSuccess(result);
218
+            return responseBean;
219
+        }
220
+        tip = "未知原因失败,请联系置业顾问。";
221
+        sendSubscribeMsg(houseId,personId,checkType,"失败",tip);
222
+        responseBean.addError(tip);
181 223
         return responseBean;
182 224
     }
183 225
 
@@ -189,4 +231,42 @@ public class TaPreselectionRecordServiceImpl extends ServiceImpl<TaPreselectionR
189 231
         page.setRecords(list);
190 232
         return ResponseBean.success(page);
191 233
     }
234
+
235
+    /**
236
+     * 发送订阅消息
237
+     *
238
+     * @param houseId    房源ID
239
+     * @param personId   用户ID
240
+     * @param checkType  审核类型
241
+     * @param result     审核结果
242
+     * @param failReason 失败原因
243
+     */
244
+    public void sendSubscribeMsg(String houseId, String personId, String checkType, String result, String failReason) {
245
+        logger.info("sendSubscribeMsg 接收参数:houseId:{},checkType:{},result:{},failReason:{}",
246
+                houseId, checkType, result, failReason);
247
+
248
+        ExecutorService threadPool = Executors.newCachedThreadPool();
249
+        threadPool.execute(() -> {
250
+            logger.info("sendSubscribeMsg 开始");
251
+
252
+            // 获取房源详情
253
+            TaHousingResourcesPO po = taHousingResourcesMapper.getHousingDetailById(houseId, "1");
254
+            if (po == null) {
255
+                logger.info("sendSubscribeMsg 未找到房源信息。");
256
+                return;
257
+            }
258
+
259
+            // 获取用户信息
260
+            TaPerson toUser = taPersonService.getById(personId);
261
+            if (toUser == null) {
262
+                return;
263
+            }
264
+
265
+            String link = "";
266
+            String remark = "";
267
+            String progranName = po.getBuildingName() + po.getTermName() + po.getBlockName() + po.getUnitName() + po.getFloorName() + po.getRoomName();
268
+            miniAppService.sendCheckMessage(toUser, link, checkType, result, progranName, failReason, remark, LocalDateTime.now());
269
+            logger.info("sendSubscribeMsg 结束");
270
+        });
271
+    }
192 272
 }

+ 10
- 0
src/main/java/com/huiju/estateagents/service/impl/TaSalesBatchServiceImpl.java Просмотреть файл

@@ -12,6 +12,7 @@ import com.huiju.estateagents.mapper.TaHousingResourcesMapper;
12 12
 import com.huiju.estateagents.mapper.TaPosterMapper;
13 13
 import com.huiju.estateagents.mapper.TaSalesBatchMapper;
14 14
 import com.huiju.estateagents.service.ITaBuildingRoomService;
15
+import com.huiju.estateagents.service.ITaBuildingService;
15 16
 import com.huiju.estateagents.service.ITaHousingResourcesService;
16 17
 import com.huiju.estateagents.service.ITaSalesBatchService;
17 18
 import org.apache.commons.collections.CollectionUtils;
@@ -63,6 +64,9 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
63 64
     @Autowired
64 65
     private ITaBuildingRoomService taBuildingRoomService;
65 66
 
67
+    @Autowired
68
+    private ITaBuildingService taBuildingService;
69
+
66 70
     @Override
67 71
     public IPage<TaSalesBatch> selectByCondition(IPage<TaSalesBatch> page, String salesBatchName, String buildingId, Integer status, Integer orgId) {
68 72
         return taSalesBatchMapper.selectByCondition(page, salesBatchName, buildingId, status, orgId);
@@ -158,6 +162,12 @@ public class TaSalesBatchServiceImpl extends ServiceImpl<TaSalesBatchMapper, TaS
158 162
             return responseBean;
159 163
         }
160 164
 
165
+        // 获取楼盘名称
166
+        TaBuilding taBuilding = taBuildingService.getById(result.getBuildingId());
167
+        if(taBuilding != null){
168
+            taBuilding.setBuildingName(taBuilding.getName());
169
+        }
170
+
161 171
         // 获取海报信息
162 172
         QueryWrapper<TaPoster> queryWrapper = new QueryWrapper<>();
163 173
         queryWrapper.eq("target_id", salesBatchId + "");

+ 8
- 0
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java Просмотреть файл

@@ -198,6 +198,14 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
198 198
         return ResponseBean.success(page);
199 199
     }
200 200
 
201
+    @Override
202
+    public ResponseBean listLiveShare(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer liveActivityId) {
203
+        Page page = new Page(pageNum,pageSize);
204
+        List<TaShare> list = taShareMapper.listLiveShare(page, orgId, personType, shareType, phone, liveActivityId);
205
+        page.setRecords(list);
206
+        return ResponseBean.success(page);
207
+    }
208
+
201 209
     List<TaPerson> getPersonsByOpenId(String openid) {
202 210
         return taPersonMapper.getPersonByOpenId(openid);
203 211
     }

+ 9
- 0
src/main/resources/mapper/Activity.xml Просмотреть файл

@@ -23,6 +23,15 @@
23 23
         <if test="cityId != null and cityId != ''">
24 24
             and city_id = #{cityId}
25 25
         </if>
26
+        UNION ALL
27
+        SELECT
28
+        live_activity_id AS id,list_img AS main_img,live_activity_title,live_start_date,live_end_date,0 heavy,0 weight,status activity_status, 	 	'live' AS type
29
+        FROM
30
+        ta_live_activity
31
+        WHERE org_id = #{orgId} and `status` = #{status}
32
+        <if test="cityId != null and cityId != ''">
33
+            and city_id = #{cityId}
34
+        </if>
26 35
         ORDER BY heavy desc,activity_status,start_date
27 36
     </select>
28 37
     <select id="getCustomerActivityList" resultType="java.util.Map">

+ 12
- 0
src/main/resources/mapper/TaLiveActivityMapper.xml Просмотреть файл

@@ -0,0 +1,12 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+<mapper namespace="com.huiju.estateagents.mapper.TaLiveActivityMapper">
4
+
5
+    <update id="addVisitNum" parameterType="java.lang.String">
6
+        UPDATE ta_live_activity t
7
+        SET t.visit_num = IFNULL( t.visit_num, 0 ) + 1
8
+        WHERE
9
+            t.live_activity_id = #{id}
10
+    </update>
11
+
12
+</mapper>

+ 31
- 1
src/main/resources/mapper/TaShareMapper.xml Просмотреть файл

@@ -8,7 +8,7 @@
8 8
       left join ta_sales_batch b on t.be_share = b.sales_batch_id
9 9
       where a.org_id = #{orgId}
10 10
       and t.tagert_type in ('housePost','houseApp')
11
-      and b.sales_batch_id = #{saleBatchId}
11
+      and b.sales_batch_id = #{liveActivityId}
12 12
       <if test="personType != null and personType != ''">
13 13
           and a.person_Type = #{personType}
14 14
       </if>
@@ -20,4 +20,34 @@
20 20
       </if>
21 21
         order by t.create_date desc
22 22
     </select>
23
+
24
+    <select id="listLiveShare" resultType="com.huiju.estateagents.entity.TaShare">
25
+        SELECT
26
+            a.avatarurl AS photoOravatar,
27
+            a.nickname AS nameOrnick,
28
+            a.NAME,
29
+            a.phone,
30
+            a.person_type,
31
+            t.tagert_type,
32
+            t.create_date
33
+        FROM
34
+          ta_share_count t
35
+          LEFT JOIN ta_person a ON t.person_id = a.person_id
36
+          LEFT JOIN ta_live_activity b ON t.be_share = b.live_activity_id
37
+        WHERE
38
+          a.org_id = #{orgId}
39
+        AND t.tagert_type IN ( 'livePost', 'liveApp' )
40
+        AND b.live_activity_id = #{liveActivityId}
41
+        <if test = "personType != null and personType != ''" >
42
+            AND a.person_Type = #{personType}
43
+        </if>
44
+        <if test = "shareType != null and shareType != ''" >
45
+            AND t.tagert_type = #{shareType}
46
+        </if>
47
+        <if test = "phone != null and phone != ''" >
48
+            AND a.phone = #{phone}
49
+        </if>
50
+        ORDER BY
51
+        t.create_date DESC
52
+    </select>
23 53
 </mapper>