教员模型.go 19 KB

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