Users.java 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. package com.cnd3b.restcontroller.publicmethod.users;
  2. import com.cnd3b.utility.Encryption;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.cnd3b.common.Controller;
  5. import com.cnd3b.common.D3bException;
  6. import com.cnd3b.common.data.Rows;
  7. import com.cnd3b.common.parameter.parameter;
  8. import com.cnd3b.common.restful.WebClientRest;
  9. import com.cnd3b.utility.Sms;
  10. import p2.pao.PaoRemote;
  11. import p2.pao.PaoSetRemote;
  12. import p2.util.P2Exception;
  13. import java.util.Calendar;
  14. import java.util.Random;
  15. public class Users extends Controller {
  16. public Users(JSONObject content) {
  17. super(content);
  18. }
  19. /**
  20. * 登陆时如果没有注册则自动注册
  21. *
  22. * @return
  23. */
  24. public void register_usersByLogin(String fphonenumber, String siteid) {
  25. PaoSetRemote tagentsSet = null;
  26. try {
  27. tagentsSet = getP2ServerSystemPaoSet("tagents");
  28. PaoRemote tagents = tagentsSet.addAtEnd();
  29. tagents.setValue("siteid", siteid, 11L);//企业ID
  30. tagents.setValue("createdate", getDateTime(), 11L);//录入时间
  31. tagents.setValue("fphonenumber", fphonenumber, 11L);
  32. tagents.setValue("fjoindate", getDateTime(), 11L);
  33. tagents.setValue("ftype", "个人", 11L);
  34. tagentsSet.save();
  35. createSystemMessageByAgentsid("公共", "注册欢迎通知", "恭喜!注册成功!", tagents.getUniqueIDValue());
  36. } catch (Exception e) {
  37. e.printStackTrace();
  38. } finally {
  39. try {
  40. if (tagentsSet != null) {
  41. tagentsSet.close();
  42. }
  43. } catch (Exception e) {
  44. e.printStackTrace();
  45. }
  46. }
  47. }
  48. /**
  49. * 个人账号注册
  50. *
  51. * @return
  52. */
  53. public String register_users() throws D3bException, P2Exception {
  54. String fpassword = content.getString("fpassword");//验证码
  55. String fphonenumber = content.getString("fphonenumber", "tagents.fphonenumber", "手机号");//手机号
  56. int resultcode;
  57. if (!parameter.register_passwordmap.containsKey(fphonenumber)) {
  58. resultcode = 1;//没有获取验证码
  59. } else if (parameter.registerpassword_date.get(fphonenumber).before(Calendar.getInstance().getTime())) {
  60. resultcode = 2;//验证码已失效
  61. } else {
  62. //系统验证码
  63. String syspassword = parameter.register_passwordmap.get(fphonenumber);
  64. if (fpassword.equals(new Encryption().Encode_MD5(syspassword))) {
  65. resultcode = 0;//验证码正确
  66. } else {
  67. resultcode = 3;//验证码错误
  68. }
  69. }
  70. if (resultcode == 0) {
  71. PaoSetRemote tagentsSet = getP2ServerSystemPaoSet("tagents");
  72. PaoRemote tagents = tagentsSet.addAtEnd();
  73. tagents.setValue("siteid", siteid, 11L);//企业ID
  74. tagents.setValue("createdate", getDateTime(), 11L);//录入时间
  75. tagents.setValue("fphonenumber", fphonenumber, 11L);
  76. tagents.setValue("fjoindate", getDateTime(), 11L);
  77. tagents.setValue("ftype", "个人", 11L);
  78. tagentsSet.save();
  79. createSystemMessageByAgentsid("公共", "注册欢迎通知", "恭喜!注册成功!", tagents.getUniqueIDValue());
  80. WebClientRest rest = new WebClientRest();
  81. String password = rest.createPassWord();
  82. parameter.phonenumber_password.put(fphonenumber, password);
  83. Calendar calendar = Calendar.getInstance();
  84. calendar.add(Calendar.MINUTE, 30000000);
  85. parameter.phonenumber_date.put(fphonenumber, calendar.getTime());
  86. JSONObject object = new JSONObject();
  87. object.put("phonenumber", fphonenumber);
  88. object.put("password", new Encryption().Encode_MD5(password));
  89. parameter.register_passwordmap.remove(fphonenumber);
  90. parameter.registerpassword_date.remove(fphonenumber);
  91. return rest.login(object.toJSONString());
  92. } else {
  93. String msg = "";
  94. if (resultcode == 1) {
  95. msg = "请先获取验证码!";
  96. } else if (resultcode == 2) {
  97. msg = "验证码已失效,请重新获取!";
  98. } else if (resultcode == 3) {
  99. msg = "无效的验证码!";
  100. }
  101. return getErrReturnObject().setErrMsg(msg).toString();
  102. }
  103. }
  104. /**
  105. * 注册验证码获取
  106. *
  107. * @return
  108. */
  109. public String getPassword() throws D3bException, P2Exception {
  110. String fphonenumber = content.getString("fphonenumber");//注册手机号
  111. PaoSetRemote tagentsSet = getP2ServerSystemPaoSet("tagents", "fphonenumber='" + fphonenumber + "' and siteid='" + siteid + "'");
  112. if (!tagentsSet.isEmpty()) {
  113. return getErrReturnObject().setErrMsg("该手机号已注册!").toString();
  114. }
  115. String password = createPassWord();
  116. parameter.register_passwordmap.put(fphonenumber, password);
  117. Calendar calendar = Calendar.getInstance();
  118. calendar.add(Calendar.MINUTE, 5);
  119. parameter.registerpassword_date.put(fphonenumber, calendar.getTime());
  120. if (parameter.isdebug()) {
  121. return getSucReturnObject().setData("验证码:" + password).toString();
  122. } else {
  123. Sms sms = new Sms();
  124. sms.sendOutMsg(fphonenumber, password);
  125. return getSucReturnObject().setData("验证码已发送,请注意查收!").toString();
  126. }
  127. }
  128. private String createPassWord() {
  129. String allChar = "1234567890";
  130. StringBuffer sb = new StringBuffer();
  131. Random random = new Random();
  132. for (int i = 0; i < 6; i++) {
  133. sb.append(allChar.charAt(random.nextInt(allChar.length())));
  134. }
  135. if (parameter.register_passwordmap.containsValue(sb.toString())) {
  136. return createPassWord();
  137. } else {
  138. return sb.toString();
  139. }
  140. }
  141. }