package com.hehenian.mobile.web.controller.account; import java.net.URLDecoder; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import net.sf.json.JSONObject; import org.apache.commons.lang.StringUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.hehenian.biz.common.account.IPersonService; import com.hehenian.biz.common.account.IUserService; import com.hehenian.biz.common.account.UserType; import com.hehenian.biz.common.account.dataobject.AccountUserDo; import com.hehenian.biz.common.account.dataobject.PersonDo; import com.hehenian.biz.common.activity.IActivityOrderService; import com.hehenian.biz.common.userhome.IUserIncomeService; import com.hehenian.biz.common.util.huifu.ChinaPnRInterface; import com.hehenian.common.utils.ResponseUtils; import com.hehenian.mobile.common.constants.WebConstants; import com.hehenian.mobile.web.controller.BaseController; import com.shove.Convert; /** * @Project: hehenian-mobile * @Package com.hehenian.mobile.web.controller.account * @Title: HFController * @Description: 汇付天下 * @author: chenzhpmf * @date 2015年4月27日 * @Copyright: HEHENIAN Co.,Ltd. All rights reserved. * @version V1.0 */ @Controller @RequestMapping(value = "/chinapnr") public class ChinaPNRController extends BaseController { @Autowired private IActivityOrderService activityOrderService; @Autowired private IUserIncomeService userIncomeService; @Autowired private IPersonService personService; @Autowired private IUserService userService; private static Log logger = LogFactory.getLog(ChinaPNRController.class); private void checkUserId(String userId) { if (StringUtils.isBlank(userId)) { } try { Long.parseLong(userId); } catch (Exception e) { logger.error("无效参数"); } } /** * 注册汇付索引页 * @param request * @param response * @return */ @RequestMapping("index.do") public String index(HttpServletRequest request, HttpServletResponse response) { String liumi = request.getParameter("liumi"); // AccountUserDo accountUserDo = getAccountUser(); // PersonDo personDo = this.personService.getByUserId(accountUserDo.getId()); // this.userService.updateUserUsrCust(accountUserDo.getId(), accountUserDo.getId(), accountUserDo.getEmail(), personDo.getIdNo(), personDo.getRealName()); request.getSession().setAttribute("liumi", liumi); return "chinapnr/index"; } /** * 汇付注册页面 * @param request * @param response * @return */ @RequestMapping("register") public String register(HttpServletRequest request, HttpServletResponse response) { String liumi = request.getParameter("liumi"); request.getSession().setAttribute("liumi", liumi); return "chinapnr/register"; } /** * 汇付注册填写推荐人 * @return * @throws Exception */ @RequestMapping("setMyReferee") public String setMyReferee(HttpServletRequest request, HttpServletResponse response) throws Exception { String reffer = request.getParameter("refferee"); JSONObject jsonObject = new JSONObject(); long refferId = -1; if (StringUtils.isNotBlank(reffer)) { AccountUserDo accountUserDo = userService.findUserByPhone(reffer); if (accountUserDo != null) { refferId = accountUserDo.getId(); } } if (refferId<=0) { jsonObject.put("code", "-2"); ResponseUtils.renderText(response, "UTF-8", jsonObject.toString()); return null; } AccountUserDo user = getAccountUser(); if (user.getId()==refferId){ jsonObject.put("code", "-3"); ResponseUtils.renderText(response, "UTF-8", jsonObject.toString()); return null; } long result = userService.setReferee(refferId + "", user.getId().toString()); if (result>0) { if (StringUtils.isNotBlank(reffer)){ try { userService.saveUserReffer(reffer, user.getId()); user.setRefferee(refferId+""); request.getSession().setAttribute("user", user); } catch (Exception e) { logger.error(e.getMessage(), e); } } } jsonObject.put("code", result); ResponseUtils.renderText(response, "UTF-8", jsonObject.toString()); return null; } /** * 订单收益查询接口 接口参数: userId bigInt 非空 20 彩之云用户账号 接口参数:orderSN 字符 非空 32 订单号 * * 返回: userId bigInt 非空 20 彩之云用户账号 orderSN 字符 非空 32 订单号 orderInvestAmount * 保留两位小数Decimal(18,2) 非空 订单投资金额 orderInterestAmount 保留两位小数Decimal(18,2) 非空 * 订单利息  orderWithdrawalAmount 保留两位小数Decimal(18,2) 非空 订单可提取金额 * * @return json 字符串 * @author: zhangyunhmf * @date: 2014年10月30日下午2:52:49 */ public String orderDetail(HttpServletRequest request, HttpServletResponse response) { String userId = request.getParameter("userId"); String orderSN = request.getParameter("orderSN"); checkUserId(userId); if (StringUtils.isBlank(orderSN)) { } activityOrderService.queryOrderDetail(userId, orderSN, "0"); return null; } /** * 总收益查询接口: 接口参数: 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 */ public String userIncome(HttpServletRequest request) { String userId = request.getParameter("userId"); checkUserId(userId); userIncomeService.queryUserIncome(userId, UserType.COLOR_LIFE.name()); return null; } public String bjbz() { return ""; } public String faq(HttpServletRequest request) { String liumi = request.getParameter("liumi"); request.getSession().setAttribute("liumi", liumi); return ""; } public String czzy() { return ""; } public String home(HttpServletRequest request) { AccountUserDo user = (AccountUserDo) request.getSession().getAttribute("user"); if (user==null) { return "login"; } return ""; } public String cfWeb(HttpServletRequest request) { request.getSession().setAttribute("platform", "colorlifeweb"); request.getSession().setAttribute("sourcefrom", WebConstants.SOURCEFROM_COLOURLIFE); return ""; } public String cfApp(HttpServletRequest request) { HttpSession session = request.getSession(); session.setAttribute("platform", "colorlifeapp"); session.setAttribute("sourcefrom", WebConstants.SOURCEFROM_COLOURLIFE_APP); session.setAttribute("appstyle","cf"); return ""; } public String heartbeat() { return null; } public String appComm(HttpServletRequest request) { HttpSession session = request.getSession(); session.setAttribute("platform", "appcomm"); Object via = request.getParameter("via"); if (via!=null&&StringUtils.isNotBlank(via.toString())){ if (session.getAttribute("appvia")!=null){ via = session.getAttribute("appvia").toString(); } }else{ via = session.getAttribute("appvia"); } if ("jfq".equals(via)){ via = "11"; } session.setAttribute("appvia",via); if (via!=null&&StringUtils.isNotBlank(via.toString())){ session.setAttribute("sourcefrom", via); } //设置手机端展示风格 // int appstyle = Convert.strToInt(request("appstyle"),0); String appstyle = request.getParameter("appstyle"); if (StringUtils.isNotBlank(appstyle)){ session.setAttribute("appstyle",appstyle); } if (session.getAttribute("user")!=null){ return "index"; } return ""; } /** * 前台--汇付开户 */ @RequestMapping("registerChinaPnr") public void registerChinaPnr(HttpServletRequest request, HttpServletResponse response) throws Exception { AccountUserDo user = getAccountUser(); String usrId = user.getId() + ""; PersonDo personDo = personService.getByUserId(user.getId()); String usrName = Convert.strToStr(personDo.getRealName(), ""); String idNo = Convert.strToStr(personDo.getIdNo(), ""); String usrEmail = Convert.strToStr(user.getEmail(), ""); request.setAttribute("idNo", idNo); String mobilePhone = Convert.strToStr(user.getMobilePhone(), ""); if (mobilePhone != null && mobilePhone.startsWith("-")){ mobilePhone = mobilePhone.substring(1,mobilePhone.length()); } /* * if(mobilePhone == null || mobilePhone.equals("")){ getOut().print( * "<script>alert('您还未完善个人资料,进入个人中心完善个人资料');window.location.href='owerInformationInit.do';</script>" * ); return null; } * * if(usrName == null || usrName.equals("")){ getOut().print( * "<script>alert('您还未完善个人资料,进入个人中心完善个人资料');window.location.href='owerInformationInit.do';</script>" * ); return null; } if (idNo == null || idNo.equals("")) { * getOut().print( * "<script>alert('您还未完善个人资料,进入个人中心完善个人资料');window.location.href='owerInformationInit.do';</script>" * ); return null; } */ String cmdId = "UserRegister"; String html = ChinaPnRInterface.userRegister(cmdId, usrId, usrName, idNo, mobilePhone, usrEmail); ResponseUtils.renderText(response, "UTF-8", html); } /** * 汇付 注册 处理 * * @throws Exception */ private String doUserRegister(String CmdId) throws Exception { // 签名和结果验证 String RespCode = request.getParameter("RespCode"); try { if (Convert.strToInt(RespCode, -1) != 0) { return request.getParameter("RespDesc"); } } catch (Exception e) { logger.info(e); return "注册出现异常"; } String UsrId = Convert.strToStr(request.getParameter("UsrId"), "");// 该字段格式为:// // xxxx_123456789 long userId = Convert.strToLong(UsrId.substring(UsrId.indexOf("_") + 1), -1); synchronized (userService) { AccountUserDo accountUserDo = userService.getById(userId);// 根据用户id查询用户的客户号,如果存在客户号,说明已注册,怎不做注册处理了 String custId = String.valueOf(accountUserDo.getUsrCustId()); String email = Convert.strToStr(request.getParameter("UsrEmail"), ""); try { email = URLDecoder.decode(email, "utf-8"); } catch (Exception e) { } if (custId.length() == 0) { long usrCustId = Convert.strToLong(request.getParameter("UsrCustId"), -1); String idNo = Convert.strToStr(request.getParameter("IdNo"), ""); String realName = Convert.strToStr(request.getParameter("UsrName"), ""); realName = URLDecoder.decode(realName, "utf-8"); long ret = -1L; ret = userService.updateUserUsrCust(userId, usrCustId, email, idNo, realName); if (ret > 0) { AccountUserDo userInfo = userService.getById(userId); try { if (StringUtils.isBlank(String.valueOf(userInfo.getColorid()))) { userService.joinHyh(realName, idNo, userId); } } catch (Exception e) { logger.error(e.getMessage(), e); } request.getSession().setAttribute("user", userInfo); return "注册成功"; } return "注册失败"; } else { try { AccountUserDo user = getAccountUser(); if (user != null) { user.setUsrCustId(Long.parseLong(custId)); user.setEmail(email); } } catch (Exception e) { logger.error(e.getMessage(), e); } } } return "注册成功"; } /** * 汇付天下 前台调用函数 */ @RequestMapping("frontMerUrl") public String frontMerUrl(HttpServletRequest request, HttpServletResponse response) throws Exception { logger.info("进入前台回调: parameter"); Map<String, String[]> ret = request.getParameterMap(); for (String key : ret.keySet()) { logger.info(key + "====>" + ret.get(key)[0]); } String CmdId = request.getParameter("CmdId");// 消息类型 String result = null; if ("CreditAssign".equals(CmdId)) {// 购买债权 //result = doDebtTender(CmdId); //createHelpMessage(result, "返回首页", "index.do"); } else if ("NetSave".equals(CmdId)) {// 网银充值 //result = doNetSave(CmdId); //createHelpMessage(result, "返回首页", "index.do"); } else if ("UserRegister".equals(CmdId)) {// 注册 result = doUserRegister(CmdId); //createHelpMessage(result, "返回首页", "index.do"); } else if ("Cash".equals(CmdId)) {// 取现 //result = doCash(CmdId); //createHelpMessage(result, "返回首页", "index.do"); } else if ("InitiativeTender".equals(CmdId)) {// 投标 //result = doInitiativeTender(CmdId); //createHelpMessage(result, "返回首页", "index.do"); } else if ("AutoTenderPlan".equals(CmdId)) {// 开启自动投标计划 //result = doAutoPlan(2);// 2为自动投标开启状态 /* * response().sendRedirect("/automaticBidInit.do"); result = * "订单:RECV_ORD_ID_" + request("OrdId"); * JSONUtils.printStr2(result); return null; */ //createHelpMessage(result, "返回首页", "index.do"); } else if ("AutoTenderPlanClose".equals(CmdId)) {// 关闭自动投标计划 //result = doAutoPlan(1);// 1为自动投标关闭状态 /* * response().sendRedirect("/automaticBidInit.do"); result = * "订单:RECV_ORD_ID_" + request("OrdId"); * JSONUtils.printStr2(result); return null; */ //createHelpMessage(result, "返回首页", "index.do"); } // 汇付规范:成功后,需在页面输出 RECV_ORD_ID_+订单号 if ("UserBindCard".equals(CmdId)) {// 绑卡 //if (Convert.strToInt(request("RespCode"), -1) == 0) { // doUserBindCard(); //} //result = "订单:RECV_ORD_ID_" + request("TrxId"); } else if ("PosWhSave".equals(CmdId) || "NetSave".equals(CmdId) || "UserRegister".equals(CmdId)) { //result = "订单:RECV_ORD_ID_" + request("TrxId"); } else if ("CorpRegister".equals(CmdId)) { //doCorpRegister();// 企业开户 result = "订单:RECV_ORD_ID_" + request.getParameter("TrxId"); } else { result = "订单:RECV_ORD_ID_" + request.getParameter("OrdId"); } System.out.println("前台回调返回结果:" + result); ResponseUtils.renderText(response, "UTF-8", result); return "redirect:/index.do"; } }