/** * @Project: hehenian-web * @Package com.hehenian.sevlet.user * @Title: UserRegisterServlet.java * @Description: TODO * @author: zhangyunhmf * @date 2014年11月19日 下午6:12:30 * @Copyright: HEHENIAN Co.,Ltd. All rights reserved. * @version V1.0 */ package com.hehenian.sevlet.user; import java.io.IOException; import java.net.URLDecoder; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.hehenian.biz.common.activity.dataobject.ActivityConfig; import com.hehenian.biz.common.util.JsonUtil; import com.hehenian.biz.common.util.Md5Utils; import com.hehenian.web.common.util.ServletUtils; import com.shove.Convert; import com.shove.security.Encrypt; import com.shove.web.util.DesSecurityUtil; import com.sp2p.constants.IConstants; import com.sp2p.service.UserService; /** * * @author: zhangyunhmf * @date 2014年11月19日 下午6:12:30 */ public class UserRegisterServlet extends HttpServlet { /** * @Fields serialVersionUID : TODO */ private static final long serialVersionUID = 5872549716906862682L; private Logger logger = Logger.getLogger(this.getClass()); protected UserService userService; private ActivityConfig activityConfig; @Override public void init(ServletConfig config) throws ServletException { super.init(config); super.init(config); ServletContext servletContext = config.getServletContext(); WebApplicationContext webApplicationContext = WebApplicationContextUtils .getWebApplicationContext(servletContext); AutowireCapableBeanFactory autowireCapableBeanFactory = webApplicationContext .getAutowireCapableBeanFactory(); activityConfig = (ActivityConfig) autowireCapableBeanFactory.getBean("activityConfig"); userService = (UserService) autowireCapableBeanFactory.getBean("userService"); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } private void printMessage(String code, String msg, HttpServletResponse resp) { Map<String, String> status = new HashMap<String, String>(); String jsonStr = ""; status.put("statusCode", code); status.put("statusDesc", msg); try { jsonStr = JsonUtil.toString(status); } catch (IOException e) { jsonStr = "{statusCode:'004'}"; logger.error(e); } ServletUtils.write(jsonStr, ServletUtils.RESP_CONTTYPE_JSON, resp); } /** * 总收益查询接口: 接口参数: userId bigInt 非空 20 彩之云用户账号 * * 返回: userId bigInt 非空 20 彩之云用户账号 totalInvestAmount 保留两位小数Decimal(18,2) 非空 * 累计投资金额 totalInterestAmount 保留两位小数Decimal(18,2) 非空 累计利息 withdrawalAmount * 保留两位小数Decimal(18,2) 非空 可提取金额 * * @return json 字符 * @author: zhangyunhmf * @date: 2014年10月30日下午2:55:31 */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { try { req.setCharacterEncoding("utf-8"); String userName = req.getParameter("username"); // 用户名 String mobilePhone = req.getParameter("mobilePhone");// 手机号 String cid = req.getParameter("cid");// 小区ID String cname = req.getParameter("cname"); if (null != cname) { cname = URLDecoder.decode(cname, "utf-8");// 小区名 } String caddress = req.getParameter("address"); if (null != caddress) { caddress = URLDecoder.decode(caddress, "utf-8");// 用户地址 } String refferee = req.getParameter("refferee");// 彩生活推荐人id String colorId = req.getParameter("colorId");// 彩生活用户ID,用户唯一标识,数字1-10位 String password = req.getParameter("password");// 用户密码 String enable = req.getParameter("enable");// 是否禁用 1、启用 2、禁用 3.黑名单 // 默认1 String ipAddress = req.getParameter("ipAddress");// 注册IP String via = req.getParameter("via");// 用户来源平台 String realName = req.getParameter("realName"); if (null != realName) { realName = URLDecoder.decode(realName, "utf-8");// 真实姓名 } String sign = req.getParameter("sign"); Map<String, String> status = new HashMap<String, String>(); String jsonStr = ""; if (StringUtils.isBlank(userName) || StringUtils.isBlank(mobilePhone) || StringUtils.isBlank(colorId) || mobilePhone.length() != 11 || StringUtils.isBlank(password)) { printMessage("003", "无效参数", resp); return; } // md5 校验 StringBuffer signSb = new StringBuffer(); signSb.append("username").append(userName).append("mobilePhone").append(mobilePhone).append("refferee") .append(refferee).append("enable").append(enable).append("ipAddress").append(ipAddress) .append("via").append(via).append("realName").append(realName).append("address").append(caddress) .append("cname").append(cname).append("cid").append(cid).append("colorId").append(colorId) .append("password").append(password); boolean signOk = Md5Utils.checkMD5(sign, activityConfig.getHehenianKey(), signSb.toString()); if (!signOk) { logger.error("md5验证失败"); printMessage("002", "md5验证失败", resp); return; } Map<String, String> map = userService.getColourlifeName(userName, mobilePhone, colorId, password, ""); long result = Convert.strToLong(map.get("ret"), 0);// 若已注册,返回0 // ;若可注册,返回1 // ;若信息重复,不可注册,返回-1, // 若信息被篡改,返回100 if (result == 0) {// 若已注册,返回0 logger.error("已注册"); printMessage("007", "用户已经存在", resp); return; } if (result == 100) { logger.error("请求参数非法"); printMessage("003", "无效参数", resp); return; } int registerType = 8; // 从彩生活接口注册 if (result < 0) {// 手机号码已存在 logger.error(" 手机号码已存在"); printMessage("005", "手机号码已存在", resp); return; } else { int typelen = -1; DesSecurityUtil des = new DesSecurityUtil(activityConfig.getHehenianKey()); String pwd = des.decrypt(password); String md5Password = Encrypt.MD5(pwd + IConstants.PASS_KEY); // 注册用户 Map<String, String> rmap = userService.userRegister1(mobilePhone, userName, md5Password, refferee, null, typelen, mobilePhone, registerType); long userId = Convert.strToLong(rmap.get("ret"), -1); if (userId < 0) { // 注册失败 logger.error("注册失败"); status.put("statusCode", "006"); printMessage("006", "注册失败", resp); return; } long newUserId = Convert.strToLong(rmap.get("ret"), -1); userService.updateUserCheck(colorId, "", via, newUserId); userService.saveColourInfo(newUserId, Convert.strToInt(colorId, -1), Convert.strToInt(cid, -1), cname, caddress, Convert.strToInt(refferee, -1), ""); printMessage("001", "ok", resp); } } catch (Throwable e) { String jsonStr = "{statusCode:'004'}"; logger.error(e); ServletUtils.write(jsonStr, ServletUtils.RESP_CONTTYPE_JSON, resp); return; } } }