From 4e9f593c3d1bd4a2689887fd304a2a418ff4a4fe Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 20 一月 2022 15:16:08 +0800
Subject: [PATCH] 拼多多搜索链接问题
---
fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java | 2648 +++++++++++++++++++++++++++++-----------------------------
1 files changed, 1,334 insertions(+), 1,314 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 c270e63..42b5dfd 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
@@ -1,1314 +1,1334 @@
-package com.yeshi.fanli.controller.client.v1;
-
-import java.io.PrintWriter;
-import java.math.BigDecimal;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.yeshi.utils.JsonUtil;
-import org.yeshi.utils.encrypt.DESUtil;
-
-import com.alipay.api.AlipayApiException;
-import com.yeshi.fanli.entity.accept.AcceptData;
-import com.yeshi.fanli.entity.bus.user.BindingAccount;
-import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode;
-import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
-import com.yeshi.fanli.entity.bus.user.LoginResult;
-import com.yeshi.fanli.entity.bus.user.SMSHistory;
-import com.yeshi.fanli.entity.bus.user.UserInfo;
-import com.yeshi.fanli.entity.bus.user.WeiXinUser;
-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.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.order.LostOrderService;
-import com.yeshi.fanli.service.inter.order.OrderService;
-import com.yeshi.fanli.service.inter.push.DeviceTokenHWService;
-import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
-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;
-import com.yeshi.fanli.service.inter.user.TBPidService;
-import com.yeshi.fanli.service.inter.user.UserAccountBindingHistoryService;
-import com.yeshi.fanli.service.inter.user.UserAccountService;
-import com.yeshi.fanli.service.inter.user.UserInfoDeleteRecordService;
-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.util.Constant;
-import com.yeshi.fanli.util.GsonUtil;
-import com.yeshi.fanli.util.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.ThreadUtil;
-import com.yeshi.fanli.util.account.UserUtil;
-import com.yeshi.fanli.util.wx.WXLoginUtil;
-
-import net.sf.json.JSONObject;
-
-/**
- * 璐︽埛绯荤粺
- *
- * @author Administrator
- *
- */
-@Controller
-@RequestMapping("api/v1/user")
-public class UserAccountController {
-
- @Resource
- private UserInfoService userInfoService;
-
- @Resource
- private OrderService orderService;
-
- @Resource
- private HongBaoV2Service hongBaoV2Service;
-
- @Resource
- private BindingAccountService bindingAccountService;
-
- @Resource
- private ExtractService extractService;
-
- @Resource
- private ConfigService configService;
-
- @Resource
- private BusinessSystemService businessSystemService;
-
- @Resource
- private ShamUserService shamUserService;
-
- @Resource
- private ThreeSaleSerivce threeSaleSerivce;
-
- @Resource
- private LostOrderService lostOrderService;
-
- @Resource
- private HongBaoManageService hongBaoManageService;
-
- @Resource
- private UserAccountService userAccountService;
-
- @Resource
- private RedisManager redisManager;
-
- @Resource
- private TBPidService tbPidService;
-
- @Resource
- private DeviceTokenHWService deviceTokenHWService;
-
- @Resource
- private TaoBaoUnionConfigService taoBaoUnionConfigService;
-
- @Resource
- private SpreadUserImgService spreadUserImgService;
-
- @Resource
- private UserShareGoodsRecordService userShareGoodsRecordService;
-
- @Resource
- private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
-
- @Resource
- private UserSystemCouponService userSystemCouponService;
-
- @Resource
- private UserMoneyService userMoneyService;
-
- @Resource
- private UserAccountBindingHistoryService userAccountBindingHistoryService;
-
- @Resource
- private HomeNavbarUserService homeNavbarUserService;
-
- @Resource
- private UserInfoDeleteRecordService userInfoDeleteRecordService;
-
- 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";
-
- /**
- *
- * @param acceptData
- * @param code
- * @param vcode
- * @param phone
- * @param wxinstall
- * @param tbOpenid
- * @param tbNickName
- * @param tbPortrait
- * @param tbSession(娣樺疂session鏁版嵁,鍔犲瘑)
- * @param out
- */
- @RequestMapping(value = "login")
- 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) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (loginType == 3 && !Constant.IS_TEST)// 楠岃瘉鐭俊楠岃瘉鐮�
- {
- // 鑻规灉搴旂敤鍟嗗簵涓婄嚎娴嬭瘯鍙风爜
- if ("17316780233".equalsIgnoreCase(phone) && "258168".equalsIgnoreCase(vcode)) {
- ;
- } else {
- String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
- if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) {
- out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
- return;
- }
- }
-
- redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
- }
-
- UserInfo tbUserInfo = new UserInfo();
- if (!StringUtil.isNullOrEmpty(tbSession)) {
- try {
- tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"),
- StringUtil.getBase64String("*M#34f?,"));
- } catch (Exception e) {
- e.printStackTrace();
- }
- JSONObject tbs = JSONObject.fromObject(tbSession);
- tbOpenid = tbs.optString("openId");
- tbNickName = tbs.optString("nick");
- tbPortrait = tbs.optString("avatarUrl");
- // 娣樺疂ID
- tbUserInfo.setTaoBaoUid(tbs.optString("taobao_user_id"));
- }
-
- tbUserInfo.setOpenid(tbOpenid);
- tbUserInfo.setTbName(tbNickName);
- tbUserInfo.setTbPic(tbPortrait);
-
- try {
- LoginResult result = userAccountService.login(request, first, system.getAppid(), code, phone, tbUserInfo,
- wxinstall, loginType);
- if (result == null)
- LogHelper.error("login-result涓虹┖鍊�");
-
- // if (result.getUser() != null)
- // userAccountService.clearUserPortrait(result.getUser().getId());
-
- JSONObject data = new JSONObject();
- data.put("user", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(result.getUser())));
- if (result.getType() == LoginResult.TYPE_CONNECT) {
- data.put("mainUser", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(result.getMainUser())));
- data.put("lessUser", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(result.getLessUser())));
- }
- JSONObject root = new JSONObject();
- root.put("type", result.getType());
- root.put("data", data);
- out.print(JsonUtil.loadTrueResult(root));
-
- final UserInfo uuser = result.getUser();
- ThreadUtil.run(new Runnable() {
- public void run() {
- try {
- int platformType = 0;
- String platform = acceptData.getPlatform();
- if ("android".equals(platform)) {
- platformType = 1;
- } else if ("ios".equals(platform)) {
- platformType = 2;
- }
- userSystemCouponService.copyLotteryPrize(uuser.getId(), platformType, acceptData.getDevice());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
-
- } catch (UserAccountException e) {
- try {
- LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
-
- }
-
- /**
- * 璐﹀彿娉ㄥ唽
- *
- * @param acceptData
- * @param tbOpenid
- * @param tbNickName
- * @param tbPortrait
- * @param vcode
- * @param phone
- * @param session
- * @param out
- */
- @RequestMapping(value = "register")
- public void register(AcceptData acceptData, String tbOpenid, String tbNickName, String tbPortrait, String vcode,
- String phone, HttpServletRequest request, HttpSession session, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (!StringUtil.isNullOrEmpty(phone))// 楠岃瘉鐭俊楠岃瘉鐮�
- {
- String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
- if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) {
- out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
- return;
- }
-
- redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
- }
-
- if (StringUtil.isNullOrEmpty(phone) && StringUtil.isNullOrEmpty(tbOpenid)) {
- out.print(JsonUtil.loadFalseResult(5, "璇蜂笂浼犳敞鍐屼俊鎭�"));
- return;
- }
-
- UserInfo user = new UserInfo();
- user.setOpenid(tbOpenid);
- user.setTbName(tbNickName);
- user.setTbPic(tbPortrait);
-
- user.setNickName(tbNickName);
- user.setPortrait(tbPortrait);
-
- user.setPhone(phone);
- user.setAppId(system.getAppid());
- user.setLastLoginIp(request.getRemoteHost());
- user.setLastLoginTime(java.lang.System.currentTimeMillis());
- if (!StringUtil.isNullOrEmpty(phone))
- user.setLoginType(3);
- else
- user.setLoginType(1);
- try {
- userAccountService.register(user);
- user = userInfoService.getUserByIdWithMybatis(user.getId());
- 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()));
- }
- }
-
- /**
- * 璐﹀彿鎵撻��
- *
- * @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
- * @param code
- * @param tbOpenid
- * @param phone
- * @param out
- */
- @RequestMapping(value = "getuid")
- public void getUid(AcceptData acceptData, String code, String tbOpenid, String phone, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
- UserInfo user = null;
- if (!StringUtil.isNullOrEmpty(code)) {
- WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code);
- if (weiXinUser == null) {
- out.print(JsonUtil.loadFalseResult(1, "鑾峰彇寰俊鐢ㄦ埛淇℃伅澶辫触"));
- return;
- }
- try {
- user = userAccountService.getUserInfoByWXUnionId(system.getAppid(), weiXinUser.getUnionid());
- } catch (UserAccountException e) {
- try {
- LogHelper.errorDetailInfo(e, null, "鑾峰彇鐢ㄦ埛淇℃伅鍑洪敊");
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
- } else if (!StringUtil.isNullOrEmpty(tbOpenid)) {
- try {
- user = userAccountService.getUserInfoByTaoBaoOpenId(system.getAppid(), tbOpenid);
- } catch (UserAccountException e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
- } else if (!StringUtil.isNullOrEmpty(phone)) {
- try {
- user = userAccountService.getUserInfoByPhone(system.getAppid(), phone);
- } catch (UserAccountException e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
- }
-
- if (user == null) {
- out.print(JsonUtil.loadFalseResult(2, "鐢ㄦ埛灏氭湭缁戝畾"));
- return;
- } else {
- JSONObject data = new JSONObject();
- data.put("uid", user.getId());
- out.print(JsonUtil.loadTrueResult(data));
- return;
- }
- }
-
- /**
- * 缁戝畾鐢佃瘽鍙风爜
- *
- * @param acceptData
- * @param vcode
- * @param phone
- * @param out
- */
- @RequestMapping(value = "bindPhone")
- public void bindPhone(AcceptData acceptData, Long uid, String vcode, String phone, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(vcode)) {
- out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犻獙璇佺爜"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(phone)) {
- out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
- return;
- }
-
- String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
-
- if (Constant.IS_OUTNET) {
- if (!vcode.equalsIgnoreCase(oldVCode)) {
- out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
- return;
- }
- redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
- }
- try {
- userAccountService.bindPhone(uid, phone);
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
- // 鍒ゆ柇鐢佃瘽鍙风爜鏄惁宸茬粡灏佺
- ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
- .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
- if (ic != null && ic.getEffective() != null && ic.getEffective()) {
- out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
- // 灏佺鐢ㄦ埛
- // 灏佺缁戝畾鐨勬甯哥敤鎴�
- if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
- userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勭數璇濆彿鐮�");
- }
- return;
- }
-
- JSONObject data = new JSONObject();
- data.put("user", UserUtil.filterForClientUser(user));
- out.print(JsonUtil.loadTrueResult(data));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
-
- }
-
- /**
- * 瑙g粦鐢佃瘽鍙风爜
- *
- * @param acceptData
- * @param uid
- * @param phone
- * @param out
- */
- @RequestMapping(value = "unBindPhone")
- public void unBindPhone(AcceptData acceptData, Long uid, String phone, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(phone)) {
- out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
- return;
- }
-
- try {
- userAccountService.unBindPhone(uid, phone);
- out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
-
- }
-
- /**
- * 缁戝畾娣樺疂
- *
- * @param acceptData
- * @param uid
- * @param tbOpenid
- * @param tbNickName
- * @param tbPortrait
- * @param tbSession
- * -娣樺疂鎺堟潈session
- * @param out
- */
-
- @RequestMapping(value = "bindTaoBao")
- public void bindTaoBao(AcceptData acceptData, Long uid, String tbOpenid, String tbNickName, String tbPortrait,
- String tbSession, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- String taoBaoUid = "";
-
- if (!StringUtil.isNullOrEmpty(tbSession)) {
- try {
- tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"),
- StringUtil.getBase64String("*M#34f?,"));
- } catch (Exception e) {
- e.printStackTrace();
- }
- JSONObject session = JSONObject.fromObject(tbSession);
- tbOpenid = session.optString("openId");
- tbNickName = session.optString("nick");
- tbPortrait = session.optString("avatarUrl");
- taoBaoUid = session.optString("taobao_user_id");
- }
-
- try {
- userAccountService.bindTaoBao(uid, tbOpenid, tbNickName, tbPortrait);
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
-
- // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
- if (!StringUtil.isNullOrEmpty(taoBaoUid)) {
- ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
- .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid);
- if (ic != null && ic.getEffective() != null && ic.getEffective()) {
- out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER,
- Constant.FORBIDDEN_USER_REASON_DESC));
- // 灏佺鐢ㄦ埛
- // 灏佺缁戝畾鐨勬甯哥敤鎴�
- if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
- userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勬窐瀹濆彿");
- }
- return;
- }
- }
-
- JSONObject data = new JSONObject();
- data.put("user", UserUtil.filterForClientUser(user));
- out.print(JsonUtil.loadTrueResult(data));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
- }
-
- /**
- * 瑙g粦娣樺疂
- *
- * @param acceptData
- * @param uid
- * @param out
- */
- @RequestMapping(value = "unBindTaoBao")
- public void unBindTaoBao(AcceptData acceptData, Long uid, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- try {
- userAccountService.unBindTaoBao(uid);
- out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
- }
-
- /**
- * 鏇存敼寰俊
- *
- * @param acceptData
- * @param uid
- * @param code
- * @param out
- */
- @RequestMapping(value = "changeWX")
- public void changeWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(code)) {
- out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼燾ode"));
- return;
- }
-
- try {
- userAccountService.changeWXBind(uid, code);
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
- // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
- ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
- .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId());
- if (ic != null && ic.getEffective() != null && ic.getEffective()) {
- out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
- // 灏佺鐢ㄦ埛
- // 灏佺缁戝畾鐨勬甯哥敤鎴�
- if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
- userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勫井淇″彿");
- }
- return;
- }
-
- JSONObject data = new JSONObject();
- data.put("user", UserUtil.filterForClientUser(user));
- out.print(JsonUtil.loadTrueResult(data));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
- }
-
- /**
- * 鑾峰彇鐢佃瘽鍙风爜
- *
- * @param acceptData
- * @param uid
- * @param out
- */
- @RequestMapping(value = "getphone")
- public void getPhone(AcceptData acceptData, Long uid, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (uid == null || uid == 0) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
- return;
- }
-
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
- user = UserUtil.filterForClientUser(user);
- JSONObject data = new JSONObject();
- data.put("phone", user.getPhone());
- out.print(JsonUtil.loadTrueResult(data));
- }
-
- @RequestMapping(value = "verifyvcodeforbind")
- public void verifyVcodeForbind(AcceptData acceptData, Long uid, String vcode, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (uid == null || uid == 0) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(vcode)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犻獙璇佺爜"));
- return;
- }
-
- UserInfo user = userInfoService.getUserById(uid);
-
- if (StringUtil.isNullOrEmpty(user.getPhone())) {
- out.print(JsonUtil.loadFalseResult(1, "娌℃湁缁戝畾鐢佃瘽鍙风爜"));
- return;
- }
-
- String code = redisManager.getSMSVCode(user.getPhone(), SMSHistory.TYPE_LOGIN);
- if (code == null || !code.equalsIgnoreCase(vcode)) {
- out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
- return;
- }
- redisManager.clearSMSFrequencyLimit(user.getPhone(), SMSHistory.TYPE_LOGIN);
- redisManager.saveBindAlipayAccountSMSState(user.getPhone());
- out.print(JsonUtil.loadTrueResult(""));
- }
-
- /**
- * 鏀粯瀹濈粦瀹�
- *
- * @param acceptData
- * @param uid-鐢ㄦ埛ID
- * @param name-鏀粯瀹濆疄鍚嶅悕绉�
- * @param account
- * -鏀粯瀹濊处鍙�
- * @param out
- */
- @RequestMapping(value = "bindalipay")
- public void bindAlipay(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (uid == null || uid == 0) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(name)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(account)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
- return;
- }
-
- UserInfo user = userInfoService.getUserById(uid);
-
- boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
- if (!bind) {
- out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
- return;
- }
-
- String key = "bindalipay-" + uid;
-
- if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
- out.print(JsonUtil.loadFalseResult(2, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
- return;
- }
- redisManager.cacheCommonString(key, "1", 120);
- // 鏇存崲缁戝畾
- try {
- BindingAccount bindingAccount = bindingAccountService.changeAlipayBinding(uid, name, account);
- out.print(JsonUtil.loadTrueResult(JsonUtil.getGson().toJson(bindingAccount)));
- } catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- out.print(JsonUtil.loadFalseResult(3, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"));
- } finally {
- redisManager.removeCommonString(key);
- }
- }
-
- @RequestMapping(value = "bindalipaywithverify")
- public void bindAlipayWithVerify(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
-
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (uid == null || uid == 0) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(name)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(account)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
- return;
- }
-
- UserInfo user = userInfoService.getUserById(uid);
-
- boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
- if (!bind) {
- out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
- return;
- }
-
- String key = "bindalipay-" + uid;
-
- if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
- out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
- return;
- }
- redisManager.cacheCommonString(key, "1", 120);
- // 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜
- 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" };
- try {
- BindingAccount bindingAccount = bindingAccountService.changeAlipayBindingWithVerify(uid, name, account);
- out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount), "鎮ㄧ殑鏀粯瀹濊处鍙烽�氳繃楠岃瘉锛屽彲浠ユ甯告彁鐜�"));
- } catch (AlipayTransferException e1) {
- if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
- String msg = "鏃犳硶鎼滅储鍒拌璐﹀彿\n鈶犺妫�鏌ヤ竴涓嬫敮浠樺疂甯愬彿鍜屽鍚嶆槸鍚﹀~鍐欐纭�俓n 鈶¤鍦ㄦ敮浠樺疂闅愮璁剧疆涓鏌ユ槸鍚﹀凡寮�鍚�滈�氳繃閭/鎵嬫満鍙�/浼氬憳鍚嶆壘鍒版垜鈥濋�夐」銆�";
- out.print(JsonUtil.loadFalseResult(1, msg));
- } else {
- for (String st : ALIPAY_CODES) {
- if (st.equalsIgnoreCase(e1.getSubCode())) {
- out.print(JsonUtil.loadFalseResult(2, e1.getMsg()));
- return;
- }
- }
- out.print(JsonUtil.loadFalseResult(3, "鏀粯瀹濇帴鍙e嚭閿欙紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
- return;
- }
-
- } catch (AlipayApiException e2) {
- out.print(JsonUtil.loadFalseResult(4, e2.getErrMsg()));
- return;
- } catch (AlipayAccountException e3) {
- // 璐︽埛鏃犱綑棰�
- if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
- out.print(JsonUtil.loadFalseResult(5, e3.getMsg()));
- return;
- // 鎻愮幇娆℃暟闄愬埗
- } else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
- out.print(JsonUtil.loadFalseResult(6, e3.getMsg()));
- return;
- } else {
- out.print(JsonUtil.loadFalseResult(7, e3.getMsg()));
- return;
- }
-
- } catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
- } finally {
- redisManager.removeCommonString(key);
- }
- }
-
- @RequestMapping(value = "bindalipaywithverifynew")
- public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
-
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (uid == null || uid == 0) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(name)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(account)) {
- out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
- return;
- }
-
- UserInfo user = userInfoService.getUserById(uid);
-
- boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
- if (!bind) {
- out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
- return;
- }
-
- String key = "bindalipay-" + uid;
-
- if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
- out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
- return;
- }
- redisManager.cacheCommonString(key, "1", 120);
-
-
-
- // 鏀粯瀹濈粦瀹�
- ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
- .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, account);
- if (ic != null && ic.getEffective() != null && ic.getEffective()) {
- out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
- // 灏佺鐢ㄦ埛
- // 灏佺缁戝畾鐨勬甯哥敤鎴�
- if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
- userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勬敮浠樺疂");
- }
- return;
- }
-
- // 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜
- 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" };
- try {
- BindingAccount bindingAccount = bindingAccountService.changeAlipayBindingWithVerify(uid, name, account);
- out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount),
- "绯荤粺宸叉垚鍔熻浆璐�0.1鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆�"));
- } catch (AlipayTransferException e1) {
- if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
- String msg = "绯荤粺鏈兘鎴愬姛杞处0.1鍏冿紝鎻愮幇璐﹀彿淇℃伅鏈夎锛岃鏍稿鍚庨噸鏂板~鍐欍��";
- out.print(JsonUtil.loadFalseResult(1, msg));
- } else {
- for (String st : ALIPAY_CODES) {
- if (st.equalsIgnoreCase(e1.getSubCode())) {
- out.print(JsonUtil.loadFalseResult(2, e1.getMsg()));
- return;
- }
- }
- out.print(JsonUtil.loadFalseResult(3, "鏀粯瀹濇帴鍙e嚭閿欙紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
- return;
- }
-
- } catch (AlipayApiException e2) {
- out.print(JsonUtil.loadFalseResult(4, e2.getErrMsg()));
- return;
- } catch (AlipayAccountException e3) {
- // 璐︽埛鏃犱綑棰�
- if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
- out.print(JsonUtil.loadFalseResult(5, "浣犵殑璐︽埛鐩墠娌℃湁浣欓锛屾棤闇�缁戝畾鎻愮幇璐﹀彿銆�"));
- return;
- // 鎻愮幇娆℃暟闄愬埗
- } else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
- out.print(JsonUtil.loadFalseResult(6, "姣忔湀浠呭彲淇敼1娆℃彁鐜拌处鍙凤紝璇蜂笅鏈堝啀璇曞惂銆�"));
- return;
- } else {
- out.print(JsonUtil.loadFalseResult(7, e3.getMsg()));
- return;
- }
-
- } catch (Exception e) {
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
- } finally {
- redisManager.removeCommonString(key);
- }
- }
-
- /**
- * 鑾峰彇鐢ㄦ埛璧勯噾璇︽儏
- *
- * @param acceptData
- * @param uid
- * @param out
- */
- @RequestMapping(value = "getusermoney")
- public void getMoneyDetail(AcceptData acceptData, Long uid, PrintWriter out) {
-
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
- if (user == null) {
- out.print(JsonUtil.loadFalseResult(2, "鐢ㄦ埛涓嶅瓨鍦�"));
- return;
- }
- BigDecimal moneyToday = userMoneyService.getMoneyToday(uid);
- if (moneyToday == null) {
- moneyToday = new BigDecimal(0);
- }
- BigDecimal moneyMonth = userMoneyService.getMoneyMonth(uid);
- if (moneyMonth == null) {
- moneyMonth = new BigDecimal(0);
- }
-
- BigDecimal moneyLastMonth = userMoneyService.getMoneyLastMonth(uid);
- BigDecimal unOpenmoney = hongBaoV2Service.getUnRecievedFanLiMoney(uid);
- BigDecimal totalFanMoney = hongBaoV2Service.getTotalFanLiMoney(uid);
- JSONObject data = new JSONObject();
- int spreadImgCount = spreadUserImgService.countUserSpreadImg(uid);
- long shareCount = userShareGoodsRecordService.countShareRecordByUid(uid);
-
- // IOS绔暟瀛楁寜鐓у瓧绗︿覆澶勭悊
- if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) > 33) {
- data.put("moneyToday", moneyToday.setScale(2, BigDecimal.ROUND_DOWN).toString());
- data.put("moneyMonth", moneyMonth.setScale(2, BigDecimal.ROUND_DOWN).toString());
- data.put("moneyLastMonth", moneyLastMonth.setScale(2, BigDecimal.ROUND_DOWN).toString());
- data.put("money", user.getMyHongBao().setScale(2, BigDecimal.ROUND_DOWN).toString());
- data.put("unGetMoney", unOpenmoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
- data.put("totalFanLiMoney", totalFanMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());// 绱杩斿埄
- data.put("totalTiChengMoney",
- hongBaoV2Service.getTotalTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN).toString());// 绱鎻愭垚
- data.put("totalUnGetTiChengMoney",
- hongBaoV2Service.getUnGetTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN).toString()); // 鏈埌璐︽彁鎴�
- // 灞曠ず鎻愭垚鏁版嵁
- if (configService.iosOnLining(Integer.parseInt(acceptData.getVersion())))
- data.put("showTiCheng", false);
- else
- data.put("showTiCheng", spreadImgCount + shareCount > 0);
- } else {
- data.put("moneyToday", moneyToday.setScale(2, BigDecimal.ROUND_DOWN));
- data.put("moneyMonth", moneyMonth.setScale(2, BigDecimal.ROUND_DOWN));
- data.put("moneyLastMonth", moneyLastMonth.setScale(2, BigDecimal.ROUND_DOWN));
- data.put("money", user.getMyHongBao().setScale(2, BigDecimal.ROUND_DOWN));
- data.put("unGetMoney", unOpenmoney.setScale(2, BigDecimal.ROUND_DOWN));
- data.put("totalFanLiMoney", totalFanMoney.setScale(2, BigDecimal.ROUND_DOWN));// 绱杩斿埄
- data.put("totalTiChengMoney",
- hongBaoV2Service.getTotalTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN));// 绱鎻愭垚
- data.put("totalUnGetTiChengMoney",
- hongBaoV2Service.getUnGetTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN)); // 鏈埌璐︽彁鎴�
- // 灞曠ず鎻愭垚鏁版嵁
- data.put("showTiCheng", spreadImgCount + shareCount > 0);
- }
-
- user.setNoOpenHongBao(unOpenmoney);
- out.print(JsonUtil.loadTrueResult(data));
- }
-
- /**
- * 鑾峰彇鐢ㄦ埛鐨凱ID淇℃伅
- *
- * @param acceptData
- * @param uid
- * @param out
- */
- @RequestMapping(value = "gettbpidinfo")
- public void getUserPid(AcceptData acceptData, String uid, PrintWriter out) {
- ClientTBPid clientTBPid = null;
- // 鐢ㄦ埛宸茬粡鐧诲綍
- if (!StringUtil.isNullOrEmpty(uid)) {
- TBPid tbPid = null;
- if (acceptData.getPlatform().equalsIgnoreCase("android")) {
- tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_ANDROID);
- if (tbPid != null) {
- String siteId = tbPid.getPid().split("_")[2];
- String adzoneId = tbPid.getPid().split("_")[3];
- TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
- clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
- } else {
- clientTBPid = tbPidService.getAndroidDefault();
- }
-
- } else {
-
- clientTBPid = tbPidService.getIOSDefault();
-
- }
-
- } else {
- if (acceptData.getPlatform().equalsIgnoreCase("android"))
- clientTBPid = tbPidService.getAndroidDefault();
- else
- clientTBPid = tbPidService.getIOSDefault();
- }
-
- JSONObject data = new JSONObject();
- data.put("pidInfo", clientTBPid);
- out.print(JsonUtil.loadTrueResult(data));
- }
-
- /**
- * 閫�鍑虹櫥褰�
- *
- * @param acceptData
- * @param uid
- * -鐢ㄦ埛ID
- * @param out
- */
- @RequestMapping(value = "logout")
- public void logOut(AcceptData acceptData, Long uid, PrintWriter out) {
- if (uid == null || uid == 0)
- return;
- // 闇�瑕佽В缁慔W鎺ㄩ�佺殑鐢ㄦ埛缁戝畾
- if ("android".equalsIgnoreCase(acceptData.getPlatform()))
- deviceTokenHWService.unBindDeviceToken(acceptData.getDevice());
- out.print(JsonUtil.loadTrueResult(""));
- }
-
- /**
- * 鏂扮増鐧诲綍 V1.5.3
- *
- * @param acceptData
- * @param vcode
- * @param phone
- * @param code
- * @param loginType
- * 鐧诲綍鏂瑰紡锛� 1-鎵嬫満鐧诲綍 2-寰俊鐧诲綍
- * @param request
- * @param out
- */
- @RequestMapping(value = "loginNew", method = RequestMethod.POST)
- public void loginNew(AcceptData acceptData, String vcode, String phone, String code, int loginType,
- HttpServletRequest request, PrintWriter out) {
-
- try {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- UserInfo userInfo = null;
- // 鎵嬫満鐧诲綍
- if (loginType == 1) {
- userInfo = userAccountService.loginPhone(request, loginType, vcode, phone, system.getAppid());
- }
-
- // 寰俊鐧诲綍
- if (loginType == 2) {
- userInfo = userAccountService.loginWinXin(request, loginType, code, system.getAppid());
- }
-
- if (userInfo == null) {
- out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
- } else {
- JSONObject data = new JSONObject();
- data.put("userInfo", UserUtil.filterForClientUser(userInfo));
- out.print(JsonUtil.loadTrueResult(data));
-
- final UserInfo uuser = userInfo;
- ThreadUtil.run(new Runnable() {
- public void run() {
- String device = acceptData.getDevice();
- try {
- // 鍚屾鑷畾涔夊鑸�
- homeNavbarUserService.synchroDeviceToUser(uuser.getId(), device);
- } catch (Exception e) {
- LogHelper.errorDetailInfo(e);
- }
-
- try {
- /* 鍚屾鏈櫥褰曚箣鍓嶈澶囨娊濂栨暟鎹� */
- int platformType = 0;
- String platform = acceptData.getPlatform();
- if ("android".equals(platform)) {
- platformType = 1;
- } else if ("ios".equals(platform)) {
- platformType = 2;
- }
- userSystemCouponService.copyLotteryPrize(uuser.getId(), platformType, device);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
-
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- try {
- LogHelper.cookieLog("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- } catch (Exception e) {
- out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
- try {
- LogHelper.errorDetailInfo(e);
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- }
- }
-
- /**
- * 缁戝畾鐢佃瘽鍙风爜 V1.5.3
- *
- * @param acceptData
- * @param vcode
- * @param phone
- * @param out
- */
- @RequestMapping(value = "bindPhoneNew")
- public void bindPhoneNew(AcceptData acceptData, Long uid, String vcode, String phone, PrintWriter out) {
-
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(vcode)) {
- out.print(JsonUtil.loadFalseResult("楠岃瘉鐮佷笉鑳戒负绌�"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(phone)) {
- out.print(JsonUtil.loadFalseResult("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
- return;
- }
-
- phone = phone.replaceAll(" ", "");
-
- String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_BIND);
- if (Constant.IS_OUTNET) {
- if (!vcode.equalsIgnoreCase(oldVCode)) {
- out.print(JsonUtil.loadFalseResult(9001, "楠岃瘉鐮侀敊璇紝閲嶆柊杈撳叆"));
- return;
- }
- redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_BIND);
- }
-
- try {
- // 缁戝畾鐢ㄦ埛
- userAccountService.bindPhoneNew(uid, phone);
-
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
- // 鍒ゆ柇鐢佃瘽鍙风爜鏄惁宸茬粡灏佺
- ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
- .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
- if (ic != null && ic.getEffective() != null && ic.getEffective()) {
- out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
- // 灏佺鐢ㄦ埛
- // 灏佺缁戝畾鐨勬甯哥敤鎴�
- if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
- userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勭數璇濆彿鐮�");
- }
- return;
- }
-
- JSONObject data = new JSONObject();
- data.put("userInfo", UserUtil.filterForClientUser(user));
- out.print(JsonUtil.loadTrueResult(data));
-
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- } catch (Exception e) {
- out.print(JsonUtil.loadFalseResult(1, "缁戝畾澶辫触"));
- }
- }
-
- /**
- * 鏇存敼寰俊
- *
- * @param acceptData
- * @param uid
- * @param code
- * @param out
- */
- @RequestMapping(value = "bindWeiXin")
- public void bindWeiXin(AcceptData acceptData, Long uid, String code, PrintWriter out) {
- BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
- acceptData.getPackages());
-
- if (system == null) {
- out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
- return;
- }
-
- if (StringUtil.isNullOrEmpty(code)) {
- out.print(JsonUtil.loadFalseResult("璇蜂笂浼燾ode"));
- return;
- }
-
- try {
- userAccountService.bindWeiXin(uid, code);
-
- UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
- // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
- ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
- .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId());
- if (ic != null && ic.getEffective() != null && ic.getEffective()) {
- out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
- // 灏佺鐢ㄦ埛
- // 灏佺缁戝畾鐨勬甯哥敤鎴�
- if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
- userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勫井淇″彿");
- }
- return;
- }
-
- JSONObject data = new JSONObject();
- data.put("userInfo", UserUtil.filterForClientUser(user));
- out.print(JsonUtil.loadTrueResult(data));
- } catch (UserAccountException e) {
- out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
- }
- }
-
-}
+package com.yeshi.fanli.controller.client.v1;
+
+import com.alipay.api.AlipayApiException;
+import com.google.gson.Gson;
+import com.ks.push.service.BDeviceTokenService;
+import com.yeshi.fanli.dto.wx.WXAccountInfoDTO;
+import com.yeshi.fanli.entity.accept.AcceptData;
+import com.yeshi.fanli.entity.bus.user.*;
+import com.yeshi.fanli.entity.bus.user.ForbiddenUserIdentifyCode.ForbiddenUserIdentifyCodeTypeEnum;
+import com.yeshi.fanli.entity.bus.user.UserInfoModifyRecord.ModifyTypeEnum;
+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.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.money.UserMoneyService;
+import com.yeshi.fanli.service.inter.money.extract.BindingAccountService;
+import com.yeshi.fanli.service.inter.order.HongBaoV2Service;
+import com.yeshi.fanli.service.inter.push.*;
+import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
+import com.yeshi.fanli.service.inter.user.*;
+import com.yeshi.fanli.util.*;
+import com.yeshi.fanli.util.account.UserUtil;
+import com.yeshi.fanli.util.wx.MyWXLoginUtil;
+import com.yeshi.fanli.vo.user.QQUserInfoVO;
+import net.sf.json.JSONObject;
+import org.apache.dubbo.config.annotation.Reference;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.yeshi.utils.JsonUtil;
+import org.yeshi.utils.TimeUtil;
+import org.yeshi.utils.encrypt.DESUtil;
+import org.yeshi.utils.entity.ProxyIP;
+import org.yeshi.utils.entity.wx.WeiXinUser;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.io.PrintWriter;
+import java.math.BigDecimal;
+
+/**
+ * 璐︽埛绯荤粺
+ *
+ * @author Administrator
+ */
+@Controller
+@RequestMapping("api/v1/user")
+public class UserAccountController {
+
+ private Logger logger = LoggerFactory.getLogger(UserAccountController.class);
+
+ @Resource
+ private UserInfoService userInfoService;
+
+
+ @Resource
+ private HongBaoV2Service hongBaoV2Service;
+
+ @Resource
+ private BindingAccountService bindingAccountService;
+
+
+ @Resource
+ private ConfigService configService;
+
+ @Resource
+ private BusinessSystemService businessSystemService;
+
+
+ @Resource
+ private UserAccountService userAccountService;
+
+ @Resource
+ private RedisManager redisManager;
+
+ @Resource
+ private TBPidService tbPidService;
+
+ @Resource
+ private DeviceTokenHWService deviceTokenHWService;
+
+ @Resource
+ private DeviceTokenOPPOService deviceTokenOPPOService;
+
+ @Resource
+ private DeviceTokenXMService deviceTokenXMService;
+
+ @Resource
+ private DeviceTokenVIVOService deviceTokenVIVOService;
+
+ @Resource
+ private TaoBaoUnionConfigService taoBaoUnionConfigService;
+
+ @Resource
+ private SpreadUserImgService spreadUserImgService;
+
+ @Resource
+ private UserShareGoodsRecordService userShareGoodsRecordService;
+
+ @Resource
+ private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
+
+
+ @Resource
+ private UserMoneyService userMoneyService;
+
+
+ @Resource
+ private HomeNavbarUserService homeNavbarUserService;
+
+
+ @Resource
+ private UserInfoModifyRecordService userInfoModifyRecordService;
+
+ @Resource
+ private DeviceActiveService deviceActiveService;
+
+
+ @Reference(version = "1.0", check = false)
+ private BDeviceTokenService bDeviceTokenService;
+
+ private BusinessSystem getSystem(AcceptData acceptData) {
+ BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+ acceptData.getPackages(), acceptData.getSystem());
+ return system;
+ }
+
+ /**
+ * @param acceptData
+ * @param code
+ * @param vcode
+ * @param phone
+ * @param wxinstall
+ * @param tbOpenid
+ * @param tbNickName
+ * @param tbPortrait
+ * @param tbSession(娣樺疂session鏁版嵁,鍔犲瘑)
+ * @param out
+ */
+ @RequestMapping(value = "login")
+ 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 = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (loginType == 3 && !Constant.IS_TEST)// 楠岃瘉鐭俊楠岃瘉鐮�
+ {
+ // 鑻规灉搴旂敤鍟嗗簵涓婄嚎娴嬭瘯鍙风爜
+ if ("17316780233".equalsIgnoreCase(phone) && "258168".equalsIgnoreCase(vcode)) {
+ ;
+ } else {
+ String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
+ if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) {
+ out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
+ return;
+ }
+ }
+
+ redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
+ }
+
+ UserInfo tbUserInfo = new UserInfo();
+ if (!StringUtil.isNullOrEmpty(tbSession)) {
+ try {
+ tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"),
+ StringUtil.getBase64String("*M#34f?,"));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ JSONObject tbs = JSONObject.fromObject(tbSession);
+ tbOpenid = tbs.optString("openId");
+ tbNickName = tbs.optString("nick");
+ tbPortrait = tbs.optString("avatarUrl");
+ // 娣樺疂ID
+ tbUserInfo.setTaoBaoUid(tbs.optString("taobao_user_id"));
+ }
+
+ tbUserInfo.setOpenid(tbOpenid);
+ tbUserInfo.setTbName(tbNickName);
+ tbUserInfo.setTbPic(tbPortrait);
+
+ try {
+ LoginResult result = userAccountService.login(request, acceptData, first, system.getAppid(), code, phone,
+ tbUserInfo, wxinstall, loginType);
+ if (result == null)
+ LogHelper.error("login-result涓虹┖鍊�");
+
+ // if (result.getUser() != null)
+ // userAccountService.clearUserPortrait(result.getUser().getId());
+
+ JSONObject data = new JSONObject();
+ data.put("user", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(result.getUser())));
+ if (result.getType() == LoginResult.TYPE_CONNECT) {
+ data.put("mainUser", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(result.getMainUser())));
+ data.put("lessUser", GsonUtil.toJsonExpose(UserUtil.filterForClientUser(result.getLessUser())));
+ }
+ JSONObject root = new JSONObject();
+ root.put("type", result.getType());
+ root.put("data", data);
+ out.print(JsonUtil.loadTrueResult(root));
+
+ final UserInfo uuser = result.getUser();
+ ThreadUtil.run(new Runnable() {
+ public void run() {
+ try {
+ // 缁戝畾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();
+ }
+ }
+ });
+
+ } catch (UserAccountException e) {
+ try {
+ LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+
+ }
+
+ /**
+ * 璐﹀彿娉ㄥ唽
+ *
+ * @param acceptData
+ * @param tbOpenid
+ * @param tbNickName
+ * @param tbPortrait
+ * @param vcode
+ * @param phone
+ * @param session
+ * @param out
+ */
+ @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 = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (!StringUtil.isNullOrEmpty(phone))// 楠岃瘉鐭俊楠岃瘉鐮�
+ {
+ String oldVcode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
+ if (StringUtil.isNullOrEmpty(oldVcode) || !oldVcode.equalsIgnoreCase(vcode)) {
+ out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
+ return;
+ }
+
+ redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
+ }
+
+ if (StringUtil.isNullOrEmpty(phone) && StringUtil.isNullOrEmpty(tbOpenid)) {
+ out.print(JsonUtil.loadFalseResult(5, "璇蜂笂浼犳敞鍐屼俊鎭�"));
+ return;
+ }
+
+ UserInfo user = new UserInfo();
+ user.setOpenid(tbOpenid);
+ user.setTbName(tbNickName);
+ user.setTbPic(tbPortrait);
+
+ user.setNickName(tbNickName);
+ user.setPortrait(tbPortrait);
+
+ user.setPhone(phone);
+ user.setAppId(system.getAppid());
+ user.setLastLoginIp(request.getRemoteHost());
+ user.setLastLoginTime(java.lang.System.currentTimeMillis());
+ if (!StringUtil.isNullOrEmpty(phone))
+ user.setLoginType(3);
+ else
+ user.setLoginType(1);
+ try {
+ userAccountService.register(user);
+ user = userInfoService.getUserByIdWithMybatis(user.getId());
+ 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
+ * @param code
+ * @param tbOpenid
+ * @param phone
+ * @param out
+ */
+ @RequestMapping(value = "getuid")
+ public void getUid(AcceptData acceptData, String code, String tbOpenid, String phone, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+ UserInfo user = null;
+ if (!StringUtil.isNullOrEmpty(code)) {
+ WXAccountInfoDTO accountInfo = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+
+ WeiXinUser weiXinUser = MyWXLoginUtil.getWeiXinUserWithSavePortrait(code, accountInfo.getAppId(),
+ accountInfo.getAppSecret());
+ if (weiXinUser == null) {
+ out.print(JsonUtil.loadFalseResult(1, "鑾峰彇寰俊鐢ㄦ埛淇℃伅澶辫触"));
+ return;
+ }
+ try {
+ user = userAccountService.getUserInfoByWXUnionId(SystemInfoUtil.getSystem(acceptData), weiXinUser.getUnionid());
+ } catch (UserAccountException e) {
+ try {
+ LogHelper.errorDetailInfo(e, null, "鑾峰彇鐢ㄦ埛淇℃伅鍑洪敊");
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ } else if (!StringUtil.isNullOrEmpty(tbOpenid)) {
+ try {
+ user = userAccountService.getUserInfoByTaoBaoOpenId(SystemInfoUtil.getSystem(acceptData), tbOpenid);
+ } catch (UserAccountException e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ } else if (!StringUtil.isNullOrEmpty(phone)) {
+ try {
+ user = userAccountService.getUserInfoByPhone(SystemInfoUtil.getSystem(acceptData), phone);
+ } catch (UserAccountException e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+
+ if (user == null) {
+ out.print(JsonUtil.loadFalseResult(2, "鐢ㄦ埛灏氭湭缁戝畾"));
+ return;
+ } else {
+ JSONObject data = new JSONObject();
+ data.put("uid", user.getId());
+ out.print(JsonUtil.loadTrueResult(data));
+ return;
+ }
+ }
+
+ /**
+ * 缁戝畾鐢佃瘽鍙风爜
+ *
+ * @param acceptData
+ * @param vcode
+ * @param phone
+ * @param out
+ */
+ @RequestMapping(value = "bindPhone")
+ public void bindPhone(AcceptData acceptData, Long uid, String vcode, String phone, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(vcode)) {
+ out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犻獙璇佺爜"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(phone)) {
+ out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
+ return;
+ }
+
+ String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
+
+ if (Constant.IS_OUTNET) {
+ if (!vcode.equalsIgnoreCase(oldVCode)) {
+ out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
+ return;
+ }
+ redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
+ }
+ try {
+ userAccountService.bindPhone(uid, phone);
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ // 鍒ゆ柇鐢佃瘽鍙风爜鏄惁宸茬粡灏佺
+ ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, phone);
+ if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+ // 灏佺鐢ㄦ埛
+ // 灏佺缁戝畾鐨勬甯哥敤鎴�
+ if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+ userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勭數璇濆彿鐮�");
+ }
+ return;
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("user", UserUtil.filterForClientUser(user));
+ out.print(JsonUtil.loadTrueResult(data));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+
+ }
+
+ /**
+ * 瑙g粦鐢佃瘽鍙风爜
+ *
+ * @param acceptData
+ * @param uid
+ * @param phone
+ * @param out
+ */
+ @RequestMapping(value = "unBindPhone")
+ public void unBindPhone(AcceptData acceptData, Long uid, String phone, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(phone)) {
+ out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
+ return;
+ }
+
+ try {
+ userAccountService.unBindPhone(uid, phone);
+ out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+
+ }
+
+ /**
+ * 缁戝畾娣樺疂
+ *
+ * @param acceptData
+ * @param uid
+ * @param tbOpenid
+ * @param tbNickName
+ * @param tbPortrait
+ * @param tbSession -娣樺疂鎺堟潈session
+ * @param out
+ */
+
+ @RequestMapping(value = "bindTaoBao")
+ public void bindTaoBao(AcceptData acceptData, Long uid, String tbOpenid, String tbNickName, String tbPortrait,
+ String tbSession, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ String taoBaoUid = "";
+
+ if (!StringUtil.isNullOrEmpty(tbSession)) {
+ try {
+ tbSession = DESUtil.decode(tbSession.replace("\n", ""), StringUtil.getBase64String("YeShiFANLI889*+"),
+ StringUtil.getBase64String("*M#34f?,"));
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ JSONObject session = JSONObject.fromObject(tbSession);
+ tbOpenid = session.optString("openId");
+ tbNickName = session.optString("nick");
+ tbPortrait = session.optString("avatarUrl");
+ taoBaoUid = session.optString("taobao_user_id");
+ }
+
+ try {
+ userAccountService.bindTaoBao(uid, tbOpenid, tbNickName, tbPortrait);
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+
+ // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
+ if (!StringUtil.isNullOrEmpty(taoBaoUid)) {
+ ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.taobaoUid, taoBaoUid);
+ if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER,
+ Constant.FORBIDDEN_USER_REASON_DESC));
+ // 灏佺鐢ㄦ埛
+ // 灏佺缁戝畾鐨勬甯哥敤鎴�
+ if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+ userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勬窐瀹濆彿");
+ }
+ return;
+ }
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("user", UserUtil.filterForClientUser(user));
+ out.print(JsonUtil.loadTrueResult(data));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+ }
+
+ /**
+ * 瑙g粦娣樺疂
+ *
+ * @param acceptData
+ * @param uid
+ * @param out
+ */
+ @RequestMapping(value = "unBindTaoBao")
+ public void unBindTaoBao(AcceptData acceptData, Long uid, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ try {
+ userAccountService.unBindTaoBao(uid);
+ out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+ }
+
+ /**
+ * 鏇存敼寰俊
+ *
+ * @param acceptData
+ * @param uid
+ * @param code
+ * @param out
+ */
+ @RequestMapping(value = "changeWX")
+ public void changeWX(AcceptData acceptData, Long uid, String code, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(code)) {
+ out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼燾ode"));
+ return;
+ }
+
+ try {
+ userAccountService.changeWXBind(acceptData, uid, code);
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
+ ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId());
+ if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+ // 灏佺鐢ㄦ埛
+ // 灏佺缁戝畾鐨勬甯哥敤鎴�
+ if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+ userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勫井淇″彿");
+ }
+ return;
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("user", UserUtil.filterForClientUser(user));
+ out.print(JsonUtil.loadTrueResult(data));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+ }
+
+ /**
+ * 鑾峰彇鐢佃瘽鍙风爜
+ *
+ * @param acceptData
+ * @param uid
+ * @param out
+ */
+ @RequestMapping(value = "getphone")
+ public void getPhone(AcceptData acceptData, Long uid, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (uid == null || uid == 0) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ user = UserUtil.filterForClientUser(user);
+ JSONObject data = new JSONObject();
+ data.put("phone", user.getPhone());
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ @RequestMapping(value = "verifyvcodeforbind")
+ public void verifyVcodeForbind(AcceptData acceptData, Long uid, String vcode, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (uid == null || uid == 0) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(vcode)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犻獙璇佺爜"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserById(uid);
+
+ if (StringUtil.isNullOrEmpty(user.getPhone())) {
+ out.print(JsonUtil.loadFalseResult(1, "娌℃湁缁戝畾鐢佃瘽鍙风爜"));
+ return;
+ }
+ if (!Constant.IS_TEST) {
+ String code = redisManager.getSMSVCode(user.getPhone(), SMSHistory.TYPE_LOGIN);
+ if (code == null || !code.equalsIgnoreCase(vcode)) {
+ out.print(JsonUtil.loadFalseResult(90001, "楠岃瘉鐮侀敊璇�"));
+ return;
+ }
+ }
+ redisManager.clearSMSFrequencyLimit(user.getPhone(), SMSHistory.TYPE_LOGIN);
+ redisManager.saveBindAlipayAccountSMSState(user.getPhone());
+ out.print(JsonUtil.loadTrueResult(""));
+ }
+
+ /**
+ * 鏀粯瀹濈粦瀹�
+ *
+ * @param acceptData
+ * @param uid-鐢ㄦ埛ID
+ * @param name-鏀粯瀹濆疄鍚嶅悕绉�
+ * @param account -鏀粯瀹濊处鍙�
+ * @param out
+ */
+ @RequestMapping(value = "bindalipay")
+ public void bindAlipay(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (uid == null || uid == 0) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(name)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(account)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserById(uid);
+
+ boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+ if (!bind) {
+ out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+ return;
+ }
+
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
+ if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+ out.print(JsonUtil.loadFalseResult(2, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
+ return;
+ }
+ redisManager.cacheCommonString(key, "1", 120);
+ // 鏇存崲缁戝畾
+ try {
+ BindingAccount bindingAccount = bindingAccountService.changeAlipayBinding(uid, name, account);
+ out.print(JsonUtil.loadTrueResult(JsonUtil.getGson().toJson(bindingAccount)));
+ } catch (Exception e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ out.print(JsonUtil.loadFalseResult(3, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇�"));
+ } finally {
+ redisManager.removeCommonString(key);
+ }
+ }
+
+ @RequestMapping(value = "bindalipaywithverify")
+ public void bindAlipayWithVerify(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
+
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (uid == null || uid == 0) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(name)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(account)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserById(uid);
+
+ boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+ if (!bind) {
+ out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+ return;
+ }
+
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
+ if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+ out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
+ return;
+ }
+ redisManager.cacheCommonString(key, "1", 120);
+ // 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜
+ 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"};
+ try {
+ BindingAccount bindingAccount = bindingAccountService.changeAlipayBindingWithVerify(uid, name, account);
+ out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount), "鎮ㄧ殑鏀粯瀹濊处鍙烽�氳繃楠岃瘉锛屽彲浠ユ甯告彁鐜�"));
+ } catch (AlipayTransferException e1) {
+ if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
+ String msg = "鏃犳硶鎼滅储鍒拌璐﹀彿\n鈶犺妫�鏌ヤ竴涓嬫敮浠樺疂甯愬彿鍜屽鍚嶆槸鍚﹀~鍐欐纭�俓n 鈶¤鍦ㄦ敮浠樺疂闅愮璁剧疆涓鏌ユ槸鍚﹀凡寮�鍚�滈�氳繃閭/鎵嬫満鍙�/浼氬憳鍚嶆壘鍒版垜鈥濋�夐」銆�";
+ out.print(JsonUtil.loadFalseResult(1, msg));
+ } else {
+ for (String st : ALIPAY_CODES) {
+ if (st.equalsIgnoreCase(e1.getSubCode())) {
+ out.print(JsonUtil.loadFalseResult(2, e1.getMsg()));
+ return;
+ }
+ }
+ out.print(JsonUtil.loadFalseResult(3, "鏀粯瀹濇帴鍙e嚭閿欙紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+ return;
+ }
+
+ } catch (AlipayApiException e2) {
+ out.print(JsonUtil.loadFalseResult(4, e2.getErrMsg()));
+ return;
+ } catch (AlipayAccountException e3) {
+ // 璐︽埛鏃犱綑棰�
+ if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
+ out.print(JsonUtil.loadFalseResult(5, e3.getMsg()));
+ return;
+ // 鎻愮幇娆℃暟闄愬埗
+ } else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
+ out.print(JsonUtil.loadFalseResult(6, e3.getMsg()));
+ return;
+ } else {
+ out.print(JsonUtil.loadFalseResult(7, e3.getMsg()));
+ return;
+ }
+
+ } catch (Exception e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+ } finally {
+ redisManager.removeCommonString(key);
+ }
+ }
+
+ @RequestMapping(value = "bindalipaywithverifynew")
+ public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
+
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (uid == null || uid == 0) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(name)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(account)) {
+ out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+ return;
+ }
+
+ UserInfo user = userInfoService.getUserById(uid);
+
+ boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+ if (!bind) {
+ out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+ return;
+ }
+
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.bindAlipay, uid + "");
+ if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
+ out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
+ return;
+ }
+ redisManager.cacheCommonString(key, "1", 120);
+
+ // 鏀粯瀹濈粦瀹�
+ ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.alipayAccount, account);
+ if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+ // 灏佺鐢ㄦ埛
+ // 灏佺缁戝畾鐨勬甯哥敤鎴�
+ if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+ userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勬敮浠樺疂");
+ }
+ return;
+ }
+
+ // 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜
+ 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);
+ // 浣欓鍏呰冻
+ if (balance.compareTo(new BigDecimal("0.1")) >= 0)
+ out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount),
+ "绯荤粺宸叉垚鍔熻浆璐�0.1鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆�"));
+ else
+ out.print(JsonUtil.loadTrue(0, JsonUtil.getGson().toJson(bindingAccount),
+ "绯荤粺宸叉垚鍔熻浆璐�0.1鍏冨埌鎻愮幇璐﹀彿涓紝鎻愮幇璐﹀彿楠岃瘉閫氳繃锛屾伃鍠滀綘锛佸彲浠ユ彁鐜颁簡銆傛敞锛氭0.1鍏冨皢浼氬湪鍚庣画浜х敓鐨勪綑棰濅腑鍚堢悊鎵i櫎锛屾暚璇风煡鏅撱��"));
+
+ userInfoModifyRecordService.addModifyRecord(uid, ModifyTypeEnum.bindAlipay, account);
+ } catch (AlipayTransferException e1) {
+ LogHelper.error("鏀粯瀹濋獙璇佸嚭閿�:" + new Gson().toJson(e1));
+ if (e1.getSubCode().equalsIgnoreCase("PAYEE_NOT_EXIST")) {
+ String msg = "绯荤粺鏈兘鎴愬姛杞处0.1鍏冿紝鎻愮幇璐﹀彿淇℃伅鏈夎锛岃鏍稿鍚庨噸鏂板~鍐欍��";
+ out.print(JsonUtil.loadFalseResult(1, msg));
+ } else {
+ for (String st : ALIPAY_CODES) {
+ if (st.equalsIgnoreCase(e1.getSubCode())) {
+ out.print(JsonUtil.loadFalseResult(2, e1.getMsg()));
+ return;
+ }
+ }
+ out.print(JsonUtil.loadFalseResult(3, "鏀粯瀹濇帴鍙e嚭閿欙紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+ return;
+ }
+
+ } catch (AlipayApiException e2) {
+ out.print(JsonUtil.loadFalseResult(4, e2.getErrMsg()));
+ return;
+ } catch (AlipayAccountException e3) {
+ // 璐︽埛鏃犱綑棰�
+ if (e3.getCode() == AlipayAccountException.CODE_NO_MONEY) {
+ if (oldBindingAccount != null) {
+ out.print(JsonUtil.loadFalseResult(5, "褰撳墠璐︽埛娌℃湁浣欓锛屾棤闇�淇敼锛岃鏈変綑棰濆悗淇敼"));
+ } else {
+ out.print(JsonUtil.loadFalseResult(5, "褰撳墠璐︽埛娌℃湁浣欓锛岃鏈変綑棰濆悗缁戝畾"));
+ }
+ return;
+ // 鎻愮幇娆℃暟闄愬埗
+ } else if (e3.getCode() == AlipayAccountException.CODE_TIMES_LIMIT) {
+ out.print(JsonUtil.loadFalseResult(6, "姣忔湀浠呭彲淇敼1娆℃彁鐜拌处鍙凤紝璇蜂笅鏈堝啀璇曞惂銆�"));
+ return;
+ } else {
+ out.print(JsonUtil.loadFalseResult(7, e3.getMsg()));
+ return;
+ }
+
+ } catch (Exception e) {
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+ } finally {
+ redisManager.removeCommonString(key);
+ }
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛璧勯噾璇︽儏
+ *
+ * @param acceptData
+ * @param uid
+ * @param out
+ */
+ @RequestMapping(value = "getusermoney")
+ public void getMoneyDetail(AcceptData acceptData, Long uid, PrintWriter out) {
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ if (user == null) {
+ out.print(JsonUtil.loadFalseResult(2, "鐢ㄦ埛涓嶅瓨鍦�"));
+ return;
+ }
+ BigDecimal moneyToday = userMoneyService.getMoneyToday(uid);
+ if (moneyToday == null) {
+ moneyToday = new BigDecimal(0);
+ }
+ BigDecimal moneyMonth = userMoneyService.getMoneyMonth(uid);
+ if (moneyMonth == null) {
+ moneyMonth = new BigDecimal(0);
+ }
+
+ BigDecimal moneyLastMonth = userMoneyService.getMoneyLastMonth(uid);
+ BigDecimal unOpenmoney = hongBaoV2Service.getUnRecievedFanLiMoney(uid);
+ BigDecimal totalFanMoney = hongBaoV2Service.getTotalFanLiMoney(uid);
+ JSONObject data = new JSONObject();
+ int spreadImgCount = spreadUserImgService.countUserSpreadImg(uid);
+ long shareCount = userShareGoodsRecordService.countShareRecordByUid(uid);
+
+ // IOS绔暟瀛楁寜鐓у瓧绗︿覆澶勭悊
+ if ("ios".equalsIgnoreCase(acceptData.getPlatform()) && Integer.parseInt(acceptData.getVersion()) > 33) {
+ data.put("moneyToday", moneyToday.setScale(2, BigDecimal.ROUND_DOWN).toString());
+ data.put("moneyMonth", moneyMonth.setScale(2, BigDecimal.ROUND_DOWN).toString());
+ data.put("moneyLastMonth", moneyLastMonth.setScale(2, BigDecimal.ROUND_DOWN).toString());
+ data.put("money", user.getMyHongBao().setScale(2, BigDecimal.ROUND_DOWN).toString());
+ data.put("unGetMoney", unOpenmoney.setScale(2, BigDecimal.ROUND_DOWN).toString());
+ data.put("totalFanLiMoney", totalFanMoney.setScale(2, BigDecimal.ROUND_DOWN).toString());// 绱杩斿埄
+ data.put("totalTiChengMoney",
+ hongBaoV2Service.getTotalTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN).toString());// 绱鎻愭垚
+ data.put("totalUnGetTiChengMoney",
+ hongBaoV2Service.getUnGetTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN).toString()); // 鏈埌璐︽彁鎴�
+ // 灞曠ず鎻愭垚鏁版嵁
+ if (configService.iosOnLining(Integer.parseInt(acceptData.getVersion()), SystemInfoUtil.getSystem(acceptData)))
+ data.put("showTiCheng", false);
+ else
+ data.put("showTiCheng", spreadImgCount + shareCount > 0);
+ } else {
+ data.put("moneyToday", moneyToday.setScale(2, BigDecimal.ROUND_DOWN));
+ data.put("moneyMonth", moneyMonth.setScale(2, BigDecimal.ROUND_DOWN));
+ data.put("moneyLastMonth", moneyLastMonth.setScale(2, BigDecimal.ROUND_DOWN));
+ data.put("money", user.getMyHongBao().setScale(2, BigDecimal.ROUND_DOWN));
+ data.put("unGetMoney", unOpenmoney.setScale(2, BigDecimal.ROUND_DOWN));
+ data.put("totalFanLiMoney", totalFanMoney.setScale(2, BigDecimal.ROUND_DOWN));// 绱杩斿埄
+ data.put("totalTiChengMoney",
+ hongBaoV2Service.getTotalTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN));// 绱鎻愭垚
+ data.put("totalUnGetTiChengMoney",
+ hongBaoV2Service.getUnGetTiChengMoney(uid).setScale(2, BigDecimal.ROUND_DOWN)); // 鏈埌璐︽彁鎴�
+ // 灞曠ず鎻愭垚鏁版嵁
+ data.put("showTiCheng", spreadImgCount + shareCount > 0);
+ }
+
+ user.setNoOpenHongBao(unOpenmoney);
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 鑾峰彇鐢ㄦ埛鐨凱ID淇℃伅
+ *
+ * @param acceptData
+ * @param uid
+ * @param out
+ */
+ @RequestMapping(value = "gettbpidinfo")
+ public void getUserPid(AcceptData acceptData, String uid, PrintWriter out) {
+ ClientTBPid clientTBPid = null;
+ // 鐢ㄦ埛宸茬粡鐧诲綍
+ if (!StringUtil.isNullOrEmpty(uid)) {
+ TBPid tbPid = null;
+ if (acceptData.getPlatform().equalsIgnoreCase("android")) {
+ tbPid = tbPidService.getTBPid(Long.parseLong(uid), PidUser.TYPE_FANLI_ANDROID);
+ if (tbPid != null) {
+ String siteId = tbPid.getPid().split("_")[2];
+ String adzoneId = tbPid.getPid().split("_")[3];
+ TaoBaoUnionConfig config = taoBaoUnionConfigService.getConfigByAppIdCache(siteId);
+ clientTBPid = new ClientTBPid(config.getAppKey(), tbPid.getPid(), siteId, adzoneId);
+ } else {
+ clientTBPid = tbPidService.getAndroidDefault();
+ }
+
+ } else {
+
+ clientTBPid = tbPidService.getIOSDefault();
+
+ }
+
+ } else {
+ if (acceptData.getPlatform().equalsIgnoreCase("android"))
+ clientTBPid = tbPidService.getAndroidDefault();
+ else
+ clientTBPid = tbPidService.getIOSDefault();
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("pidInfo", clientTBPid);
+ out.print(JsonUtil.loadTrueResult(data));
+ }
+
+ /**
+ * 閫�鍑虹櫥褰�
+ *
+ * @param acceptData
+ * @param uid -鐢ㄦ埛ID
+ * @param out
+ */
+ @RequestMapping(value = "logout")
+ public void logOut(AcceptData acceptData, Long uid, PrintWriter out) {
+ if (uid == null || uid == 0)
+ return;
+ if ("android".equalsIgnoreCase(acceptData.getPlatform())) {
+ DeviceActive deviceActive = deviceActiveService.getFirstActiveInfo(acceptData.getDevice());
+
+ //鏂扮増鎺ㄩ�佽В缁�
+ if (acceptData.getSystem().isNewPush()) {
+ try {
+ bDeviceTokenService.unBindUid(acceptData.getSystem().name(), StringUtil.isNullOrEmpty(acceptData.getUtdid()) ? acceptData.getDevice() : acceptData.getUtdid());
+ } catch (Exception e) {
+ logger.error("鏂扮増鎺ㄩ�佽В缁戝嚭閿欙細{}", uid, e);
+ }
+ } else {
+ // 闇�瑕佽В缁慔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(""));
+ }
+
+ /**
+ * 鏂扮増鐧诲綍 V1.5.3
+ *
+ * @param acceptData
+ * @param vcode
+ * @param phone
+ * @param code
+ * @param loginType 鐧诲綍鏂瑰紡锛� 1-鎵嬫満鐧诲綍 2-寰俊鐧诲綍
+ * @param request
+ * @param out
+ */
+ @RequestMapping(value = "loginNew", method = RequestMethod.POST)
+ public void loginNew(AcceptData acceptData, String vcode, String phone, String code, String aliAccessToken, int loginType,
+ HttpServletRequest request, PrintWriter out) {
+
+ // 2.0浠ヤ笅鐗堟湰涓嶅厑璁哥櫥褰�
+ if (!VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
+ out.print("璇峰崌绾у埌鏈�鏂扮増鏈�");
+ return;
+ }
+
+ if (!StringUtil.isNullOrEmpty(aliAccessToken)) {
+ long now = System.currentTimeMillis();
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.oneKeyLoginCount, StringUtil.Md5(StringUtil.isNullOrEmpty(acceptData.getUtdid()) ? acceptData.getDevice() : acceptData.getUtdid()));
+ redisManager.increase(key);
+ int expire = (int) ((TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd") - now) / 1000);
+ redisManager.expire(key, expire);
+ }
+
+ try {
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ UserInfo userInfo = null;
+ // 鎵嬫満鐧诲綍
+ if (loginType == 1) {
+ userInfo = userAccountService.loginPhone(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, vcode, phone, aliAccessToken, system);
+ }
+
+ // 寰俊鐧诲綍
+ if (loginType == 2) {
+ userInfo = userAccountService.loginWeiXin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system);
+ }
+
+ if (userInfo == null) {
+ out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
+ } else {
+ JSONObject data = new JSONObject();
+ data.put("userInfo", UserUtil.filterForClientUser(userInfo));
+ out.print(JsonUtil.loadTrueResult(data));
+
+ final UserInfo uuser = userInfo;
+ ThreadUtil.run(new Runnable() {
+ public void run() {
+ String device = acceptData.getDevice();
+ try {
+ // 鍚屾鑷畾涔夊鑸�
+ homeNavbarUserService.synchroDeviceToUser(uuser.getId(), device);
+ } catch (Exception e) {
+ LogHelper.errorDetailInfo(e);
+ }
+
+ // 缁戝畾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());
+ }
+ }
+ });
+ }
+
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ try {
+ LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ } catch (Exception e) {
+ out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
+ try {
+ LogHelper.errorDetailInfo(e);
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ }
+ }
+
+ /**
+ * 缁戝畾鐢佃瘽鍙风爜 V1.5.3
+ *
+ * @param acceptData
+ * @param vcode
+ * @param phone
+ * @param out
+ */
+ @RequestMapping(value = "bindPhoneNew")
+ public void bindPhoneNew(AcceptData acceptData, Long uid, String vcode, String phone, String aliAccessToken, PrintWriter out) {
+
+ BusinessSystem system = getSystem(acceptData);
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (!StringUtil.isNullOrEmpty(aliAccessToken)) {
+ long now = System.currentTimeMillis();
+ String key = RedisKeyEnum.getRedisKey(RedisKeyEnum.oneKeyLoginCount, StringUtil.Md5(StringUtil.isNullOrEmpty(acceptData.getUtdid()) ? acceptData.getDevice() : acceptData.getUtdid()));
+ redisManager.increase(key);
+ int expire = (int) ((TimeUtil.convertToTimeTemp(TimeUtil.getGernalTime(now + 1000 * 60 * 60 * 24L, "yyyyMMdd"), "yyyyMMdd") - now) / 1000);
+ redisManager.expire(key, expire);
+ }
+
+ String mobile = null;
+ try {
+ mobile = userAccountService.getMobile(vcode, phone, aliAccessToken, acceptData.getSystem(), SMSHistory.TYPE_BIND);
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getMsg()));
+ return;
+ }
+
+ try {
+ // 缁戝畾鐢ㄦ埛
+ userAccountService.bindPhoneNew(uid, mobile);
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ // 鍒ゆ柇鐢佃瘽鍙风爜鏄惁宸茬粡灏佺
+ ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.phone, mobile);
+ if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+ // 灏佺鐢ㄦ埛
+ // 灏佺缁戝畾鐨勬甯哥敤鎴�
+ if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+ userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勭數璇濆彿鐮�");
+ }
+ return;
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("userInfo", UserUtil.filterForClientUser(user));
+ out.print(JsonUtil.loadTrueResult(data));
+
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ } catch (Exception e) {
+ out.print(JsonUtil.loadFalseResult(1, "缁戝畾澶辫触"));
+ }
+ }
+
+ /**
+ * 鏇存敼寰俊
+ *
+ * @param acceptData
+ * @param uid
+ * @param code
+ * @param out
+ */
+ @RequestMapping(value = "bindWeiXin")
+ public void bindWeiXin(AcceptData acceptData, Long uid, String code, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(code)) {
+ out.print(JsonUtil.loadFalseResult("璇蜂笂浼燾ode"));
+ return;
+ }
+
+ try {
+ userAccountService.bindWeiXin(system, uid, code);
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+ // 鍒ゆ柇taoBaoUid鏄惁宸茬粡灏佺
+ ForbiddenUserIdentifyCode ic = forbiddenUserIdentifyCodeService
+ .listByTypeAndIdentifyCode(ForbiddenUserIdentifyCodeTypeEnum.wxUnionId, user.getWxUnionId());
+ if (ic != null && ic.getEffective() != null && ic.getEffective()) {
+ out.print(JsonUtil.loadFalseResult(Constant.CODE_FORBIDDEN_USER, Constant.FORBIDDEN_USER_REASON_DESC));
+ // 灏佺鐢ㄦ埛
+ // 灏佺缁戝畾鐨勬甯哥敤鎴�
+ if (user != null && user.getState() != null && user.getState() == UserInfo.STATE_NORMAL) {
+ userAccountService.forbiddenUser(uid, "灏佺锛氱粦瀹氳灏佺鐨勫井淇″彿");
+ }
+ return;
+ }
+
+ JSONObject data = new JSONObject();
+ data.put("userInfo", UserUtil.filterForClientUser(user));
+ out.print(JsonUtil.loadTrueResult(data));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+ }
+
+
+ /**
+ * 鏇存敼寰俊
+ *
+ * @param acceptData
+ * @param uid
+ * @param qqUser
+ * @param out
+ */
+ @RequestMapping(value = "bindQQ")
+ public void bindQQ(AcceptData acceptData, Long uid, String qqUser, PrintWriter out) {
+ BusinessSystem system = getSystem(acceptData);
+
+ if (system == null) {
+ out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+ return;
+ }
+
+ if (StringUtil.isNullOrEmpty(qqUser)) {
+ out.print(JsonUtil.loadFalseResult("璇蜂笂浼爍qUser"));
+ return;
+ }
+
+ String qqUserStr = StringUtil.getFromBase64(qqUser);
+ QQUserInfoVO qqUserInfo = new Gson().fromJson(qqUserStr, QQUserInfoVO.class);
+ try {
+ userAccountService.bindQQ(uid, qqUserInfo);
+
+ UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+
+ JSONObject data = new JSONObject();
+ data.put("userInfo", UserUtil.filterForClientUser(user));
+ out.print(JsonUtil.loadTrueResult(data));
+ } catch (UserAccountException e) {
+ out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+ }
+ }
+
+}
--
Gitblit v1.8.0