|
@@ -1,18 +1,40 @@
|
|
import { Provide } from '@midwayjs/decorator';
|
|
import { Provide } from '@midwayjs/decorator';
|
|
|
|
+import { GetModel } from 'free-midway-component';
|
|
import { InjectEntityModel } from '@midwayjs/typegoose';
|
|
import { InjectEntityModel } from '@midwayjs/typegoose';
|
|
import { ReturnModelType } from '@typegoose/typegoose';
|
|
import { ReturnModelType } from '@typegoose/typegoose';
|
|
import { BaseService } from 'free-midway-component';
|
|
import { BaseService } from 'free-midway-component';
|
|
import { User } from '../../entity/system/user.entity';
|
|
import { User } from '../../entity/system/user.entity';
|
|
|
|
+import { upperFirst } from 'lodash';
|
|
type modelType = ReturnModelType<typeof User>;
|
|
type modelType = ReturnModelType<typeof User>;
|
|
@Provide()
|
|
@Provide()
|
|
export class UserService extends BaseService<modelType> {
|
|
export class UserService extends BaseService<modelType> {
|
|
@InjectEntityModel(User)
|
|
@InjectEntityModel(User)
|
|
model: modelType;
|
|
model: modelType;
|
|
|
|
|
|
|
|
+ // 创建前
|
|
|
|
+ async createBefore(data) {
|
|
|
|
+ const { role } = data;
|
|
|
|
+ if (role && role.length > 1) data.status = '0';
|
|
|
|
+ else data.status = '1';
|
|
|
|
+ return data;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 修改后
|
|
|
|
+ async updateAfter(id, body) {
|
|
|
|
+ const arr = await this.detail(id);
|
|
|
|
+ const { status } = body;
|
|
|
|
+ if (status === '1' && arr.role_type !== 'User') {
|
|
|
|
+ const model = GetModel(upperFirst(arr.role_type));
|
|
|
|
+ const user = await model.findOne({ user: id }).lean();
|
|
|
|
+ await model.updateOne({ _id: user._id }, { status: '1' });
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
async detail(id) {
|
|
async detail(id) {
|
|
const arr = await this.model.findById(id).lean();
|
|
const arr = await this.model.findById(id).lean();
|
|
let role_type;
|
|
let role_type;
|
|
if (arr && arr.role && arr.role.length > 1) role_type = arr.role[1];
|
|
if (arr && arr.role && arr.role.length > 1) role_type = arr.role[1];
|
|
|
|
+ else role_type = arr.role[0];
|
|
return { ...arr, role_type };
|
|
return { ...arr, role_type };
|
|
}
|
|
}
|
|
}
|
|
}
|