From 684779576c02c13cb2a18a7d93e88da7e57fd4b8 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期二, 31 三月 2020 11:25:13 +0800
Subject: [PATCH] 2.1 需求
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java | 166 +++++++++++++++++++++++++++++++------------------------
1 files changed, 94 insertions(+), 72 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java
index e22d7d0..e99f721 100644
--- a/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java
+++ b/fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java
@@ -14,6 +14,7 @@
import org.yeshi.utils.encrypt.DESUtil;
import com.alipay.api.AlipayApiException;
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
import com.yeshi.fanli.entity.accept.AcceptData;
import com.yeshi.fanli.entity.bus.user.BindingAccount;
import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
@@ -23,28 +24,33 @@
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
import com.yeshi.fanli.entity.bus.user.WeiXinUser;
+import com.yeshi.fanli.entity.push.DeviceActive;
import com.yeshi.fanli.entity.system.BusinessSystem;
import com.yeshi.fanli.entity.taobao.ClientTBPid;
import com.yeshi.fanli.entity.taobao.PidUser;
import com.yeshi.fanli.entity.taobao.TBPid;
import com.yeshi.fanli.entity.taobao.TaoBaoUnionConfig;
-import com.yeshi.fanli.exception.AlipayAccountException;
-import com.yeshi.fanli.exception.AlipayTransferException;
-import com.yeshi.fanli.exception.UserAccountException;
+import com.yeshi.fanli.exception.user.AlipayAccountException;
+import com.yeshi.fanli.exception.user.AlipayTransferException;
+import com.yeshi.fanli.exception.user.UserAccountException;
import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.config.BusinessSystemService;
import com.yeshi.fanli.service.inter.config.ConfigService;
import com.yeshi.fanli.service.inter.homemodule.HomeNavbarUserService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService;
-import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service;
-import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.money.UserMoneyService;
+import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
+import com.yeshi.fanli.service.inter.money.extract.ExtractService;
+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.push.DeviceActiveService;
import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenOPPOService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenVIVOService;
+import com.yeshi.fanli.service.inter.push.DeviceTokenXMService;
import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
-import com.yeshi.fanli.service.inter.user.BindingAccountService;
-import com.yeshi.fanli.service.inter.user.ExtractService;
import com.yeshi.fanli.service.inter.user.ForbiddenUserIdentifyCodeService;
import com.yeshi.fanli.service.inter.user.ShamUserService;
import com.yeshi.fanli.service.inter.user.SpreadUserImgService;
@@ -54,11 +60,12 @@
import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoModifyRecordService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
-import com.yeshi.fanli.service.inter.user.UserMoneyService;
import com.yeshi.fanli.service.inter.user.UserShareGoodsRecordService;
import com.yeshi.fanli.service.inter.user.UserSystemCouponService;
+import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.GsonUtil;
+import com.yeshi.fanli.util.RedisKeyEnum;
import com.yeshi.fanli.util.RedisManager;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.ThreadUtil;
@@ -124,6 +131,15 @@
private DeviceTokenHWService deviceTokenHWService;
@Resource
+ private DeviceTokenOPPOService deviceTokenOPPOService;
+
+ @Resource
+ private DeviceTokenXMService deviceTokenXMService;
+
+ @Resource
+ private DeviceTokenVIVOService deviceTokenVIVOService;
+
+ @Resource
private TaoBaoUnionConfigService taoBaoUnionConfigService;
@Resource
@@ -152,13 +168,12 @@
@Resource
private UserTaoLiJinOriginService userTaoLiJinOriginService;
-
+
@Resource
private UserInfoModifyRecordService userInfoModifyRecordService;
- private static final String PASSWORD_MAX_ERROR = "password_max_error";
- private static final String EXTRACT_MIN_MONEY = "extract_min_money";
- private static final String EXTRACT_MAX_MONEY = "extract_max_money";
+ @Resource
+ private DeviceActiveService deviceActiveService;
/**
*
@@ -177,6 +192,13 @@
public void login(AcceptData acceptData, String code, String vcode, String phone, boolean wxinstall,
String tbOpenid, String tbNickName, String tbPortrait, String tbSession, int loginType, Boolean first,
HttpSession session, HttpServletRequest request, PrintWriter out) {
+
+ // 2.0浠ヤ笅鐗堟湰涓嶅厑璁哥櫥褰�
+ if (!VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
+ out.print("璇峰崌绾у埌鏈�鏂扮増鏈�");
+ return;
+ }
+
BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
acceptData.getPackages());
if (system == null) {
@@ -221,8 +243,8 @@
tbUserInfo.setTbPic(tbPortrait);
try {
- LoginResult result = userAccountService.login(request, first, system.getAppid(), code, phone, tbUserInfo,
- wxinstall, loginType);
+ LoginResult result = userAccountService.login(request, acceptData, first, system.getAppid(), code, phone,
+ tbUserInfo, wxinstall, loginType);
if (result == null)
LogHelper.error("login-result涓虹┖鍊�");
@@ -252,6 +274,13 @@
platformType = 2;
}
userSystemCouponService.copyLotteryPrize(uuser.getId(), platformType, acceptData.getDevice());
+ // 缁戝畾oppo,vivo鎺ㄩ��
+ DeviceActive active = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+ if (active != null) {
+ deviceTokenOPPOService.bindUid(uuser.getId(), active.getId());
+ deviceTokenVIVOService.bindUid(uuser.getId(), active.getId());
+ deviceTokenXMService.bindUid(active.getId(), uuser.getId());
+ }
} catch (Exception e) {
e.printStackTrace();
}
@@ -260,7 +289,7 @@
} catch (UserAccountException e) {
try {
- LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+ LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
} catch (Exception e1) {
e1.printStackTrace();
}
@@ -284,6 +313,12 @@
@RequestMapping(value = "register")
public void register(AcceptData acceptData, String tbOpenid, String tbNickName, String tbPortrait, String vcode,
String phone, HttpServletRequest request, HttpSession session, PrintWriter out) {
+ // 2.0浠ヤ笅鐗堟湰涓嶅厑璁哥櫥褰�
+ if (!VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
+ out.print("璇峰崌绾у埌鏈�鏂扮増鏈�");
+ return;
+ }
+
BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
acceptData.getPackages());
if (system == null) {
@@ -335,40 +370,6 @@
}
/**
- * 璐﹀彿鎵撻��
- *
- * @param acceptData
- * @param mainUid
- * @param lessUid
- * @param session
- * @param out
- */
- @RequestMapping(value = "connect")
- public void connect(AcceptData acceptData, long mainUid, long lessUid, HttpSession session, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (mainUid == 0 || lessUid == 0) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳墦閫氱敤鎴稩D"));
- return;
- }
-
- try {
- userAccountService.connectUsers(new UserInfo(mainUid), new UserInfo(lessUid));
- UserInfo user = userInfoService.getUserByIdWithMybatis(mainUid);
- JSONObject data = new JSONObject();
- data.put("user", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(user)));
- out.print(JsonUtil.loadTrueResult(data));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
- }
-
- /**
* 鑾峰彇鐢ㄦ埛ID
*
* @param acceptData
@@ -387,7 +388,10 @@
}
UserInfo user = null;
if (!StringUtil.isNullOrEmpty(code)) {
- WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
+ WXAccountInfoDTO accountInfo = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+
+ WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, accountInfo.getAppId(),
+ accountInfo.getAppSecret());
if (weiXinUser == null) {
out.print(JsonUtil.loadFalseResult(1, "鑾峰彇寰俊鐢ㄦ埛淇℃伅澶辫触"));
return;
@@ -640,7 +644,7 @@
}
try {
- userAccountService.changeWXBind(uid, code);
+ userAccountService.changeWXBind(acceptData, uid, code);
UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
// 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
@@ -769,8 +773,7 @@
return;
}
- String key = "bindalipay-" + uid;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
out.print(JsonUtil.loadFalseResult(2, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
return;
@@ -825,8 +828,7 @@
return;
}
- String key = "bindalipay-" + uid;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
return;
@@ -916,8 +918,7 @@
return;
}
- String key = "bindalipay-" + uid;
-
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
return;
@@ -941,6 +942,8 @@
String[] ALIPAY_CODES = new String[] { "SYSTEM_ERROR", "PERMIT_CHECK_PERM_LIMITED", "PERM_AML_NOT_REALNAME_REV",
"PERM_AML_NOT_REALNAME_REV", "PAYEE_USER_INFO_ERROR", "PAYEE_ACC_OCUPIED",
"PERMIT_CHECK_PERM_IDENTITY_THEFT", "PERMIT_NON_BANK_LIMIT_PAYEE", "EXCEED_LIMIT_UNRN_DM_AMOUNT" };
+ BindingAccount oldBindingAccount = bindingAccountService.getBindingAccountByUidAndType(uid,
+ BindingAccount.TYPE_ALIPAY);
try {
BigDecimal balance = user.getMyHongBao();
BindingAccount bindingAccount = bindingAccountService.changeAlipayBindingWithVerify(uid, name, account);
@@ -951,7 +954,7 @@
else
out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount),
"绯荤粺宸叉垚鍔熻浆璐�0.1鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆傛敞锛氭0.1鍏冨皢浼氬湪鍚庣画浜х敓鐨勪綑棰濅腑鍚堢悊鎵i櫎锛屾暚璇风煡鏅撱��"));
-
+
userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindAlipay, account);
} catch (AlipayTransferException e1) {
if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
@@ -974,7 +977,11 @@
} catch (AlipayAccountException e3) {
// 璐︽埛鏃犱綑棰�
if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
- out.print(JsonUtil.loadFalseResult(5, "浣犵殑璐︽埛鐩墠娌℃湁浣欓锛屾棤闇�缁戝畾鎻愮幇璐﹀彿銆�"));
+ if (oldBindingAccount != null) {
+ out.print(JsonUtil.loadFalseResult(5, "褰撳墠璐︽埛娌℃湁浣欓锛屾棤闇�淇敼锛岃鏈変綑棰濆悗淇敼"));
+ } else {
+ out.print(JsonUtil.loadFalseResult(5, "褰撳墠璐︽埛娌℃湁浣欓锛岃鏈変綑棰濆悗缁戝畾"));
+ }
return;
// 鎻愮幇娆℃暟闄愬埗
} else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
@@ -1118,9 +1125,19 @@
public void logOut(AcceptData acceptData, Long uid, PrintWriter out) {
if (uid == null || uid == 0)
return;
- // 闇�瑕佽В缁慔W鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
- if ("android".equalsIgnoreCase(acceptData.getPlatform()))
+ if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
+ DeviceActive deviceActive = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+ // 闇�瑕佽В缁慔W鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
deviceTokenHWService.unBindDeviceToken(acceptData.getDevice());
+ if (deviceActive != null) {
+ // 瑙g粦OPPO鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
+ deviceTokenOPPOService.unBindUid(uid, deviceActive.getId());
+ // 瑙g粦VIVO鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
+ deviceTokenVIVOService.unBindUid(uid, deviceActive.getId());
+ // 瑙g粦XM鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
+ deviceTokenXMService.unBindUid(deviceActive.getId());
+ }
+ }
out.print(JsonUtil.loadTrueResult(""));
}
@@ -1140,6 +1157,12 @@
public void loginNew(AcceptData acceptData, String vcode, String phone, String code, int loginType,
HttpServletRequest request, PrintWriter out) {
+ // 2.0浠ヤ笅鐗堟湰涓嶅厑璁哥櫥褰�
+ if (!VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
+ out.print("璇峰崌绾у埌鏈�鏂扮増鏈�");
+ return;
+ }
+
try {
BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
acceptData.getPackages());
@@ -1156,7 +1179,7 @@
// 寰俊鐧诲綍
if (loginType == 2) {
- userInfo = userAccountService.loginWinXin(request, loginType, code, system.getAppid());
+ userInfo = userAccountService.loginWinXin(request, acceptData, loginType, code, system.getAppid());
}
if (userInfo == null) {
@@ -1191,13 +1214,12 @@
e.printStackTrace();
}
- if (VersionUtil.greaterThan_1_5_60(acceptData.getPlatform(), acceptData.getVersion())) {
- /* 鏂颁汉绾㈠寘 */
- try {
- userTaoLiJinOriginService.synchDeviceHongbao(uuser.getId(), device);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ // 缁戝畾oppo鎺ㄩ��
+ DeviceActive active = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+ if (active != null) {
+ deviceTokenOPPOService.bindUid(uuser.getId(), active.getId());
+ deviceTokenVIVOService.bindUid(uuser.getId(), active.getId());
+ deviceTokenXMService.bindUid(active.getId(), uuser.getId());
}
}
});
@@ -1206,7 +1228,7 @@
} catch (UserAccountException e) {
out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
try {
- LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+ LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
} catch (Exception e1) {
e1.printStackTrace();
}
@@ -1312,7 +1334,7 @@
}
try {
- userAccountService.bindWeiXin(uid, code);
+ userAccountService.bindWeiXin(acceptData, uid, code);
UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
// 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
--
Gitblit v1.8.0