返回 AiToEarn
manager.service.ts
根目录 / project / aitoearn-electron / server / src / manager / manager.service.ts
1 import { Injectable } from '@nestjs/common';
2 import { InjectModel } from '@nestjs/mongoose';
3 import { Model } from 'mongoose';
4 import { Manager, ManagerStatus } from '../db/schema/manager.schema';
5 import { CreateManagerDto, UpdateManagerDto } from './dto/manager.dto';
6 import { encryptPassword } from '../util/password.util';
7
8 @Injectable()
9 export class ManagerService {
10 constructor(
11 @InjectModel(Manager.name)
12 private readonly managerModel: Model<Manager>,
13 ) {}
14
15 async findByAccount(account: string) {
16 return this.managerModel.findOne({
17 account,
18 status: ManagerStatus.OPEN,
19 });
20 }
21
22 async findById(id: string) {
23 return this.managerModel.findById(id);
24 }
25
26 async create(createManagerDto: CreateManagerDto) {
27 const { password, salt } = encryptPassword(createManagerDto.password);
28 const manager = new this.managerModel({
29 ...createManagerDto,
30 password,
31 salt,
32 });
33 return manager.save();
34 }
35
36 async update(id: string, updateManagerDto: UpdateManagerDto) {
37 if (updateManagerDto.password) {
38 const { password, salt } = encryptPassword(updateManagerDto.password);
39 updateManagerDto.password = password;
40 updateManagerDto.salt = salt;
41 }
42 return this.managerModel.findByIdAndUpdate(
43 id,
44 { $set: updateManagerDto },
45 { new: true },
46 );
47 }
48
49 async delete(id: string) {
50 return this.managerModel.findByIdAndUpdate(
51 id,
52 { $set: { status: ManagerStatus.DELETE } },
53 { new: true },
54 );
55 }
56 }
57
57 lines TYPESCRIPT