From 851e43f3d0a79154cb4dc3a55738a83a97797c2d Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 13 十一月 2019 10:04:34 +0800
Subject: [PATCH] 红包提现次数限制

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java |  110 ++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 81 insertions(+), 29 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
index 01b14a6..206ac38 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserInfoController.java
@@ -40,9 +40,11 @@
 import com.yeshi.fanli.dto.HongBaoDTO;
 import com.yeshi.fanli.dto.money.AccountDetails;
 import com.yeshi.fanli.dto.order.OrderItem;
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
 import com.yeshi.fanli.entity.AppVersionInfo;
 import com.yeshi.fanli.entity.accept.AcceptData;
 import com.yeshi.fanli.entity.bus.user.AccountMessage;
+import com.yeshi.fanli.entity.bus.user.BindRemind;
 import com.yeshi.fanli.entity.bus.user.BindingAccount;
 import com.yeshi.fanli.entity.bus.user.Extract;
 import com.yeshi.fanli.entity.bus.user.ExtractRecord;
@@ -53,6 +55,7 @@
 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.bus.user.WeiXinUser;
 import com.yeshi.fanli.entity.common.AdminUser;
 import com.yeshi.fanli.entity.common.Config;
@@ -60,13 +63,14 @@
 import com.yeshi.fanli.entity.goods.CommonGoods;
 import com.yeshi.fanli.entity.money.UserMoneyDetail;
 import com.yeshi.fanli.entity.order.HongBaoOrder;
+import com.yeshi.fanli.entity.redpack.RedPackBalance;
 import com.yeshi.fanli.entity.system.BusinessSystem;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBrief;
 import com.yeshi.fanli.entity.taobao.TaoBaoGoodsBriefExtra;
-import com.yeshi.fanli.exception.BindingAccountException;
 import com.yeshi.fanli.exception.goods.CollectionGoodsException;
 import com.yeshi.fanli.exception.taobao.TaoKeApiException;
 import com.yeshi.fanli.exception.taobao.TaobaoGoodsDownException;
+import com.yeshi.fanli.exception.user.BindingAccountException;
 import com.yeshi.fanli.exception.user.UserCustomSettingsException;
 import com.yeshi.fanli.exception.user.UserInfoException;
 import com.yeshi.fanli.exception.user.UserInfoExtraException;
@@ -77,18 +81,19 @@
 import com.yeshi.fanli.service.inter.config.ConfigService;
 import com.yeshi.fanli.service.inter.count.HongBaoV2CountService;
 import com.yeshi.fanli.service.inter.goods.CollectionGoodsV2Service;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleExtraInfoSerivce;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.money.UserMoneyDetailService;
+import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractRecordService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractService;
 import com.yeshi.fanli.service.inter.order.HongBaoOrderService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderService;
+import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
+import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
 import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinDetailService;
 import com.yeshi.fanli.service.inter.user.AccountMessageService;
-import com.yeshi.fanli.service.inter.user.BindingAccountService;
-import com.yeshi.fanli.service.inter.user.ExtractRecordService;
-import com.yeshi.fanli.service.inter.user.ExtractService;
+import com.yeshi.fanli.service.inter.user.BindRemindService;
 import com.yeshi.fanli.service.inter.user.MaskKeyService;
 import com.yeshi.fanli.service.inter.user.ShamUserService;
 import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
@@ -96,9 +101,11 @@
 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.UserMoneyDetailService;
 import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleExtraInfoSerivce;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
 import com.yeshi.fanli.util.AESUtil;
 import com.yeshi.fanli.util.Constant;
 import com.yeshi.fanli.util.GsonUtil;
@@ -111,6 +118,7 @@
 import com.yeshi.fanli.util.VersionUtil;
 import com.yeshi.fanli.util.account.UserUtil;
 import com.yeshi.fanli.util.annotation.RequestSerializableByKey;
+import com.yeshi.fanli.util.annotation.UserActive;
 import com.yeshi.fanli.util.email.MailSenderUtil;
 import com.yeshi.fanli.util.factory.AccountDetailsFactory;
 import com.yeshi.fanli.util.factory.HongBaoFactory;
@@ -214,7 +222,15 @@
 
 	@Resource
 	private UserTaoLiJinDetailService userTaoLiJinDetailService;
+
+	@Resource
+	private UserInfoModifyRecordService userInfoModifyRecordService;
 	
+	@Resource
+	private BindRemindService bindRemindService;
+	
+	@Resource
+	private RedPackBalanceService redPackBalanceService;
 	
 
 	private static final String PASSWORD_MAX_ERROR = "password_max_error";
