|
@@ -3,6 +3,7 @@ package com.huiju.estateagents.controller;
|
3
|
3
|
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
|
4
|
4
|
import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo;
|
5
|
5
|
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
|
|
6
|
+import com.alibaba.fastjson.JSON;
|
6
|
7
|
import com.alibaba.fastjson.JSONObject;
|
7
|
8
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
8
|
9
|
import com.huiju.estateagents.base.BaseController;
|
|
@@ -24,6 +25,7 @@ import com.huiju.estateagents.third.service.ITaThirdPartyMiniappConfigService;
|
24
|
25
|
import me.chanjar.weixin.common.error.WxErrorException;
|
25
|
26
|
import org.apache.commons.collections.CollectionUtils;
|
26
|
27
|
import org.apache.http.HttpStatus;
|
|
28
|
+import org.checkerframework.checker.units.qual.A;
|
27
|
29
|
import org.slf4j.Logger;
|
28
|
30
|
import org.slf4j.LoggerFactory;
|
29
|
31
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -148,36 +150,29 @@ public class MiniAppController extends BaseController {
|
148
|
150
|
String query,
|
149
|
151
|
Integer scene
|
150
|
152
|
) {
|
|
153
|
+ Map<String, Object> resp = new HashMap<>();
|
|
154
|
+
|
151
|
155
|
// 获取小程序信息
|
152
|
156
|
TaMiniapp taMiniapp = iTaMiniappService.getInfoWithTpls(appid);
|
|
157
|
+ resp.put("miniapp", taMiniapp);
|
153
|
158
|
if (null == taMiniapp) {
|
154
|
159
|
return ResponseBean.error("当前 appid 未在系统内注册", ResponseBean.ERROR_ILLEGAL_PARAMS);
|
155
|
160
|
}
|
156
|
161
|
|
157
|
162
|
// 获取组织信息
|
158
|
163
|
TaOrg taOrg = taOrgService.getById(taMiniapp.getOrgId());
|
|
164
|
+ resp.put("org", taOrg);
|
159
|
165
|
if (null == taOrg) {
|
160
|
166
|
return ResponseBean.error("当前 appid 未设置对应组织", ResponseBean.ERROR_UNAVAILABLE);
|
161
|
167
|
}
|
162
|
168
|
|
163
|
|
- // 获取城市列表
|
164
|
|
- QueryWrapper<TaOrgCity> queryCity = new QueryWrapper<>();
|
165
|
|
- queryCity.eq("id", taOrg.getOrgId());
|
166
|
|
- queryCity.eq("status", CommConstant.STATUS_NORMAL);
|
167
|
|
- List<TaOrgCity> taOrgCityList = taOrgCityMapper.selectList(queryCity);
|
168
|
|
-
|
169
|
|
- // 获取默认扩展设置
|
170
|
|
- QueryWrapper<TaCustomImg> queryExt = new QueryWrapper<>();
|
171
|
|
- queryExt.eq("org_id", taOrg.getOrgId());
|
172
|
|
- queryExt.eq("status", CommConstant.STATUS_NORMAL);
|
173
|
|
- List<TaCustomImg> taCustomImg = iTaCustomImgService.list(queryExt);
|
174
|
|
-
|
175
|
|
- return ResponseBean.success(new HashMap<String, Object>() {{
|
176
|
|
- put("miniapp", taMiniapp);
|
177
|
|
- put("org", taOrg);
|
178
|
|
- put("cityList", taOrgCityList);
|
179
|
|
- put("customImg", taCustomImg);
|
180
|
|
- }});
|
|
169
|
+ //把積分規則返回給小程序
|
|
170
|
+ QueryWrapper<TdPointsRules> tdPointsRulesQueryWrapper = new QueryWrapper<>();
|
|
171
|
+ tdPointsRulesQueryWrapper.eq("org_id", taOrg.getOrgId());
|
|
172
|
+ List<TdPointsRules> rulesPointList = iTdPointsRulesService.list(tdPointsRulesQueryWrapper);
|
|
173
|
+ resp.put("pointRuleList", rulesPointList);
|
|
174
|
+
|
|
175
|
+ return ResponseBean.success(resp);
|
181
|
176
|
}
|
182
|
177
|
|
183
|
178
|
/**
|
|
@@ -189,8 +184,7 @@ public class MiniAppController extends BaseController {
|
189
|
184
|
@RequestParam(required = false) String from,
|
190
|
185
|
@RequestParam(required = false) String recommender,
|
191
|
186
|
@RequestParam(required = false) String targetId,
|
192
|
|
- @RequestParam(required = false) String lon,
|
193
|
|
- @RequestParam(required = false) String lat,
|
|
187
|
+ @RequestParam(required = false) Integer scene,
|
194
|
188
|
HttpServletRequest request) {
|
195
|
189
|
String appid = request.getHeader("appid");
|
196
|
190
|
|
|
@@ -211,168 +205,46 @@ public class MiniAppController extends BaseController {
|
211
|
205
|
TaMiniapp miniapp = taMiniappService.getById(appid);
|
212
|
206
|
WxMaJscode2SessionResult session = miniAppService.getSessionInfo(code, appid);
|
213
|
207
|
Integer orgId = miniapp.getOrgId();
|
214
|
|
- Map<String, Object> miniResp = new HashMap<>();
|
215
|
|
- miniResp.put("openid", session.getOpenid());
|
216
|
|
- miniResp.put("sessionKey", session.getSessionKey());
|
217
|
|
- miniResp.put("unionid", session.getUnionid());
|
218
|
|
- miniResp.put("name", miniapp.getName());
|
219
|
|
- miniResp.put("tpls", miniAppService.getTpls(appid));
|
220
|
|
- miniResp.put("fddServerHost", miniapp.getFddServerHost());
|
221
|
|
-
|
222
|
|
- // 2020年3月30日 与曹建芳讨论 去掉此规则
|
223
|
|
-// //如果是分享进来且没有进入过小程序,给分享人发放积分
|
224
|
|
-// QueryWrapper<TaPerson> personQueryWrapper = new QueryWrapper<>();
|
225
|
|
-// personQueryWrapper.eq("mini_openid", session.getOpenid());
|
226
|
|
-// personQueryWrapper.eq("org_id", orgId);
|
227
|
|
-// int count = taPersonService.count(personQueryWrapper);
|
228
|
|
-
|
229
|
|
- TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(), orgId);
|
|
208
|
+
|
|
209
|
+ // 如果是扫码进来的
|
|
210
|
+ Map<String, String> sceneParams = null;
|
|
211
|
+ if (null != scene) {
|
|
212
|
+ TaMiniappQrcode qrcode = miniAppService.getQrCodeBySerialNo(scene);
|
|
213
|
+ if (null != qrcode) {
|
|
214
|
+ String paramStr = qrcode.getQrParams();
|
|
215
|
+ JSONObject params = JSON.parseObject(paramStr);
|
|
216
|
+ sceneParams = StringUtils.parseQuery(params.getString("scene"));
|
|
217
|
+
|
|
218
|
+ from = sceneParams.get("from");
|
|
219
|
+ recommender = sceneParams.get("recommender");
|
|
220
|
+ targetId = sceneParams.get("id");
|
|
221
|
+ }
|
|
222
|
+ }
|
|
223
|
+
|
|
224
|
+ TaPerson taPerson = taPersonService.newPersonByOpenid(session.getOpenid(), miniapp, from, recommender);
|
230
|
225
|
if (null == taPerson) {
|
231
|
226
|
return ResponseBean.error("发生未知错误", ResponseBean.ERROR_UNAVAILABLE);
|
232
|
227
|
}
|
|
228
|
+ taPerson.setPassword(null);
|
233
|
229
|
|
234
|
230
|
Map<Object, Object> map = new HashMap<>();
|
235
|
231
|
map.put("openId", session.getOpenid());
|
236
|
232
|
map.put("orgId", orgId);
|
237
|
233
|
map.put("personId", taPerson.getPersonId());
|
238
|
|
- miniResp.put("token", JWTUtils.newTokenByMap(map));
|
239
|
|
- if (StringUtils.isEmpty(taPerson.getFromCode())) {
|
240
|
|
- taPerson.setFromCode(from);
|
241
|
|
- }
|
242
|
|
- if (StringUtils.isEmpty(taPerson.getRecommendPerson())) {
|
243
|
|
- taPerson.setRecommendPerson(recommender);
|
244
|
|
- TaPerson type = taPersonService.getById(recommender);
|
245
|
|
- if (null != type) {
|
246
|
|
- if (!StringUtils.isEmpty(type.getPersonType())) {
|
247
|
|
- taPerson.setRecommendPersonType(type.getPersonType());
|
248
|
|
- }
|
249
|
|
- }
|
250
|
|
- }
|
251
|
|
- taPerson.setMiniappId(appid);
|
252
|
|
- taPersonService.updateById(taPerson);
|
253
|
|
-
|
254
|
|
- // 增加积分线程 --- 3.5.23版本授权手机分享者增加积分,单纯分享不增加积分
|
255
|
|
-// ExecutorService threadPool = Executors.newCachedThreadPool();
|
256
|
|
-// threadPool.execute(() -> {
|
257
|
|
-//// if (null != from && from.contains("share") && !StringUtils.isEmpty(recommender) && count > 0) {
|
258
|
|
-// if (null != from && from.contains("share") && !StringUtils.isEmpty(recommender)) {
|
259
|
|
-// // 校验是否点击过此人的分享
|
260
|
|
-// boolean checkPoint = checkSharePersonFrom(from, taPerson.getPersonId(), targetId, orgId);
|
261
|
|
-// if (checkPoint) {
|
262
|
|
-// // 添加积分
|
263
|
|
-// applicationContext.publishEvent(new EventBus(recommender, EventBus.EventType.SharePosterAll, orgId));
|
264
|
|
-// }
|
265
|
|
-// }
|
266
|
|
-// });
|
|
234
|
+
|
|
235
|
+ String token = JWTUtils.newTokenByMap(map);
|
|
236
|
+ sysTokenService.saveToken(token);
|
267
|
237
|
|
268
|
238
|
if (!StringUtils.isEmpty(from) && !StringUtils.isEmpty(recommender) && !StringUtils.isEmpty(targetId)) {
|
269
|
|
- TaSharePersonFrom taSharePersonFrom = new TaSharePersonFrom();
|
270
|
|
- TaPerson recommenderPerson = taPersonService.getById(recommender);
|
271
|
|
- taSharePersonFrom.setCreateDate(LocalDateTime.now());
|
272
|
|
- taSharePersonFrom.setOrgId(orgId);
|
273
|
|
- taSharePersonFrom.setPersonId(taPerson.getPersonId());
|
274
|
|
- taSharePersonFrom.setSharePersonType(recommenderPerson.getPersonType());
|
275
|
|
- taSharePersonFrom.setTargetId(targetId);
|
276
|
|
- taSharePersonFrom.setTargetType(from);
|
277
|
|
- if (CommConstant.PERSON_REALTY_CONSULTANT.equals(recommenderPerson.getPersonType())) {
|
278
|
|
- taSharePersonFrom.setSharePerson(recommenderPerson.getUserId().toString());
|
279
|
|
- } else {
|
280
|
|
- taSharePersonFrom.setSharePerson(recommenderPerson.getPersonId());
|
281
|
|
- }
|
282
|
|
- QueryWrapper<TaSharePersonFrom> sharePersonFromQueryWrapper = new QueryWrapper<>();
|
283
|
|
- sharePersonFromQueryWrapper.eq("person_id", taPerson.getPersonId());
|
284
|
|
- if (from.equals("dynamic_share")) { // activity_share
|
285
|
|
- //产品不认了
|
286
|
|
- taSharePersonFrom.setStatus(CommConstant.STATUS_NORMAL);
|
287
|
|
- TaBuildingDynamic buildingDynamic = buildingDynamicService.getById(targetId);
|
288
|
|
- taSharePersonFrom.setBuildingId(buildingDynamic.getBuildingId());
|
289
|
|
- sharePersonFromQueryWrapper.eq("building_id", buildingDynamic.getBuildingId());
|
290
|
|
- } else {
|
291
|
|
- taSharePersonFrom.setStatus(CommConstant.STATUS_NORMAL);
|
292
|
|
- }
|
293
|
|
- if (from.contains("card")) {
|
294
|
|
- // 因为targetId 是 personId ,需要查询出 userId
|
295
|
|
- TaPerson person = taPersonService.getById(targetId);
|
296
|
|
-
|
297
|
|
- QueryWrapper<TaPersonBuilding> personBuildingQueryWrapper = new QueryWrapper<>();
|
298
|
|
- personBuildingQueryWrapper.eq("user_id", person.getUserId());
|
299
|
|
- TaPersonBuilding personBuilding = personBuildingService.getOne(personBuildingQueryWrapper);
|
300
|
|
- taSharePersonFrom.setBuildingId(personBuilding.getBuildingId());
|
301
|
|
- sharePersonFromQueryWrapper.eq("building_id", personBuilding.getBuildingId());
|
302
|
|
- } else if (from.contains("news")) {
|
303
|
|
- TaNews news = newsService.getById(targetId);
|
304
|
|
- taSharePersonFrom.setBuildingId(news.getBuildingId());
|
305
|
|
- sharePersonFromQueryWrapper.eq("building_id", news.getBuildingId());
|
306
|
|
- } else if (from.contains("building")) {
|
307
|
|
- taSharePersonFrom.setBuildingId(targetId);
|
308
|
|
- sharePersonFromQueryWrapper.eq("building_id", targetId);
|
309
|
|
- }else if (from.contains("help")) {
|
310
|
|
- HelpActivity helpActivity = helpActivityService.getById(targetId);
|
311
|
|
- taSharePersonFrom.setBuildingId(helpActivity.getBuildingId());
|
312
|
|
- sharePersonFromQueryWrapper.eq("building_id", helpActivity.getBuildingId());
|
313
|
|
- }else if (from.contains("group")) {
|
314
|
|
- TaShareActivity taShareActivity = taShareActivityService.getById(targetId);
|
315
|
|
- taSharePersonFrom.setBuildingId(taShareActivity.getBuildingId());
|
316
|
|
- sharePersonFromQueryWrapper.eq("building_id", taShareActivity.getBuildingId());
|
317
|
|
- }else if (from.contains("live")) {
|
318
|
|
- TaLiveActivity liveActivity = taLiveActivityService.getById(targetId);
|
319
|
|
- taSharePersonFrom.setBuildingId(liveActivity.getBuildingId());
|
320
|
|
- sharePersonFromQueryWrapper.eq("building_id", liveActivity.getBuildingId());
|
321
|
|
- }else if (from.contains("h5")) {
|
322
|
|
- TaDrainage taDrainage = taDrainageService.getById(targetId);
|
323
|
|
- taSharePersonFrom.setBuildingId(taDrainage.getBuildingId());
|
324
|
|
- sharePersonFromQueryWrapper.eq("building_id", taDrainage.getBuildingId());
|
325
|
|
- }else if (from.contains("house")) {
|
326
|
|
- TaSalesBatch taSalesBatch = taSalesBatchMapper.selectById(targetId);
|
327
|
|
- taSharePersonFrom.setBuildingId(taSalesBatch.getBuildingId());
|
328
|
|
- sharePersonFromQueryWrapper.eq("building_id", taSalesBatch.getBuildingId());
|
329
|
|
- }
|
330
|
|
- Integer isFirstTime = taSharePersonFromService.count(sharePersonFromQueryWrapper);
|
331
|
|
- if (isFirstTime > 0) {
|
332
|
|
- taSharePersonFrom.setIsFirstTime(false);
|
333
|
|
- } else {
|
334
|
|
- taSharePersonFrom.setIsFirstTime(true);
|
335
|
|
- }
|
336
|
|
- taSharePersonFromService.save(taSharePersonFrom);
|
|
239
|
+ taSharePersonFromService.createBy(taPerson, from, recommender, targetId);
|
337
|
240
|
}
|
338
|
241
|
|
339
|
|
- taPerson.setPassword(null);
|
340
|
|
-
|
341
|
|
- // 获取其余信息
|
342
|
|
- Map<String, Object> extraInfo = taPersonService.getExtraInfo(taPerson.getPersonId());
|
343
|
|
- // 所有人员都返回 org yansen 2019-11-13 19:56:18
|
344
|
|
-// if (CommConstant.PERSON_REALTY_CONSULTANT.equals(taPerson.getPersonType())){
|
345
|
|
- QueryWrapper<TaOrg> orgQueryWrapper = new QueryWrapper<>();
|
346
|
|
- orgQueryWrapper.eq("org_id", orgId);
|
347
|
|
- TaOrg org = taOrgService.getOne(orgQueryWrapper);
|
348
|
|
- taPerson.setOrg(org);
|
349
|
|
-// }
|
350
|
242
|
Map<String, Object> result = new HashMap<>();
|
351
|
|
- result.put("miniApp", miniResp);
|
352
|
243
|
result.put("person", taPerson);
|
353
|
|
- result.put("extraInfo", extraInfo);
|
354
|
|
- result.put("miniAuthorized", null != taPerson.getAvatarurl() && taPerson.getAvatarurl().indexOf("wx.qlogo.cn") > 0);
|
355
|
|
-
|
356
|
|
- //返回是否授权标识
|
357
|
|
- QueryWrapper<TaCustomImg> queryWrapper = new QueryWrapper<>();
|
358
|
|
- queryWrapper.eq("org_id", orgId);
|
359
|
|
- queryWrapper.eq("img_type", "auth");
|
360
|
|
- List<TaCustomImg> taCustomImgs = iTaCustomImgService.list(queryWrapper);
|
361
|
|
- result.put("avatarAuth", CollectionUtils.isEmpty(taCustomImgs) ? false : "1".equals(taCustomImgs.get(0).getImgUrl()) ? true : false);
|
362
|
|
-
|
363
|
|
- String token = (String) miniResp.get("token");
|
364
|
|
- sysTokenService.saveToken(token);
|
365
|
|
-
|
366
|
|
- //把積分規則返回給小程序
|
367
|
|
- QueryWrapper<TdPointsRules> tdPointsRulesQueryWrapper = new QueryWrapper<>();
|
368
|
|
- tdPointsRulesQueryWrapper.eq("org_id", orgId);
|
369
|
|
- List<TdPointsRules> rulesPointList = iTdPointsRulesService.list(tdPointsRulesQueryWrapper);
|
370
|
|
- result.put("rulesPointList", rulesPointList);
|
371
|
|
-
|
372
|
|
- // 定位城市
|
373
|
|
- String location = null == lon ? null : lon + "," + lat;
|
374
|
|
- TdCity tdCity = iTdCityService.getLocationCity(location, orgId, taPerson.getPersonId());
|
375
|
|
- result.put("city", tdCity);
|
|
244
|
+ result.put("token", token);
|
|
245
|
+ if (null != sceneParams) {
|
|
246
|
+ result.put("scene", sceneParams);
|
|
247
|
+ }
|
376
|
248
|
|
377
|
249
|
return ResponseBean.success(result);
|
378
|
250
|
} catch (WxErrorException e) {
|
|
@@ -381,6 +253,38 @@ public class MiniAppController extends BaseController {
|
381
|
253
|
}
|
382
|
254
|
}
|
383
|
255
|
|
|
256
|
+// @PostMapping("/share-person")
|
|
257
|
+// public ResponseBean sharePerson(@RequestParam(required = false) String from,
|
|
258
|
+// @RequestParam(required = false) String recommender,
|
|
259
|
+// @RequestParam(required = false) String targetId,
|
|
260
|
+// @RequestParam(required = false) Integer scene,
|
|
261
|
+// HttpServletRequest request) {
|
|
262
|
+// String openid = getOpenId(request);
|
|
263
|
+// List<TaPerson> persons = taPersonService.getPersonsByOpenId(openid);
|
|
264
|
+// if (null == persons || persons.size() < 1) {
|
|
265
|
+// return ResponseBean.error("校验人员信息出错", ResponseBean.ERROR_UNAVAILABLE);
|
|
266
|
+// }
|
|
267
|
+//
|
|
268
|
+// // 如果是扫码进来的
|
|
269
|
+// Map<String, String> sceneParams = null;
|
|
270
|
+// if (null != scene) {
|
|
271
|
+// TaMiniappQrcode qrcode = miniAppService.getQrCodeBySerialNo(scene);
|
|
272
|
+// if (null != qrcode) {
|
|
273
|
+// String paramStr = qrcode.getQrParams();
|
|
274
|
+// JSONObject params = JSON.parseObject(paramStr);
|
|
275
|
+// sceneParams = StringUtils.parseQuery(params.getString("scene"));
|
|
276
|
+//
|
|
277
|
+// from = sceneParams.get("from");
|
|
278
|
+// recommender = sceneParams.get("recommender");
|
|
279
|
+// targetId = sceneParams.get("id");
|
|
280
|
+// }
|
|
281
|
+// }
|
|
282
|
+//
|
|
283
|
+// taSharePersonFromService.createBy(persons.get(0), from, recommender, targetId);
|
|
284
|
+//
|
|
285
|
+// return ResponseBean.success("success");
|
|
286
|
+// }
|
|
287
|
+
|
384
|
288
|
private ResponseBean checkMiniappStatus(String appid) {
|
385
|
289
|
TaUser taUser = userService.getAdminByAppID(appid);
|
386
|
290
|
|