mobile

来源:互联网 发布:知金教育好吗 编辑:程序博客网 时间:2024/04/30 00:10
package com.terrace.action.login;import java.util.Date;import java.util.Enumeration;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Random;import javax.annotation.Resource;import org.apache.struts2.convention.annotation.InterceptorRef;import org.apache.struts2.convention.annotation.InterceptorRefs;import org.apache.struts2.convention.annotation.ParentPackage;import org.springframework.util.StringUtils;import com.opensymphony.oscache.util.StringUtil;import com.terrace.dao.ActivateCodeGaintDao;import com.terrace.entity.login.Account;import com.terrace.entity.login.AccountBinding;import com.terrace.entity.login.AccountBindingLog;import com.terrace.entity.login.AccountMobile;import com.terrace.entity.login.ActivateCodeGaint;import com.terrace.entity.login.Commonality;import com.terrace.entity.login.Game;import com.terrace.entity.login.GameDocking;import com.terrace.entity.login.PhoneMessage;import com.terrace.service.AccountBindingLogService;import com.terrace.service.AccountBindingService;import com.terrace.service.AccountMobileService;import com.terrace.service.AccountService;import com.terrace.service.CommonalityService;import com.terrace.service.GameDockingService;import com.terrace.service.GameService;import com.terrace.service.PhoneMessageService;import com.terrace.util.CommonUtil;import com.terrace.util.DateUtil;import com.terrace.util.DesUtil;import com.terrace.util.GameUtil;import com.terrace.util.JsonUtil;import com.terrace.util.SysCommonUtil;import com.terrace.vo.AccountMobileVo;import com.terrace.vo.ActivateCodeGaintVo;import com.terrace.vo.GameVo;import com.terrace.util.IpCountUtil;@ParentPackage("login")@InterceptorRefs({ @InterceptorRef(value = "ipCountInterceptor"), @InterceptorRef(value = "loginStack") })public class MobileAction extends BaseTerraceAction {private static final long serialVersionUID = 1L;private static final String mobileKey = "leiting";private String serial; // 手机IMEI码private String phoneNum; // 手机号码private String phoneModel; // 手机型号// 20150331 更改为游戏标识yyxy,由Integer 更改为Stringprivate String game; // 所属的手机游戏private String sid; // 用户唯一标示码private String username; // 用户名private String userpwd; // 用户密码private String key; // 通行验证private String cookie; // cookie 时效性验证private String regMethod; // 注册方式private String phoneActiveKey;// 手机验证码private Integer os;private String needActivate; // 该游戏是否需要激活码private String channelNo;// 渠道编号private String media;// 媒体广告跟踪字段// @Resource(name = "commonalityServiceImpl")// private CommonalityService commonalityService;@Resource(name = "accountServiceImpl")private AccountService accountService;@Resource(name = "accountMobileServiceImpl")private AccountMobileService accountMobileService;@Resource(name = "commonalityServiceImpl")private CommonalityService commonalityService;@Resource(name = "accountBindingServiceImpl")private AccountBindingService accountBindingService;@Resource(name = "phoneMessageServiceImpl")private PhoneMessageService phoneMessageService;@Resource(name = "gameDockingServiceImpl")private GameDockingService gameDockingService;@Resource(name = "gameServiceImpl")private GameService gameService;@Resource(name = "activateCodeGaintDaoImpl")private ActivateCodeGaintDao activateCodeGaintDao;@Resource(name = "accountBindingLogServiceImpl")private AccountBindingLogService accountBindingLogService;// 手游快速注册public String fastRegister() {Map<String, Object> rMap = new HashMap<String, Object>();try {// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "1");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 随机生成账号及密码// Commonality regCommon =// commonalityService.getCommonalityByName(SysCommonUtil.REGISTER_COMMON);String ip = getRemoteIpStr();Random random = new Random();Integer pwd = random.nextInt(899999);pwd = pwd + 100000;String uName = CommonUtil.getEightRandomByUUID();Account fastAccount = new Account();fastAccount.setUsername(uName);fastAccount.setUserpwd(pwd.toString());fastAccount.setUserpwd(GameUtil.encryptAccountPwd(fastAccount.getUsername(), fastAccount.getUserpwd()));fastAccount.setIp(ip);fastAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);fastAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);fastAccount.setIsFinish(1);fastAccount.setAdult("0");fastAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);fastAccount.setLockTime("0");fastAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);fastAccount.setComefrom(game); // 注册来源// 验证用户名Account persistent = accountService.getAccountByUsername(fastAccount.getUsername());if (persistent != null) {rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 新增账号accountService.save(fastAccount);accountService.flush();// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setIsFast(1);fastMobile.setUsername(fastAccount.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());accountMobileService.save(fastMobile);rMap.put("username", uName);rMap.put("userpwd", pwd.toString());rMap.put("sid", fastMobile.getSid());rMap.put("bind", "2"); // 未绑定标志String cookie = GameUtil.encryptMobileAccountCookie(fastMobile.getUsername(), fastMobile.getSid(),mobileKey);rMap.put("cookie", cookie);rMap.put(STATUS_PARAMETER_NAME, "3");return ajaxJsonp(rMap);} catch (Exception e) {logger.error("手游快速注册异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}/** * 手游快速注册--新版V2.0 2015-06-26 *  * @author huangy2 *  * @return */// 手游快速注册public String fastRegisterV2() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map<String, Object> rMap = new HashMap<String, Object>();try {// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "3");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");// log日志记录return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}// 随机生成账号及密码// Commonality regCommon =// commonalityService.getCommonalityByName(SysCommonUtil.REGISTER_COMMON);String ip = getRemoteIpStr();Random random = new Random();Integer pwd = random.nextInt(899999);pwd = pwd + 100000;String uName = CommonUtil.getEightRandomByUUID();Account fastAccount = new Account();fastAccount.setUsername(uName);fastAccount.setUserpwd(pwd.toString());fastAccount.setUserpwd(GameUtil.encryptAccountPwd(fastAccount.getUsername(), fastAccount.getUserpwd()));fastAccount.setIp(ip);fastAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);fastAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);fastAccount.setIsFinish(1);fastAccount.setAdult("0");fastAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);fastAccount.setLockTime("0");fastAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);fastAccount.setComefrom(game); // 注册来源// 验证用户名Account persistent = accountService.getAccountByUsername(fastAccount.getUsername());if (persistent != null) {rMap.put(STATUS_PARAMETER_NAME, "6");return ajaxJsonp(rMap);}// 新增账号accountService.save(fastAccount);accountService.flush();// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setPhone(phoneNum);fastMobile.setPhoneModel(phoneModel);fastMobile.setOs(os);fastMobile.setIsFast(1);fastMobile.setUsername(fastAccount.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setMedia(media);accountMobileService.save(fastMobile);rMap.put("username", uName);rMap.put("userpwd", pwd.toString());rMap.put("sid", fastMobile.getSid());rMap.put("bind", "2"); // 未绑定标志String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);rMap.put(STATUS_PARAMETER_NAME, "1");return ajaxJsonp(rMap);} catch (Exception e) {logger.error("手游快速注册异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}/** * 手游快速注册--通用接口 *  * @author huangy2 *  * @return */// 手游快速注册public String fastRegisterPub() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map<String, Object> rMap = new HashMap<String, Object>();try {// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "3");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}// 随机生成账号及密码// Commonality regCommon =// commonalityService.getCommonalityByName(SysCommonUtil.REGISTER_COMMON);String ip = getRemoteIpStr();Random random = new Random();Integer pwd = random.nextInt(899999);pwd = pwd + 100000;String uName = CommonUtil.getEightRandomByUUID();Account fastAccount = new Account();fastAccount.setUsername(uName);fastAccount.setUserpwd(pwd.toString());fastAccount.setUserpwd(GameUtil.encryptAccountPwd(fastAccount.getUsername(), fastAccount.getUserpwd()));fastAccount.setIp(ip);fastAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);fastAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);fastAccount.setIsFinish(1);fastAccount.setAdult("0");fastAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);fastAccount.setLockTime("0");fastAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);fastAccount.setComefrom(game); // 注册来源// 验证用户名Account persistent = accountService.getAccountByUsername(fastAccount.getUsername());if (persistent != null) {rMap.put(STATUS_PARAMETER_NAME, "6");return ajaxJsonp(rMap);}// 新增账号accountService.save(fastAccount);accountService.flush();// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setPhone(phoneNum);fastMobile.setPhoneModel(phoneModel);fastMobile.setOs(os);fastMobile.setIsFast(1);fastMobile.setUsername(fastAccount.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setMedia(media);accountMobileService.save(fastMobile);rMap.put("username", uName);rMap.put("userpwd", pwd.toString());rMap.put("sid", fastMobile.getSid());rMap.put("bind", "2"); // 未绑定标志String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, channelNo);rMap.put("cookie", cookie);rMap.put(STATUS_PARAMETER_NAME, "1");return ajaxJsonp(rMap);} catch (Exception e) {logger.error("手游快速注册异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 快速登陆public String fastLogin() {Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(sid)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 查证数据AccountMobileVo amVo = new AccountMobileVo();amVo.setSid(sid);amVo.setGame(game);List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "3");String cookie = GameUtil.encryptMobileAccountCookie(amObj.getUsername(), amObj.getSid(), mobileKey);rMap.put("cookie", cookie);Account aObj = accountService.getAccountByUsername(amObj.getUsername());if (aObj != null) {Commonality bindingStatusCommonality = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);Map<String, String> searchParams = new HashMap<String, String>();searchParams.put("account", aObj.getId());searchParams.put("status", bindingStatusCommonality.getId());List<AccountBinding> accountBindingList = accountBindingService.searchList(searchParams);if (accountBindingList.size() > 0) {rMap.put("bind", "1"); // 绑定标志} else {rMap.put("bind", "2"); // 未绑定标志}}return ajaxJsonp(rMap);}}} catch (Exception e) {logger.error("快速登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证登陆public String checkLogin() {Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(sid)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 时效性验证标识// if (StringUtil.isEmpty(cookie)) {// rMap.put(STATUS_PARAMETER_NAME, "7");// return ajaxJsonp(rMap);// }// 查证数据AccountMobileVo amVo = new AccountMobileVo();amVo.setSid(sid);amVo.setGame(game);List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {// 时效性验证标识// String ucookie =// GameUtil.encryptMobileAccountCookie(amObj.getUsername(),// amObj.getSid(), mobileKey);// if(cookie.equals(ucookie)){rMap.put(STATUS_PARAMETER_NAME, "3");return ajaxJsonp(rMap);// }else{// rMap.put(STATUS_PARAMETER_NAME, "8");// return ajaxJsonp(rMap);// }}}} catch (Exception e) {logger.error("验证登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 普通登陆public String login() {// 追加IP防御// IpCountUtil.addIpCount(getRemoteIpStr(), getUri(), 100);// 判断IP是否被禁止的if (IpCountUtil.checkIp(getRemoteIpStr())) {return "error";}Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}if (!"modx".equals(game) && !"nsjx".equals(game)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// 2015-09-21启用if (StringUtil.isEmpty(key)) {if (!"modx".equals(game) && !"nsjx".equals(game)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}} else {String msg = username + "|" + userpwd + "|" + game;String c = GameUtil.encryptMsgNoDate(msg, mobileKey);if (!c.equals(key)) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}}// 验证账号Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}Commonality bindingStatusCommonality = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);Map<String, String> searchParams = new HashMap<String, String>();searchParams.put("account", aObj.getId());searchParams.put("status", bindingStatusCommonality.getId());List<AccountBinding> accountBindingList = accountBindingService.searchList(searchParams);if (accountBindingList.size() > 0) {rMap.put("bind", "1"); // 绑定标志} else {rMap.put("bind", "2"); // 未绑定标志}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 判断激活游戏没有AccountMobileVo amVo = new AccountMobileVo();amVo.setUsername(username.toLowerCase());amVo.setGame(game);List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "3");rMap.put("sid", amObj.getSid());String cookie = GameUtil.encryptMobileAccountCookie(amObj.getUsername(), amObj.getSid(), mobileKey);rMap.put("cookie", cookie);return ajaxJsonp(rMap);}} else {// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);fastMobile.setUsername(aObj.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());accountMobileService.save(fastMobile);rMap.put(STATUS_PARAMETER_NAME, "3");rMap.put("sid", fastMobile.getSid());String cookie = GameUtil.encryptMobileAccountCookie(fastMobile.getUsername(), fastMobile.getSid(),mobileKey);rMap.put("cookie", cookie);return ajaxJsonp(rMap);}} catch (Exception e) {logger.error("普通登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 普通注册public String register() {Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "1");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 验证账号是否存在Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {rMap.put("status", "6");return ajaxJsonp(rMap);}// 创建账号// Commonality regCommon =// commonalityService.getCommonalityByName(SysCommonUtil.REGISTER_COMMON);String ip = getRemoteIpStr();Account commonAccount = new Account();commonAccount.setUsername(username.toLowerCase());commonAccount.setUserpwd(userpwd.toString());commonAccount.setUserpwd(GameUtil.encryptAccountPwd(commonAccount.getUsername(), commonAccount.getUserpwd()));commonAccount.setIp(ip);commonAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);commonAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);commonAccount.setIsFinish(1);commonAccount.setAdult("0");commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");commonAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);commonAccount.setComefrom(game); // 注册来源// 新增账号accountService.save(commonAccount);accountService.flush();// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setIsFast(2);fastMobile.setUsername(commonAccount.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());accountMobileService.save(fastMobile);rMap.put("sid", fastMobile.getSid());rMap.put("bind", "2"); // 未绑定标志rMap.put(STATUS_PARAMETER_NAME, "3");String cookie = GameUtil.encryptMobileAccountCookie(fastMobile.getUsername(), fastMobile.getSid(),mobileKey);rMap.put("cookie", cookie);return ajaxJsonp(rMap);} catch (Exception e) {logger.error("普通注册异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}/** * 手游手机注册 ------手机验证码 username 用户名 -手机号、邮箱 userpwd 加密后的密码 regMethod 注册方式 serial 手机IMEI码 game 游戏 phoneActiveKey 手机验证码 *  * @return */@SuppressWarnings({ "rawtypes", "unchecked" })public String phoneRegister() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map rMap = new HashMap();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "1");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 先验证账号格式是否正确if (!username.matches("^[a-zA-Z0-9_@.]+$") || username.length() > 32) {rMap.put(STATUS_PARAMETER_NAME, "5");rMap.put(MESSAGE_PARAMETER_NAME, "账号名必须由字母、数字、点号、@符号或下划线组成,长度小于32位!");return ajaxJsonp(rMap);}String msg = username;msg += "|" + userpwd;msg += "|";if (StringUtil.isEmpty(serial)) {msg += "null";} else {msg += serial;}msg += "|" + game;if (!StringUtil.isEmpty(sid)) {msg += "|" + sid;}Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}username = username.toLowerCase();// 验证账号是否存在Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {rMap.put("status", "6");return ajaxJsonp(rMap);}// 数据初始化String ip = getRemoteIpStr();// 创建账号Account commonAccount = new Account();commonAccount.setUsername(username);commonAccount.setIp(ip);commonAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);commonAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);commonAccount.setIsFinish(1);// 通过身份证计算是否成年标志commonAccount.setAdult("0");// 默认是未成年commonAccount.setComefrom(game); // 注册来源// 手机注册if (regMethod.equals(SysCommonUtil.REGISTER_MOBILE_VALUE)) {// 验证手机验证码Commonality registerTypePhoneMessage = commonalityService.getCommonalityByName(SysCommonUtil.PHONE_TYPE_REGISTER);// 下行验证Map downSearchParams = new HashMap();downSearchParams.put("receivePhone", username);downSearchParams.put("type", registerTypePhoneMessage.getId());downSearchParams.put("validateTime", DateUtil.getDateTimeStr(new Date()));downSearchParams.put("usedFlag", 0);List phoneMessageList = phoneMessageService.searchList(downSearchParams);PhoneMessage phoneMessageListObj = null;if (phoneMessageList != null && phoneMessageList.size() > 0) {phoneMessageListObj = (PhoneMessage) phoneMessageList.get(0);}if (phoneMessageListObj != null) {if (phoneActiveKey.equals(phoneMessageListObj.getCheckKey())) {// 标志校验码使用状态phoneMessageListObj.setUsedFlag(1);phoneMessageService.update(phoneMessageListObj);phoneMessageService.flush();// 初始化数据commonAccount.setRegMethod(SysCommonUtil.REGISTER_MOBILE_VALUE);commonAccount.setPhoneNum(username);commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();// 手机绑定Commonality phoneBindingType = commonalityService.getCommonalityByName(SysCommonUtil.ACCOUNT_SECURITY_BINDING_PHONE);Commonality phoneBindingStatus = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);AccountBinding phoneBinding = new AccountBinding();phoneBinding.setAccount(commonAccount);phoneBinding.setBinding(commonAccount.getPhoneNum());phoneBinding.setType(phoneBindingType);phoneBinding.setStatus(phoneBindingStatus);accountBindingService.save(phoneBinding);accountBindingService.flush();// 激活手游账号rMap = activatePhoneGameAccount(4, "1");return ajaxJsonp(rMap);} else {rMap.put("status", "2");rMap.put("message", "手机校验码错误");return ajaxJsonp(rMap);}} else {rMap.put("status", "2");rMap.put("message", "校验码不存在或已过期");return ajaxJsonp(rMap);}}// 邮箱注册if (regMethod.equals(SysCommonUtil.REGISTER_EMAIL_VALUE)) {// 初始化数据commonAccount.setRegMethod(SysCommonUtil.REGISTER_EMAIL_VALUE);commonAccount.setEmail(username);commonAccount.setRegisterEmail(username);commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();/**** 邮箱的绑定放在二期做 ***/// 默认的邮箱绑定// Commonality emailBindingType =// commonalityService.getCommonalityByName(SysCommonUtil.ACCOUNT_SECURITY_BINDING_EMAIL);// Commonality emailBindingStatus =// commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_UNUSE);// AccountBinding emailBinding = new AccountBinding();// emailBinding.setAccount(commonAccount);// emailBinding.setBinding(commonAccount.getEmail());// emailBinding.setType(emailBindingType);// emailBinding.setStatus(emailBindingStatus);// accountBindingService.save(emailBinding);// accountBindingService.flush();// 发送邮件绑定通知// accountBindingService.sendBindMail(emailBinding);// 激活手游账号rMap = activatePhoneGameAccount(5, "2");return ajaxJsonp(rMap);}// 普通注册if (regMethod.equals(SysCommonUtil.REGISTER_COMMON_VALUE)) {// 初始化数据commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();// 激活手游账号rMap = activatePhoneGameAccount(2, "2");return ajaxJsonp(rMap);}} catch (Exception e) {logger.error("普通注册异常!", e);}rMap.put("status", "0");rMap.put("message", "注册失败,请重新注册!");return ajaxJsonp(rMap);}/** * 手游手机绑定注册 * username 用户名 -手机号、邮箱  * userpwd 加密后的密码  * regMethod 注册方式 * serial 手机IMEI码  * game 游戏  * phoneActiveKey 手机验证码 *  * @return */@SuppressWarnings({ "rawtypes", "unchecked" })public String phoneBindRegister() {// log日志记录saveLog("手游手机绑定注册", getHttpParams().toString(), 1);Map rMap = new HashMap();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}//if (StringUtil.isEmpty(serial)) {//rMap.put(STATUS_PARAMETER_NAME, "1");//// log日志记录//saveLog(rMap.toString(), "android注册-" + username, 2);//return ajaxJsonp(rMap);//}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}// 先验证账号格式是否正确if (!username.matches("^[a-zA-Z0-9_@.]+$") || username.length() > 32) {rMap.put(STATUS_PARAMETER_NAME, "5");rMap.put(MESSAGE_PARAMETER_NAME, "账号名必须由字母、数字、点号、@符号或下划线组成,长度小于32位!");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}String msg = username;msg += "|" + userpwd;msg += "|";if (StringUtil.isEmpty(serial)) {msg += "null";}else {msg += serial;}msg += "|" + game;//if (!StringUtil.isEmpty(sid)) {//msg += "|" + sid;//}Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();        gameVo.setGameSign(game);        gameVo.setUseSort(false);        gameVo.setPager(false);        List<Game> nowGames = gameService.searchList(gameVo);        if (nowGames == null || nowGames.size()==0) {        // 该游戏不存在        rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");// log日志记录saveLog(rMap.toString(),"android注册-"+username,2);return ajax(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}username = username.toLowerCase();// 验证账号是否存在Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {rMap.put("status", "6");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}// 数据初始化String ip = getRemoteIpStr();// 创建账号Account commonAccount = new Account();commonAccount.setUsername(username);commonAccount.setIp(ip);commonAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);commonAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);commonAccount.setIsFinish(1);// 通过身份证计算是否成年标志commonAccount.setAdult("0");// 默认是未成年commonAccount.setComefrom(game); // 注册来源// 手机注册if (regMethod.equals(SysCommonUtil.REGISTER_MOBILE_VALUE)) {// 验证手机验证码Commonality registerTypePhoneMessage = commonalityService.getCommonalityByName(SysCommonUtil.PHONE_TYPE_REGISTER);// 下行验证Map downSearchParams = new HashMap();downSearchParams.put("receivePhone", username);downSearchParams.put("type", registerTypePhoneMessage.getId());downSearchParams.put("validateTime", DateUtil.getDateTimeStr(new Date()));downSearchParams.put("usedFlag", 0);List phoneMessageList = phoneMessageService.searchList(downSearchParams);PhoneMessage phoneMessageListObj = null;if (phoneMessageList != null && phoneMessageList.size() > 0) {phoneMessageListObj = (PhoneMessage) phoneMessageList.get(0);}if (phoneMessageListObj != null) {if (phoneActiveKey.equals(phoneMessageListObj.getCheckKey())) {// 标志校验码使用状态phoneMessageListObj.setUsedFlag(1);phoneMessageService.update(phoneMessageListObj);phoneMessageService.flush();// 初始化数据commonAccount.setRegMethod(SysCommonUtil.REGISTER_MOBILE_VALUE);commonAccount.setPhoneNum(username);commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();// 手机绑定Commonality phoneBindingType = commonalityService.getCommonalityByName(SysCommonUtil.ACCOUNT_SECURITY_BINDING_PHONE);Commonality phoneBindingStatus = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);AccountBinding phoneBinding = new AccountBinding();phoneBinding.setAccount(commonAccount);phoneBinding.setBinding(commonAccount.getPhoneNum());phoneBinding.setType(phoneBindingType);phoneBinding.setStatus(phoneBindingStatus);accountBindingService.save(phoneBinding);accountBindingService.flush();// 激活手游账号rMap = activatePhoneGameAccount(4, "1");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);} else {rMap.put("status", "2");rMap.put("message", "手机校验码错误");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}} else {rMap.put("status", "2");rMap.put("message", "校验码不存在或已过期");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}}// 邮箱注册if (regMethod.equals(SysCommonUtil.REGISTER_EMAIL_VALUE)) {// 初始化数据commonAccount.setRegMethod(SysCommonUtil.REGISTER_EMAIL_VALUE);commonAccount.setEmail(username);commonAccount.setRegisterEmail(username);commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();/**** 邮箱的绑定放在二期做 ***/// 默认的邮箱绑定// Commonality emailBindingType =// commonalityService.getCommonalityByName(SysCommonUtil.ACCOUNT_SECURITY_BINDING_EMAIL);// Commonality emailBindingStatus =// commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_UNUSE);// AccountBinding emailBinding = new AccountBinding();// emailBinding.setAccount(commonAccount);// emailBinding.setBinding(commonAccount.getEmail());// emailBinding.setType(emailBindingType);// emailBinding.setStatus(emailBindingStatus);// accountBindingService.save(emailBinding);// accountBindingService.flush();// 发送邮件绑定通知// accountBindingService.sendBindMail(emailBinding);// 激活手游账号rMap = activatePhoneGameAccount(5, "2");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);if (sid != null && !"".equals(sid) && cookie != null && !"".equals(cookie) && game != null && !"".equals(game)) {String c = GameUtil.encryptMobileBindCookie(sid, mobileKey);if (!c.equals(cookie)) {rMap.put(STATUS_PARAMETER_NAME, "2");rMap.put(MESSAGE_PARAMETER_NAME, "cookie验证失败,请返回重试!");return ajaxJsonp(rMap);}// 绑定手游账号AccountMobileVo vo = new AccountMobileVo();vo.setSid(sid);vo.setGame(game);List<AccountMobile> list = accountMobileService.searchList(vo);if (list==null || list.size()==0) {rMap.put("status", "0");rMap.put("message", "账号不存在");return ajaxJsonp(rMap);}AccountMobile accountMobile = list.get(0);String usernameBefore=accountMobile.getUsername();// 获取目标账号信息Account targetAccount = accountService.getAccountByUsername(username);if (targetAccount == null) {rMap.put("status", "0");rMap.put("message", "账号不存在");return ajaxJsonp(rMap);}int isFast = 2;if ("phone".equals(targetAccount.getRegMethod())) {// 手机注册isFast = 4;} else if ("email".equals(targetAccount.getRegMethod())) {// 邮箱注册isFast = 5;}// 替换原有的usernameaccountMobile.setUsername(username);accountMobile.setIsFast(isFast);accountMobileService.update(accountMobile);accountMobileService.flush();rMap.put("sid", accountMobile.getSid());rMap.put("bind", 1); // 绑定标志 1-绑定 2-未绑定rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.encryptMobileAccountCookie(accountMobile.getUsername(), accountMobile.getSid(),mobileKey);rMap.put("cookie", cookie);// 绑定账号完成存储数据AccountBindingLog accountbindinglog =new AccountBindingLog();accountbindinglog.setUsernameBefore(usernameBefore);accountbindinglog.setUsernameAfter(username);accountbindinglog.setIp(ip);accountbindinglog.setType("email");accountbindinglog.setImei(serial);//存储绑定账号logaccountBindingLogService.save(accountbindinglog);accountBindingLogService.flush();return ajaxJsonp(rMap);} else {rMap.put(STATUS_PARAMETER_NAME, "2");rMap.put(MESSAGE_PARAMETER_NAME, "参数缺失!");return ajaxJsonp(rMap);}}// 普通注册if (regMethod.equals(SysCommonUtil.REGISTER_COMMON_VALUE)) {// 初始化数据commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();// 激活手游账号rMap = activatePhoneGameAccount(2, "2");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}} catch (Exception e) {logger.error("普通注册异常!", e);}rMap.put("status", "0");rMap.put("message", "注册失败,请重新注册!");// log日志记录saveLog(rMap.toString(), "android注册-" + username, 2);return ajaxJsonp(rMap);}/** * 激活手游账号 *  * @return */@SuppressWarnings({ "rawtypes", "unchecked" })public Map activatePhoneGameAccount(int isFast, String bind) {Map rMap = new HashMap();AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setIsFast(isFast);fastMobile.setUsername(username);fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setOs(os);fastMobile.setPhoneModel(phoneModel);fastMobile.setMedia(media);if (regMethod.equals(SysCommonUtil.REGISTER_MOBILE_VALUE)) {fastMobile.setPhone(username);}accountMobileService.save(fastMobile);rMap.put("sid", fastMobile.getSid());rMap.put("bind", bind); // 绑定标志 1-绑定 2-未绑定rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);return rMap;}/** * 手游注册 -- 通用 username 用户名 -手机号、邮箱 userpwd 加密后的密码 regMethod 注册方式 serial 手机IMEI码 game 游戏 phoneActiveKey 手机验证码 *  * @return */@SuppressWarnings({ "rawtypes", "unchecked" })public String phoneRegisterPub() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map rMap = new HashMap();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "1");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 先验证账号格式是否正确if (!username.matches("^[a-zA-Z0-9_@.]+$") || username.length() > 32) {rMap.put(STATUS_PARAMETER_NAME, "5");rMap.put(MESSAGE_PARAMETER_NAME, "账号名必须由字母、数字、点号、@符号或下划线组成,长度小于32位!");return ajaxJsonp(rMap);}String msg = username;msg += "|" + userpwd;msg += "|";if (StringUtil.isEmpty(serial)) {msg += "null";} else {msg += serial;}msg += "|" + game;if (!StringUtil.isEmpty(sid)) {msg += "|" + sid;}Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}username = username.toLowerCase();// 验证账号是否存在Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {rMap.put("status", "6");return ajaxJsonp(rMap);}// 数据初始化String ip = getRemoteIpStr();// 创建账号Account commonAccount = new Account();commonAccount.setUsername(username);commonAccount.setIp(ip);commonAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);commonAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);commonAccount.setIsFinish(1);// 通过身份证计算是否成年标志commonAccount.setAdult("0");// 默认是未成年commonAccount.setComefrom(game); // 注册来源// 手机注册if (regMethod.equals(SysCommonUtil.REGISTER_MOBILE_VALUE)) {// 验证手机验证码Commonality registerTypePhoneMessage = commonalityService.getCommonalityByName(SysCommonUtil.PHONE_TYPE_REGISTER);// 下行验证Map downSearchParams = new HashMap();downSearchParams.put("receivePhone", username);downSearchParams.put("type", registerTypePhoneMessage.getId());downSearchParams.put("validateTime", DateUtil.getDateTimeStr(new Date()));downSearchParams.put("usedFlag", 0);List phoneMessageList = phoneMessageService.searchList(downSearchParams);PhoneMessage phoneMessageListObj = null;if (phoneMessageList != null && phoneMessageList.size() > 0) {phoneMessageListObj = (PhoneMessage) phoneMessageList.get(0);}if (phoneMessageListObj != null) {if (phoneActiveKey.equals(phoneMessageListObj.getCheckKey())) {// 标志校验码使用状态phoneMessageListObj.setUsedFlag(1);phoneMessageService.update(phoneMessageListObj);phoneMessageService.flush();// 初始化数据commonAccount.setRegMethod(SysCommonUtil.REGISTER_MOBILE_VALUE);commonAccount.setPhoneNum(username);commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();// 手机绑定Commonality phoneBindingType = commonalityService.getCommonalityByName(SysCommonUtil.ACCOUNT_SECURITY_BINDING_PHONE);Commonality phoneBindingStatus = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);AccountBinding phoneBinding = new AccountBinding();phoneBinding.setAccount(commonAccount);phoneBinding.setBinding(commonAccount.getPhoneNum());phoneBinding.setType(phoneBindingType);phoneBinding.setStatus(phoneBindingStatus);accountBindingService.save(phoneBinding);accountBindingService.flush();// 激活手游账号rMap = activatePhoneGameAccountPub(4, "1");return ajaxJsonp(rMap);} else {rMap.put("status", "2");rMap.put("message", "手机校验码错误");return ajaxJsonp(rMap);}} else {rMap.put("status", "2");rMap.put("message", "校验码不存在或已过期");return ajaxJsonp(rMap);}}// 邮箱注册if (regMethod.equals(SysCommonUtil.REGISTER_EMAIL_VALUE)) {// 初始化数据commonAccount.setRegMethod(SysCommonUtil.REGISTER_EMAIL_VALUE);commonAccount.setEmail(username);commonAccount.setRegisterEmail(username);commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();/**** 邮箱的绑定放在二期做 ***/// 默认的邮箱绑定// Commonality emailBindingType =// commonalityService.getCommonalityByName(SysCommonUtil.ACCOUNT_SECURITY_BINDING_EMAIL);// Commonality emailBindingStatus =// commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_UNUSE);// AccountBinding emailBinding = new AccountBinding();// emailBinding.setAccount(commonAccount);// emailBinding.setBinding(commonAccount.getEmail());// emailBinding.setType(emailBindingType);// emailBinding.setStatus(emailBindingStatus);// accountBindingService.save(emailBinding);// accountBindingService.flush();// 发送邮件绑定通知// accountBindingService.sendBindMail(emailBinding);// 激活手游账号rMap = activatePhoneGameAccountPub(5, "2");return ajaxJsonp(rMap);}// 普通注册if (regMethod.equals(SysCommonUtil.REGISTER_COMMON_VALUE)) {// 初始化数据commonAccount.setUserpwd(GameUtil.encryptAccountPwd(username, userpwd));commonAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");accountService.save(commonAccount);accountService.flush();// 激活手游账号rMap = activatePhoneGameAccountPub(2, "2");return ajaxJsonp(rMap);}} catch (Exception e) {logger.error("普通注册异常!", e);}rMap.put("status", "0");rMap.put("message", "注册失败,请重新注册!");return ajaxJsonp(rMap);}/** * 激活手游账号 -- 通用 *  * @return */@SuppressWarnings({ "rawtypes", "unchecked" })public Map activatePhoneGameAccountPub(int isFast, String bind) {Map rMap = new HashMap();AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setIsFast(isFast);fastMobile.setUsername(username);fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setOs(os);fastMobile.setPhoneModel(phoneModel);fastMobile.setMedia(media);if (regMethod.equals(SysCommonUtil.REGISTER_MOBILE_VALUE)) {fastMobile.setPhone(username);}accountMobileService.save(fastMobile);rMap.put("sid", fastMobile.getSid());rMap.put("bind", bind); // 绑定标志 1-绑定 2-未绑定rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, channelNo);rMap.put("cookie", cookie);return rMap;}// =================================================/** * 手游SDK 普通注册入口 *  * 可写入SID 如果没有传入SID,则随机生成 */public String mobileRegister() {Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// if (StringUtil.isEmpty(serial)) {// rMap.put(STATUS_PARAMETER_NAME, "3");// return ajaxJsonp(rMap);// }if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(key)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}String msg = username + "|" + userpwd + "|" + serial + "|" + game;if (!StringUtil.isEmpty(sid)) {msg += "|" + sid;}Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证账号是否存在Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {rMap.put("status", "6");return ajaxJsonp(rMap);}// 创建账号// Commonality regCommon =// commonalityService.getCommonalityByName(SysCommonUtil.REGISTER_COMMON);String ip = getRemoteIpStr();Account commonAccount = new Account();commonAccount.setUsername(username.toLowerCase());commonAccount.setUserpwd(userpwd.toString());commonAccount.setUserpwd(GameUtil.encryptAccountPwd(commonAccount.getUsername(), commonAccount.getUserpwd()));commonAccount.setIp(ip);commonAccount.setType(SysCommonUtil.ACCOUNT_TYPE_STANDARD);commonAccount.setPriority(SysCommonUtil.ACCOUNT_PRIORITY_COMMON);commonAccount.setIsFinish(1);commonAccount.setAdult("0");commonAccount.setStatus(SysCommonUtil.SYS_STATUS_ON);commonAccount.setLockTime("0");commonAccount.setRegMethod(SysCommonUtil.REGISTER_COMMON_VALUE);commonAccount.setComefrom(game); // 注册来源// 新增账号accountService.save(commonAccount);accountService.flush();// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);if (!com.terrace.util.StringUtil.isNullOrEmpty(serial)) {fastMobile.setSerial(GameUtil.desEncrypt(serial));}fastMobile.setIsFast(2);fastMobile.setUsername(commonAccount.getUsername());if (!StringUtil.isEmpty(sid)) {fastMobile.setSid(sid);} else {fastMobile.setSid(CommonUtil.getEightRandomByUUID());}fastMobile.setMedia(media);accountMobileService.save(fastMobile);rMap.put("sid", fastMobile.getSid());rMap.put("bind", "2"); // 未绑定标志rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);return ajaxJsonp(rMap);} catch (Exception e) {logger.error("普通注册异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 普通登陆public String mobileLogin() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(key)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}String msg = username + "|" + userpwd + "|" + game;Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证账号Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}Commonality bindingStatusCommonality = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);Map<String, String> searchParams = new HashMap<String, String>();searchParams.put("account", aObj.getId());searchParams.put("status", bindingStatusCommonality.getId());List<AccountBinding> accountBindingList = accountBindingService.searchList(searchParams);if (accountBindingList.size() > 0) {rMap.put("bind", "1"); // 绑定标志} else {rMap.put("bind", "2"); // 未绑定标志}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 判断激活游戏没有AccountMobileVo amVo = new AccountMobileVo();amVo.setUsername(username.toLowerCase());amVo.setGame(game);List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put("sid", amObj.getSid());String cookie = GameUtil.ltLoginSign(amObj.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);}} else {// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);fastMobile.setUsername(aObj.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setOs(1);accountMobileService.save(fastMobile);rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put("sid", fastMobile.getSid());String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);}// 验证是否激活码激活游戏if (needActivate != null && "1".equals(needActivate)) {Game g = nowGames.get(0);ActivateCodeGaintVo vo = new ActivateCodeGaintVo();vo.setSid((String) rMap.get("sid"));if ("1".equals(channelNo)) {channelNo = "110001";}vo.setChannelNo(channelNo);vo.setGame(g.getId());vo.setUseSort(false);vo.setPager(false);List<ActivateCodeGaint> activateCodeGaints = activateCodeGaintDao.searchList(vo);if (activateCodeGaints == null || activateCodeGaints.size() == 0) {// 该用户没有激活激活码rMap.put(STATUS_PARAMETER_NAME, "9");rMap.put(MESSAGE_PARAMETER_NAME, "该用户没有激活激活码!");}}return ajaxJsonp(rMap);} catch (Exception e) {logger.error("普通登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 普通登陆 -- 通用public String mobileLoginPub() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(key)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}String msg = username + "|" + userpwd + "|" + game;Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证账号Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}Commonality bindingStatusCommonality = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);Map<String, String> searchParams = new HashMap<String, String>();searchParams.put("account", aObj.getId());searchParams.put("status", bindingStatusCommonality.getId());List<AccountBinding> accountBindingList = accountBindingService.searchList(searchParams);if (accountBindingList.size() > 0) {rMap.put("bind", "1"); // 绑定标志} else {rMap.put("bind", "2"); // 未绑定标志}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 判断激活游戏没有AccountMobileVo amVo = new AccountMobileVo();amVo.setUsername(username.toLowerCase());amVo.setGame(game);List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put("sid", amObj.getSid());String cookie = GameUtil.ltLoginSign(amObj.getSid(), game, channelNo);rMap.put("cookie", cookie);}} else {// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);fastMobile.setUsername(aObj.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setOs(1);accountMobileService.save(fastMobile);rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put("sid", fastMobile.getSid());String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, channelNo);rMap.put("cookie", cookie);}// 验证是否激活码激活游戏if (needActivate != null && "1".equals(needActivate)) {Game g = nowGames.get(0);ActivateCodeGaintVo vo = new ActivateCodeGaintVo();vo.setSid((String) rMap.get("sid"));if ("1".equals(channelNo)) {channelNo = "110001";}vo.setChannelNo(channelNo);vo.setGame(g.getId());vo.setUseSort(false);vo.setPager(false);List<ActivateCodeGaint> activateCodeGaints = activateCodeGaintDao.searchList(vo);if (activateCodeGaints == null || activateCodeGaints.size() == 0) {// 该用户没有激活激活码rMap.put(STATUS_PARAMETER_NAME, "9");rMap.put(MESSAGE_PARAMETER_NAME, "该用户没有激活激活码!");}}return ajaxJsonp(rMap);} catch (Exception e) {logger.error("普通登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 普通登陆V2 -- 当需要激活时,清空cookiepublic String mobileLoginV2() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(userpwd)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(key)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}String msg = username + "|" + userpwd + "|" + game;Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, 8);rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}GameVo gameVo = new GameVo();gameVo.setGameSign(game);gameVo.setUseSort(false);gameVo.setPager(false);List<Game> nowGames = gameService.searchList(gameVo);if (nowGames == null || nowGames.size() == 0) {// 该游戏不存在rMap.put(STATUS_PARAMETER_NAME, "10");rMap.put(MESSAGE_PARAMETER_NAME, "该游戏不存在!");return ajax(rMap);}try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证账号Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}Commonality bindingStatusCommonality = commonalityService.getCommonalityByName(SysCommonUtil.SYS_STATUS_USE);Map<String, String> searchParams = new HashMap<String, String>();searchParams.put("account", aObj.getId());searchParams.put("status", bindingStatusCommonality.getId());List<AccountBinding> accountBindingList = accountBindingService.searchList(searchParams);if (accountBindingList.size() > 0) {rMap.put("bind", "1"); // 绑定标志} else {rMap.put("bind", "2"); // 未绑定标志}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 判断激活游戏没有AccountMobileVo amVo = new AccountMobileVo();amVo.setUsername(username.toLowerCase());amVo.setGame(game);List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put("sid", amObj.getSid());String cookie = GameUtil.ltLoginSign(amObj.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);}} else {// 激活手游账号AccountMobile fastMobile = new AccountMobile();fastMobile.setGame(game);fastMobile.setUsername(aObj.getUsername());fastMobile.setSid(CommonUtil.getEightRandomByUUID());fastMobile.setOs(1);fastMobile.setMedia(media);accountMobileService.save(fastMobile);rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put("sid", fastMobile.getSid());String cookie = GameUtil.ltLoginSign(fastMobile.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);}// 验证是否激活码激活游戏if (needActivate != null && "1".equals(needActivate)) {Game g = nowGames.get(0);ActivateCodeGaintVo vo = new ActivateCodeGaintVo();vo.setSid((String) rMap.get("sid"));if ("1".equals(channelNo)) {channelNo = "110001";}vo.setChannelNo(channelNo);vo.setGame(g.getId());vo.setUseSort(false);vo.setPager(false);List<ActivateCodeGaint> activateCodeGaints = activateCodeGaintDao.searchList(vo);if (activateCodeGaints == null || activateCodeGaints.size() == 0) {// 该用户没有激活激活码rMap.put(STATUS_PARAMETER_NAME, "9");rMap.put(MESSAGE_PARAMETER_NAME, "该用户没有激活激活码!");rMap.put("cookie", "needActivate"); // 清空cookie}}// log日志记录saveLog(getRequest().getRequestURL().toString(), JsonUtil.toJson(rMap), 2);return ajaxJsonp(rMap);} catch (Exception e) {logger.error("普通登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证登陆public String mobileCheckLogin() {Map<String, Object> rMap = new HashMap<String, Object>();saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);try {if (StringUtil.isEmpty(sid)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 时效性验证标识if (StringUtil.isEmpty(cookie)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// 时效性验证标识Map<String, String> map = GameUtil.threeDaysVerify(sid, mobileKey, cookie);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, "8");return ajaxJsonp(rMap);}// 密码校验Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 查证数据AccountMobileVo amVo = new AccountMobileVo();amVo.setSid(sid);amVo.setGame(game);if (username != null) {amVo.setUsername(username);}List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.ltLoginSign(amObj.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);rMap.put("isFast", amObj.getIsFast());rMap.put("username", amObj.getUsername());}}// 验证是否激活码激活游戏if (needActivate != null && "1".equals(needActivate)) {ActivateCodeGaintVo vo = new ActivateCodeGaintVo();GameVo gameVo = new GameVo();gameVo.setGameSign(game);List<Game> gameList = gameService.searchList(gameVo);if (gameList == null || gameList.size() <= 0) {vo.setGame(game);} else {Game g = gameList.get(0);vo.setGame(g.getId());}vo.setSid(sid);if ("1".equals(channelNo)) {channelNo = "110001";}vo.setChannelNo(channelNo);vo.setUseSort(false);vo.setPager(false);List<ActivateCodeGaint> activateCodeGaints = activateCodeGaintDao.searchList(vo);if (activateCodeGaints == null || activateCodeGaints.size() == 0) {// 该用户没有激活激活码rMap.put(STATUS_PARAMETER_NAME, "9");rMap.put(MESSAGE_PARAMETER_NAME, "该用户没有激活激活码!");}}return ajaxJsonp(rMap);} catch (Exception e) {logger.error("验证登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证登陆V2 --- 当需要激活时,把cookie清空public String mobileCheckLoginV2() {Map<String, Object> rMap = new HashMap<String, Object>();saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);try {if (StringUtil.isEmpty(sid)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 时效性验证标识if (StringUtil.isEmpty(cookie)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// 时效性验证标识Map<String, String> map = GameUtil.threeDaysVerify(sid, mobileKey, cookie);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, "8");return ajaxJsonp(rMap);}// 密码校验Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 查证数据AccountMobileVo amVo = new AccountMobileVo();amVo.setSid(sid);amVo.setGame(game);if (username != null) {amVo.setUsername(username);}List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.ltLoginSign(amObj.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);rMap.put("isFast", amObj.getIsFast());rMap.put("username", amObj.getUsername());}}// 验证是否激活码激活游戏if (needActivate != null && "1".equals(needActivate)) {ActivateCodeGaintVo vo = new ActivateCodeGaintVo();GameVo gameVo = new GameVo();gameVo.setGameSign(game);List<Game> gameList = gameService.searchList(gameVo);if (gameList == null || gameList.size() <= 0) {vo.setGame(game);} else {Game g = gameList.get(0);vo.setGame(g.getId());}vo.setSid(sid);if ("1".equals(channelNo)) {channelNo = "110001";}vo.setChannelNo(channelNo);vo.setUseSort(false);vo.setPager(false);List<ActivateCodeGaint> activateCodeGaints = activateCodeGaintDao.searchList(vo);if (activateCodeGaints == null || activateCodeGaints.size() == 0) {// 该用户没有激活激活码rMap.put(STATUS_PARAMETER_NAME, "9");rMap.put(MESSAGE_PARAMETER_NAME, "该用户没有激活激活码!");rMap.put("cookie", "needActivate"); // 清空cookie}}return ajaxJsonp(rMap);} catch (Exception e) {logger.error("验证登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}// 验证登陆V2 --- 当需要激活时,把cookie清空public String mobileCheckLoginDes() {Map<String, Object> rMap = new HashMap<String, Object>();saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);try {if (StringUtil.isEmpty(sid)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 时效性验证标识if (StringUtil.isEmpty(cookie)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}// 时效性验证标识Map<String, String> map = GameUtil.threeDaysVerify(sid, mobileKey, cookie);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, "8");return ajaxJsonp(rMap);}// 密码校验Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {try {// DES 解密 userpwdDesUtil des = new DesUtil(mobileKey);userpwd = des.decrypt(userpwd);} catch (Exception e1) {logger.error("DES解密失败!", e1);rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}if (!aObj.getUserpwd().equals(GameUtil.encryptAccountPwd(username.toLowerCase(), userpwd))) {rMap.put("status", "4");return ajaxJsonp(rMap);}} else {rMap.put("status", "5");return ajaxJsonp(rMap);}// 查证数据AccountMobileVo amVo = new AccountMobileVo();amVo.setSid(sid);amVo.setGame(game);if (username != null) {amVo.setUsername(username);}List<AccountMobile> objList = accountMobileService.searchList(amVo);if (objList != null && objList.size() > 0) {AccountMobile amObj = objList.get(0);if (amObj != null) {rMap.put(STATUS_PARAMETER_NAME, "1");String cookie = GameUtil.ltLoginSign(amObj.getSid(), game, SysCommonUtil.CHANNEL_NO_LEITING);rMap.put("cookie", cookie);rMap.put("isFast", amObj.getIsFast());rMap.put("username", amObj.getUsername());}}// 验证是否激活码激活游戏if (needActivate != null && "1".equals(needActivate)) {ActivateCodeGaintVo vo = new ActivateCodeGaintVo();GameVo gameVo = new GameVo();gameVo.setGameSign(game);List<Game> gameList = gameService.searchList(gameVo);if (gameList == null || gameList.size() <= 0) {vo.setGame(game);} else {Game g = gameList.get(0);vo.setGame(g.getId());}vo.setSid(sid);if ("1".equals(channelNo)) {channelNo = "110001";}vo.setChannelNo(channelNo);vo.setUseSort(false);vo.setPager(false);List<ActivateCodeGaint> activateCodeGaints = activateCodeGaintDao.searchList(vo);if (activateCodeGaints == null || activateCodeGaints.size() == 0) {// 该用户没有激活激活码rMap.put(STATUS_PARAMETER_NAME, "9");rMap.put(MESSAGE_PARAMETER_NAME, "该用户没有激活激活码!");rMap.put("cookie", "needActivate"); // 清空cookie}}return ajaxJsonp(rMap);} catch (Exception e) {logger.error("验证登陆异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");return ajaxJsonp(rMap);}/** * 检查账户是否存在 username 用户名 game 游戏 *  * @return */public String checkAccountExist() {// log日志记录saveLog(getRequest().getRequestURL().toString(), getHttpParams().toString(), 1);Map<String, Object> rMap = new HashMap<String, Object>();try {if (StringUtil.isEmpty(username)) {rMap.put(STATUS_PARAMETER_NAME, "7");return ajaxJsonp(rMap);}if (StringUtil.isEmpty(game)) {rMap.put(STATUS_PARAMETER_NAME, "2");return ajaxJsonp(rMap);}// 先验证账号格式是否正确if (!username.matches("^[a-zA-Z0-9_@.]+$") || username.length() > 32) {rMap.put(STATUS_PARAMETER_NAME, "5");rMap.put(MESSAGE_PARAMETER_NAME, "账号名必须由字母、数字、点号、@符号或下划线组成,长度小于32位!");return ajaxJsonp(rMap);}String msg = username + "|" + game;Map<String, String> map = GameUtil.threeDaysVerify(msg, mobileKey, key);if (!"success".equals(map.get(STATUS_PARAMETER_NAME))) {rMap.put(STATUS_PARAMETER_NAME, "8");rMap.put(MESSAGE_PARAMETER_NAME, "key验证失败,请返回重试!");return ajaxJsonp(rMap);}username = username.toLowerCase();// 验证账号是否存在Account aObj = accountService.getAccountByUsername(username);if (aObj != null) {rMap.put(STATUS_PARAMETER_NAME, "6");rMap.put(MESSAGE_PARAMETER_NAME, "存在" + username + "账号。");return ajaxJsonp(rMap);} else {rMap.put(STATUS_PARAMETER_NAME, "1");rMap.put(MESSAGE_PARAMETER_NAME, "不存在" + username + "账号。");return ajaxJsonp(rMap);}} catch (Exception e) {logger.error("检查账户是否存在异常!", e);}rMap.put(STATUS_PARAMETER_NAME, "0");rMap.put(MESSAGE_PARAMETER_NAME, "检查账户是否存在失败,请稍后重试!");return ajaxJsonp(rMap);}/** * 保存log日志 *  * @param info *            log日志具体内容 * @param params *            标题 * @param type *            1:平台接收,2:平台发送 */private void saveLog(String info, String params, int type) {try {GameDocking entity = new GameDocking();entity.setCreateDate(new Date());entity.setModifyDate(new Date());if (!StringUtil.isEmpty(info)) {if (info.length() > 500) {info = info.substring(0, 500);}entity.setUrl(info);}if (!StringUtil.isEmpty(params)) {if (params.length() > 2000) {params = params.substring(0, 2000);}entity.setParams(params);}entity.setType(type); // 1:平台接收,2:平台发送gameDockingService.save(entity);} catch (Exception e) {logger.error(e.getMessage());}}// 获取http参数@SuppressWarnings({ "rawtypes", "unchecked" })private Map getHttpParams() {Map map = new HashMap();Enumeration paramNames = getRequest().getParameterNames();while (paramNames.hasMoreElements()) {String paramName = (String) paramNames.nextElement();String[] paramValues = getRequest().getParameterValues(paramName);if (paramValues.length == 1) {String paramValue = paramValues[0];if (paramValue.length() != 0) {map.put(paramName, paramValue);}}}return map;}public String getSerial() {return serial;}public void setSerial(String serial) {this.serial = serial;}public String getGame() {return game;}public void setGame(String game) {this.game = game;}public String getSid() {return sid;}public void setSid(String sid) {this.sid = sid;}public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getUserpwd() {return userpwd;}public void setUserpwd(String userpwd) {this.userpwd = userpwd;}public String getCookie() {return cookie;}public void setCookie(String cookie) {this.cookie = cookie;}public String getKey() {return key;}public void setKey(String key) {this.key = key;}public String getRegMethod() {return regMethod;}public void setRegMethod(String regMethod) {this.regMethod = regMethod;}public String getPhoneActiveKey() {return phoneActiveKey;}public void setPhoneActiveKey(String phoneActiveKey) {this.phoneActiveKey = phoneActiveKey;}public String getPhoneNum() {return phoneNum;}public void setPhoneNum(String phoneNum) {this.phoneNum = phoneNum;}public String getPhoneModel() {return phoneModel;}public void setPhoneModel(String phoneModel) {this.phoneModel = phoneModel;}public Integer getOs() {return os;}public void setOs(Integer os) {this.os = os;}public String getNeedActivate() {return needActivate;}public void setNeedActivate(String needActivate) {this.needActivate = needActivate;}public String getChannelNo() {return channelNo;}public void setChannelNo(String channelNo) {this.channelNo = channelNo;}public String getMedia() {return media;}public void setMedia(String media) {this.media = media;}}


0 0
原创粉丝点击