@@ -261,6 +277,8 @@
 				userActiveLog.setVersionCode(acceptData.getVersion());
 				userActiveLog.setOsVersion(acceptData.getOsVersion());
 				userActiveLog.setDeviceType(acceptData.getDeviceType());
+				userActiveLog.setDevice(acceptData.getDevice());
+				
 				userActiveLogService.addUserActiveLog(userActiveLog);
 
 				outUserInfo(acceptData, out, remotIP, find, acceptData.getDevice());
@@ -289,7 +307,9 @@
 			int loginType = form.getLoginType();
 			// WeiXinUserParam wxParam = null;
 			// 濡傛灉鏄井淇$櫥闄嗭紝閭i渶瑕佸厛鑾峰彇鍒板井淇$殑unionid
-			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+			WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
+					account.getAppSecret());
 			if (loginType == Constant.WEIXIN && StringUtil.isNullOrEmpty(form.getWxUnionId())) {
 				// wxParam = WXinUtil.getWxParam(code);
 				if (weiXinUser == null) {
@@ -384,7 +404,11 @@
 												 * StringUtil.isNullOrEmpty(form
 												 * .getWxOpenId())
 												 */) {
-				WeiXinUser xinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+
+				WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+
+				WeiXinUser xinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
+						account.getAppSecret());
 				if (xinUser == null) {
 					out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
 					return;
@@ -643,7 +667,9 @@
 		}
 		int loginType = form.getLoginType();
 		if (loginType == Constant.WEIXIN) {
-			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+			WXAccountInfoDTO account = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, account.getAppId(),
+					account.getAppSecret());
 
 			if (weiXinUser == null) {
 				out.print(JsonUtil.loadFalseResult("缁戝畾澶辫触锛岀敤鎴峰紓甯歌閲嶈瘯锛�"));
@@ -1080,7 +1106,7 @@
 	 * @param type
 	 * @param out
 	 */
-	@RequestSerializableByKey(key = "uid")
+	@RequestSerializableByKey(key = "#uid")
 	@RequestMapping(value = "extractmoneynew", method = RequestMethod.POST)
 	public void extractMoneyNew(AcceptData acceptData, long uid, BigDecimal money, String vcode,
 			HttpServletRequest request, int type, PrintWriter out) {
@@ -1195,7 +1221,7 @@
 		} else if (etype == 3) {
 			out.print(JsonUtil.loadFalseResult("鎻愮幇閲戦澶т簬鎴戠殑绾㈠寘"));
 		} else if (etype == 111) {
-			out.print(JsonUtil.loadFalseResult("鏇存崲浜嗘墜鏈哄彿鍚�7澶╁唴涓嶅厑璁告彁鐜�"));
+			out.print(JsonUtil.loadFalseResult("淇敼鎵嬫満鍙峰悗锛�7澶╁唴鏃犳硶鎻愮幇"));
 		} else if (etype == 110) {
 			out.print(JsonUtil.loadFalseResult("鏈夌淮鏉冭鍗曞皻鏈墸娆�"));
 		}
@@ -1390,7 +1416,6 @@
 		}
 	}
 
-	
 	/**
 	 * h5鏀惰棌
 	 * 
@@ -1697,7 +1722,6 @@
 
 	}
 
-
 	/**
 	 * 鐢ㄦ埛闃熷憳鍒楄〃鏌ヨ 1.5.3鏌ヨ鏈夋晥闃熷憳
 	 * 
@@ -1832,7 +1856,6 @@
 			e.printStackTrace();
 		}
 	}
-	
 
 	/**
 	 * 鐢ㄦ埛闃熷憳淇℃伅淇濆瓨 1.4.1
@@ -2037,6 +2060,7 @@
 	 * @param requst
 	 * @param out
 	 */
