package com.cnd3b.restcontroller.publicmethod.users; import com.cnd3b.utility.Encryption; import com.alibaba.fastjson.JSONObject; import com.cnd3b.common.Controller; import com.cnd3b.common.D3bException; import com.cnd3b.common.data.Rows; import com.cnd3b.common.parameter.parameter; import com.cnd3b.common.restful.WebClientRest; import com.cnd3b.utility.Sms; import p2.pao.PaoRemote; import p2.pao.PaoSetRemote; import p2.util.P2Exception; import java.util.Calendar; import java.util.Random; public class Users extends Controller { public Users(JSONObject content) { super(content); } /** * 登陆时如果没有注册则自动注册 * * @return */ public void register_usersByLogin(String fphonenumber, String siteid) { PaoSetRemote tagentsSet = null; try { tagentsSet = getP2ServerSystemPaoSet("tagents"); PaoRemote tagents = tagentsSet.addAtEnd(); tagents.setValue("siteid", siteid, 11L);//企业ID tagents.setValue("createdate", getDateTime(), 11L);//录入时间 tagents.setValue("fphonenumber", fphonenumber, 11L); tagents.setValue("fjoindate", getDateTime(), 11L); tagents.setValue("ftype", "个人", 11L); tagentsSet.save(); createSystemMessageByAgentsid("公共", "注册欢迎通知", "恭喜!注册成功!", tagents.getUniqueIDValue()); } catch (Exception e) { e.printStackTrace(); } finally { try { if (tagentsSet != null) { tagentsSet.close(); } } catch (Exception e) { e.printStackTrace(); } } } /** * 个人账号注册 * * @return */ public String register_users() throws D3bException, P2Exception { String fpassword = content.getString("fpassword");//验证码 String fphonenumber = content.getString("fphonenumber", "tagents.fphonenumber", "手机号");//手机号 int resultcode; if (!parameter.register_passwordmap.containsKey(fphonenumber)) { resultcode = 1;//没有获取验证码 } else if (parameter.registerpassword_date.get(fphonenumber).before(Calendar.getInstance().getTime())) { resultcode = 2;//验证码已失效 } else { //系统验证码 String syspassword = parameter.register_passwordmap.get(fphonenumber); if (fpassword.equals(new Encryption().Encode_MD5(syspassword))) { resultcode = 0;//验证码正确 } else { resultcode = 3;//验证码错误 } } if (resultcode == 0) { PaoSetRemote tagentsSet = getP2ServerSystemPaoSet("tagents"); PaoRemote tagents = tagentsSet.addAtEnd(); tagents.setValue("siteid", siteid, 11L);//企业ID tagents.setValue("createdate", getDateTime(), 11L);//录入时间 tagents.setValue("fphonenumber", fphonenumber, 11L); tagents.setValue("fjoindate", getDateTime(), 11L); tagents.setValue("ftype", "个人", 11L); tagentsSet.save(); createSystemMessageByAgentsid("公共", "注册欢迎通知", "恭喜!注册成功!", tagents.getUniqueIDValue()); WebClientRest rest = new WebClientRest(); String password = rest.createPassWord(); parameter.phonenumber_password.put(fphonenumber, password); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MINUTE, 30000000); parameter.phonenumber_date.put(fphonenumber, calendar.getTime()); JSONObject object = new JSONObject(); object.put("phonenumber", fphonenumber); object.put("password", new Encryption().Encode_MD5(password)); parameter.register_passwordmap.remove(fphonenumber); parameter.registerpassword_date.remove(fphonenumber); return rest.login(object.toJSONString()); } else { String msg = ""; if (resultcode == 1) { msg = "请先获取验证码!"; } else if (resultcode == 2) { msg = "验证码已失效,请重新获取!"; } else if (resultcode == 3) { msg = "无效的验证码!"; } return getErrReturnObject().setErrMsg(msg).toString(); } } /** * 注册验证码获取 * * @return */ public String getPassword() throws D3bException, P2Exception { String fphonenumber = content.getString("fphonenumber");//注册手机号 PaoSetRemote tagentsSet = getP2ServerSystemPaoSet("tagents", "fphonenumber='" + fphonenumber + "' and siteid='" + siteid + "'"); if (!tagentsSet.isEmpty()) { return getErrReturnObject().setErrMsg("该手机号已注册!").toString(); } String password = createPassWord(); parameter.register_passwordmap.put(fphonenumber, password); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MINUTE, 5); parameter.registerpassword_date.put(fphonenumber, calendar.getTime()); if (parameter.isdebug()) { return getSucReturnObject().setData("验证码:" + password).toString(); } else { Sms sms = new Sms(); sms.sendOutMsg(fphonenumber, password); return getSucReturnObject().setData("验证码已发送,请注意查收!").toString(); } } private String createPassWord() { String allChar = "1234567890"; StringBuffer sb = new StringBuffer(); Random random = new Random(); for (int i = 0; i < 6; i++) { sb.append(allChar.charAt(random.nextInt(allChar.length()))); } if (parameter.register_passwordmap.containsValue(sb.toString())) { return createPassWord(); } else { return sb.toString(); } } }