教员模型.go 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. _ "github.com/go-sql-driver/mysql"
  5. )
  6. // 1. CourseType - 课程分类表
  7. type CourseType struct {
  8. TypeID int `orm:"column(分类ID);pk" json:"typeID"`
  9. TypeName string `orm:"column(分类名称);type(text)" json:"typeName"`
  10. ParentID int `orm:"column(父类ID)" json:"parentID"`
  11. TypeParam int `orm:"column(类型参数)" json:"typeParam"`
  12. }
  13. func (c *CourseType) TableName() string { return "CourseType" }
  14. // 2. CourseInfo - 课程数据表
  15. type CourseInfo struct {
  16. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  17. CourseGUID string `orm:"column(课程GUID);type(text)" json:"courseGUID"`
  18. CourseName string `orm:"column(课程名称);type(text)" json:"courseName"`
  19. TypeID int `orm:"column(分类ID)" json:"typeID"`
  20. ExternalTypeID int `orm:"column(外部分类ID)" json:"externalTypeID"`
  21. VirtualStartTime int `orm:"column(虚拟起始时间)" json:"virtualStartTime"`
  22. TotalDuration int `orm:"column(课程总时长)" json:"totalDuration"`
  23. LineNo int `orm:"column(线路号)" json:"lineNo"`
  24. RunningMap int `orm:"column(运行图)" json:"runningMap"`
  25. CourseDesc string `orm:"column(课程描述);type(text)" json:"courseDesc"`
  26. Creator string `orm:"column(创建人);type(text)" json:"creator"`
  27. CreateTime string `orm:"column(创建时间);type(text)" json:"createTime"`
  28. ModifyTime string `orm:"column(修改时间);type(text)" json:"modifyTime"`
  29. GuideDesc string `orm:"column(指导描述);type(text);null" json:"guideDesc"`
  30. GuideFilePath string `orm:"column(指导文件地址);type(text);null" json:"guideFilePath"`
  31. VirtualRole string `orm:"column(虚拟角色);type(text)" json:"virtualRole"`
  32. CourseDataStream string `orm:"column(课程数据流);type(text);null" json:"courseDataStream"`
  33. }
  34. func (c *CourseInfo) TableName() string { return "CourseInfo" }
  35. // 3. CourseEvaList - 课程评价表
  36. type CourseEvaList struct {
  37. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  38. SeqNo int `orm:"column(序号)" json:"seqNo"`
  39. EvaTargetRole int `orm:"column(评价目标角色)" json:"evaTargetRole"`
  40. EvaName string `orm:"column(评价名称);type(text)" json:"evaName"`
  41. EvaMapID int `orm:"column(评价映射ID)" json:"evaMapID"`
  42. EvaType int `orm:"column(评价类型)" json:"evaType"` // 0主观评价1客观评价
  43. EvaScore int `orm:"column(评价赋分)" json:"evaScore"`
  44. EvaDeduction int `orm:"column(评价失分)" json:"evaDeduction"`
  45. EvaSource int `orm:"column(评价来源)" json:"evaSource"` // 0来自流程图,1.来自教员自定义
  46. }
  47. func (c *CourseEvaList) TableName() string { return "CourseEvaList" }
  48. // 4. CourseActionNode - 课程节点表
  49. type CourseActionNode struct {
  50. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  51. NodeID int `orm:"column(节点ID)" json:"nodeID"`
  52. NodeName string `orm:"column(节点名称);type(text)" json:"nodeName"`
  53. //NodeType 1:开始2:结束3:操作4:故障5:语音
  54. NodeType int `orm:"column(节点类型)" json:"nodeType"`
  55. ParentNode string `orm:"column(父节点);type(text)" json:"parentNode"`
  56. ChildNode string `orm:"column(子节点);type(text)" json:"childNode"`
  57. BindRole int `orm:"column(绑定角色)" json:"bindRole"`
  58. NodeDetail string `orm:"column(节点详细信息);type(text)" json:"nodeDetail"`
  59. DelaySkip int `orm:"column(延时跳过)" json:"delaySkip"`
  60. LoseItem int `orm:"column(失格项)" json:"loseItem"`
  61. NodeJoinType int `orm:"column(节点接入与或关系)" json:"nodeJoinType"` // 0无关系1或关系2与关系
  62. GuideDesc string `orm:"column(指导描述);type(text);null" json:"guideDesc"`
  63. GuideFilePath string `orm:"column(指导文件地址);type(text);null" json:"guideFilePath"`
  64. VirtualOperation int `orm:"column(虚拟操作)" json:"virtualOperation"` // 1虚拟角色0真实角色
  65. }
  66. func (c *CourseActionNode) TableName() string { return "CourseActionNode" }
  67. // 5. CourseOperationNode - 课程操作类型节点表
  68. type CourseOperationNode struct {
  69. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  70. NodeID int `orm:"column(节点ID)" json:"nodeID"`
  71. TemplateID int `orm:"column(模板号)" json:"templateID"`
  72. TextParam1 string `orm:"column(文本参数1);type(text)" json:"textParam1"`
  73. TextParam2 string `orm:"column(文本参数2);type(text)" json:"textParam2"`
  74. TextParam3 string `orm:"column(文本参数3);type(text)" json:"textParam3"`
  75. TextParam4 string `orm:"column(文本参数4);type(text)" json:"textParam4"`
  76. TextParam5 string `orm:"column(文本参数5);type(text)" json:"textParam5"`
  77. Score int `orm:"column(赋分)" json:"score"`
  78. Deduction int `orm:"column(失分)" json:"deduction"`
  79. }
  80. func (c *CourseOperationNode) TableName() string { return "CourseOperationNode" }
  81. // 6. CourseFaultNode - 课程故障类型节点表
  82. type CourseFaultNode struct {
  83. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  84. NodeID int `orm:"column(节点ID)" json:"nodeID"`
  85. TemplateID int `orm:"column(模板号)" json:"templateID"`
  86. TextParam1 string `orm:"column(文本参数1);type(text)" json:"textParam1"`
  87. TextParam2 string `orm:"column(文本参数2);type(text)" json:"textParam2"`
  88. TextParam3 string `orm:"column(文本参数3);type(text)" json:"textParam3"`
  89. TextParam4 string `orm:"column(文本参数4);type(text)" json:"textParam4"`
  90. TextParam5 string `orm:"column(文本参数5);type(text)" json:"textParam5"`
  91. RuleID int `orm:"column(规则编号)" json:"ruleID"`
  92. }
  93. func (c *CourseFaultNode) TableName() string { return "CourseFaultNode" }
  94. // 7. CourseVoiceNode - 课程语音节点表
  95. type CourseVoiceNode struct {
  96. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  97. NodeID int `orm:"column(节点ID)" json:"nodeID"`
  98. TargetRole int `orm:"column(通讯角色目标)" json:"targetRole"`
  99. VoiceContent string `orm:"column(语音内容);type(text)" json:"voiceContent"`
  100. EvalContent string `orm:"column(评价内容);type(text)" json:"evalContent"` // (AAA,BBB);CCC 映射(AAA∪BBB)∩CCC
  101. }
  102. func (c *CourseVoiceNode) TableName() string { return "CourseVoiceNode" }
  103. // 8. CourseNodeTrigger - 课程节点触发条件表
  104. type CourseNodeTrigger struct {
  105. CourseID int `orm:"column(课程ID);pk" json:"courseID"`
  106. NodeID int `orm:"column(节点ID)" json:"nodeID"`
  107. TriggerMode int `orm:"column(触发方式)" json:"triggerMode"` // 0:教员手动触发,1.课程起始时间触发,2.流程延迟时间触发.3,任意流程推进到立即出发,4.条件流程触发.
  108. TextParam1 string `orm:"column(文本参数1);type(text)" json:"textParam1"` // 1,2:填写秒数,4.(4∪5)∩3
  109. TextParam2 string `orm:"column(文本参数2);type(text)" json:"textParam2"`
  110. Event string `orm:"column(事件);type(text);null" json:"event"`
  111. TriggerDelay int `orm:"column(触发延时)" json:"triggerDelay"`
  112. }
  113. func (c *CourseNodeTrigger) TableName() string { return "CourseNodeTrigger" }
  114. // 9. TemplateOperation - 操作类模板表
  115. type TemplateOperation struct {
  116. TemplateID int `orm:"column(模板ID);pk" json:"templateID"`
  117. Category int `orm:"column(分类)" json:"category"`
  118. CategoryName string `orm:"column(分类名称);type(text)" json:"categoryName"`
  119. SubCategory int `orm:"column(子分类)" json:"subCategory"`
  120. SubCategoryName string `orm:"column(子分类名称);type(text)" json:"subCategoryName"`
  121. TemplateName string `orm:"column(操作模板名称);type(text)" json:"templateName"`
  122. TemplateType int `orm:"column(操作模板类型)" json:"templateType"`
  123. Param1Type int `orm:"column(参数1类型)" json:"param1Type"`
  124. Param1Desc string `orm:"column(参数1说明);type(text)" json:"param1Desc"`
  125. Param2Type int `orm:"column(参数2类型)" json:"param2Type"`
  126. Param2Desc string `orm:"column(参数2说明);type(text)" json:"param2Desc"`
  127. Param3Type int `orm:"column(参数3类型)" json:"param3Type"`
  128. Param3Desc string `orm:"column(参数3说明);type(text)" json:"param3Desc"`
  129. Param4Type int `orm:"column(参数4类型)" json:"param4Type"`
  130. Param4Desc string `orm:"column(参数4说明);type(text)" json:"param4Desc"`
  131. Param5Type int `orm:"column(参数5类型)" json:"param5Type"`
  132. Param5Desc string `orm:"column(参数5说明);type(text)" json:"param5Desc"`
  133. }
  134. func (t *TemplateOperation) TableName() string { return "TemplateOperation" }
  135. // 10. TemplateFault - 故障类模板表
  136. type TemplateFault struct {
  137. TemplateID int `orm:"column(模板ID);pk" json:"templateID"`
  138. Category int `orm:"column(分类)" json:"category"`
  139. CategoryName string `orm:"column(分类名称);type(text)" json:"categoryName"`
  140. SubCategory int `orm:"column(子分类)" json:"subCategory"`
  141. SubCategoryName string `orm:"column(子分类名称);type(text)" json:"subCategoryName"`
  142. TemplateName string `orm:"column(模板名称);type(text)" json:"templateName"`
  143. FaultLogicMap int `orm:"column(故障逻辑映射)" json:"faultLogicMap"`
  144. Param1Type int `orm:"column(参数1类型)" json:"param1Type"`
  145. Param1Desc string `orm:"column(参数1说明);type(text)" json:"param1Desc"`
  146. Param2Type int `orm:"column(参数2类型)" json:"param2Type"`
  147. Param2Desc string `orm:"column(参数2说明);type(text)" json:"param2Desc"`
  148. Param3Type int `orm:"column(参数3类型)" json:"param3Type"`
  149. Param3Desc string `orm:"column(参数3说明);type(text)" json:"param3Desc"`
  150. Param4Type int `orm:"column(参数4类型)" json:"param4Type"`
  151. Param4Desc string `orm:"column(参数4说明);type(text)" json:"param4Desc"`
  152. Param5Type int `orm:"column(参数5类型)" json:"param5Type"`
  153. Param5Desc string `orm:"column(参数5说明);type(text)" json:"param5Desc"`
  154. }
  155. func (t *TemplateFault) TableName() string { return "TemplateFault" }
  156. // 11. TemplateVoice - 语音类模板表
  157. type TemplateVoice struct {
  158. TemplateID int `orm:"column(模板ID);pk" json:"templateID"`
  159. Category int `orm:"column(分类)" json:"category"`
  160. CategoryName string `orm:"column(分类名称);type(text)" json:"categoryName"`
  161. SubCategory int `orm:"column(子分类)" json:"subCategory"`
  162. SubCategoryName string `orm:"column(子分类名称);type(text)" json:"subCategoryName"`
  163. TemplateName string `orm:"column(模板名称);type(text)" json:"templateName"`
  164. VoiceContent string `orm:"column(语音内容);type(text)" json:"voiceContent"`
  165. EvalTemplate string `orm:"column(评价模板);type(text)" json:"evalTemplate"`
  166. DestRoleID int `orm:"column(目标角色ID);" json:"destRoleID"`
  167. }
  168. func (t *TemplateVoice) TableName() string { return "TemplateVoice" }
  169. // 12. NodePicPath - 节点图片数据表
  170. type NodePicPath struct {
  171. TemplateType int `orm:"column(模板类型)" json:"templateType"`
  172. TemplateID int `orm:"column(模板ID);pk" json:"templateID"`
  173. TemplateName string `orm:"column(模板名称);type(text)" json:"templateName"`
  174. NodeStatus int `orm:"column(节点状态)" json:"nodeStatus"`
  175. NodePicPath string `orm:"column(节点图片地址);type(text)" json:"nodePicPath"`
  176. }
  177. func (n *NodePicPath) TableName() string { return "NodePicPath" }
  178. // 13. CourseRunLog - 课程运行记录表
  179. type CourseRunLog struct {
  180. RunLogID int `orm:"column(运行记录编号);pk;" json:"runLogID"`
  181. RunCourseID int `orm:"column(运行课程ID)" json:"runCourseID"`
  182. RunCourseName string `orm:"column(运行课程名称);type(text)" json:"runCourseName"`
  183. RunDateTime string `orm:"column(运行日期时间);type(text)" json:"runDateTime"`
  184. CourseTime int `orm:"column(课程用时)" json:"courseTime"`
  185. CourseScore float64 `orm:"column(课程得分)" json:"courseScore"`
  186. //1:已经暂停,1运行中,-1课程结束
  187. PauseFlag int `orm:"column(暂停标记)" json:"pauseFlag"`
  188. PauseTotalTime int `orm:"column(暂停累计时长)" json:"pauseTotalTime"`
  189. }
  190. func (c *CourseRunLog) TableName() string { return "CourseRunLog" }
  191. // 14. CourseOperLog - 课程操作记录表
  192. type CourseOperLog struct {
  193. RunLogID string `orm:"column(运行记录编号);pk;type(text)" json:"runLogID"`
  194. RunCourseID int `orm:"column(运行课程ID)" json:"runCourseID"`
  195. RunOperID string `orm:"column(运行操作ID);type(text)" json:"runOperID"`
  196. OperName string `orm:"column(操作名称);type(text)" json:"operName"`
  197. OperTime int `orm:"column(操作时间)" json:"operTime"`
  198. OperScore float64 `orm:"column(操作得分)" json:"operScore"`
  199. OperParam1 string `orm:"column(操作参数1);type(text)" json:"operParam1"`
  200. OperParam2 string `orm:"column(操作参数2);type(text)" json:"operParam2"`
  201. OperParam3 string `orm:"column(操作参数3);type(text)" json:"operParam3"`
  202. OperParam4 string `orm:"column(操作参数4);type(text)" json:"operParam4"`
  203. OperParam5 string `orm:"column(操作参数5);type(text)" json:"operParam5"`
  204. }
  205. func (c *CourseOperLog) TableName() string { return "CourseOperLog" }
  206. // 15. CourseEvaLog - 课程评价记录表
  207. type CourseEvaLog struct {
  208. RunLogID int `orm:"column(运行记录编号);pk;" json:"runLogID"`
  209. RunCourseID int `orm:"column(运行课程ID)" json:"runCourseID"`
  210. RunOperID int `orm:"column(运行操作ID);" json:"runOperID"`
  211. OperName string `orm:"column(操作名称);type(text)" json:"operName"`
  212. OperTime int `orm:"column(操作时间)" json:"operTime"`
  213. OperScore float64 `orm:"column(操作得分)" json:"operScore"`
  214. OperParam1 string `orm:"column(操作参数1);type(text)" json:"operParam1"`
  215. OperParam2 string `orm:"column(操作参数2);type(text)" json:"operParam2"`
  216. OperParam3 string `orm:"column(操作参数3);type(text)" json:"operParam3"`
  217. OperParam4 string `orm:"column(操作参数4);type(text)" json:"operParam4"`
  218. OperParam5 string `orm:"column(操作参数5);type(text)" json:"operParam5"`
  219. }
  220. func (c *CourseEvaLog) TableName() string { return "CourseEvaLog" }
  221. // 16. SystemLink - 系统链接目标表
  222. type SystemLink struct {
  223. DeviceID int `orm:"column(设备ID);pk" json:"deviceID"`
  224. DeviceName int `orm:"column(设备名称)" json:"deviceName"`
  225. IP string `orm:"column(IP);type(text)" json:"ip"`
  226. Port string `orm:"column(Port);type(text)" json:"port"`
  227. DeviceType int `orm:"column(设备类型)" json:"deviceType"`
  228. }
  229. func (s *SystemLink) TableName() string { return "SystemLink" }
  230. // 17. RoleInfo - 角色数据表
  231. type RoleInfo struct {
  232. RoleID int `orm:"column(角色ID);pk" json:"roleID"`
  233. RoleName string `orm:"column(角色名称);type(text)" json:"roleName"`
  234. RoleType int `orm:"column(角色类型)" json:"roleType"`
  235. RoleData string `orm:"column(角色数据);type(text)" json:"roleData"`
  236. }
  237. func (r *RoleInfo) TableName() string { return "RoleInfo" }
  238. // 18. UserData - 用户信息表
  239. type UserData struct {
  240. UserID int `orm:"column(用户ID);pk" json:"userID"`
  241. UserName string `orm:"column(用户名称);type(text)" json:"userName"`
  242. UserGroupID int `orm:"column(用户所属分组)" json:"userGroupID"`
  243. UserType int `orm:"column(用户类型)" json:"userType"` // 0管理员1教员2学员
  244. Password string `orm:"column(密码);type(text)" json:"password"`
  245. }
  246. func (u *UserData) TableName() string { return "UserData" }
  247. // 19. UserType - 用户分类信息表
  248. type UserType struct {
  249. GroupID int `orm:"column(分组ID);pk" json:"groupID"`
  250. GroupName string `orm:"column(分组名称);type(text)" json:"groupName"`
  251. ParentGroup int `orm:"column(父分组ID)" json:"parentGroup"`
  252. }
  253. func (u *UserType) TableName() string { return "UserType" }
  254. // 20. TypeMapList - 数据字典表
  255. type TypeMapList struct {
  256. DictionaryType int `orm:"column(字典类型)" json:"dictionaryType"`
  257. DictionaryTypeName string `orm:"column(字典类型名称);type(text)" json:"dictionaryTypeName"`
  258. DictionarySubType int `orm:"column(字典子类型)" json:"dictionarySubType"`
  259. DictionarySubTypeName string `orm:"column(字典子类型名称);type(text)" json:"dictionarySubTypeName"`
  260. KeyParam int `orm:"column(KeyParam)" json:"keyParam"`
  261. ValueParam string `orm:"column(ValueParam);type(text)" json:"valueParam"`
  262. }
  263. func (t *TypeMapList) TableName() string { return "TypeMapList" }
  264. // 注册模型
  265. func init() {
  266. orm.RegisterModel(
  267. new(CourseType),
  268. new(CourseInfo),
  269. new(CourseEvaList),
  270. new(CourseActionNode),
  271. new(CourseOperationNode),
  272. new(CourseFaultNode),
  273. new(CourseVoiceNode),
  274. new(CourseNodeTrigger),
  275. new(TemplateOperation),
  276. new(TemplateFault),
  277. new(TemplateVoice),
  278. new(NodePicPath),
  279. new(CourseRunLog),
  280. new(CourseOperLog),
  281. new(CourseEvaLog),
  282. new(SystemLink),
  283. new(RoleInfo),
  284. new(UserData),
  285. new(UserType),
  286. new(TypeMapList),
  287. )
  288. }