feat: 升级midway,支持esm

This commit is contained in:
xiaojunnuo
2024-07-15 00:30:33 +08:00
parent 970c7fd8a0
commit 485e603b51
246 changed files with 3821 additions and 1532 deletions
@@ -6,9 +6,9 @@ import {
Post,
Provide,
Query,
} from '@midwayjs/decorator';
import { CrudController } from '../../../basic/crud-controller';
import { PermissionService } from '../service/permission-service';
} from '@midwayjs/core';
import { CrudController } from '../../../basic/crud-controller.js';
import { PermissionService } from '../service/permission-service.js';
/**
* 权限资源
@@ -6,9 +6,9 @@ import {
Post,
Provide,
Query,
} from '@midwayjs/decorator';
import { CrudController } from '../../../basic/crud-controller';
import { RoleService } from '../service/role-service';
} from '@midwayjs/core';
import { CrudController } from '../../../basic/crud-controller.js';
import { RoleService } from '../service/role-service.js';
/**
* 系统用户
@@ -6,12 +6,12 @@ import {
Body,
Query,
ALL,
} from '@midwayjs/decorator';
import { UserService } from '../service/user-service';
import { CrudController } from '../../../basic/crud-controller';
import { RoleService } from '../service/role-service';
import { PermissionService } from '../service/permission-service';
import { Constants } from '../../../basic/constants';
} from '@midwayjs/core';
import { UserService } from '../service/user-service.js';
import { CrudController } from '../../../basic/crud-controller.js';
import { RoleService } from '../service/role-service.js';
import { PermissionService } from '../service/permission-service.js';
import { Constants } from '../../../basic/constants.js';
/**
* 系统用户
@@ -14,6 +14,9 @@ export class UserEntity {
@Column({ comment: '密码', length: 100 })
password: string;
@Column({ name: 'password_version', comment: '密码版本' })
passwordVersion: number;
@Column({ name: 'nick_name', comment: '昵称', length: 100, nullable: true })
nickName: string;
@@ -1,5 +1,5 @@
import { EnumItem } from '../../../basic/enum-item';
import * as _ from 'lodash';
import { EnumItem } from '../../../basic/enum-item.js';
import * as _ from 'lodash-es';
class ResourceTypes {
MENU = new EnumItem('menu', '菜单', 'blue');
BTN = new EnumItem('btn', '按钮', 'green');
@@ -1,8 +1,8 @@
import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';
import { BaseService } from '../../../basic/base-service';
import { PermissionEntity } from '../entity/permission';
import { BaseService } from '../../../basic/base-service.js';
import { PermissionEntity } from '../entity/permission.js';
/**
* 权限资源
@@ -1,8 +1,8 @@
import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';
import { BaseService } from '../../../basic/base-service';
import { RolePermissionEntity } from '../entity/role-permission';
import { BaseService } from '../../../basic/base-service.js';
import { RolePermissionEntity } from '../entity/role-permission.js';
/**
* 角色->权限
@@ -1,13 +1,13 @@
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { In, Repository } from 'typeorm';
import { BaseService } from '../../../basic/base-service';
import { RoleEntity } from '../entity/role';
import { UserRoleService } from './user-role-service';
import { RolePermissionEntity } from '../entity/role-permission';
import { PermissionService } from './permission-service';
import * as _ from 'lodash';
import { RolePermissionService } from './role-permission-service';
import { BaseService } from '../../../basic/base-service.js';
import { RoleEntity } from '../entity/role.js';
import { UserRoleService } from './user-role-service.js';
import { RolePermissionEntity } from '../entity/role-permission.js';
import { PermissionService } from './permission-service.js';
import * as _ from 'lodash-es';
import { RolePermissionService } from './role-permission-service.js';
import { LRUCache } from 'lru-cache';
/**
* 角色
@@ -1,8 +1,8 @@
import { Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
import { Provide, Scope, ScopeEnum } from '@midwayjs/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';
import { BaseService } from '../../../basic/base-service';
import { UserRoleEntity } from '../entity/user-role';
import { BaseService } from '../../../basic/base-service.js';
import { UserRoleEntity } from '../entity/user-role.js';
/**
* 用户->角色
@@ -1,17 +1,18 @@
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/decorator';
import { Inject, Provide, Scope, ScopeEnum } from '@midwayjs/core';
import { InjectEntityModel } from '@midwayjs/typeorm';
import { Repository } from 'typeorm';
import { UserEntity } from '../entity/user';
import * as _ from 'lodash';
import { UserEntity } from '../entity/user.js';
import * as _ from 'lodash-es';
import md5 from 'md5';
import { CommonException } from '../../../basic/exception/common-exception';
import { BaseService } from '../../../basic/base-service';
import { RoleService } from './role-service';
import { PermissionService } from './permission-service';
import { UserRoleService } from './user-role-service';
import { Constants } from '../../../basic/constants';
import { UserRoleEntity } from '../entity/user-role';
import { CommonException } from '../../../basic/exception/common-exception.js';
import { BaseService } from '../../../basic/base-service.js';
import { RoleService } from './role-service.js';
import { PermissionService } from './permission-service.js';
import { UserRoleService } from './user-role-service.js';
import { Constants } from '../../../basic/constants.js';
import { UserRoleEntity } from '../entity/user-role.js';
import { randomText } from 'svg-captcha';
import bcrypt from 'bcryptjs';
/**
* 系统用户
@@ -58,8 +59,9 @@ export class UserService extends BaseService<UserEntity> {
if (!_.isEmpty(exists)) {
throw new CommonException('用户名已经存在');
}
const password = param.password ?? randomText(6);
param.password = md5(password); // 默认密码 建议未改密码不能登陆
const plainPassword = param.password ?? randomText(6);
param.passwordVersion = 2;
param.password = this.genPassword(plainPassword, param.passwordVersion); // 默认密码 建议未改密码不能登陆
await super.add(param);
//添加角色
if (param.roles && param.roles.length > 0) {
@@ -85,7 +87,8 @@ export class UserService extends BaseService<UserEntity> {
delete param.username;
if (!_.isEmpty(param.password)) {
param.password = md5(param.password);
param.passwordVersion = 2;
param.password = this.genPassword(param.password, param.passwordVersion);
} else {
delete param.password;
}
@@ -93,15 +96,30 @@ export class UserService extends BaseService<UserEntity> {
await this.roleService.updateRoles(param.id, param.roles);
}
private genPassword(plainPassword: any, passwordVersion: number) {
if (passwordVersion == null || passwordVersion <= 1) {
return md5(plainPassword);
}
const salt = bcrypt.genSaltSync(10);
return bcrypt.hashSync(plainPassword, salt);
}
async findOne(param) {
return this.repository.findOne({
where: param,
});
}
checkPassword(rawPassword: any, md5Password: any) {
// logger.info('md5', md5('123456'));
return md5(rawPassword) === md5Password;
async checkPassword(
rawPassword: any,
hashPassword: any,
passwordVersion: number
) {
if (passwordVersion == null || passwordVersion <= 1) {
return this.genPassword(rawPassword, passwordVersion) === hashPassword;
}
return bcrypt.compareSync(rawPassword, hashPassword); // true
}
/**
@@ -127,8 +145,12 @@ export class UserService extends BaseService<UserEntity> {
mobile: user.mobile || '',
phoneCode: user.phoneCode || '',
status: 1,
passwordVersion: 2,
});
newUser.password = md5(newUser.password);
newUser.password = this.genPassword(
newUser.password,
newUser.passwordVersion
);
await this.transaction(async txManager => {
newUser = await txManager.save(newUser);
@@ -145,7 +167,12 @@ export class UserService extends BaseService<UserEntity> {
async changePassword(userId: any, form: any) {
const user = await this.info(userId);
if (!this.checkPassword(form.password, user.password)) {
const passwordChecked = await this.checkPassword(
form.password,
user.password,
user.passwordVersion
);
if (!passwordChecked) {
throw new CommonException('原密码错误');
}
const param = {