From eec7e789a87863c25d92c10ad5dfc22ad80c448d Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 14 七月 2020 12:36:48 +0800
Subject: [PATCH] 系统区分BUG修复

---
 fanli/src/main/java/com/yeshi/fanli/controller/client/v1/UserAccountController.java | 2273 ++++++++++++++++++++++++++++-------------------------------
 1 files changed, 1,080 insertions(+), 1,193 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 5a3db7e..9a64e6b 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,29 +1,12 @@
 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.google.gson.Gson;
 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;
+import com.yeshi.fanli.entity.bus.user.*;
 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.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;
@@ -39,1343 +22,1247 @@
 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.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.push.*;
 import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService;
-import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
-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.UserInfoModifyRecordService;
-import com.yeshi.fanli.service.inter.user.UserInfoService;
-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.RedisManager;
-import com.yeshi.fanli.util.StringUtil;
-import com.yeshi.fanli.util.ThreadUtil;
+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.WXLoginUtil;
-
 import net.sf.json.JSONObject;
+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 org.yeshi.utils.entity.ProxyIP;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import java.io.PrintWriter;
+import java.math.BigDecimal;
 
 /**
  * 璐︽埛绯荤粺
- * 
- * @author Administrator
  *
+ * @author Administrator
  */
 @Controller
 @RequestMapping("api/v1/user")
 public class UserAccountController {
 
-	@Resource
-	private UserInfoService userInfoService;
+    @Resource
+    private UserInfoService userInfoService;
 
-	@Resource
-	private OrderService orderService;
 
-	@Resource
-	private HongBaoV2Service hongBaoV2Service;
+    @Resource
+    private HongBaoV2Service hongBaoV2Service;
 
-	@Resource
-	private BindingAccountService bindingAccountService;
+    @Resource
+    private BindingAccountService bindingAccountService;
 
-	@Resource
-	private ExtractService extractService;
 
-	@Resource
-	private ConfigService configService;
+    @Resource
+    private ConfigService configService;
 
-	@Resource
-	private BusinessSystemService businessSystemService;
+    @Resource
+    private BusinessSystemService businessSystemService;
 
-	@Resource
-	private ShamUserService shamUserService;
 
-	@Resource
-	private ThreeSaleSerivce threeSaleSerivce;
+    @Resource
+    private UserAccountService userAccountService;
 
-	@Resource
-	private LostOrderService lostOrderService;
+    @Resource
+    private RedisManager redisManager;
 
-	@Resource
-	private HongBaoManageService hongBaoManageService;
+    @Resource
+    private TBPidService tbPidService;
 
-	@Resource
-	private UserAccountService userAccountService;
+    @Resource
+    private DeviceTokenHWService deviceTokenHWService;
 
-	@Resource
-	private RedisManager redisManager;
+    @Resource
+    private DeviceTokenOPPOService deviceTokenOPPOService;
 
-	@Resource
-	private TBPidService tbPidService;
+    @Resource
+    private DeviceTokenXMService deviceTokenXMService;
 
-	@Resource
-	private DeviceTokenHWService deviceTokenHWService;
+    @Resource
+    private DeviceTokenVIVOService deviceTokenVIVOService;
 
-	@Resource
-	private DeviceTokenOPPOService deviceTokenOPPOService;
+    @Resource
+    private TaoBaoUnionConfigService taoBaoUnionConfigService;
 
-	@Resource
-	private DeviceTokenXMService deviceTokenXMService;
+    @Resource
+    private SpreadUserImgService spreadUserImgService;
 
-	@Resource
-	private DeviceTokenVIVOService deviceTokenVIVOService;
+    @Resource
+    private UserShareGoodsRecordService userShareGoodsRecordService;
 
-	@Resource
-	private TaoBaoUnionConfigService taoBaoUnionConfigService;
+    @Resource
+    private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
 
-	@Resource
-	private SpreadUserImgService spreadUserImgService;
 
-	@Resource
-	private UserShareGoodsRecordService userShareGoodsRecordService;
+    @Resource
+    private UserMoneyService userMoneyService;
 
-	@Resource
-	private ForbiddenUserIdentifyCodeService forbiddenUserIdentifyCodeService;
 
-	@Resource
-	private UserSystemCouponService userSystemCouponService;
+    @Resource
+    private HomeNavbarUserService homeNavbarUserService;
 
-	@Resource
-	private UserMoneyService userMoneyService;
 
-	@Resource
-	private UserAccountBindingHistoryService userAccountBindingHistoryService;
+    @Resource
+    private UserInfoModifyRecordService userInfoModifyRecordService;
 
-	@Resource
-	private HomeNavbarUserService homeNavbarUserService;
+    @Resource
+    private DeviceActiveService deviceActiveService;
 
-	@Resource
-	private UserInfoDeleteRecordService userInfoDeleteRecordService;
+    private BusinessSystem getSystem(AcceptData acceptData) {
+        BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
+                acceptData.getPackages(), acceptData.getSystem());
+        return system;
+    }
 