+	@UserActive(uid = "#uid")
 	@RequestMapping(value = "getuserinfoNew", method = RequestMethod.POST)
 	public void getuserinfoNew(AcceptData acceptData, Long uid, HttpServletRequest requst, PrintWriter out) {
 		try {
@@ -2062,6 +2086,7 @@
 			userActiveLog.setVersionCode(acceptData.getVersion());
 			userActiveLog.setOsVersion(acceptData.getOsVersion());
 			userActiveLog.setDeviceType(acceptData.getDeviceType());
+			userActiveLog.setDevice(acceptData.getDevice());
 			userActiveLogService.addUserActiveLog(userActiveLog);
 
 			// 澶勭悊鐢ㄦ埛淇℃伅
@@ -2124,25 +2149,45 @@
 					userInfo.setRankNamePicture(null);
 					userInfo.setRankIcon(null);
 				}
-				
+
 				// 1.6.5 涔嬪悗杩斿洖鎬у埆銆佸井淇″彿
-				if(VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
-					if(userInfoExtra.getSex() != null)
+				if (VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion())) {
+					if (userInfoExtra.getSex() != null)
 						userInfo.setSex(userInfoExtra.getSex());
-					
-					if(!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin()))
+
+					if (!StringUtil.isNullOrEmpty(userInfoExtra.getWeiXin()))
 						userInfo.setWeiXin(userInfoExtra.getWeiXin());
 				}
 			}
 			// 1.6.5 涔嬪悗杩斿洖 寰俊鍙锋彁绀�
-			if(VersionUtil.greaterThan_1_6_5(acceptData.getPlatform(), acceptData.getVersion()))
+			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); // 閭�璇风爜
 			data.put("welfareCenterNews", welfareCenterNews);// 绂忓埄涓績娑堟伅
+			
+			// 2.0.1涔嬪悗缁戝畾鎵嬫満鍙�
+			if (VersionUtil.greaterThan_2_0_1(acceptData.getPlatform(), acceptData.getVersion())) {
+				boolean bindPhone = false;
+				if (StringUtil.isNullOrEmpty(userInfo.getPhone())) 
+					bindPhone = bindRemindService.bindRemind(uid, BindRemind.TYPE_PHONE);
+				data.put("bindPhone", bindPhone);
+			}
+			
+			// 2.0.2 鐗堟湰
+			if (VersionUtil.greaterThan_2_0_2(acceptData.getPlatform(), acceptData.getVersion())) {
+				RedPackBalance redPackBalance = redPackBalanceService.selectByPrimaryKey(uid);
+				if (redPackBalance != null && redPackBalance.getState() != null && 
+						redPackBalance.getState() == RedPackBalance.STATE_LOCKED) {
+					data.put("redPackLock", RedPackBalance.STATE_LOCKED);
+				} else {
+					data.put("redPackLock", RedPackBalance.STATE_INIT);
+				}
+			}
+			
 			out.print(JsonUtil.loadTrueResult(data));
-
+			
 			final UserInfo uuser = userInfo;
 			ThreadUtil.run(new Runnable() {
 				public void run() {
@@ -2256,7 +2301,8 @@
 	 * @param out
 	 */
 	@RequestMapping(value = "saveInfo")
-	public void saveInfo(AcceptData acceptData, String nickName, String weiXin, Integer sex, Long uid, PrintWriter out) {
+	public void saveInfo(AcceptData acceptData, String nickName, String weiXin, Integer sex, Long uid,
+			PrintWriter out) {
 		try {
 			if (uid == null) {
 				out.print(JsonUtil.loadFalseResult("鐢ㄦ埛鏈櫥褰�"));
@@ -2269,30 +2315,34 @@
 					out.print(JsonUtil.loadFalseResult("鏄电О杩囬暱"));
 					return;
 				}
-				
+
 				if (maskKeyService.examineContent(nickName)) {
 					out.print(JsonUtil.loadFalseResult("涓嶈兘鍖呭惈鏁忔劅璇嶆眹"));
 					return;
 				}
 				userInfoService.saveUserInfo(nickName, uid);
+
+				userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.nickName, nickName);
 			}
-			
+
 			// 淇敼寰俊鍙�
 			if (!StringUtil.isNullOrEmpty(weiXin)) {
 				if (weiXin.length() > 32) {
 					out.print(JsonUtil.loadFalseResult("寰俊鍙疯繃闀�"));
 					return;
 				}
-				
+
 				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
 				if (userInfoExtra != null) {
 					UserInfoExtra extra = new UserInfoExtra();
 					extra.setId(userInfoExtra.getId());
 					extra.setWeiXin(weiXin);
 					userInfoExtraService.saveUserInfoExtra(extra);
+
+					userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.setWeiXinNum, weiXin);
 				}
 			}
-			
+
 			// 淇敼鎬у埆
 			if (sex != null && sex > 0 && sex < 3) {
 				UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid);
@@ -2301,6 +2351,8 @@
 					extra.setId(userInfoExtra.getId());
 					extra.setSex(sex);
 					userInfoExtraService.saveUserInfoExtra(extra);
+
+					userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.gender, sex + "");
 				}
 			}
 			out.print(JsonUtil.loadTrueResult("淇濆瓨鎴愬姛"));

--
Gitblit v1.8.0