123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- 'use strict';
- const assert = require('assert');
- const _ = require('lodash');
- const { ObjectId } = require('mongoose').Types;
- const { CrudService } = require('naf-framework-mongoose/lib/service');
- const { BusinessError, ErrorCode } = require('naf-core').Error;
- class RoomuserService extends CrudService {
- constructor(ctx) {
- super(ctx, 'room_user');
- this.model = this.ctx.model.Roomuser;
- this.umodel = this.ctx.model.User;
- }
- async create(data) {
- const { name, passwd } = data;
- assert(name, '用户名不能为空');
- assert(passwd, '密码不能为空');
- const { phone } = data;
- const has_phone = await this.model.findOne({ phone });
- if (has_phone) {
- throw new BusinessError('此手机号已被注册,请更换手机号');
- }
- const res = await this.model.create(data);
- if (res) {
- const newdata = {
- name,
- phone: data.phone,
- passwd,
- uid: res.id,
- role: data.role,
- hosname: data.hosname,
- deptname: data.deptname,
- remark: data.remark,
- };
- await this.ctx.service.user.create(newdata);
- }
- return res;
- }
- async update({ id }, data) {
- const user = await this.model.findById(id);
- const { phone } = data;
- const phoneList = await this.model.find({ phone });
- const is_has = phoneList.find(f => f.id !== id);
- if (is_has) throw new BusinessError('此手机号已被注册,请更换手机号');
- if (data.name) {
- user.name = data.name;
- }
- if (data.role) {
- user.role = data.role;
- }
- if (data.hosname) {
- user.hosname = data.hosname;
- }
- if (data.deptname) {
- user.deptname = data.deptname;
- }
- if (data.level) {
- user.level = data.level;
- }
- if (data.title) {
- user.title = data.title;
- }
- if (data.remark) {
- user.remark = data.remark;
- }
- if (data.openid) {
- user.openid = data.openid;
- }
- const res = await user.save();
- if (res) {
- const uu = await this.umodel.findOne({ uid: user.id });
- uu.name = data.name;
- uu.deptname = data.deptname;
- await uu.save();
- }
- return res;
- }
- async register(data) {
- const { name, phone, openid } = data;
- assert(name, '用户名不能为空');
- assert(phone, '电话号码不能为空');
- const has_phone = await this.model.findOne({ phone });
- if (has_phone) {
- throw new BusinessError('此手机号已被注册,请更换手机号');
- }
- const res = await this.model.create(data);
- if (res) {
- const newdata = {
- name,
- phone: data.phone,
- passwd: '12345678',
- uid: res.id,
- role: data.role,
- openid,
- hosname: data.hosname,
- deptname: data.deptname,
- remark: data.remark,
- };
- await this.ctx.service.user.create(newdata);
- }
- return res;
- }
- }
- module.exports = RoomuserService;
|