张延森 5 yıl önce
ebeveyn
işleme
8026ec81e5

+ 3
- 0
src/main/java/com/huiju/estateagents/mapper/TaShareMapper.java Dosyayı Görüntüle

@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Mapper;
7 7
 import org.apache.ibatis.annotations.Param;
8 8
 
9 9
 import java.util.List;
10
+import java.util.Map;
10 11
 
11 12
 /**
12 13
  * <p>
@@ -21,4 +22,6 @@ public interface TaShareMapper extends BaseMapper<TaShare> {
21 22
     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
 
23 24
     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);
25
+
26
+    Map<String, Object> statTopShare(@Param("targetType") String targetType, @Param("targetId") String targetId, @Param("orgId") Integer orgId);
24 27
 }

+ 11
- 0
src/main/java/com/huiju/estateagents/service/ITaShareService.java Dosyayı Görüntüle

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
4 4
 import com.huiju.estateagents.base.ResponseBean;
5 5
 import com.huiju.estateagents.entity.TaShare;
6 6
 
7
+import java.util.Map;
8
+
7 9
 /**
8 10
  * <p>
9 11
  * 用户访问表 服务类
@@ -23,4 +25,13 @@ public interface ITaShareService extends IService<TaShare> {
23 25
     ResponseBean selectHouseShareList(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer saleBatchId);
24 26
 
25 27
     ResponseBean listLiveShare(Integer pageNum, Integer pageSize, Integer orgId, String personType, String shareType, String phone, Integer liveActivityId);
28
+
29
+    /**
30
+     * 统计分享 Top
31
+     * @param targetType
32
+     * @param targetId
33
+     * @param top
34
+     * @return
35
+     */
36
+    Map<String, Object> statTopShare(String targetType, String targetId, Integer top);
26 37
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/service/impl/TaShareServiceImpl.java Dosyayı Görüntüle

@@ -19,6 +19,7 @@ import org.springframework.stereotype.Service;
19 19
 import javax.annotation.Resource;
20 20
 import java.time.LocalDateTime;
21 21
 import java.util.List;
22
+import java.util.Map;
22 23
 
23 24
 /**
24 25
  * <p>
@@ -214,6 +215,11 @@ public class TaShareServiceImpl extends ServiceImpl<TaShareMapper, TaShare> impl
214 215
         return ResponseBean.success(page);
215 216
     }
216 217
 
218
+    @Override
219
+    public Map<String, Object> statTopShare(String targetType, String targetId, Integer top) {
220
+        return taShareMapper.statTopShare(targetType, targetId, top);
221
+    }
222
+
217 223
     List<TaPerson> getPersonsByOpenId(String openid) {
218 224
         return taPersonMapper.getPersonByOpenId(openid);
219 225
     }

+ 39
- 7
src/main/java/com/huiju/estateagents/third/controller/TaThirdPartyMiniappConfigController.java Dosyayı Görüntüle

@@ -5,11 +5,14 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6 6
 import com.huiju.estateagents.base.BaseController;
7 7
 import com.huiju.estateagents.base.ResponseBean;
8
+import com.huiju.estateagents.common.CommConstant;
9
+import com.huiju.estateagents.common.StringUtils;
8 10
 import com.huiju.estateagents.entity.TaPerson;
9 11
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
10 12
 import com.huiju.estateagents.service.IMiniAppService;
11 13
 import com.huiju.estateagents.service.ITaPersonService;
12 14
 import com.huiju.estateagents.service.ITaPersonVisitRecordService;
15
+import com.huiju.estateagents.service.ITaShareService;
13 16
 import com.huiju.estateagents.third.entity.TaThirdPartyMiniappConfig;
14 17
 import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
15 18
 import org.slf4j.Logger;
@@ -18,6 +21,7 @@ import org.springframework.beans.factory.annotation.Autowired;
18 21
 import org.springframework.web.bind.annotation.*;
19 22
 
20 23
 import javax.servlet.http.HttpServletRequest;
24
+import java.util.Map;
21 25
 
22 26
 /**
23 27
  * <p>
@@ -45,6 +49,9 @@ public class TaThirdPartyMiniappConfigController extends BaseController {
45 49
     @Autowired
46 50
     private ITaPersonService iTaPersonService;
47 51
 
52
+    @Autowired
53
+    private ITaShareService taShareService;
54
+
48 55
     /**
49 56
      * 分页查询列表
50 57
      * @param pageNum
@@ -162,8 +169,11 @@ public class TaThirdPartyMiniappConfigController extends BaseController {
162 169
      */
