123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- import { Autoload, Init, Scope, ScopeEnum } from '@midwayjs/core';
- import { InjectEntityModel } from '@midwayjs/typegoose';
- import { ReturnModelType } from '@typegoose/typegoose';
- import { Types } from 'mongoose';
- import { Admin } from '../../entity/system/admin.entity';
- import { DictData } from '../../entity/system/dictData.entity';
- import { DictType } from '../../entity/system/dictType.entity';
- import { Menus } from '../../entity/system/menus.entity';
- import { Role } from '../../entity/system/role.entity';
- const ObjectId = Types.ObjectId;
- @Autoload()
- @Scope(ScopeEnum.Singleton)
- export class InitService {
- @InjectEntityModel(Admin)
- adminModel: ReturnModelType<typeof Admin>;
- @InjectEntityModel(Role)
- roleModel: ReturnModelType<typeof Role>;
- @InjectEntityModel(Menus)
- menusModel: ReturnModelType<typeof Menus>;
- @InjectEntityModel(DictType)
- dictTypeModel: ReturnModelType<typeof DictType>;
- @InjectEntityModel(DictData)
- dictDataModel: ReturnModelType<typeof DictData>;
- @Init()
- async init() {
- console.log('to init');
- this.adminUser();
- this.initRole();
- this.initMenus();
- this.initDict();
- }
- async adminUser() {
- const data = {
- account: 'admin',
- password: '1qaz2wsx',
- nick_name: '系统管理员',
- is_super: '0',
- };
- const is_exist = await this.adminModel.count({ is_super: '0' });
- if (!is_exist) return await this.adminModel.create(data);
- return;
- }
- async initRole() {
- const num = await this.roleModel.count();
- if (num > 0) return;
- const datas = [{ name: '管理员', code: 'admin' }];
- await this.roleModel.insertMany(datas);
- }
- async initMenus() {
- const num = await this.menusModel.count();
- if (num > 0) return;
- const datas: any = [
- {
- name: '首页',
- order_num: 1,
- path: '/',
- component: '/home/index',
- type: '1',
- route_name: 'home',
- },
- ];
- // 系统设置
- const smId = new ObjectId();
- const systemMenus = [
- {
- _id: smId,
- name: '系统设置',
- path: '/system',
- order_num: 2,
- type: '0',
- route_name: 'system',
- is_default: '0',
- },
- {
- name: '目录设置',
- parent_id: smId.toString(),
- order_num: 1,
- path: '/system/menus',
- component: '/system/menus/index',
- type: '1',
- route_name: 'system_menus',
- config: [
- {
- zh: '添加',
- code: 'add',
- },
- {
- zh: '修改',
- code: 'update',
- },
- {
- zh: '添加下一级',
- code: 'addNext',
- },
- {
- zh: '删除',
- code: 'delete',
- },
- ],
- is_default: '0',
- },
- {
- name: '角色管理',
- parent_id: smId.toString(),
- order_num: 2,
- path: '/system/role',
- component: '/system/role/index',
- type: '1',
- route_name: 'system_role',
- is_default: '0',
- config: [
- {
- zh: '添加',
- code: 'add',
- },
- {
- zh: '修改',
- code: 'update',
- },
- {
- zh: '使用',
- code: 'toAbled',
- },
- {
- zh: '禁用',
- code: 'toDisabled',
- },
- {
- zh: '删除',
- code: 'delete',
- },
- ],
- },
- {
- name: '字典管理',
- parent_id: smId.toString(),
- order_num: 3,
- path: '/system/dict',
- component: '/system/dict/index',
- type: '1',
- route_name: 'system_dict',
- is_default: '0',
- },
- {
- name: '字典数据',
- parent_id: smId.toString(),
- order_num: 4,
- path: '/system/dictData',
- component: '/system/dictData/index',
- type: '2',
- route_name: 'system_dict_data',
- is_default: '0',
- },
- ];
- // 用户管理
- const umId = new ObjectId();
- const userMenus = [
- {
- _id: umId,
- name: '用户管理',
- order_num: 3,
- path: '/user',
- type: '0',
- route_name: 'user',
- is_default: '1',
- },
- {
- name: '管理员用户',
- parent_id: umId.toString(),
- order_num: 1,
- path: '/user/admin',
- component: '/user/admin/index',
- type: '1',
- route_name: 'user_admin',
- },
- {
- name: '平台用户',
- parent_id: umId.toString(),
- order_num: 2,
- path: '/user/user',
- component: '/user/user/index',
- type: '1',
- route_name: 'user_user',
- },
- ];
- const password = {
- name: '账号管理',
- order_num: 999,
- path: '/acccount',
- component: '/acccount/index',
- type: '1',
- route_name: 'acccount',
- };
- datas.push(...systemMenus, ...userMenus, password);
- // 项目业务菜单
- const busMenus = [];
- datas.push(...busMenus);
- await this.menusModel.insertMany(datas);
- }
- async initRoleMenu(admin: Admin) {}
- async initDict() {
- const isUseType = [{ title: '是否使用', code: 'isUse', is_use: '0' }];
- const isUseData = [
- { code: 'isUse', label: '使用', value: '0', sort: 1, is_use: '0' },
- { code: 'isUse', label: '禁用', value: '1', sort: 2, is_use: '0' },
- ];
- await this.dictTypeModel.insertMany(isUseType);
- await this.dictDataModel.insertMany(isUseData);
- }
- }
|