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