-	@Resource
-	private UserTaoLiJinOriginService userTaoLiJinOriginService;
+    /**
+     * @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) {
 
-	@Resource
-	private UserInfoModifyRecordService userInfoModifyRecordService;
+        // 2.0浠ヤ笅鐗堟湰涓嶅厑璁哥櫥褰�
+        if (!VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
+            out.print("璇峰崌绾у埌鏈�鏂扮増鏈�");
+            return;
+        }
 
-	@Resource
-	private DeviceActiveService deviceActiveService;
+        BusinessSystem system =getSystem(acceptData);
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
 
-	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";
+        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;
+                }
+            }
 
-	/**
-	 * 
-	 * @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;
-		}
+            redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
+        }
 
-		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;
-				}
-			}
+        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"));
+        }
 
-			redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
-		}
+        tbUserInfo.setOpenid(tbOpenid);
+        tbUserInfo.setTbName(tbNickName);
+        tbUserInfo.setTbPic(tbPortrait);
 
-		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"));
-		}
+        try {
+            LoginResult result = userAccountService.login(request, acceptData, first, system.getAppid(), code, phone,
+                    tbUserInfo, wxinstall, loginType);
+            if (result == null)
+                LogHelper.error("login-result涓虹┖鍊�");
 
-		tbUserInfo.setOpenid(tbOpenid);
-		tbUserInfo.setTbName(tbNickName);
-		tbUserInfo.setTbPic(tbPortrait);
+            // if (result.getUser() != null)
+            // userAccountService.clearUserPortrait(result.getUser().getId());
 
-		try {
-			LoginResult result = userAccountService.login(request, acceptData, first, system.getAppid(), code, phone,
-					tbUserInfo, wxinstall, loginType);
-			if (result == null)
-				LogHelper.error("login-result涓虹┖鍊�");
+            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));
 
-			// if (result.getUser() != null)
-			// userAccountService.clearUserPortrait(result.getUser().getId());
+            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();
+                    }
+                }
+            });
 
-			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));
+        } catch (UserAccountException e) {
+            try {
+                LogHelper.error("鐧诲綍鍑洪敊:" + e.getCode() + "-" + e.getMessage());
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+            out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+        }
 
-			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());
-						// 缁戝畾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.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) {
+        // 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;
+        }
 
-	/**
-	 * 璐﹀彿娉ㄥ唽
-	 * 
-	 * @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;
+            }
 
-		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);
+        }
 
-			redisManager.clearSMSFrequencyLimit(phone, SMSHistory.TYPE_LOGIN);
-		}
+        if (StringUtil.isNullOrEmpty(phone) && StringUtil.isNullOrEmpty(tbOpenid)) {
+            out.print(JsonUtil.loadFalseResult(5, "璇蜂笂浼犳敞鍐屼俊鎭�"));
+            return;
+        }
 
-		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);
 
-		UserInfo user = new UserInfo();
-		user.setOpenid(tbOpenid);
-		user.setTbName(tbNickName);
-		user.setTbPic(tbPortrait);
+        user.setNickName(tbNickName);
+        user.setPortrait(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()));
+        }
+    }
 
-		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());
 
-	/**
-	 * 璐﹀彿鎵撻��
-	 * 
-	 * @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;
-		}
+            WeiXinUser weiXinUser = WXLoginUtil.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 (mainUid == 0 || lessUid == 0) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳墦閫氱敤鎴稩D"));
-			return;
-		}
+        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;
+        }
+    }
 
-		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()));
-		}
-	}
+    /**
+     * 缁戝畾鐢佃瘽鍙风爜
+     *
+     * @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;
+        }
 
-	/**
-	 * 鑾峰彇鐢ㄦ埛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)) {
-			WXAccountInfoDTO accountInfo = Constant.getWXAccount(acceptData.getPlatform(), acceptData.getVersion());
+        if (StringUtil.isNullOrEmpty(vcode)) {
+            out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犻獙璇佺爜"));
+            return;
+        }
 
-			WeiXinUser weiXinUser = WXLoginUtil.getWeiXinUserWithSavePortrait(code, accountInfo.getAppId(),
-					accountInfo.getAppSecret());
-			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 (StringUtil.isNullOrEmpty(phone)) {
+            out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
+            return;
+        }
 
-		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;
-		}
-	}
+        String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
 
-	/**
-	 * 缁戝畾鐢佃瘽鍙风爜
-	 * 
-	 * @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 (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;
+            }
 
-		if (StringUtil.isNullOrEmpty(vcode)) {
-			out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犻獙璇佺爜"));
-			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()));
+        }
 
-		if (StringUtil.isNullOrEmpty(phone)) {
-			out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
-			return;
-		}
+    }
 
-		String oldVCode = redisManager.getSMSVCode(phone, SMSHistory.TYPE_LOGIN);
+    /**
+     * 瑙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 (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;
-			}
+        if (StringUtil.isNullOrEmpty(phone)) {
+            out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
+            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()));
-		}
+        try {
+            userAccountService.unBindPhone(uid, phone);
+            out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
+        } 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;
-		}
+    /**
+     * 缁戝畾娣樺疂
+     *
+     * @param acceptData
+     * @param uid
+     * @param tbOpenid
+     * @param tbNickName
+     * @param tbPortrait
+     * @param tbSession  -娣樺疂鎺堟潈session
+     * @param out
+     */
 
