437 lines
16 KiB
Python
437 lines
16 KiB
Python
import json
|
||
|
||
from flask import Flask
|
||
|
||
from applications.extensions.init_databases.data import user_data
|
||
|
||
|
||
def add_data(fields, data_list, obj):
|
||
from applications.extensions import db
|
||
for _data in data_list:
|
||
dept = obj()
|
||
for key, value in dict(zip(fields, _data)).items():
|
||
setattr(dept, key, value)
|
||
db.session.add(dept)
|
||
db.session.commit()
|
||
|
||
|
||
def create_dept_data():
|
||
"""创建化部门数据"""
|
||
from applications.models import Dept
|
||
_data_list = [
|
||
(1, 0, '总公司', 1, '就眠仪式', '12312345679', '123qq.com', 1, None, '这是总公司', None, '2021-06-01 17:23:20'),
|
||
(4, 1, '济南分公司', 2, '就眠仪式', '12312345678', '1234qq.com', 1, None, '这是济南', '2021-06-01 17:24:33',
|
||
'2021-06-01 17:25:19'),
|
||
(5, 1, '唐山分公司', 4, 'mkg', '12312345678', '123@qq.com', 1, None, '这是唐山', '2021-06-01 17:25:15',
|
||
'2021-06-01 17:25:20'),
|
||
(7, 4, '济南分公司开发部', 5, '就眠仪式', '12312345678', '123@qq.com', 1, None, '测试', '2021-06-01 17:27:39',
|
||
'2021-06-01 17:27:39'),
|
||
(8, 5, '唐山测试部', 6, 'mkg', '12312345678', '123@qq.com', 1, None, '测试部', '2021-06-01 17:28:27',
|
||
'2021-06-01 17:28:27'),
|
||
]
|
||
_fields = ['id', 'parent_id', 'dept_name', 'sort', 'leader', 'phone', 'email', 'status', 'remark', 'address',
|
||
'create_at', 'update_at']
|
||
add_data(_fields, _data_list, Dept)
|
||
|
||
|
||
def create_admin_dict_data():
|
||
from applications.models import DictData, DictType
|
||
|
||
_fields = ['id', 'data_label', 'data_value', 'type_code', 'is_default', 'enable', 'remark', 'create_time',
|
||
'update_time', ]
|
||
_data_list = [
|
||
(8, '男', 'boy', 'user_sex', None, 1, '男 : body', '2021-04-16 13:36:34', '2021-04-16 14:05:06'),
|
||
(9, '女', 'girl', 'user_sex', None, 1, '女 : girl', '2021-04-16 13:36:55', '2021-04-16 13:36:55'),
|
||
]
|
||
|
||
add_data(_fields, _data_list, DictData)
|
||
_fields = ['id', 'type_name', 'type_code', 'description', 'enable', 'create_time', 'update_time', ]
|
||
_data_list = [
|
||
(1, '用户性别', 'user_sex', '用户性别', 1, None, '2021-04-16 13:37:11')
|
||
]
|
||
add_data(_fields, _data_list, DictType)
|
||
|
||
|
||
def create_admin_photo():
|
||
from applications.models import Photo
|
||
|
||
_fields = [
|
||
'id',
|
||
'name',
|
||
'href',
|
||
'mime',
|
||
'size',
|
||
'create_time',
|
||
]
|
||
_data_list = [
|
||
(3, '6958819_pear-admin_1607443454_1.png',
|
||
'http://127.0.0.1:5000/_uploads/photos/6958819_pear-admin_1607443454_1.png', 'image/png', '2204',
|
||
'2021-03-19 18:53:02'),
|
||
(17, '1617291580000.jpg', 'http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg', 'image/png', '94211',
|
||
'2021-04-01 23:39:41'),
|
||
]
|
||
add_data(_fields, _data_list, Photo)
|
||
|
||
|
||
def create_admin_power():
|
||
from applications.models import Power
|
||
|
||
_data_list = \
|
||
[
|
||
(1, '系统管理', '0', '', None, None, '0', 'layui-icon layui-icon-set-fill', 1, None, None, 1),
|
||
(3, '用户管理', '1', 'admin:user:main', '/admin/user/', '_iframe', '1',
|
||
'layui-icon layui-icon layui-icon layui-icon layui-icon-rate', 1, None, None, 1),
|
||
(4, '权限管理', '1', 'admin:power:main', '/rights/', '_iframe', '1', None, 2, None, None, 1),
|
||
(9, '角色管理', '1', 'admin:role:main', '/admin/role', '_iframe', '1', 'layui-icon layui-icon-username', 2,
|
||
'2021-03-16 22:24:58', '2021-03-25 19:15:24', 1),
|
||
(
|
||
12, '系统监控', '1', 'admin:monitor:main', '/admin/monitor', '_iframe', '1',
|
||
'layui-icon layui-icon-vercode', 5,
|
||
'2021-03-18 22:05:19', '2021-03-25 19:15:27', 1),
|
||
(13, '日志管理', '1', 'admin:log:main', '/admin/log', '_iframe', '1', 'layui-icon layui-icon-read', 4,
|
||
'2021-03-18 22:37:10', '2021-06-03 11:06:25', 1),
|
||
(17, '文件管理', '0', '', '', '', '0', 'layui-icon layui-icon-camera', 2, '2021-03-19 18:56:23',
|
||
'2021-03-25 19:15:08', 1),
|
||
(18, '图片上传', '1', 'admin:file:main', '/admin/file', '_iframe', '17', 'layui-icon layui-icon-camera', 5,
|
||
'2021-03-19 18:57:19', '2021-03-25 19:15:13', 1),
|
||
(21, '权限增加', '2', 'admin:power:add', '', '', '4', 'layui-icon layui-icon-add-circle', 1,
|
||
'2021-03-22 19:43:52',
|
||
'2021-03-25 19:15:22', 1),
|
||
(22, '用户增加', '2', 'admin:user:add', '', '', '3', 'layui-icon layui-icon-add-circle', 1,
|
||
'2021-03-22 19:45:40',
|
||
'2021-03-25 19:15:17', 1),
|
||
(23, '用户编辑', '2', 'admin:user:edit', '', '', '3', 'layui-icon layui-icon-rate', 2, '2021-03-22 19:46:15',
|
||
'2021-03-25 19:15:18', 1),
|
||
(24, '用户删除', '2', 'admin:user:remove', '', '', '3', 'layui-icon None', 3, '2021-03-22 19:46:51',
|
||
'2021-03-25 19:15:18', 1),
|
||
(25, '权限编辑', '2', 'admin:power:edit', '', '', '4', 'layui-icon layui-icon-edit', 2, '2021-03-22 19:47:36',
|
||
'2021-03-25 19:15:22', 1),
|
||
(26, '用户删除', '2', 'admin:power:remove', '', '', '4', 'layui-icon layui-icon-delete', 3,
|
||
'2021-03-22 19:48:17',
|
||
'2021-03-25 19:15:23', 1),
|
||
(27, '用户增加', '2', 'admin:role:add', '', '', '9', 'layui-icon layui-icon-add-circle', 1,
|
||
'2021-03-22 19:49:09',
|
||
'2021-03-25 19:15:24', 1),
|
||
(28, '角色编辑', '2', 'admin:role:edit', '', '', '9', 'layui-icon layui-icon-edit', 2, '2021-03-22 19:49:41',
|
||
'2021-03-25 19:15:25', 1),
|
||
(
|
||
29, '角色删除', '2', 'admin:role:remove', '', '', '9', 'layui-icon layui-icon-delete', 3,
|
||
'2021-03-22 19:50:15',
|
||
'2021-03-25 19:15:26', 1),
|
||
(30, '角色授权', '2', 'admin:role:power', '', '', '9', 'layui-icon layui-icon-component', 4,
|
||
'2021-03-22 19:50:54',
|
||
'2021-03-25 19:15:26', 1),
|
||
(31, '图片增加', '2', 'admin:file:add', '', '', '18', 'layui-icon layui-icon-add-circle', 1,
|
||
'2021-03-22 19:58:05',
|
||
'2021-03-25 19:15:28', 1),
|
||
(32, '图片删除', '2', 'admin:file:delete', '', '', '18', 'layui-icon layui-icon-delete', 2,
|
||
'2021-03-22 19:58:45',
|
||
'2021-03-25 19:15:29', 1),
|
||
(44, '数据字典', '1', 'admin:dict:main', '/admin/dict', '_iframe', '1', 'layui-icon layui-icon-console', 6,
|
||
'2021-04-16 13:59:49', '2021-04-16 13:59:49', 1),
|
||
(45, '字典增加', '2', 'admin:dict:add', '', '', '44', 'layui-icon ', 1,
|
||
'2021-04-16 14:00:59', '2021-04-16 14:00:59', 1),
|
||
(46, '字典修改', '2', 'admin:dict:edit', '', '', '44', 'layui-icon ', 2, '2021-04-16 14:01:33',
|
||
'2021-04-16 14:01:33', 1),
|
||
(47, '字典删除', '2', 'admin:dict:remove', '', '', '44', 'layui-icon ', 3, '2021-04-16 14:02:06',
|
||
'2021-04-16 14:02:06', 1),
|
||
(48, '部门管理', '1', 'admin:dept:main', '/dept', '_iframe', '1', 'layui-icon layui-icon-group', 3,
|
||
'2021-06-01 16:22:11', '2021-06-01 16:22:11', 1),
|
||
(49, '部门增加', '2', 'admin:dept:add', '', '', '48', 'layui-icon None', 1, '2021-06-01 17:35:52',
|
||
'2021-06-01 17:36:15', 1),
|
||
(50, '部门编辑', '2', 'admin:dept:edit', '', '', '48', 'layui-icon ', 2, '2021-06-01 17:36:41',
|
||
'2021-06-01 17:36:41', 1),
|
||
(51, '部门删除', '2', 'admin:dept:remove', '', '', '48', 'layui-icon None', 3, '2021-06-01 17:37:15',
|
||
'2021-06-01 17:37:26', 1),
|
||
]
|
||
_fields = [
|
||
'id',
|
||
'name',
|
||
'type',
|
||
'code',
|
||
'url',
|
||
'open_type',
|
||
'parent_id',
|
||
'icon',
|
||
'sort',
|
||
'create_time',
|
||
'update_time',
|
||
'enable',
|
||
]
|
||
|
||
add_data(_fields, _data_list, Power)
|
||
|
||
|
||
def create_admin_role():
|
||
from applications.models import Role
|
||
|
||
_fields = [
|
||
'id',
|
||
'name',
|
||
'code',
|
||
'remark',
|
||
'details',
|
||
'sort',
|
||
'create_time',
|
||
'update_time',
|
||
'enable',
|
||
]
|
||
_data_list = [
|
||
(1, '管理员', 'admin', None, '管理员', 1, None, None, 1),
|
||
(2, '普通用户', 'common', None, '只有查看,没有增删改权限', 2, '2021-03-22 20:02:38', '2021-04-01 22:29:56', 1),
|
||
]
|
||
|
||
add_data(_fields, _data_list, Role)
|
||
|
||
|
||
def create_admin_role_power():
|
||
from applications.models import user_role
|
||
from applications.extensions import db
|
||
|
||
_data_list = [
|
||
(237, 1, 1),
|
||
(238, 3, 1),
|
||
(239, 4, 1),
|
||
(240, 9, 1),
|
||
(241, 12, 1),
|
||
(242, 13, 1),
|
||
(243, 17, 1),
|
||
(244, 18, 1),
|
||
(245, 21, 1),
|
||
(246, 22, 1),
|
||
(247, 23, 1),
|
||
(248, 24, 1),
|
||
(249, 25, 1),
|
||
(250, 26, 1),
|
||
(251, 27, 1),
|
||
(252, 28, 1),
|
||
(253, 29, 1),
|
||
(254, 30, 1),
|
||
(255, 31, 1),
|
||
(256, 32, 1),
|
||
(257, 44, 1),
|
||
(258, 45, 1),
|
||
(259, 46, 1),
|
||
(260, 47, 1),
|
||
(261, 48, 1),
|
||
(262, 49, 1),
|
||
(263, 50, 1),
|
||
(264, 51, 1),
|
||
(265, 1, 2),
|
||
(266, 3, 2),
|
||
(267, 4, 2),
|
||
(268, 9, 2),
|
||
(269, 12, 2),
|
||
(270, 13, 2),
|
||
(271, 17, 2),
|
||
(272, 18, 2),
|
||
(273, 44, 2),
|
||
(274, 48, 2),
|
||
]
|
||
|
||
# add_data(_fields, _data_list, UserRole)
|
||
for data in _data_list:
|
||
db.session.execute('insert into rt_role_power VALUES (%s, %s, %s);' % data)
|
||
db.session.commit()
|
||
|
||
|
||
def create_admin_user():
|
||
from applications.models import User
|
||
|
||
_fields = [
|
||
'id',
|
||
'username',
|
||
'password_hash',
|
||
'create_at',
|
||
'update_at',
|
||
'enable',
|
||
'realname',
|
||
'remark',
|
||
'avatar',
|
||
'dept_id',
|
||
]
|
||
_data_list = [
|
||
(1, 'admin', 'pbkdf2:sha256:150000$raM7mDSr$58fe069c3eac01531fc8af85e6fc200655dd2588090530084d182e6ec9d52c85',
|
||
None, '2021-06-01 17:28:55', 1, '超级管理', '要是不能把握时机,就要终身蹭蹬,一事无成!',
|
||
'http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg', 1),
|
||
(7, 'test', 'pbkdf2:sha256:150000$cRS8bYNh$adb57e64d929863cf159f924f74d0634f1fecc46dba749f1bfaca03da6d2e3ac',
|
||
'2021-03-22 20:03:42', '2021-06-01 17:29:47', 1, '超级管理', '要是不能把握时机,就要终身蹭蹬,一事无成',
|
||
'/static/admin/admin/images/avatar.jpg', 1),
|
||
(8, 'wind', 'pbkdf2:sha256:150000$skME1obT$6a2c20cd29f89d7d2f21d9e373a7e3445f70ebce3ef1c3a555e42a7d17170b37',
|
||
'2021-06-01 17:30:39', '2021-06-01 17:30:52', 1, '风', None, '/static/admin/admin/images/avatar.jpg', 7),
|
||
]
|
||
|
||
add_data(_fields, _data_list, User)
|
||
|
||
|
||
def create_admin_user_role() -> object:
|
||
from applications.extensions import db
|
||
|
||
_data_list = [
|
||
(21, 1, 1),
|
||
(22, 7, 2),
|
||
(24, 8, 2),
|
||
]
|
||
|
||
# add_data(_fields, _data_list, UserRole)
|
||
for data in _data_list:
|
||
db.session.execute('insert into rt_user_role VALUES (%s, %s, %s);' % data)
|
||
db.session.commit()
|
||
|
||
|
||
def create_example():
|
||
from applications.models import DictData
|
||
|
||
_fields = []
|
||
_data_list = []
|
||
|
||
add_data(_fields, _data_list, DictData)
|
||
|
||
|
||
course_data = [
|
||
{'id': 1, 'name': '基础课'},
|
||
{'id': 2, 'name': '进阶课'},
|
||
{'id': 3, 'name': '爬虫课'},
|
||
{'id': 4, 'name': '数据分析课'},
|
||
{'id': 5, 'name': '全栈课程'},
|
||
{'id': 6, 'name': '自动化办公专题'},
|
||
{'id': 7, 'name': '反反爬专题'},
|
||
{'id': 8, 'name': 'JavaScript解密专题'},
|
||
{'id': 9, 'name': 'Scrapy框架专题'},
|
||
]
|
||
|
||
phase_data = [
|
||
{'name': '基础课'},
|
||
{'name': '进阶'},
|
||
{'name': '爬虫'},
|
||
{'name': '数据分析'},
|
||
{'name': '全栈课程'}
|
||
]
|
||
|
||
|
||
def register_script(app: Flask):
|
||
@app.cli.command()
|
||
def init_db():
|
||
"""数据库初始化"""
|
||
create_dept_data()
|
||
create_admin_dict_data()
|
||
create_admin_photo()
|
||
create_admin_power()
|
||
create_admin_role()
|
||
create_admin_role_power()
|
||
create_admin_user()
|
||
create_admin_user_role()
|
||
|
||
@app.cli.command()
|
||
def turn():
|
||
from applications.extensions import db
|
||
db.drop_all()
|
||
db.create_all()
|
||
|
||
@app.cli.command()
|
||
def init_vip_member():
|
||
from applications.models.vip import VipMember, Course, Phase
|
||
from applications.extensions import db
|
||
|
||
course_list = []
|
||
|
||
for data in course_data:
|
||
course = Course()
|
||
course.name = data.get('name')
|
||
db.session.add(course)
|
||
course_list.append(course_list)
|
||
|
||
for _phase in phase_data:
|
||
for i in range(1, 11):
|
||
print(_phase['name'], i)
|
||
phase = Phase()
|
||
phase.name = _phase['name']
|
||
phase.phase = i
|
||
db.session.add(phase)
|
||
|
||
db.session.commit()
|
||
base_course = Course.query.get(1)
|
||
adv_course = Course.query.get(2)
|
||
spider_course = Course.query.get(3)
|
||
ana_course = Course.query.get(4)
|
||
stack_course = Course.query.get(5)
|
||
|
||
for data in user_data:
|
||
user = VipMember()
|
||
user.id = int(data['id'])
|
||
user.create_at = data['date']
|
||
user.username = data['name']
|
||
user.wx = data['wx']
|
||
user.qq = data['qq']
|
||
user.account = data['account']
|
||
user.phase = int(data['phase'])
|
||
user.remark = data['remark']
|
||
print('rights', data['rights'])
|
||
rights = int(data['rights']) if data['rights'] else 0
|
||
|
||
user.courses.append(base_course)
|
||
if rights == 1:
|
||
user.courses.append(adv_course)
|
||
if rights == 3:
|
||
user.courses.append(spider_course)
|
||
if rights == 4:
|
||
user.courses.append(adv_course)
|
||
user.courses.append(base_course)
|
||
if rights == 5:
|
||
user.courses.append(ana_course)
|
||
if rights == 7:
|
||
user.courses.append(stack_course)
|
||
if rights == 8:
|
||
user.courses.append(spider_course)
|
||
user.courses.append(ana_course)
|
||
if rights == 9:
|
||
user.courses.append(adv_course)
|
||
user.courses.append(spider_course)
|
||
user.courses.append(ana_course)
|
||
if rights == 10:
|
||
user.courses.append(spider_course)
|
||
user.courses.append(stack_course)
|
||
if rights == 11:
|
||
user.courses.append(adv_course)
|
||
user.courses.append(spider_course)
|
||
user.courses.append(stack_course)
|
||
if rights == 16:
|
||
user.courses.append(adv_course)
|
||
user.courses.append(spider_course)
|
||
user.courses.append(ana_course)
|
||
user.courses.append(stack_course)
|
||
|
||
if data['base']:
|
||
base_list = data['base'].replace(',', ',').split(',')
|
||
print(base_list)
|
||
for rou in base_list:
|
||
print('rou', rou)
|
||
x = Phase.query.filter(Phase.name == '基础课').filter(Phase.phase == int(rou)).first()
|
||
user.phases.append(x)
|
||
print(x)
|
||
if data['adv']:
|
||
adv_list = data['adv'].replace(',', ',').split(',')
|
||
for rou in adv_list:
|
||
x = Phase.query.filter(Phase.name == '高级开发').filter(Phase.phase == int(rou)).first()
|
||
user.phases.append(x)
|
||
print(adv_list)
|
||
if data['spider']:
|
||
spider_list = data['spider'].replace(',', ',').split(',')
|
||
for rou in spider_list:
|
||
x = Phase.query.filter(Phase.name == '爬虫').filter(Phase.phase == int(rou)).first()
|
||
user.phases.append(x)
|
||
print(spider_list)
|
||
if data['ana']:
|
||
ana_list = data['ana'].replace(',', ',').split(',')
|
||
for rou in ana_list:
|
||
x = Phase.query.filter(Phase.name == '数据分析').filter(Phase.phase == int(rou)).first()
|
||
user.phases.append(x)
|
||
print(ana_list)
|
||
if data['stack']:
|
||
stack_list = data['stack'].replace(',', ',').split(',')
|
||
for rou in stack_list:
|
||
x = Phase.query.filter(Phase.name == '全栈课程').filter(Phase.phase == int(rou)).first()
|
||
user.phases.append(x)
|
||
print(stack_list)
|
||
db.session.commit()
|