From 5879fd8d7e0cc7cfb94a036545dd515381fc3e70 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期三, 01 一月 2020 10:21:31 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java | 201 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 191 insertions(+), 10 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java index a252aca..950e6a5 100644 --- a/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java +++ b/fanli/src/main/java/com/yeshi/fanli/controller/wxmp/v1/UserController.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.controller.wxmp.v1; import java.io.PrintWriter; +import java.math.BigDecimal; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -8,24 +9,39 @@ import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; import org.yeshi.utils.JsonUtil; import org.yeshi.utils.entity.wx.WXMPSessionInfo; import org.yeshi.utils.wx.WXXCXUtil; +import com.google.gson.GsonBuilder; import com.yeshi.fanli.dto.WXMPAcceptData; import com.yeshi.fanli.entity.accept.AcceptData; +import com.yeshi.fanli.entity.bus.user.ThreeSale; +import com.yeshi.fanli.entity.bus.user.UserActiveLog; +import com.yeshi.fanli.entity.bus.user.UserInfo; import com.yeshi.fanli.entity.bus.user.UserInfoExtra; import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum; +import com.yeshi.fanli.entity.system.BusinessSystem; import com.yeshi.fanli.exception.user.UserInfoException; import com.yeshi.fanli.exception.user.UserInfoExtraException; +import com.yeshi.fanli.service.inter.config.BusinessSystemService; +import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.user.MaskKeyService; +import com.yeshi.fanli.service.inter.user.UserActiveLogService; +import com.yeshi.fanli.service.inter.user.UserCustomSettingsService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService; import com.yeshi.fanli.service.inter.user.UserInfoService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.service.inter.user.vip.UserVIPInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.ThreadUtil; +import com.yeshi.fanli.util.VersionUtil; +import com.yeshi.fanli.util.annotation.UserActive; +import com.yeshi.fanli.vo.user.UserInfoExtraVO; import net.sf.json.JSONObject; @@ -37,18 +53,33 @@ @Resource private UserInfoExtraService userInfoExtraService; - + @Resource private MaskKeyService maskKeyService; - + @Resource private UserInfoService userInfoService; - + @Resource private UserInfoModifyRecordService userInfoModifyRecordService; - + @Resource private UserVIPInfoService userVIPInfoService; + + @Resource + private UserActiveLogService userActiveLogService; + + @Resource + private BusinessSystemService businessSystemService; + + @Resource + private UserCustomSettingsService userCustomSettingsService; + + @Resource + private ThreeSaleSerivce threeSaleSerivce; + + @Resource + private ConfigService configService; /** * 鑾峰彇openId @@ -74,8 +105,7 @@ out.print(JsonUtil.loadFalseResult("openId鑾峰彇澶辫触")); } } - - + @RequestMapping(value = "saveInfo") public void saveInfo(AcceptData acceptData, String nickName, String weiXin, Integer sex, Long uid, String inviteCode, MultipartFile qrCodeFile, HttpServletRequest request, PrintWriter out) { @@ -153,14 +183,12 @@ return; } } - + // 浜岀淮鐮� if (qrCodeFile != null) { userInfoExtraService.uploadERCode(qrCodeFile, uid); } - - - + out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛")); } catch (UserInfoException e) { out.print(JsonUtil.loadFalseResult(e.getMsg())); @@ -171,4 +199,157 @@ } } + private void outUserInfoHandle(UserInfo user) { + + // 绾㈠寘澶勭悊 + user.setTotalHongBao(new BigDecimal(0)); + user.setNoOpenHongBao(new BigDecimal(0)); + user.setCanOpenHongBao(new BigDecimal(0)); + + // 鐢佃瘽鍙风爜澶勭悊 + if (!StringUtil.isNullOrEmpty(user.getPhone())) { + if (user.getPhone().length() > 5) { + String phone = user.getPhone().substring(0, 3); + phone += "******"; + phone += user.getPhone().substring(user.getPhone().length() - 2, user.getPhone().length()); + user.setPhone(phone); + } + } + + UserInfoExtraVO userInfoExtra = userInfoExtraService.getInfoExtraVOByUid(user.getId()); + if (userInfoExtra != null && userInfoExtra.getUserRank() != null) { + String picture = userInfoExtra.getUserRank().getPicture(); + String icon = userInfoExtra.getUserRank().getIcon(); + user.setRankNamePicture(picture); + user.setRankIcon(icon); + } + } + + /** + * 鑾峰彇鐢ㄦ埛淇℃伅 + * + * @param acceptData + * @param form + * @param requst + * @param out + */ + @UserActive(uid = "#uid") + @RequestMapping(value = "getUserInfo", method = RequestMethod.POST) + public void getuserinfoNew(AcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) { + try { + BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(), + acceptData.getPackages()); + if (system == null) { + out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�")); + return; + } + + if (uid == null) { + out.print(JsonUtil.loadFalseResult("璇锋眰鍙傛暟涓虹┖")); + return; + } + + UserInfo userInfo = userInfoService.getUserInfo(uid); + + // 娣诲姞鐢ㄦ埛娲昏穬璁板綍 + UserActiveLog userActiveLog = new UserActiveLog(); + userActiveLog.setChannel(acceptData.getChannel()); + userActiveLog.setIp(requst.getRemoteHost()); + userActiveLog.setUid(userInfo.getId()); + userActiveLog.setVersionCode(acceptData.getVersion()); + userActiveLog.setOsVersion(acceptData.getOsVersion()); + userActiveLog.setDeviceType(acceptData.getDeviceType()); + userActiveLog.setDevice(acceptData.getDevice()); + userActiveLogService.addUserActiveLog(userActiveLog); + + // 澶勭悊鐢ㄦ埛淇℃伅 + outUserInfoHandle(userInfo); + + GsonBuilder gsonBuilder = new GsonBuilder().excludeFieldsWithoutExposeAnnotation(); + JSONObject data = new JSONObject(); + + boolean tailor = false; + int welfareCenterNews = 0; + String invitCode = null; + UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); + if (userInfoExtra != null) { + if (userInfoExtra.getCouponNews() != null) { + welfareCenterNews = userInfoExtra.getCouponNews(); + } + // vip閭�璇风爜浼樺厛 + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) { + invitCode = userInfoExtra.getInviteCodeVip(); + } else if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCode())) { + tailor = true; + invitCode = userInfoExtra.getInviteCode(); + } + + if (userInfoExtra.getUserRank() != null) { + String picture = userInfoExtra.getUserRank().getPicture(); + String icon = userInfoExtra.getUserRank().getIcon(); + userInfo.setRankNamePicture(picture); + userInfo.setRankIcon(icon); + } else { + userInfo.setRankNamePicture(null); + userInfo.setRankIcon(null); + } + + if (userInfoExtra.getSex() != null) + userInfo.setSex(userInfoExtra.getSex()); + + if (!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin())) + userInfo.setWeiXin(userInfoExtra.getWeiXin()); + + // 浜岀淮鐮� + userInfo.setErCode(userInfoExtra.getErCode()); + } + // 鏄剧ず閭�璇风爜鐗瑰埗鍏ュ彛 + data.put("tailor", tailor); + + // 1.6.5 涔嬪悗杩斿洖 寰俊鍙锋彁绀� + if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) + userInfo.setWeiXinTip("娣诲姞寰俊鍙峰悗锛屼綘鐨勯個璇蜂汉鍜岀洿鎺ョ矇涓濆彲浠ラ�氳繃寰俊涓庝綘寤虹珛鑱旂郴銆�"); + + data.put("user", JsonUtil.getConvertBigDecimalToStringBuilder(gsonBuilder).create().toJson(userInfo)); + data.put("invitCode", invitCode); // 閭�璇风爜 + if (!StringUtil.isNullOrEmpty(userInfoExtra.getInviteCodeVip())) + data.put("invitCodeUpdated", true);// 閭�璇风爜鏄惁宸茬粡淇敼杩� + else + data.put("invitCodeUpdated", false); + data.put("vipLink", configService.get("vip_link"));// 瓒呯骇浼氬憳鍗囩骇閾炬帴 + + if (!StringUtil.isNullOrEmpty(invitCode)) { + String bossName = ""; + ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid); + if (threeSale != null && threeSale.getBoss() != null) { + bossName = threeSale.getBoss().getNickName(); + } + data.put("bossName", bossName); + } + + out.print(JsonUtil.loadTrueResult(data)); + + final UserInfo uuser = userInfo; + ThreadUtil.run(new Runnable() { + public void run() { + // 鑾峰彇閭�璇风爜锛氳嫢鏃犻個璇风爜涓斿瓨鍦ㄦ湁鏁堢殑闃熷憳鍏崇郴 鍒欒嚜鍔ㄧ敓鎴愰個璇风爜 + userInfoExtraService.getInviteCodeByUid(uuser.getId()); + + // 鏇存柊鐢ㄦ埛闄勫姞淇℃伅锛岃�佺敤鎴蜂笉瀛樺湪鐨勯渶瑕佹坊鍔� + try { + userInfoExtraService.updateUserRankByUid(uuser.getId()); + } catch (UserInfoExtraException e) { + e.printStackTrace(); + } + } + }); + + } catch (UserInfoException e) { + out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg())); + } catch (Exception e) { + out.print(JsonUtil.loadFalseResult("鑾峰彇澶辫触")); + e.printStackTrace(); + } + } + } -- Gitblit v1.8.0