????
Current Path : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/controllers/dichvu/ |
Current File : C:/inetpub/vhost/sdoc.gdtsolutions.vn/package/app/controllers/dichvu/docgia.js |
var Database = require('../../models/Database'); var moment = require('moment'); var bcrypt = require('bcryptjs'); class ReaderController extends Database { constructor(params) { super(params); } static create(params) { return new ReaderController(params); } getReaders() { return this.select('SELECT ROW_NUMBER() OVER(ORDER BY Username) as RowNum,UUID,Username,Password,FullName,Gender,IdNumber,Birthday,Email,Telephone,Address, (SELECT COUNT(UUID) FROM DocReq WHERE CreatedBy = Account.UUID) reqCount FROM Account WHERE [Role] = 2 AND [State] > 0'); } async addReader(reader) { let input = { username: reader['username'], password: await bcrypt.hash(reader['newpassword'], 10), fullname: reader['fullname'], gender: reader['gender'], idnumber: reader['idnumber'], birthday: moment(reader['birthday'], 'DD/MM/YYYY').isValid() ? moment(reader['birthday'], 'DD/MM/YYYY').toDate() : null, email: reader['email'] || null, phone: reader['phone'] || null, address: reader['address'] || null, role: 2 }; return await this.query('INSERT INTO Account(Username,Password,FullName,Gender,IdNumber,Birthday,Email,Telephone,Address,Role,[State]) VALUES (@username,@password,@fullname,@gender,@idnumber,@birthday,@email,@phone,@address,@role,1)', input); } async editReader(reader) { let input = { id: reader['id'], username: reader['username'], fullname: reader['fullname'], password: reader['newpassword'] ? await bcrypt.hash(reader['newpassword'], 10) : null, gender: reader['gender'], idnumber: reader['idnumber'], birthday: moment(reader['birthday'], 'DD/MM/YYYY').isValid() ? moment(reader['birthday'], 'DD/MM/YYYY').toDate() : null, email: reader['email'] || null, phone: reader['phone'] || null, address: reader['address'] || null, }; let update = []; if (typeof reader['username'] != 'undefined') update.push('Username = @username'); if (typeof reader['fullname'] != 'undefined') update.push('FullName = @fullname'); if (reader['password']) update.push('Password = @password'); if (typeof reader['gender'] != 'undefined') update.push('Gender = @gender'); if (typeof reader['idnumber'] != 'undefined') update.push('IdNumber = @idnumber'); if (typeof reader['birthday'] != 'undefined') update.push('Birthday = @birthday'); if (typeof reader['email'] != 'undefined') update.push('Email = @email'); if (typeof reader['phone'] != 'undefined') update.push('Telephone = @phone'); if (typeof reader['address'] != 'undefined') update.push('Address = @address'); if (update.length) return await this.query(`UPDATE Account SET ${update.join(',')} WHERE UUID = @id`, input); return null; } deleteReader(readerId) { return this.query('UPDATE Account SET [State] = 0 WHERE UUID = @id AND [Role] = 2', { id: readerId }) } } module.exports = ReaderController;