system.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. from datetime import datetime
  2. from typing import Optional
  3. from sqlalchemy import BigInteger, String, DateTime, Integer
  4. from sqlalchemy.orm import Mapped, mapped_column, DeclarativeBase
  5. from app.database import Base
  6. class TenantEntity(Base):
  7. __abstract__ = True
  8. id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False, comment="主键ID")
  9. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000", comment="租户编号")
  10. create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
  11. create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
  12. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
  13. update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
  14. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
  15. del_flag: Mapped[Optional[int]] = mapped_column(Integer, default=0, comment="删除标志(0代表存在 2代表删除)")
  16. class SysUser(Base):
  17. __tablename__ = "sys_user"
  18. user_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  19. dept_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="部门ID")
  20. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000")
  21. user_name: Mapped[str] = mapped_column(String(30), comment="用户账号")
  22. nick_name: Mapped[str] = mapped_column(String(30), default="", comment="用户昵称")
  23. user_type: Mapped[str] = mapped_column(String(10), default="sys_user", comment="用户类型")
  24. account_type: Mapped[Optional[str]] = mapped_column(String(255), default="1", comment="账号类型(1职工 2学生)")
  25. email: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="用户邮箱")
  26. phonenumber: Mapped[Optional[str]] = mapped_column(String(11), default="", comment="手机号码")
  27. sex: Mapped[str] = mapped_column(String(1), default="0", comment="用户性别")
  28. avatar: Mapped[Optional[str]] = mapped_column(String(500), default="", comment="头像地址")
  29. password: Mapped[str] = mapped_column(String(100), default="", comment="密码")
  30. status: Mapped[str] = mapped_column(String(1), default="0", comment="帐号状态(0正常 1停用)")
  31. del_flag: Mapped[str] = mapped_column(String(1), default="0", comment="删除标志(0代表存在 2代表删除)")
  32. login_ip: Mapped[Optional[str]] = mapped_column(String(128), default="", comment="最后登录IP")
  33. login_date: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="最后登录时间")
  34. create_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建者")
  35. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="创建时间")
  36. update_by: Mapped[Optional[int]] = mapped_column(BigInteger, comment="更新者")
  37. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="更新时间")
  38. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
  39. class SysDept(Base):
  40. __tablename__ = "sys_dept"
  41. dept_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  42. parent_id: Mapped[int] = mapped_column(BigInteger, default=0, comment="父部门ID")
  43. ancestors: Mapped[str] = mapped_column(String(255), default="", comment="祖级列表")
  44. dept_name: Mapped[str] = mapped_column(String(30), default="", comment="部门名称")
  45. dept_category: Mapped[Optional[str]] = mapped_column(String(100), comment="部门类别")
  46. order_num: Mapped[int] = mapped_column(Integer, default=0, comment="显示顺序")
  47. leader: Mapped[Optional[int]] = mapped_column(BigInteger, comment="负责人(用户ID)")
  48. phone: Mapped[Optional[str]] = mapped_column(String(11), default="", comment="联系电话")
  49. email: Mapped[Optional[str]] = mapped_column(String(50), default="", comment="邮箱")
  50. status: Mapped[str] = mapped_column(String(1), default="0", comment="部门状态(0正常 1停用)")
  51. del_flag: Mapped[str] = mapped_column(String(1), default="0", comment="删除标志(0代表存在 2代表删除)")
  52. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000")
  53. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  54. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  55. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  56. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  57. class SysDictData(Base):
  58. __tablename__ = "sys_dict_data"
  59. dict_code: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  60. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000")
  61. dict_sort: Mapped[int] = mapped_column(Integer, default=0, comment="字典排序")
  62. dict_label: Mapped[str] = mapped_column(String(100), default="", comment="字典标签")
  63. dict_value: Mapped[str] = mapped_column(String(100), default="", comment="字典键值")
  64. dict_type: Mapped[str] = mapped_column(String(100), default="", comment="字典类型")
  65. css_class: Mapped[Optional[str]] = mapped_column(String(100), default="", comment="样式属性")
  66. list_class: Mapped[str] = mapped_column(String(100), default="", comment="表格回显样式")
  67. is_default: Mapped[str] = mapped_column(String(1), default="N", comment="是否默认(Y是 N否)")
  68. create_dept: Mapped[Optional[int]] = mapped_column(BigInteger, comment="创建部门")
  69. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  70. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  71. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  72. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  73. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
  74. class SysDictType(Base):
  75. __tablename__ = "sys_dict_type"
  76. dict_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  77. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000")
  78. dict_name: Mapped[str] = mapped_column(String(100), default="", comment="字典名称")
  79. dict_type: Mapped[str] = mapped_column(String(100), default="", comment="字典类型")
  80. status: Mapped[str] = mapped_column(String(1), default="0", comment="状态(0正常 1停用)")
  81. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  82. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  83. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  84. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  85. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
  86. class SysOss(Base):
  87. __tablename__ = "sys_oss"
  88. oss_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  89. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000")
  90. file_name: Mapped[str] = mapped_column(String(500), default="", comment="文件名")
  91. original_name: Mapped[str] = mapped_column(String(500), default="", comment="原名")
  92. file_suffix: Mapped[str] = mapped_column(String(10), default="", comment="文件后缀名")
  93. url: Mapped[str] = mapped_column(String(500), comment="URL地址")
  94. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  95. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  96. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  97. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  98. service: Mapped[Optional[str]] = mapped_column(String(20), default="minio", comment="服务商")
  99. class SysTenant(Base):
  100. __tablename__ = "sys_tenant"
  101. id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  102. tenant_id: Mapped[str] = mapped_column(String(20), comment="租户编号")
  103. contact_user_name: Mapped[Optional[str]] = mapped_column(String(30), comment="联系人")
  104. contact_phone: Mapped[Optional[str]] = mapped_column(String(20), comment="联系电话")
  105. company_name: Mapped[str] = mapped_column(String(50), comment="企业名称")
  106. license_number: Mapped[Optional[str]] = mapped_column(String(30), comment="统一社会信用代码")
  107. address: Mapped[Optional[str]] = mapped_column(String(200), comment="地址")
  108. domain: Mapped[Optional[str]] = mapped_column(String(200), comment="域名")
  109. intro: Mapped[Optional[str]] = mapped_column(String(200), comment="企业简介")
  110. remark: Mapped[Optional[str]] = mapped_column(String(500), comment="备注")
  111. package_id: Mapped[Optional[int]] = mapped_column(BigInteger, comment="租户套餐ID")
  112. expire_time: Mapped[Optional[datetime]] = mapped_column(DateTime, comment="过期时间")
  113. account_count: Mapped[int] = mapped_column(Integer, default=0, comment="账号数量")
  114. status: Mapped[str] = mapped_column(String(1), default="0", comment="状态(0正常 1停用)")
  115. del_flag: Mapped[str] = mapped_column(String(1), default="0")
  116. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  117. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  118. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  119. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  120. class SysRole(Base):
  121. __tablename__ = "sys_role"
  122. role_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  123. tenant_id: Mapped[Optional[str]] = mapped_column(String(20), default="000000")
  124. role_name: Mapped[str] = mapped_column(String(30), comment="角色名称")
  125. role_key: Mapped[str] = mapped_column(String(100), comment="角色权限字符串")
  126. role_sort: Mapped[int] = mapped_column(Integer, default=0, comment="显示顺序")
  127. data_scope: Mapped[str] = mapped_column(String(1), default="1", comment="数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人)")
  128. menu_check_strictly: Mapped[int] = mapped_column(Integer, default=1, comment="菜单树选择项是否关联显示")
  129. dept_check_strictly: Mapped[int] = mapped_column(Integer, default=1, comment="部门树选择项是否关联显示")
  130. status: Mapped[str] = mapped_column(String(1), default="0", comment="状态")
  131. del_flag: Mapped[str] = mapped_column(String(1), default="0")
  132. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  133. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  134. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  135. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  136. remark: Mapped[Optional[str]] = mapped_column(String(500))
  137. class SysMenu(Base):
  138. __tablename__ = "sys_menu"
  139. menu_id: Mapped[int] = mapped_column(BigInteger, primary_key=True, autoincrement=False)
  140. menu_name: Mapped[str] = mapped_column(String(50), comment="菜单名称")
  141. parent_id: Mapped[int] = mapped_column(BigInteger, default=0, comment="父菜单ID")
  142. order_num: Mapped[int] = mapped_column(Integer, default=0, comment="显示顺序")
  143. path: Mapped[Optional[str]] = mapped_column(String(200), default="", comment="路由地址")
  144. component: Mapped[Optional[str]] = mapped_column(String(255), default="", comment="组件路径")
  145. query_param: Mapped[Optional[str]] = mapped_column(String(255), default="", comment="路由参数")
  146. is_frame: Mapped[int] = mapped_column(Integer, default=1, comment="是否为外链(0是 1否)")
  147. is_cache: Mapped[int] = mapped_column(Integer, default=0, comment="是否缓存(0缓存 1不缓存)")
  148. menu_type: Mapped[str] = mapped_column(String(1), default="M", comment="菜单类型(M目录 C菜单 F按钮)")
  149. visible: Mapped[str] = mapped_column(String(1), default="0", comment="显示状态(0显示 1隐藏)")
  150. status: Mapped[str] = mapped_column(String(1), default="0", comment="状态(0正常 1停用)")
  151. perms: Mapped[Optional[str]] = mapped_column(String(100), comment="权限标识")
  152. icon: Mapped[Optional[str]] = mapped_column(String(100), default="#", comment="菜单图标")
  153. create_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  154. create_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  155. update_by: Mapped[Optional[int]] = mapped_column(BigInteger)
  156. update_time: Mapped[Optional[datetime]] = mapped_column(DateTime)
  157. remark: Mapped[Optional[str]] = mapped_column(String(500))
  158. class SysUserRole(Base):
  159. __tablename__ = "sys_user_role"
  160. user_id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
  161. role_id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
  162. class SysRoleMenu(Base):
  163. __tablename__ = "sys_role_menu"
  164. role_id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
  165. menu_id: Mapped[int] = mapped_column(BigInteger, primary_key=True)