魏超 пре 5 година
родитељ
комит
3a4315eeac

+ 42
- 0
src/main/java/com/huiju/estateagents/controller/TaPersonVisitRecordController.java Прегледај датотеку

@@ -11,6 +11,7 @@ import com.huiju.estateagents.common.JWTUtils;
11 11
 import com.huiju.estateagents.common.StringUtils;
12 12
 import com.huiju.estateagents.entity.*;
13 13
 import com.huiju.estateagents.service.*;
14
+import org.apache.commons.collections.map.HashedMap;
14 15
 import org.slf4j.Logger;
15 16
 import org.slf4j.LoggerFactory;
16 17
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +21,7 @@ import javax.servlet.http.HttpServletRequest;
20 21
 import java.time.LocalDateTime;
21 22
 import java.time.ZoneOffset;
22 23
 import java.util.List;
24
+import java.util.Map;
23 25
 
24 26
 
25 27
 /**
@@ -291,4 +293,44 @@ public class TaPersonVisitRecordController extends BaseController {
291 293
             return ResponseBean.error(e.getMessage(),ResponseBean.ERROR_UNAVAILABLE);
292 294
         }
293 295
     }
296
+
297
+    /**
298
+     * 置业顾问分享项目、活动、资讯、助力、拼团信息
299
+     * @param pageNumber
300
+     * @param pageSize
301
+     * @param userId
302
+     * @param request
303
+     * @return
304
+     */
305
+    @RequestMapping(value = "/wx/shareRecords")
306
+    public ResponseBean wxShareRecordsByUserId(@RequestParam(value ="pageNumber",defaultValue = "1") Integer pageNumber,
307
+                                              @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize,
308
+                                              @RequestParam(value = "userId") Integer userId,
309
+                                              HttpServletRequest request){
310
+        ResponseBean responseBean = new ResponseBean();
311
+        if (userId == null){
312
+            return responseBean;
313
+        }
314
+        //使用分页插件
315
+        IPage<TaConsultantInfo> pg = new Page<>(pageNumber, pageSize);
316
+        IPage<TaConsultantInfo> result = iTaPersonVisitRecordService.getConsultantShareInfoList(pg, userId, 26);
317
+
318
+        List<TaConsultantInfo> taConsultantInfos = result.getRecords();
319
+        taConsultantInfos.forEach(e ->{
320
+            Integer activityNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, CommConstant.POSTER_CONTENT_TYPE_ACTIVITY);
321
+            e.setActivityShareNum(activityNum);
322
+            Integer helpActivityNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, CommConstant.POINTS_CHANGE_HELP);
323
+            e.setHelpActivityShareNum(helpActivityNum);
324
+            Integer groupActivityNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, CommConstant.POINTS_CHANGE_GROUP);
325
+            e.setGroupActivityShareNum(groupActivityNum);
326
+            Integer newsNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, CommConstant.CAROUSEL_NEWS);
327
+            e.setNewsNum(newsNum);
328
+            Integer buildingNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, CommConstant.POSTER_CONTENT_TYPE_BUILDING);
329
+            e.setBuildingNum(buildingNum);
330
+            Integer drainageNum = iTaPersonVisitRecordService.countShareNumByEventType(e.getTargetId(), getOrgId(request), userId, CommConstant.TARGET_TYPE_H5);
331
+            e.setDrainageShareNum(drainageNum);
332
+        });
333
+        result.setRecords(taConsultantInfos);
334
+        return ResponseBean.success(result);
335
+    }
294 336
 }

+ 50
- 0
src/main/java/com/huiju/estateagents/entity/TaConsultantInfo.java Прегледај датотеку

@@ -0,0 +1,50 @@
1
+package com.huiju.estateagents.entity;
2
+
3
+import lombok.Data;
4
+
5
+@Data
6
+public class TaConsultantInfo {
7
+    private Integer targetId;
8
+
9
+    private String shareType;
10
+
11
+    private String buildingUrl;
12
+
13
+    private String buildingName;
14
+
15
+    private Integer buildingNum;
16
+
17
+    private String address;
18
+
19
+    private String price;
20
+
21
+    private String activityImg;
22
+
23
+    private String activityName;
24
+
25
+    private Integer activityShareNum;
26
+
27
+    private String helpActivityName;
28
+
29
+    private String helpActivityImg;
30
+
31
+    private Integer helpActivityShareNum;
32
+
33
+    private String groupActivityImg;
34
+
35
+    private String groupActivityName;
36
+
37
+    private Integer groupActivityShareNum;
38
+
39
+    private String newImg;
40
+
41
+    private String newName;
42
+
43
+    private Integer newsNum;
44
+
45
+    private String drainageImg;
46
+
47
+    private String drainageName;
48
+
49
+    private Integer drainageShareNum;
50
+}

+ 5
- 0
src/main/java/com/huiju/estateagents/mapper/TaPersonVisitRecordMapper.java Прегледај датотеку

@@ -3,6 +3,7 @@ package com.huiju.estateagents.mapper;
3 3
 
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5
 import com.baomidou.mybatisplus.core.metadata.IPage;
6
+import com.huiju.estateagents.entity.TaConsultantInfo;
6 7
 import com.huiju.estateagents.entity.TaPersonBuilding;
7 8
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
8 9
 import org.apache.ibatis.annotations.Mapper;
@@ -74,4 +75,8 @@ public interface TaPersonVisitRecordMapper extends BaseMapper<TaPersonVisitRecor
74 75
     IPage<TaPersonVisitRecord> getWxVisitRecordList(IPage<TaPersonVisitRecord> pg, @Param("userId") Integer userId, @Param("orgId") Integer orgId, @Param("eventType") String eventType,@Param("personId") String personId);
