roomuser.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. 'use strict';
  2. const assert = require('assert');
  3. const _ = require('lodash');
  4. const { ObjectId } = require('mongoose').Types;
  5. const { CrudService } = require('naf-framework-mongoose/lib/service');
  6. const { BusinessError, ErrorCode } = require('naf-core').Error;
  7. class RoomuserService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx, 'room_user');
  10. this.model = this.ctx.model.Roomuser;
  11. this.umodel = this.ctx.model.User;
  12. }
  13. async create(data) {
  14. const { name, passwd } = data;
  15. assert(name, '用户名不能为空');
  16. assert(passwd, '密码不能为空');
  17. const { phone } = data;
  18. const has_phone = await this.model.findOne({ phone });
  19. if (has_phone) {
  20. throw new BusinessError('此手机号已被注册,请更换手机号');
  21. }
  22. const res = await this.model.create(data);
  23. if (res) {
  24. const newdata = {
  25. name,
  26. phone: data.phone,
  27. passwd,
  28. uid: res.id,
  29. role: data.role,
  30. hosname: data.hosname,
  31. deptname: data.deptname,
  32. remark: data.remark,
  33. };
  34. await this.ctx.service.user.create(newdata);
  35. }
  36. return res;
  37. }
  38. async update({ id }, data) {
  39. const user = await this.model.findById(id);
  40. const { phone } = data;
  41. const phoneList = await this.model.find({ phone });
  42. const is_has = phoneList.find(f => f.id !== id);
  43. if (is_has) throw new BusinessError('此手机号已被注册,请更换手机号');
  44. if (data.name) {
  45. user.name = data.name;
  46. }
  47. if (data.role) {
  48. user.role = data.role;
  49. }
  50. if (data.hosname) {
  51. user.hosname = data.hosname;
  52. }
  53. if (data.deptname) {
  54. user.deptname = data.deptname;
  55. }
  56. if (data.level) {
  57. user.level = data.level;
  58. }
  59. if (data.title) {
  60. user.title = data.title;
  61. }
  62. if (data.remark) {
  63. user.remark = data.remark;
  64. }
  65. if (data.openid) {
  66. user.openid = data.openid;
  67. }
  68. const res = await user.save();
  69. if (res) {
  70. const uu = await this.umodel.findOne({ uid: user.id });
  71. uu.name = data.name;
  72. uu.deptname = data.deptname;
  73. await uu.save();
  74. }
  75. return res;
  76. }
  77. async register(data) {
  78. const { name, phone, openid } = data;
  79. assert(name, '用户名不能为空');
  80. assert(phone, '电话号码不能为空');
  81. const has_phone = await this.model.findOne({ phone });
  82. if (has_phone) {
  83. throw new BusinessError('此手机号已被注册,请更换手机号');
  84. }
  85. const res = await this.model.create(data);
  86. if (res) {
  87. const newdata = {
  88. name,
  89. phone: data.phone,
  90. passwd: '12345678',
  91. uid: res.id,
  92. role: data.role,
  93. openid,
  94. hosname: data.hosname,
  95. deptname: data.deptname,
  96. remark: data.remark,
  97. };
  98. await this.ctx.service.user.create(newdata);
  99. }
  100. return res;
  101. }
  102. }
  103. module.exports = RoomuserService;