roomuser.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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.ctx.service.user.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. deptname: data.deptname,
  31. remark: data.remark,
  32. };
  33. await this.umodel.create(newdata);
  34. }
  35. return res;
  36. }
  37. async update({ id }, data) {
  38. const user = await this.model.findById(id);
  39. const { phone } = data;
  40. const phoneList = await this.model.find({ phone });
  41. const is_has = phoneList.find(f => f.id !== id);
  42. if (is_has) throw new BusinessError('此手机号已被注册,请更换手机号');
  43. if (data.name) {
  44. user.name = data.name;
  45. }
  46. if (data.role) {
  47. user.role = data.role;
  48. }
  49. if (data.deptname) {
  50. user.deptname = data.deptname;
  51. }
  52. if (data.level) {
  53. user.level = data.level;
  54. }
  55. if (data.title) {
  56. user.title = data.title;
  57. }
  58. if (data.remark) {
  59. user.remark = data.remark;
  60. }
  61. if (data.openid) {
  62. user.openid = data.openid;
  63. }
  64. const res = await user.save();
  65. if (res) {
  66. const uu = await this.umodel.findOne({ uid: user.id });
  67. uu.name = data.name;
  68. uu.deptname = data.deptname;
  69. await this.umodel.save();
  70. }
  71. return res;
  72. }
  73. }
  74. module.exports = RoomuserService;