163 170
     @PostMapping("/third/qrcode")
164 171
     public ResponseBean thirdQrcode(@RequestBody String paramsStr,
165
-                                    @RequestParam String buildingId,
166
-                                    @RequestParam String personId,
172
+                                    @RequestParam (required = false) String targetType,
173
+                                    @RequestParam (required = false) String targetId,
174
+                                    @RequestParam (required = false) String buildingId,
175
+                                    @RequestParam (required = false) String personId,
176
+                                    @RequestParam (required = false) String consultant,
167 177
                                     HttpServletRequest request) {
168 178
         //获取H5项目相关信息
169 179
         String xAppid = request.getHeader("x-appid");
@@ -181,21 +191,43 @@ public class TaThirdPartyMiniappConfigController extends BaseController {
181 191
         // 埋點流程, 不影響主流程
182 192
 
183 193
         try {
194
+            if (!StringUtils.isEmpty(personId)) {
195
+                return res;
196
+            }
197
+
184 198
             TaPerson taPerson = iTaPersonService.getById(personId);
185 199
 
186 200
             TaPersonVisitRecord taPersonVisitRecord = new TaPersonVisitRecord();
187
-            taPersonVisitRecord.setPropertyName("生成H5海报");
188
-            taPersonVisitRecord.setActivity("生成H5海报");
201
+            taPersonVisitRecord.setPropertyName("H5海报");
202
+            taPersonVisitRecord.setActivity("H5海报");
189 203
             taPersonVisitRecord.setOrgId(taPerson.getOrgId().toString());
190
-            taPersonVisitRecord.setPersonId(taPerson.getPersonId());
191
-            taPersonVisitRecord.setTargetId(buildingId);
204
+            taPersonVisitRecord.setPersonId(personId);
205
+            taPersonVisitRecord.setTargetId(targetId);
206
+            taPersonVisitRecord.setTargetType(targetType);
192 207
             taPersonVisitRecord.setData("{}");
193 208
             taPersonVisitRecord.setEvent("poster");
194
-            taPersonVisitRecord.setEventType("building");
209
+            taPersonVisitRecord.setEventType(CommConstant.EVENT_H5);
210
+            taPersonVisitRecord.setConsultantId(consultant);
211
+            taPersonVisitRecord.setSharePersonId(personId);
212
+            taPersonVisitRecord.setBuildingId(buildingId);
195 213
 
196 214
             taPersonVisitRecordService.newRecord(taPersonVisitRecord, taPerson);
215
+
216
+            taShareService.saveData(taPerson.getMiniOpenid(), CommConstant.EVENT_H5, targetId);
197 217
         } catch (Exception e) {}
198 218
 
199 219
         return res;
200 220
     }
221
+
222
+    @GetMapping("/third/stat-top-share")
223
+    public ResponseBean genQRcode(
224
+            @RequestParam (required = false) String h5Id,
225
+            @RequestParam (required = false) String personId,
226
+            @RequestParam (required = false, defaultValue = "10") Integer top
227
+    ) {
228
+        // 暂时没有任何校验
229
+
230
+        Map<String, Object> res = taShareService.statTopShare("h5_share", h5Id, top);
231
+        return ResponseBean.success(res);
232
+    }
201 233
 }

+ 26
- 0
src/main/resources/mapper/TaShareMapper.xml Dosyayı Görüntüle

@@ -50,4 +50,30 @@
50 50
         ORDER BY
51 51
         t.create_date DESC
52 52
     </select>
53
+
54
+    <select id="statTopShare" resultType="java.util.Map">
55
+        SELECT
56
+            *
57
+        FROM
58
+        (
59
+            SELECT
60
+                t.share_person as sharePerson,
61
+                s.nickname,
62
+                s.avatarurl,
63
+                IFNULL(s.tel,s.phone) as phone,
64
+                COUNT( 1 ) AS top
65
+            FROM
66
+                ta_share_person_from t
67
+                LEFT JOIN ta_person s on t.share_person = s.person_id
68
+            WHERE
69
+                t.target_type = #{targetType}
70
+                AND t.target_id = #{targetId}
71
+                AND t.is_first_time = 1
72
+        GROUP BY
73
+                t.share_person
74
+        ) AS t
75
+            ORDER BY
76
+            t.top DESC
77
+            LIMIT #{top}
78
+    </select>
53 79
 </mapper>