-		if (StringUtil.isNullOrEmpty(phone)) {
-			out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼犵數璇濆彿鐮�"));
-			return;
-		}
+    @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;
+        }
 
-		try {
-			userAccountService.unBindPhone(uid, phone);
-			out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
-		} catch (UserAccountException e) {
-			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
-		}
+        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");
+        }
 
-	/**
-	 * 缁戝畾娣樺疂
-	 * 
-	 * @param acceptData
-	 * @param uid
-	 * @param tbOpenid
-	 * @param tbNickName
-	 * @param tbPortrait
-	 * @param tbSession
-	 *            -娣樺疂鎺堟潈session
-	 * @param out
-	 */
+        try {
+            userAccountService.bindTaoBao(uid, tbOpenid, tbNickName, tbPortrait);
+            UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
 
-	@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;
-		}
+            // 鍒ゆ柇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;
+                }
+            }
 
-		String taoBaoUid = "";
+            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()));
+        }
+    }
 
-		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");
-		}
+    /**
+     * 瑙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.bindTaoBao(uid, tbOpenid, tbNickName, tbPortrait);
-			UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        try {
+            userAccountService.unBindTaoBao(uid);
+            out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
+        } catch (UserAccountException e) {
+            out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
+        }
+    }
 
-			// 鍒ゆ柇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;
-				}
-			}
+    /**
+     * 鏇存敼寰俊
+     *
+     * @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;
+        }
 
-			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()));
-		}
-	}
+        if (StringUtil.isNullOrEmpty(code)) {
+            out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼燾ode"));
+            return;
+        }
 
-	/**
-	 * 瑙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.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;
+            }
 
-		try {
-			userAccountService.unBindTaoBao(uid);
-			out.print(JsonUtil.loadTrueResult("瑙g粦鎴愬姛"));
-		} catch (UserAccountException e) {
-			out.print(JsonUtil.loadFalseResult(e.getCode(), e.getMsg()));
-		}
-	}
+            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 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;
-		}
+    /**
+     * 鑾峰彇鐢佃瘽鍙风爜
+     *
+     * @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 (StringUtil.isNullOrEmpty(code)) {
-			out.print(JsonUtil.loadFalseResult(3, "璇蜂笂浼燾ode"));
-			return;
-		}
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+            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;
-			}
+        UserInfo user = userInfoService.getUserByIdWithMybatis(uid);
+        user = UserUtil.filterForClientUser(user);
+        JSONObject data = new JSONObject();
+        data.put("phone", user.getPhone());
+        out.print(JsonUtil.loadTrueResult(data));
+    }
 
-			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()));
-		}
-	}
+    @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;
+        }
 
-	/**
-	 * 鑾峰彇鐢佃瘽鍙风爜
-	 * 
-	 * @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;
+        }
 
-		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.getUserByIdWithMybatis(uid);
-		user = UserUtil.filterForClientUser(user);
-		JSONObject data = new JSONObject();
-		data.put("phone", user.getPhone());
-		out.print(JsonUtil.loadTrueResult(data));
-	}
+        UserInfo user = userInfoService.getUserById(uid);
 
-	@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 (StringUtil.isNullOrEmpty(user.getPhone())) {
+            out.print(JsonUtil.loadFalseResult(1, "娌℃湁缁戝畾鐢佃瘽鍙风爜"));
+            return;
+        }
 
-		if (uid == null || uid == 0) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
-			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(""));
+    }
 
-		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;
-		}
+    /**
+     * 鏀粯瀹濈粦瀹�
+     *
+     * @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;
+        }
 
-		UserInfo user = userInfoService.getUserById(uid);
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+            return;
+        }
 
-		boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
-		if (!bind) {
-			out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(name)) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+            return;
+        }
 
-		String key = "bindalipay-" + uid;
+        if (StringUtil.isNullOrEmpty(account)) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+            return;
+        }
 
-		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);
-		}
-	}
+        UserInfo user = userInfoService.getUserById(uid);
 
-	@RequestMapping(value = "bindalipaywithverify")
-	public void bindAlipayWithVerify(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
+        boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+        if (!bind) {
+            out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+            return;
+        }
 
-		BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
-				acceptData.getPackages());
-		if (system == null) {
-			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
-			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);
+        }
+    }
 
-		if (uid == null || uid == 0) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
-			return;
-		}
+    @RequestMapping(value = "bindalipaywithverify")
+    public void bindAlipayWithVerify(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
 
-		if (StringUtil.isNullOrEmpty(name)) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
-			return;
-		}
+        BusinessSystem system = getSystem(acceptData);
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(account)) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
-			return;
-		}
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserById(uid);
+        if (StringUtil.isNullOrEmpty(name)) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+            return;
+        }
 
-		boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
-		if (!bind) {
-			out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(account)) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+            return;
+        }
 
-		String key = "bindalipay-" + uid;
+        UserInfo user = userInfoService.getUserById(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;
-			}
+        boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+        if (!bind) {
+            out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+            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;
-			}
+        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 (Exception e) {
-			try {
-				LogHelper.errorDetailInfo(e);
-			} catch (Exception e1) {
-				e1.printStackTrace();
-			}
-			out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
-		} finally {
-			redisManager.removeCommonString(key);
-		}
-	}
+        } 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;
+            }
 
-	@RequestMapping(value = "bindalipaywithverifynew")
-	public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
+        } catch (Exception e) {
+            try {
+                LogHelper.errorDetailInfo(e);
+            } catch (Exception e1) {
+                e1.printStackTrace();
+            }
+            out.print(JsonUtil.loadFalseResult(8, "鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝楠岃瘉澶辫触锛岃鑱旂郴瀹㈡湇銆�"));
+        } finally {
+            redisManager.removeCommonString(key);
+        }
+    }
 
-		BusinessSystem system = businessSystemService.getBusinessSystemCache(acceptData.getPlatform(),
-				acceptData.getPackages());
-		if (system == null) {
-			out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
-			return;
-		}
+    @RequestMapping(value = "bindalipaywithverifynew")
+    public void bindAlipayWithVerifyNew(AcceptData acceptData, Long uid, String name, String account, PrintWriter out) {
 
-		if (uid == null || uid == 0) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
-			return;
-		}
+        BusinessSystem system = getSystem(acceptData);
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(name)) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
-			return;
-		}
+        if (uid == null || uid == 0) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犵敤鎴稩D"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(account)) {
-			out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(name)) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂瀹炲悕鍚嶇О"));
+            return;
+        }
 
-		UserInfo user = userInfoService.getUserById(uid);
+        if (StringUtil.isNullOrEmpty(account)) {
+            out.print(JsonUtil.loadFalseResult(1, "璇蜂笂浼犳敮浠樺疂璐﹀彿"));
+            return;
+        }
 
-		boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
-		if (!bind) {
-			out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
-			return;
-		}
+        UserInfo user = userInfoService.getUserById(uid);
 
-		String key = "bindalipay-" + uid;
+        boolean bind = redisManager.isBindAlipayAccountSMSStateValid(user.getPhone());
+        if (!bind) {
+            out.print(JsonUtil.loadFalseResult(90002, "鎵嬫満楠岃瘉瓒呮椂"));
+            return;
+        }
 
-		if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(key))) {
-			out.print(JsonUtil.loadFalseResult(1001, "鏈嶅姟鍣ㄧ箒蹇欙紝璇风◢鍚庨噸璇�"));
-			return;
-		}
-		redisManager.cacheCommonString(key, "1", 120);
+        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;
-		}
+        // 鏀粯瀹濈粦瀹�
+        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櫎锛屾暚璇风煡鏅撱��"));
+        // 鍙互灞曠ず缁欑敤鎴风湅鐨勯敊璇爜
+        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) {
-			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;
-			}
+            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 (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);
-		}
-	}
+        } 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) {
+    /**
+     * 鑾峰彇鐢ㄦ埛璧勯噾璇︽儏
+     *
+     * @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);
-		}
+        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);
+        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);
-		}
+        // 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));
-	}
+        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();
-				}
+    /**
+     * 鑾峰彇鐢ㄦ埛鐨凱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 {
+            } else {
 
-				clientTBPid = tbPidService.getIOSDefault();
+                clientTBPid = tbPidService.getIOSDefault();
 
-			}
+            }
 
-		} else {
-			if (acceptData.getPlatform().equalsIgnoreCase("android"))
-				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));
-	}
+        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());
-			// 闇�瑕佽В缁慔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(""));
-	}
+    /**
+     * 閫�鍑虹櫥褰�
+     *
+     * @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());
+            // 闇�瑕佽В缁慔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, int loginType,
-			HttpServletRequest request, PrintWriter out) {
+    /**
+     * 鏂扮増鐧诲綍 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;
-			}
+        // 2.0浠ヤ笅鐗堟湰涓嶅厑璁哥櫥褰�
+        if (!VersionUtil.greaterThan_2_0(acceptData.getPlatform(), acceptData.getVersion())) {
+            out.print("璇峰崌绾у埌鏈�鏂扮増鏈�");
+            return;
+        }
 
-			UserInfo userInfo = null;
-			// 鎵嬫満鐧诲綍
-			if (loginType == 1) {
-				userInfo = userAccountService.loginPhone(request, loginType, vcode, phone, system.getAppid());
-			}
+        try {
+            BusinessSystem system = getSystem(acceptData);
+            if (system == null) {
+                out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+                return;
+            }
 
-			// 寰俊鐧诲綍
-			if (loginType == 2) {
-				userInfo = userAccountService.loginWinXin(request, acceptData, loginType, code, system.getAppid());
-			}
+            UserInfo userInfo = null;
+            // 鎵嬫満鐧诲綍
+            if (loginType == 1) {
+                userInfo = userAccountService.loginPhone(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, vcode, phone, system);
+            }
 
-			if (userInfo == null) {
-				out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
-			} else {
-				JSONObject data = new JSONObject();
-				data.put("userInfo", UserUtil.filterForClientUser(userInfo));
-				out.print(JsonUtil.loadTrueResult(data));
+            // 寰俊鐧诲綍
+            if (loginType == 2) {
+                userInfo = userAccountService.loginWeiXin(new ProxyIP(request.getRemoteHost(), request.getRemotePort()), loginType, code, system);
+            }
 
-				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);
-						}
+            if (userInfo == null) {
+                out.print(JsonUtil.loadFalseResult("鐧诲綍澶辫触"));
+            } else {
+                JSONObject data = new JSONObject();
+                data.put("userInfo", UserUtil.filterForClientUser(userInfo));
+                out.print(JsonUtil.loadTrueResult(data));
 
-						/* 鍚屾鏈櫥褰曚箣鍓嶈澶囨娊濂栨暟鎹� */
-						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();
-						}
+                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());
-						}
-					}
-				});
-			}
+                        // 缁戝畾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.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();
-			}
-		}
-	}
+        } 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, PrintWriter out) {
+    /**
+     * 缁戝畾鐢佃瘽鍙风爜 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;
-		}
+        BusinessSystem system = getSystem(acceptData);
+        if (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(vcode)) {
-			out.print(JsonUtil.loadFalseResult("楠岃瘉鐮佷笉鑳戒负绌�"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(vcode)) {
+            out.print(JsonUtil.loadFalseResult("楠岃瘉鐮佷笉鑳戒负绌�"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(phone)) {
-			out.print(JsonUtil.loadFalseResult("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(phone)) {
+            out.print(JsonUtil.loadFalseResult("鐢佃瘽鍙风爜涓嶈兘涓虹┖"));
+            return;
+        }
 
-		phone = phone.replaceAll(" ", "");
+        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);
-		}
+        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);
+        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;
-			}
+            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));
+            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, "缁戝畾澶辫触"));
-		}
-	}
+        } 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());
+    /**
+     * 鏇存敼寰俊
+     *
+     * @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 (system == null) {
+            out.print(JsonUtil.loadFalseResult("绯荤粺涓嶅瓨鍦�"));
+            return;
+        }
 
-		if (StringUtil.isNullOrEmpty(code)) {
-			out.print(JsonUtil.loadFalseResult("璇蜂笂浼燾ode"));
-			return;
-		}
+        if (StringUtil.isNullOrEmpty(code)) {
+            out.print(JsonUtil.loadFalseResult("璇蜂笂浼燾ode"));
+            return;
+        }
 
-		try {
-			userAccountService.bindWeiXin(acceptData, uid, code);
+        try {
+            userAccountService.bindWeiXin(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;
-			}
+            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()));
-		}
-	}
+            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