account.js 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. const db_user = require('../database/d_user')
  2. const handle = require('../until/handle')
  3. const field = require('../maps/field')
  4. const codeMap = require('../maps/rcodeMap')
  5. const {userType} = require("../maps/field");
  6. // 处理账号的注册登录,
  7. /**
  8. * 用户登录,返回用户名
  9. * @param userType
  10. * @param account
  11. * @param passwd
  12. * @returns {Promise<*>}
  13. */
  14. async function login(userType = field.userType,account,passwd){
  15. let [err,result] = await handle(db_user.login(userType,account,passwd));
  16. if(err){throw err}
  17. // 查看是否有结果
  18. if (result.length < 1 ) {throw {rcode:codeMap.notFound,msg:'账号或者密码错误'}}
  19. // 账号被冻结
  20. if (result[0].state == field.userFreezeState ){throw {rcode:codeMap.permissionDenied,msg:'账号被冻结'}}
  21. return result[0].account;
  22. }
  23. /**
  24. * 修改账户密码
  25. * @param type
  26. * @param account
  27. * @param oldPasswd
  28. * @param newPasswd
  29. * @returns {Promise<void>}
  30. */
  31. async function changePasswd(type,account,oldPasswd,newPasswd){
  32. // 根据账号和原密码查找id
  33. let [err,result] = await handle(db_user.login(type,account,oldPasswd));
  34. if(err)throw err;
  35. if (result.length < 1 ) {throw {rcode:codeMap.notFound,msg:'密码错误'}}
  36. let id = result[0].id;
  37. [err,result] = await handle(db_user.changePasswd(id,newPasswd));
  38. if(err)throw err;
  39. return;
  40. }
  41. /**
  42. * 修改指定账户的手机号
  43. * @param type
  44. * @param account
  45. * @param passwd
  46. * @param newPhone
  47. * @returns {Promise<void>}
  48. */
  49. async function changePhone(type,account,passwd,newPhone){
  50. // 根据账号和原密码查找id
  51. let [err,result] = await handle(db_user.login(type,account,passwd));
  52. if(err)throw err;
  53. if (result.length < 1 ) {throw {rcode:codeMap.notFound,msg:'密码错误'}}
  54. // 查看是否有对应的手机号
  55. let id = result[0].id;
  56. [err,result] = await handle(db_user.findPhoneUser(type,newPhone));
  57. if(err)throw err;
  58. if(result[0].total){throw {rcode:codeMap.dataRepeat,msg:'手机号已经使用'}}
  59. // 修改手机号
  60. [err,result] = await handle(db_user.changePhone(id,newPhone));
  61. if(err)throw err;
  62. return result;
  63. }
  64. /**
  65. * 用户注册
  66. * @param type
  67. * @param account
  68. * @param passwd
  69. * @param nickName
  70. * @returns {Promise<void>}
  71. */
  72. async function register(type,account,passwd,nickName){
  73. // 根据账号和原密码查找id
  74. let [err,result] = await handle(db_user.findAccountUser(type,account));
  75. if(err)throw err;
  76. if(result[0].total){throw {rcode:codeMap.dataRepeat,msg:'账号重复'}}
  77. // 新增用户
  78. [err,result] = await handle(db_user.register(type,nickName,account,passwd));
  79. if(err)throw err;
  80. // 注册成功
  81. return result;
  82. }
  83. module.exports = {
  84. register,
  85. changePhone,
  86. changePasswd,
  87. login,
  88. }