75 76
 
76 77
     IPage<TaPersonVisitRecord> getWxVisitRecordActivityList(IPage<TaPersonVisitRecord> pg, @Param("userId") Integer userId,@Param("personId") String personId,@Param("orgId") Integer orgId,@Param("eventType") String eventType);
78
+
79
+    IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, @Param("userId") Integer userId, @Param("orgId") Integer orgId);
80
+
81
+    Integer countShareNumByEventType(@Param("targetId") Integer targetId, @Param("orgId")Integer orgId, @Param("userId")Integer userId, @Param("eventType")String eventType);
77 82
 }

+ 6
- 0
src/main/java/com/huiju/estateagents/service/ITaPersonVisitRecordService.java Прегледај датотеку

@@ -3,9 +3,11 @@ package com.huiju.estateagents.service;
3 3
 
4 4
 import com.baomidou.mybatisplus.core.metadata.IPage;
5 5
 import com.baomidou.mybatisplus.extension.service.IService;
6
+import com.huiju.estateagents.entity.TaConsultantInfo;
6 7
 import com.huiju.estateagents.entity.TaPerson;
7 8
 import com.huiju.estateagents.entity.TaPersonBuilding;
8 9
 import com.huiju.estateagents.entity.TaPersonVisitRecord;
10
+import io.swagger.models.auth.In;
9 11
 
10 12
 import java.util.List;
11 13
 
@@ -48,4 +50,8 @@ public interface ITaPersonVisitRecordService extends IService<TaPersonVisitRecor
48 50
 //    TaPerson customerInfo(String personId);
49 51
 
50 52
 	IPage<TaPersonVisitRecord> getDrainageVisitRecord(IPage<TaPersonVisitRecord> pg, Integer orgId, String activityName, Integer drainageId, String shareName, String shareTel, List<TaPersonBuilding> taPersonBuildingList);
53
+
54
+	IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, Integer userId, Integer orgId);
55
+
56
+	Integer countShareNumByEventType(Integer targetId, Integer orgId, Integer userId, String eventType);
51 57
 }

+ 12
- 0
src/main/java/com/huiju/estateagents/service/impl/TaPersonVisitRecordServiceImpl.java Прегледај датотеку

@@ -138,6 +138,18 @@ public class TaPersonVisitRecordServiceImpl extends ServiceImpl<TaPersonVisitRec
138 138
 		taPersonVisitRecordIPage.setRecords(taPersonVisitRecords);
139 139
 		return taPersonVisitRecordIPage;
140 140
 	}
141
+
142
+	@Override
143
+	public IPage<TaConsultantInfo> getConsultantShareInfoList(IPage<TaConsultantInfo> pg, Integer userId, Integer orgId) {
144
+		IPage<TaConsultantInfo> result = personVisitRecordMapper.getConsultantShareInfoList(pg,userId,orgId);
145
+		return result;
146
+	}
147
+
148
+	@Override
149
+	public Integer countShareNumByEventType(Integer targetId, Integer orgId, Integer userId, String eventType) {
150
+		return personVisitRecordMapper.countShareNumByEventType(targetId, orgId, userId, eventType);
151
+	}
152
+
141 153
 	/**
142 154
 	 * 分页获取个人中心访客记录
143 155
 	 *

+ 41
- 0
src/main/resources/mapper/TaPersonVisitRecordMapper.xml Прегледај датотеку

@@ -160,4 +160,45 @@
160 160
         order by t.visit_time desc
161 161
     </select>
162 162
 
163
+    <select id="getConsultantShareInfoList" resultType="com.huiju.estateagents.entity.TaConsultantInfo">
164
+        select
165
+            t.event_type as share_type,
166
+            a.url as building_img,
167
+            a.building_name,
168
+            a.address,
169
+            a.price,
170
+            b.list_img_url as activity_img,
171
+            b.title as activity_name,
172
+            c.list_img as help_activity_img,
173
+            c.title as help_activity_name,
174
+            d.list_img as group_activity_img,
175
+            d.activity_name as group_activity_name,
176
+            e.news_img,
177
+            e.news_name,
178
+            f.share_img as drainage_img,
179
+            f.`name` as drainage_name
180
+        From ta_person_visit_record t
181
+        left join (select b.url, a.building_name,a.address,a.price,a.building_id from ta_building a left join ta_building_img b on a.building_id = b.building_id where b.img_type = 'list') a on t.target_id = a.building_id
182
+        left join ta_building_dynamic b on t.target_id = b.dynamic_id
183
+        left join ta_help_activity c on t.target_id = c.help_activity_id
184
+        left join ta_share_activity d on t.target_id = d.group_activity_id
185
+        left join ta_news e on t.target_id = e.news_id
186
+        left join ta_drainage f on t.target_id = f.drainage_id
187
+        where
188
+        t.consultant_id = #{userId}
189
+        and t.org_id = #{orgId}
190
+        and t.`event` = 'share'
191
+        order by t.visit_time desc
192
+    </select>
193
+    <select id="countShareNumByEventType" resultType="java.lang.Integer">
194
+        select count(1) from ta_person_visit_record t
195
+        where
196
+        t.consultant_id = #{userId}
197
+        and t.org_id = #{orgId}
198
+        and t.event_type = #{eventType}
199
+        and t.target_id = #{targetId}
200
+        and t.person_id != t.share_person_id
201
+        group by t.event_type, person_id
202
+    </select>
203
+
163 204
 </mapper>