表结构添加,人员权限控制

This commit is contained in:
yujj128
2025-10-14 10:30:17 +08:00
parent be0bc661e2
commit a915896f3e
3 changed files with 107 additions and 15 deletions

View File

@@ -217,6 +217,22 @@ def run_sql_2(id: str, sql: str):
return jsonify({"type": "sql_error", "error": str(e)})
@app.flask_app.route("/yj_sqlbot/api/v0/verify", methods=["GET"])
def verify_user():
try:
id = request.args.get("user_id")
users = config('ALLOWED_USERS', cast=list, default=[])
for user in users:
if user == id:
return jsonify({"type": "success", "verify": True})
else:
return jsonify({"type": "success", "verify": False})
except Exception as e:
logger.error(f"verify user failed:{e}")
return jsonify({"type": "error", "error": str(e)})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8084, debug=False)

View File

@@ -2,7 +2,9 @@ from service.cus_vanna_srevice import CustomVanna
from util import train_ddl
from util import q_and_a_dict
table_ddls = [
train_ddl.person_ddl_sql,train_ddl.rule_ddl,train_ddl.user_status_ddl
train_ddl.person_database_ddl,train_ddl.person_attendance_rule_ddl,
train_ddl.user_status_ddl,train_ddl.user_attendance_ddl,train_ddl.person_ac_position,
train_ddl.person_ac_area,train_ddl.org_orgs_ddl
]
list_documentions = [
train_ddl.train_document,

View File

@@ -1,4 +1,4 @@
person_ddl_sql = """
person_database_ddl = """
{
"db_name":"YJOA_APPSERVICE_DB",
@@ -470,16 +470,7 @@ person_ddl_sql = """
"""
train_document='''
语法为达梦数据库语法;
查询地址籍贯公司单位时尽量使用like查询;
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段id工号姓名单位以及用户问题中需要查询的字段;
表字段信息以及字段枚举信息在values下注意相关字段枚举值的转换;
查询单位信息时内部单位和外部单位都需要查询用OR条件查询;
'''
rule_ddl='''
person_attendance_rule_ddl='''
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_attendance_rules",
@@ -804,7 +795,75 @@ user_attendance_ddl = '''
}
'''
person_rules_ddl = '''
{
"db_name": "YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_rules",
"table_comment": "人员考勤规则关联表,关联人员与考勤规则",
"columns": [
{
"name": "id",
"type": "VARCHAR(50)",
"comment": "主键ID",
"role": "dimension",
"tags": ["主键", "ID标识"]
},
{
"name": "person_id",
"type": "VARCHAR(50)",
"comment": "人员ID",
"role": "dimension",
"tags": ["人员标识", "外键"]
},
{
"name": "person_name",
"type": "VARCHAR(50)",
"comment": "人员姓名",
"role": "dimension",
"tags": ["人员信息", "姓名"]
},
{
"name": "rules_id",
"type": "VARCHAR(50)",
"comment": "考勤规则ID",
"role": "dimension",
"tags": ["规则标识", "外键"]
},
{
"name": "dr",
"type": "CHAR(2)",
"comment": "删除标志",
"value": {
"0": "正常",
"1": "删除"
},
"role": "dimension",
"tags": ["状态标识", "软删除", "枚举"]
}
],
"relationships": [
{
"from": "person_id",
"to_table": "t_yj_person_database",
"to_field": "id",
"type": "foreign_key",
"comment": "关联人员基本信息表"
},
{
"from": "rules_id",
"to_table": "t_yj_person_attendance_rules",
"to_field": "id",
"type": "foreign_key",
"comment": "关联考勤规则表"
}
],
"tags": ["人员考勤", "规则关联", "关系映射", "考勤管理"]
}
'''
person_ac_position = '''
],
{
"db_name":"YJOA_APPSERVICE_DB",
"table_name": "t_yj_person_ac_position",
@@ -833,8 +892,13 @@ person_ac_position = '''
"type": "foreign_key",
"comment": "关联门禁区域关系表"
},
],
{
"from": "position",
"to_table": "t_yj_person_ac_area",
"to_field": "area",
"type": "foreign_key",
"comment": "关联门禁区域关系表"
},
"tags": ["门禁控制点","门禁位置"]
}
'''
@@ -921,4 +985,14 @@ org_orgs_ddl = '''
"tags": ["部门id","部门信息","部门名称"]
}
'''
'''
train_document = '''
语法为达梦数据库语法;
查询地址籍贯公司单位时尽量使用like查询;
查询人员信息时,由于数据表字段过多。只需要展示人员关键信息字段id工号姓名单位以及用户问题中需要查询的字段;
表字段信息以及字段枚举信息在values下注意相关字段枚举值的转换;
查询单位信息时内部单位和外部单位都需要查询用OR条件查询;
'''