瀏覽代碼

orm -> gorm

hsun 8 月之前
父節點
當前提交
999ed60427
共有 86 個文件被更改,包括 6767 次插入4258 次删除
  1. 25 33
      cache/crm_config_cache.go
  2. 13 13
      controllers/ai/ai_file.go
  3. 28 28
      controllers/ai/ai_summary.go
  4. 129 133
      controllers/eta_trial/questionnaire.go
  5. 15 16
      controllers/research_group.go
  6. 27 28
      controllers/roadshow/calendar.go
  7. 85 85
      controllers/sys_admin.go
  8. 10 10
      controllers/variety_tag.go
  9. 53 39
      models/ai_summary/ai_pormpt.go
  10. 97 67
      models/ai_summary/ai_summary.go
  11. 218 74
      models/ai_summary/ai_summary_classify.go
  12. 172 71
      models/aimod/ai.go
  13. 35 17
      models/aimod/file_upload_record.go
  14. 49 54
      models/company/company.go
  15. 27 16
      models/company/company_config.go
  16. 70 29
      models/company/company_permission.go
  17. 9 10
      models/company/company_seller.go
  18. 0 10
      models/company_user/request/chart_classify_permission.go
  19. 0 19
      models/company_user/response/chart_classify_permission.go
  20. 131 75
      models/data_source/base_from_sci99.go
  21. 127 55
      models/data_source/guagnzhouqihuo.go
  22. 117 54
      models/data_source/icpi.go
  23. 161 87
      models/data_source/longzhong.go
  24. 91 46
      models/data_stat/edb_info_delete_log.go
  25. 52 25
      models/data_stat/edb_info_stat_column.go
  26. 75 38
      models/data_stat/edb_info_update_log.go
  27. 76 39
      models/data_stat/edb_info_update_stat.go
  28. 41 21
      models/data_stat/edb_source_stat.go
  29. 28 34
      models/eta_trial/questionnaire_fill_record.go
  30. 1 1
      models/eta_trial/request.go
  31. 172 115
      models/fe_calendar/fe_calendar_matter.go
  32. 216 116
      models/ppt_english/ppt_english.go
  33. 112 57
      models/ppt_english/ppt_english_grant.go
  34. 94 70
      models/ppt_english/ppt_english_group.go
  35. 120 73
      models/ppt_english/ppt_english_group_mapping.go
  36. 33 38
      models/ppt_english/report_ppt_english_img.go
  37. 57 26
      models/report/report_chapter_grant.go
  38. 91 52
      models/report/report_chapter_permission_mapping.go
  39. 60 30
      models/report/report_grant.go
  40. 129 66
      models/report_approve/report_approve.go
  41. 188 65
      models/report_approve/report_approve_flow.go
  42. 58 35
      models/report_approve/report_approve_message.go
  43. 56 34
      models/report_approve/report_approve_node.go
  44. 79 47
      models/report_approve/report_approve_record.go
  45. 21 25
      models/roadshow/calendar.go
  46. 251 200
      models/sandbox/sandbox.go
  47. 105 58
      models/sandbox/sandbox_classify.go
  48. 35 20
      models/sandbox/sandbox_draft.go
  49. 106 66
      models/sandbox/sandbox_version.go
  50. 235 84
      models/semantic_analysis/sa_compare.go
  51. 49 28
      models/semantic_analysis/sa_compare_classify.go
  52. 94 87
      models/semantic_analysis/sa_compare_doc.go
  53. 72 41
      models/semantic_analysis/sa_compare_label.go
  54. 86 35
      models/semantic_analysis/sa_compare_search_keyword.go
  55. 195 76
      models/semantic_analysis/sa_doc.go
  56. 51 29
      models/semantic_analysis/sa_doc_classify.go
  57. 45 26
      models/semantic_analysis/sa_doc_section.go
  58. 49 28
      models/semantic_analysis/sa_label.go
  59. 223 97
      models/speech_recognition/speech_recognition.go
  60. 52 32
      models/speech_recognition/speech_recognition_api_log.go
  61. 69 45
      models/speech_recognition/speech_recognition_content.go
  62. 68 42
      models/speech_recognition/speech_recognition_menu.go
  63. 64 40
      models/speech_recognition/speech_recognition_tag.go
  64. 50 32
      models/speech_recognition/speech_recognition_tag_mapping.go
  65. 68 42
      models/speech_recognition/speech_recognition_tag_menu.go
  66. 32 19
      models/system/admin_config.go
  67. 25 10
      models/system/admin_operate_record.go
  68. 59 36
      models/system/admin_verify_code_record.go
  69. 105 111
      models/system/research_group.go
  70. 64 44
      models/system/sys_admin.go
  71. 71 38
      models/system/sys_department.go
  72. 101 64
      models/system/sys_group.go
  73. 42 39
      models/system/sys_menu.go
  74. 23 17
      models/system/sys_menu_button.go
  75. 81 42
      models/system/sys_role.go
  76. 74 38
      models/system/sys_role_admin.go
  77. 10 10
      models/system/sys_session.go
  78. 43 21
      models/system/sys_team.go
  79. 26 19
      models/system/sys_user.go
  80. 1 1
      models/system/sys_user_login_record.go
  81. 221 160
      models/variety_tag.go
  82. 61 66
      models/yb/price_driven.go
  83. 17 22
      models/yb/price_driven_tag.go
  84. 53 58
      models/yb/yb_community_question_process.go
  85. 98 105
      services/research_group.go
  86. 145 154
      services/variety_tag.go

+ 25 - 33
cache/crm_config_cache.go

@@ -1,35 +1,27 @@
 package cache
 
-import (
-	"eta_gn/eta_api/models/company"
-	"eta_gn/eta_api/utils"
-	"fmt"
-	"strconv"
-	"time"
-)
-
-func GetIntervalFromCrmConfig(key string) int {
-	//redis 查询key
-	sIntervals := utils.Rc.Get(key)
-	var interval int
-	var err error
-	if sIntervals == nil {
-		//redis没查到,去数据库查
-		interval, err = company.GetConfigValueByCode(key)
-		if err != nil {
-			fmt.Println("GetConfigValueByCode Err:" + err.Error())
-		}
-		//插入redis
-		if !utils.Rc.SetNX(key, interval, 2*time.Hour) {
-			fmt.Println("setNX Err")
-		}
-		return interval
-	} else {
-		intervals := fmt.Sprintf("%s", sIntervals)
-		interval, err = strconv.Atoi(intervals)
-		if err != nil {
-			fmt.Println("strconv err:", err.Error())
-		}
-		return interval
-	}
-}
+//func GetIntervalFromCrmConfig(key string) int {
+//	//redis 查询key
+//	sIntervals := utils.Rc.Get(key)
+//	var interval int
+//	var err error
+//	if sIntervals == nil {
+//		//redis没查到,去数据库查
+//		interval, err = company.GetConfigValueByCode(key)
+//		if err != nil {
+//			fmt.Println("GetConfigValueByCode Err:" + err.Error())
+//		}
+//		//插入redis
+//		if !utils.Rc.SetNX(key, interval, 2*time.Hour) {
+//			fmt.Println("setNX Err")
+//		}
+//		return interval
+//	} else {
+//		intervals := fmt.Sprintf("%s", sIntervals)
+//		interval, err = strconv.Atoi(intervals)
+//		if err != nil {
+//			fmt.Println("strconv err:", err.Error())
+//		}
+//		return interval
+//	}
+//}

+ 13 - 13
controllers/ai/ai_file.go

@@ -110,7 +110,7 @@ func (this *AiFileController) FileUpload() {
 		aiChatTopicObj.AiChatTopicId = aiChatTopicId
 		topic, err := aiChatTopicObj.GetAiChatTopicById()
 		if err != nil {
-			if utils.IsErrNoRow(err) {
+			if err.Error() == utils.ErrNoRow() {
 				br.Msg = "获取数据失败!"
 				br.ErrMsg = "获取数据失败,主题不存在,Err:" + err.Error()
 				return
@@ -199,7 +199,7 @@ func (this *AiFileController) FileUpload() {
 		uploadObj.OpenaiStatus = uploadResult.Data.Status
 		uploadObj.OpenaiPurpose = uploadResult.Data.Purpose
 		uploadObj.OpenaiStatusDetails = uploadResult.Data.StatusDetails
-		uploadObj.OpenaiCreatedAt = uploadResult.Data.CreatedAt
+		uploadObj.OpenaiCreatedAt = fmt.Sprint(uploadResult.Data.CreatedAt)
 		uploadObj.CreateTime = time.Now()
 		uploadObj.ModifyTime = time.Now()
 		_, err = uploadObj.AddFileUploadRecord()
@@ -271,7 +271,7 @@ func (this *AiFileController) FileRetrieve() {
 	//根据提问,获取信息
 	askUuid := utils.MD5(req.Ask)
 	//chatMode, err := aimod.GetAiChatByAsk(askUuid)
-	//if err != nil && !utils.IsErrNoRow(err) {
+	//if err != nil && err.Error() != utils.ErrNoRow() {
 	//	br.Msg = "获取数据失败!"
 	//	br.ErrMsg = "获取数据失败,GetAiChatByAsk,Err:" + err.Error()
 	//	return
@@ -283,7 +283,7 @@ func (this *AiFileController) FileRetrieve() {
 		aiChatTopicObj.AiChatTopicId = req.AiChatTopicId
 		topic, err := aiChatTopicObj.GetAiChatTopicById()
 		if err != nil {
-			if utils.IsErrNoRow(err) {
+			if err.Error() == utils.ErrNoRow() {
 				br.Msg = "获取数据失败!"
 				br.ErrMsg = "获取数据失败,主题不存在,Err:" + err.Error()
 				return
@@ -301,7 +301,7 @@ func (this *AiFileController) FileRetrieve() {
 	//获取主题下的所有信息
 	//AiChatTopicId
 	historyList, err := aimod.GetAiChatList(req.AiChatTopicId)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取主题历史数据失败!"
 		br.ErrMsg = "获取主题历史数据失败,Err:" + err.Error()
 		return
@@ -403,15 +403,15 @@ func (this *AiFileController) FileRetrieve() {
 		//更新	assistantId,threadId
 		aiChatTopicObj := new(aimod.AiChatTopic)
 
-		updateParams := make(map[string]interface{})
-		updateParams["assistant_id"] = assistantId
-		updateParams["thread_id"] = threadId
-		updateParams["modify_time"] = time.Now()
+		//updateParams := make(map[string]interface{})
+		//updateParams["assistant_id"] = assistantId
+		//updateParams["thread_id"] = threadId
+		//updateParams["modify_time"] = time.Now()
+		//
+		//whereParam := make(map[string]interface{})
+		//whereParam["ai_chat_topic_id"] = req.AiChatTopicId
 
-		whereParam := make(map[string]interface{})
-		whereParam["ai_chat_topic_id"] = req.AiChatTopicId
-
-		err = aiChatTopicObj.Update(updateParams, whereParam)
+		err = aiChatTopicObj.UpdateAssistantAndThreadId(assistantId, threadId, req.AiChatTopicId)
 		if err != nil {
 			br.Msg = "获取失败!"
 			br.ErrMsg = "修改助手标识失败,Err:" + err.Error()

+ 28 - 28
controllers/ai/ai_summary.go

@@ -50,7 +50,7 @@ func (this *AiController) AiSummaryClassifyItems() {
 	}
 
 	rootList, err := ai_summary.GetAiSummaryClassifyAndInfoByParentId(aiSummaryClassifyId)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
@@ -60,7 +60,7 @@ func (this *AiController) AiSummaryClassifyItems() {
 	}
 
 	classifyAll, err := ai_summary.GetAiSummaryClassifyAndInfoByParentId(aiSummaryClassifyId)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
@@ -235,7 +235,7 @@ func (this *AiController) DeleteSandboxClassifyCheck() {
 
 	if deleteStatus != 1 {
 		classifyCount, err := ai_summary.GetAiSummaryInfoCountByClassifyId(req.AiSummaryClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "删除失败"
 			br.ErrMsg = "分类下是否含有沙盘失败,Err:" + err.Error()
 			return
@@ -296,7 +296,7 @@ func (this *AiController) DeleteAiSummaryClassify() {
 	if req.AiSummaryClassifyId > 0 && req.AiSummaryId == 0 {
 		//判断是否含有纪要
 		count, err := ai_summary.GetAiSummaryInfoCountByClassifyId(req.AiSummaryClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "删除失败"
 			br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
 			return
@@ -320,7 +320,7 @@ func (this *AiController) DeleteAiSummaryClassify() {
 	if req.AiSummaryId > 0 {
 		summaryInfo, err := ai_summary.GetAiSummaryById(req.AiSummaryId)
 		if err != nil {
-			if utils.IsErrNoRow(err) {
+			if err.Error() == utils.ErrNoRow() {
 				br.Msg = "纪要已删除,请刷新页面"
 				br.ErrMsg = "指标不存在,Err:" + err.Error()
 				return
@@ -414,7 +414,7 @@ func (this *AiController) AiSummaryClassifyMove() {
 		if aiSummaryInfo.ClassifyId != req.ParentClassifyId {
 			////查询需要修改的分类下是否存在同一个图表名称
 			//tmpSandboxInfo, tmpErr := sandbox.GetSandboxByClassifyIdAndName(req.ParentClassifyId, aiSummaryInfo.Name)
-			//if tmpErr != nil && !utils.IsErrNoRow(tmpErr) {
+			//if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
 			//	br.Msg = "移动失败"
 			//	br.ErrMsg = "移动失败,Err:" + tmpErr.Error()
 			//	return
@@ -573,7 +573,7 @@ func (this *AiController) AiSummaryClassifyMove() {
 		} else {
 			// prevId为0,也就是沙盘移到最前端
 			firstClassify, err := ai_summary.GetFirstAiSummaryByClassifyId(req.AiSummaryClassifyId)
-			if err != nil && !utils.IsErrNoRow(err) {
+			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "移动失败"
 				br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
 				return
@@ -762,7 +762,7 @@ func (this *AiController) AiSummaryClassifyMove() {
 
 		} else {
 			firstClassify, err := ai_summary.GetFirstAiSummaryClassifyByParentId(aiSummaryClassifyInfo.ParentId)
-			if err != nil && !utils.IsErrNoRow(err) {
+			if err != nil && err.Error() != utils.ErrNoRow() {
 				br.Msg = "移动失败"
 				br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
 				return
@@ -841,7 +841,7 @@ func (this *AiController) AiSummaryList() {
 
 	if aiSummaryClassifyId > 0 {
 		sandboxClassifyIds, err := ai_summary.GetAiSummaryClassify(aiSummaryClassifyId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取图表信息失败"
 			br.ErrMsg = "获取信息失败,GetChartClassify,Err:" + err.Error()
 			return
@@ -862,7 +862,7 @@ func (this *AiController) AiSummaryList() {
 
 	//获取图表信息
 	list, err := ai_summary.GetAiSummaryListByCondition(condition, pars, startSize, pageSize)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Success = true
 		br.Msg = "获取纪要信息失败"
 		br.ErrMsg = "获取纪要信息失败,Err:" + err.Error()
@@ -879,7 +879,7 @@ func (this *AiController) AiSummaryList() {
 		list[i].ParentIds = ids
 	}
 	resp := new(ai_summary.AiSummaryListResp)
-	if list == nil || len(list) <= 0 || (err != nil && utils.IsErrNoRow(err)) {
+	if list == nil || len(list) <= 0 || (err != nil && err.Error() == utils.ErrNoRow()) {
 		items := make([]*ai_summary.AiSummaryItems, 0)
 		resp.Paging = page
 		resp.List = items
@@ -890,7 +890,7 @@ func (this *AiController) AiSummaryList() {
 	}
 
 	dataCount, err := ai_summary.GetAiSummaryListCountByCondition(condition, pars)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取指标信息失败"
 		br.ErrMsg = "获取指标数据总数失败,Err:" + err.Error()
 		return
@@ -926,7 +926,7 @@ func (this *AiController) AiSummaryDetail() {
 	aiSummaryId, _ := this.GetInt("AiSummaryId")
 
 	detail, err := ai_summary.GetAiSummaryItemById(aiSummaryId)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Success = true
 		br.Msg = "获取沙盘信息失败"
 		br.ErrMsg = "获取沙盘信息失败,Err:" + err.Error()
@@ -940,7 +940,7 @@ func (this *AiController) AiSummaryDetail() {
 		item := new(saModel.SaDoc)
 		e := item.GetItemById(detail.SaDocId)
 		if e != nil {
-			if utils.IsErrNoRow(e) {
+			if e.Error() == utils.ErrNoRow() {
 				br.Msg = "文档已被删除, 请刷新页面"
 				return
 			}
@@ -1129,7 +1129,7 @@ func (this *AiController) GenerateAiSummary() {
 		//获取主题下的所有信息
 		//AiChatTopicId
 		historyList, err := aimod.GetAiChatList(req.AiChatTopicId)
-		if err != nil && !utils.IsErrNoRow(err) {
+		if err != nil && err.Error() != utils.ErrNoRow() {
 			br.Msg = "获取主题历史数据失败!"
 			br.ErrMsg = "获取主题历史数据失败,Err:" + err.Error()
 			return
@@ -1217,7 +1217,7 @@ func (this *AiController) GenerateAiSummary() {
 			aiChatTopicObj.AiChatTopicId = req.AiChatTopicId
 			topic, err := aiChatTopicObj.GetAiChatTopicById()
 			if err != nil {
-				if utils.IsErrNoRow(err) {
+				if err.Error() == utils.ErrNoRow() {
 					br.Msg = "获取数据失败!"
 					br.ErrMsg = "获取数据失败,主题不存在,Err:" + err.Error()
 					return
@@ -1234,7 +1234,7 @@ func (this *AiController) GenerateAiSummary() {
 		//获取主题下的所有信息
 		//AiChatTopicId
 		//historyList, err := aimod.GetAiChatList(req.AiChatTopicId)
-		//if err != nil && !utils.IsErrNoRow(err) {
+		//if err != nil && err.Error() != utils.ErrNoRow() {
 		//	br.Msg = "获取主题历史数据失败!"
 		//	br.ErrMsg = "获取主题历史数据失败,Err:" + err.Error()
 		//	return
@@ -1336,15 +1336,15 @@ func (this *AiController) GenerateAiSummary() {
 			//更新	assistantId,threadId
 			aiChatTopicObj := new(aimod.AiChatTopic)
 
-			updateParams := make(map[string]interface{})
-			updateParams["assistant_id"] = assistantId
-			updateParams["thread_id"] = threadId
-			updateParams["modify_time"] = time.Now()
+			//updateParams := make(map[string]interface{})
+			//updateParams["assistant_id"] = assistantId
+			//updateParams["thread_id"] = threadId
+			//updateParams["modify_time"] = time.Now()
+			//
+			//whereParam := make(map[string]interface{})
+			//whereParam["ai_chat_topic_id"] = req.AiChatTopicId
 
-			whereParam := make(map[string]interface{})
-			whereParam["ai_chat_topic_id"] = req.AiChatTopicId
-
-			err = aiChatTopicObj.Update(updateParams, whereParam)
+			err = aiChatTopicObj.UpdateAssistantAndThreadId(assistantId, threadId, req.AiChatTopicId)
 			if err != nil {
 				br.Msg = "获取失败!"
 				br.ErrMsg = "修改助手标识失败,Err:" + err.Error()
@@ -1453,7 +1453,7 @@ func (this *AiController) GenerateAiSummary() {
 //		aiChatTopicObj.AiChatTopicId = aiChatTopicId
 //		topic, err := aiChatTopicObj.GetAiChatTopicById()
 //		if err != nil {
-//			if utils.IsErrNoRow(err) {
+//			if err.Error() == utils.ErrNoRow() {
 //				br.Msg = "获取数据失败!"
 //				br.ErrMsg = "获取数据失败,主题不存在,Err:" + err.Error()
 //				return
@@ -1577,14 +1577,14 @@ func (this *AiController) AiSummaryClassifyList() {
 	resp := new(ai_summary.AiSummaryClassifyListResp)
 
 	rootList, err := ai_summary.GetAiSummaryClassifyByParentId(0)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return
 	}
 
 	classifyAll, err := ai_summary.GetAiSummaryClassifyAll()
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取数据失败,Err:" + err.Error()
 		return

+ 129 - 133
controllers/eta_trial/questionnaire.go

@@ -1,12 +1,8 @@
 package eta_trial
 
 import (
-	"encoding/json"
 	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/eta_trial"
-	etaTrialService "eta_gn/eta_api/services/eta_trial"
 	"eta_gn/eta_api/utils"
-	"time"
 )
 
 // QuestionnairePopUp
@@ -38,55 +34,55 @@ func (this *EtaTrialController) QuestionnairePopUp() {
 		return
 	}
 
-	var resp eta_trial.QuestionnairePopupResp
+	//var resp eta_trial.QuestionnairePopupResp
+	//
+	//var userReq etaTrialService.GetEtaTrialUserReq
+	//userReq.Mobile = sysUser.Mobile
+	//item, e := etaTrialService.GetEtaTrialUser(userReq)
+	//if e != nil {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "获取ETA试用客户失败, GetEtaTrialUser Err:" + e.Error()
+	//	return
+	//}
+	//if item.EtaTrialId <= 0 {
+	//	br.Ret = 200
+	//	br.Success = true
+	//	br.Msg = "获取成功"
+	//	return
+	//}
+	//
+	//fillItem, e := eta_trial.GetQuestionnaireFillRecordCountByMobile(sysUser.Mobile)
+	//if e != nil && e.Error() != utils.ErrNoRow() {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "获取数据失败失败,GetQuestionnaireFillRecordCountByMobile Err:" + e.Error()
+	//	return
+	//}
+	//if fillItem == nil {
+	//	//没填过
+	//	if item.ModifyTime.AddDate(0, 0, 6).Before(time.Now()) {
+	//		//弹窗
+	//		resp.IsPopup = 1
+	//	}
+	//} else {
+	//	//填过,判断是否超过了14天
+	//	if fillItem.IsFill == 2 && fillItem.CreateTime.AddDate(0, 0, 13).Before(time.Now()) {
+	//		//弹窗
+	//		resp.IsPopup = 1
+	//	} else if fillItem.IsFill == 1 {
+	//		//显示图标但不弹窗
+	//		resp.IsShow = 1
+	//	}
+	//}
+	//
+	//questionnaireList, e := etaTrialService.GetEtaTrialQuestionnaireList()
+	//if e != nil {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "获取问卷调查列表失败, GetEtaTrialQuestionnaireList Err: " + e.Error()
+	//	return
+	//}
+	//resp.Question = questionnaireList
 
-	var userReq etaTrialService.GetEtaTrialUserReq
-	userReq.Mobile = sysUser.Mobile
-	item, e := etaTrialService.GetEtaTrialUser(userReq)
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取ETA试用客户失败, GetEtaTrialUser Err:" + e.Error()
-		return
-	}
-	if item.EtaTrialId <= 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "获取成功"
-		return
-	}
-
-	fillItem, e := eta_trial.GetQuestionnaireFillRecordCountByMobile(sysUser.Mobile)
-	if e != nil && !utils.IsErrNoRow(e) {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取数据失败失败,GetQuestionnaireFillRecordCountByMobile Err:" + e.Error()
-		return
-	}
-	if fillItem == nil {
-		//没填过
-		if item.ModifyTime.AddDate(0, 0, 6).Before(time.Now()) {
-			//弹窗
-			resp.IsPopup = 1
-		}
-	} else {
-		//填过,判断是否超过了14天
-		if fillItem.IsFill == 2 && fillItem.CreateTime.AddDate(0, 0, 13).Before(time.Now()) {
-			//弹窗
-			resp.IsPopup = 1
-		} else if fillItem.IsFill == 1 {
-			//显示图标但不弹窗
-			resp.IsShow = 1
-		}
-	}
-
-	questionnaireList, e := etaTrialService.GetEtaTrialQuestionnaireList()
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取问卷调查列表失败, GetEtaTrialQuestionnaireList Err: " + e.Error()
-		return
-	}
-	resp.Question = questionnaireList
-
-	br.Data = resp
+	//br.Data = resp
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -111,87 +107,87 @@ func (this *EtaTrialController) QuestionnaireCommit() {
 		return
 	}
 
-	var req eta_trial.EtaTrialQuestionnaireReq
-	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
-	if err != nil {
-		br.Msg = "参数解析异常!"
-		br.ErrMsg = "参数解析失败,Err:" + err.Error()
-		return
-	}
-
-	var userReq etaTrialService.GetEtaTrialUserReq
-	userReq.Mobile = sysUser.Mobile
-	admin, e := etaTrialService.GetEtaTrialUser(userReq)
-	if e != nil {
-		br.Msg = "操作失败"
-		br.ErrMsg = "获取ETA试用客户失败, GetEtaTrialUser Err:" + e.Error()
-		return
-	}
-	if admin.EtaTrialId <= 0 {
-		br.Ret = 200
-		br.Success = true
-		br.Msg = "操作成功"
-		return
-	}
-
-	if req.IsFill == 0 {
-		// 稍后再填
-		fillItem := &eta_trial.QuestionnaireFillRecord{
-			Mobile:     admin.Mobile,
-			IsFill:     1,
-			CreateTime: time.Now(),
-			ModifyTime: time.Now(),
-		}
-		err := eta_trial.AddQuestionnaireFillRecord(fillItem)
-		if err != nil {
-			br.Msg = "新增填写记录失败"
-			br.ErrMsg = "新增填写记录失败, Err:" + err.Error()
-			return
-		}
-	} else {
-		// 已填写
-		list := make([]eta_trial.EtaTrialQuestionnaireRecord, 0)
-		for _, q := range req.List {
-			v := eta_trial.EtaTrialQuestionnaireRecord{
-				UserName:        admin.UserName,
-				CompanyName:     admin.CompanyName,
-				Position:        admin.Position,
-				Options:         q.Options,
-				Mobile:          admin.Mobile,
-				Type:            q.Type,
-				QuestionnaireId: q.QuestionnaireId,
-				CreateTime:      time.Now(),
-			}
-			list = append(list, v)
-		}
-
-		var commitReq etaTrialService.EtaTrialQuestionnaireCommitReq
-		commitReq.List = list
-		commitRes, e := etaTrialService.EtaTrialQuestionnaireCommit(commitReq)
-		if e != nil {
-			br.Msg = "操作失败"
-			br.ErrMsg = "新增问卷记录失败, EtaTrialQuestionnaireCommit Err: " + e.Error()
-			return
-		}
-		if !commitRes {
-			br.Msg = "操作失败"
-			br.ErrMsg = "新增问卷记录失败" + e.Error()
-			return
-		}
-
-		fillItem := &eta_trial.QuestionnaireFillRecord{
-			Mobile:     admin.Mobile,
-			IsFill:     2,
-			CreateTime: time.Now(),
-			ModifyTime: time.Now(),
-		}
-		err := eta_trial.AddQuestionnaireFillRecord(fillItem)
-		if err != nil {
-			br.Msg = "新增填写记录失败"
-			br.ErrMsg = "新增填写记录失败, Err:" + err.Error()
-			return
-		}
-	}
+	//var req eta_trial.EtaTrialQuestionnaireReq
+	//err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	//if err != nil {
+	//	br.Msg = "参数解析异常!"
+	//	br.ErrMsg = "参数解析失败,Err:" + err.Error()
+	//	return
+	//}
+	//
+	//var userReq etaTrialService.GetEtaTrialUserReq
+	//userReq.Mobile = sysUser.Mobile
+	//admin, e := etaTrialService.GetEtaTrialUser(userReq)
+	//if e != nil {
+	//	br.Msg = "操作失败"
+	//	br.ErrMsg = "获取ETA试用客户失败, GetEtaTrialUser Err:" + e.Error()
+	//	return
+	//}
+	//if admin.EtaTrialId <= 0 {
+	//	br.Ret = 200
+	//	br.Success = true
+	//	br.Msg = "操作成功"
+	//	return
+	//}
+	//
+	//if req.IsFill == 0 {
+	//	// 稍后再填
+	//	fillItem := &eta_trial.QuestionnaireFillRecord{
+	//		Mobile:     admin.Mobile,
+	//		IsFill:     1,
+	//		CreateTime: time.Now(),
+	//		ModifyTime: time.Now(),
+	//	}
+	//	err := eta_trial.AddQuestionnaireFillRecord(fillItem)
+	//	if err != nil {
+	//		br.Msg = "新增填写记录失败"
+	//		br.ErrMsg = "新增填写记录失败, Err:" + err.Error()
+	//		return
+	//	}
+	//} else {
+	//	// 已填写
+	//	list := make([]eta_trial.EtaTrialQuestionnaireRecord, 0)
+	//	for _, q := range req.List {
+	//		v := eta_trial.EtaTrialQuestionnaireRecord{
+	//			UserName:        admin.UserName,
+	//			CompanyName:     admin.CompanyName,
+	//			Position:        admin.Position,
+	//			Options:         q.Options,
+	//			Mobile:          admin.Mobile,
+	//			Type:            q.Type,
+	//			QuestionnaireId: q.QuestionnaireId,
+	//			CreateTime:      time.Now(),
+	//		}
+	//		list = append(list, v)
+	//	}
+	//
+	//	var commitReq etaTrialService.EtaTrialQuestionnaireCommitReq
+	//	commitReq.List = list
+	//	commitRes, e := etaTrialService.EtaTrialQuestionnaireCommit(commitReq)
+	//	if e != nil {
+	//		br.Msg = "操作失败"
+	//		br.ErrMsg = "新增问卷记录失败, EtaTrialQuestionnaireCommit Err: " + e.Error()
+	//		return
+	//	}
+	//	if !commitRes {
+	//		br.Msg = "操作失败"
+	//		br.ErrMsg = "新增问卷记录失败" + e.Error()
+	//		return
+	//	}
+	//
+	//	fillItem := &eta_trial.QuestionnaireFillRecord{
+	//		Mobile:     admin.Mobile,
+	//		IsFill:     2,
+	//		CreateTime: time.Now(),
+	//		ModifyTime: time.Now(),
+	//	}
+	//	err := eta_trial.AddQuestionnaireFillRecord(fillItem)
+	//	if err != nil {
+	//		br.Msg = "新增填写记录失败"
+	//		br.ErrMsg = "新增填写记录失败, Err:" + err.Error()
+	//		return
+	//	}
+	//}
 
 	br.Ret = 200
 	br.Success = true

+ 15 - 16
controllers/research_group.go

@@ -2,7 +2,6 @@ package controllers
 
 import (
 	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/services"
 	"eta_gn/eta_api/utils"
 )
 
@@ -28,17 +27,17 @@ func (this *ResearchGroupController) GetResearchGroupList() {
 		return
 	}
 
-	include, _ := this.GetInt("Include")
-	list, err := services.GetResearchGroupTree(include)
-	if err != nil {
-		br.Msg = "获取分组失败"
-		br.ErrMsg = "GetResearchGroupList ErrMsg:" + err.Error()
-		return
-	}
+	//include, _ := this.GetInt("Include")
+	//list, err := services.GetResearchGroupTree(include)
+	//if err != nil {
+	//	br.Msg = "获取分组失败"
+	//	br.ErrMsg = "GetResearchGroupList ErrMsg:" + err.Error()
+	//	return
+	//}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
-	br.Data = list
+	//br.Data = list
 }
 
 // GetAdminResearchGroup
@@ -65,14 +64,14 @@ func (this *ResearchGroupController) GetAdminResearchGroup() {
 		return
 	}
 	//list, err := system.ResearchGroupRelationListByAdminId(adminId)
-	list, err := models.ResearchTagRelationListByAdminId(adminId)
-	if err != nil {
-		br.Msg = "获取研究方向失败"
-		br.ErrMsg = "GetAdminResearchGroup ErrMsg:" + err.Error()
-		return
-	}
+	//list, err := models.ResearchTagRelationListByAdminId(adminId)
+	//if err != nil {
+	//	br.Msg = "获取研究方向失败"
+	//	br.ErrMsg = "GetAdminResearchGroup ErrMsg:" + err.Error()
+	//	return
+	//}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
-	br.Data = list
+	//br.Data = list
 }

+ 27 - 28
controllers/roadshow/calendar.go

@@ -3,7 +3,6 @@ package roadshow
 import (
 	"eta_gn/eta_api/controllers"
 	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/roadshow"
 )
 
 // CalendarController 日历
@@ -22,32 +21,32 @@ func (this *CalendarController) ResearcherList() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	group, err := roadshow.GetResearcherGroup()
-	if err != nil {
-		br.Msg = "获取信息失败!"
-		br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
-		return
-	}
-	researcherList, err := roadshow.GetResearcher()
-	groupMap := make(map[int][]*roadshow.Researcher)
-	for _, v := range researcherList {
-		//if v.RoleTypeCode == "ficc_admin" {
-		//	findItems := groupMap[1]
-		//	findItems = append(findItems, v)
-		//	groupMap[1] = findItems
-		//} else {
-		if findItems, ok := groupMap[v.GroupId]; ok {
-			findItems = append(findItems, v)
-			groupMap[v.GroupId] = findItems
-		} else {
-			findItems = append(findItems, v)
-			groupMap[v.GroupId] = findItems
-		}
-		//}
-	}
-	for _, v := range group {
-		v.ResearcherList = groupMap[v.GroupId]
-	}
+	//group, err := roadshow.GetResearcherGroup()
+	//if err != nil {
+	//	br.Msg = "获取信息失败!"
+	//	br.ErrMsg = "获取分组信息失败!Err:" + err.Error()
+	//	return
+	//}
+	//researcherList, err := roadshow.GetResearcher()
+	//groupMap := make(map[int][]*roadshow.Researcher)
+	//for _, v := range researcherList {
+	//	//if v.RoleTypeCode == "ficc_admin" {
+	//	//	findItems := groupMap[1]
+	//	//	findItems = append(findItems, v)
+	//	//	groupMap[1] = findItems
+	//	//} else {
+	//	if findItems, ok := groupMap[v.GroupId]; ok {
+	//		findItems = append(findItems, v)
+	//		groupMap[v.GroupId] = findItems
+	//	} else {
+	//		findItems = append(findItems, v)
+	//		groupMap[v.GroupId] = findItems
+	//	}
+	//	//}
+	//}
+	//for _, v := range group {
+	//	v.ResearcherList = groupMap[v.GroupId]
+	//}
 	//allGroup := new(roadshow.ResearcherGroup)
 	//allGroup.GroupId = 99
 	//allGroup.GroupName = "ficc全体"
@@ -55,5 +54,5 @@ func (this *CalendarController) ResearcherList() {
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
-	br.Data = group
+	//br.Data = group
 }

+ 85 - 85
controllers/sys_admin.go

@@ -270,23 +270,23 @@ func (this *SysAdminController) ListSysuser() {
 		}
 	}
 	// 研究方向分组
-	if len(adminIdArr) > 0 && utils.BusinessCode == utils.BusinessCodeRelease {
-		//adminIds := strings.Join(adminIdArr, ",")
-		//researchGroupList, e := system.GetAdminResearchGroupListByAdminId(adminIds)
-		researchGroupList, e := models.GetAdminVarietyTagRelationListByAdminId(adminIdArr)
-		if e != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取研究方向分组列表失败, Err:" + e.Error()
-			return
-		}
-		researchGroupAdminIdName := make(map[int]string, 0)
-		for _, g := range researchGroupList {
-			researchGroupAdminIdName[g.AdminId] = g.GroupNameStr
-		}
-		for _, v := range list {
-			v.ResearchGroupName = researchGroupAdminIdName[v.AdminId]
-		}
-	}
+	//if len(adminIdArr) > 0 && utils.BusinessCode == utils.BusinessCodeRelease {
+	//	//adminIds := strings.Join(adminIdArr, ",")
+	//	//researchGroupList, e := system.GetAdminResearchGroupListByAdminId(adminIds)
+	//	researchGroupList, e := models.GetAdminVarietyTagRelationListByAdminId(adminIdArr)
+	//	if e != nil {
+	//		br.Msg = "获取失败"
+	//		br.ErrMsg = "获取研究方向分组列表失败, Err:" + e.Error()
+	//		return
+	//	}
+	//	researchGroupAdminIdName := make(map[int]string, 0)
+	//	for _, g := range researchGroupList {
+	//		researchGroupAdminIdName[g.AdminId] = g.GroupNameStr
+	//	}
+	//	for _, v := range list {
+	//		v.ResearchGroupName = researchGroupAdminIdName[v.AdminId]
+	//	}
+	//}
 
 	fmt.Println("teamId:", teamId)
 	page := paging.GetPaging(currentIndex, pageSize, total)
@@ -369,7 +369,7 @@ func (this *SysAdminController) Add() {
 			return
 		}
 		emailUser, e := system.GetSysUserByEmail(req.Email)
-		if e != nil && !utils.IsErrNoRow(e) {
+		if e != nil && e.Error() != utils.ErrNoRow() {
 			br.Msg = "操作失败"
 			br.ErrMsg = "邮箱获取用户失败"
 			return
@@ -384,7 +384,7 @@ func (this *SysAdminController) Add() {
 
 	roleItem, err := system.GetSysRoleById(req.RoleId)
 	if err != nil {
-		if utils.IsErrNoRow(err) {
+		if err.Error() == utils.ErrNoRow() {
 			br.Msg = "所选角色不存在"
 			return
 		}
@@ -398,7 +398,7 @@ func (this *SysAdminController) Add() {
 	if req.DepartmentId > 0 {
 		departmentItem, err := system.GetSysDepartmentById(req.DepartmentId)
 		if err != nil {
-			if utils.IsErrNoRow(err) {
+			if err.Error() == utils.ErrNoRow() {
 				br.Msg = "所选部门不存在"
 				return
 			}
@@ -414,7 +414,7 @@ func (this *SysAdminController) Add() {
 	if req.GroupId > 0 {
 		groupItem, err := system.GetSysGroupById(req.GroupId)
 		if err != nil {
-			if utils.IsErrNoRow(err) {
+			if err.Error() == utils.ErrNoRow() {
 				br.Msg = "所选分组不存在"
 				return
 			}
@@ -430,7 +430,7 @@ func (this *SysAdminController) Add() {
 	if req.TeamId > 0 {
 		teamItem, err := system.GetSysGroupById(req.TeamId)
 		if err != nil {
-			if utils.IsErrNoRow(err) {
+			if err.Error() == utils.ErrNoRow() {
 				br.Msg = "所选小组不存在"
 				return
 			}
@@ -544,19 +544,19 @@ func (this *SysAdminController) Add() {
 	}
 
 	// 同步用户缓存
-	if utils.BusinessCode == utils.BusinessCodeRelease {
-		var syncData system.SyncAdminData
-		syncData.Source = utils.SOURCE_ETA_FLAG
-		syncData.AdminName = admin.AdminName
-		_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
-
-		e := services.UpdateResearcherTagGroup(admin.AdminId, req.ResearchGroupIds)
-		if e != nil {
-			br.Msg = "新增失败"
-			br.ErrMsg = "新增用户研究方向分组失败, Err:" + e.Error()
-			return
-		}
-	}
+	//if utils.BusinessCode == utils.BusinessCodeRelease {
+	//	var syncData system.SyncAdminData
+	//	syncData.Source = utils.SOURCE_ETA_FLAG
+	//	syncData.AdminName = admin.AdminName
+	//	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
+	//
+	//	e := services.UpdateResearcherTagGroup(admin.AdminId, req.ResearchGroupIds)
+	//	if e != nil {
+	//		br.Msg = "新增失败"
+	//		br.ErrMsg = "新增用户研究方向分组失败, Err:" + e.Error()
+	//		return
+	//	}
+	//}
 
 	// 清楚系统用户列表缓存key
 	utils.Rc.Delete(utils.CACHE_KEY_ADMIN)
@@ -616,7 +616,7 @@ func (this *SysAdminController) Edit() {
 	//根据用户id获取用户信息
 	adminInfo, err := system.GetSysAdminById(req.AdminId)
 	if err != nil {
-		if utils.IsErrNoRow(err) {
+		if err.Error() == utils.ErrNoRow() {
 			br.Msg = "用户已被删除, 请刷新页面"
 			return
 		}
@@ -627,7 +627,7 @@ func (this *SysAdminController) Edit() {
 
 	// 根据用户登录用户名获取用户信息
 	item, err := system.GetSysAdminByName(req.AdminName)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取数据失败"
 		br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error() + ";AdminName:" + req.AdminName
 		return
@@ -670,7 +670,7 @@ func (this *SysAdminController) Edit() {
 			return
 		}
 		emailUser, e := system.GetSysUserByEmail(req.Email)
-		if e != nil && !utils.IsErrNoRow(e) {
+		if e != nil && e.Error() != utils.ErrNoRow() {
 			br.Msg = "操作失败"
 			br.ErrMsg = "邮箱获取用户信息失败, Err: " + e.Error()
 			return
@@ -686,7 +686,7 @@ func (this *SysAdminController) Edit() {
 
 	roleItem, err := system.GetSysRoleById(req.RoleId)
 	if err != nil {
-		if utils.IsErrNoRow(err) {
+		if err.Error() == utils.ErrNoRow() {
 			br.Msg = "角色不存在,请重新选择"
 			br.ErrMsg = "角色不存在"
 			return
@@ -766,19 +766,19 @@ func (this *SysAdminController) Edit() {
 	}
 
 	// 同步用户缓存
-	if utils.BusinessCode == utils.BusinessCodeRelease {
-		var syncData system.SyncAdminData
-		syncData.Source = utils.SOURCE_ETA_FLAG
-		syncData.AdminName = adminInfo.AdminName
-		_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
-
-		// 研究方向分组
-		if e := services.UpdateResearcherTagGroup(req.AdminId, req.ResearchGroupIds); e != nil {
-			br.Msg = "编辑失败"
-			br.ErrMsg = "更新用户研究方向失败, Err:" + e.Error()
-			return
-		}
-	}
+	//if utils.BusinessCode == utils.BusinessCodeRelease {
+	//	var syncData system.SyncAdminData
+	//	syncData.Source = utils.SOURCE_ETA_FLAG
+	//	syncData.AdminName = adminInfo.AdminName
+	//	_ = utils.Rc.LPush(utils.CACHE_SYNC_ADMIN, syncData)
+	//
+	//	// 研究方向分组
+	//	if e := services.UpdateResearcherTagGroup(req.AdminId, req.ResearchGroupIds); e != nil {
+	//		br.Msg = "编辑失败"
+	//		br.ErrMsg = "更新用户研究方向失败, Err:" + e.Error()
+	//		return
+	//	}
+	//}
 
 	// 用户登出
 	logOutSystemUser(adminInfo.AdminId)
@@ -1003,7 +1003,7 @@ func (this *SysAdminController) SetConfig() {
 
 	item, err := system.GetConfigDetailByCode(this.SysUser.AdminId, req.ConfigCode)
 	if err != nil {
-		if !utils.IsErrNoRow(err) {
+		if err.Error() != utils.ErrNoRow() {
 			br.Msg = "设置失败"
 			br.ErrMsg = "设置失败,Err:" + err.Error()
 			return
@@ -1086,7 +1086,7 @@ func (this *SysAdminController) Move() {
 	}
 
 	adminInfo, err := system.GetSysAdminById(req.AdminId)
-	if err != nil && !utils.IsErrNoRow(err) {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取数据失败"
 		br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error() + ";AdminId:" + fmt.Sprint(req.AdminId)
 		return
@@ -1144,36 +1144,36 @@ func (this *SysAdminController) Move() {
 	}
 
 	// 修改客户关联的分组
-	{
-		if req.TeamId > 0 {
-			if req.TeamId != adminInfo.GroupId {
-				err = company.ModifyCompanyGroupId(req.AdminId, req.TeamId)
-				if err != nil {
-					br.Msg = "编辑失败"
-					br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
-					return
-				}
-			}
-		} else {
-			if req.GroupId != adminInfo.GroupId {
-				err = company.ModifyCompanyGroupId(req.AdminId, req.GroupId)
-				if err != nil {
-					br.Msg = "编辑失败"
-					br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
-					return
-				}
-			}
-		}
-
-		if req.DepartmentId != adminInfo.DepartmentId {
-			err = company.ModifyCompanyDepartmentId(req.AdminId, req.DepartmentId)
-			if err != nil {
-				br.Msg = "编辑失败"
-				br.ErrMsg = "ModifyCompanyDepartmentId,Err:" + err.Error()
-				return
-			}
-		}
-	}
+	//{
+	//	if req.TeamId > 0 {
+	//		if req.TeamId != adminInfo.GroupId {
+	//			err = company.ModifyCompanyGroupId(req.AdminId, req.TeamId)
+	//			if err != nil {
+	//				br.Msg = "编辑失败"
+	//				br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
+	//				return
+	//			}
+	//		}
+	//	} else {
+	//		if req.GroupId != adminInfo.GroupId {
+	//			err = company.ModifyCompanyGroupId(req.AdminId, req.GroupId)
+	//			if err != nil {
+	//				br.Msg = "编辑失败"
+	//				br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
+	//				return
+	//			}
+	//		}
+	//	}
+	//
+	//	if req.DepartmentId != adminInfo.DepartmentId {
+	//		err = company.ModifyCompanyDepartmentId(req.AdminId, req.DepartmentId)
+	//		if err != nil {
+	//			br.Msg = "编辑失败"
+	//			br.ErrMsg = "ModifyCompanyDepartmentId,Err:" + err.Error()
+	//			return
+	//		}
+	//	}
+	//}
 
 	// 同步用户缓存
 	if utils.BusinessCode == utils.BusinessCodeRelease {
@@ -1234,7 +1234,7 @@ func (this *SysAdminController) ResetPass() {
 
 	adminInfo, err := system.GetSysAdminById(req.AdminId)
 	if err != nil {
-		if utils.IsErrNoRow(err) {
+		if err.Error() == utils.ErrNoRow() {
 			br.Msg = "用户已被删除, 请刷新页面"
 			return
 		}

+ 10 - 10
controllers/variety_tag.go

@@ -32,16 +32,16 @@ func (this *VarietyTagController) TagTree() {
 		return
 	}
 
-	hasResearcher, _ := this.GetInt("HasResearcher")    // 是否展示研究员:1展示, 0不展示
-	include, _ := this.GetInt("IncludeDisableMember")   // 是否包含被禁用的研究员标签
-	questionId, _ := this.GetInt("CommunityQuestionId") // 问答社区ID-用于区分哪些研究员不可选
-	list, e := services.GetTagTree(hasResearcher, include, questionId)
-	if e != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "TagTree-获取标签树失败, Err: " + e.Error()
-		return
-	}
-	resp = list
+	//hasResearcher, _ := this.GetInt("HasResearcher")    // 是否展示研究员:1展示, 0不展示
+	//include, _ := this.GetInt("IncludeDisableMember")   // 是否包含被禁用的研究员标签
+	//questionId, _ := this.GetInt("CommunityQuestionId") // 问答社区ID-用于区分哪些研究员不可选
+	//list, e := services.GetTagTree(hasResearcher, include, questionId)
+	//if e != nil {
+	//	br.Msg = "获取失败"
+	//	br.ErrMsg = "TagTree-获取标签树失败, Err: " + e.Error()
+	//	return
+	//}
+	//resp = list
 
 	br.Ret = 200
 	br.Success = true

+ 53 - 39
models/ai_summary/ai_pormpt.go

@@ -1,32 +1,32 @@
 package ai_summary
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
 type AiPrompt struct {
-	AiPromptId    int       `orm:"column(ai_prompt_id);pk" gorm:"primaryKey" ` // ai纪要提示词id
-	PromptContent string    // 原始内容
-	SysAdminId    int       // 创建人ID
-	SysAdminName  string    // 创建人姓名
-	Title         string    // 文档标题
-	CreateTime    time.Time // 创建时间
-	ModifyTime    time.Time // 更新时间
-	IsShare       int       // 是否分享,0:不分享,1:分享
-	Sort          int       // 排序
+	AiPromptId    int       `gorm:"primaryKey;column:ai_prompt_id;type:int(10) unsigned;not null"` // ai纪要提示词id
+	PromptContent string    `gorm:"column:prompt_content;type:longtext"`                           // 提示词内容
+	SysAdminId    int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`  // 创建人ID
+	SysAdminName  string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`   // 创建人姓名
+	Title         string    `gorm:"column:title;type:varchar(255);not null;default:''"`            // 文档标题
+	CreateTime    time.Time `gorm:"column:create_time;type:datetime"`                              // 创建时间
+	ModifyTime    time.Time `gorm:"column:modify_time;type:datetime"`                              // 更新时间
+	IsShare       int       `gorm:"column:is_share;type:tinyint(9) unsigned;default:0"`            // 是否分享,0:不分享,1:分享
+	Sort          int       `gorm:"column:sort;type:int(9) unsigned;default:10"`                   // 排序字段,越小越靠前,默认值:10
 }
 
 type AiPromptItem struct {
-	AiPromptId    int    `orm:"column(ai_prompt_id);pk" gorm:"primaryKey" ` // ai纪要提示词id
-	PromptContent string // 原始内容
-	SysAdminId    int    // 创建人ID
-	SysAdminName  string // 创建人姓名
-	Title         string // 文档标题
-	CreateTime    string // 创建时间
-	ModifyTime    string // 更新时间
-	IsShare       int    // 是否分享,0:不分享,1:分享
-	Sort          int    // 排序
+	AiPromptId    int    `gorm:"primaryKey;column:ai_prompt_id;type:int(10) unsigned;not null"` // ai纪要提示词id
+	PromptContent string `gorm:"column:prompt_content;type:longtext"`                           // 提示词内容
+	SysAdminId    int    `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`  // 创建人ID
+	SysAdminName  string `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`   // 创建人姓名
+	Title         string `gorm:"column:title;type:varchar(255);not null;default:''"`            // 文档标题
+	CreateTime    string `gorm:"column:create_time;type:datetime"`                              // 创建时间
+	ModifyTime    string `gorm:"column:modify_time;type:datetime"`                              // 更新时间
+	IsShare       int    `gorm:"column:is_share;type:tinyint(9) unsigned;default:0"`            // 是否分享,0:不分享,1:分享
+	Sort          int    `gorm:"column:sort;type:int(9) unsigned;default:10"`                   // 排序字段,越小越靠前,默认值:10
 }
 
 func GetAiPromptList(sysUserId, isShare int) (items []*AiPromptItem, err error) {
@@ -36,8 +36,9 @@ func GetAiPromptList(sysUserId, isShare int) (items []*AiPromptItem, err error)
 	} else {
 		sql = ` SELECT * FROM ai_prompt WHERE sys_admin_id=? ORDER BY sort  `
 	}
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, sysUserId).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, sysUserId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, sysUserId).Find(&items).Error
 	return
 }
 
@@ -45,8 +46,9 @@ func GetAiPromptShareList() (items []*AiPromptItem, err error) {
 	sql := ``
 	sql = ` SELECT * FROM ai_prompt WHERE is_share=1 ORDER BY create_time DESC `
 
-	o := orm.NewOrm()
-	_, err = o.Raw(sql).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -64,8 +66,10 @@ type AiPromptAddReq struct {
 }
 
 func AddPropmt(item *AiPrompt) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
+	lastId = int64(item.AiPromptId)
 	return
 }
 
@@ -75,25 +79,29 @@ type AiPromptEditReq struct {
 	AiPromptId    int    // ai纪要提示词id
 }
 
-// Update
 func (aiPrompt *AiPrompt) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(aiPrompt, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(aiPrompt, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(aiPrompt).Error
 	return
 }
 
-// DelAiSummaryById 根据纪要id删除纪要
+// DelAiPromptyId 根据纪要id删除纪要
 func DelAiPromptyId(aiPromptId int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `delete from ai_prompt where ai_prompt_id = ? `
+	//_, err = o.Raw(sql, aiPromptId).Exec()
 	sql := `delete from ai_prompt where ai_prompt_id = ? `
-	_, err = o.Raw(sql, aiPromptId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, aiPromptId).Error
 	return
 }
 
 func GetAiPromptById(promptId int) (item *AiPrompt, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT * FROM ai_prompt WHERE 1=1 AND ai_prompt_id=? `
+	//err = o.Raw(sql, promptId).QueryRow(&item)
 	sql := `SELECT * FROM ai_prompt WHERE 1=1 AND ai_prompt_id=? `
-	err = o.Raw(sql, promptId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, promptId).First(&item).Error
 	return
 }
 
@@ -109,24 +117,30 @@ type ReqMovePrompt struct {
 
 // GetAiPromptMaxSort 获取ai提示词下最大的排序数
 func GetAiPromptMaxSort(adminId int) (sort int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT Max(sort) AS sort FROM ai_prompt WHERE sys_admin_id=? `
+	//err = o.Raw(sql, adminId).QueryRow(&sort)
 	sql := `SELECT Max(sort) AS sort FROM ai_prompt WHERE sys_admin_id=? `
-	err = o.Raw(sql, adminId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId).First(&sort).Error
 	return
 }
 
 // MoveDownPromptBySort 往下移动提示词
 func MoveDownPromptBySort(sysAdminId, prevSort, currentSort int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `update ai_prompt set sort = sort - 1 where sys_admin_id = ? and sort <= ? and sort> ? `
+	//_, err = o.Raw(sql, sysAdminId, prevSort, currentSort).Exec()
 	sql := `update ai_prompt set sort = sort - 1 where sys_admin_id = ? and sort <= ? and sort> ? `
-	_, err = o.Raw(sql, sysAdminId, prevSort, currentSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, sysAdminId, prevSort, currentSort).Error
 	return
 }
 
 // MoveUpPromptBySort 往上移动提示词
 func MoveUpPromptBySort(sysAdminId, nextSort, currentSort int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `update ai_prompt set sort = sort + 1 where sys_admin_id = ? and sort >= ? and sort< ?`
+	//_, err = o.Raw(sql, sysAdminId, nextSort, currentSort).Exec()
 	sql := `update ai_prompt set sort = sort + 1 where sys_admin_id = ? and sort >= ? and sort< ?`
-	_, err = o.Raw(sql, sysAdminId, nextSort, currentSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, sysAdminId, nextSort, currentSort).Error
 	return
 }

+ 97 - 67
models/ai_summary/ai_summary.go

@@ -1,137 +1,165 @@
 package ai_summary
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type AiSummary struct {
-	AiSummaryId     int       `orm:"column(ai_summary_id);pk" gorm:"primaryKey" ` // ai纪要id
-	SaDocId         int       // 文档ID
-	OriginContent   string    // 原始内容
-	SummaryContent  string    // 纪要内容
-	ClassifyId      int       // 分类id
-	SysUserId       int       // 创建人ID
-	SysUserRealName string    // 创建人姓名
-	Title           string    // 文档标题
-	CreateTime      time.Time // 创建时间
-	ModifyTime      time.Time // 更新时间
-	OpenaiFileName  string    // 文件名称
-	OpenaiFilePath  string    // 文件路径
-	OriginTitle     string    // 原文标题
-	Sort            int       // 排序字段,越小越靠前,默认值:10
+	AiSummaryId     int       `gorm:"primaryKey;column:ai_summary_id;type:int(10) unsigned;not null"`             // ai纪要id
+	SaDocId         int       `gorm:"index:idx_doc_id;column:sa_doc_id;type:int(10) unsigned;not null;default:0"` // 文档ID
+	OriginTitle     string    `gorm:"column:origin_title;type:varchar(255)"`                                      // 原始内容标题
+	OriginContent   string    `gorm:"column:origin_content;type:text"`                                            // 原始内容
+	ClassifyId      int       `gorm:"column:classify_id;type:int(11);not null"`                                   // 分类id
+	Title           string    `gorm:"column:title;type:varchar(255);not null;default:''"`                         // 文档标题
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime"`                                           // 创建时间
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime"`                                           // 更新时间
+	OpenaiFileName  string    `gorm:"column:openai_file_name;type:varchar(255);default:''"`                       // 文件名称
+	OpenaiFilePath  string    `gorm:"column:openai_file_path;type:varchar(255);default:''"`                       // 文件路径
+	SummaryContent  string    `gorm:"column:summary_content;type:longtext"`                                       // ai纪要内容
+	Sort            int       `gorm:"column:sort;type:int(9) unsigned;default:10"`                                // 排序字段,越小越靠前,默认值:10
+	SysUserId       int       `gorm:"column:sys_user_id;type:int(11)"`                                            // 创建人id
+	SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(50)"`                                 // 创建人姓名
 }
 
 type AiSummaryItems struct {
-	AiSummaryId     int    `orm:"column(ai_summary_id);pk" gorm:"primaryKey" ` // ai纪要id
-	SaDocId         int    // 文档ID
-	OriginContent   string // 原始内容
-	OriginTitle     string // 原文标题
-	SummaryContent  string // 纪要内容
-	ClassifyId      int    // 分类id
-	SysUserId       int    // 创建人ID
-	SysUserRealName string // 创建人姓名
-	Title           string // 文档标题
-	CreateTime      string // 创建时间
-	ModifyTime      string // 更新时间
-	OpenaiFileName  string // 文件名称
-	OpenaiFilePath  string // 文件路径
-	Sort            int    // 排序字段,越小越靠前,默认值:10
-	ParentIds       string
-}
-
-func GetAiChatTopicList(sysUserId int) (item []*AiSummary, err error) {
-	sql := ` SELECT * FROM ai_summary WHERE classify_id=? ORDER BY create_time DESC `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, sysUserId).QueryRows(&item)
-	return
-}
+	AiSummaryId     int    `gorm:"primaryKey;column:ai_summary_id;type:int(10) unsigned;not null"`             // ai纪要id
+	SaDocId         int    `gorm:"index:idx_doc_id;column:sa_doc_id;type:int(10) unsigned;not null;default:0"` // 文档ID
+	OriginTitle     string `gorm:"column:origin_title;type:varchar(255)"`                                      // 原始内容标题
+	OriginContent   string `gorm:"column:origin_content;type:text"`                                            // 原始内容
+	ClassifyId      int    `gorm:"column:classify_id;type:int(11);not null"`                                   // 分类id
+	Title           string `gorm:"column:title;type:varchar(255);not null;default:''"`                         // 文档标题
+	CreateTime      string `gorm:"column:create_time;type:datetime"`                                           // 创建时间
+	ModifyTime      string `gorm:"column:modify_time;type:datetime"`                                           // 更新时间
+	OpenaiFileName  string `gorm:"column:openai_file_name;type:varchar(255);default:''"`                       // 文件名称
+	OpenaiFilePath  string `gorm:"column:openai_file_path;type:varchar(255);default:''"`                       // 文件路径
+	SummaryContent  string `gorm:"column:summary_content;type:longtext"`                                       // ai纪要内容
+	Sort            int    `gorm:"column:sort;type:int(9) unsigned;default:10"`                                // 排序字段,越小越靠前,默认值:10
+	SysUserId       int    `gorm:"column:sys_user_id;type:int(11)"`                                            // 创建人id
+	SysUserRealName string `gorm:"column:sys_user_real_name;type:varchar(50)"`                                 // 创建人姓名
+	ParentIds       string `gorm:"-"`
+}
+
+//func GetAiChatTopicList(sysUserId int) (item []*AiSummary, err error) {
+//	sql := ` SELECT * FROM ai_summary WHERE classify_id=? ORDER BY create_time DESC `
+//	o := orm.NewOrm()
+//	_, err = o.Raw(sql, sysUserId).QueryRows(&item)
+//	return
+//}
 
 // GetAiSummaryById 根据纪要id获取详情
 func GetAiSummaryById(aiSummaryId int) (sandboxInfo *AiSummary, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `select * from ai_summary where ai_summary_id = ? `
+	//err = o.Raw(sql, aiSummaryId).QueryRow(&sandboxInfo)
 	sql := `select * from ai_summary where ai_summary_id = ? `
-	err = o.Raw(sql, aiSummaryId).QueryRow(&sandboxInfo)
+	err = global.DEFAULT_DmSQL.Raw(sql, aiSummaryId).First(&sandboxInfo).Error
 	return
 }
 
-// GetAiSummaryById 根据纪要id获取详情
+// GetAiSummaryItemById 根据纪要id获取详情
 func GetAiSummaryItemById(aiSummaryId int) (sandboxInfo *AiSummaryItems, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `select * from ai_summary where ai_summary_id = ? `
+	//err = o.Raw(sql, aiSummaryId).QueryRow(&sandboxInfo)
 	sql := `select * from ai_summary where ai_summary_id = ? `
-	err = o.Raw(sql, aiSummaryId).QueryRow(&sandboxInfo)
+	err = global.DEFAULT_DmSQL.Raw(sql, aiSummaryId).First(&sandboxInfo).Error
 	return
 }
 
 // DelAiSummaryById 根据纪要id删除纪要
 func DelAiSummaryById(aiSummaryId int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `delete from ai_summary where ai_summary_id = ? `
+	//_, err = o.Raw(sql, aiSummaryId).Exec()
 	sql := `delete from ai_summary where ai_summary_id = ? `
-	_, err = o.Raw(sql, aiSummaryId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, aiSummaryId).Error
 	return
 }
 
 func MoveAiSummary(aiSummaryId, classifyId int) (err error) {
-	o := orm.NewOrm()
-	sql := ` UPDATE  ai_summary
-			SET
-			  classify_id = ?
-			WHERE ai_summary_id = ?`
-	_, err = o.Raw(sql, classifyId, aiSummaryId).Exec()
+	//o := orm.NewOrm()
+	//sql := ` UPDATE  ai_summary
+	//		SET
+	//		  classify_id = ?
+	//		WHERE ai_summary_id = ?`
+	//_, err = o.Raw(sql, classifyId, aiSummaryId).Exec()
+	sql := `UPDATE ai_summary SET classify_id = ? WHERE ai_summary_id = ?`
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyId, aiSummaryId).Error
 	return
 }
 
 // GetFirstAiSummaryByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
 func GetFirstAiSummaryByClassifyId(classifyId int) (item *AiSummary, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT * FROM ai_summary WHERE classify_id=? order by sort asc,ai_summary_id asc limit 1`
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
 	sql := ` SELECT * FROM ai_summary WHERE classify_id=? order by sort asc,ai_summary_id asc limit 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).First(&item).Error
 	return
 }
 
-// Update
 func (aiSummary *AiSummary) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(aiSummary, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(aiSummary, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(aiSummary).Error
 	return
 }
 
-// UpdateSandboxSortByClassifyId 根据纪要id更新排序
+// UpdateAiSummarySortByClassifyId 根据纪要id更新排序
 func UpdateAiSummarySortByClassifyId(classifyId, nowSort, prevAiSummaryId int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` update ai_summary set sort = ` + updateSort + ` WHERE classify_id=?  AND `
+	//if prevAiSummaryId > 0 {
+	//	sql += ` (sort > ? or (ai_summary_id > ` + fmt.Sprint(prevAiSummaryId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
+	//}
+	//_, err = o.Raw(sql, classifyId, nowSort).Exec()
 	sql := ` update ai_summary set sort = ` + updateSort + ` WHERE classify_id=?  AND `
 	if prevAiSummaryId > 0 {
 		sql += ` (sort > ? or (ai_summary_id > ` + fmt.Sprint(prevAiSummaryId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
 	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyId, nowSort).Error
 	return
 }
 
 func GetAiSummaryListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*AiSummaryItems, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT * FROM ai_summary WHERE 1=1 `
+	//if condition != "" {
+	//	sql += condition
+	//}
+	//sql += " ORDER BY create_time DESC LIMIT ?,? "
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
 	sql := ` SELECT * FROM ai_summary WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += " ORDER BY create_time DESC LIMIT ?,? "
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&item).Error
 	return
 }
 
 func GetAiSummaryListCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT COUNT(1) AS count FROM ai_summary WHERE 1=1 `
+	//if condition != "" {
+	//	sql += condition
+	//}
+	//err = o.Raw(sql, pars).QueryRow(&count)
 	sql := ` SELECT COUNT(1) AS count FROM ai_summary WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func AddAiSummary(item *AiSummary) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
+	lastId = int64(item.AiSummaryId)
 	return
 }
 
@@ -157,9 +185,11 @@ type GenerateAiSummaryReq struct {
 
 // GetAiSummaryMaxSort 获取ai纪要下最大的排序数
 func GetAiSummaryMaxSort(classifyId int) (sort int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT Max(sort) AS sort FROM ai_summary WHERE parent_id=? `
+	//err = o.Raw(sql, classifyId).QueryRow(&sort)
 	sql := `SELECT Max(sort) AS sort FROM ai_summary WHERE parent_id=? `
-	err = o.Raw(sql, classifyId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).Scan(&sort).Error
 	return
 }
 

+ 218 - 74
models/ai_summary/ai_summary_classify.go

@@ -1,46 +1,49 @@
 package ai_summary
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 type AiSummaryClassify struct {
-	AiSummaryClassifyId int       `orm:"column(ai_summary_classify_id);pk" gorm:"primaryKey" ` // ai纪要分类id
-	ClassifyName        string    // 分类名称
-	ParentId            int       // 父级id
-	CreateTime          time.Time // 创建时间
-	ModifyTime          time.Time // 修改时间
-	SysUserId           int       // 创建人id,使用指针表示可为空
-	SysUserRealName     string    // 创建人姓名
-	Level               int       // 层级
-	Sort                int       // 排序字段,越小越靠前,默认值:10
-	RootId              int       // 顶级ID
-	HasData             int       `description:"是否含有指标数据"`
+	AiSummaryClassifyId int       `gorm:"primaryKey;column:ai_summary_classify_id;type:int(11);not null"`
+	ClassifyName        string    `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ParentId            int       `gorm:"column:parent_id;type:int(11);not null;default:0"`           // 父级id
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                           // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                           // 修改时间
+	SysUserId           int       `gorm:"index:idx_sys_user_id;column:sys_user_id;type:int(11)"`      // 创建人id
+	SysUserRealName     string    `gorm:"column:sys_user_real_name;type:varchar(50)"`                 // 创建人姓名
+	Level               int       `gorm:"column:level;type:int(11);default:0"`                        // 层级
+	Sort                int       `gorm:"column:sort;type:int(9) unsigned;default:10"`                // 排序字段,越小越靠前,默认值:10
+	RootId              int       `gorm:"column:root_id;type:int(11);not null;default:0"`             // 顶级ID
+	HasData             int       `gorm:"column:has_data;type:tinyint(4);default:0"`                  // 是否存在指标数据:1有,2:无
 }
 
 func AddAiSummaryClassify(item *AiSummaryClassify) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
+	lastId = int64(item.AiSummaryClassifyId)
 	return
 }
 
 type AiSummaryClassifyItems struct {
-	AiSummaryClassifyId int
-	ClassifyName        string    `description:"分类名称"`
-	ParentId            int       `description:"父级id"`
-	HasData             int       `description:"是否含有指标数据"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
-	SysUserId           int       `description:"创建人id"`
-	SysUserRealName     string    `description:"创建人姓名"`
-	Level               int       `description:"层级"`
-	Sort                int       `description:"排序字段,越小越靠前,默认值:10"`
-	AiSummaryId         int       `description:"纪要id"`
-	UniqueCode          string    `description:"唯一编码"`
-	Children            []*AiSummaryClassifyItems
+	AiSummaryClassifyId int                       `gorm:"primaryKey;column:ai_summary_classify_id;type:int(11);not null"`
+	ClassifyName        string                    `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ParentId            int                       `gorm:"column:parent_id;type:int(11);not null;default:0"`           // 父级id
+	CreateTime          time.Time                 `gorm:"column:create_time;type:datetime"`                           // 创建时间
+	ModifyTime          time.Time                 `gorm:"column:modify_time;type:datetime"`                           // 修改时间
+	SysUserId           int                       `gorm:"index:idx_sys_user_id;column:sys_user_id;type:int(11)"`      // 创建人id
+	SysUserRealName     string                    `gorm:"column:sys_user_real_name;type:varchar(50)"`                 // 创建人姓名
+	Level               int                       `gorm:"column:level;type:int(11);default:0"`                        // 层级
+	Sort                int                       `gorm:"column:sort;type:int(9) unsigned;default:10"`                // 排序字段,越小越靠前,默认值:10
+	RootId              int                       `gorm:"column:root_id;type:int(11);not null;default:0"`             // 顶级ID
+	HasData             int                       `gorm:"column:has_data;type:tinyint(4);default:0"`                  // 是否存在指标数据:1有,2:无
+	AiSummaryId         int                       `description:"纪要id" gorm:"-"`
+	UniqueCode          string                    `description:"唯一编码" gorm:"-"`
+	Children            []*AiSummaryClassifyItems `gorm:"-"`
 }
 
 type AiSummaryClassifyListResp struct {
@@ -49,15 +52,30 @@ type AiSummaryClassifyListResp struct {
 
 // GetAiSummaryClassifyByParentId
 func GetAiSummaryClassifyByParentId(parentId int) (items []*AiSummaryClassifyItems, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT * FROM ai_summary_classify WHERE parent_id=? order by sort asc,ai_summary_classify_id asc`
+	//_, err = o.Raw(sql, parentId).QueryRows(&items)
 	sql := ` SELECT * FROM ai_summary_classify WHERE parent_id=? order by sort asc,ai_summary_classify_id asc`
-	_, err = o.Raw(sql, parentId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).Find(&items).Error
 	return
 }
 
 // GetAiSummaryInfoByAdminId 获取所有我创建的纪要,用于分类展示
 func GetAiSummaryInfoByAdminId(adminId int) (items []*AiSummaryClassifyItems, err error) {
-	o := orm.NewOrm()
+	//	o := orm.NewOrm()
+	//	sql := ` SELECT
+	//	a.*,
+	//	b.ai_summary_classify_id,
+	//	b.classify_name
+	//FROM
+	//	ai_summary AS a
+	//	JOIN ai_summary_classify AS b ON a.classify_id = b.ai_summary_classify_id
+	//WHERE
+	//	a.sys_user_id = ?
+	//ORDER BY
+	//	a.sort ASC,
+	//	a.create_time ASC `
+	//	_, err = o.Raw(sql, adminId).QueryRows(&items)
 	sql := ` SELECT
 	a.*,
 	b.ai_summary_classify_id,
@@ -70,13 +88,47 @@ WHERE
 ORDER BY
 	a.sort ASC,
 	a.create_time ASC `
-	_, err = o.Raw(sql, adminId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId).Find(&items).Error
 	return
 }
 
 // GetAiSummaryClassifyAndInfoByParentId
 func GetAiSummaryClassifyAndInfoByParentId(parentId int) (items []*AiSummaryClassifyItems, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//	sql := ` SELECT
+	//	0 AS ai_summary_id,
+	//	ai_summary_classify_id,
+	//	classify_name,
+	//	parent_id,
+	//	create_time,
+	//	modify_time,
+	//	sys_user_id,
+	//	sys_user_real_name AS sys_user_real_name,
+	//	sort,
+	//	level
+	//FROM
+	//	ai_summary_classify
+	//WHERE
+	//	parent_id = ? UNION ALL
+	//SELECT
+	//	ai_summary_id,
+	//	classify_id as ai_summary_classify_id,
+	//	title AS classify_name,
+	//	0 AS parent_id,
+	//	create_time,
+	//	modify_time,
+	//	sys_user_id,
+	//	sys_user_real_name,
+	//	sort,
+	//	0 AS level
+	//FROM
+	//	ai_summary
+	//WHERE
+	//	classify_id = ?
+	//ORDER BY
+	//	sort ASC,
+	//	ai_summary_classify_id ASC`
+	//	_, err = o.Raw(sql, parentId, parentId).QueryRows(&items)
 	sql := ` SELECT
 	0 AS ai_summary_id,
 	ai_summary_classify_id,
@@ -110,7 +162,7 @@ WHERE
 ORDER BY
 	sort ASC,
 	ai_summary_classify_id ASC`
-	_, err = o.Raw(sql, parentId, parentId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId, parentId).Find(&items).Error
 	return
 }
 
@@ -121,17 +173,21 @@ type AddAiSummaryClassifyReq struct {
 }
 
 func GetAiSummaryClassifyCount(classifyName string, parentId int) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT COUNT(1) AS count FROM ai_summary_classify WHERE parent_id=? AND classify_name=? `
+	//err = o.Raw(sql, parentId, classifyName).QueryRow(&count)
 	sql := `SELECT COUNT(1) AS count FROM ai_summary_classify WHERE parent_id=? AND classify_name=? `
-	err = o.Raw(sql, parentId, classifyName).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId, classifyName).Scan(&count).Error
 	return
 }
 
 // GetAiSummaryClassifyMaxSort 获取ai纪要下最大的排序数
 func GetAiSummaryClassifyMaxSort(parentId int) (sort int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT Max(sort) AS sort FROM ai_summary_classify WHERE parent_id=? `
+	//err = o.Raw(sql, parentId).QueryRow(&sort)
 	sql := `SELECT Max(sort) AS sort FROM ai_summary_classify WHERE parent_id=? `
-	err = o.Raw(sql, parentId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).Scan(&sort).Error
 	return
 }
 
@@ -141,9 +197,11 @@ type EditAiSummaryClassifyReq struct {
 }
 
 func EditSandboxClassify(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `UPDATE ai_summary_classify SET classify_name=?, modify_time=NOW() WHERE ai_summary_classify_id=? `
+	//_, err = o.Raw(sql, classifyName, classifyId).Exec()
 	sql := `UPDATE ai_summary_classify SET classify_name=?, modify_time=NOW() WHERE ai_summary_classify_id=? `
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyName, classifyId).Error
 	return
 }
 
@@ -152,7 +210,20 @@ type AiSummaryClassifyDeleteCheckReq struct {
 }
 
 func GetAiSummaryInfoCountByClassifyId(classifyId int) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT COUNT(1) AS count FROM ai_summary AS a
+	//			WHERE a.classify_id IN(
+	//			SELECT t.ai_summary_classify_id FROM
+	//			(
+	//			SELECT rd.*
+	//			FROM (SELECT * FROM ai_summary_classify WHERE parent_id IS NOT NULL) rd,
+	//				 (SELECT @pid := ?) pd
+	//			WHERE FIND_IN_SET(parent_id, @pid) > 0
+	//			  AND @pid := CONCAT(@pid, ',', ai_summary_classify_id)
+	//			UNION SELECT * FROM ai_summary_classify WHERE ai_summary_classify_id = @pid
+	//			)AS t
+	//			) `
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
 	sql := ` SELECT COUNT(1) AS count FROM ai_summary AS a
 				WHERE a.classify_id IN(
 				SELECT t.ai_summary_classify_id FROM 
@@ -165,7 +236,7 @@ func GetAiSummaryInfoCountByClassifyId(classifyId int) (count int, err error) {
 				UNION SELECT * FROM ai_summary_classify WHERE ai_summary_classify_id = @pid 
 				)AS t
 				) `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
@@ -175,7 +246,20 @@ type DeleteAiSummaryClassifyReq struct {
 }
 
 func DeleteAiSummaryClassify(classifyId int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` DELETE FROM ai_summary_classify
+	//			WHERE ai_summary_classify_id IN(
+	//			SELECT t.ai_summary_classify_id FROM
+	//			(
+	//			SELECT rd.*
+	//			FROM (SELECT * FROM ai_summary_classify WHERE parent_id IS NOT NULL) rd,
+	//			(SELECT @pid := ?) pd
+	//			WHERE FIND_IN_SET(parent_id, @pid) > 0
+	//			AND @pid := CONCAT(@pid, ',', ai_summary_classify_id)
+	//			UNION SELECT * FROM ai_summary_classify WHERE ai_summary_classify_id = @pid
+	//			)AS t
+	//			) `
+	//_, err = o.Raw(sql, classifyId).Exec()
 	sql := ` DELETE FROM ai_summary_classify
 				WHERE ai_summary_classify_id IN(
 				SELECT t.ai_summary_classify_id FROM
@@ -188,7 +272,7 @@ func DeleteAiSummaryClassify(classifyId int) (err error) {
 				UNION SELECT * FROM ai_summary_classify WHERE ai_summary_classify_id = @pid
 				)AS t
 				) `
-	_, err = o.Raw(sql, classifyId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyId).Error
 	return
 }
 
@@ -204,63 +288,89 @@ type MoveAiSummaryClassifyReq struct {
 }
 
 func GetAiSummaryClassifyById(classifyId int) (item *AiSummaryClassify, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT * FROM ai_summary_classify WHERE ai_summary_classify_id=? `
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
 	sql := `SELECT * FROM ai_summary_classify WHERE ai_summary_classify_id=? `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 func GetAiSummaryClassifyCountById(classifyId int) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT count(1) AS count FROM ai_summary_classify WHERE ai_summary_classify_id=? `
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
 	sql := `SELECT count(1) AS count FROM ai_summary_classify WHERE ai_summary_classify_id=? `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
 // Update 更新沙盘分类基础信息
 func (aiSummaryClassify *AiSummaryClassify) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(aiSummaryClassify, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(aiSummaryClassify, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(aiSummaryClassify).Error
 	return
 }
 
 // GetFirstAiSummaryClassifyByParentId 获取当前父级沙盘分类下的排序第一条的数据
 func GetFirstAiSummaryClassifyByParentId(parentId int) (item *AiSummaryClassify, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT * FROM ai_summary_classify WHERE parent_id=? order by sort asc,ai_summary_classify_id asc limit 1`
+	//err = o.Raw(sql, parentId).QueryRow(&item)
 	sql := ` SELECT * FROM ai_summary_classify WHERE parent_id=? order by sort asc,ai_summary_classify_id asc limit 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).First(&item).Error
 	return
 }
 
-// UpdateSandboxClassifySortByParentId 根据沙盘父类id更新排序
+// UpdateAiSummaryClassifySortByParentId 根据沙盘父类id更新排序
 func UpdateAiSummaryClassifySortByParentId(parentId, classifyId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` update ai_summary_classify set sort = ` + updateSort + ` WHERE parent_id=? and sort > ? `
+	//if classifyId > 0 {
+	//	sql += ` or ( ai_summary_classify_id > ` + fmt.Sprint(classifyId) + ` and sort= ` + fmt.Sprint(nowSort) + `)`
+	//}
+	//_, err = o.Raw(sql, parentId, nowSort).Exec()
 	sql := ` update ai_summary_classify set sort = ` + updateSort + ` WHERE parent_id=? and sort > ? `
 	if classifyId > 0 {
 		sql += ` or ( ai_summary_classify_id > ` + fmt.Sprint(classifyId) + ` and sort= ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // 获取所有子级分类id
-func GetAiSummaryClassifySubcategories(classifyId int) (Ids string, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT GROUP_CONCAT(ai_summary_classify_id) AS ids
-FROM (
-SELECT @pv := ? AS ai_summary_classify_id
-UNION ALL
-SELECT sc.ai_summary_classify_id
-FROM ai_summary_classify sc
-JOIN (SELECT @pv := ?) initial
-WHERE sc.parent_id = @pv
-) subcategories; `
-	err = o.Raw(sql, classifyId, classifyId).QueryRow(&Ids)
-	return
-}
+//func GetAiSummaryClassifySubcategories(classifyId int) (Ids string, err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT GROUP_CONCAT(ai_summary_classify_id) AS ids
+//FROM (
+//SELECT @pv := ? AS ai_summary_classify_id
+//UNION ALL
+//SELECT sc.ai_summary_classify_id
+//FROM ai_summary_classify sc
+//JOIN (SELECT @pv := ?) initial
+//WHERE sc.parent_id = @pv
+//) subcategories; `
+//	err = o.Raw(sql, classifyId, classifyId).QueryRow(&Ids)
+//	return
+//}
 
 func GetAiSummaryClassify(aiSummaryClassify int) (aiSummaryClassifyIds string, err error) {
-	o := orm.NewOrm()
+	//	o := orm.NewOrm()
+	//	sql := `SELECT GROUP_CONCAT(t.ai_summary_classify_id) AS ai_summary_classify_id FROM (
+	//			SELECT a.ai_summary_classify_id FROM ai_summary_classify AS a
+	//			WHERE a.ai_summary_classify_id=?
+	//			UNION ALL
+	//			SELECT a.ai_summary_classify_id FROM ai_summary_classify AS a
+	//			WHERE a.parent_id=? UNION ALL
+	//	SELECT
+	//		ai_summary_classify_id
+	//	FROM
+	//		ai_summary_classify
+	//WHERE
+	//	parent_id IN ( SELECT ai_summary_classify_id FROM ai_summary_classify WHERE parent_id = ? )
+	//			)AS t`
+	//	err = o.Raw(sql, aiSummaryClassify, aiSummaryClassify, aiSummaryClassify).QueryRow(&aiSummaryClassifyIds)
 	sql := `SELECT GROUP_CONCAT(t.ai_summary_classify_id) AS ai_summary_classify_id FROM (
 			SELECT a.ai_summary_classify_id FROM ai_summary_classify AS a 
 			WHERE a.ai_summary_classify_id=?
@@ -274,12 +384,44 @@ func GetAiSummaryClassify(aiSummaryClassify int) (aiSummaryClassifyIds string, e
 WHERE
 	parent_id IN ( SELECT ai_summary_classify_id FROM ai_summary_classify WHERE parent_id = ? )
 			)AS t`
-	err = o.Raw(sql, aiSummaryClassify, aiSummaryClassify, aiSummaryClassify).QueryRow(&aiSummaryClassifyIds)
+	err = global.DEFAULT_DmSQL.Raw(sql, aiSummaryClassify, aiSummaryClassify, aiSummaryClassify).Scan(&aiSummaryClassifyIds).Error
 	return
 }
 
 func GetAiSummaryAllParentByClassifyId(aiSummaryClassifyId int) (ids string, err error) {
-	o := orm.NewOrm()
+	//	o := orm.NewOrm()
+	//	sql := `SELECT
+	//	GROUP_CONCAT(DISTINCT m.ai_summary_classify_id  ORDER BY m.level) AS ids
+	//FROM
+	//	(
+	//	SELECT
+	//		@id AS _id,(
+	//		SELECT
+	//			@id := parent_id
+	//		FROM
+	//			ai_summary_classify
+	//		WHERE
+	//			ai_summary_classify_id = _id
+	//		)
+	//	FROM
+	//		(
+	//		SELECT
+	//			@id :=(
+	//			SELECT
+	//				parent_id
+	//			FROM
+	//				ai_summary_classify
+	//			WHERE
+	//				ai_summary_classify_id = ?
+	//			)) vm,
+	//		ai_summary_classify m
+	//	WHERE
+	//		@id IS NOT NULL
+	//	) vm
+	//	INNER JOIN ai_summary_classify m
+	//WHERE
+	//	ai_summary_classify_id = vm._id `
+	//	err = o.Raw(sql, aiSummaryClassifyId).QueryRow(&ids)
 	sql := `SELECT
 	GROUP_CONCAT(DISTINCT m.ai_summary_classify_id  ORDER BY m.level) AS ids 
 FROM
@@ -311,7 +453,7 @@ FROM
 	INNER JOIN ai_summary_classify m 
 WHERE
 	ai_summary_classify_id = vm._id `
-	err = o.Raw(sql, aiSummaryClassifyId).QueryRow(&ids)
+	err = global.DEFAULT_DmSQL.Raw(sql, aiSummaryClassifyId).Scan(&ids).Error
 	return
 }
 
@@ -322,8 +464,10 @@ type AiSummaryListResp struct {
 
 // GetAiSummaryClassifyAll
 func GetAiSummaryClassifyAll() (items []*AiSummaryClassifyItems, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT * FROM ai_summary_classify WHERE parent_id<>0 order by sort asc,ai_summary_classify_id asc`
+	//_, err = o.Raw(sql).QueryRows(&items)
 	sql := ` SELECT * FROM ai_summary_classify WHERE parent_id<>0 order by sort asc,ai_summary_classify_id asc`
-	_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }

+ 172 - 71
models/aimod/ai.go

@@ -1,36 +1,62 @@
 package aimod
 
 import (
+	"eta_gn/eta_api/global"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
+//type AiChatTopic struct {
+//	AiChatTopicId   int `orm:"column(ai_chat_topic_id);pk"`
+//	TopicName       string
+//	SysUserId       int
+//	SysUserRealName string
+//	AssistantId     string
+//	ThreadId        string
+//	CreateTime      time.Time
+//	ModifyTime      time.Time
+//}
+
 type AiChatTopic struct {
-	AiChatTopicId   int `orm:"column(ai_chat_topic_id);pk" gorm:"primaryKey" `
-	TopicName       string
-	SysUserId       int
-	SysUserRealName string
-	AssistantId     string
-	ThreadId        string
-	CreateTime      time.Time
-	ModifyTime      time.Time
+	AiChatTopicId   int       `gorm:"primaryKey;column:ai_chat_topic_id;type:int(11);not null"`
+	TopicName       string    `gorm:"column:topic_name;type:varchar(255);default:''"`         // 话题名称
+	SysUserId       int       `gorm:"column:sys_user_id;type:int(11);default:0"`              // 创建人id
+	SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(100);default:''"` // 创建人姓名
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime"`                       // 创建时间
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime"`                       // 修改时间
+	AssistantId     string    `gorm:"column:assistant_id;type:varchar(255);default:''"`       // 助手id
+	ThreadId        string    `gorm:"column:thread_id;type:varchar(255);default:''"`          // 进程id
 }
 
+//type AiChat struct {
+//	AiChatId        int `orm:"column(ai_chat_id);pk"`
+//	AiChatTopicId   int
+//	Ask             string
+//	AskUuid         string
+//	Answer          string
+//	Model           string
+//	SysUserId       int
+//	SysUserRealName string `description:"提问人名称"`
+//	OpenaiFileId    string `description:"openai返回的文件id"`
+//	OpenaiFileName  string `description:"文件名称"`
+//	OpenaiFilePath  string `description:"文件路径"`
+//	CreateTime      time.Time
+//	ModifyTime      time.Time
+//}
+
 type AiChat struct {
-	AiChatId        int `orm:"column(ai_chat_id);pk" gorm:"primaryKey"`
-	AiChatTopicId   int
-	Ask             string
-	AskUuid         string
-	Answer          string
-	Model           string
-	SysUserId       int
-	SysUserRealName string `description:"提问人名称"`
-	OpenaiFileId    string `description:"openai返回的文件id"`
-	OpenaiFileName  string `description:"文件名称"`
-	OpenaiFilePath  string `description:"文件路径"`
-	CreateTime      time.Time
-	ModifyTime      time.Time
+	AiChatId        int       `gorm:"primaryKey;column:ai_chat_id;type:int(11);not null"`
+	AiChatTopicId   int       `gorm:"column:ai_chat_topic_id;type:int(11);default:0"`
+	Ask             string    `gorm:"column:ask;type:text"`                                           // 提问
+	AskUuid         string    `gorm:"index:idx_ask_uuid;column:ask_uuid;type:varchar(50);default:''"` // ask,md5值
+	Answer          string    `gorm:"column:answer;type:text"`                                        // 答案
+	SysUserId       int       `gorm:"column:sys_user_id;type:int(11);default:0"`                      // 提问人id
+	SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(100);default:''"`         // 提问人名称
+	Model           string    `gorm:"column:model;type:varchar(20);default:''"`                       // 模型
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime"`
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime"`
+	OpenaiFileId    string    `gorm:"column:openai_file_id;type:varchar(255);default:''"`   // openai返回的文件id
+	OpenaiFileName  string    `gorm:"column:openai_file_name;type:varchar(255);default:''"` // 文件名称
+	OpenaiFilePath  string    `gorm:"column:openai_file_path;type:varchar(255);default:''"` // 文件路径
 }
 
 type ChatReq struct {
@@ -40,9 +66,11 @@ type ChatReq struct {
 }
 
 func GetAiChatByAsk(askUuid string) (item *AiChat, err error) {
+	//sql := `SELECT * FROM ai_chat WHERE ask_uuid=?`
+	//o := orm.NewOrmUsingDB("ai")
+	//err = o.Raw(sql, askUuid).QueryRow(&item)
 	sql := `SELECT * FROM ai_chat WHERE ask_uuid=?`
-	o := orm.NewOrmUsingDB("ai")
-	err = o.Raw(sql, askUuid).QueryRow(&item)
+	err = global.DmSQL["ai"].Raw(sql, askUuid).First(&item).Error
 	return
 }
 
@@ -55,31 +83,48 @@ type ChatResp struct {
 
 // AddAiChatTopic 新增主题
 func AddAiChatTopic(item *AiChatTopic) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("ai")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("ai")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["ai"].Create(item).Error
+	lastId = int64(item.AiChatTopicId)
 	return
 }
 
 // AddAiChat 新增聊天
 func AddAiChat(item *AiChat) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("ai")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("ai")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["ai"].Create(item).Error
+	lastId = int64(item.AiChatId)
 	return
 }
 
+//type AiChatTopicView struct {
+//	AiChatTopicId int    `description:"主题id"`
+//	TopicName     string `description:"主题名称"`
+//	CreateTime    string `description:"创建时间"`
+//	ModifyTime    string `description:"修改时间"`
+//	AssistantId   string
+//	ThreadId      string
+//}
+
 type AiChatTopicView struct {
-	AiChatTopicId int    `description:"主题id"`
-	TopicName     string `description:"主题名称"`
-	CreateTime    string `description:"创建时间"`
-	ModifyTime    string `description:"修改时间"`
-	AssistantId   string
-	ThreadId      string
+	AiChatTopicId int    `gorm:"primaryKey;column:ai_chat_topic_id;type:int(11);not null"`
+	TopicName     string `gorm:"column:topic_name;type:varchar(255);default:''"` // 话题名称
+	//SysUserId       int       `gorm:"column:sys_user_id;type:int(11);default:0"`              // 创建人id
+	//SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(100);default:''"` // 创建人姓名
+	CreateTime  string `gorm:"column:create_time;type:datetime"`                 // 创建时间
+	ModifyTime  string `gorm:"column:modify_time;type:datetime"`                 // 修改时间
+	AssistantId string `gorm:"column:assistant_id;type:varchar(255);default:''"` // 助手id
+	ThreadId    string `gorm:"column:thread_id;type:varchar(255);default:''"`    // 进程id
 }
 
 func GetAiChatTopicList(sysUserId int) (item []*AiChatTopicView, err error) {
+	//sql := ` SELECT * FROM ai_chat_topic WHERE sys_user_id=? ORDER BY create_time DESC `
+	//o := orm.NewOrmUsingDB("ai")
+	//_, err = o.Raw(sql, sysUserId).QueryRows(&item)
 	sql := ` SELECT * FROM ai_chat_topic WHERE sys_user_id=? ORDER BY create_time DESC `
-	o := orm.NewOrmUsingDB("ai")
-	_, err = o.Raw(sql, sysUserId).QueryRows(&item)
+	err = global.DmSQL["ai"].Raw(sql, sysUserId).Find(&item).Error
 	return
 }
 
@@ -87,17 +132,33 @@ type AiChatTopicListResp struct {
 	List []*AiChatTopicView
 }
 
+//type AiChatView struct {
+//	AiChatId       int    `description:"记录id"`
+//	AiChatTopicId  int    `description:"主题id"`
+//	Ask            string `description:"提问"`
+//	Answer         string `description:"答案"`
+//	Model          string
+//	OpenaiFileId   string `description:"文件ID"`
+//	OpenaiFileName string `description:"文件名称"`
+//	OpenaiFilePath string `description:"文件路径"`
+//	CreateTime     string `description:"创建时间"`
+//	ModifyTime     string `description:"修改时间"`
+//}
+
 type AiChatView struct {
-	AiChatId       int    `description:"记录id"`
-	AiChatTopicId  int    `description:"主题id"`
-	Ask            string `description:"提问"`
-	Answer         string `description:"答案"`
-	Model          string
-	OpenaiFileId   string `description:"文件ID"`
-	OpenaiFileName string `description:"文件名称"`
-	OpenaiFilePath string `description:"文件路径"`
-	CreateTime     string `description:"创建时间"`
-	ModifyTime     string `description:"修改时间"`
+	AiChatId      int    `gorm:"primaryKey;column:ai_chat_id;type:int(11);not null"`
+	AiChatTopicId int    `gorm:"column:ai_chat_topic_id;type:int(11);default:0"`
+	Ask           string `gorm:"column:ask;type:text"` // 提问
+	//AskUuid         string    `gorm:"index:idx_ask_uuid;column:ask_uuid;type:varchar(50);default:''"` // ask,md5值
+	Answer string `gorm:"column:answer;type:text"` // 答案
+	//SysUserId       int       `gorm:"column:sys_user_id;type:int(11);default:0"`                      // 提问人id
+	//SysUserRealName string    `gorm:"column:sys_user_real_name;type:varchar(100);default:''"`         // 提问人名称
+	Model          string `gorm:"column:model;type:varchar(20);default:''"` // 模型
+	CreateTime     string `gorm:"column:create_time;type:datetime"`
+	ModifyTime     string `gorm:"column:modify_time;type:datetime"`
+	OpenaiFileId   string `gorm:"column:openai_file_id;type:varchar(255);default:''"`   // openai返回的文件id
+	OpenaiFileName string `gorm:"column:openai_file_name;type:varchar(255);default:''"` // 文件名称
+	OpenaiFilePath string `gorm:"column:openai_file_path;type:varchar(255);default:''"` // 文件路径
 }
 
 var ModelViewMap = map[string]string{
@@ -107,9 +168,11 @@ var ModelViewMap = map[string]string{
 }
 
 func GetAiChatList(aiChatTopicId int) (item []*AiChatView, err error) {
+	//sql := ` SELECT * FROM ai_chat WHERE ai_chat_topic_id=? ORDER BY create_time ASC `
+	//o := orm.NewOrmUsingDB("ai")
+	//_, err = o.Raw(sql, aiChatTopicId).QueryRows(&item)
 	sql := ` SELECT * FROM ai_chat WHERE ai_chat_topic_id=? ORDER BY create_time ASC `
-	o := orm.NewOrmUsingDB("ai")
-	_, err = o.Raw(sql, aiChatTopicId).QueryRows(&item)
+	err = global.DmSQL["ai"].Raw(sql, aiChatTopicId).Find(&item).Error
 	return
 }
 
@@ -122,8 +185,27 @@ type TopicDeleteReq struct {
 }
 
 func DeleteTopic(topicId int) (err error) {
-	o := orm.NewOrmUsingDB("ai")
-	tx, err := o.Begin()
+	//o := orm.NewOrmUsingDB("ai")
+	//tx, err := o.Begin()
+	//defer func() {
+	//	if err != nil {
+	//		tx.Rollback()
+	//	} else {
+	//		tx.Commit()
+	//	}
+	//}()
+	//sql := ` DELETE FROM ai_chat_topic WHERE  ai_chat_topic_id=? `
+	//_, err = tx.Raw(sql, topicId).Exec()
+	//if err != nil {
+	//	return err
+	//}
+	//sql = ` DELETE FROM ai_chat WHERE  ai_chat_topic_id=? `
+	//_, err = tx.Raw(sql, topicId).Exec()
+	//if err != nil {
+	//	return err
+	//}
+
+	tx := global.DmSQL["ai"].Begin()
 	defer func() {
 		if err != nil {
 			tx.Rollback()
@@ -132,16 +214,16 @@ func DeleteTopic(topicId int) (err error) {
 		}
 	}()
 	sql := ` DELETE FROM ai_chat_topic WHERE  ai_chat_topic_id=? `
-	_, err = tx.Raw(sql, topicId).Exec()
+	err = tx.Exec(sql, topicId).Error
 	if err != nil {
-		return err
+		return
 	}
 	sql = ` DELETE FROM ai_chat WHERE  ai_chat_topic_id=? `
-	_, err = tx.Raw(sql, topicId).Exec()
+	err = tx.Exec(sql, topicId).Error
 	if err != nil {
-		return err
+		return
 	}
-	return err
+	return
 }
 
 type TopicEditReq struct {
@@ -150,23 +232,29 @@ type TopicEditReq struct {
 }
 
 func GetAiChatTopicByTopicName(topicName string) (item *AiChatTopicView, err error) {
+	//sql := ` SELECT * FROM ai_chat_topic WHERE topic_name=? `
+	//o := orm.NewOrmUsingDB("ai")
+	//err = o.Raw(sql, topicName).QueryRow(&item)
 	sql := ` SELECT * FROM ai_chat_topic WHERE topic_name=? `
-	o := orm.NewOrmUsingDB("ai")
-	err = o.Raw(sql, topicName).QueryRow(&item)
+	err = global.DmSQL["ai"].Raw(sql, topicName).First(&item).Error
 	return
 }
 
 func EditTopic(topicId int, topicName string) (err error) {
-	o := orm.NewOrmUsingDB("ai")
+	//o := orm.NewOrmUsingDB("ai")
+	//sql := ` UPDATE ai_chat_topic SET topic_name=? WHERE  ai_chat_topic_id=? `
+	//_, err = o.Raw(sql, topicName, topicId).Exec()
 	sql := ` UPDATE ai_chat_topic SET topic_name=? WHERE  ai_chat_topic_id=? `
-	_, err = o.Raw(sql, topicName, topicId).Exec()
-	return err
+	err = global.DmSQL["ai"].Exec(sql, topicName, topicId).Error
+	return
 }
 
 func (obj *AiChatTopic) GetAiChatTopicById() (item *AiChatTopicView, err error) {
-	o := orm.NewOrmUsingDB("ai")
+	//o := orm.NewOrmUsingDB("ai")
+	//sql := ` SELECT * FROM ai_chat_topic WHERE ai_chat_topic_id=? `
+	//err = o.Raw(sql, obj.AiChatTopicId).QueryRow(&item)
 	sql := ` SELECT * FROM ai_chat_topic WHERE ai_chat_topic_id=? `
-	err = o.Raw(sql, obj.AiChatTopicId).QueryRow(&item)
+	err = global.DmSQL["ai"].Raw(sql, obj.AiChatTopicId).Find(&item).Error
 	return
 }
 
@@ -177,14 +265,27 @@ type HistoryChat struct {
 }
 
 // 修改
-func (obj *AiChatTopic) Update(updateParams, whereParam map[string]interface{}) (err error) {
-	to := orm.NewOrmUsingDB("ai")
-	ptrStructOrTableName := "ai_chat_topic"
+//func (obj *AiChatTopic) Update(updateParams, whereParam map[string]interface{}) (err error) {
+//	to := orm.NewOrmUsingDB("ai")
+//	ptrStructOrTableName := "ai_chat_topic"
+//
+//	qs := to.QueryTable(ptrStructOrTableName)
+//	for expr, exprV := range whereParam {
+//		qs = qs.Filter(expr, exprV)
+//	}
+//	_, err = qs.Update(updateParams)
+//	return
+//}
 
-	qs := to.QueryTable(ptrStructOrTableName)
-	for expr, exprV := range whereParam {
-		qs = qs.Filter(expr, exprV)
-	}
-	_, err = qs.Update(updateParams)
+func (obj *AiChatTopic) UpdateAssistantAndThreadId(assistantId, threadId string, topicId int) (err error) {
+	//updateParams := make(map[string]interface{})
+	//updateParams["assistant_id"] = assistantId
+	//updateParams["thread_id"] = threadId
+	//updateParams["modify_time"] = time.Now()
+	//
+	//whereParam := make(map[string]interface{})
+	//whereParam["ai_chat_topic_id"] = req.AiChatTopicId
+	sql := `UPDATE ai_chat_topic SET assistant_id = ?, thread_id = ?, modify_time = NOW() WHERE ai_chat_topic_id = ?`
+	err = global.DmSQL["ai"].Exec(sql, assistantId, threadId, topicId).Error
 	return
 }

+ 35 - 17
models/aimod/file_upload_record.go

@@ -1,29 +1,47 @@
 package aimod
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
+//type FileUploadRecord struct {
+//	FileUploadRecordId  int       `orm:"column(file_upload_record_id);pk"`
+//	AdminId             int       `description:"用户id"`
+//	FileUrl             string    `description:"文件地址"`
+//	FileName            string    `description:"文件名称"`
+//	OpenaiFileId        string    `description:"openai返回的文件id"`
+//	OpenaiFileName      string    `description:"openai返回的文件名称"`
+//	OpenaiObject        string    `description:"openai返回的文件对象"`
+//	OpenaiStatus        string    `description:"openai返回的文件状态"`
+//	OpenaiPurpose       string    `description:"openai返回的提示词"`
+//	OpenaiStatusDetails string    `description:"openai返回的文件状态详情"`
+//	OpenaiCreatedAt     int64     `description:"openai返回的创建时间"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//}
+
 type FileUploadRecord struct {
-	FileUploadRecordId  int       `orm:"column(file_upload_record_id);pk" gorm:"primaryKey" `
-	AdminId             int       `description:"用户id"`
-	FileUrl             string    `description:"文件地址"`
-	FileName            string    `description:"文件名称"`
-	OpenaiFileId        string    `description:"openai返回的文件id"`
-	OpenaiFileName      string    `description:"openai返回的文件名称"`
-	OpenaiObject        string    `description:"openai返回的文件对象"`
-	OpenaiStatus        string    `description:"openai返回的文件状态"`
-	OpenaiPurpose       string    `description:"openai返回的提示词"`
-	OpenaiStatusDetails string    `description:"openai返回的文件状态详情"`
-	OpenaiCreatedAt     int64     `description:"openai返回的创建时间"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
+	FileUploadRecordId  int       `gorm:"primaryKey;column:file_upload_record_id;type:int(11);not null"`
+	AdminId             int       `gorm:"column:admin_id;type:int(11);default:0"`                    // 用户id
+	FileUrl             string    `gorm:"column:file_url;type:varchar(500);default:''"`              // 文件地址
+	FileName            string    `gorm:"column:file_name;type:varchar(255);default:''"`             // 文件名称
+	OpenaiFileId        string    `gorm:"column:openai_file_id;type:varchar(255);default:''"`        // openai返回的文件id
+	OpenaiFileName      string    `gorm:"column:openai_file_name;type:varchar(255);default:''"`      // openai返回的文件名称
+	OpenaiObject        string    `gorm:"column:openai_object;type:varchar(255);default:''"`         // openai返回的文件对象
+	OpenaiStatus        string    `gorm:"column:openai_status;type:varchar(255);default:''"`         // openai返回的文件状态
+	OpenaiPurpose       string    `gorm:"column:openai_purpose;type:varchar(255);default:''"`        // openai返回的提示词
+	OpenaiStatusDetails string    `gorm:"column:openai_status_details;type:varchar(255);default:''"` // openai返回的文件状态详情
+	OpenaiCreatedAt     string    `gorm:"column:openai_created_at;type:varchar(50);default:''"`      // openai返回的创建时间
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                          // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                          // 修改时间
 }
 
-// AddAiChatTopic 新增上传文件记录
+// AddFileUploadRecord 新增上传文件记录
 func (obj *FileUploadRecord) AddFileUploadRecord() (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("ai")
-	lastId, err = o.Insert(obj)
+	//o := orm.NewOrmUsingDB("ai")
+	//lastId, err = o.Insert(obj)
+	err = global.DmSQL["ai"].Create(obj).Error
+	lastId = int64(obj.FileUploadRecordId)
 	return
 }

+ 49 - 54
models/company/company.go

@@ -1,60 +1,55 @@
 package company
 
-import (
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
-type Company struct {
-	CompanyId       int       `orm:"column(company_id);pk" gorm:"primaryKey" `
-	CompanyName     string    `description:"客户名称"`
-	CompanyType     int       `orm:"column(type)"`
-	CreditCode      string    `description:"社会统一信用码"`
-	CompanyCode     string    `description:"客户编码"`
-	Sort            int       `description:"优先级"`
-	IsFeeCustomer   int       `description:"是否付费用户"`
-	Country         string    `description:"国家编码"`
-	Province        string    `description:"省"`
-	City            string    `description:"市"`
-	Address         string    `description:"详细地址"`
-	Enabled         int       `description:"用户状态"`
-	CreatedTime     time.Time `description:"创建时间"`
-	LastUpdatedTime time.Time `description:"最后一次阅读时间"`
-	Seller          string    `description:"销售员"`
-	SellsId         int       `description:"销售员id"`
-	ShareSeller     string    `description:"共享销售员"`
-	ShareSellerId   int       `description:"共享销售员id"`
-	CompanyBelong   string    `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
-	StartDate       string    `description:"合同开始日期"`
-	EndDate         string    `description:"合同结束日期"`
-	LastType        int       `description:"原客户标签"`
-	IsVip           int       `description:"0:普通用户,1:大客户"`
-	IsShare         int       `description:"0:非共享用户,1:共享客户"`
-	FirstStartDate  string    `description:"首次设置为试用客户开始时间"`
-	FirstEndDate    string    `description:"首次设置为试用客户结束时间"`
-	DateType        int       `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
-	Remark          string    `description:"备注信息"`
-	RegionType      string    `description:"地区类型,国内,国外"`
-	OpenCompanyCode string    `description:"开放给第三方的客户编码,不让第三方定位我们的客户信息"`
-}
+//type Company struct {
+//	CompanyId       int       `orm:"column(company_id);pk"`
+//	CompanyName     string    `description:"客户名称"`
+//	CompanyType     int       `orm:"column(type)"`
+//	CreditCode      string    `description:"社会统一信用码"`
+//	CompanyCode     string    `description:"客户编码"`
+//	Sort            int       `description:"优先级"`
+//	IsFeeCustomer   int       `description:"是否付费用户"`
+//	Country         string    `description:"国家编码"`
+//	Province        string    `description:"省"`
+//	City            string    `description:"市"`
+//	Address         string    `description:"详细地址"`
+//	Enabled         int       `description:"用户状态"`
+//	CreatedTime     time.Time `description:"创建时间"`
+//	LastUpdatedTime time.Time `description:"最后一次阅读时间"`
+//	Seller          string    `description:"销售员"`
+//	SellsId         int       `description:"销售员id"`
+//	ShareSeller     string    `description:"共享销售员"`
+//	ShareSellerId   int       `description:"共享销售员id"`
+//	CompanyBelong   string    `description:"客户所属,ficc:ficc客户,public_offering:公募客户,partner:合作伙伴"`
+//	StartDate       string    `description:"合同开始日期"`
+//	EndDate         string    `description:"合同结束日期"`
+//	LastType        int       `description:"原客户标签"`
+//	IsVip           int       `description:"0:普通用户,1:大客户"`
+//	IsShare         int       `description:"0:非共享用户,1:共享客户"`
+//	FirstStartDate  string    `description:"首次设置为试用客户开始时间"`
+//	FirstEndDate    string    `description:"首次设置为试用客户结束时间"`
+//	DateType        int       `description:"设置流失类型,1:1个月,2:2个月,3:3个月"`
+//	Remark          string    `description:"备注信息"`
+//	RegionType      string    `description:"地区类型,国内,国外"`
+//	OpenCompanyCode string    `description:"开放给第三方的客户编码,不让第三方定位我们的客户信息"`
+//}
 
 // 更新客户基础信息
-func (company *Company) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(company, cols...)
-	return
-}
+//func (company *Company) Update(cols []string) (err error) {
+//	o := orm.NewOrm()
+//	_, err = o.Update(company, cols...)
+//	return
+//}
 
-func ModifyCompanyGroupId(sellerId, groupId int) (err error) {
-	o := orm.NewOrm()
-	sql := `UPDATE company_product SET group_id=? WHERE seller_id=? `
-	_, err = o.Raw(sql, groupId, sellerId).Exec()
-	return
-}
+//func ModifyCompanyGroupId(sellerId, groupId int) (err error) {
+//	o := orm.NewOrm()
+//	sql := `UPDATE company_product SET group_id=? WHERE seller_id=? `
+//	_, err = o.Raw(sql, groupId, sellerId).Exec()
+//	return
+//}
 
-func ModifyCompanyDepartmentId(sellerId, departmentId int) (err error) {
-	o := orm.NewOrm()
-	sql := `UPDATE company_product SET department_id=? WHERE seller_id=? `
-	_, err = o.Raw(sql, departmentId, sellerId).Exec()
-	return
-}
+//func ModifyCompanyDepartmentId(sellerId, departmentId int) (err error) {
+//	o := orm.NewOrm()
+//	sql := `UPDATE company_product SET department_id=? WHERE seller_id=? `
+//	_, err = o.Raw(sql, departmentId, sellerId).Exec()
+//	return
+//}

+ 27 - 16
models/company/company_config.go

@@ -3,8 +3,9 @@ package company
 import (
 	"encoding/json"
 	"errors"
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
+	"time"
 )
 
 const (
@@ -12,29 +13,39 @@ const (
 	ConfEnAuthRoleKey   = "en_auth_role"   // 英文权限角色配置Key
 )
 
+//type CrmConfig struct {
+//	ConfigValue string `description:"详情"`
+//}
+
 type CrmConfig struct {
-	ConfigValue string `description:"详情"`
+	ConfigId    int       `gorm:"primaryKey;column:config_id;type:int(11);not null"`
+	ConfigCode  string    `gorm:"column:config_code;type:varchar(50);default:''"` // 配置编码
+	ConfigValue string    `gorm:"column:config_value;type:text"`                  // 配置值
+	Remark      string    `gorm:"column:remark;type:varchar(255);default:''"`     // 备注信息
+	CreateTime  time.Time `gorm:"column:create_time;type:datetime"`               // 创建时间
 }
 
-func GetConfigValueByCode(configCode string) (total int, err error) {
-	o := orm.NewOrm()
-	sql := ` SELECT config_value FROM crm_config WHERE config_code=? `
-	err = o.Raw(sql, configCode).QueryRow(&total)
-	return
-}
+//func GetConfigValueByCode(configCode string) (total int, err error) {
+//	o := orm.NewOrm()
+//	sql := ` SELECT config_value FROM crm_config WHERE config_code=? `
+//	err = o.Raw(sql, configCode).QueryRow(&total)
+//	return
+//}
 
 // 修改
-func CrmConfigUpdate(newValue, configCode string) (err error) {
-	o := orm.NewOrm()
-	sql := `UPDATE crm_config SET  config_value=?   WHERE config_code=  ?`
-	_, err = o.Raw(sql, newValue, configCode).Exec()
-	return
-}
+//func CrmConfigUpdate(newValue, configCode string) (err error) {
+//	o := orm.NewOrm()
+//	sql := `UPDATE crm_config SET  config_value=?   WHERE config_code=  ?`
+//	_, err = o.Raw(sql, newValue, configCode).Exec()
+//	return
+//}
 
 func GetConfigDetailByCode(configCode string) (item CrmConfig, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := ` SELECT config_value FROM crm_config WHERE config_code=? `
+	//err = o.Raw(sql, configCode).QueryRow(&item)
 	sql := ` SELECT config_value FROM crm_config WHERE config_code=? `
-	err = o.Raw(sql, configCode).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, configCode).First(&item).Error
 	return
 }
 

+ 70 - 29
models/company/company_permission.go

@@ -1,23 +1,51 @@
 package company
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
+//type ChartPermission struct {
+//	ChartPermissionId   int       `description:"权限id"`
+//	ChartPermissionName string    `description:"权限名称(旧)"`
+//	PermissionName      string    `description:"权限名称"`
+//	Sort                int       `description:"排序"`
+//	Enabled             int       `description:"是否可用"`
+//	CreatedTime         time.Time `description:"创建时间"`
+//	LastUpdatedTime     time.Time `description:"最后更新时间"`
+//	TeleconferenceSort  int       `description:"电话会排序"`
+//	Remark              string    `description:"备注"`
+//	ClassifyName        string    `description:"分类"`
+//	PermissionType      int       `description:"1主观,2客观"`
+//	Checked             bool      `description:"选中状态"`
+//}
+
 type ChartPermission struct {
-	ChartPermissionId   int       `description:"权限id"`
-	ChartPermissionName string    `description:"权限名称(旧)"`
-	PermissionName      string    `description:"权限名称"`
-	Sort                int       `description:"排序"`
-	Enabled             int       `description:"是否可用"`
-	CreatedTime         time.Time `description:"创建时间"`
-	LastUpdatedTime     time.Time `description:"最后更新时间"`
-	TeleconferenceSort  int       `description:"电话会排序"`
-	Remark              string    `description:"备注"`
-	ClassifyName        string    `description:"分类"`
-	PermissionType      int       `description:"1主观,2客观"`
-	Checked             bool      `description:"选中状态"`
+	ChartPermissionId     int       `gorm:"primaryKey;column:chart_permission_id;type:bigint(20) unsigned;not null"`        // 主键
+	ChartPermissionName   string    `gorm:"column:chart_permission_name;type:varchar(20)"`                                  // 名称
+	PermissionName        string    `gorm:"column:permission_name;type:varchar(50);default:''"`                             // 权限名
+	Sort                  int       `gorm:"column:sort;type:int(10);default:1"`                                             // 排序
+	Enabled               int       `gorm:"column:enabled;type:tinyint(1);default:1"`                                       // 是否可用
+	CreatedTime           time.Time `gorm:"index:created_time;column:created_time;type:datetime;default:CURRENT_TIMESTAMP"` // 创建时间
+	LastUpdatedTime       time.Time `gorm:"index:last_updated_time;column:last_updated_time;type:timestamp;not null;default:CURRENT_TIMESTAMP"`
+	TeleconferenceSort    int       `gorm:"column:teleconference_sort;type:int(4);default:0"` // 电话会类型排序
+	Remark                string    `gorm:"column:remark;type:varchar(30)"`
+	ClassifyName          string    `gorm:"column:classify_name;type:varchar(50)"`
+	ProductName           string    `gorm:"column:product_name;type:varchar(50);default:''"`
+	ProductId             int       `gorm:"column:product_id;type:int(11);default:0"`
+	ImageURL              string    `gorm:"column:image_url;type:varchar(255)"`                                  // 图片地址
+	ShowType              int       `gorm:"column:show_type;type:tinyint(4);default:0"`                          // 1:查研观向小程序展示
+	IsOther               int       `gorm:"column:is_other;type:tinyint(2);not null;default:0"`                  // 是否是其他,用于查研观向小程序后台展示
+	IsReport              int       `gorm:"index:is_report;column:is_report;type:tinyint(4);not null;default:0"` // 是否是报告,用于查研观向小程序前台报告展示
+	CygxAuth              int       `gorm:"column:cygx_auth;type:tinyint(4);not null;default:0"`                 // 是否是权限,用于查研观向小程序前台权限校验
+	PermissionType        int       `gorm:"column:permission_type;type:tinyint(2) unsigned;not null;default:0"`  // 1主观,2客观
+	YbImgURL              string    `gorm:"column:yb_img_url;type:varchar(255)"`                                 // 研报小程序报告列表icon
+	ProductPermissionName string    `gorm:"column:product_permission_name;type:varchar(50);default:''"`          // 种类权限名称
+	PriceDrivenState      int       `gorm:"column:price_driven_state;type:tinyint(4);not null;default:1"`        // 品种价格驱动状态 0-关闭 1-开启
+	ImageURLM             string    `gorm:"column:image_url_m;type:varchar(255)"`                                // 图片地址(查研观向移动端)
+	ParentId              int       `gorm:"column:parent_id;type:int(11);not null;default:0"`                    // 父级权限id
+	IsPublic              int       `gorm:"column:is_public;type:tinyint(4);not null;default:0"`                 // 是否是公有权限1:公有权限,0私有权限
+	Checked               bool      `description:"选中状态" gorm:"-"`
 }
 
 type PermissionSetItem struct {
@@ -54,12 +82,12 @@ type PermissionSetResp struct {
 	ListType []*PermissionSetListType `description:"主观客观列表"`
 }
 
-func GetPermissionSetItems(productId int, classifyName string) (items []*PermissionSetItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=?  AND permission_type=0 ORDER BY sort ASC `
-	_, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
-	return
-}
+//func GetPermissionSetItems(productId int, classifyName string) (items []*PermissionSetItem, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=?  AND permission_type=0 ORDER BY sort ASC `
+//	_, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
+//	return
+//}
 
 type PermissionLookItem struct {
 	ChartPermissionId  int                   `description:"权限id"`
@@ -83,9 +111,14 @@ type PermissionVarietyResp struct {
 	List []*PermissionVarietyList
 }
 
+//type PermissionVarietyItem struct {
+//	ChartPermissionId int    `description:"权限id"`
+//	ClassifyName      string `orm:"column(permission_name)" description:"权限名称"`
+//}
+
 type PermissionVarietyItem struct {
-	ChartPermissionId int    `description:"权限id"`
-	ClassifyName      string `orm:"column(permission_name)" description:"权限名称"`
+	ChartPermissionId int    `gorm:"column:chart_permission_id;type:bigint(20) unsigned;not null"`
+	ClassifyName      string `gorm:"column:classify_name;type:varchar(50)"`
 }
 
 type PermissionVarietyList struct {
@@ -95,30 +128,38 @@ type PermissionVarietyList struct {
 }
 
 func GetPermissionVarietyItems(productId int, classifyName string) (items []*PermissionVarietyItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
+	//sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? GROUP BY permission_name ORDER BY sort ASC `
+	//_, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
 	sql := ` SELECT * FROM chart_permission WHERE enabled=1 AND product_id=? AND classify_name=? GROUP BY permission_name ORDER BY sort ASC `
-	_, err = o.Raw(sql, productId, classifyName).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, productId, classifyName).Find(&items).Error
 	return
 }
 
 // GetChartPermissionListById 根据权限id获取产品权限详情
 func GetChartPermissionListById(chartPermissionId int) (item *ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
+	//sql := `SELECT * FROM chart_permission WHERE chart_permission_id =? `
+	//err = o.Raw(sql, chartPermissionId).QueryRow(&item)
 	sql := `SELECT * FROM chart_permission WHERE chart_permission_id =? `
-	err = o.Raw(sql, chartPermissionId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, chartPermissionId).First(&item).Error
 	return
 }
 
 func GetParentIdFromGroup(gid int) (items *int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT parent_id FROM sys_group WHERE group_id=? `
+	//err = o.Raw(sql, gid).QueryRow(&items)
 	sql := `SELECT parent_id FROM sys_group WHERE group_id=? `
-	err = o.Raw(sql, gid).QueryRow(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, gid).Scan(&items).Error
 	return
 }
 
 func GetGroupNamesById(gid int) (items *string, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
+	//sql := `SELECT group_name FROM sys_group WHERE group_id=? `
+	//err = o.Raw(sql, gid).QueryRow(&items)
 	sql := `SELECT group_name FROM sys_group WHERE group_id=? `
-	err = o.Raw(sql, gid).QueryRow(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, gid).Scan(&items).Error
 	return
 }

+ 9 - 10
models/company/company_seller.go

@@ -1,14 +1,14 @@
 package company
 
-type CompanySellers struct {
-	AdminId   int    `description:"系统用户id"`
-	AdminName string `description:"系统用户名称"`
-	RealName  string `description:"用户真实名称"`
-}
+//type CompanySellers struct {
+//	AdminId   int    `description:"系统用户id"`
+//	AdminName string `description:"系统用户名称"`
+//	RealName  string `description:"用户真实名称"`
+//}
 
-type CompanySellerResp struct {
-	List []*CompanySellers
-}
+//type CompanySellerResp struct {
+//	List []*CompanySellers
+//}
 
 // DepartmentGroupSellersResp 销售列表(根据部门、分组来)
 type DepartmentGroupSellersResp struct {
@@ -24,7 +24,6 @@ type DepartmentGroupSellers struct {
 	Authority    int                      `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
 }
 
-
 type DepartmentGroupAdmins struct {
 	AdminId string `description:"系统用户id"`
 	//AdminName string `description:"系统用户名称"`
@@ -32,4 +31,4 @@ type DepartmentGroupAdmins struct {
 	ChildrenList []*DepartmentGroupAdmins `description:"角色列表"`
 	RoleTypeCode string                   `description:"角色编码"`
 	Authority    int                      `description:"管理权限,0:无,1:部门负责人,2:小组负责人,或者ficc销售主管,4:ficc销售组长"`
-}
+}

+ 0 - 10
models/company_user/request/chart_classify_permission.go

@@ -1,10 +0,0 @@
-package request
-
-// 联系人图表分类权限请求
-type SaveCompanyUserChartClassifyPermissionReq struct {
-	UserId			int			`description:"用户ID"`
-	StartTime      	string		`description:"起始时间"`
-	EndTime      	string		`description:"终止时间"`
-	Enabled      	int			`description:"是否启用 1-是 0-否"`
-}
-

+ 0 - 19
models/company_user/response/chart_classify_permission.go

@@ -1,19 +0,0 @@
-package response
-
-// 联系人图表分类权限详情返回数据
-type CompanyUserChartClassifyPermissionDetailResp struct {
-	ChartPermissionId int    `description:"图表权限ID"`
-	UserId            int    `description:"用户ID"`
-	StartTime         string `description:"起始时间"`
-	EndTime           string `description:"终止时间"`
-	Enabled           int    `description:"起始时间"`
-	DayDuration       int    `description:"图表阅读时长,单位天"`
-	ExpireDay         string `decrpition:"客户服务截止日期"`
-}
-
-// OtherProductTypeListResp 其他分产品类型
-type OtherProductTypeListResp struct {
-	ProductId   int    `description:"产品id"`
-	ProductType int    `description:"产品类型"`
-	ProductName string `description:"产品名称"`
-}

+ 131 - 75
models/data_source/base_from_sci99.go

@@ -1,141 +1,197 @@
 package data_source
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // BaseFromSci99Index 代表卓创资讯-原始指标表的结构
-type BaseFromSci99Index struct {
-	BaseFromSciIndexId int       `orm:"column(base_from_sci_index_id);pk" gorm:"primaryKey" ` // 主键,自动递增
-	IndexCode          string    // 指标编码
-	IndexName          string    // 指标名称
-	ClassifyId         int       // 分类Id
-	Unit               string    // 单位
-	Frequency          string    // 频度
-	Describe           string    // 指标描述
-	CreateTime         time.Time // 创建时间
-	ModifyTime         time.Time // 修改时间
-}
+//type BaseFromSci99Index struct {
+//	BaseFromSciIndexId int       `orm:"column(base_from_sci_index_id);pk"` // 主键,自动递增
+//	IndexCode          string    // 指标编码
+//	IndexName          string    // 指标名称
+//	ClassifyId         int       // 分类Id
+//	Unit               string    // 单位
+//	Frequency          string    // 频度
+//	Describe           string    // 指标描述
+//	CreateTime         time.Time // 创建时间
+//	ModifyTime         time.Time // 修改时间
+//}
 
 // BaseFromSci99Data 代表卓创资讯-原始指标数据表的结构
-type BaseFromSci99Data struct {
-	BaseFromSciDataId  int       `orm:"column(base_from_sci_data_id);pk" gorm:"primaryKey" ` // 主键,自动递增
-	BaseFromSciIndexId int       // 指标id
-	IndexCode          string    // 指标编码
-	DataTime           string    // 数据日期
-	Value              float64   // 数据值
-	CreateTime         time.Time // 创建时间
-	ModifyTime         time.Time // 修改时间
-}
+//type BaseFromSci99Data struct {
+//	BaseFromSciDataId  int       `orm:"column(base_from_sci_data_id);pk"` // 主键,自动递增
+//	BaseFromSciIndexId int       // 指标id
+//	IndexCode          string    // 指标编码
+//	DataTime           string    // 数据日期
+//	Value              float64   // 数据值
+//	CreateTime         time.Time // 创建时间
+//	ModifyTime         time.Time // 修改时间
+//}
+
+// BaseFromSci99Classify 代表卓创资讯-原始指标分类表的结构
+//type BaseFromSci99Classify struct {
+//	BaseFromSciClassifyId int       `orm:"column(base_from_sci_classify_id);pk"` // 主键,自动递增
+//	ClassifyName          string    // 分类名称
+//	Sort                  int       // 排序
+//	CreateTime            time.Time // 创建时间
+//	ModifyTime            time.Time // 修改时间
+//}
 
 // BaseFromSci99Classify 代表卓创资讯-原始指标分类表的结构
 type BaseFromSci99Classify struct {
-	BaseFromSciClassifyId int       `orm:"column(base_from_sci_classify_id);pk" gorm:"primaryKey" ` // 主键,自动递增
-	ClassifyName          string    // 分类名称
-	Sort                  int       // 排序
-	CreateTime            time.Time // 创建时间
-	ModifyTime            time.Time // 修改时间
+	BaseFromSciClassifyId int       `gorm:"primaryKey;column:base_from_sci_classify_id;type:int(10) unsigned;not null"` // 分类ID
+	ClassifyName          string    `gorm:"column:classify_name;type:varchar(255);not null;default:''"`                 // 分类名称
+	Sort                  int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                       // 排序
+	CreateTime            time.Time `gorm:"column:create_time;type:datetime"`                                           // 创建时间
+	ModifyTime            time.Time `gorm:"column:modify_time;type:datetime"`                                           // 修改时间
 }
 
+//type BaseFromSci99DataItem struct {
+//	BaseFromSciDataId  int     `orm:"column(base_from_sci_data_id);pk"` // 主键,自动递增
+//	BaseFromSciIndexId int     // 指标id
+//	IndexCode          string  // 指标编码
+//	DataTime           string  // 数据日期
+//	Value              float64 // 数据值
+//	CreateTime         string  // 创建时间
+//	ModifyTime         string  // 修改时间
+//}
+
 type BaseFromSci99DataItem struct {
-	BaseFromSciDataId  int     `orm:"column(base_from_sci_data_id);pk" gorm:"primaryKey" ` // 主键,自动递增
-	BaseFromSciIndexId int     // 指标id
-	IndexCode          string  // 指标编码
-	DataTime           string  // 数据日期
-	Value              float64 // 数据值
-	CreateTime         string  // 创建时间
-	ModifyTime         string  // 修改时间
+	BaseFromSciDataId  int     `gorm:"primaryKey;column:base_from_sci_data_id;type:int(10) unsigned;not null"`
+	BaseFromSciIndexId int     `gorm:"index:idx_index_id;column:base_from_sci_index_id;type:int(10) unsigned;not null"` // 指标id
+	IndexCode          string  `gorm:"index:idx_index_code;column:index_code;type:varchar(128);not null;default:''"`    // 指标编码
+	DataTime           string  `gorm:"column:data_time;type:date"`                                                      // 数据日期
+	Value              float64 `gorm:"column:value;type:double"`                                                        // 数据值
+	CreateTime         string  `gorm:"column:create_time;type:datetime"`                                                // 创建时间
+	ModifyTime         string  `gorm:"column:modify_time;type:datetime"`                                                // 修改时间
 }
 
+//type BaseFromSci99IndexList struct {
+//	BaseFromSciIndexId int    `orm:"column(base_from_sci_index_id);pk"` // 主键,自动递增
+//	IndexCode          string // 指标编码
+//	IndexName          string // 指标名称
+//	ClassifyId         int    // 分类Id
+//	Unit               string // 单位
+//	Frequency          string // 频度
+//	Describe           string // 指标描述
+//	CreateTime         string // 创建时间
+//	ModifyTime         string // 修改时间
+//	DataList           []*BaseFromSci99DataItem
+//	Paging             *paging.PagingItem `description:"分页数据"`
+//}
+
 type BaseFromSci99IndexList struct {
-	BaseFromSciIndexId int    `orm:"column(base_from_sci_index_id);pk" gorm:"primaryKey" ` // 主键,自动递增
-	IndexCode          string // 指标编码
-	IndexName          string // 指标名称
-	ClassifyId         int    // 分类Id
-	Unit               string // 单位
-	Frequency          string // 频度
-	Describe           string // 指标描述
-	CreateTime         string // 创建时间
-	ModifyTime         string // 修改时间
-	DataList           []*BaseFromSci99DataItem
-	Paging             *paging.PagingItem `description:"分页数据"`
+	BaseFromSciIndexId int                      `gorm:"primaryKey;column:base_from_sci_index_id;type:int(10) unsigned;not null"`
+	IndexCode          string                   `gorm:"index:idx_index_code;column:index_code;type:varchar(128);not null;default:''"` // 指标编码
+	IndexName          string                   `gorm:"column:index_name;type:varchar(255);not null;default:''"`                      // 指标名称
+	ClassifyId         int                      `gorm:"column:classify_id;type:int(10) unsigned;not null;default:0"`                  // 分类ID
+	Unit               string                   `gorm:"column:unit;type:varchar(32);not null;default:''"`                             // 单位
+	Frequency          string                   `gorm:"column:frequency;type:varchar(32);not null;default:''"`                        // 频度
+	Describe           string                   `gorm:"column:describe;type:varchar(255);not null;default:''"`                        // 指标描述
+	CreateTime         string                   `gorm:"column:create_time;type:datetime"`                                             // 创建时间
+	ModifyTime         string                   `gorm:"column:modify_time;type:datetime"`                                             // 修改时间
+	DataList           []*BaseFromSci99DataItem `gorm:"-"`
+	Paging             *paging.PagingItem       `description:"分页数据" gorm:"-"`
 }
 
 // 添加数据
-func AddBaseFromSci99Index(item *BaseFromSci99Index) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
-	return
-}
-
-func AddBaseFromSci99Classify(item *BaseFromSci99Classify) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
-	return
-}
-
-func AddBaseFromSci99DataMulti(item []*BaseFromSci99Data) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(1000, item)
-	return
-}
+//func AddBaseFromSci99Index(item *BaseFromSci99Index) (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	lastId, err = o.Insert(item)
+//	return
+//}
+
+//func AddBaseFromSci99Classify(item *BaseFromSci99Classify) (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	lastId, err = o.Insert(item)
+//	return
+//}
+
+//func AddBaseFromSci99DataMulti(item []*BaseFromSci99Data) (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	_, err = o.InsertMulti(1000, item)
+//	return
+//}
 
 func GetBaseFromSci99Classify() (list []*BaseFromSci99Classify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM base_from_sci99_classify `
+	//_, err = o.Raw(sql).QueryRows(&list)
 	sql := `SELECT * FROM base_from_sci99_classify `
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql).Find(&list).Error
 	return
 }
 
 func GetSci99Index(condition string, pars interface{}) (items []*BaseFromSci99IndexList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM base_from_sci99_index WHERE 1=1  `
+	//if condition != "" {
+	//	sql += condition
+	//}
+	//sql += `ORDER BY base_from_sci_index_id ASC `
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
 	sql := ` SELECT * FROM base_from_sci99_index WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY base_from_sci_index_id ASC `
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func GetSci99IndexDataCount(indexCode string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT COUNT(1) AS count  FROM base_from_sci99_data WHERE index_code=? `
+	//err = o.Raw(sql, indexCode).QueryRow(&count)
 	sql := ` SELECT COUNT(1) AS count  FROM base_from_sci99_data WHERE index_code=? `
-	err = o.Raw(sql, indexCode).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Scan(&count).Error
 	return
 }
 
 func GetSci99IndexData(indexCode string, startSize, pageSize int) (items []*BaseFromSci99DataItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *  FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
+	//_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
 	sql := ` SELECT *  FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func GetSci99DataMaxCount(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT MAX(t.num) AS count FROM (
+	//			SELECT COUNT(1) AS num  FROM base_from_icpi_index AS a
+	//			INNER JOIN base_from_icpi_data AS b ON a.base_from_icpi_index_id=b.base_from_icpi_index_id
+	//			WHERE a.base_from_icpi_classify_id=?
+	//			GROUP BY a.base_from_icpi_index_id
+	//		)AS t `
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM base_from_icpi_index AS a
 				INNER JOIN base_from_icpi_data AS b ON a.base_from_icpi_index_id=b.base_from_icpi_index_id
 				WHERE a.base_from_icpi_classify_id=?
 				GROUP BY a.base_from_icpi_index_id
 			)AS t `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
 func GetSci99IndexDataByCode(indexCode string) (items []*BaseFromSci99DataItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT *  FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC  `
+	//_, err = o.Raw(sql, indexCode).QueryRows(&items)
 	sql := ` SELECT *  FROM base_from_sci99_data WHERE index_code=? ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Find(&items).Error
 	return
 }
 
 func GetSci99IndexLatestDate(indexCode string) (ModifyTime string, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT modify_time FROM base_from_sci99_data WHERE index_code=? ORDER BY modify_time DESC limit 1 `
+	//err = o.Raw(sql, indexCode).QueryRow(&ModifyTime)
 	sql := ` SELECT modify_time FROM base_from_sci99_data WHERE index_code=? ORDER BY modify_time DESC limit 1 `
-	err = o.Raw(sql, indexCode).QueryRow(&ModifyTime)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Scan(&ModifyTime).Error
 	return
 }

+ 127 - 55
models/data_source/guagnzhouqihuo.go

@@ -1,94 +1,163 @@
 package data_source
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
+//type BaseFromTradeGuangzhouClassify struct {
+//	BaseFromTradeGuangzhouClassifyId int       `orm:"column(base_from_trade_guangzhou_classify_id);pk"`
+//	ClassifyName                     string    `description:"分类名称"`
+//	ClassifyCode                     string    `description:"分类编码"`
+//	ParentId                         int       `description:"分类父级id"`
+//	ModifyTime                       time.Time `description:"修改时间"`
+//	CreateTime                       time.Time `description:"创建时间"`
+//}
+
 type BaseFromTradeGuangzhouClassify struct {
-	BaseFromTradeGuangzhouClassifyId int       `orm:"column(base_from_trade_guangzhou_classify_id);pk" gorm:"primaryKey" `
-	ClassifyName                     string    `description:"分类名称"`
-	ClassifyCode                     string    `description:"分类编码"`
-	ParentId                         int       `description:"分类父级id"`
-	ModifyTime                       time.Time `description:"修改时间"`
-	CreateTime                       time.Time `description:"创建时间"`
+	BaseFromTradeGuangzhouClassifyId int       `gorm:"primaryKey;column:base_from_trade_guangzhou_classify_id;type:int(11);not null"`
+	ClassifyName                     string    `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ClassifyCode                     string    `gorm:"column:classify_code;type:varchar(100);default:''"`          // 分类编码
+	ParentId                         int       `gorm:"column:parent_id;type:int(11) unsigned;default:0"`           // 上级id
+	ModifyTime                       time.Time `gorm:"column:modify_time;type:datetime"`                           // 修改时间
+	CreateTime                       time.Time `gorm:"column:create_time;type:datetime"`                           // 创建时间
 }
 
+//type BaseFromTradeGuangzhouIndex struct {
+//	BaseFromTradeGuangzhouIndexId    int       `orm:"column(base_from_trade_guangzhou_index_id);pk"`
+//	BaseFromTradeGuangzhouClassifyId int       `description:"分类id"`
+//	IndexCode                        string    `description:"指标编码"`
+//	IndexName                        string    `description:"指标名称"`
+//	Frequency                        string    `description:"频率"`
+//	Unit                             string    `description:"单位"`
+//	StartDate                        string    `description:"开始日期"`
+//	EndDate                          string    `description:"结束日期"`
+//	CreateTime                       time.Time `description:"创建日期"`
+//	ModifyTime                       time.Time `description:"修改日期"`
+//}
+
 type BaseFromTradeGuangzhouIndex struct {
-	BaseFromTradeGuangzhouIndexId    int       `orm:"column(base_from_trade_guangzhou_index_id);pk" gorm:"primaryKey" `
-	BaseFromTradeGuangzhouClassifyId int       `description:"分类id"`
-	IndexCode                        string    `description:"指标编码"`
-	IndexName                        string    `description:"指标名称"`
-	Frequency                        string    `description:"频率"`
-	Unit                             string    `description:"单位"`
-	StartDate                        string    `description:"开始日期"`
-	EndDate                          string    `description:"结束日期"`
-	CreateTime                       time.Time `description:"创建日期"`
-	ModifyTime                       time.Time `description:"修改日期"`
+	BaseFromTradeGuangzhouIndexId    int       `gorm:"primaryKey;column:base_from_trade_guangzhou_index_id;type:int(11);not null"`
+	BaseFromTradeGuangzhouClassifyId int       `gorm:"column:base_from_trade_guangzhou_classify_id;type:int(11);default:0"` // 分类id/指标id
+	BaseFromTradeGuangzhouContractId int       `gorm:"column:base_from_trade_guangzhou_contract_id;type:int(11);default:0"` // 合约id
+	IndexCode                        string    `gorm:"unique;column:index_code;type:varchar(100);default:''"`               // 指标编码
+	IndexName                        string    `gorm:"column:index_name;type:varchar(100);default:''"`                      // 指标名称
+	Frequency                        string    `gorm:"column:frequency;type:varchar(30);default:''"`                        // 频度
+	Unit                             string    `gorm:"column:unit;type:varchar(20);default:''"`                             // 单位
+	StartDate                        string    `gorm:"column:start_date;type:date"`                                         // 开始日期
+	EndDate                          string    `gorm:"column:end_date;type:date"`                                           // 结束日期
+	CreateTime                       time.Time `gorm:"column:create_time;type:datetime"`                                    // 创建时间
+	ModifyTime                       time.Time `gorm:"column:modify_time;type:datetime"`                                    // 修改日期
+	Value                            float64   `gorm:"column:value;type:double;default:0"`                                  // 数据值
 }
 
+//type BaseFromTradeGuangzhouData struct {
+//	BaseFromTradeGuangzhouDataId  int       `orm:"column(base_from_trade_guangzhou_data_id);pk"`
+//	BaseFromTradeGuangzhouIndexId int       `description:"指标id"`
+//	IndexCode                     string    `description:"指标编码"`
+//	DataTime                      string    `description:"数据日期"`
+//	Value                         float64   `description:"数据值"`
+//	QtySub                        float64   `description:"增减"`
+//	CreateTime                    time.Time `description:"创建日期"`
+//	ModifyTime                    time.Time `description:"修改日期"`
+//}
+
 type BaseFromTradeGuangzhouData struct {
-	BaseFromTradeGuangzhouDataId  int       `orm:"column(base_from_trade_guangzhou_data_id);pk" gorm:"primaryKey" `
-	BaseFromTradeGuangzhouIndexId int       `description:"指标id"`
-	IndexCode                     string    `description:"指标编码"`
-	DataTime                      string    `description:"数据日期"`
-	Value                         float64   `description:"数据值"`
-	QtySub                        float64   `description:"增减"`
-	CreateTime                    time.Time `description:"创建日期"`
-	ModifyTime                    time.Time `description:"修改日期"`
+	BaseFromTradeGuangzhouDataId  int       `gorm:"primaryKey;index:idx_index_id;column:base_from_trade_guangzhou_data_id;type:int(10) unsigned;not null"`
+	BaseFromTradeGuangzhouIndexId int       `gorm:"column:base_from_trade_guangzhou_index_id;type:int(11) unsigned;not null;default:0"`                     // 指标ID
+	IndexCode                     string    `gorm:"uniqueIndex:idx_code_time;index:idx_index_code;column:index_code;type:varchar(128);not null;default:''"` // 指标编码
+	DataTime                      string    `gorm:"uniqueIndex:idx_code_time;index:idx_data_time;column:data_time;type:date"`                               // 数据日期
+	Value                         float64   `gorm:"column:value;type:double;not null;default:0"`                                                            // 数据值
+	QtySub                        float64   `gorm:"column:qty_sub;type:double;default:0"`                                                                   // 增减
+	CreateTime                    time.Time `gorm:"column:create_time;type:datetime"`                                                                       // 创建时间
+	ModifyTime                    time.Time `gorm:"column:modify_time;type:datetime"`                                                                       // 更新时间
 }
 
+//type BaseFromTradeGuangzhouClassifyView struct {
+//	BaseFromTradeGuangzhouClassifyId int    `orm:"column(base_from_trade_guangzhou_classify_id);pk"`
+//	ClassifyName                     string `description:"分类名称"`
+//	ClassifyCode                     string `description:"分类编码"`
+//	ParentId                         int    `description:"分类父级id"`
+//	Children                         []*BaseFromTradeGuangzhouClassifyView
+//}
+
 type BaseFromTradeGuangzhouClassifyView struct {
-	BaseFromTradeGuangzhouClassifyId int    `orm:"column(base_from_trade_guangzhou_classify_id);pk" gorm:"primaryKey" `
-	ClassifyName                     string `description:"分类名称"`
-	ClassifyCode                     string `description:"分类编码"`
-	ParentId                         int    `description:"分类父级id"`
-	Children                         []*BaseFromTradeGuangzhouClassifyView
+	BaseFromTradeGuangzhouClassifyId int                                   `gorm:"column:base_from_trade_guangzhou_classify_id;type:int(11);not null"`
+	ClassifyName                     string                                `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ClassifyCode                     string                                `gorm:"column:classify_code;type:varchar(100);default:''"`          // 分类编码
+	ParentId                         int                                   `gorm:"column:parent_id;type:int(11) unsigned;default:0"`           // 上级id
+	Children                         []*BaseFromTradeGuangzhouClassifyView `gorm:"-"`
 }
 
+//type BaseFromTradeGuangzhouContract struct {
+//	BaseFromTradeGuangzhouContractId int    `orm:"column(base_from_trade_guangzhou_contract_id);pk"`
+//	BaseFromTradeGuangzhouClassifyId int    `description:"分类id"`
+//	ClassifyCode                     string `description:"分类编码"`
+//	Contract                         string `description:"合约编码"`
+//	TradeDate                        string `description:"合约日期"`
+//}
+
 type BaseFromTradeGuangzhouContract struct {
-	BaseFromTradeGuangzhouContractId int    `orm:"column(base_from_trade_guangzhou_contract_id);pk" gorm:"primaryKey" `
-	BaseFromTradeGuangzhouClassifyId int    `description:"分类id"`
-	ClassifyCode                     string `description:"分类编码"`
-	Contract                         string `description:"合约编码"`
-	TradeDate                        string `description:"合约日期"`
+	BaseFromTradeGuangzhouContractId int    `gorm:"primaryKey;column:base_from_trade_guangzhou_contract_id;type:int(11);not null"`
+	BaseFromTradeGuangzhouClassifyId int    `gorm:"column:base_from_trade_guangzhou_classify_id;type:int(11);default:0"` // 分类id
+	ClassifyCode                     string `gorm:"column:classify_code;type:varchar(100);default:''"`                   // 分类编码
+	Contract                         string `gorm:"index:idx_contract;column:contract;type:varchar(20);default:''"`      // 合约代码
+	TradeDate                        string `gorm:"index:idx_trade_date;column:trade_date;type:varchar(20);default:''"`  // 合约日期
 }
 
 func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouClassifyAll() (list []*BaseFromTradeGuangzhouClassifyView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := `SELECT * FROM base_from_trade_guangzhou_classify`
+	//_, err = o.Raw(sql).QueryRows(&list)
 	sql := `SELECT * FROM base_from_trade_guangzhou_classify`
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql).Find(&list).Error
 	return list, err
 }
 
 func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouMaxDate() (max_date string, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT MAX(a.end_date) AS max_date FROM base_from_trade_guangzhou_index AS a `
+	//err = o.Raw(sql).QueryRow(&max_date)
 	sql := ` SELECT MAX(a.end_date) AS max_date FROM base_from_trade_guangzhou_index AS a `
-	err = o.Raw(sql).QueryRow(&max_date)
+	err = global.DmSQL["data"].Raw(sql).Scan(&max_date).Error
 	return max_date, err
 }
 
 func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouContract(classifyId int, tradeDate string) (list []*BaseFromTradeGuangzhouContract, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
+	//sql := ` SELECT * FROM base_from_trade_guangzhou_contract AS a WHERE base_from_trade_guangzhou_classify_id=? AND trade_date=? `
+	//_, err = o.Raw(sql, classifyId, tradeDate).QueryRows(&list)
 	sql := ` SELECT * FROM base_from_trade_guangzhou_contract AS a WHERE base_from_trade_guangzhou_classify_id=? AND trade_date=? `
-	_, err = o.Raw(sql, classifyId, tradeDate).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, classifyId, tradeDate).Find(&list).Error
 	return
 }
 
+//type BaseFromTradeGuangzhouIndexView struct {
+//	BaseFromTradeGuangzhouIndexId    int     `description:"指标id"`
+//	BaseFromTradeGuangzhouClassifyId int     `description:"分类id"`
+//	IndexCode                        string  `description:"指标编码"`
+//	IndexName                        string  `description:"指标名称"`
+//	Frequency                        string  `description:"频率"`
+//	Unit                             string  `description:"单位"`
+//	StartDate                        string  `description:"开始日期"`
+//	EndDate                          string  `description:"结束日期"`
+//	Value                            float64 `description:"数据"`
+//}
+
 type BaseFromTradeGuangzhouIndexView struct {
-	BaseFromTradeGuangzhouIndexId    int     `description:"指标id"`
-	BaseFromTradeGuangzhouClassifyId int     `description:"分类id"`
-	IndexCode                        string  `description:"指标编码"`
-	IndexName                        string  `description:"指标名称"`
-	Frequency                        string  `description:"频率"`
-	Unit                             string  `description:"单位"`
-	StartDate                        string  `description:"开始日期"`
-	EndDate                          string  `description:"结束日期"`
-	Value                            float64 `description:"数据"`
+	BaseFromTradeGuangzhouIndexId    int     `gorm:"column:base_from_trade_guangzhou_index_id;type:int(11);not null"`
+	BaseFromTradeGuangzhouClassifyId int     `gorm:"column:base_from_trade_guangzhou_classify_id;type:int(11);default:0"` // 分类id/指标id
+	IndexCode                        string  `gorm:"unique;column:index_code;type:varchar(100);default:''"`               // 指标编码
+	IndexName                        string  `gorm:"column:index_name;type:varchar(100);default:''"`                      // 指标名称
+	Frequency                        string  `gorm:"column:frequency;type:varchar(30);default:''"`                        // 频度
+	Unit                             string  `gorm:"column:unit;type:varchar(20);default:''"`                             // 单位
+	StartDate                        string  `gorm:"column:start_date;type:date"`                                         // 开始日期
+	EndDate                          string  `gorm:"column:end_date;type:date"`                                           // 结束日期
+	Value                            float64 `gorm:"column:value;type:double;default:0"`                                  // 数据值
 }
 
 func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouIndex(condition string, pars []interface{}, baseFromTradeGuangzhouContractId int) (list []*BaseFromTradeGuangzhouIndexView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	if baseFromTradeGuangzhouContractId <= 0 {
 		sql := ` SELECT b.base_from_trade_guangzhou_index_id,b.index_code,b.index_name,b.unit,b.frequency,b.start_date,b.end_date,a.value,c.base_from_trade_guangzhou_contract_id 
  FROM base_from_trade_guangzhou_data AS a
@@ -99,7 +168,8 @@ WHERE `
 			sql += condition
 		}
 		sql += ` ORDER BY a.index_code ASC `
-		_, err = o.Raw(sql, pars).QueryRows(&list)
+		//_, err = o.Raw(sql, pars).QueryRows(&list)
+		err = global.DmSQL["data"].Raw(sql, pars).Find(&list).Error
 		return
 	} else {
 		condition += ` AND a.base_from_trade_guangzhou_contract_id=? `
@@ -114,13 +184,14 @@ WHERE `
 			sql += condition
 		}
 		sql += ` ORDER BY a.index_code ASC `
-		_, err = o.Raw(sql, pars).QueryRows(&list)
+		//_, err = o.Raw(sql, pars).QueryRows(&list)
+		err = global.DmSQL["data"].Raw(sql, pars).Find(&list).Error
 		return
 	}
 }
 
 func (obj *BaseFromTradeGuangzhouIndex) GetBaseFromTradeGuangzhouIndexDetail(condition string, pars []interface{}) (list []*BaseFromTradeGuangzhouIndexView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT a.*
  FROM base_from_trade_guangzhou_index AS a
 WHERE `
@@ -129,6 +200,7 @@ WHERE `
 		sql += condition
 	}
 	sql += ` ORDER BY a.index_code ASC `
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	//_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&list).Error
 	return
 }

+ 117 - 54
models/data_source/icpi.go

@@ -1,114 +1,177 @@
 package data_source
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
+//type BaseFromIcpiIndex struct {
+//	BaseFromIcpiIndexId    int       `orm:"column(base_from_icpi_index_id);pk"`
+//	BaseFromIcpiClassifyId int       `description:"分类id"`
+//	IndexCode              string    `description:"指标编码"`
+//	IndexName              string    `description:"指标名称"`
+//	Frequency              string    `description:"频度"`
+//	StartDate              time.Time `description:"开始日期"`
+//	EndDate                time.Time `description:"结束日期"`
+//	CreateTime             time.Time `description:"创建时间"`
+//	ModifyTime             time.Time `description:"修改时间"`
+//}
+
 type BaseFromIcpiIndex struct {
-	BaseFromIcpiIndexId    int       `orm:"column(base_from_icpi_index_id);pk" gorm:"primaryKey" `
-	BaseFromIcpiClassifyId int       `description:"分类id"`
-	IndexCode              string    `description:"指标编码"`
-	IndexName              string    `description:"指标名称"`
-	Frequency              string    `description:"频度"`
-	StartDate              time.Time `description:"开始日期"`
-	EndDate                time.Time `description:"结束日期"`
-	CreateTime             time.Time `description:"创建时间"`
-	ModifyTime             time.Time `description:"修改时间"`
+	BaseFromIcpiIndexId    int       `gorm:"primaryKey;column:base_from_icpi_index_id;type:int(11);not null"`
+	BaseFromIcpiClassifyId int       `gorm:"column:base_from_icpi_classify_id;type:int(11);default:0"` // 分类
+	IndexCode              string    `gorm:"unique;column:index_code;type:varchar(100);default:''"`    // 指标编码
+	IndexName              string    `gorm:"column:index_name;type:varchar(100);default:''"`           // 指标名称
+	Frequency              string    `gorm:"column:frequency;type:varchar(20);default:''"`             // 频度
+	Unit                   string    `gorm:"column:unit;type:varchar(20);default:''"`                  // 单位
+	StartDate              time.Time `gorm:"column:start_date;type:date"`                              // 开始日期
+	EndDate                time.Time `gorm:"column:end_date;type:date"`                                // 结束日期
+	CreateTime             time.Time `gorm:"column:create_time;type:datetime"`                         // 创建时间
+	ModifyTime             time.Time `gorm:"column:modify_time;type:datetime"`                         // 修改时间
 }
 
+//type BaseFromIcpiData struct {
+//	BaseFromIcpiDataId  int       `orm:"column(base_from_icpi_data_id);pk"`
+//	BaseFromIcpiIndexId int       `description:"指标id"`
+//	IndexCode           string    `description:"指标编码"`
+//	DataTime            string    `description:"日期"`
+//	Value               string    `description:"值"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//}
+
 type BaseFromIcpiData struct {
-	BaseFromIcpiDataId  int       `orm:"column(base_from_icpi_data_id);pk" gorm:"primaryKey" `
-	BaseFromIcpiIndexId int       `description:"指标id"`
-	IndexCode           string    `description:"指标编码"`
-	DataTime            string    `description:"日期"`
-	Value               string    `description:"值"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
+	BaseFromIcpiDataId  int       `gorm:"primaryKey;column:base_from_icpi_data_id;type:int(11);not null"`
+	BaseFromIcpiIndexId int       `gorm:"index:idx_base_from_icpi_index_id;column:base_from_icpi_index_id;type:int(11);default:0"`        // 指标id
+	IndexCode           string    `gorm:"uniqueIndex:idex_code_date;index:idx_index_code;column:index_code;type:varchar(100);default:''"` // 指标编码
+	DataTime            string    `gorm:"uniqueIndex:idex_code_date;column:data_time;type:date"`                                          // 数据日期
+	Value               float64   `gorm:"column:value;type:double"`                                                                       // 数据值
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                                               // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                                               // 修改时间
 }
 
+//type BaseFromIcpiClassify struct {
+//	BaseFromIcpiClassifyId int    `orm:"column(base_from_icpi_classify_id);pk"`
+//	ClassifyName           string `description:"分类名称"`
+//	ClassifyNameEn         string `description:"英文名称"`
+//	ParentId               int    `description:"上级id"`
+//	CreateTime             string `description:"创建时间"`
+//	ModifyTime             string `description:"修改时间"`
+//}
+
 type BaseFromIcpiClassify struct {
-	BaseFromIcpiClassifyId int    `orm:"column(base_from_icpi_classify_id);pk" gorm:"primaryKey" `
-	ClassifyName           string `description:"分类名称"`
-	ClassifyNameEn         string `description:"英文名称"`
-	ParentId               int    `description:"上级id"`
-	CreateTime             string `description:"创建时间"`
-	ModifyTime             string `description:"修改时间"`
+	BaseFromIcpiClassifyId int    `gorm:"primaryKey;column:base_from_icpi_classify_id;type:int(11);not null"`
+	ClassifyName           string `gorm:"column:classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ClassifyNameEn         string `gorm:"column:classify_name_en;type:varchar(255);default:''"`       // 英文名称
+	ParentId               int    `gorm:"column:parent_id;type:int(11) unsigned;default:0"`           // 上级id
+	ModifyTime             string `gorm:"column:modify_time;type:datetime"`                           // 修改时间
+	CreateTime             string `gorm:"column:create_time;type:datetime"`                           // 创建时间
 }
 
 func (obj *BaseFromIcpiIndex) GetBaseFromIcpiClassifyAll() (list []*BaseFromIcpiClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM base_from_icpi_classify `
-	_, err = o.Raw(sql).QueryRows(&list)
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql).Find(&list).Error
 	return
 }
 
+//type BaseFromIcpiDataView struct {
+//	BaseFromIcpiDataId  int       `orm:"column(base_from_icpi_data_id);pk"`
+//	BaseFromIcpiIndexId int       `description:"指标id"`
+//	IndexCode           string    `description:"指标编码"`
+//	DataTime            string    `description:"日期"`
+//	Value               string    `description:"值"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//}
+
 type BaseFromIcpiDataView struct {
-	BaseFromIcpiDataId  int       `orm:"column(base_from_icpi_data_id);pk" gorm:"primaryKey" `
-	BaseFromIcpiIndexId int       `description:"指标id"`
-	IndexCode           string    `description:"指标编码"`
-	DataTime            string    `description:"日期"`
-	Value               string    `description:"值"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
+	BaseFromIcpiDataId  int       `gorm:"primaryKey;column:base_from_icpi_data_id;type:int(11);not null"`
+	BaseFromIcpiIndexId int       `gorm:"index:idx_base_from_icpi_index_id;column:base_from_icpi_index_id;type:int(11);default:0"`        // 指标id
+	IndexCode           string    `gorm:"uniqueIndex:idex_code_date;index:idx_index_code;column:index_code;type:varchar(100);default:''"` // 指标编码
+	DataTime            string    `gorm:"uniqueIndex:idex_code_date;column:data_time;type:date"`                                          // 数据日期
+	Value               string    `gorm:"column:value;type:double"`                                                                       // 数据值
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                                               // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                                               // 修改时间
 }
 
+//type BaseFromIcpiIndexView struct {
+//	BaseFromIcpiIndexId    int    `description:"指标id"`
+//	BaseFromIcpiClassifyId int    `description:"分类id"`
+//	IndexCode              string `description:"指标编码"`
+//	IndexName              string `description:"指标名称"`
+//	Frequency              string `description:"频度"`
+//	Unit                   string `description:"单位"`
+//	StartDate              string `description:"开始日期"`
+//	EndDate                string `description:"结束日期"`
+//	CreateTime             string `description:"创建时间"`
+//	ModifyTime             string `description:"修改时间"`
+//	DataList               []*BaseFromIcpiDataView
+//	Paging                 *paging.PagingItem `description:"分页数据"`
+//}
+
 type BaseFromIcpiIndexView struct {
-	BaseFromIcpiIndexId    int    `description:"指标id"`
-	BaseFromIcpiClassifyId int    `description:"分类id"`
-	IndexCode              string `description:"指标编码"`
-	IndexName              string `description:"指标名称"`
-	Frequency              string `description:"频度"`
-	Unit                   string `description:"单位"`
-	StartDate              string `description:"开始日期"`
-	EndDate                string `description:"结束日期"`
-	CreateTime             string `description:"创建时间"`
-	ModifyTime             string `description:"修改时间"`
-	DataList               []*BaseFromIcpiDataView
-	Paging                 *paging.PagingItem `description:"分页数据"`
+	BaseFromIcpiIndexId    int                     `gorm:"primaryKey;column:base_from_icpi_index_id;type:int(11);not null"`
+	BaseFromIcpiClassifyId int                     `gorm:"column:base_from_icpi_classify_id;type:int(11);default:0"` // 分类
+	IndexCode              string                  `gorm:"unique;column:index_code;type:varchar(100);default:''"`    // 指标编码
+	IndexName              string                  `gorm:"column:index_name;type:varchar(100);default:''"`           // 指标名称
+	Frequency              string                  `gorm:"column:frequency;type:varchar(20);default:''"`             // 频度
+	Unit                   string                  `gorm:"column:unit;type:varchar(20);default:''"`                  // 单位
+	StartDate              string                  `gorm:"column:start_date;type:date"`                              // 开始日期
+	EndDate                string                  `gorm:"column:end_date;type:date"`                                // 结束日期
+	CreateTime             string                  `gorm:"column:create_time;type:datetime"`                         // 创建时间
+	ModifyTime             string                  `gorm:"column:modify_time;type:datetime"`                         // 修改时间
+	DataList               []*BaseFromIcpiDataView `gorm:"-"`
+	Paging                 *paging.PagingItem      `description:"分页数据" gorm:"-"`
 }
 
 func (obj *BaseFromIcpiIndex) GetIcpiIndex(condition string, pars interface{}) (items []*BaseFromIcpiIndexView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM base_from_icpi_index WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY base_from_icpi_index_id ASC `
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (obj *BaseFromIcpiIndex) GetIcpiIndexDataCount(indexCode string) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count  FROM base_from_icpi_data WHERE index_code=? `
-	err = o.Raw(sql, indexCode).QueryRow(&count)
+	//err = o.Raw(sql, indexCode).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Scan(&count).Error
 	return
 }
 
 func (obj *BaseFromIcpiIndex) GetIcpiIndexData(indexCode string, startSize, pageSize int) (items []*BaseFromIcpiDataView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *  FROM base_from_icpi_data WHERE index_code=? ORDER BY data_time DESC LIMIT ?,? `
-	_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, indexCode, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func (obj *BaseFromIcpiIndex) GetIcpiDataMaxCount(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM base_from_icpi_index AS a
 				INNER JOIN base_from_icpi_data AS b ON a.base_from_icpi_index_id=b.base_from_icpi_index_id
 				WHERE a.base_from_icpi_classify_id=?
 				GROUP BY a.base_from_icpi_index_id
 			)AS t `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
 func (obj *BaseFromIcpiIndex) GetIcpiIndexDataByCode(indexCode string) (items []*BaseFromIcpiDataView, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT *  FROM base_from_icpi_data WHERE index_code=? ORDER BY data_time DESC  `
-	_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	//_, err = o.Raw(sql, indexCode).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, indexCode).Find(&items).Error
 	return
 }

+ 161 - 87
models/data_source/longzhong.go

@@ -1,94 +1,131 @@
 package data_source
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/models/data_manage"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
+//type Longzhonginfo struct {
+//	LongzhonginfoId int
+//	TradeCode       string
+//	SecName         string
+//	Unit            string
+//	Frequency       string
+//	LastModifyDate  string
+//}
+
 type Longzhonginfo struct {
-	LongzhonginfoId int
-	TradeCode       string
-	SecName         string
-	Unit            string
-	Frequency       string
-	LastModifyDate  string
+	LongzhonginfoId int    `gorm:"primaryKey;column:longzhonginfo_id;type:int(11);not null"`
+	TradeCode       string `gorm:"unique;column:trade_code;type:varchar(32);default:''"` // 指标唯一编码
+	SecName         string `gorm:"unique;column:sec_name;type:varchar(180);default:''"`  // 指标名称
+	Unit            string `gorm:"column:unit;type:varchar(100);default:''"`             // 单位
+	Frequency       string `gorm:"column:frequency;type:varchar(20);default:''"`         // 频度
+	//ClassifyId      int       `gorm:"index:idx_classify_id;column:classify_id;type:int(11);default:0"` // 分类id
+	//ClassifyName    string    `gorm:"column:classify_name;type:varchar(20);default:''"`
+	//CreateTime      time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"`
+	//Remark          string    `gorm:"column:remark;type:varchar(100);default:''"`
+	LastModifyDate string `gorm:"column:last_modify_date;type:date"` // 最后更新时间
+	//Unitid          int       `gorm:"index:idx_unitid;column:unitid;type:bigint(20)"` // 隆众id
+	//TempID          int       `gorm:"column:temp_id;type:bigint(20)"`                 // 隆众数据单元组id
+	//TempName        string    `gorm:"column:temp_name;type:varchar(255)"`             // 隆众数据单元组id
+	//IsNormal        string    `gorm:"column:is_normal;type:varchar(10)"`              // 是否正常更新,0:停更,1:更新
+	//ModifyTime      time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP"`
 }
 
 func GetLongzhonginfoByClassifyId(classifyId int) (items []*Longzhonginfo, err error) {
 	sql := `SELECT * FROM longzhonginfo WHERE classify_id=? ORDER BY longzhonginfo_id ASC `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	//o := orm.NewOrmUsingDB("edb")
+	//_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = global.DmSQL["edb"].Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
 func GetLongzhongDataMaxCount(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM longzhonginfo AS a
 				INNER JOIN longzhongdata AS b ON a.longzhonginfo_id=b.longzhonginfo_id
 				WHERE a.classify_id=?
 				GROUP BY a.longzhonginfo_id
 			)AS t `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["edb"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
+//type Longzhongdata struct {
+//	LongzhongdataId int `orm:"column(longzhongdata_id);pk"`
+//	LongzhonginfoId int
+//	TradeCode       string
+//	Dt              string
+//	Close           float64
+//	CreateTime      time.Time
+//	ModifyTime      time.Time
+//	UnitDesc        string
+//	UpdTime         string
+//	DisplayTime     string
+//}
+
 type Longzhongdata struct {
-	LongzhongdataId int `orm:"column(longzhongdata_id);pk" gorm:"primaryKey" `
-	LongzhonginfoId int
-	TradeCode       string
-	Dt              string
-	Close           float64
-	CreateTime      time.Time
-	ModifyTime      time.Time
-	UnitDesc        string
-	UpdTime         string
-	DisplayTime     string
+	LongzhongdataId int       `gorm:"primaryKey;column:longzhongdata_id;type:int(11);not null"`
+	LongzhonginfoId int       `gorm:"uniqueIndex:idx_longzhonginfo_id;column:longzhonginfo_id;type:int(11);default:0"`
+	TradeCode       string    `gorm:"uniqueIndex:idx_trade_code_dt;column:trade_code;type:varchar(32);default:''"`
+	Dt              string    `gorm:"uniqueIndex:idx_trade_code_dt;uniqueIndex:idx_longzhonginfo_id;column:dt;type:date"`
+	Close           float64   `gorm:"column:close;type:double"`
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"`
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP"`
+	UnitDesc        string    `gorm:"column:unit_desc;type:varchar(255);default:''"` // 描述
+	UpdTime         string    `gorm:"column:upd_time;type:varchar(20);default:''"`   // 更新时间
+	//AddTime         string    `gorm:"column:add_time;type:varchar(30);default:''"`
+	DisplayTime string `gorm:"column:display_time;type:varchar(30);default:''"`
 }
 
 func GetLongzhongDataById(lzInfoId int) (items []*Longzhongdata, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	sql := `SELECT * FROM longzhongdata WHERE longzhonginfo_id=? ORDER BY dt DESC `
-	_, err = o.Raw(sql, lzInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, lzInfoId).QueryRows(&items)
+	err = global.DmSQL["edb"].Raw(sql, lzInfoId).Find(&items).Error
 	return
 }
 
 func GetLongzhongSurveyDataMaxCount(classifyName string) (count int, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM longzhong_survey_product AS a
 				INNER JOIN longzhong_survey_data AS b ON a.survey_product_id=b.survey_product_id
 				WHERE a.breed_name=?
 				GROUP BY a.survey_product_id
 			)AS t `
-	err = o.Raw(sql, classifyName).QueryRow(&count)
+	//err = o.Raw(sql, classifyName).QueryRow(&count)
+	err = global.DmSQL["edb"].Raw(sql, classifyName).Scan(&count).Error
 	return
 }
 
 func GetLongzhongSurveyDataMaxCountByFrequency(classifyName string, frequency int) (count int, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	sql := `SELECT MAX(t.num) AS count FROM (
 				SELECT COUNT(1) AS num  FROM longzhong_survey_product AS a
 				INNER JOIN longzhong_survey_data AS b ON a.survey_product_id=b.survey_product_id
 				WHERE a.breed_name=? AND a.frequency=?
 				GROUP BY a.survey_product_id
 			)AS t `
-	err = o.Raw(sql, classifyName, frequency).QueryRow(&count)
+	//err = o.Raw(sql, classifyName, frequency).QueryRow(&count)
+	err = global.DmSQL["edb"].Raw(sql, classifyName, frequency).Scan(&count).Error
 	return
 }
 
 type ExportLzSurveyDataMaxCount struct {
-	Count   int `description:"最大数据量"`
-	BreedId int `description:"品种ID"`
+	Count   int `description:"最大数据量" gorm:"column:count"`
+	BreedId int `description:"品种ID" gorm:"column:breed_id"`
 }
 
 func GetExportLzSurveyDataMaxCount(breedIds []string) (items []ExportLzSurveyDataMaxCount, err error) {
 	if len(breedIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	sql := ` SELECT
 				MAX(t.num) AS count,
 				t.breed_id
@@ -107,7 +144,8 @@ func GetExportLzSurveyDataMaxCount(breedIds []string) (items []ExportLzSurveyDat
 				) AS t
 			GROUP BY
 				t.breed_id `
-	_, err = o.Raw(sql, breedIds).QueryRows(&items)
+	//_, err = o.Raw(sql, breedIds).QueryRows(&items)
+	err = global.DmSQL["edb"].Raw(sql, breedIds).Find(&items).Error
 	return
 }
 
@@ -115,92 +153,128 @@ func GetExportLzSurveyDataByBreedIds(breedIds []string) (items []*LongzhongSurve
 	if len(breedIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	fields := ` survey_product_id, breed_id, input_value, data_time `
 	sql := `SELECT ` + fields + ` FROM longzhong_survey_data WHERE breed_id IN (` + utils.GetOrmInReplace(len(breedIds)) + `) ORDER BY breed_id ASC, survey_product_id ASC, data_time DESC `
-	_, err = o.Raw(sql, breedIds).QueryRows(&items)
+	//_, err = o.Raw(sql, breedIds).QueryRows(&items)
+	err = global.DmSQL["edb"].Raw(sql, breedIds).Find(&items).Error
 	return
 }
 
+//type LongzhongSurveyData struct {
+//	SurveyDataId         int `orm:"column(survey_data_id);pk"`
+//	SurveyProductId      int
+//	ProjectQuotaId       int64
+//	BreedId              string
+//	BreedName            string
+//	QuotaId              string
+//	QuotaName            string
+//	UnitId               string
+//	UnitName             string
+//	SampleType           int64
+//	SampleId             string
+//	SampleName           string
+//	DeviceId             string
+//	Device               string
+//	ProductCraftId       string
+//	ProductCraft         string
+//	ProductLine          string
+//	InputMode            int64
+//	Frequency            int64
+//	InputValue           float64
+//	TaskShouldFinishTime int64
+//	CustomId             string
+//	CustomType           int64
+//	Custom               string
+//	QuotaSampleId        int64
+//	TaskActualFinishTime int64
+//	AreaName             string
+//	ProvinceName         string
+//	ResearchStartData    int64
+//	ResearchStopData     int64
+//	DataTime             string
+//}
+
 type LongzhongSurveyData struct {
-	SurveyDataId         int `orm:"column(survey_data_id);pk" gorm:"primaryKey" `
-	SurveyProductId      int
-	ProjectQuotaId       int64
-	BreedId              string
-	BreedName            string
-	QuotaId              string
-	QuotaName            string
-	UnitId               string
-	UnitName             string
-	SampleType           int64
-	SampleId             string
-	SampleName           string
-	DeviceId             string
-	Device               string
-	ProductCraftId       string
-	ProductCraft         string
-	ProductLine          string
-	InputMode            int64
-	Frequency            int64
-	InputValue           float64
-	TaskShouldFinishTime int64
-	CustomId             string
-	CustomType           int64
-	Custom               string
-	QuotaSampleId        int64
-	TaskActualFinishTime int64
-	AreaName             string
-	ProvinceName         string
-	ResearchStartData    int64
-	ResearchStopData     int64
-	DataTime             string
+	SurveyDataId         int     `gorm:"primaryKey;column:survey_data_id;type:int(11);not null"`
+	SurveyProductId      int     `gorm:"column:survey_product_id;type:int(11)"`                    // 本地指标id
+	ProjectQuotaId       int64   `gorm:"column:project_quota_id;type:int(11)"`                     // 调研指标id
+	BreedId              string  `gorm:"column:breed_id;type:varchar(20);default:''"`              // 品种id
+	BreedName            string  `gorm:"column:breed_name;type:varchar(100);default:''"`           // 品种名称
+	QuotaId              string  `gorm:"column:quota_id;type:varchar(20);default:''"`              // 指标id
+	QuotaName            string  `gorm:"column:quota_name;type:varchar(255);default:''"`           // 指标名称
+	UnitId               string  `gorm:"column:unit_id;type:varchar(20);default:''"`               // 单位id
+	UnitName             string  `gorm:"column:unit_name;type:varchar(100);default:''"`            // 单位(例如:吨)
+	SampleType           int64   `gorm:"column:sample_type;type:int(11);default:0"`                // 样本类型 0-空 1-企业 2-港口 3-运距 4-区域/国家 99-不确定
+	SampleId             string  `gorm:"column:sample_id;type:varchar(50);default:''"`             // 样本id
+	SampleName           string  `gorm:"column:sample_name;type:varchar(100);default:''"`          // 样本名称
+	DeviceId             string  `gorm:"column:device_id;type:varchar(50);default:''"`             // 设备id
+	Device               string  `gorm:"column:device;type:varchar(100);default:''"`               // 设备
+	ProductCraftId       string  `gorm:"column:product_craft_id;type:varchar(50);default:''"`      // 工艺id
+	ProductCraft         string  `gorm:"column:product_craft;type:varchar(100);default:''"`        // 工艺
+	ProductLine          string  `gorm:"column:product_line;type:varchar(100);default:''"`         // 产线
+	InputMode            int64   `gorm:"column:input_mode;type:int(11);default:0"`                 // 录入方式 1-采集 2-计算 99-行业求和
+	Frequency            int64   `gorm:"column:frequency;type:int(11);default:0"`                  // 频率1-日度 2-周度 3-月度 4-季度 5-年度 99-无固定频率
+	InputValue           float64 `gorm:"column:input_value;type:double"`                           // 调研结果
+	TaskShouldFinishTime int64   `gorm:"column:task_should_finish_time;type:bigint(11);default:0"` // 调研数据完成时间
+	CustomId             int64   `gorm:"column:custom_id;type:int(11);default:0"`                  // 扩展属性id
+	CustomType           int64   `gorm:"column:custom_type;type:int(11);default:0"`                // 扩展属性类型0未设置,1规格,2标准,3用户,4包装,5生产工艺6装置,8行业,9企业分类,10企业隶属关系
+	Custom               string  `gorm:"column:custom;type:varchar(200);default:''"`               // 扩展属性内容
+	QuotaSampleId        int64   `gorm:"column:quota_sample_id;type:int(11)"`                      // 调研指标配置样本id
+	TaskActualFinishTime int64   `gorm:"column:task_actual_finish_time;type:bigint(11)"`           // 调研数据实际完成时间
+	AreaName             string  `gorm:"column:area_name;type:varchar(100);default:''"`            // 区域名称
+	ProvinceName         string  `gorm:"column:province_name;type:varchar(100);default:''"`        // 省份名称
+	ResearchStartData    int64   `gorm:"column:research_start_data;type:int(11)"`                  // 调研开始日期
+	ResearchStopData     int64   `gorm:"column:research_stop_data;type:int(11)"`                   // 调研截止日期
+	DataTime             string  `gorm:"column:data_time;type:date"`                               // 调研数据实际完成日期
 }
 
 func GetLongzhongSurveyDataById(lzInfoId int) (items []*LongzhongSurveyData, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	//o := orm.NewOrmUsingDB("edb")
 	sql := `SELECT * FROM longzhong_survey_data WHERE survey_product_id=? ORDER BY data_time DESC `
-	_, err = o.Raw(sql, lzInfoId).QueryRows(&items)
+	//_, err = o.Raw(sql, lzInfoId).QueryRows(&items)
+	err = global.DmSQL["edb"].Raw(sql, lzInfoId).Find(&items).Error
 	return
 }
 
 // GetLzItemList 模糊查询隆众数据库指标列表
 func GetLzItemList(keyword string) (items []*data_manage.LongzhongSurveyProduct, err error) {
-	o := orm.NewOrmUsingDB("edb")
-
+	//o := orm.NewOrmUsingDB("edb")
 	sql := "SELECT * FROM longzhong_survey_product WHERE CONCAT(sample_name,breed_name,custom,quota_name,lz_code) LIKE ? "
-	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	//_, err = o.Raw(sql, utils.GetLikeKeyword(keyword)).QueryRows(&items)
+	err = global.DmSQL["edb"].Raw(sql, utils.GetLikeKeyword(keyword)).Find(&items).Error
 	return
 
 }
 
-type lzSurveyData struct {
-	DataTime   string `orm:"column(data_time)" description:"日期"`
-	InputValue string `orm:"column(input_value)" description:"值"`
-}
+//type lzSurveyData struct {
+//	DataTime   string `orm:"column(data_time)" description:"日期"`
+//	InputValue string `orm:"column(input_value)" description:"值"`
+//}
 
 // GetLzItemListByCode 根据code查询隆众数据列表
-func GetLzItemListByCode(lzCode string) (items []*lzSurveyData, err error) {
-	o := orm.NewOrmUsingDB("edb")
-
-	sql := "SELECT * FROM longzhong_survey_data WHERE survey_product_id=? GROUP BY data_time DESC"
-	_, err = o.Raw(sql, lzCode).QueryRows(&items)
-	return
-}
+//func GetLzItemListByCode(lzCode string) (items []*lzSurveyData, err error) {
+//	o := orm.NewOrmUsingDB("edb")
+//
+//	sql := "SELECT * FROM longzhong_survey_data WHERE survey_product_id=? GROUP BY data_time DESC"
+//	_, err = o.Raw(sql, lzCode).QueryRows(&items)
+//	return
+//}
 
 // GetLzProductIdByCode 根据code查询隆众数据列表
 func GetLzProductIdByCode(lzCode string) (productId int, err error) {
-	o := orm.NewOrmUsingDB("edb")
-
+	//o := orm.NewOrmUsingDB("edb")
 	sql := "SELECT survey_product_id FROM longzhong_survey_product WHERE lz_code=?"
-	err = o.Raw(sql, lzCode).QueryRow(&productId)
+	//err = o.Raw(sql, lzCode).QueryRow(&productId)
+	err = global.DmSQL["edb"].Raw(sql, lzCode).Scan(&productId).Error
 	return
 }
 
-// GetLzProductIdByCode 根据code查询隆众数据列表
+// GetLzSurveyDataMaxCountByProductId 根据code查询隆众数据列表
 func GetLzSurveyDataMaxCountByProductId(surveyProductId int) (productId int, err error) {
-	o := orm.NewOrmUsingDB("edb")
-
+	//o := orm.NewOrmUsingDB("edb")
 	sql := "SELECT COUNT(1) FROM longzhong_survey_data WHERE survey_product_id=?"
-	err = o.Raw(sql, surveyProductId).QueryRow(&productId)
+	//err = o.Raw(sql, surveyProductId).QueryRow(&productId)
+	err = global.DmSQL["edb"].Raw(sql, surveyProductId).Scan(&productId).Error
 	return
 }

+ 91 - 46
models/data_stat/edb_info_delete_log.go

@@ -1,54 +1,95 @@
 package data_stat
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 // EdbInfoDeleteLog 指标删除日志表
+//type EdbInfoDeleteLog struct {
+//	Id                 int  `orm:"column(id);pk"`
+//	EdbInfoId          int     `description:"指标ID"`
+//	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
+//	SourceName         string  `description:"来源名称"`
+//	Source             int     `description:"来源id"`
+//	EdbCode            string  `description:"指标编码"`
+//	EdbName            string  `description:"指标名称"`
+//	EdbNameEn          string  `description:"英文指标名称"`
+//	EdbNameSource      string  `description:"指标名称来源"`
+//	Frequency          string  `description:"频率"`
+//	Unit               string  `description:"单位"`
+//	UnitEn             string  `description:"英文单位"`
+//	StartDate          string  `description:"起始日期"`
+//	EndDate            string  `description:"终止日期"`
+//	SysUserId          int     `description:"创建人ID"`
+//	SysUserRealName    string  `description:"创建人姓名"`
+//	UniqueCode         string  `description:"指标唯一编码"`
+//	EdbCreateTime      string  `description:"指标创建时间"`
+//	EdbModifyTime      string  `description:"指标修改时间"`
+//	CreateTime         string  `description:"创建时间即删除时间"`
+//	MinValue           float64 `description:"指标最小值"`
+//	MaxValue           float64 `description:"指标最大值"`
+//	CalculateFormula   string  `description:"计算公式"`
+//	EdbType            int     `description:"指标类型:1:基础指标,2:计算指标"`
+//	LatestDate         string  `description:"数据最新日期"`
+//	LatestValue        float64 `description:"数据最新值"`
+//	MoveType           int     `description:"移动方式:1:领先(默认),2:滞后"`
+//	MoveFrequency      string  `description:"移动频度"`
+//	NoUpdate           int8    `description:"是否停止更新,0:继续更新;1:停止更新"`
+//	ChartImage         string  `description:"图表图片"`
+//	Calendar           string  `description:"公历/农历" orm:"default(公历);"`
+//	DataDateType       string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
+//	ManualSave         int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
+//	TerminalCode       string  `description:"终端编码,用于配置在机器上"`
+//	DelSysUserId       int     `description:"删除人ID"`
+//	DelSysUserRealName string  `description:"删除人姓名"`
+//	DataUpdateTime     string  `description:"最近一次数据发生变化的时间"`
+//	ErDataUpdateDate   string  `description:"本次更新,数据发生变化的最早日期"`
+//}
+
 type EdbInfoDeleteLog struct {
-	Id                 uint64  `orm:"column(id);pk" gorm:"primaryKey" `
-	EdbInfoId          int     `description:"指标ID"`
-	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
-	SourceName         string  `description:"来源名称"`
-	Source             int     `description:"来源id"`
-	EdbCode            string  `description:"指标编码"`
-	EdbName            string  `description:"指标名称"`
-	EdbNameEn          string  `description:"英文指标名称"`
-	EdbNameSource      string  `description:"指标名称来源"`
-	Frequency          string  `description:"频率"`
-	Unit               string  `description:"单位"`
-	UnitEn             string  `description:"英文单位"`
-	StartDate          string  `description:"起始日期"`
-	EndDate            string  `description:"终止日期"`
-	SysUserId          int     `description:"创建人ID"`
-	SysUserRealName    string  `description:"创建人姓名"`
-	UniqueCode         string  `description:"指标唯一编码"`
-	EdbCreateTime      string  `description:"指标创建时间"`
-	EdbModifyTime      string  `description:"指标修改时间"`
-	CreateTime         string  `description:"创建时间即删除时间"`
-	MinValue           float64 `description:"指标最小值"`
-	MaxValue           float64 `description:"指标最大值"`
-	CalculateFormula   string  `description:"计算公式"`
-	EdbType            int     `description:"指标类型:1:基础指标,2:计算指标"`
-	LatestDate         string  `description:"数据最新日期"`
-	LatestValue        float64 `description:"数据最新值"`
-	MoveType           int     `description:"移动方式:1:领先(默认),2:滞后"`
-	MoveFrequency      string  `description:"移动频度"`
-	NoUpdate           int8    `description:"是否停止更新,0:继续更新;1:停止更新"`
-	ChartImage         string  `description:"图表图片"`
-	Calendar           string  `description:"公历/农历" orm:"default(公历);"`
-	DataDateType       string  `orm:"column(data_date_type);size(255);null;default(交易日)"`
-	ManualSave         int     `description:"是否有手动保存过上下限: 0-否; 1-是"`
-	TerminalCode       string  `description:"终端编码,用于配置在机器上"`
-	DelSysUserId       int     `description:"删除人ID"`
-	DelSysUserRealName string  `description:"删除人姓名"`
-	DataUpdateTime     string  `description:"最近一次数据发生变化的时间"`
-	ErDataUpdateDate   string  `description:"本次更新,数据发生变化的最早日期"`
+	Id                 int     `gorm:"primaryKey;unique;column:id;type:bigint(20) unsigned;not null"`    // 自增id
+	EdbInfoId          int     `gorm:"column:edb_info_id;type:int(11);not null"`                         // 指标id
+	EdbInfoType        int     `gorm:"column:edb_info_type;type:tinyint(9) unsigned;not null;default:0"` // 指标类型,0:普通指标,1:预测指标
+	SourceName         string  `gorm:"column:source_name;type:varchar(100)"`                             // 来源名称
+	Source             int     `gorm:"column:source;type:tinyint(4)"`                                    // 来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,9:手工指标,10:隆众,11:有色,12:环比值,13:环差值,14:变频,15:钢联
+	EdbCode            string  `gorm:"column:edb_code;type:varchar(255);not null;default:''"`            // 指标编码
+	EdbName            string  `gorm:"column:edb_name;type:varchar(255);default:''"`                     // 指标名称
+	EdbNameSource      string  `gorm:"column:edb_name_source;type:varchar(255);default:''"`              // 指标名称_来源
+	Frequency          string  `gorm:"column:frequency;type:varchar(20);default:''"`                     // 频度
+	Unit               string  `gorm:"column:unit;type:varchar(20);default:''"`                          // 单位
+	StartDate          string  `gorm:"column:start_date;type:date"`                                      // 更新开始日期
+	EndDate            string  `gorm:"column:end_date;type:date"`                                        // 更新结束日期
+	SysUserId          int     `gorm:"column:sys_user_id;type:int(11)"`                                  // 创建人
+	SysUserRealName    string  `gorm:"column:sys_user_real_name;type:varchar(100)"`                      // 创建人姓名
+	EdbCreateTime      string  `gorm:"column:edb_create_time;type:datetime"`                             // 指标创建时间
+	EdbModifyTime      string  `gorm:"column:edb_modify_time;type:datetime"`                             // 指标修改时间
+	UniqueCode         string  `gorm:"column:unique_code;type:varchar(50);default:''"`                   // 唯一编码
+	MinValue           float64 `gorm:"column:min_value;type:double;default:0"`                           // 最小值
+	MaxValue           float64 `gorm:"column:max_value;type:double;default:0"`                           // 最大值
+	CalculateFormula   string  `gorm:"column:calculate_formula;type:varchar(255);default:''"`            // 计算公式,N数值移动
+	EdbType            int     `gorm:"column:edb_type;type:tinyint(4);default:1"`                        // 指标类型:1:基础指标,2:计算指标
+	LatestDate         string  `gorm:"column:latest_date;type:date"`                                     // 数据最新日期
+	LatestValue        float64 `gorm:"column:latest_value;type:double"`                                  // 数据最新值
+	MoveType           int     `gorm:"column:move_type;type:tinyint(4);default:1"`                       // 移动方式:1:领先(默认),2:滞后
+	MoveFrequency      string  `gorm:"column:move_frequency;type:varchar(20);default:''"`                // 移动频度
+	NoUpdate           int8    `gorm:"column:no_update;type:tinyint(4);default:0"`                       // 是否停止更新,0:继续更新;1:停止更新
+	EdbNameEn          string  `gorm:"column:edb_name_en;type:varchar(255);default:''"`                  // 英文指标名称
+	UnitEn             string  `gorm:"column:unit_en;type:varchar(20);default:''"`                       // 英文单位
+	ChartImage         string  `gorm:"column:chart_image;type:varchar(255);default:''"`                  // 图表图片
+	Calendar           string  `gorm:"column:calendar;type:varchar(16);default:公历"`                      // 公历/农历
+	DataDateType       string  `gorm:"column:data_date_type;type:varchar(32);default:交易日"`               // 数据日期类型,枚举值:交易日、自然日
+	ManualSave         int     `gorm:"column:manual_save;type:tinyint(4);not null;default:0"`            // 是否手动保存过上下限:0-否;1-是
+	TerminalCode       string  `gorm:"column:terminal_code;type:varchar(255);default:''"`                // 终端编码,用于配置在机器上
+	CreateTime         string  `gorm:"index:create_time_idx;column:create_time;type:datetime"`           // 创建时间
+	DelSysUserId       int     `gorm:"column:del_sys_user_id;type:int(11);not null;default:0"`           // 删除人
+	DelSysUserRealName string  `gorm:"column:del_sys_user_real_name;type:varchar(100);not null"`         // 删除人姓名
+	DataUpdateTime     string  `gorm:"column:data_update_time;type:datetime"`                            // 最近一次数据发生变化的时间
+	ErDataUpdateDate   string  `gorm:"column:er_data_update_date;type:date"`                             // 本次更新,数据发生变化的最早日期
 }
 
 type EdbInfoDeleteLogItem struct {
-	Id                 uint64  `orm:"column(id);"`
+	Id                 int     `orm:"column(id);"`
 	EdbInfoId          int     `description:"指标ID"`
 	EdbInfoType        int     `description:"指标类型,0:普通指标,1:预测指标"`
 	SourceName         string  `description:"来源名称"`
@@ -75,8 +116,10 @@ type EdbInfoDeleteLogItem struct {
 }
 
 func AddEdbDeleteLog(item *EdbInfoDeleteLog) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["data"].Create(item).Error
+	lastId = int64(item.Id)
 	return
 }
 
@@ -86,7 +129,7 @@ type GetEdbDeleteLogResp struct {
 }
 
 func GetEdbDeleteLogByCondition(condition string, pars []interface{}, orderStr string, pageSize, startSize int) (item []*EdbInfoDeleteLog, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM edb_info_delete_log WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -98,17 +141,19 @@ func GetEdbDeleteLogByCondition(condition string, pars []interface{}, orderStr s
 	}
 
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&item).Error
 	return
 }
 
 // GetEdbDeleteLogCount
 func GetEdbDeleteLogCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(*) FROM edb_info_delete_log WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, pars).Scan(&count).Error
 	return
 }

+ 52 - 25
models/data_stat/edb_info_stat_column.go

@@ -1,20 +1,36 @@
 package data_stat
 
-import "github.com/beego/beego/v2/client/orm"
+import (
+	"eta_gn/eta_api/global"
+)
 
 // EdbInfoStatColumn 数据源统计表自定义列
+//type EdbInfoStatColumn struct {
+//	Id           int    `orm:"column(id);pk" description:"自增id"`
+//	ColumnName   string `description:"字段名称"`
+//	ColumnKey    string `description:"字段"`
+//	CreateTime   string `description:" 创建时间"`
+//	ModifyTime   string `description:"修改时间"`
+//	Type         int    `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
+//	Sort         int    `description:"列排序"`
+//	IsMust       int    `description:"是否必选列: 0非必选 1必须"`
+//	IsSort       int    `description:"是否是允许排序的列,0否,1是"`
+//	IsShow       int    `description:"是否展示:1展示,0不展示"`
+//	ColumnNameEn string `description:"英文字段名称"`
+//}
+
 type EdbInfoStatColumn struct {
-	Id           int    `orm:"column(id);pk" gorm:"primaryKey"  description:"自增id"`
-	ColumnName   string `description:"字段名称"`
-	ColumnKey    string `description:"字段"`
-	CreateTime   string `description:" 创建时间"`
-	ModifyTime   string `description:"修改时间"`
-	Type         int    `description:"列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表"`
-	Sort         int    `description:"列排序"`
-	IsMust       int    `description:"是否必选列: 0非必选 1必须"`
-	IsSort       int    `description:"是否是允许排序的列,0否,1是"`
-	IsShow       int    `description:"是否展示:1展示,0不展示"`
-	ColumnNameEn string `description:"英文字段名称"`
+	Id           int    `gorm:"primaryKey;column:id;type:int(11) unsigned;not null"` // 自增id
+	ColumnName   string `gorm:"column:column_name;type:varchar(100);not null"`       // 字段名称
+	ColumnKey    string `gorm:"column:column_key;type:varchar(100);not null"`        // 字段
+	CreateTime   string `gorm:"column:create_time;type:datetime"`                    // 创建时间
+	ModifyTime   string `gorm:"column:modify_time;type:datetime"`                    // 修改时间
+	Type         int    `gorm:"column:type;type:tinyint(4);not null;default:0"`      // 列表类型:1数据源明细表,2数据源统计表,3删除指标列表,4指标信息变更表
+	Sort         int    `gorm:"column:sort;type:int(11);not null;default:0"`         // 列排序
+	IsMust       int    `gorm:"column:is_must;type:tinyint(4);not null;default:1"`   // 是否必选列 1必须,0非必选
+	IsSort       int    `gorm:"column:is_sort;type:tinyint(4);not null"`             // 是否是允许排序的列,0否,1是
+	IsShow       int    `gorm:"column:is_show;type:tinyint(4);not null;default:1"`   // 是否展示:1展示,0不展示
+	ColumnNameEn string `gorm:"column:column_name_en;type:varchar(100);not null"`    // 英文字段名称
 }
 
 type EdbInfoStatColumnListItem struct {
@@ -42,35 +58,46 @@ type EdbInfoStatColumnListReq struct {
 
 // GetStatColumn 获取自定义列
 func GetStatColumn(columnType int) (list []EdbInfoStatColumn, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM edb_info_stat_column WHERE type=? ORDER BY sort asc, id asc `
-	_, err = o.Raw(sql, columnType).QueryRows(&list)
+	//_, err = o.Raw(sql, columnType).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, columnType).Find(&list).Error
 	return
 }
 
 // GetAllStatColumn 获取所有自定义列
 func GetAllStatColumn() (list []EdbInfoStatColumn, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM edb_info_stat_column ORDER BY sort asc, id asc  `
-	_, err = o.Raw(sql).QueryRows(&list)
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql).Find(&list).Error
 	return
 }
 
 // UpdateStatColumn 批量更新自定义列
 func UpdateStatColumn(list []*EdbInfoStatColumn) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	p, err := o.Raw("UPDATE edb_info_stat_column SET is_show = ?, sort=? WHERE id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close() // 别忘记关闭 statement
-	}()
+	//o := orm.NewOrmUsingDB("data")
+	//p, err := o.Raw("UPDATE edb_info_stat_column SET is_show = ?, sort=? WHERE id = ?").Prepare()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	_ = p.Close() // 别忘记关闭 statement
+	//}()
+	//for _, v := range list {
+	//	_, err = p.Exec(v.IsShow, v.Sort, v.Id)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+	tx := global.DmSQL["data"].Begin()
 	for _, v := range list {
-		_, err = p.Exec(v.IsShow, v.Sort, v.Id)
+		err = tx.Exec("UPDATE edb_info_stat_column SET is_show = ?, sort=? WHERE id = ?", v.IsShow, v.Sort, v.Id).Error
 		if err != nil {
+			tx.Rollback()
 			return
 		}
 	}
+	tx.Commit()
 	return
 }

+ 75 - 38
models/data_stat/edb_info_update_log.go

@@ -1,47 +1,80 @@
 package data_stat
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // EdbInfoUpdateLog 指标更新/刷新日志列表
+//type EdbInfoUpdateLog struct {
+//	Id                     uint64    `orm:"column(id);pk"`
+//	EdbInfoId              int       `description:"指标ID"`
+//	SourceName             string    `description:"来源名称"`
+//	Source                 int       `description:"来源id"`
+//	EdbCode                string    `description:"指标编码"`
+//	EdbName                string    `description:"指标名称"`
+//	EdbNameSource          string    `description:"指标名称来源"`
+//	Frequency              string    `description:"频率"`
+//	Unit                   string    `description:"单位"`
+//	StartDate              string    `description:"起始日期"`
+//	EndDate                string    `description:"终止日期"`
+//	SysUserId              int       `description:"创建人ID"`
+//	SysUserRealName        string    `description:"创建人姓名"`
+//	UniqueCode             string    `description:"指标唯一编码"`
+//	EdbCreateTime          time.Time `description:"指标创建时间"`
+//	EdbModifyTime          time.Time `description:"指标修改时间"`
+//	CreateTime             time.Time `description:"创建时间"`
+//	UpdateSysUserId        int       `description:"变更人ID"`
+//	UpdateSysUserRealName  string    `description:"变更人姓名"`
+//	LatestDate             string    `description:"数据最新日期"`
+//	LatestValue            float64   `description:"数据最新值"`
+//	TerminalCode           string    `description:"终端编码,用于配置在机器上"`
+//	ErDataUpdateDate       string    `description:"本次更新,数据发生变化的最早日期"`
+//	UpdateResult           int       `description:"本次刷新操作结果:1成功,2失败"`
+//	UpdateFailedReason     string    `description:"刷新失败原因"`
+//	DataUpdateResult       int       `description:"数据更新结果:1成功,2失败"`
+//	DataUpdateFailedReason string    `description:"数据未正常更新原因"`
+//	DataUpdateTime         string    `description:"数据更新时间"`
+//	IsSourceRefresh        int       `description:"是否为终端刷新到数据源的刷新操作:0否,1是"`
+//	UpdateType             int       `description:"变更类型,0:数据明细变更,1:基础信息变更, 2:新增指标"`
+//}
+
 type EdbInfoUpdateLog struct {
-	Id                     uint64    `orm:"column(id);pk" gorm:"primaryKey" `
-	EdbInfoId              int       `description:"指标ID"`
-	SourceName             string    `description:"来源名称"`
-	Source                 int       `description:"来源id"`
-	EdbCode                string    `description:"指标编码"`
-	EdbName                string    `description:"指标名称"`
-	EdbNameSource          string    `description:"指标名称来源"`
-	Frequency              string    `description:"频率"`
-	Unit                   string    `description:"单位"`
-	StartDate              string    `description:"起始日期"`
-	EndDate                string    `description:"终止日期"`
-	SysUserId              int       `description:"创建人ID"`
-	SysUserRealName        string    `description:"创建人姓名"`
-	UniqueCode             string    `description:"指标唯一编码"`
-	EdbCreateTime          time.Time `description:"指标创建时间"`
-	EdbModifyTime          time.Time `description:"指标修改时间"`
-	CreateTime             time.Time `description:"创建时间"`
-	UpdateSysUserId        int       `description:"变更人ID"`
-	UpdateSysUserRealName  string    `description:"变更人姓名"`
-	LatestDate             string    `description:"数据最新日期"`
-	LatestValue            float64   `description:"数据最新值"`
-	TerminalCode           string    `description:"终端编码,用于配置在机器上"`
-	ErDataUpdateDate       string    `description:"本次更新,数据发生变化的最早日期"`
-	UpdateResult           int       `description:"本次刷新操作结果:1成功,2失败"`
-	UpdateFailedReason     string    `description:"刷新失败原因"`
-	DataUpdateResult       int       `description:"数据更新结果:1成功,2失败"`
-	DataUpdateFailedReason string    `description:"数据未正常更新原因"`
-	DataUpdateTime         string    `description:"数据更新时间"`
-	IsSourceRefresh        int       `description:"是否为终端刷新到数据源的刷新操作:0否,1是"`
-	UpdateType             int       `description:"变更类型,0:数据明细变更,1:基础信息变更, 2:新增指标"`
+	Id                     uint64    `gorm:"primaryKey;unique;column:id;type:bigint(20) unsigned;not null"` // 自增id
+	EdbInfoId              int       `gorm:"column:edb_info_id;type:int(11);not null"`                      // 指标id
+	SourceName             string    `gorm:"column:source_name;type:varchar(100)"`                          // 来源名称
+	Source                 int       `gorm:"column:source;type:tinyint(4)"`                                 // 来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,9:手工指标,10:隆众,11:有色,12:环比值,13:环差值,14:变频,15:钢联
+	EdbCode                string    `gorm:"column:edb_code;type:varchar(255);not null;default:''"`         // 指标编码
+	EdbName                string    `gorm:"column:edb_name;type:varchar(255);default:''"`                  // 指标名称
+	EdbNameSource          string    `gorm:"column:edb_name_source;type:varchar(255);default:''"`           // 指标名称_来源
+	Frequency              string    `gorm:"column:frequency;type:varchar(20);default:''"`                  // 频度
+	Unit                   string    `gorm:"column:unit;type:varchar(20);default:''"`                       // 单位
+	StartDate              string    `gorm:"column:start_date;type:date"`                                   // 更新开始日期
+	EndDate                string    `gorm:"column:end_date;type:date"`                                     // 更新结束日期
+	SysUserId              int       `gorm:"column:sys_user_id;type:int(11)"`                               // 创建人
+	SysUserRealName        string    `gorm:"column:sys_user_real_name;type:varchar(100)"`                   // 创建人姓名
+	UpdateSysUserId        int       `gorm:"column:update_sys_user_id;type:int(11)"`                        // 变更人
+	UpdateSysUserRealName  string    `gorm:"column:update_sys_user_real_name;type:varchar(100)"`            // 变更人姓名
+	EdbCreateTime          time.Time `gorm:"column:edb_create_time;type:datetime"`                          // 指标创建时间
+	EdbModifyTime          time.Time `gorm:"column:edb_modify_time;type:datetime"`                          // 指标修改时间
+	UniqueCode             string    `gorm:"column:unique_code;type:varchar(50);default:''"`                // 唯一编码
+	LatestDate             string    `gorm:"column:latest_date;type:date"`                                  // 数据最新日期
+	LatestValue            float64   `gorm:"column:latest_value;type:double"`                               // 数据最新值
+	TerminalCode           string    `gorm:"column:terminal_code;type:varchar(255);default:''"`             // 终端编码,用于配置在机器上
+	CreateTime             time.Time `gorm:"index:create_time_idx;column:create_time;type:datetime"`        // 创建时间,即指标刷新/更新操作时间点
+	DataUpdateTime         string    `gorm:"column:data_update_time;type:datetime"`                         // 最近一次数据发生变化的时间
+	ErDataUpdateDate       string    `gorm:"column:er_data_update_date;type:date"`                          // 本次更新,数据发生变化的最早日期
+	UpdateResult           int       `gorm:"column:update_result;type:int(11)"`                             // 本次刷新操作结果:1成功,2失败
+	UpdateFailedReason     string    `gorm:"column:update_failed_reason;type:varchar(255)"`                 // 刷新失败原因
+	DataUpdateResult       int       `gorm:"column:data_update_result;type:int(11);not null;default:0"`     // 数据更新结果:1成功,2失败,
+	DataUpdateFailedReason string    `gorm:"column:data_update_failed_reason;type:varchar(255)"`            // 数据未正常更新原因,
+	IsSourceRefresh        int       `gorm:"column:is_source_refresh;type:int(11);not null;default:0"`      // 是否为终端刷新到数据源的刷新操作:0否,1是
+	UpdateType             int       `gorm:"column:update_type;type:tinyint(4);not null;default:0"`         // 变更类型,0:数据明细变更,1:基础信息变更, 2:新增指标
 }
 
 type EdbInfoUpdateLogItem struct {
-	Id                    uint64 `orm:"column(id);pk" gorm:"primaryKey" `
+	Id                    uint64 `orm:"column(id);pk"`
 	EdbInfoId             int    `description:"指标ID"`
 	SourceName            string `description:"来源名称"`
 	Source                int    `description:"来源id"`
@@ -67,8 +100,10 @@ type EdbInfoUpdateLogItem struct {
 }
 
 func AddEdbUpdateLog(item *EdbInfoUpdateLog) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["data"].Create(item).Error
+	lastId = int64(item.Id)
 	return
 }
 
@@ -78,7 +113,7 @@ type GetEdbUpdateLogResp struct {
 }
 
 func GetEdbUpdateLogByCondition(condition string, pars []interface{}, orderStr string, pageSize, startSize int) (item []*EdbInfoUpdateLog, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM edb_info_update_log WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -90,17 +125,19 @@ func GetEdbUpdateLogByCondition(condition string, pars []interface{}, orderStr s
 	}
 
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&item).Error
 	return
 }
 
 // GetEdbUpdateLogCount
 func GetEdbUpdateLogCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(*) FROM edb_info_update_log WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, pars).Scan(&count).Error
 	return
 }

+ 76 - 39
models/data_stat/edb_info_update_stat.go

@@ -1,48 +1,82 @@
 package data_stat
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // EdbInfoUpdateStat 指标更新/刷新 汇总表(数据源明细表)
+//type EdbInfoUpdateStat struct {
+//	Id                     uint64    `orm:"column(id);pk"`
+//	EdbInfoId              int       `description:"指标ID"`
+//	SourceName             string    `description:"来源名称"`
+//	Source                 int       `description:"来源id"`
+//	EdbCode                string    `description:"指标编码"`
+//	EdbName                string    `description:"指标名称"`
+//	EdbNameSource          string    `description:"指标名称来源"`
+//	Frequency              string    `description:"频率"`
+//	Unit                   string    `description:"单位"`
+//	StartDate              string    `description:"起始日期"`
+//	EndDate                string    `description:"终止日期"`
+//	SysUserId              int       `description:"创建人ID"`
+//	SysUserRealName        string    `description:"创建人姓名"`
+//	UniqueCode             string    `description:"指标唯一编码"`
+//	EdbCreateTime          time.Time `description:"指标创建时间"`
+//	EdbModifyTime          time.Time `description:"指标修改时间"`
+//	CreateTime             time.Time
+//	UpdateTime             string  `description:"刷新时间"`
+//	LatestDate             string  `description:"数据最新日期"`
+//	LatestValue            float64 `description:"数据最新值"`
+//	TerminalCode           string  `description:"终端编码,用于配置在机器上"`
+//	ErDataUpdateDate       string  `description:"本次更新,数据发生变化的最早日期"`
+//	DataUpdateResult       int     `description:"数据更新结果:1成功,2失败"`
+//	DataUpdateFailedReason string  `description:"数据未正常更新原因"`
+//	DataUpdateTime         string  `description:"数据更新时间"`
+//	UpdateResult           int     `description:"本次刷新操作结果:1成功,2失败"`
+//	UpdateFailedReason     string  `description:"刷新失败原因"`
+//	ModifyTime             string  `description:"修改时间"`
+//	IsAdd                  int8    `description:"是否是当日新增的指标:1是,2否"`
+//	NeedRefresh            int8    `description:"今日是否需要定时刷新,1需要,0不需要"` //todo 确认该字段
+//	HasRefresh             int8    `description:"今日是否已刷新,1是,0否"`
+//}
+
 type EdbInfoUpdateStat struct {
-	Id                     uint64    `orm:"column(id);pk" gorm:"primaryKey" `
-	EdbInfoId              int       `description:"指标ID"`
-	SourceName             string    `description:"来源名称"`
-	Source                 int       `description:"来源id"`
-	EdbCode                string    `description:"指标编码"`
-	EdbName                string    `description:"指标名称"`
-	EdbNameSource          string    `description:"指标名称来源"`
-	Frequency              string    `description:"频率"`
-	Unit                   string    `description:"单位"`
-	StartDate              string    `description:"起始日期"`
-	EndDate                string    `description:"终止日期"`
-	SysUserId              int       `description:"创建人ID"`
-	SysUserRealName        string    `description:"创建人姓名"`
-	UniqueCode             string    `description:"指标唯一编码"`
-	EdbCreateTime          time.Time `description:"指标创建时间"`
-	EdbModifyTime          time.Time `description:"指标修改时间"`
-	CreateTime             time.Time
-	UpdateTime             string  `description:"刷新时间"`
-	LatestDate             string  `description:"数据最新日期"`
-	LatestValue            float64 `description:"数据最新值"`
-	TerminalCode           string  `description:"终端编码,用于配置在机器上"`
-	ErDataUpdateDate       string  `description:"本次更新,数据发生变化的最早日期"`
-	DataUpdateResult       int     `description:"数据更新结果:1成功,2失败"`
-	DataUpdateFailedReason string  `description:"数据未正常更新原因"`
-	DataUpdateTime         string  `description:"数据更新时间"`
-	UpdateResult           int     `description:"本次刷新操作结果:1成功,2失败"`
-	UpdateFailedReason     string  `description:"刷新失败原因"`
-	ModifyTime             string  `description:"修改时间"`
-	IsAdd                  int8    `description:"是否是当日新增的指标:1是,2否"`
-	NeedRefresh            int8    `description:"今日是否需要定时刷新,1需要,0不需要"` //todo 确认该字段
-	HasRefresh             int8    `description:"今日是否已刷新,1是,0否"`
+	Id                     uint64    `gorm:"primaryKey;unique;column:id;type:bigint(20) unsigned;not null"` // 自增id
+	EdbInfoId              int       `gorm:"column:edb_info_id;type:int(11);not null"`                      // 指标id
+	SourceName             string    `gorm:"column:source_name;type:varchar(100)"`                          // 来源名称
+	Source                 int       `gorm:"column:source;type:tinyint(4)"`                                 // 来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,9:手工指标,10:隆众,11:有色,12:环比值,13:环差值,14:变频,15:钢联
+	EdbCode                string    `gorm:"column:edb_code;type:varchar(255);not null;default:''"`         // 指标编码
+	EdbName                string    `gorm:"column:edb_name;type:varchar(255);default:''"`                  // 指标名称
+	EdbNameSource          string    `gorm:"column:edb_name_source;type:varchar(255);default:''"`           // 指标名称_来源
+	Frequency              string    `gorm:"column:frequency;type:varchar(20);default:''"`                  // 频度
+	Unit                   string    `gorm:"column:unit;type:varchar(20);default:''"`                       // 单位
+	StartDate              string    `gorm:"column:start_date;type:date"`                                   // 更新开始日期
+	EndDate                string    `gorm:"column:end_date;type:date"`                                     // 更新结束日期
+	SysUserId              int       `gorm:"column:sys_user_id;type:int(11)"`                               // 创建人
+	SysUserRealName        string    `gorm:"column:sys_user_real_name;type:varchar(100)"`                   // 创建人姓名
+	EdbCreateTime          time.Time `gorm:"column:edb_create_time;type:datetime"`                          // 指标创建时间
+	EdbModifyTime          time.Time `gorm:"column:edb_modify_time;type:datetime"`                          // 指标修改时间
+	UniqueCode             string    `gorm:"column:unique_code;type:varchar(50);default:''"`                // 唯一编码
+	LatestDate             string    `gorm:"column:latest_date;type:date"`                                  // 数据最新日期
+	LatestValue            float64   `gorm:"column:latest_value;type:double"`                               // 数据最新值
+	TerminalCode           string    `gorm:"column:terminal_code;type:varchar(255);default:''"`             // 终端编码,用于配置在机器上
+	CreateTime             time.Time `gorm:"index:create_time_idx;column:create_time;type:datetime"`        // 创建时间
+	ModifyTime             time.Time `gorm:"column:modify_time;type:datetime"`                              // 修改时间
+	UpdateTime             string    `gorm:"column:update_time;type:datetime"`                              // 刷新/修改时间
+	DataUpdateTime         string    `gorm:"column:data_update_time;type:datetime"`                         // 当天数据发生变化的时间
+	ErDataUpdateDate       string    `gorm:"column:er_data_update_date;type:date"`                          // 当天数据发生变化的最早日期
+	UpdateResult           int       `gorm:"column:update_result;type:int(11)"`                             // 当天刷新结果:1成功,2失败
+	UpdateFailedReason     string    `gorm:"column:update_failed_reason;type:varchar(255)"`                 // 当天数据未正常刷新原因
+	IsAdd                  int8      `gorm:"column:is_add;type:tinyint(4);not null;default:0"`              // 是否是当日新增的指标:1是,2否
+	NeedRefresh            int8      `gorm:"column:need_refresh;type:tinyint(4);not null;default:0"`        // 今日是否需要刷新,1需要,0不需要
+	HasRefresh             int8      `gorm:"column:has_refresh;type:tinyint(4);not null;default:0"`         // 今日是否已刷新,1是,0否
+	DataUpdateResult       int       `gorm:"column:data_update_result;type:int(11);not null;default:0"`     // 数据更新结果:1成功,2失败,
+	DataUpdateFailedReason string    `gorm:"column:data_update_failed_reason;type:varchar(255)"`            // 数据未正常更新原因,
 }
 
 type EdbInfoUpdateStatItem struct {
-	Id                     uint64  `orm:"column(id);pk" gorm:"primaryKey" `
+	Id                     uint64  `orm:"column(id);pk"`
 	EdbInfoId              int     `description:"指标ID"`
 	SourceName             string  `description:"来源名称"`
 	Source                 int     `description:"来源id"`
@@ -81,7 +115,7 @@ type GetEdbUpdateStatResp struct {
 }
 
 func GetEdbUpdateStatByCondition(condition string, pars []interface{}, orderStr string, pageSize, startSize int) (item []*EdbInfoUpdateStat, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM edb_info_update_stat WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -93,18 +127,20 @@ func GetEdbUpdateStatByCondition(condition string, pars []interface{}, orderStr
 	}
 
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&item).Error
 	return
 }
 
 // GetEdbUpdateStatCount
 func GetEdbUpdateStatCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(*) FROM edb_info_update_stat WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
@@ -126,7 +162,7 @@ type GetEdbUpdateFailedResp struct {
 }
 
 func GetEdbUpdateStatFailedGroupByCondition(condition string, pars []interface{}) (item []*EdbUpdateFailedList, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT
 	terminal_code,
 	data_update_result as source_update_result,
@@ -145,6 +181,7 @@ WHERE
 	frequency,
 	data_update_failed_reason
 	ORDER BY count(*) desc`
-	_, err = o.Raw(sql, pars).QueryRows(&item)
+	//_, err = o.Raw(sql, pars).QueryRows(&item)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&item).Error
 	return
 }

+ 41 - 21
models/data_stat/edb_source_stat.go

@@ -1,32 +1,50 @@
 package data_stat
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // EdbSourceStat 数据源统计表
+//type EdbSourceStat struct {
+//	Id                uint64    `orm:"column(id);pk"`
+//	SourceName        string    `description:"来源名称"`
+//	Source            int       `description:"来源id"`
+//	TerminalCode      string    `description:"终端编码,用于配置在机器上"`
+//	EdbNum            int32     `description:"指标总数"`
+//	EdbNewNum         int32     `description:"今日新增指标数"`
+//	EdbDelNum         int32     `description:"今日删除指标数"`
+//	NeedRefreshNum    int       `description:"今日需刷新指标"`
+//	HasRefreshNum     int       `description:"今日发起刷新任务指标数"`
+//	UpdateSuccessNum  int       `description:"今日已更新成功指标数"`
+//	UpdateFailedNum   int       `description:"今日已更新失败指标数"`
+//	RefreshSuccessNum int       `description:"今日已刷新成功指标数"`
+//	RefreshFailedNum  int       `description:"今日已刷新失败指标数"`
+//	CreateTime        time.Time `description:"创建时间"`
+//	ModifyTime        time.Time `description:"修改时间"`
+//}
+
 type EdbSourceStat struct {
-	Id                uint64    `orm:"column(id);pk" gorm:"primaryKey" `
-	SourceName        string    `description:"来源名称"`
-	Source            int       `description:"来源id"`
-	TerminalCode      string    `description:"终端编码,用于配置在机器上"`
-	EdbNum            int32     `description:"指标总数"`
-	EdbNewNum         int32     `description:"今日新增指标数"`
-	EdbDelNum         int32     `description:"今日删除指标数"`
-	NeedRefreshNum    int       `description:"今日需刷新指标"`
-	HasRefreshNum     int       `description:"今日发起刷新任务指标数"`
-	UpdateSuccessNum  int       `description:"今日已更新成功指标数"`
-	UpdateFailedNum   int       `description:"今日已更新失败指标数"`
-	RefreshSuccessNum int       `description:"今日已刷新成功指标数"`
-	RefreshFailedNum  int       `description:"今日已刷新失败指标数"`
-	CreateTime        time.Time `description:"创建时间"`
-	ModifyTime        time.Time `description:"修改时间"`
+	Id                uint64    `gorm:"primaryKey;unique;column:id;type:bigint(20) unsigned;not null"` // 自增id
+	SourceName        string    `gorm:"column:source_name;type:varchar(100)"`                          // 来源名称
+	Source            int       `gorm:"column:source;type:tinyint(4)"`                                 // 来源:1:同花顺,2:wind,3:彭博,4:指标运算,5:累计值转月,6:同比值,7:同差值,8:N数值移动平均计算,9:手工指标,10:隆众,11:有色,12:环比值,13:环差值,14:变频,15:钢联
+	TerminalCode      string    `gorm:"column:terminal_code;type:varchar(255);default:''"`             // 终端编码,用于配置在机器上
+	EdbNum            int32     `gorm:"column:edb_num;type:int(11);not null;default:0"`                // 指标总数
+	EdbNewNum         int32     `gorm:"column:edb_new_num;type:int(11);not null;default:0"`            // 今日新增指标数
+	EdbDelNum         int32     `gorm:"column:edb_del_num;type:int(11);not null;default:0"`            // 今日删除指标数
+	NeedRefreshNum    int       `gorm:"column:need_refresh_num;type:int(11);not null;default:0"`       // 今日需刷新指标
+	HasRefreshNum     int       `gorm:"column:has_refresh_num;type:int(11);not null;default:0"`        // 今日发起刷新任务指标数
+	RefreshSuccessNum int       `gorm:"column:refresh_success_num;type:int(11);not null;default:0"`    // 今日已刷新成功指标数
+	RefreshFailedNum  int       `gorm:"column:refresh_failed_num;type:int(11);not null;default:0"`     // 今日已刷新失败指标数
+	UpdateSuccessNum  int       `gorm:"column:update_success_num;type:int(11);not null;default:0"`     // 今日已更新成功指标数
+	UpdateFailedNum   int       `gorm:"column:update_failed_num;type:int(11);not null;default:0"`      // 今日已更新失败指标数
+	CreateTime        time.Time `gorm:"index:create_time_idx;column:create_time;type:datetime"`        // 创建时间
+	ModifyTime        time.Time `gorm:"column:modify_time;type:datetime"`                              // 修改时间
 }
 
 type EdbInfoSourceStatItem struct {
-	Id                uint64 `orm:"column(id);pk" gorm:"primaryKey" `
+	Id                uint64 `orm:"column(id);pk"`
 	SourceName        string `description:"来源名称"`
 	Source            int    `description:"来源id"`
 	TerminalCode      string `description:"终端编码,用于配置在机器上"`
@@ -47,7 +65,7 @@ type GetEdbSourceStatResp struct {
 }
 
 func GetEdbSourceStatByCondition(condition string, pars []interface{}, orderStr string, pageSize, startSize int) (item []*EdbSourceStat, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM edb_source_stat WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -59,17 +77,19 @@ func GetEdbSourceStatByCondition(condition string, pars []interface{}, orderStr
 	}
 
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&item).Error
 	return
 }
 
 // GetEdbSourceStatCount
 func GetEdbSourceStatCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT count(*) FROM edb_source_stat WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, pars).Scan(&count).Error
 	return
 }

+ 28 - 34
models/eta_trial/questionnaire_fill_record.go

@@ -1,41 +1,35 @@
 package eta_trial
 
-import (
-	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
 // QuestionnaireFillRecord 问卷填写记录表
-type QuestionnaireFillRecord struct {
-	RecordId   int    `orm:"column(fill_record_id);pk" gorm:"primaryKey"  description:"记录id"`
-	Mobile     string `description:"手机"`
-	IsFill     int    `description:"0未点过 1稍后再填 2已填写"`
-	CreateTime time.Time
-	ModifyTime time.Time
-}
+//type QuestionnaireFillRecord struct {
+//	RecordId   int    `orm:"column(fill_record_id);pk" description:"记录id"`
+//	Mobile     string `description:"手机"`
+//	IsFill     int    `description:"0未点过 1稍后再填 2已填写"`
+//	CreateTime time.Time
+//	ModifyTime time.Time
+//}
 
 // GetQuestionnaireFillRecordCountByMobile 手机号获取问卷填写记录
-func GetQuestionnaireFillRecordCountByMobile(mobile string) (item *QuestionnaireFillRecord, err error) {
-	if utils.BusinessCode != utils.BusinessCodeSandbox {
-		return
-	}
-	o := orm.NewOrm()
-	sql := `SELECT * FROM questionnaire_fill_record WHERE mobile=? ORDER BY create_time DESC LIMIT 1`
-	err = o.Raw(sql, mobile).QueryRow(&item)
-	return
-}
+//func GetQuestionnaireFillRecordCountByMobile(mobile string) (item *QuestionnaireFillRecord, err error) {
+//	if utils.BusinessCode != utils.BusinessCodeSandbox {
+//		return
+//	}
+//	o := orm.NewOrm()
+//	sql := `SELECT * FROM questionnaire_fill_record WHERE mobile=? ORDER BY create_time DESC LIMIT 1`
+//	err = o.Raw(sql, mobile).QueryRow(&item)
+//	return
+//}
 
 // AddQuestionnaireFillRecord 新增问卷填写记录
-func AddQuestionnaireFillRecord(item *QuestionnaireFillRecord) (err error) {
-	if utils.BusinessCode != utils.BusinessCodeSandbox {
-		return
-	}
-	o := orm.NewOrm()
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.RecordId = int(id)
-	return
-}
+//func AddQuestionnaireFillRecord(item *QuestionnaireFillRecord) (err error) {
+//	if utils.BusinessCode != utils.BusinessCodeSandbox {
+//		return
+//	}
+//	o := orm.NewOrm()
+//	id, err := o.Insert(item)
+//	if err != nil {
+//		return
+//	}
+//	item.RecordId = int(id)
+//	return
+//}

+ 1 - 1
models/eta_trial/request.go

@@ -15,7 +15,7 @@ type EtaTrialQuestionnaireResp struct {
 
 // EtaTrialQuestionnaireRespItem 问卷调查信息
 type EtaTrialQuestionnaireRespItem struct {
-	QuestionnaireId int      `orm:"column(questionnaire_id);pk" gorm:"primaryKey"  description:"问卷题目id"`
+	QuestionnaireId int      `orm:"column(questionnaire_id);pk" description:"问卷题目id"`
 	Question        string   `description:"题目"`
 	Type            int      `description:"1单选 2多选 3简答题"`
 	Sort            int      `description:"排序"`

+ 172 - 115
models/fe_calendar/fe_calendar_matter.go

@@ -1,9 +1,9 @@
 package fe_calendar
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -15,25 +15,46 @@ const (
 )
 
 // FeCalendarMatter 外汇日历-事项表
+//type FeCalendarMatter struct {
+//	FeCalendarMatterId  int       `orm:"column(fe_calendar_matter_id);pk" description:"事项ID"`
+//	ChartPermissionId   int       `description:"品种ID"`
+//	ChartPermissionName string    `description:"品种名称"`
+//	MatterMonth         string    `description:"事项年月:格式2006-01"`
+//	MatterDate          time.Time `description:"事项日期"`
+//	Title               string    `description:"标题"`
+//	MatterType          int       `description:"事项类型:1-自定义事项;2-基础指标;3-预测指标"`
+//	EdbInfoId           int       `description:"指标ID"`
+//	EdbUniqueCode       string    `description:"指标唯一编码"`
+//	EdbCode             string    `description:"指标编码"`
+//	FontColor           string    `description:"字体颜色"`
+//	FillingColor        string    `description:"填充颜色"`
+//	FontBold            int       `description:"字体加粗:0-否;1-是"`
+//	Sort                int       `description:"排序"`
+//	SysUserId           int       `description:"创建人ID"`
+//	SysUserName         string    `description:"创建人姓名"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"更新时间"`
+//}
+
 type FeCalendarMatter struct {
-	FeCalendarMatterId  int       `orm:"column(fe_calendar_matter_id);pk" gorm:"primaryKey"  description:"事项ID"`
-	ChartPermissionId   int       `description:"品种ID"`
-	ChartPermissionName string    `description:"品种名称"`
-	MatterMonth         string    `description:"事项年月:格式2006-01"`
-	MatterDate          time.Time `description:"事项日期"`
-	Title               string    `description:"标题"`
-	MatterType          int       `description:"事项类型:1-自定义事项;2-基础指标;3-预测指标"`
-	EdbInfoId           int       `description:"指标ID"`
-	EdbUniqueCode       string    `description:"指标唯一编码"`
-	EdbCode             string    `description:"指标编码"`
-	FontColor           string    `description:"字体颜色"`
-	FillingColor        string    `description:"填充颜色"`
-	FontBold            int       `description:"字体加粗:0-否;1-是"`
-	Sort                int       `description:"排序"`
-	SysUserId           int       `description:"创建人ID"`
-	SysUserName         string    `description:"创建人姓名"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"更新时间"`
+	FeCalendarMatterId  int       `gorm:"primaryKey;column:fe_calendar_matter_id;type:int(10) unsigned;not null"`                            // 事项Id
+	ChartPermissionId   int       `gorm:"index:idx_chart_permission_id;column:chart_permission_id;type:int(10) unsigned;not null;default:0"` // 品种Id
+	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(128);not null;default:''"`                                // 品种名称
+	MatterMonth         string    `gorm:"index:idx_matter_month;column:matter_month;type:varchar(16);not null;default:''"`                   // 事项年月:格式2006-01
+	MatterDate          time.Time `gorm:"index:idx_matter_date;column:matter_date;type:date"`                                                // 事项日期
+	Title               string    `gorm:"column:title;type:varchar(255);not null;default:''"`                                                // 标题
+	MatterType          int       `gorm:"column:matter_type;type:tinyint(4) unsigned;not null;default:0"`                                    // 事项类型:1-自定义事项;2-基础指标;3-预测指标
+	EdbInfoId           int       `gorm:"column:edb_info_id;type:int(10) unsigned;not null;default:0"`                                       // 指标Id
+	EdbUniqueCode       string    `gorm:"column:edb_unique_code;type:varchar(128);not null;default:''"`                                      // 指标唯一编码
+	EdbCode             string    `gorm:"column:edb_code;type:varchar(128);not null;default:''"`                                             // 指标编码
+	FontColor           string    `gorm:"column:font_color;type:varchar(64);not null;default:''"`                                            // 字体颜色
+	FillingColor        string    `gorm:"column:filling_color;type:varchar(64);not null;default:''"`                                         // 填充颜色
+	FontBold            int       `gorm:"column:font_bold;type:tinyint(4) unsigned;not null;default:0"`                                      // 字体加粗:0-否;1-是
+	Sort                int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                                              // 排序
+	SysUserId           int       `gorm:"column:sys_user_id;type:int(10) unsigned;not null;default:0"`                                       // 创建人Id
+	SysUserName         string    `gorm:"column:sys_user_name;type:varchar(128);not null;default:''"`                                        // 创建人姓名
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                                                  // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                                                  // 更新时间
 }
 
 var FeCalendarMatterCols = struct {
@@ -84,75 +105,75 @@ func (m *FeCalendarMatter) PrimaryId() string {
 	return FeCalendarMatterCols.FeCalendarMatterId
 }
 
-func (m *FeCalendarMatter) Create() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.FeCalendarMatterId = int(id)
-	return
-}
+//func (m *FeCalendarMatter) Create() (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	id, err := o.Insert(m)
+//	if err != nil {
+//		return
+//	}
+//	m.FeCalendarMatterId = int(id)
+//	return
+//}
 
-func (m *FeCalendarMatter) CreateMulti(items []*FeCalendarMatter) (err error) {
-	if len(items) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
-	return
-}
+//func (m *FeCalendarMatter) CreateMulti(items []*FeCalendarMatter) (err error) {
+//	if len(items) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	_, err = o.InsertMulti(len(items), items)
+//	return
+//}
 
-func (m *FeCalendarMatter) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(m, cols...)
-	return
-}
+//func (m *FeCalendarMatter) Update(cols []string) (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	_, err = o.Update(m, cols...)
+//	return
+//}
 
-func (m *FeCalendarMatter) Del() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.FeCalendarMatterId).Exec()
-	return
-}
+//func (m *FeCalendarMatter) Del() (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+//	_, err = o.Raw(sql, m.FeCalendarMatterId).Exec()
+//	return
+//}
 
-func (m *FeCalendarMatter) MultiDel(menuIds []int) (err error) {
-	if len(menuIds) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
-	return
-}
+//func (m *FeCalendarMatter) MultiDel(menuIds []int) (err error) {
+//	if len(menuIds) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
+//	_, err = o.Raw(sql, menuIds).Exec()
+//	return
+//}
 
-func (m *FeCalendarMatter) GetItemById(id int) (item *FeCalendarMatter, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
-	return
-}
+//func (m *FeCalendarMatter) GetItemById(id int) (item *FeCalendarMatter, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+//	err = o.Raw(sql, id).QueryRow(&item)
+//	return
+//}
 
-func (m *FeCalendarMatter) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FeCalendarMatter, err error) {
-	o := orm.NewOrmUsingDB("data")
-	order := ``
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
-	return
-}
+//func (m *FeCalendarMatter) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *FeCalendarMatter, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	order := ``
+//	if orderRule != "" {
+//		order = ` ORDER BY ` + orderRule
+//	}
+//	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
+//	err = o.Raw(sql, pars).QueryRow(&item)
+//	return
+//}
 
-func (m *FeCalendarMatter) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
+//func (m *FeCalendarMatter) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
+//	err = o.Raw(sql, pars).QueryRow(&count)
+//	return
+//}
 
 func (m *FeCalendarMatter) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*FeCalendarMatter, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -162,24 +183,25 @@ func (m *FeCalendarMatter) GetItemsByCondition(condition string, pars []interfac
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
-func (m *FeCalendarMatter) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FeCalendarMatter, err error) {
-	o := orm.NewOrmUsingDB("data")
-	fields := strings.Join(fieldArr, ",")
-	if len(fieldArr) == 0 {
-		fields = `*`
-	}
-	order := fmt.Sprintf(`ORDER BY %s DESC`, FeCalendarMatterCols.CreateTime)
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
-	return
-}
+//func (m *FeCalendarMatter) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*FeCalendarMatter, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	fields := strings.Join(fieldArr, ",")
+//	if len(fieldArr) == 0 {
+//		fields = `*`
+//	}
+//	order := fmt.Sprintf(`ORDER BY %s DESC`, FeCalendarMatterCols.CreateTime)
+//	if orderRule != "" {
+//		order = ` ORDER BY ` + orderRule
+//	}
+//	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
+//	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+//	return
+//}
 
 type FeCalendarMatterItem struct {
 	FeCalendarMatterId  int    `description:"事项ID"`
@@ -252,12 +274,55 @@ type FeCalendarMatterSaveItem struct {
 }
 
 func (m *FeCalendarMatter) Save(addMatters, editMatters, removeMatters []*FeCalendarMatter, updateCols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("begin tx err: %s", e.Error())
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("begin tx err: %s", e.Error())
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//}()
+
+	//if len(addMatters) > 0 {
+	//	_, e = tx.InsertMulti(len(addMatters), addMatters)
+	//	if e != nil {
+	//		err = fmt.Errorf("insert multi err: %s", e.Error())
+	//		return
+	//	}
+	//}
+	//if len(editMatters) > 0 {
+	//	for _, v := range editMatters {
+	//		_, e = tx.Update(v, updateCols...)
+	//		if e != nil {
+	//			err = fmt.Errorf("update err: %s", e.Error())
+	//			return
+	//		}
+	//	}
+	//}
+	//if len(removeMatters) > 0 {
+	//	p, e := tx.Raw(fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())).Prepare()
+	//	if e != nil {
+	//		err = fmt.Errorf("remove prepare err: %s", e.Error())
+	//		return
+	//	}
+	//	defer func() {
+	//		_ = p.Close()
+	//	}()
+	//	for _, v := range removeMatters {
+	//		_, e = p.Exec(v.FeCalendarMatterId)
+	//		if e != nil {
+	//			err = fmt.Errorf("remove exec err: %s", e.Error())
+	//			return
+	//		}
+	//	}
+	//}
+
+	tx := global.DmSQL["data"].Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -265,36 +330,28 @@ func (m *FeCalendarMatter) Save(addMatters, editMatters, removeMatters []*FeCale
 		}
 		_ = tx.Commit()
 	}()
-
 	if len(addMatters) > 0 {
-		_, e = tx.InsertMulti(len(addMatters), addMatters)
+		e := tx.CreateInBatches(addMatters, utils.MultiAddNum).Error
 		if e != nil {
-			err = fmt.Errorf("insert multi err: %s", e.Error())
+			err = fmt.Errorf("insert multi err: %v", e)
 			return
 		}
 	}
 	if len(editMatters) > 0 {
 		for _, v := range editMatters {
-			_, e = tx.Update(v, updateCols...)
+			e := tx.Select(updateCols).Updates(v).Error
 			if e != nil {
-				err = fmt.Errorf("update err: %s", e.Error())
+				err = fmt.Errorf("update err: %v", e)
 				return
 			}
 		}
 	}
 	if len(removeMatters) > 0 {
-		p, e := tx.Raw(fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())).Prepare()
-		if e != nil {
-			err = fmt.Errorf("remove prepare err: %s", e.Error())
-			return
-		}
-		defer func() {
-			_ = p.Close()
-		}()
+		sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
 		for _, v := range removeMatters {
-			_, e = p.Exec(v.FeCalendarMatterId)
+			e := tx.Exec(sql, v.FeCalendarMatterId).Error
 			if e != nil {
-				err = fmt.Errorf("remove exec err: %s", e.Error())
+				err = fmt.Errorf("remove exec err: %v", e)
 				return
 			}
 		}

+ 216 - 116
models/ppt_english/ppt_english.go

@@ -1,60 +1,111 @@
 package ppt_english
 
 import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
+	"fmt"
 	"time"
 
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 // PptEnglish 表
+//type PptEnglish struct {
+//	PptId         int       `orm:"column(ppt_id);pk;auto" description:"ppt的Id"`
+//	TemplateType  int       `description:"模版类型"`
+//	BackgroundImg string    `description:"背景图片"`
+//	Title         string    `description:"标题"`
+//	ReportType    string    `description:"报告类型"`
+//	PptDate       string    `description:"选择日期"`
+//	Content       string    `description:"ppt内容"`
+//	PptxUrl       string    `description:"pptx下载地址"`
+//	CreateTime    time.Time `description:"创建时间"`
+//	ModifyTime    time.Time `description:"修改时间"`
+//	AdminId       int       `description:"系统用户id"`
+//	AdminRealName string    `description:"系统用户名称"`
+//	ReportId      int       `description:"关联的报告ID"`
+//	ReportCode    string    `description:"关联的报告code"`
+//	IsShare       int8      `description:"是否分享,0:不分享,1:分享"`
+//	PublishTime   time.Time `description:"发布时间"`
+//	CoverContent  string    `description:"PPT内容-JSON"`
+//	PptPage       int       `description:"PPT页数"`
+//	TitleSetting  string    `description:"PPT标题设置"`
+//}
+
 type PptEnglish struct {
-	PptId         int       `orm:"column(ppt_id);pk;auto" description:"ppt的Id"`
-	TemplateType  int       `description:"模版类型"`
-	BackgroundImg string    `description:"背景图片"`
-	Title         string    `description:"标题"`
-	ReportType    string    `description:"报告类型"`
-	PptDate       string    `description:"选择日期"`
-	Content       string    `description:"ppt内容"`
-	PptxUrl       string    `description:"pptx下载地址"`
-	CreateTime    time.Time `description:"创建时间"`
-	ModifyTime    time.Time `description:"修改时间"`
-	AdminId       int       `description:"系统用户id"`
-	AdminRealName string    `description:"系统用户名称"`
-	ReportId      int       `description:"关联的报告ID"`
-	ReportCode    string    `description:"关联的报告code"`
-	IsShare       int8      `description:"是否分享,0:不分享,1:分享"`
-	PublishTime   time.Time `description:"发布时间"`
-	CoverContent  string    `description:"PPT内容-JSON"`
-	PptPage       int       `description:"PPT页数"`
-	TitleSetting  string    `description:"PPT标题设置"`
-}
+	PptId         int       `gorm:"primaryKey;column:ppt_id;type:int(11) unsigned;not null"`
+	TemplateType  int       `gorm:"column:template_type;type:int(9) unsigned;default:1"`                           // 模板类型
+	BackgroundImg string    `gorm:"column:background_img;type:varchar(255);default:''"`                            // 背景图
+	Title         string    `gorm:"index:idx_title;column:title;type:varchar(255);default:''"`                     // 标题
+	ReportType    string    `gorm:"column:report_type;type:varchar(50);default:''"`                                // 报告类型
+	PptDate       string    `gorm:"column:ppt_date;type:varchar(20);default:''"`                                   // 选择日期
+	PptUrl        string    `gorm:"column:ppt_url;type:varchar(255);default:''"`                                   // ppt地址
+	PptxUrl       string    `gorm:"column:pptx_url;type:varchar(255);default:''"`                                  // pptx地址
+	Content       string    `gorm:"column:content;type:mediumtext"`                                                // ppt内容
+	CreateTime    time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"`                    // 创建时间
+	ModifyTime    time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP"`                    // 修改时间
+	AdminId       int       `gorm:"column:admin_id;type:int(11) unsigned;default:0"`                               // 系统用户id
+	AdminRealName string    `gorm:"index:idx_admin_real_name;column:admin_real_name;type:varchar(100);default:''"` // 系统用户名称
+	PptVersion    uint8     `gorm:"column:ppt_version;type:tinyint(9) unsigned;default:2"`                         // 是否ppt的旧版本;1:旧的,2:新的
+	ReportId      int       `gorm:"column:report_id;type:int(10) unsigned;not null;default:0"`                     // 关联的报告ID
+	ReportCode    string    `gorm:"column:report_code;type:varchar(255);not null;default:''"`                      // 关联的报告code
+	IsShare       int8      `gorm:"column:is_share;type:tinyint(9) unsigned;default:0"`                            // 是否分享,0:不分享,1:分享
+	PublishTime   time.Time `gorm:"column:publish_time;type:datetime"`                                             // 发布时间
+	CoverContent  string    `gorm:"column:cover_content;type:text"`                                                // 封面内容-JSON
+	PptPage       int       `gorm:"column:ppt_page;type:int(10)"`                                                  // PPT总页数
+	TitleSetting  string    `gorm:"column:title_setting;type:varchar(255);default:''"`                             // 标题设置
+}
+
+//type PptEnglishItem struct {
+//	PptId         int       `orm:"column(ppt_id);pk" description:"ppt的Id"`
+//	TemplateType  int       `description:"模版类型"`
+//	BackgroundImg string    `description:"背景图片"`
+//	Title         string    `description:"标题"`
+//	ReportType    string    `description:"报告类型"`
+//	PptDate       string    `description:"选择日期"`
+//	Content       string    `description:"ppt内容"`
+//	PptxUrl       string    `description:"pptx下载地址"`
+//	CreateTime    time.Time `description:"创建时间"`
+//	ModifyTime    time.Time `description:"修改时间"`
+//	AdminId       int       `description:"系统用户id"`
+//	AdminRealName string    `description:"系统用户名称"`
+//	IsAuth        bool      `description:"true:有操作权限,false:无操作权限"`
+//	ReportId      int       `description:"报告ID"`
+//	ReportCode    string    `description:"关联的报告code"`
+//	IsShare       int8      `description:"是否分享,0:不分享,1:分享"`
+//	PublishTime   time.Time `description:"发布时间"`
+//	CoverContent  string    `description:"PPT内容-JSON"`
+//	PptPage       int       `description:"PPT页数"`
+//	TitleSetting  string    `description:"PPT标题设置"`
+//}
 
 type PptEnglishItem struct {
-	PptId         int       `orm:"column(ppt_id);pk" gorm:"primaryKey"  description:"ppt的Id"`
-	TemplateType  int       `description:"模版类型"`
-	BackgroundImg string    `description:"背景图片"`
-	Title         string    `description:"标题"`
-	ReportType    string    `description:"报告类型"`
-	PptDate       string    `description:"选择日期"`
-	Content       string    `description:"ppt内容"`
-	PptxUrl       string    `description:"pptx下载地址"`
-	CreateTime    time.Time `description:"创建时间"`
-	ModifyTime    time.Time `description:"修改时间"`
-	AdminId       int       `description:"系统用户id"`
-	AdminRealName string    `description:"系统用户名称"`
-	IsAuth        bool      `description:"true:有操作权限,false:无操作权限"`
-	ReportId      int       `description:"报告ID"`
-	ReportCode    string    `description:"关联的报告code"`
-	IsShare       int8      `description:"是否分享,0:不分享,1:分享"`
-	PublishTime   time.Time `description:"发布时间"`
-	CoverContent  string    `description:"PPT内容-JSON"`
-	PptPage       int       `description:"PPT页数"`
-	TitleSetting  string    `description:"PPT标题设置"`
+	PptId         int       `gorm:"primaryKey;column:ppt_id;type:int(11) unsigned;not null"`
+	TemplateType  int       `gorm:"column:template_type;type:int(9) unsigned;default:1"`                           // 模板类型
+	BackgroundImg string    `gorm:"column:background_img;type:varchar(255);default:''"`                            // 背景图
+	Title         string    `gorm:"index:idx_title;column:title;type:varchar(255);default:''"`                     // 标题
+	ReportType    string    `gorm:"column:report_type;type:varchar(50);default:''"`                                // 报告类型
+	PptDate       string    `gorm:"column:ppt_date;type:varchar(20);default:''"`                                   // 选择日期
+	PptUrl        string    `gorm:"column:ppt_url;type:varchar(255);default:''"`                                   // ppt地址
+	PptxUrl       string    `gorm:"column:pptx_url;type:varchar(255);default:''"`                                  // pptx地址
+	Content       string    `gorm:"column:content;type:mediumtext"`                                                // ppt内容
+	CreateTime    time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"`                    // 创建时间
+	ModifyTime    time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP"`                    // 修改时间
+	AdminId       int       `gorm:"column:admin_id;type:int(11) unsigned;default:0"`                               // 系统用户id
+	AdminRealName string    `gorm:"index:idx_admin_real_name;column:admin_real_name;type:varchar(100);default:''"` // 系统用户名称
+	PptVersion    uint8     `gorm:"column:ppt_version;type:tinyint(9) unsigned;default:2"`                         // 是否ppt的旧版本;1:旧的,2:新的
+	ReportId      int       `gorm:"column:report_id;type:int(10) unsigned;not null;default:0"`                     // 关联的报告ID
+	ReportCode    string    `gorm:"column:report_code;type:varchar(255);not null;default:''"`                      // 关联的报告code
+	IsShare       int8      `gorm:"column:is_share;type:tinyint(9) unsigned;default:0"`                            // 是否分享,0:不分享,1:分享
+	PublishTime   time.Time `gorm:"column:publish_time;type:datetime"`                                             // 发布时间
+	CoverContent  string    `gorm:"column:cover_content;type:text"`                                                // 封面内容-JSON
+	PptPage       int       `gorm:"column:ppt_page;type:int(10)"`                                                  // PPT总页数
+	TitleSetting  string    `gorm:"column:title_setting;type:varchar(255);default:''"`                             // 标题设置
+	IsAuth        bool      `gorm:"-" description:"true:有操作权限,false:无操作权限"`
 }
 
 func GetPptEnglishList(condition string, pars []interface{}, startSize, pageSize int) (items []*PptEnglishItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -62,12 +113,13 @@ func GetPptEnglishList(condition string, pars []interface{}, startSize, pageSize
 	//
 	sql += `ORDER BY modify_time DESC LIMIT ?,?`
 	//sql += `ORDER BY create_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func GetPptEnglishByCondition(condition string, pars []interface{}) (items []*PptEnglish, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -75,17 +127,19 @@ func GetPptEnglishByCondition(condition string, pars []interface{}) (items []*Pp
 	//
 	sql += `ORDER BY modify_time DESC`
 	//sql += `ORDER BY create_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func GetPptEnglishListCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT COUNT(1) AS count FROM ppt_english WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
@@ -96,16 +150,19 @@ type PptEnglishListResp struct {
 
 // AddPptEnglish 新增PPT
 func AddPptEnglish(item *PptEnglish) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("rddp")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["rddp"].Create(item).Error
+	lastId = int64(item.PptId)
 	return
 }
 
 // DeletePptEnglish 删除ppt
 func DeletePptEnglish(pptId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM ppt_english WHERE ppt_id=? `
-	_, err = o.Raw(sql, pptId).Exec()
+	//_, err = o.Raw(sql, pptId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, pptId).Error
 	return
 }
 
@@ -152,18 +209,20 @@ type EditPptEnglishReq struct {
 
 // Update 更新ppt基础信息
 func (item *PptEnglish) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(item, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(item).Error
 	return
 }
 
 // EditPptEnglish 编辑ppt
-func EditPptEnglish(item *PptEnglish) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE ppt_english SET title = ?,ppt_date= ?, report_type=?,modify_time=NOW()  WHERE ppt_id = ? `
-	_, err = o.Raw(sql, item.Title, item.PptDate, item.ReportType, item.PptId).Exec()
-	return
-}
+//func EditPptEnglish(item *PptEnglish) (err error) {
+//	//o := orm.NewOrmUsingDB("rddp")
+//	sql := `UPDATE ppt_english SET title = ?,ppt_date= ?, report_type=?,modify_time=NOW()  WHERE ppt_id = ? `
+//	//_, err = o.Raw(sql, item.Title, item.PptDate, item.ReportType, item.PptId).Exec()
+//	err = global.DmSQL["rddp"].Exec(sql, item.Title, item.PptDate, item.ReportType, item.PptId).Error
+//	return
+//}
 
 type DeletePptEnglishReq struct {
 	PptId int `description:"PptId" `
@@ -176,29 +235,35 @@ type SavePptEnglishPathReq struct {
 }
 
 func GetPptEnglishById(pptId int) (item *PptEnglish, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 AND ppt_id=? `
-	err = o.Raw(sql, pptId).QueryRow(&item)
+	//err = o.Raw(sql, pptId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pptId).First(&item).Error
 	return
 }
 
 func GetPptEnglishByIds(pptIds []int) (list []*PptEnglish, err error) {
-	_, err = orm.NewOrmUsingDB("rddp").
-		QueryTable("ppt_english").
-		Filter("ppt_id__in", pptIds).
-		All(&list)
+	//_, err = orm.NewOrmUsingDB("rddp").
+	//	QueryTable("ppt_english").
+	//	Filter("ppt_id__in", pptIds).
+	//	All(&list)
+	if len(pptIds) == 0 {
+		return
+	}
+	sql := fmt.Sprintf(`SELECT * FROM ppt_english WHERE ppt_id IN (%s)`, utils.GetOrmInReplace(len(pptIds)))
+	err = global.DmSQL["rddp"].Raw(sql, pptIds).Find(&list).Error
 	return
 }
 
-func GetPptEnglishByTitle(title string) (item *PptEnglish, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM ppt_english WHERE 1=1 AND title=? `
-	err = o.Raw(sql, title).QueryRow(&item)
-	return
-}
+//func GetPptEnglishByTitle(title string) (item *PptEnglish, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT * FROM ppt_english WHERE 1=1 AND title=? `
+//	err = o.Raw(sql, title).QueryRow(&item)
+//	return
+//}
 
 type PptPages struct {
-	PptPagesId int       `orm:"column(ppt_pages_id);pk" gorm:"primaryKey"  description:"报告章节Id"`
+	PptPagesId int       `orm:"column(ppt_pages_id);pk" description:"报告章节Id"`
 	PptId      int64     `description:"ppt_id"`
 	Title      string    `description:"标题"`
 	ImgUrl     string    `description:"图片路径"`
@@ -225,47 +290,75 @@ type PptEnglishPublishReq struct {
 // EditPptEnglishPath 编辑Ppt的下载地址
 func EditPptEnglishPath(pptId int, pptxPath string) (err error) {
 	sql := `UPDATE ppt_english SET pptx_url=?,modify_time=NOW(),publish_time=NOW() WHERE ppt_id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, pptxPath, pptId).Exec()
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Raw(sql, pptxPath, pptId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, pptxPath, pptId).Error
 	return
 }
 
-// AddPptEnglishPublishRecord 发布记录表
+// PptEnglishPublishRecord 发布记录表
+//type PptEnglishPublishRecord struct {
+//	Id         int `orm:"column(id);pk"`
+//	PptId      int
+//	PptUrl     string
+//	CreateTime time.Time
+//}
+
 type PptEnglishPublishRecord struct {
-	Id         int `orm:"column(id);pk" gorm:"primaryKey" `
-	PptId      int
-	PptUrl     string
-	CreateTime time.Time
+	Id         int       `gorm:"primaryKey;column:id;type:int(11);not null"`
+	PptId      int       `gorm:"column:ppt_id;type:int(11)"`                                 // 英文ppt id
+	PptUrl     string    `gorm:"column:ppt_url;type:varchar(255)"`                           // Ppt下载地址
+	CreateTime time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"` // 创建时间
 }
 
 // AddPptEnglishPublishRecord 添加发布记录,主要是记录每次发布的时候,当前的ppt
 func AddPptEnglishPublishRecord(item *PptEnglishPublishRecord) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("rddp")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["rddp"].Create(item).Error
+	lastId = int64(item.Id)
 	return
 }
 
 // PptEnglishSaveLog ppt记录表
+//type PptEnglishSaveLog struct {
+//	Id            int       `orm:"column(id);pk" description:"自增Id"`
+//	PptId         int       `orm:"column(ppt_id)" description:"ppt的Id"`
+//	TemplateType  int       `description:"模版类型"`
+//	BackgroundImg string    `description:"背景图片"`
+//	Title         string    `description:"标题"`
+//	ReportType    string    `description:"报告类型"`
+//	PptDate       string    `description:"选择日期"`
+//	Content       string    `description:"ppt内容"`
+//	AdminId       int       `description:"系统用户id"`
+//	AdminRealName string    `description:"系统用户名称"`
+//	CreateTime    time.Time `description:"创建时间"`
+//	CoverContent  string    `description:"PPT内容-JSON"`
+//	TitleSetting  string    `description:"PPT标题设置"`
+//}
+
 type PptEnglishSaveLog struct {
-	Id            int       `orm:"column(id);pk" gorm:"primaryKey"  description:"自增Id"`
-	PptId         int       `orm:"column(ppt_id)" description:"ppt的Id"`
-	TemplateType  int       `description:"模版类型"`
-	BackgroundImg string    `description:"背景图片"`
-	Title         string    `description:"标题"`
-	ReportType    string    `description:"报告类型"`
-	PptDate       string    `description:"选择日期"`
-	Content       string    `description:"ppt内容"`
-	AdminId       int       `description:"系统用户id"`
-	AdminRealName string    `description:"系统用户名称"`
-	CreateTime    time.Time `description:"创建时间"`
-	CoverContent  string    `description:"PPT内容-JSON"`
-	TitleSetting  string    `description:"PPT标题设置"`
+	Id            int       `gorm:"primaryKey;column:id;type:int(11);not null"`                   // 主键Id
+	PptId         int       `gorm:"index:idx_ppt_id;column:ppt_id;type:int(11);not null"`         // ppt Id
+	TemplateType  int       `gorm:"column:template_type;type:int(9) unsigned;not null;default:0"` // 模板类型
+	BackgroundImg string    `gorm:"column:background_img;type:varchar(255);not null;default:''"`  // 背景图
+	Title         string    `gorm:"column:title;type:varchar(255);not null;default:''"`           // 标题
+	ReportType    string    `gorm:"column:report_type;type:varchar(50);not null;default:''"`      // 报告类型
+	PptDate       string    `gorm:"column:ppt_date;type:varchar(20);not null;default:''"`         // 选择日期
+	Content       string    `gorm:"column:content;type:mediumtext"`                               // ppt内容
+	AdminId       int       `gorm:"column:admin_id;type:int(9) unsigned;default:0"`               // 操作人id
+	AdminRealName string    `gorm:"column:admin_real_name;type:varchar(64);default:''"`           // 操作人姓名
+	CreateTime    time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"`   // 创建时间
+	CoverContent  string    `gorm:"column:cover_content;type:text"`                               // 封面内容-JSON
+	TitleSetting  string    `gorm:"column:title_setting;type:varchar(255);default:''"`            // 标题设置
 }
 
 // AddPptEnglishSaveLog 新增PPT日志
 func AddPptEnglishSaveLog(item *PptEnglishSaveLog) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("rddp")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["rddp"].Create(item).Error
+	lastId = int64(item.Id)
 	return
 }
 
@@ -282,16 +375,18 @@ type PPT2ReportReq struct {
 
 // AddPptEnglishMulti 批量新增ppt
 func AddPptEnglishMulti(list []*PptEnglish) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(1, list)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(1, list)
+	err = global.DmSQL["rddp"].CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
 // GetAllPptTitle 获取当前目录的所有名称
 func GetAllPptTitle() (names []string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select title from ppt_english"
-	_, err = o.Raw(sql).QueryRows(&names)
+	//_, err = o.Raw(sql).QueryRows(&names)
+	err = global.DmSQL["rddp"].Raw(sql).Scan(&names).Error
 	return
 }
 
@@ -303,46 +398,50 @@ type PPT2ReportResp struct {
 
 // GetPptEnglishByReportId 通过关联的报告ID获取PPT
 func GetPptEnglishByReportId(reportId int) (item *PptEnglish, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 AND report_id=? LIMIT 1`
-	err = o.Raw(sql, reportId).QueryRow(&item)
+	//err = o.Raw(sql, reportId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, reportId).First(&item).Error
 	return
 }
 
 // GetSharePptEnglish 获取公开分享的ppt
 func GetSharePptEnglish() (items []*PptEnglish, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 AND is_share = 1 ORDER BY create_time DESC `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql).Find(&items).Error
 	return
 }
 
 // GetAllPptEnglishList 根据条件获取所有的Ppt
 func GetAllPptEnglishList(condition string, pars []interface{}) (items []*PptEnglishItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	//
 	sql += `ORDER BY modify_time DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 // GetSyncReportPptList 获取所有已经同步了报告的ppt
-func GetSyncReportPptList() (list []*PptEnglish, err error) {
-	sql := `SELECT * FROM ppt_english WHERE report_id>0 `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetSyncReportPptList() (list []*PptEnglish, err error) {
+//	sql := `SELECT * FROM ppt_english WHERE report_id>0 `
+//	o := orm.NewOrmUsingDB("rddp")
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // GetPPTTitleList 获取PPT标题列表
 func GetPPTTitleList() (list []string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT title FROM ppt_english`
-	_, err = o.Raw(sql).QueryRows(&list)
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql).Scan(&list).Error
 	return
 }
 
@@ -356,9 +455,10 @@ type EnglishPPT2ReportReq struct {
 }
 
 func GetPptEnglishByTitleAndId(title string, adminId int) (item *PptEnglish, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english WHERE 1=1 AND title=? AND admin_id=? `
-	err = o.Raw(sql, title, adminId).QueryRow(&item)
+	//err = o.Raw(sql, title, adminId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, title, adminId).First(&item).Error
 	return
 }
 

+ 112 - 57
models/ppt_english/ppt_english_grant.go

@@ -1,25 +1,34 @@
 package ppt_english
 
 import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
 // PptEnglishGrant Ppt授权表
+//type PptEnglishGrant struct {
+//	GrantId      int64     `orm:"column(grant_id);pk;auto" description:"自增序号"`
+//	PptId        int64     `description:"ppt ID"`
+//	DepartmentId int64     `description:"授权部门id"`
+//	GrantAdminId int64     `description:"授权部门id"`
+//	CreateTime   time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
+//}
+
 type PptEnglishGrant struct {
-	GrantId      int64     `orm:"column(grant_id);pk;auto" description:"自增序号"`
-	PptId        int64     `description:"ppt ID"`
-	DepartmentId int64     `description:"授权部门id"`
-	GrantAdminId int64     `description:"授权部门id"`
-	CreateTime   time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
+	GrantId      int64     `gorm:"primaryKey;column:grant_id;type:int(9) unsigned;not null"`              // 授权id
+	PptId        int64     `gorm:"index:idx_pptid;column:ppt_id;type:int(9) unsigned;not null;default:0"` // ppt_id
+	DepartmentId int64     `gorm:"column:department_id;type:int(10) unsigned;not null;default:0"`         // 授权部门id
+	GrantAdminId int64     `gorm:"column:grant_admin_id;type:int(9) unsigned;default:0"`                  // 授权的用户id
+	CreateTime   time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`           // 授权时间
 }
 
 // GetPPtGrantInfo 获取已经有权限的ppt列表
 func GetPPtGrantInfo(pptId int) (list []*PptEnglishGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM ppt_english_grant WHERE ppt_id=? `
-	_, err = o.Raw(sql, pptId).QueryRows(&list)
+	//_, err = o.Raw(sql, pptId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, pptId).Find(&list).Error
 	return
 }
 
@@ -39,101 +48,147 @@ type GrantPptReq struct {
 
 // MultiAddPptEnglishGrant 批量添加授权记录
 func MultiAddPptEnglishGrant(pptId int, list []*PptEnglishGrant) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//
+	//sql := "DELETE from ppt_english_grant where ppt_id=?"
+	//_, err = to.Raw(sql, pptId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 新增授权记录
+	//if len(list) > 0 {
+	//	_, tmpErr := to.InsertMulti(len(list), list)
+	//	if tmpErr != nil {
+	//		err = tmpErr
+	//		return
+	//	}
+	//}
+
+	tx := global.DmSQL["rddp"].Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
-
 	sql := "DELETE from ppt_english_grant where ppt_id=?"
-	_, err = to.Raw(sql, pptId).Exec()
+	err = tx.Exec(sql, pptId).Error
 	if err != nil {
 		return
 	}
 
 	// 新增授权记录
 	if len(list) > 0 {
-		_, tmpErr := to.InsertMulti(len(list), list)
-		if tmpErr != nil {
-			err = tmpErr
+		e := tx.CreateInBatches(list, utils.MultiAddNum).Error
+		if e != nil {
+			err = e
 			return
 		}
 	}
-
 	return
 }
 
 // DeletePptEnglishGrant 移除授权记录
 func DeletePptEnglishGrant(pptId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "DELETE from ppt_english_grant where ppt_id=?"
-	_, err = o.Raw(sql, pptId).Exec()
-
+	//_, err = o.Raw(sql, pptId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, pptId).Error
 	return
 }
 
 // PptEnglishInfoGrantItem Ppt信息记录(包含授权信息)
+//type PptEnglishInfoGrantItem struct {
+//	PptId         int       `orm:"column(ppt_id);pk;auto" description:"ppt的Id"`
+//	TemplateType  int       `description:"模版类型"`
+//	BackgroundImg string    `description:"背景图片"`
+//	Title         string    `description:"标题"`
+//	ReportType    string    `description:"报告类型"`
+//	PptDate       string    `description:"选择日期"`
+//	Content       string    `description:"ppt内容"`
+//	PptUrl        string    `description:"ppt下载地址"`
+//	PptxUrl       string    `description:"pptx下载地址"`
+//	CreateTime    time.Time `description:"创建时间"`
+//	ModifyTime    time.Time `description:"修改时间"`
+//	AdminId       int       `description:"系统用户id"`
+//	AdminRealName string    `description:"系统用户名称"`
+//	PptVersion    int8      `description:"是否ppt的旧版本;1:旧的,2:新的"`
+//	ReportId      int       `description:"关联的报告ID"`
+//	ReportCode    string    `description:"关联的报告code"`
+//	IsShare       int8      `description:"是否分享,0:不分享,1:分享"`
+//	PublishTime   time.Time `description:"发布时间"`
+//	PptPage       int       `description:"PPT页数"`
+//	//GrantId      int64     `orm:"column(grant_id);pk;auto" description:"自增序号"`
+//	//PptId        int64     `description:"ppt ID"`
+//	//DepartmentId int64     `description:"授权部门id"`
+//	//GrantAdminId int64     `description:"授权部门id"`
+//	//CreateTime   time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
+//}
+
 type PptEnglishInfoGrantItem struct {
-	PptId         int       `orm:"column(ppt_id);pk;auto" description:"ppt的Id"`
-	TemplateType  int       `description:"模版类型"`
-	BackgroundImg string    `description:"背景图片"`
-	Title         string    `description:"标题"`
-	ReportType    string    `description:"报告类型"`
-	PptDate       string    `description:"选择日期"`
-	Content       string    `description:"ppt内容"`
-	PptUrl        string    `description:"ppt下载地址"`
-	PptxUrl       string    `description:"pptx下载地址"`
-	CreateTime    time.Time `description:"创建时间"`
-	ModifyTime    time.Time `description:"修改时间"`
-	AdminId       int       `description:"系统用户id"`
-	AdminRealName string    `description:"系统用户名称"`
-	PptVersion    int8      `description:"是否ppt的旧版本;1:旧的,2:新的"`
-	ReportId      int       `description:"关联的报告ID"`
-	ReportCode    string    `description:"关联的报告code"`
-	IsShare       int8      `description:"是否分享,0:不分享,1:分享"`
-	PublishTime   time.Time `description:"发布时间"`
-	PptPage       int       `description:"PPT页数"`
-	//GrantId      int64     `orm:"column(grant_id);pk;auto" description:"自增序号"`
-	//PptId        int64     `description:"ppt ID"`
-	//DepartmentId int64     `description:"授权部门id"`
-	//GrantAdminId int64     `description:"授权部门id"`
-	//CreateTime   time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
+	PptId         int       `gorm:"column:ppt_id;type:int(11) unsigned;not null"`
+	TemplateType  int       `gorm:"column:template_type;type:int(9) unsigned;default:1"`        // 模板类型
+	BackgroundImg string    `gorm:"column:background_img;type:varchar(255);default:''"`         // 背景图
+	Title         string    `gorm:"column:title;type:varchar(255);default:''"`                  // 标题
+	ReportType    string    `gorm:"column:report_type;type:varchar(50);default:''"`             // 报告类型
+	PptDate       string    `gorm:"column:ppt_date;type:varchar(20);default:''"`                // 选择日期
+	PptUrl        string    `gorm:"column:ppt_url;type:varchar(255);default:''"`                // ppt地址
+	PptxUrl       string    `gorm:"column:pptx_url;type:varchar(255);default:''"`               // pptx地址
+	Content       string    `gorm:"column:content;type:mediumtext"`                             // ppt内容
+	CreateTime    time.Time `gorm:"column:create_time;type:datetime;default:CURRENT_TIMESTAMP"` // 创建时间
+	ModifyTime    time.Time `gorm:"column:modify_time;type:datetime;default:CURRENT_TIMESTAMP"` // 修改时间
+	AdminId       int       `gorm:"column:admin_id;type:int(11) unsigned;default:0"`            // 系统用户id
+	AdminRealName string    `gorm:"column:admin_real_name;type:varchar(100);default:''"`        // 系统用户名称
+	PptVersion    int8      `gorm:"column:ppt_version;type:tinyint(9) unsigned;default:2"`      // 是否ppt的旧版本;1:旧的,2:新的
+	ReportId      int       `gorm:"column:report_id;type:int(10) unsigned;not null;default:0"`  // 关联的报告ID
+	ReportCode    string    `gorm:"column:report_code;type:varchar(255);not null;default:''"`   // 关联的报告code
+	IsShare       int8      `gorm:"column:is_share;type:tinyint(9) unsigned;default:0"`         // 是否分享,0:不分享,1:分享
+	PublishTime   time.Time `gorm:"column:publish_time;type:datetime"`                          // 发布时间
+	PptPage       int       `gorm:"column:ppt_page;type:int(10)"`                               // PPT总页数
 }
 
 // GetAllGrantList 获取已经有权限的ppt列表
 func GetAllGrantList(sysUserId int) (list []*PptEnglishInfoGrantItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT a.* FROM ppt_english a JOIN ppt_english_grant b on a.ppt_id=b.ppt_id 
  WHERE a.admin_id=? OR b.department_id=1 OR b.grant_admin_id=? GROUP BY a.ppt_id`
-	_, err = o.Raw(sql, sysUserId, sysUserId).QueryRows(&list)
+	//_, err = o.Raw(sql, sysUserId, sysUserId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, sysUserId, sysUserId).Find(&list).Error
 	return
 }
 
 // GetGrantList 获取我共享出去/别人共享给我的的ppt列表
 func GetGrantList(condition string, pars []interface{}) (list []*PptEnglishInfoGrantItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT a.* FROM ppt_english a JOIN ppt_english_grant b on a.ppt_id=b.ppt_id 
  WHERE 1=1 `
 	sql += condition
 
 	sql += ` GROUP BY a.ppt_id ORDER BY a.modify_time DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&list)
-
+	//_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&list).Error
 	return
 }
 
 // GetPPtGrantConf 根据ppt_id和操作人获取ppt权限配置
 func GetPPtGrantConf(pptId, sysUserId int) (item *PptEnglishInfoGrantItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT a.* FROM ppt_english a JOIN ppt_english_grant b on a.ppt_id=b.ppt_id 
  WHERE a.ppt_id=?  AND (b.department_id=1 OR b.grant_admin_id=?) GROUP BY a.ppt_id`
-	err = o.Raw(sql, pptId, sysUserId).QueryRow(&item)
+	//err = o.Raw(sql, pptId, sysUserId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pptId, sysUserId).First(&item).Error
 	return
 }

+ 94 - 70
models/ppt_english/ppt_english_group.go

@@ -1,158 +1,182 @@
 package ppt_english
 
 import (
+	"eta_gn/eta_api/global"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
+//type PptEnglishGroup struct {
+//	GroupId    int64     `orm:"column(group_id);pk;auto" description:"ppt目录ID"`
+//	GroupName  string    `description:"目录名称"`
+//	AdminId    int       `description:"目录创建者账号ID"`
+//	IsShare    int8      `description:"是否共享,0私有,1共享"`
+//	GroupSort  int64     `description:"目录排序标识"`
+//	IsShareAdd int8      `description:"是否是通过单个ppt共享生成的目录,0不是,1-是"`
+//	CreateTime time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
+//	ModifyTime time.Time `orm:"auto_now;type(datetime)" description:"修改时间"`
+//	ShareTime  time.Time `description:"分享时间"`
+//}
+
 type PptEnglishGroup struct {
-	GroupId    int64     `orm:"column(group_id);pk;auto" description:"ppt目录ID"`
-	GroupName  string    `description:"目录名称"`
-	AdminId    int       `description:"目录创建者账号ID"`
-	IsShare    int8      `description:"是否共享,0私有,1共享"`
-	GroupSort  int64     `description:"目录排序标识"`
-	IsShareAdd int8      `description:"是否是通过单个ppt共享生成的目录,0不是,1-是"`
-	CreateTime time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
-	ModifyTime time.Time `orm:"auto_now;type(datetime)" description:"修改时间"`
-	ShareTime  time.Time `description:"分享时间"`
+	GroupId    int64     `gorm:"primaryKey;column:group_id;type:int(11) unsigned;not null"`           // ppt目录Id
+	GroupName  string    `gorm:"column:group_name;type:varchar(100);not null"`                        // 目录名称
+	AdminId    int       `gorm:"column:admin_id;type:int(11);not null"`                               // 目录创建者账号ID
+	IsShare    int8      `gorm:"column:is_share;type:tinyint(2);not null;default:0"`                  // 是否共享,0私有,1共享
+	GroupSort  int64     `gorm:"column:group_sort;type:int(11);not null"`                             // 目录排序标识
+	CreateTime time.Time `gorm:"column:create_time;type:datetime;not null;default:CURRENT_TIMESTAMP"` // 创建时间
+	ModifyTime time.Time `gorm:"column:modify_time;type:datetime;not null;default:CURRENT_TIMESTAMP"` // 修改时间
+	ShareTime  time.Time `gorm:"column:share_time;type:datetime"`                                     // 共享时间
+	IsShareAdd int8      `gorm:"column:is_share_add;type:tinyint(2);not null;default:0"`              // 是否是通过单个ppt共享生成的目录,0不是,1-是
 }
 
 // GetPrivatePptGroups 获取私有目录
-func GetPrivatePptGroups(adminId int) (list []*PptEnglishGroup, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := "select * from ppt_english_group where admin_id=? order by group_sort asc, group_id asc"
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
-	return
-}
+//func GetPrivatePptGroups(adminId int) (list []*PptEnglishGroup, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := "select * from ppt_english_group where admin_id=? order by group_sort asc, group_id asc"
+//	_, err = o.Raw(sql, adminId).QueryRows(&list)
+//	return
+//}
 
 // GetPrivatePptGroupsByAdminId 获取用户自己的私有目录
 func GetPrivatePptGroupsByAdminId(adminId int) (list []*PptEnglishGroup, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select * from ppt_english_group where admin_id=? AND is_share_add=0 order by group_sort asc, group_id asc"
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
+	//_, err = o.Raw(sql, adminId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, adminId).Find(&list).Error
 	return
 }
 
 // GetPublicPptGroups 获取ppt公共目录
-func GetPublicPptGroups() (list []*PptEnglishGroup, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := "select * from ppt_english_group where is_share=1 order by share_time asc, group_id asc"
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetPublicPptGroups() (list []*PptEnglishGroup, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := "select * from ppt_english_group where is_share=1 order by share_time asc, group_id asc"
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // GetPptGroupByName 根据目录名称查询
 func GetPptGroupByName(groupName string, adminId int) (item *PptEnglishGroup, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select * from ppt_english_group where admin_id=? and group_name=?"
-	err = o.Raw(sql, adminId, groupName).QueryRow(&item)
+	//err = o.Raw(sql, adminId, groupName).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, adminId, groupName).First(&item).Error
 	return
 }
 
-// GetPptGroupById 根据目录Id查询
+// GetPptGroupByGroupIdAdminId 根据目录Id查询
 func GetPptGroupByGroupIdAdminId(groupId int64, adminId int) (item *PptEnglishGroup, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select * from ppt_english_group where admin_id=? and group_id=?"
-	err = o.Raw(sql, adminId, groupId).QueryRow(&item)
+	//err = o.Raw(sql, adminId, groupId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, adminId, groupId).First(&item).Error
 	return
 }
 
 // GetPptGroupByGroupId 根据目录Id查询
 func GetPptGroupByGroupId(groupId int64) (item *PptEnglishGroup, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select * from ppt_english_group where group_id=?"
-	err = o.Raw(sql, groupId).QueryRow(&item)
+	//err = o.Raw(sql, groupId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, groupId).First(&item).Error
 	return
 }
 
 // AddPptGroup 新增目录
 func AddPptGroup(item *PptEnglishGroup) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("rddp")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["rddp"].Create(item).Error
+	lastId = int64(item.GroupId)
 	return
 }
 
 // DeletePptGroup 删除单个ppt目录
 func DeletePptGroup(groupId int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM ppt_english_group WHERE group_id=? `
-	_, err = o.Raw(sql, groupId).Exec()
+	//_, err = o.Raw(sql, groupId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, groupId).Error
 	return
 }
 
 // DeletePptGroupByGroupIds 删除单个ppt目录
 func DeletePptGroupByGroupIds(groupIds string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM ppt_english_group WHERE group_id in  ` + groupIds
-	_, err = o.Raw(sql).Exec()
+	//_, err = o.Raw(sql).Exec()
+	err = global.DmSQL["rddp"].Exec(sql).Error
 	return
 }
 
 // Update 更新ppt目录基础信息
 func (item *PptEnglishGroup) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(item, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(item).Error
 	return
 }
 
 // MoveUpGroupBySort 往上移动目录
 func MoveUpGroupBySort(nextSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `update ppt_english_group set group_sort = group_sort + 1 where group_sort >= ? and group_sort< ?`
-	_, err = o.Raw(sql, nextSort, currentSort).Exec()
+	//_, err = o.Raw(sql, nextSort, currentSort).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, nextSort, currentSort).Error
 	return
 }
 
 // MoveDownGroupBySort 往下移动目录
 func MoveDownGroupBySort(prevSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `update ppt_english_group set group_sort = group_sort - 1 where group_sort <= ? and group_sort> ? `
-	_, err = o.Raw(sql, prevSort, currentSort).Exec()
+	//_, err = o.Raw(sql, prevSort, currentSort).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, prevSort, currentSort).Error
 	return
 }
 
 // GetPptGroupNamesByAdminId 获取当前目录的所有名称
 func GetPptGroupNamesByAdminId(adminId int) (names []string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select group_name from ppt_english_group  where admin_id = ?"
-	_, err = o.Raw(sql, adminId).QueryRows(&names)
+	//_, err = o.Raw(sql, adminId).QueryRows(&names)
+	err = global.DmSQL["rddp"].Raw(sql, adminId).Scan(&names).Error
 	return
 }
 
 // GetPptGroupIdAndGroupNameByAdminId 查找分组名称和标识
 func GetPptGroupIdAndGroupNameByAdminId(adminId int) (list []*RespPptGroupName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := "select group_id, group_name from ppt_english_group where admin_id = ? and is_share_add != 1 order by group_sort asc, group_id asc"
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
+	//_, err = o.Raw(sql, adminId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, adminId).Find(&list).Error
 	return
 }
 
 // AddPptGroupMappingMulti 批量新增ppt和目录的映射关系
-func AddPptGroupMulti(list []*PptEnglishGroup) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(1, list)
-	return
-}
+//func AddPptGroupMulti(list []*PptEnglishGroup) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	_, err = o.InsertMulti(1, list)
+//	return
+//}
 
 // UpdatePptGroupSortMulti 批量更新初始排序标识
-func UpdatePptGroupSortMulti(groupIds []int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	p, err := o.Raw("UPDATE ppt_english_group SET group_sort = group_id WHERE group_id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close() // 别忘记关闭 statement
-	}()
-	for _, v := range groupIds {
-		_, err = p.Exec(v)
-		if err != nil {
-			return
-		}
-	}
-	return
-}
+//func UpdatePptGroupSortMulti(groupIds []int64) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	p, err := o.Raw("UPDATE ppt_english_group SET group_sort = group_id WHERE group_id = ?").Prepare()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		_ = p.Close() // 别忘记关闭 statement
+//	}()
+//	for _, v := range groupIds {
+//		_, err = p.Exec(v)
+//		if err != nil {
+//			return
+//		}
+//	}
+//	return
+//}
 
 type ReqAddPptGroup struct {
 	GroupName string `description:"目录名称"`

+ 120 - 73
models/ppt_english/ppt_english_group_mapping.go

@@ -1,118 +1,154 @@
 package ppt_english
 
 import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
+	"fmt"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
-// ppt目录和ppt 映射表
+// PptEnglishGroupMapping ppt目录和ppt 映射表
+//type PptEnglishGroupMapping struct {
+//	GroupPptId      int64     `orm:"column(group_ppt_id);pk;auto" description:"自增序号"`
+//	GroupId         int64     `description:"ppt目录ID"`
+//	PptSort         int64     `description:"Ppt的排序"`
+//	PptId           int64     `description:"ppt ID"`
+//	CreateTime      time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
+//	ModifyTime      time.Time `orm:"auto_now;type(datetime)" description:"修改时间"`
+//	AdminId         int       `description:"移动ppt到该目录的系统用户id"`
+//	AdminRealName   string    `description:"系统用户名称"`
+//	ChildGroupPptId int64     `description:"设置共享后的新映射ID"`
+//	IsMoved         bool      `description:"true表示改PPT被人为移动过"`
+//}
+
 type PptEnglishGroupMapping struct {
-	GroupPptId      int64     `orm:"column(group_ppt_id);pk;auto" description:"自增序号"`
-	GroupId         int64     `description:"ppt目录ID"`
-	PptSort         int64     `description:"Ppt的排序"`
-	PptId           int64     `description:"ppt ID"`
-	CreateTime      time.Time `orm:"auto_now_add;type(datetime)" description:"创建时间"`
-	ModifyTime      time.Time `orm:"auto_now;type(datetime)" description:"修改时间"`
-	AdminId         int       `description:"移动ppt到该目录的系统用户id"`
-	AdminRealName   string    `description:"系统用户名称"`
-	ChildGroupPptId int64     `description:"设置共享后的新映射ID"`
-	IsMoved         bool      `description:"true表示改PPT被人为移动过"`
+	GroupPptId      int64     `gorm:"primaryKey;column:group_ppt_id;type:int(11) unsigned;not null"`       // 自增序号
+	GroupId         int64     `gorm:"column:group_id;type:int(11) unsigned;not null"`                      // ppt目录Id
+	PptSort         int64     `gorm:"column:ppt_sort;type:int(11);not null"`                               // Ppt的排序
+	PptId           int64     `gorm:"column:ppt_id;type:int(11) unsigned;not null"`                        // ppt Id
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime;not null;default:CURRENT_TIMESTAMP"` // 创建时间
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime;not null;default:CURRENT_TIMESTAMP"` // 修改时间
+	AdminId         int       `gorm:"column:admin_id;type:int(11) unsigned;not null;default:0"`            // 移动ppt到该目录的系统用户id
+	AdminRealName   string    `gorm:"column:admin_real_name;type:varchar(100);default:''"`                 // 系统用户名称
+	ChildGroupPptId int64     `gorm:"column:child_group_ppt_id;type:int(11);not null;default:0"`           // 设置共享后的新映射ID
+	IsMoved         bool      `gorm:"column:is_moved;type:tinyint(1)"`                                     // 1表示人为移动过
 }
 
 // AddPptGroupMapping 新增目录和ppt的映射关系
 func AddPptGroupMapping(item *PptEnglishGroupMapping) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("rddp")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["rddp"].Create(item).Error
+	lastId = int64(item.GroupPptId)
 	return
 }
 
 // GetPptMappingCountByGroupId 查询目录下,ppt的个数
 func GetPptMappingCountByGroupId(groupId int64) (total int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `select count(*) from ppt_english_group_mapping where group_id=?`
-	err = o.Raw(sql, groupId).QueryRow(&total)
+	//err = o.Raw(sql, groupId).QueryRow(&total)
+	err = global.DmSQL["rddp"].Raw(sql, groupId).Scan(&total).Error
 	return
 }
 
 // GetPptMappingListByGroupId 查询目录下,ppt列表
 func GetPptMappingListByGroupId(groupId int64) (list []*PptEnglishGroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_english_group_mapping where group_id=? order by ppt_sort asc, group_ppt_id asc `
-	_, err = o.Raw(sql, groupId).QueryRows(&list)
+	//_, err = o.Raw(sql, groupId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, groupId).Find(&list).Error
 	return
 }
 
 // GetPptMappingListByGroupIds 根据分组ID查找
 func GetPptMappingListByGroupIds(groupIds []int64) (list []*PptEnglishGroupMapping, err error) {
-	_, err = orm.NewOrmUsingDB("rddp").
-		QueryTable("ppt_english_group_mapping").
-		Filter("group_id__in", groupIds).
-		OrderBy("-ppt_sort", "group_ppt_id").
-		All(&list)
-
+	//_, err = orm.NewOrmUsingDB("rddp").
+	//	QueryTable("ppt_english_group_mapping").
+	//	Filter("group_id__in", groupIds).
+	//	OrderBy("-ppt_sort", "group_ppt_id").
+	//	All(&list)
+	if len(groupIds) == 0 {
+		return
+	}
+	sql := fmt.Sprintf(`SELECT * FROM ppt_english_group_mapping WHERE group_id IN (%s) ORDER BY ppt_sort ASC, group_ppt_id DESC`, utils.GetOrmInReplace(len(groupIds)))
+	err = global.DmSQL["rddp"].Raw(sql, groupIds).Find(&list).Error
 	return
 }
 
 // GetPptMappingByPptId 查询目录下, pptId对应的目录映射关系
 func GetPptMappingByPptId(pptId int64) (item *PptEnglishGroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := ` select * from ppt_english_group_mapping where ppt_id=? `
-	err = o.Raw(sql, pptId).QueryRow(&item)
+	//err = o.Raw(sql, pptId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pptId).First(&item).Error
 	return
 }
 
-// GetPptMappingListByGroupId 查询目录下,ppt列表, 降序排列
+// GetPptMappingListByGroupIdDesc 查询目录下,ppt列表, 降序排列
 func GetPptMappingListByGroupIdDesc(groupId int64) (list []*PptEnglishGroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_english_group_mapping where group_id=? order by ppt_sort desc, group_ppt_id desc `
-	_, err = o.Raw(sql, groupId).QueryRows(&list)
+	//_, err = o.Raw(sql, groupId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, groupId).Find(&list).Error
 	return
 }
 
 // GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系
 func GetPptMappingByGroupPptId(groupPptId int64, adminId int) (item *PptEnglishGroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `select * from ppt_english_group_mapping where group_ppt_id=? and admin_id=?`
-	err = o.Raw(sql, groupPptId, adminId).QueryRow(&item)
+	//err = o.Raw(sql, groupPptId, adminId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, groupPptId, adminId).First(&item).Error
 	return
 }
 
-// GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系数量
+// GetPptMappingCountByGroupPptId 查询根据映射ID,查询单个映射关系数量
 func GetPptMappingCountByGroupPptId(groupPptId int64, adminId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `select COUNT(*) AS count from ppt_english_group_mapping where group_ppt_id=? and admin_id=?`
-	err = o.Raw(sql, groupPptId, adminId).QueryRow(&count)
+	//err = o.Raw(sql, groupPptId, adminId).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, groupPptId, adminId).Scan(&count).Error
 	return
 }
 
 // Update 更新ppt目录映射的基本信息
 func (item *PptEnglishGroupMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(item, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(item).Error
 	return
 }
 
 // AddPptGroupMappingMulti 批量新增ppt和目录的映射关系
 func AddPptGroupMappingMulti(list []*PptEnglishGroupMapping) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(1, list)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(1, list)
+	err = global.DmSQL["rddp"].CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
 // UpdatePptGroupMappingSortMulti 批量更新初始排序标识
 func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	p, err := o.Raw("UPDATE ppt_english_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close() // 别忘记关闭 statement
-	}()
+	//o := orm.NewOrmUsingDB("rddp")
+	//p, err := o.Raw("UPDATE ppt_english_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?").Prepare()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	_ = p.Close() // 别忘记关闭 statement
+	//}()
+	//for _, v := range groupPptIds {
+	//	_, err = p.Exec(v)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+	sql := fmt.Sprintf(`UPDATE ppt_english_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?`)
 	for _, v := range groupPptIds {
-		_, err = p.Exec(v)
-		if err != nil {
+		e := global.DmSQL["rddp"].Exec(sql, v).Error
+		if e != nil {
+			err = fmt.Errorf("remove exec err: %v", e)
 			return
 		}
 	}
@@ -121,59 +157,70 @@ func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
 
 // DeletePptGroupMapping 删除ppt目录
 func DeletePptGroupMapping(groupId int64, adminId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM ppt_english_group_mapping WHERE group_ppt_id=? and admin_id=? `
-	_, err = o.Raw(sql, groupId, adminId).Exec()
+	//_, err = o.Raw(sql, groupId, adminId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, groupId, adminId).Error
 	return
 }
 
 // DeletePptGroupMappingByPptId 删除ppt目录
 func DeletePptGroupMappingByPptId(pptId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM ppt_english_group_mapping WHERE ppt_id=?`
-	_, err = o.Raw(sql, pptId).Exec()
+	//_, err = o.Raw(sql, pptId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, pptId).Error
 	return
 }
 
 // MoveUpGroupPptBySort 往上移动ppt
 func MoveUpGroupPptBySort(groupId, nextSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `update ppt_english_group_mapping set ppt_sort = ppt_sort + 1 where group_id=? and ppt_sort >= ? and ppt_sort< ?`
-	_, err = o.Raw(sql, groupId, nextSort, currentSort).Exec()
+	//_, err = o.Raw(sql, groupId, nextSort, currentSort).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, groupId, nextSort, currentSort).Error
 	return
 }
 
 // MoveDownGroupPptBySort 往下移动ppt
 func MoveDownGroupPptBySort(groupId, prevSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `update ppt_english_group_mapping set ppt_sort = ppt_sort - 1 where group_id=? and ppt_sort <= ? and ppt_sort> ? `
-	_, err = o.Raw(sql, groupId, prevSort, currentSort).Exec()
+	//_, err = o.Raw(sql, groupId, prevSort, currentSort).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, groupId, prevSort, currentSort).Error
 	return
 }
 
 // GetGroupPptByPptId 根据pptID 查找各个目录下的ppt
 func GetGroupPptByPptId(pptId int) (list []*PptEnglishGroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `select * from ppt_english_group_mapping where ppt_id=?`
-	_, err = o.Raw(sql, pptId).QueryRows(&list)
+	//_, err = o.Raw(sql, pptId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, pptId).Find(&list).Error
 	return
 }
 
 // GetPublicGroupPptByPptIds 根据pptid查询公共目录下的ppt
 func GetPublicGroupPptByPptIds(pptIds []string) (list []*PptEnglishGroupMapping, err error) {
-	qb, _ := orm.NewQueryBuilder("mysql")
-	// 构建查询对象
-	qb.Select("p.*").
-		From("ppt_english_group as g").
-		InnerJoin("ppt_english_group_mapping as p").On("g.group_id = p.group_id").
-		Where("g.is_share = 1 and p.ppt_id").In(pptIds...).
-		OrderBy("g.share_time asc, p.ppt_sort asc")
-
-	// 导出 SQL 语句
-	sql := qb.String()
-
-	// 执行 SQL 语句
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql).QueryRows(&list)
+	//qb, _ := orm.NewQueryBuilder("mysql")
+	//// 构建查询对象
+	//qb.Select("p.*").
+	//	From("ppt_english_group as g").
+	//	InnerJoin("ppt_english_group_mapping as p").On("g.group_id = p.group_id").
+	//	Where("g.is_share = 1 and p.ppt_id").In(pptIds...).
+	//	OrderBy("g.share_time asc, p.ppt_sort asc")
+	//
+	//// 导出 SQL 语句
+	//sql := qb.String()
+	//
+	//// 执行 SQL 语句
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Raw(sql).QueryRows(&list)
+
+	if len(pptIds) == 0 {
+		return
+	}
+	sql := fmt.Sprintf(`SELECT p.* FROM ppt_english_group AS g INNER JOIN ppt_english_group_mapping AS p ON g.group_id = p.group_id WHERE g.is_share = 1 AND p.ppt_id IN (%s) ORDER BY g.share_time ASC, p.ppt_sort ASC`, utils.GetOrmInReplace(len(pptIds)))
+	err = global.DmSQL["rddp"].Raw(sql, pptIds).Find(&list).Error
 	return
 }

+ 33 - 38
models/ppt_english/report_ppt_english_img.go

@@ -1,43 +1,38 @@
 package ppt_english
 
-import (
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
 // ReportPptEnglishImg Ppt转报告的图片记录表
-type ReportPptEnglishImg struct {
-	ReportPptImgId  int       `orm:"column(report_ppt_img_id);pk;auto" description:"自增id"`
-	PptId           int       `description:"ppt的id"`
-	ReportId        int       `description:"关联的报告ID"`
-	ReportChapterId int       `description:"关联的报告章节ID"`
-	ImgUrl          string    `description:"ppt图片地址"`
-	CreateTime      time.Time `description:"创建时间"`
-}
+//type ReportPptEnglishImg struct {
+//	ReportPptImgId  int       `orm:"column(report_ppt_img_id);pk;auto" description:"自增id"`
+//	PptId           int       `description:"ppt的id"`
+//	ReportId        int       `description:"关联的报告ID"`
+//	ReportChapterId int       `description:"关联的报告章节ID"`
+//	ImgUrl          string    `description:"ppt图片地址"`
+//	CreateTime      time.Time `description:"创建时间"`
+//}
 
 // AddAndEditMultiReportPptEnglishImg 批量添加Ppt转报告的图片记录
-func AddAndEditMultiReportPptEnglishImg(pptId int, reportPptEnglishImgList []*ReportPptEnglishImg) (err error) {
-	if len(reportPptEnglishImgList) < 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("rddp")
-
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	sql := ` DELETE FROM report_ppt_english_img WHERE ppt_id = ?`
-	_, err = to.Raw(sql, pptId).Exec()
-	if err != nil {
-		return
-	}
-	_, err = to.InsertMulti(len(reportPptEnglishImgList), reportPptEnglishImgList)
-	return
-}
+//func AddAndEditMultiReportPptEnglishImg(pptId int, reportPptEnglishImgList []*ReportPptEnglishImg) (err error) {
+//	if len(reportPptEnglishImgList) < 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("rddp")
+//
+//	to, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = to.Rollback()
+//		} else {
+//			_ = to.Commit()
+//		}
+//	}()
+//	sql := ` DELETE FROM report_ppt_english_img WHERE ppt_id = ?`
+//	_, err = to.Raw(sql, pptId).Exec()
+//	if err != nil {
+//		return
+//	}
+//	_, err = to.InsertMulti(len(reportPptEnglishImgList), reportPptEnglishImgList)
+//	return
+//}

+ 57 - 26
models/report/report_chapter_grant.go

@@ -1,18 +1,25 @@
 package report
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ReportChapterGrant
 // @Description: 报告章节授权用户表
+//type ReportChapterGrant struct {
+//	GrantId         int       `orm:"column(grant_id)"` // 授权id
+//	ReportChapterId int       `description:"报告章节id"`
+//	AdminId         int       `description:"授权的用户id"`
+//	CreateTime      time.Time `description:"授权时间"`
+//}
+
 type ReportChapterGrant struct {
-	GrantId         int       `orm:"column(grant_id)"` // 授权id
-	ReportChapterId int       `description:"报告章节id"`
-	AdminId         int       `description:"授权的用户id"`
-	CreateTime      time.Time `description:"授权时间"`
+	GrantId         int       `gorm:"primaryKey;column:grant_id;type:int(9) unsigned;not null"`                                    // 授权id
+	ReportChapterId int       `gorm:"index:idx_report_chapterid;column:report_chapter_id;type:int(9) unsigned;not null;default:0"` // 报告章节id
+	AdminId         int       `gorm:"column:admin_id;type:int(9) unsigned;default:0"`                                              // 授权的用户id
+	CreateTime      time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`                                 // 授权时间
 }
 
 // MultiAddReportChapterGrantGrant
@@ -24,30 +31,54 @@ type ReportChapterGrant struct {
 // @param list []*ReportChapterGrant
 // @return err error
 func (m ReportChapterGrant) MultiAddReportChapterGrantGrant(reportChapterId int, list []*ReportChapterGrant) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//
+	//sql := "DELETE from report_chapter_grant where report_chapter_id=?"
+	//_, err = to.Raw(sql, reportChapterId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 新增授权记录
+	//if len(list) > 0 {
+	//	_, tmpErr := to.InsertMulti(500, list)
+	//	if tmpErr != nil {
+	//		err = tmpErr
+	//		return
+	//	}
+	//}
+
+	tx := global.DmSQL["rddp"].Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	sql := "DELETE from report_chapter_grant where report_chapter_id=?"
-	_, err = to.Raw(sql, reportChapterId).Exec()
+	err = tx.Exec(sql, reportChapterId).Error
 	if err != nil {
 		return
 	}
 
 	// 新增授权记录
 	if len(list) > 0 {
-		_, tmpErr := to.InsertMulti(500, list)
-		if tmpErr != nil {
-			err = tmpErr
+		e := tx.CreateInBatches(list, utils.MultiAddNum).Error
+		if e != nil {
+			err = e
 			return
 		}
 	}
@@ -64,10 +95,10 @@ func (m ReportChapterGrant) MultiAddReportChapterGrantGrant(reportChapterId int,
 // @return list []*ReportChapterGrant
 // @return err error
 func (m ReportChapterGrant) GetGrantListById(reportChapterId int) (list []*ReportChapterGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_chapter_grant WHERE report_chapter_id=? `
-	_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportChapterId).Find(&list).Error
 	return
 }
 
@@ -85,10 +116,10 @@ func (m ReportChapterGrant) GetGrantListByIdList(reportChapterIdList []int) (lis
 		return
 	}
 
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_chapter_grant WHERE report_chapter_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, reportChapterIdList).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportChapterIdList).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportChapterIdList).Find(&list).Error
 	return
 }
 
@@ -102,9 +133,9 @@ func (m ReportChapterGrant) GetGrantListByIdList(reportChapterIdList []int) (lis
 // @return item *ReportGrant
 // @return err error
 func (m ReportChapterGrant) GetGrantByIdAndAdmin(reportChapterId, sysUserId int) (item *ReportGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_chapter_grant WHERE report_chapter_id = ? AND admin_id = ? `
-	err = o.Raw(sql, reportChapterId, sysUserId).QueryRow(&item)
-
+	//err = o.Raw(sql, reportChapterId, sysUserId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, reportChapterId, sysUserId).First(&item).Error
 	return
 }

+ 91 - 52
models/report/report_chapter_permission_mapping.go

@@ -1,18 +1,25 @@
 package report
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ReportChapterPermissionMapping
 // @Description: 报告章节的权限关系表
+//type ReportChapterPermissionMapping struct {
+//	ReportChapterPermissionMappingId int `orm:"column(report_chapter_permission_mapping_id)"`
+//	ReportChapterId                  int `description:"报告章节的id"` // 报告章节的id
+//	ChartPermissionId                int `description:"权限id"`    // 权限id
+//	CreateTime                       time.Time
+//}
+
 type ReportChapterPermissionMapping struct {
-	ReportChapterPermissionMappingId int `orm:"column(report_chapter_permission_mapping_id)"`
-	ReportChapterId                  int `description:"报告章节的id"` // 报告章节的id
-	ChartPermissionId                int `description:"权限id"`    // 权限id
-	CreateTime                       time.Time
+	ReportChapterPermissionMappingId int       `gorm:"primaryKey;column:report_chapter_permission_mapping_id;type:int(11) unsigned;not null"`
+	ReportChapterId                  int       `gorm:"index:idx_chapter_id;column:report_chapter_id;type:int(11) unsigned;default:0"` // 报告章节的id
+	ChartPermissionId                int       `gorm:"column:chart_permission_id;type:int(11) unsigned;default:0"`                    // 权限id
+	CreateTime                       time.Time `gorm:"column:create_time;type:datetime"`
 }
 
 // MultiAddReportChapterPermissionMappingPermission
@@ -24,34 +31,57 @@ type ReportChapterPermissionMapping struct {
 // @param list []*ReportChapterPermissionMapping
 // @return err error
 func (m ReportChapterPermissionMapping) MultiAddReportChapterPermissionMappingPermission(reportChapterId int, list []*ReportChapterPermissionMapping) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//
+	//sql := "DELETE from report_chapter_permission_mapping where report_chapter_id=?"
+	//_, err = to.Raw(sql, reportChapterId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 新增品种权限记录
+	//if len(list) > 0 {
+	//	_, tmpErr := to.InsertMulti(500, list)
+	//	if tmpErr != nil {
+	//		err = tmpErr
+	//		return
+	//	}
+	//}
+
+	tx := global.DmSQL["rddp"].Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	sql := "DELETE from report_chapter_permission_mapping where report_chapter_id=?"
-	_, err = to.Raw(sql, reportChapterId).Exec()
+	err = tx.Exec(sql, reportChapterId).Error
 	if err != nil {
 		return
 	}
 
-	// 新增品种权限记录
+	// 新增授权记录
 	if len(list) > 0 {
-		_, tmpErr := to.InsertMulti(500, list)
-		if tmpErr != nil {
-			err = tmpErr
+		e := tx.CreateInBatches(list, utils.MultiAddNum).Error
+		if e != nil {
+			err = e
 			return
 		}
 	}
-
 	return
 }
 
@@ -64,21 +94,29 @@ func (m ReportChapterPermissionMapping) MultiAddReportChapterPermissionMappingPe
 // @return list []*ReportChapterPermissionMapping
 // @return err error
 func (m ReportChapterPermissionMapping) GetPermissionListById(reportChapterId int) (list []*ReportChapterPermissionMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_chapter_permission_mapping WHERE report_chapter_id=? `
-	_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportChapterId).Find(&list).Error
 	return
 }
 
 // ReportChapterPermissionItem
 // @Description: 报告章节的权限关系表(带有品种名称)
+//type ReportChapterPermissionItem struct {
+//	ReportChapterPermissionMappingId int    `orm:"column(report_chapter_permission_mapping_id)"`
+//	ReportChapterId                  int    `description:"报告章节的id"`
+//	ChartPermissionId                int    `description:"权限id"`
+//	ChartPermissionName              string `description:"品种名称"`
+//	CreateTime                       time.Time
+//}
+
 type ReportChapterPermissionItem struct {
-	ReportChapterPermissionMappingId int    `orm:"column(report_chapter_permission_mapping_id)"`
-	ReportChapterId                  int    `description:"报告章节的id"`
-	ChartPermissionId                int    `description:"权限id"`
-	ChartPermissionName              string `description:"品种名称"`
-	CreateTime                       time.Time
+	ReportChapterPermissionMappingId int       `gorm:"column:report_chapter_permission_mapping_id;type:int(11) unsigned;not null"`
+	ReportChapterId                  int       `gorm:"column:report_chapter_id;type:int(11) unsigned;default:0"`   // 报告章节的id
+	ChartPermissionId                int       `gorm:"column:chart_permission_id;type:int(11) unsigned;default:0"` // 权限id
+	ChartPermissionName              string    `gorm:"chart_permission_name"`
+	CreateTime                       time.Time `gorm:"column:create_time;type:datetime"`
 }
 
 // GetPermissionItemListById
@@ -90,11 +128,11 @@ type ReportChapterPermissionItem struct {
 // @return list []*ReportChapterPermissionMapping
 // @return err error
 func (m ReportChapterPermissionMapping) GetPermissionItemListById(reportChapterId int) (list []*ReportChapterPermissionItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT a.*,b.chart_permission_name FROM report_chapter_permission_mapping AS a 
          JOIN chart_permission AS b on a.chart_permission_id=b.chart_permission_id WHERE report_chapter_id=? `
-	_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportChapterId).Find(&list).Error
 	return
 }
 
@@ -112,10 +150,10 @@ func (m ReportChapterPermissionMapping) GetPermissionListByIdList(reportChapterI
 		return
 	}
 
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_chapter_permission_mapping WHERE report_chapter_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, reportChapterIdList).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportChapterIdList).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportChapterIdList).Find(&list).Error
 	return
 }
 
@@ -127,26 +165,27 @@ func (m ReportChapterPermissionMapping) GetPermissionListByIdList(reportChapterI
 // @param list []*ReportChapterPermissionMapping
 // @return err error
 func (m ReportChapterPermissionMapping) MultiAdd(list []*ReportChapterPermissionMapping) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
+	//o := orm.NewOrmUsingDB("rddp")
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
 
 	// 新增品种权限记录
-	if len(list) > 0 {
-		_, err = to.InsertMulti(500, list)
-		if err != nil {
-			return
-		}
-	}
-
+	//if len(list) > 0 {
+	//	_, err = to.InsertMulti(500, list)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+
+	err = global.DmSQL["rddp"].CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }

+ 60 - 30
models/report/report_grant.go

@@ -1,18 +1,25 @@
 package report
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ReportGrant
 // @Description: 报告授权用户表
+//type ReportGrant struct {
+//	GrantId    int       `orm:"column(grant_id)"` // 授权id
+//	ReportId   int       `description:"报告id"`
+//	AdminId    int       `description:"授权的用户id"`
+//	CreateTime time.Time `description:"授权时间"`
+//}
+
 type ReportGrant struct {
-	GrantId    int       `orm:"column(grant_id)"` // 授权id
-	ReportId   int       `description:"报告id"`
-	AdminId    int       `description:"授权的用户id"`
-	CreateTime time.Time `description:"授权时间"`
+	GrantId    int       `gorm:"primaryKey;column:grant_id;type:int(9) unsigned;not null"`                    // 授权id
+	ReportId   int       `gorm:"index:idx_reportid;column:report_id;type:int(9) unsigned;not null;default:0"` // 报告id
+	AdminId    int       `gorm:"column:admin_id;type:int(9) unsigned;default:0"`                              // 授权的用户id
+	CreateTime time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`                 // 授权时间
 }
 
 // MultiAddReportGrantGrant
@@ -24,34 +31,57 @@ type ReportGrant struct {
 // @param list []*ReportGrant
 // @return err error
 func (m ReportGrant) MultiAddReportGrantGrant(reportId int, list []*ReportGrant) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//
+	//sql := "DELETE from report_grant where report_id=?"
+	//_, err = to.Raw(sql, reportId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 新增授权记录
+	//if len(list) > 0 {
+	//	_, tmpErr := to.InsertMulti(500, list)
+	//	if tmpErr != nil {
+	//		err = tmpErr
+	//		return
+	//	}
+	//}
+
+	tx := global.DmSQL["rddp"].Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	sql := "DELETE from report_grant where report_id=?"
-	_, err = to.Raw(sql, reportId).Exec()
+	err = tx.Exec(sql, reportId).Error
 	if err != nil {
 		return
 	}
 
 	// 新增授权记录
 	if len(list) > 0 {
-		_, tmpErr := to.InsertMulti(500, list)
-		if tmpErr != nil {
-			err = tmpErr
+		e := tx.CreateInBatches(list, utils.MultiAddNum).Error
+		if e != nil {
+			err = e
 			return
 		}
 	}
-
 	return
 }
 
@@ -64,10 +94,10 @@ func (m ReportGrant) MultiAddReportGrantGrant(reportId int, list []*ReportGrant)
 // @return list []*ReportGrant
 // @return err error
 func (m ReportGrant) GetGrantListById(reportId int) (list []*ReportGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_grant WHERE report_id=? `
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportId).Find(&list).Error
 	return
 }
 
@@ -85,10 +115,10 @@ func (m ReportGrant) GetGrantListByIdList(reportIdList []int) (list []*ReportGra
 		return
 	}
 
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_grant WHERE report_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, reportIdList).QueryRows(&list)
-
+	//_, err = o.Raw(sql, reportIdList).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, reportIdList).Find(&list).Error
 	return
 }
 
@@ -102,10 +132,10 @@ func (m ReportGrant) GetGrantListByIdList(reportIdList []int) (list []*ReportGra
 // @return item *ReportGrant
 // @return err error
 func (m ReportGrant) GetGrantByIdAndAdmin(reportId, sysUserId int) (item *ReportGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_grant WHERE report_id = ? AND admin_id = ? `
-	err = o.Raw(sql, reportId, sysUserId).QueryRow(&item)
-
+	//err = o.Raw(sql, reportId, sysUserId).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, reportId, sysUserId).First(&item).Error
 	return
 }
 
@@ -118,9 +148,9 @@ func (m ReportGrant) GetGrantByIdAndAdmin(reportId, sysUserId int) (item *Report
 // @return list []*ReportGrant
 // @return err error
 func (m ReportGrant) GetGrantListByAdminId(adminId int) (list []*ReportGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM report_grant WHERE admin_id=? `
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
-
+	//_, err = o.Raw(sql, adminId).QueryRows(&list)
+	err = global.DmSQL["rddp"].Raw(sql, adminId).Find(&list).Error
 	return
 }

+ 129 - 66
models/report_approve/report_approve.go

@@ -1,34 +1,55 @@
 package report_approve
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
 // ReportApprove 报告审批表
+//type ReportApprove struct {
+//	ReportApproveId  int       `orm:"column(report_approve_id);pk" description:"审批ID"`
+//	ReportType       int       `description:"报告类型:1-中文研报;2-英文研报;3-智能研报"`
+//	ReportId         int       `description:"报告ID"`
+//	ReportTitle      string    `description:"报告标题"`
+//	ClassifyFirstId  int       `description:"一级分类ID"`
+//	ClassifySecondId int       `description:"二级分类ID"`
+//	ClassifyThirdId  int       `description:"三级分类ID"`
+//	State            int       `description:"审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
+//	FlowId           int       `description:"审批流ID"`
+//	FlowVersion      int       `description:"审批流版本"`
+//	StartNodeId      int       `description:"开始节点ID"`
+//	CurrNodeId       int       `description:"当前节点ID"`
+//	ApplyUserId      int       `description:"申请人ID"`
+//	ApplyUserName    string    `description:"申请人姓名"`
+//	ApproveRemark    string    `description:"审批备注"`
+//	ApproveTime      time.Time `description:"审批时间"`
+//	CreateTime       time.Time `description:"创建时间"`
+//	ModifyTime       time.Time `description:"修改时间"`
+//}
+
 type ReportApprove struct {
-	ReportApproveId  int       `orm:"column(report_approve_id);pk" gorm:"primaryKey"  description:"审批ID"`
-	ReportType       int       `description:"报告类型:1-中文研报;2-英文研报;3-智能研报"`
-	ReportId         int       `description:"报告ID"`
-	ReportTitle      string    `description:"报告标题"`
-	ClassifyFirstId  int       `description:"一级分类ID"`
-	ClassifySecondId int       `description:"二级分类ID"`
-	ClassifyThirdId  int       `description:"三级分类ID"`
-	State            int       `description:"审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
-	FlowId           int       `description:"审批流ID"`
-	FlowVersion      int       `description:"审批流版本"`
-	StartNodeId      int       `description:"开始节点ID"`
-	CurrNodeId       int       `description:"当前节点ID"`
-	ApplyUserId      int       `description:"申请人ID"`
-	ApplyUserName    string    `description:"申请人姓名"`
-	ApproveRemark    string    `description:"审批备注"`
-	ApproveTime      time.Time `description:"审批时间"`
-	CreateTime       time.Time `description:"创建时间"`
-	ModifyTime       time.Time `description:"修改时间"`
+	ReportApproveId  int       `gorm:"primaryKey;column:report_approve_id;type:int(10) unsigned;not null"`                      // 审批ID
+	ReportType       int       `gorm:"column:report_type;type:tinyint(4) unsigned;not null;default:0"`                          // 报告类型:1-中文研报;2-英文研报;3-智能研报
+	ReportId         int       `gorm:"index:idx_report_id;column:report_id;type:int(10) unsigned;not null;default:0"`           // 报告Id
+	ReportTitle      string    `gorm:"column:report_title;type:varchar(255);not null;default:''"`                               // 报告标题
+	ClassifyFirstId  int       `gorm:"column:classify_first_id;type:int(10) unsigned;not null;default:0"`                       // 一级分类Id
+	ClassifySecondId int       `gorm:"column:classify_second_id;type:int(10) unsigned;not null;default:0"`                      // 二级分类Id
+	State            int       `gorm:"column:state;type:tinyint(4) unsigned;not null;default:0"`                                // 审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回
+	FlowId           int       `gorm:"column:flow_id;type:int(10) unsigned;not null;default:0"`                                 // 审批流Id
+	FlowVersion      int       `gorm:"column:flow_version;type:int(10) unsigned;not null;default:0"`                            // 审批流版本
+	StartNodeId      int       `gorm:"column:start_node_id;type:int(10) unsigned;not null;default:0"`                           // 开始节点Id
+	CurrNodeId       int       `gorm:"column:curr_node_id;type:int(10) unsigned;not null;default:0"`                            // 当前节点Id
+	ApplyUserId      int       `gorm:"index:idx_approve_user_id;column:apply_user_id;type:int(10) unsigned;not null;default:0"` // 申请人Id
+	ApplyUserName    string    `gorm:"column:apply_user_name;type:varchar(128);not null;default:''"`                            // 申请人姓名
+	ApproveRemark    string    `gorm:"column:approve_remark;type:varchar(255);not null;default:''"`                             // 审批备注
+	ApproveTime      time.Time `gorm:"column:approve_time;type:datetime"`                                                       // 审批时间
+	CreateTime       time.Time `gorm:"column:create_time;type:datetime"`                                                        // 创建时间
+	ModifyTime       time.Time `gorm:"column:modify_time;type:datetime"`                                                        // 更新时间
+	ClassifyThirdId  int       `gorm:"column:classify_third_id;type:int(10) unsigned;default:0"`                                // 三级分类Id
 }
 
 var ReportApproveCols = struct {
@@ -80,12 +101,13 @@ func (m *ReportApprove) PrimaryId() string {
 }
 
 func (m *ReportApprove) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.ReportApproveId = int(id)
+	//o := orm.NewOrmUsingDB("rddp")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.ReportApproveId = int(id)
+	err = global.DmSQL["rddp"].Create(m).Error
 	return
 }
 
@@ -93,21 +115,24 @@ func (m *ReportApprove) CreateMulti(items []*ReportApprove) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *ReportApprove) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(m, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *ReportApprove) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.ReportApproveId).Exec()
+	//_, err = o.Raw(sql, m.ReportApproveId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, m.ReportApproveId).Error
 	return
 }
 
@@ -115,39 +140,43 @@ func (m *ReportApprove) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, menuIds).Error
 	return
 }
 
 func (m *ReportApprove) GetItemById(id int) (item *ReportApprove, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *ReportApprove) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *ReportApprove, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *ReportApprove) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *ReportApprove) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ReportApprove, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -157,12 +186,13 @@ func (m *ReportApprove) GetItemsByCondition(condition string, pars []interface{}
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *ReportApprove) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ReportApprove, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -172,7 +202,8 @@ func (m *ReportApprove) GetPageItemsByCondition(condition string, pars []interfa
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -283,19 +314,20 @@ type ReportApproveItemOrm struct {
 
 // GetApprovingReportApproveCount 获取待处理的审批分页列表总数
 func GetApprovingReportApproveCount(cond string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	base := fmt.Sprintf(`SELECT a.report_approve_record_id
 		FROM report_approve_record AS a
 		JOIN report_approve AS b ON a.report_approve_id = b.report_approve_id AND a.node_id = b.curr_node_id
 		WHERE 1 = 1 %s`, cond)
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM (%s) t`, base)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 // GetApprovingReportApprovePageList 获取待处理的审批列表-分页
 func GetApprovingReportApprovePageList(cond string, pars []interface{}, orderRule string, startSize, pageSize int) (items []*ReportApproveItemOrm, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := `ORDER BY a.create_time DESC`
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
@@ -305,25 +337,27 @@ func GetApprovingReportApprovePageList(cond string, pars []interface{}, orderRul
 		JOIN report_approve AS b ON a.report_approve_id = b.report_approve_id AND a.node_id = b.curr_node_id
 		WHERE 1 = 1 %s %s
 		LIMIT ?,?`, cond, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // GetApprovedReportApproveCount 获取已处理的审批分页列表总数
 func GetApprovedReportApproveCount(cond string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	base := fmt.Sprintf(`SELECT a.report_approve_record_id
 		FROM report_approve_record AS a
 		JOIN report_approve AS b ON a.report_approve_id = b.report_approve_id
 		WHERE 1 = 1 %s`, cond)
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM (%s) t`, base)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 // GetApprovedReportApprovePageList 获取已处理的审批列表-分页
 func GetApprovedReportApprovePageList(cond string, pars []interface{}, orderRule string, startSize, pageSize int) (items []*ReportApproveItemOrm, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := `ORDER BY a.create_time DESC`
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
@@ -333,28 +367,31 @@ func GetApprovedReportApprovePageList(cond string, pars []interface{}, orderRule
 		JOIN report_approve AS b ON a.report_approve_id = b.report_approve_id
 		WHERE 1 = 1 %s %s
 		LIMIT ?,?`, cond, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // GetApplyReportApproveCount 获取我发起的审批分页列表总数
 func GetApplyReportApproveCount(cond string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	base := fmt.Sprintf(`SELECT a.* FROM report_approve AS a WHERE 1 = 1 %s`, cond)
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM (%s) t`, base)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 // GetApplyReportApprovePageList 获取我发起的审批列表-分页
 func GetApplyReportApprovePageList(cond string, pars []interface{}, orderRule string, startSize, pageSize int) (items []*ReportApproveItemOrm, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := `ORDER BY a.create_time DESC`
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT a.* FROM report_approve AS a WHERE 1 = 1 %s %s LIMIT ?,?`, cond, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -400,12 +437,39 @@ func (m *ReportApprove) CreateApproveAndRecord(approveItem *ReportApprove, recor
 		err = fmt.Errorf("approve is nil")
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %s", e.Error())
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("orm begin err: %s", e.Error())
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//}()
+	//
+	//lastId, e := tx.Insert(approveItem)
+	//if e != nil {
+	//	err = fmt.Errorf("insert approve err: %s", e.Error())
+	//	return
+	//}
+	//approveItem.ReportApproveId = int(lastId)
+	//
+	//if len(recordItems) > 0 {
+	//	for _, v := range recordItems {
+	//		v.ReportApproveId = approveItem.ReportApproveId
+	//	}
+	//	_, e = tx.InsertMulti(len(recordItems), recordItems)
+	//	if e != nil {
+	//		err = fmt.Errorf("insert records err: %s", e.Error())
+	//		return
+	//	}
+	//}
+
+	tx := global.DmSQL["data"].Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -414,20 +478,19 @@ func (m *ReportApprove) CreateApproveAndRecord(approveItem *ReportApprove, recor
 		_ = tx.Commit()
 	}()
 
-	lastId, e := tx.Insert(approveItem)
+	e := tx.Create(approveItem).Error
 	if e != nil {
-		err = fmt.Errorf("insert approve err: %s", e.Error())
+		err = fmt.Errorf("insert approve err: %v", e)
 		return
 	}
-	approveItem.ReportApproveId = int(lastId)
 
 	if len(recordItems) > 0 {
 		for _, v := range recordItems {
 			v.ReportApproveId = approveItem.ReportApproveId
 		}
-		_, e = tx.InsertMulti(len(recordItems), recordItems)
+		e = tx.CreateInBatches(recordItems, utils.MultiAddNum).Error
 		if e != nil {
-			err = fmt.Errorf("insert records err: %s", e.Error())
+			err = fmt.Errorf("insert records err: %v", e)
 			return
 		}
 	}

+ 188 - 65
models/report_approve/report_approve_flow.go

@@ -1,26 +1,39 @@
 package report_approve
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
 // ReportApproveFlow 报告审批流表
+//type ReportApproveFlow struct {
+//	ReportApproveFlowId int       `orm:"column(report_approve_flow_id);pk" description:"审批流ID"`
+//	FlowName            string    `description:"审批流名称"`
+//	ReportType          int       `description:"报告类型:1-中文研报;2-英文研报;3-智能研报"`
+//	ClassifyFirstId     int       `description:"一级分类ID"`
+//	ClassifySecondId    int       `description:"二级分类ID"`
+//	ClassifyThirdId     int       `description:"三级分类ID"`
+//	CurrVersion         int       `description:"当前版本号"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//	Enabled             int       `description:"1:有效,0:禁用"`
+//}
+
 type ReportApproveFlow struct {
-	ReportApproveFlowId int       `orm:"column(report_approve_flow_id);pk" gorm:"primaryKey"  description:"审批流ID"`
-	FlowName            string    `description:"审批流名称"`
-	ReportType          int       `description:"报告类型:1-中文研报;2-英文研报;3-智能研报"`
-	ClassifyFirstId     int       `description:"一级分类ID"`
-	ClassifySecondId    int       `description:"二级分类ID"`
-	ClassifyThirdId     int       `description:"三级分类ID"`
-	CurrVersion         int       `description:"当前版本号"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
-	Enabled             int       `description:"1:有效,0:禁用"`
+	ReportApproveFlowId int       `gorm:"primaryKey;column:report_approve_flow_id;type:int(10) unsigned;not null"`
+	FlowName            string    `gorm:"column:flow_name;type:varchar(128);not null;default:''"`             // 审批流名称
+	ReportType          int       `gorm:"column:report_type;type:tinyint(4) unsigned;not null;default:0"`     // 报告类型:1-中文研报;2-英文研报;3-智能研报
+	ClassifyFirstId     int       `gorm:"column:classify_first_id;type:int(10) unsigned;not null;default:0"`  // 一级分类Id
+	ClassifySecondId    int       `gorm:"column:classify_second_id;type:int(10) unsigned;not null;default:0"` // 二级分类Id
+	CurrVersion         int       `gorm:"column:curr_version;type:int(10) unsigned;not null;default:0"`       // 当前版本号
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                   // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                   // 更新时间
+	ClassifyThirdId     int       `gorm:"column:classify_third_id;type:int(10) unsigned;default:0"`           // 三级id
+	Enabled             int       `gorm:"column:enabled;type:tinyint(4) unsigned;default:1"`                  // 1:有效,0:禁用
 }
 
 var ReportApproveFlowCols = struct {
@@ -56,12 +69,13 @@ func (m *ReportApproveFlow) PrimaryId() string {
 }
 
 func (m *ReportApproveFlow) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.ReportApproveFlowId = int(id)
+	//o := orm.NewOrmUsingDB("rddp")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.ReportApproveFlowId = int(id)
+	err = global.DmSQL["rddp"].Create(m).Error
 	return
 }
 
@@ -69,21 +83,24 @@ func (m *ReportApproveFlow) CreateMulti(items []*ReportApproveFlow) (err error)
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *ReportApproveFlow) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(m, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *ReportApproveFlow) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.ReportApproveFlowId).Exec()
+	//_, err = o.Raw(sql, m.ReportApproveFlowId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, m.ReportApproveFlowId).Error
 	return
 }
 
@@ -91,39 +108,43 @@ func (m *ReportApproveFlow) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, menuIds).Error
 	return
 }
 
 func (m *ReportApproveFlow) GetItemById(id int) (item *ReportApproveFlow, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *ReportApproveFlow) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *ReportApproveFlow, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *ReportApproveFlow) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *ReportApproveFlow) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ReportApproveFlow, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -133,12 +154,13 @@ func (m *ReportApproveFlow) GetItemsByCondition(condition string, pars []interfa
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *ReportApproveFlow) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ReportApproveFlow, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -148,7 +170,8 @@ func (m *ReportApproveFlow) GetPageItemsByCondition(condition string, pars []int
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -217,12 +240,59 @@ func (m *ReportApproveFlow) CreateFlowAndNodes(flowItem *ReportApproveFlow, node
 		err = fmt.Errorf("flow is nil")
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %s", e.Error())
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("orm begin err: %s", e.Error())
+	//	return
+	//}
+	//prevNodes := make([]*ReportApproveNode, 0)
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//	// 更新每个节点的下一个节点信息, 放在事务中会更新失败
+	//	if e = m.UpdateNextNodes(prevNodes); e != nil {
+	//		err = fmt.Errorf("UpdatePrevNodes err: %s", e.Error())
+	//		return
+	//	}
+	//}()
+	//
+	//lastId, e := tx.Insert(flowItem)
+	//if e != nil {
+	//	err = fmt.Errorf("insert flow err: %s", e.Error())
+	//	return
+	//}
+	//flowItem.ReportApproveFlowId = int(lastId)
+	//
+	//nodesLen := len(nodeItems)
+	//if nodesLen == 0 {
+	//	return
+	//}
+	//prevId := 0
+	//prevNode := new(ReportApproveNode)
+	//for k, v := range nodeItems {
+	//	v.ReportApproveFlowId = flowItem.ReportApproveFlowId
+	//	v.PrevNodeId = prevId
+	//	id, e := tx.Insert(v)
+	//	if e != nil {
+	//		err = fmt.Errorf("insert node err: %s", e.Error())
+	//		return
+	//	}
+	//	v.ReportApproveNodeId = int(id)
+	//	prevId = v.ReportApproveNodeId
+	//
+	//	// 下一个节点
+	//	if prevNode != nil && k > 0 && k < nodesLen {
+	//		prevNode.NextNodeId = int(id)
+	//		prevNodes = append(prevNodes, prevNode)
+	//	}
+	//	prevNode = v
+	//}
+
+	tx := global.DmSQL["data"].Begin()
 	prevNodes := make([]*ReportApproveNode, 0)
 	defer func() {
 		if err != nil {
@@ -231,18 +301,17 @@ func (m *ReportApproveFlow) CreateFlowAndNodes(flowItem *ReportApproveFlow, node
 		}
 		_ = tx.Commit()
 		// 更新每个节点的下一个节点信息, 放在事务中会更新失败
-		if e = m.UpdateNextNodes(prevNodes); e != nil {
+		if e := m.UpdateNextNodes(prevNodes); e != nil {
 			err = fmt.Errorf("UpdatePrevNodes err: %s", e.Error())
 			return
 		}
 	}()
 
-	lastId, e := tx.Insert(flowItem)
+	e := tx.Create(flowItem).Error
 	if e != nil {
-		err = fmt.Errorf("insert flow err: %s", e.Error())
+		err = fmt.Errorf("insert approve err: %v", e)
 		return
 	}
-	flowItem.ReportApproveFlowId = int(lastId)
 
 	nodesLen := len(nodeItems)
 	if nodesLen == 0 {
@@ -253,17 +322,16 @@ func (m *ReportApproveFlow) CreateFlowAndNodes(flowItem *ReportApproveFlow, node
 	for k, v := range nodeItems {
 		v.ReportApproveFlowId = flowItem.ReportApproveFlowId
 		v.PrevNodeId = prevId
-		id, e := tx.Insert(v)
+		e = tx.Create(v).Error
 		if e != nil {
-			err = fmt.Errorf("insert node err: %s", e.Error())
+			err = fmt.Errorf("insert node err: %v", e)
 			return
 		}
-		v.ReportApproveNodeId = int(id)
 		prevId = v.ReportApproveNodeId
 
 		// 下一个节点
 		if prevNode != nil && k > 0 && k < nodesLen {
-			prevNode.NextNodeId = int(id)
+			prevNode.NextNodeId = v.ReportApproveNodeId
 			prevNodes = append(prevNodes, prevNode)
 		}
 		prevNode = v
@@ -276,10 +344,17 @@ func (m *ReportApproveFlow) UpdateNextNodes(nodes []*ReportApproveNode) (err err
 		return
 	}
 	updateCols := []string{"NextNodeId"}
+	//for _, v := range nodes {
+	//	e := v.Update(updateCols)
+	//	if e != nil {
+	//		err = fmt.Errorf("prev node update err: %s", e.Error())
+	//		return
+	//	}
+	//}
 	for _, v := range nodes {
-		e := v.Update(updateCols)
+		e := global.DmSQL["rddp"].Select(updateCols).Updates(v).Error
 		if e != nil {
-			err = fmt.Errorf("prev node update err: %s", e.Error())
+			err = fmt.Errorf("prev node update err: %v", e)
 			return
 		}
 	}
@@ -292,12 +367,60 @@ func (m *ReportApproveFlow) UpdateFlowAndNodes(flowItem *ReportApproveFlow, node
 		err = fmt.Errorf("flow is nil")
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %s", e.Error())
-		return
-	}
+	//o := orm.NewOrmUsingDB("rddp")
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("orm begin err: %s", e.Error())
+	//	return
+	//}
+	//prevNodes := make([]*ReportApproveNode, 0)
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//	// 更新每个节点的下一个节点信息, 放在事务中会更新失败
+	//	if e = m.UpdateNextNodes(prevNodes); e != nil {
+	//		err = fmt.Errorf("UpdatePrevNodes err: %s", e.Error())
+	//		return
+	//	}
+	//}()
+	//
+	//// 更新审批流
+	//updateCols := []string{"FlowName", "ReportType", "ClassifyFirstId", "ClassifySecondId", "ClassifyThirdId", "CurrVersion", "ModifyTime"}
+	//if e = flowItem.Update(updateCols); e != nil {
+	//	err = fmt.Errorf("update flow err: %s", e.Error())
+	//	return
+	//}
+	//
+	//// 新增节点(旧版的节点不删除, 根据版本号区分)
+	//nodesLen := len(nodeItems)
+	//if nodesLen == 0 {
+	//	return
+	//}
+	//prevId := 0
+	//prevNode := new(ReportApproveNode)
+	//for k, v := range nodeItems {
+	//	v.ReportApproveFlowId = flowItem.ReportApproveFlowId
+	//	v.PrevNodeId = prevId
+	//	id, e := tx.Insert(v)
+	//	if e != nil {
+	//		err = fmt.Errorf("insert node err: %s", e.Error())
+	//		return
+	//	}
+	//	v.ReportApproveNodeId = int(id)
+	//	prevId = v.ReportApproveNodeId
+	//
+	//	// 下一个节点
+	//	if prevNode != nil && k > 0 && k < nodesLen {
+	//		prevNode.NextNodeId = int(id)
+	//		prevNodes = append(prevNodes, prevNode)
+	//	}
+	//	prevNode = v
+	//}
+
+	tx := global.DmSQL["data"].Begin()
 	prevNodes := make([]*ReportApproveNode, 0)
 	defer func() {
 		if err != nil {
@@ -306,16 +429,17 @@ func (m *ReportApproveFlow) UpdateFlowAndNodes(flowItem *ReportApproveFlow, node
 		}
 		_ = tx.Commit()
 		// 更新每个节点的下一个节点信息, 放在事务中会更新失败
-		if e = m.UpdateNextNodes(prevNodes); e != nil {
-			err = fmt.Errorf("UpdatePrevNodes err: %s", e.Error())
+		if e := m.UpdateNextNodes(prevNodes); e != nil {
+			err = fmt.Errorf("UpdatePrevNodes err: %v", e)
 			return
 		}
 	}()
 
 	// 更新审批流
 	updateCols := []string{"FlowName", "ReportType", "ClassifyFirstId", "ClassifySecondId", "ClassifyThirdId", "CurrVersion", "ModifyTime"}
-	if e = flowItem.Update(updateCols); e != nil {
-		err = fmt.Errorf("update flow err: %s", e.Error())
+	e := tx.Select(updateCols).Updates(flowItem).Error
+	if e != nil {
+		err = fmt.Errorf("update flow err: %v", e)
 		return
 	}
 
@@ -329,17 +453,16 @@ func (m *ReportApproveFlow) UpdateFlowAndNodes(flowItem *ReportApproveFlow, node
 	for k, v := range nodeItems {
 		v.ReportApproveFlowId = flowItem.ReportApproveFlowId
 		v.PrevNodeId = prevId
-		id, e := tx.Insert(v)
+		e = tx.Create(v).Error
 		if e != nil {
-			err = fmt.Errorf("insert node err: %s", e.Error())
+			err = fmt.Errorf("insert node err: %v", e)
 			return
 		}
-		v.ReportApproveNodeId = int(id)
 		prevId = v.ReportApproveNodeId
 
 		// 下一个节点
 		if prevNode != nil && k > 0 && k < nodesLen {
-			prevNode.NextNodeId = int(id)
+			prevNode.NextNodeId = v.ReportApproveNodeId
 			prevNodes = append(prevNodes, prevNode)
 		}
 		prevNode = v

+ 58 - 35
models/report_approve/report_approve_message.go

@@ -1,26 +1,39 @@
 package report_approve
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
 // ReportApproveMessage 报告审批消息表
+//type ReportApproveMessage struct {
+//	Id              int       `orm:"column(id);pk"`
+//	SendUserId      int       `description:"发送人ID"`
+//	ReceiveUserId   int       `description:"接收者ID"`
+//	Content         string    `description:"消息内容"`
+//	Remark          string    `description:"备注信息"`
+//	ReportApproveId int       `description:"审批ID"`
+//	ApproveState    int       `description:"审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
+//	IsRead          int       `description:"是否已读:0-未读;1-已读"`
+//	CreateTime      time.Time `description:"创建时间"`
+//	ModifyTime      time.Time `description:"修改时间"`
+//}
+
 type ReportApproveMessage struct {
-	Id              int       `orm:"column(id);pk" gorm:"primaryKey" `
-	SendUserId      int       `description:"发送人ID"`
-	ReceiveUserId   int       `description:"接收者ID"`
-	Content         string    `description:"消息内容"`
-	Remark          string    `description:"备注信息"`
-	ReportApproveId int       `description:"审批ID"`
-	ApproveState    int       `description:"审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
-	IsRead          int       `description:"是否已读:0-未读;1-已读"`
-	CreateTime      time.Time `description:"创建时间"`
-	ModifyTime      time.Time `description:"修改时间"`
+	Id              int       `gorm:"primaryKey;column:id;type:int(10) unsigned;not null"`
+	SendUserId      int       `gorm:"column:send_user_id;type:int(10) unsigned;not null;default:0"`                              // 发送人Id
+	ReceiveUserId   int       `gorm:"index:idx_receive_user_id;column:receive_user_id;type:int(10) unsigned;not null;default:0"` // 接收者Id
+	Content         string    `gorm:"column:content;type:varchar(255);not null;default:''"`                                      // 消息内容
+	Remark          string    `gorm:"column:remark;type:varchar(255);not null;default:''"`                                       // 备注信息
+	ReportApproveId int       `gorm:"column:report_approve_id;type:int(10) unsigned;not null;default:0"`                         // 审批Id
+	ApproveState    int       `gorm:"column:approve_state;type:tinyint(4) unsigned;not null;default:0"`                          // 审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回
+	IsRead          int       `gorm:"column:is_read;type:tinyint(4) unsigned;not null;default:0"`                                // 是否已读:0-未读;1-已读
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime"`                                                          // 创建时间
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime"`                                                          // 修改时间
 }
 
 var ReportApproveMessageCols = struct {
@@ -56,12 +69,13 @@ func (m *ReportApproveMessage) PrimaryId() string {
 }
 
 func (m *ReportApproveMessage) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.Id = int(id)
+	//o := orm.NewOrmUsingDB("rddp")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.Id = int(id)
+	err = global.DmSQL["rddp"].Create(m).Error
 	return
 }
 
@@ -69,21 +83,24 @@ func (m *ReportApproveMessage) CreateMulti(items []*ReportApproveMessage) (err e
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *ReportApproveMessage) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(m, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *ReportApproveMessage) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.Id).Exec()
+	//_, err = o.Raw(sql, m.Id).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, m.Id).Error
 	return
 }
 
@@ -91,39 +108,43 @@ func (m *ReportApproveMessage) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, menuIds).Error
 	return
 }
 
 func (m *ReportApproveMessage) GetItemById(id int) (item *ReportApproveMessage, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *ReportApproveMessage) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *ReportApproveMessage, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *ReportApproveMessage) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *ReportApproveMessage) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ReportApproveMessage, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -133,12 +154,13 @@ func (m *ReportApproveMessage) GetItemsByCondition(condition string, pars []inte
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *ReportApproveMessage) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ReportApproveMessage, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -148,7 +170,8 @@ func (m *ReportApproveMessage) GetPageItemsByCondition(condition string, pars []
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 

+ 56 - 34
models/report_approve/report_approve_node.go

@@ -2,24 +2,36 @@ package report_approve
 
 import (
 	"encoding/json"
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // ReportApproveNode 报告审批节点表
+//type ReportApproveNode struct {
+//	ReportApproveNodeId int       `orm:"column(report_approve_node_id);pk" description:"报告审批节点ID"`
+//	ReportApproveFlowId int       `description:"报告审批流ID"`
+//	PrevNodeId          int       `description:"上一个节点ID(0为开始节点)"`
+//	NextNodeId          int       `description:"下一个节点ID(0为结束节点)"`
+//	NodeType            int       `description:"节点类型:0-审批;1-抄送"`
+//	ApproveType         int       `description:"审批类型:1-依次审批;2-会签;3-或签"`
+//	Users               string    `description:"审批人信息-JSON,user_type:user-用户;role-角色,user_id:用户/角色ID"`
+//	CurrVersion         int       `description:"当前版本号"`
+//	CreateTime          time.Time `description:"创建时间"`
+//}
+
 type ReportApproveNode struct {
-	ReportApproveNodeId int       `orm:"column(report_approve_node_id);pk" gorm:"primaryKey"  description:"报告审批节点ID"`
-	ReportApproveFlowId int       `description:"报告审批流ID"`
-	PrevNodeId          int       `description:"上一个节点ID(0为开始节点)"`
-	NextNodeId          int       `description:"下一个节点ID(0为结束节点)"`
-	NodeType            int       `description:"节点类型:0-审批;1-抄送"`
-	ApproveType         int       `description:"审批类型:1-依次审批;2-会签;3-或签"`
-	Users               string    `description:"审批人信息-JSON,user_type:user-用户;role-角色,user_id:用户/角色ID"`
-	CurrVersion         int       `description:"当前版本号"`
-	CreateTime          time.Time `description:"创建时间"`
+	ReportApproveNodeId int       `gorm:"primaryKey;column:report_approve_node_id;type:int(10) unsigned;not null"`                  // 报告审批节点Id
+	ReportApproveFlowId int       `gorm:"index:idx_flow_id;column:report_approve_flow_id;type:int(10) unsigned;not null;default:0"` // 报告审批流Id
+	PrevNodeId          int       `gorm:"column:prev_node_id;type:int(10) unsigned;not null;default:0"`                             // 上一个节点Id(0为开始节点)
+	NextNodeId          int       `gorm:"column:next_node_id;type:int(10) unsigned;not null;default:0"`                             // 下一个节点Id(0为结束节点)
+	NodeType            int       `gorm:"column:node_type;type:tinyint(4) unsigned;not null;default:0"`                             // 节点类型:0-审批;1-抄送
+	ApproveType         int       `gorm:"column:approve_type;type:tinyint(4) unsigned;not null;default:0"`                          // 审批类型:1-依次审批;2-会签;3-或签
+	Users               string    `gorm:"column:users;type:text"`                                                                   // 审批人信息-JSON,user_type:user-用户;role-角色,user_id:用户/角色ID
+	CurrVersion         int       `gorm:"column:curr_version;type:int(10) unsigned;not null;default:0"`                             // 版本号
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                                         // 创建时间
 }
 
 var ReportApproveNodeCols = struct {
@@ -53,12 +65,13 @@ func (m *ReportApproveNode) PrimaryId() string {
 }
 
 func (m *ReportApproveNode) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.ReportApproveNodeId = int(id)
+	//o := orm.NewOrmUsingDB("rddp")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.ReportApproveNodeId = int(id)
+	err = global.DmSQL["rddp"].Create(m).Error
 	return
 }
 
@@ -66,21 +79,24 @@ func (m *ReportApproveNode) CreateMulti(items []*ReportApproveNode) (err error)
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *ReportApproveNode) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(m, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *ReportApproveNode) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.ReportApproveNodeId).Exec()
+	//_, err = o.Raw(sql, m.ReportApproveNodeId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, m.ReportApproveNodeId).Error
 	return
 }
 
@@ -88,39 +104,43 @@ func (m *ReportApproveNode) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, menuIds).Error
 	return
 }
 
 func (m *ReportApproveNode) GetItemById(id int) (item *ReportApproveNode, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *ReportApproveNode) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *ReportApproveNode, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *ReportApproveNode) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *ReportApproveNode) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ReportApproveNode, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -130,12 +150,13 @@ func (m *ReportApproveNode) GetItemsByCondition(condition string, pars []interfa
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *ReportApproveNode) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ReportApproveNode, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -145,7 +166,8 @@ func (m *ReportApproveNode) GetPageItemsByCondition(condition string, pars []int
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 

+ 79 - 47
models/report_approve/report_approve_record.go

@@ -1,34 +1,56 @@
 package report_approve
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // ReportApproveRecord 报告审批记录表
+//type ReportApproveRecord struct {
+//	ReportApproveRecordId int       `orm:"column(report_approve_record_id);pk" description:"审批记录ID"`
+//	ReportApproveId       int       `description:"审批ID"`
+//	State                 int       `description:"审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
+//	NodeId                int       `description:"节点ID"`
+//	NodeType              int       `description:"节点类型:0-审批;1-抄送"`
+//	PrevNodeId            int       `description:"上级节点ID"`
+//	NextNodeId            int       `description:"下级节点ID"`
+//	ApproveType           int       `description:"审批类型:1-依次审批;2-会签;3-或签"`
+//	ApproveUserId         int       `description:"审批人ID"`
+//	ApproveUserName       string    `description:"审批人姓名"`
+//	ApproveUserSort       int       `description:"依次审批:用户的审批顺序"`
+//	ApproveRemark         string    `description:"审批备注(驳回备注等)"`
+//	ApproveTime           time.Time `description:"审批时间"`
+//	CreateTime            time.Time `description:"创建时间"`
+//	ModifyTime            time.Time `description:"修改时间"`
+//	NodeState             int       `description:"当前节点审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
+//	NodeApproveUserId     int       `description:"当前节点审批人ID"`
+//	NodeApproveUserName   string    `description:"当前节点审批人姓名"`
+//	NodeApproveTime       time.Time `description:"当前节点审批时间"`
+//}
+
 type ReportApproveRecord struct {
-	ReportApproveRecordId int       `orm:"column(report_approve_record_id);pk" gorm:"primaryKey"  description:"审批记录ID"`
-	ReportApproveId       int       `description:"审批ID"`
-	State                 int       `description:"审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
-	NodeId                int       `description:"节点ID"`
-	NodeType              int       `description:"节点类型:0-审批;1-抄送"`
-	PrevNodeId            int       `description:"上级节点ID"`
-	NextNodeId            int       `description:"下级节点ID"`
-	ApproveType           int       `description:"审批类型:1-依次审批;2-会签;3-或签"`
-	ApproveUserId         int       `description:"审批人ID"`
-	ApproveUserName       string    `description:"审批人姓名"`
-	ApproveUserSort       int       `description:"依次审批:用户的审批顺序"`
-	ApproveRemark         string    `description:"审批备注(驳回备注等)"`
-	ApproveTime           time.Time `description:"审批时间"`
-	CreateTime            time.Time `description:"创建时间"`
-	ModifyTime            time.Time `description:"修改时间"`
-	NodeState             int       `description:"当前节点审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回"`
-	NodeApproveUserId     int       `description:"当前节点审批人ID"`
-	NodeApproveUserName   string    `description:"当前节点审批人姓名"`
-	NodeApproveTime       time.Time `description:"当前节点审批时间"`
+	ReportApproveRecordId int       `gorm:"primaryKey;column:report_approve_record_id;type:int(10) unsigned;not null"`              // 审批记录Id
+	ReportApproveId       int       `gorm:"index:idx_approve_id;column:report_approve_id;type:int(10) unsigned;not null;default:0"` // 审批Id
+	State                 int       `gorm:"column:state;type:tinyint(4) unsigned;not null;default:0"`                               // 审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回
+	NodeId                int       `gorm:"column:node_id;type:int(10) unsigned;not null;default:0"`                                // 节点Id
+	NodeType              int       `gorm:"column:node_type;type:tinyint(4) unsigned;not null;default:0"`                           // 节点类型:0-审批;1-抄送
+	PrevNodeId            int       `gorm:"column:prev_node_id;type:int(10) unsigned;not null;default:0"`                           // 上级节点Id
+	NextNodeId            int       `gorm:"column:next_node_id;type:int(10) unsigned;not null;default:0"`                           // 下级节点Id
+	ApproveType           int       `gorm:"column:approve_type;type:tinyint(4) unsigned;not null;default:0"`                        // 审批类型:1-依次审批;2-会签;3-或签
+	ApproveUserId         int       `gorm:"column:approve_user_id;type:int(10) unsigned;not null;default:0"`                        // 审批人Id
+	ApproveUserName       string    `gorm:"column:approve_user_name;type:varchar(128);not null;default:''"`                         // 审批人姓名
+	ApproveUserSort       int       `gorm:"column:approve_user_sort;type:int(10) unsigned;not null;default:0"`                      // 依次审批:用户的审批顺序
+	ApproveRemark         string    `gorm:"column:approve_remark;type:varchar(255);not null;default:''"`                            // 审批备注(驳回备注等)
+	ApproveTime           time.Time `gorm:"column:approve_time;type:datetime"`                                                      // 审批时间
+	CreateTime            time.Time `gorm:"column:create_time;type:datetime"`                                                       // 创建时间
+	ModifyTime            time.Time `gorm:"column:modify_time;type:datetime"`                                                       // 更新时间
+	NodeState             int       `gorm:"column:node_state;type:tinyint(4) unsigned;default:0"`                                   // 当前节点审批状态:1-待审批;2-已审批;3-已驳回;4-已撤回
+	NodeApproveUserId     int       `gorm:"column:node_approve_user_id;type:int(10) unsigned;default:0"`                            // 当前节点审批人Id
+	NodeApproveUserName   string    `gorm:"column:node_approve_user_name;type:varchar(128);default:''"`                             // 当前点审批人姓名
+	NodeApproveTime       time.Time `gorm:"column:node_approve_time;type:datetime"`                                                 // 当前先审批时间
 }
 
 var ReportApproveRecordCols = struct {
@@ -82,12 +104,13 @@ func (m *ReportApproveRecord) PrimaryId() string {
 }
 
 func (m *ReportApproveRecord) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.ReportApproveRecordId = int(id)
+	//o := orm.NewOrmUsingDB("rddp")
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.ReportApproveRecordId = int(id)
+	err = global.DmSQL["rddp"].Create(m).Error
 	return
 }
 
@@ -95,21 +118,24 @@ func (m *ReportApproveRecord) CreateMulti(items []*ReportApproveRecord) (err err
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *ReportApproveRecord) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrmUsingDB("rddp")
+	//_, err = o.Update(m, cols...)
+	err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *ReportApproveRecord) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.ReportApproveRecordId).Exec()
+	//_, err = o.Raw(sql, m.ReportApproveRecordId).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, m.ReportApproveRecordId).Error
 	return
 }
 
@@ -117,39 +143,43 @@ func (m *ReportApproveRecord) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, menuIds).Error
 	return
 }
 
 func (m *ReportApproveRecord) GetItemById(id int) (item *ReportApproveRecord, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *ReportApproveRecord) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *ReportApproveRecord, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DmSQL["rddp"].Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *ReportApproveRecord) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *ReportApproveRecord) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ReportApproveRecord, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -159,12 +189,13 @@ func (m *ReportApproveRecord) GetItemsByCondition(condition string, pars []inter
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *ReportApproveRecord) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ReportApproveRecord, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -174,7 +205,8 @@ func (m *ReportApproveRecord) GetPageItemsByCondition(condition string, pars []i
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["rddp"].Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -241,10 +273,10 @@ func (m *ReportApproveRecord) UpdateNodeState(reportApproveId, nodeId, nodeState
 	whereParas := []interface{}{reportApproveId, nodeId}
 	pars = append(pars, whereParas)
 
-	o := orm.NewOrmUsingDB("rddp")
+	//o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`UPDATE %s SET node_state=?,node_approve_user_id=?,node_approve_user_name=?,node_approve_time=? WHERE report_approve_id = ? AND node_id = ?`, m.TableName())
-	_, err = o.Raw(sql, pars).Exec()
-
+	//_, err = o.Raw(sql, pars).Exec()
+	err = global.DmSQL["rddp"].Exec(sql, pars).Error
 	return
 }
 

+ 21 - 25
models/roadshow/calendar.go

@@ -1,9 +1,5 @@
 package roadshow
 
-import (
-	"github.com/beego/beego/v2/client/orm"
-)
-
 type Researcher struct {
 	AdminId      int    `description:"研究员id"`
 	RealName     string `description:"研究员名称"`
@@ -18,25 +14,25 @@ type ResearcherGroup struct {
 	ResearcherList []*Researcher
 }
 
-func GetResearcherGroup() (list []*ResearcherGroup, err error) {
-	o := orm.NewOrm()
-	sql := ` SELECT group_id,group_name FROM admin AS a
-			WHERE a.role_type_code IN('researcher','ficc_researcher','ficc_admin')
-			AND a.enabled=1
-			AND a.group_id>0
-			AND a.group_name<>'无'
-			GROUP BY a.group_id 
-            ORDER BY a.group_id ASC `
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetResearcherGroup() (list []*ResearcherGroup, err error) {
+//	o := orm.NewOrm()
+//	sql := ` SELECT group_id,group_name FROM admin AS a
+//			WHERE a.role_type_code IN('researcher','ficc_researcher','ficc_admin')
+//			AND a.enabled=1
+//			AND a.group_id>0
+//			AND a.group_name<>'无'
+//			GROUP BY a.group_id
+//            ORDER BY a.group_id ASC `
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
-func GetResearcher() (list []*Researcher, err error) {
-	o := orm.NewOrm()
-	//sql := ` SELECT * FROM admin AS a
-	//		WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
-	//		AND a.enabled=1 AND a.real_name<>'于菲' `
-	sql := ` SELECT * FROM admin AS a WHERE a.enabled=1 `
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetResearcher() (list []*Researcher, err error) {
+//	o := orm.NewOrm()
+//	//sql := ` SELECT * FROM admin AS a
+//	//		WHERE a.role_type_code IN('researcher','rai_researcher','ficc_researcher','ficc_admin')
+//	//		AND a.enabled=1 AND a.real_name<>'于菲' `
+//	sql := ` SELECT * FROM admin AS a WHERE a.enabled=1 `
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}

+ 251 - 200
models/sandbox/sandbox.go

@@ -1,17 +1,16 @@
 package sandbox
 
 import (
-	"eta_gn/eta_api/models/system"
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // Sandbox 沙盘推演主表
 //type Sandbox struct {
-//	SandboxId           int       `orm:"column(sandbox_id);pk" gorm:"primaryKey"  description:"沙盘id"`
+//	SandboxId           int       `orm:"column(sandbox_id);pk" description:"沙盘id"`
 //	Name                string    `description:"沙盘名称"`
 //	ChartPermissionId   int       `description:"品种id"`
 //	ChartPermissionName string    `description:"品种名称"`
@@ -28,150 +27,171 @@ import (
 //	Sort                int       `description:"排序"`
 //}
 
+//type Sandbox struct {
+//	SandboxId         int       `orm:"column(sandbox_id);pk" description:"沙盘id"`
+//	Name              string    `description:"沙盘名称"`
+//	Code              string    `description:"沙盘code"`
+//	Content           string    `description:"沙盘数据"`
+//	MindmapData       string    `description:"思维导图数据"`
+//	PicUrl            string    `description:"沙盘图片地址"`
+//	SysUserId         int       `description:"作者id"`
+//	SysUserName       string    `description:"作者名称"`
+//	IsDelete          int8      `description:"是否删除,0:未删除,1:已删除"`
+//	ModifyTime        time.Time `description:"修改时间"`
+//	CreateTime        time.Time `description:"创建时间"`
+//	SandboxClassifyId int       `description:"分类id"`
+//	Sort              int       `description:"排序"`
+//	Style             int       `description:"风格"`
+//}
+
 type Sandbox struct {
-	SandboxId         int       `orm:"column(sandbox_id);pk" gorm:"primaryKey"  description:"沙盘id"`
-	Name              string    `description:"沙盘名称"`
-	Code              string    `description:"沙盘code"`
-	Content           string    `description:"沙盘数据"`
-	MindmapData       string    `description:"思维导图数据"`
-	PicUrl            string    `description:"沙盘图片地址"`
-	SysUserId         int       `description:"作者id"`
-	SysUserName       string    `description:"作者名称"`
-	IsDelete          int8      `description:"是否删除,0:未删除,1:已删除"`
-	ModifyTime        time.Time `description:"修改时间"`
-	CreateTime        time.Time `description:"创建时间"`
-	SandboxClassifyId int       `description:"分类id"`
-	Sort              int       `description:"排序"`
-	Style             int       `description:"风格"`
+	SandboxId           int       `gorm:"primaryKey;column:sandbox_id;type:int(9) unsigned;not null"`         // 沙盘id
+	Name                string    `gorm:"index:idx_name;column:name;type:varchar(64);not null;default:''"`    // 沙盘名称
+	Code                string    `gorm:"column:code;type:varchar(255);not null"`                             // 沙盘code
+	Content             string    `gorm:"column:content;type:longtext;not null"`                              // 沙盘内容
+	MindmapData         string    `gorm:"column:mindmap_data;type:longtext;not null"`                         // 思维导图内容,
+	PicUrl              string    `gorm:"column:pic_url;type:varchar(255);not null;default:''"`               // 沙盘图片
+	IsDelete            int       `gorm:"column:is_delete;type:tinyint(9) unsigned;not null;default:0"`       // 是否删除,0:未删除,1:已删除
+	ModifyTime          time.Time `gorm:"column:modify_time;type:timestamp;default:CURRENT_TIMESTAMP"`        // 最近一次更新时间
+	CreateTime          time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`        // 沙盘创建时间
+	Sort                int       `gorm:"column:sort;type:int(9);default:0"`                                  // 排序字段,数字越小越排前面
+	SandboxClassifyId   int       `gorm:"column:sandbox_classify_id;type:int(11);default:0"`                  // 分类id
+	SysUserId           int       `gorm:"column:sys_user_id;type:int(10) unsigned;not null;default:0"`        // 创建人
+	SysUserName         string    `gorm:"column:sys_user_name;type:varchar(32);not null;default:''"`          // 创建人名
+	ChartPermissionId   int       `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"` // 品种id
+	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(32);not null;default:''"`  // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
+	Style               int       `gorm:"column:style;type:int(8)"`                                           // 风格
 }
 
 // Update 沙盘字段变更
 func (sandbox *Sandbox) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(sandbox, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(sandbox, cols...)
+	err = global.DmSQL["data"].Select(cols).Updates(sandbox).Error
 	return
 }
 
 // GetSandboxById 根据沙盘id获取沙盘详情
 func GetSandboxById(sandboxId int) (sandboxInfo *Sandbox, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `select * from sandbox where sandbox_id = ? and is_delete = 0`
-	err = o.Raw(sql, sandboxId).QueryRow(&sandboxInfo)
+	//err = o.Raw(sql, sandboxId).QueryRow(&sandboxInfo)
+	err = global.DmSQL["data"].Raw(sql, sandboxId).First(&sandboxInfo).Error
 	return
 }
 
 // AddNewSandbox 添加一个新的沙盘
-func AddNewSandbox(sandboxInfo *Sandbox, sandboxVersion *SandboxVersion, sandboxDraft *SandboxDraft) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	id, err := to.Insert(sandboxInfo)
-	if err != nil {
-		return
-	}
-	sandboxInfo.SandboxId = int(id)
-
-	// 新增版本
-	sandboxVersion.SandboxId = sandboxInfo.SandboxId
-	id, err = to.Insert(sandboxVersion)
-	if err != nil {
-		return
-	}
-	sandboxVersion.SandboxVersionId = int(id)
-
-	// 新增草稿
-	sandboxDraft.SandboxId = sandboxInfo.SandboxId
-	id, err = to.Insert(sandboxDraft)
-	if err != nil {
-		return
-	}
-	sandboxDraft.SandboxDraftId = int(id)
-	return
-}
+//func AddNewSandbox(sandboxInfo *Sandbox, sandboxVersion *SandboxVersion, sandboxDraft *SandboxDraft) (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	to, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = to.Rollback()
+//		} else {
+//			_ = to.Commit()
+//		}
+//	}()
+//
+//	id, err := to.Insert(sandboxInfo)
+//	if err != nil {
+//		return
+//	}
+//	sandboxInfo.SandboxId = int(id)
+//
+//	// 新增版本
+//	sandboxVersion.SandboxId = sandboxInfo.SandboxId
+//	id, err = to.Insert(sandboxVersion)
+//	if err != nil {
+//		return
+//	}
+//	sandboxVersion.SandboxVersionId = int(id)
+//
+//	// 新增草稿
+//	sandboxDraft.SandboxId = sandboxInfo.SandboxId
+//	id, err = to.Insert(sandboxDraft)
+//	if err != nil {
+//		return
+//	}
+//	sandboxDraft.SandboxDraftId = int(id)
+//	return
+//}
 
 // UpdateSandbox 更新沙盘
-func UpdateSandbox(sandboxInfo *Sandbox, updateSandboxColumn []string, sandboxVersion *SandboxVersion, sandboxDraft *SandboxDraft) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	_, err = to.Update(sandboxInfo, updateSandboxColumn...)
-	if err != nil {
-		return
-	}
-
-	// 新增版本
-	sandboxVersion.SandboxId = sandboxInfo.SandboxId
-	id, err := to.Insert(sandboxVersion)
-	if err != nil {
-		return
-	}
-	sandboxVersion.SandboxVersionId = int(id)
-
-	// 新增草稿
-	sandboxDraft.SandboxId = sandboxInfo.SandboxId
-	id, err = to.Insert(sandboxDraft)
-	if err != nil {
-		return
-	}
-	sandboxDraft.SandboxDraftId = int(id)
-	return
-}
+//func UpdateSandbox(sandboxInfo *Sandbox, updateSandboxColumn []string, sandboxVersion *SandboxVersion, sandboxDraft *SandboxDraft) (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	to, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = to.Rollback()
+//		} else {
+//			_ = to.Commit()
+//		}
+//	}()
+//
+//	_, err = to.Update(sandboxInfo, updateSandboxColumn...)
+//	if err != nil {
+//		return
+//	}
+//
+//	// 新增版本
+//	sandboxVersion.SandboxId = sandboxInfo.SandboxId
+//	id, err := to.Insert(sandboxVersion)
+//	if err != nil {
+//		return
+//	}
+//	sandboxVersion.SandboxVersionId = int(id)
+//
+//	// 新增草稿
+//	sandboxDraft.SandboxId = sandboxInfo.SandboxId
+//	id, err = to.Insert(sandboxDraft)
+//	if err != nil {
+//		return
+//	}
+//	sandboxDraft.SandboxDraftId = int(id)
+//	return
+//}
 
 // UpdateSandboxName 更新沙盘(仅仅更新名称)
-func UpdateSandboxName(sandboxInfo *Sandbox, sandboxVersion *SandboxVersion, sandboxDraft *SandboxDraft, updateSandboxColumn, updateSandboxVersionColumn []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-
-	_, err = to.Update(sandboxInfo, updateSandboxColumn...)
-	if err != nil {
-		return
-	}
-
-	// 更新版本
-	_, err = to.Update(sandboxVersion, updateSandboxVersionColumn...)
-	if err != nil {
-		return
-	}
-
-	// 新增草稿
-	sandboxDraft.SandboxId = sandboxInfo.SandboxId
-	id, err := to.Insert(sandboxDraft)
-	if err != nil {
-		return
-	}
-	sandboxDraft.SandboxDraftId = int(id)
-	return
-}
+//func UpdateSandboxName(sandboxInfo *Sandbox, sandboxVersion *SandboxVersion, sandboxDraft *SandboxDraft, updateSandboxColumn, updateSandboxVersionColumn []string) (err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	to, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = to.Rollback()
+//		} else {
+//			_ = to.Commit()
+//		}
+//	}()
+//
+//	_, err = to.Update(sandboxInfo, updateSandboxColumn...)
+//	if err != nil {
+//		return
+//	}
+//
+//	// 更新版本
+//	_, err = to.Update(sandboxVersion, updateSandboxVersionColumn...)
+//	if err != nil {
+//		return
+//	}
+//
+//	// 新增草稿
+//	sandboxDraft.SandboxId = sandboxInfo.SandboxId
+//	id, err := to.Insert(sandboxDraft)
+//	if err != nil {
+//		return
+//	}
+//	sandboxDraft.SandboxDraftId = int(id)
+//	return
+//}
 
 // SandboxListItem 沙盘推演列表数据
 type SandboxListItem struct {
@@ -196,18 +216,20 @@ type SandboxListItem struct {
 
 // GetList 获取沙盘列表页
 func GetList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*Sandbox, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := "select a.sandbox_id,a.name,a.code,a.pic_url,a.sys_user_id,a.sys_user_name,a.modify_time,a.create_time from sandbox as a where 1=1 AND a.is_delete = 0 "
 	sql += condition
 	sql += ` order by a.modify_time desc,a.sandbox_id desc`
 
 	totalSql := `select count(1) total from (` + sql + `) z `
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(totalSql, pars).Scan(&total).Error
+	//err = o.Raw(totalSql, pars).QueryRow(&total)
 	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
@@ -217,42 +239,43 @@ type SandboxSaveResp struct {
 	VersionCode string `description:"版本号"`
 }
 
-func GetSandboxAll() (list []*SandboxClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT sandbox_id,sandbox_classify_id,name AS sandbox_classify_name, sort
-		FROM sandbox `
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetSandboxAll() (list []*SandboxClassifyItems, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := `SELECT sandbox_id,sandbox_classify_id,name AS sandbox_classify_name, sort
+//		FROM sandbox `
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // CheckOpSandboxPermission 判断沙盘操作权限
-func CheckOpSandboxPermission(sysUser *system.Admin, createUserId int) (ok bool) {
-	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
-		ok = true
-	}
-	// 如果图表创建人与当前操作人相同的话,那么就是允许操作
-	if ok == false && createUserId == sysUser.AdminId {
-		ok = true
-	}
-	// 如果图表权限id 是 1 ,那么允许编辑
-	if ok == false && sysUser.ChartPermission == 1 {
-		ok = true
-	}
-	return
-}
+//func CheckOpSandboxPermission(sysUser *system.Admin, createUserId int) (ok bool) {
+//	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN || sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN {
+//		ok = true
+//	}
+//	// 如果图表创建人与当前操作人相同的话,那么就是允许操作
+//	if ok == false && createUserId == sysUser.AdminId {
+//		ok = true
+//	}
+//	// 如果图表权限id 是 1 ,那么允许编辑
+//	if ok == false && sysUser.ChartPermission == 1 {
+//		ok = true
+//	}
+//	return
+//}
 
 // GetSandboxInfoByAdminId 获取所有我创建的沙盘,用于分类展示
 func GetSandboxInfoByAdminId(adminId int) (items []*SandboxClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT sandbox_id,sandbox_classify_id,name AS sandbox_classify_name,code,
              sys_user_id,sys_user_name
             FROM sandbox where sys_user_id = ? ORDER BY sort asc,create_time ASC `
-	_, err = o.Raw(sql, adminId).QueryRows(&items)
+	//_, err = o.Raw(sql, adminId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, adminId).Find(&items).Error
 	return
 }
 
 func GetSandboxClassify(sandboxClassifyId int) (sandbox_classify_id string, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT GROUP_CONCAT(t.sandbox_classify_id) AS sandbox_classify_id FROM (
 			SELECT a.sandbox_classify_id FROM sandbox_classify AS a 
 			WHERE a.sandbox_classify_id=?
@@ -266,33 +289,36 @@ func GetSandboxClassify(sandboxClassifyId int) (sandbox_classify_id string, err
 WHERE
 	parent_id IN ( SELECT sandbox_classify_id FROM sandbox_classify WHERE parent_id = ? )
 			)AS t`
-	err = o.Raw(sql, sandboxClassifyId, sandboxClassifyId, sandboxClassifyId).QueryRow(&sandbox_classify_id)
+	//err = o.Raw(sql, sandboxClassifyId, sandboxClassifyId, sandboxClassifyId).QueryRow(&sandbox_classify_id)
+	err = global.DmSQL["data"].Raw(sql, sandboxClassifyId, sandboxClassifyId, sandboxClassifyId).Scan(&sandbox_classify_id).Error
 	return
 }
 
 type SandboxListItems struct {
 	Sandbox
-	ParentIds string
+	ParentIds string `gorm:"-"`
 }
 
 func GetSandboxListByCondition(condition string, pars []interface{}, startSize, pageSize int) (item []*SandboxListItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM sandbox WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += " ORDER BY create_time DESC LIMIT ?,? "
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&item)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&item).Error
 	return
 }
 
 func GetSandboxListCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM sandbox WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, pars).Scan(&count).Error
 	return
 }
 
@@ -302,21 +328,22 @@ type SandboxListResp struct {
 }
 
 func AddSandbox(item *Sandbox) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["data"].Create(item).Error
 	return
 }
 
-func GetSandboxItemsByClassifyId(sandboxClassifyId int) (list []*SandboxClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT sandbox_id,sandbox_classify_id,name AS sandbox_classify_name, sort
-		FROM sandbox  WHERE sandbox_classify_id = ? AND is_delete = 0  ORDER BY sort `
-	_, err = o.Raw(sql, sandboxClassifyId).QueryRows(&list)
-	return
-}
+//func GetSandboxItemsByClassifyId(sandboxClassifyId int) (list []*SandboxClassifyItems, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := `SELECT sandbox_id,sandbox_classify_id,name AS sandbox_classify_name, sort
+//		FROM sandbox  WHERE sandbox_classify_id = ? AND is_delete = 0  ORDER BY sort `
+//	_, err = o.Raw(sql, sandboxClassifyId).QueryRows(&list)
+//	return
+//}
 
 func GetSandboxAllParentByClassifyId(sandboxClassifyId int) (ids string, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT
 	GROUP_CONCAT(DISTINCT m.sandbox_classify_id  ORDER BY m.level) AS ids 
 FROM
@@ -348,7 +375,8 @@ FROM
 	INNER JOIN sandbox_classify m 
 WHERE
 	sandbox_classify_id = vm._id `
-	err = o.Raw(sql, sandboxClassifyId).QueryRow(&ids)
+	//err = o.Raw(sql, sandboxClassifyId).QueryRow(&ids)
+	err = global.DmSQL["data"].Raw(sql, sandboxClassifyId).Scan(&ids).Error
 	return
 }
 
@@ -360,54 +388,62 @@ type MoveSandboxReq struct {
 }
 
 func GetSandboxClassifyCountById(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT count(1) AS count FROM sandbox_classify WHERE sandbox_classify_id=? `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
 // GetSandboxByClassifyIdAndName 根据分类id和沙盘名获取图表信息
-func GetSandboxByClassifyIdAndName(classifyId int, name string) (item *Sandbox, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := ` SELECT * FROM sandbox WHERE sandbox_classify_id = ? and name=? `
-	err = o.Raw(sql, classifyId, name).QueryRow(&item)
-	return
-}
+//func GetSandboxByClassifyIdAndName(classifyId int, name string) (item *Sandbox, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := ` SELECT * FROM sandbox WHERE sandbox_classify_id = ? and name=? `
+//	err = o.Raw(sql, classifyId, name).QueryRow(&item)
+//	return
+//}
 
 // GetSandboxNameByIds 根据沙盘名称
 func GetSandboxNameByIds(ids []int) (items []*Sandbox, err error) {
-	o := orm.NewOrmUsingDB("data")
+	if len(ids) == 0 {
+		return
+	}
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT sandbox_id, name FROM sandbox WHERE sandbox_id in (` + utils.GetOrmInReplace(len(ids)) + `) `
-	_, err = o.Raw(sql, ids).QueryRows(&items)
+	//_, err = o.Raw(sql, ids).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, ids).Find(&items).Error
 	return
 }
 
 func MoveSandbox(sandboxId, classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` UPDATE  sandbox
 			SET
 			  sandbox_classify_id = ?
 			WHERE sandbox_id = ?`
-	_, err = o.Raw(sql, classifyId, sandboxId).Exec()
+	//_, err = o.Raw(sql, classifyId, sandboxId).Exec()
+	err = global.DmSQL["data"].Exec(sql, classifyId, sandboxId).Error
 	return
 }
 
 // UpdateSandboxSortByClassifyId 根据沙盘id更新排序
 func UpdateSandboxSortByClassifyId(classifyId, nowSort, prevSandboxId int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update sandbox set sort = ` + updateSort + ` WHERE sandbox_classify_id=?  AND `
 	if prevSandboxId > 0 {
 		sql += ` (sort > ? or (sandbox_id > ` + fmt.Sprint(prevSandboxId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
 	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	//_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	err = global.DmSQL["data"].Exec(sql, classifyId, nowSort).Error
 	return
 }
 
 // GetFirstSandboxByClassifyId 获取当前分类下,且排序数相同 的排序第一条的数据
 func GetFirstSandboxByClassifyId(classifyId int) (item *Sandbox, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM sandbox WHERE sandbox_classify_id=? order by sort asc,sandbox_id asc limit 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
@@ -441,26 +477,41 @@ type DetailParams struct {
 
 // UpdateSandboxContent 更新沙盘内容
 func UpdateSandboxContent(list []Sandbox) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrmUsingDB("data")
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//
+	////循环更新沙盘内容
+	//for _, sandbox := range list {
+	//	_, err = to.Update(&sandbox, "Content", "ModifyTime")
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+
+	tx := global.DmSQL["data"].Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
-
-	//循环更新沙盘内容
+	cols := []string{"Content", "ModifyTime"}
 	for _, sandbox := range list {
-		_, err = to.Update(&sandbox, "Content", "ModifyTime")
+		err = tx.Select(cols).Updates(sandbox).Error
 		if err != nil {
 			return
 		}
 	}
-
 	return
 }

+ 105 - 58
models/sandbox/sandbox_classify.go

@@ -1,63 +1,98 @@
 package sandbox
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
+//type SandboxClassify struct {
+//	SandboxClassifyId   int       `orm:"column(sandbox_classify_id);pk"`
+//	SandboxClassifyName string    `description:"分类名称"`
+//	ParentId            int       `description:"父级id"`
+//	HasData             int       `description:"是否含有指标数据"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//	SysUserId           int       `description:"创建人id"`
+//	SysUserRealName     string    `description:"创建人姓名"`
+//	Level               int       `description:"层级"`
+//	ChartPermissionId   int       `description:"品种id"`
+//	ChartPermissionName string    `description:"品种名称"`
+//	Sort                int       `description:"排序字段,越小越靠前,默认值:10"`
+//}
+
 type SandboxClassify struct {
-	SandboxClassifyId   int       `orm:"column(sandbox_classify_id);pk" gorm:"primaryKey" `
-	SandboxClassifyName string    `description:"分类名称"`
-	ParentId            int       `description:"父级id"`
-	HasData             int       `description:"是否含有指标数据"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
-	SysUserId           int       `description:"创建人id"`
-	SysUserRealName     string    `description:"创建人姓名"`
-	Level               int       `description:"层级"`
-	ChartPermissionId   int       `description:"品种id"`
-	ChartPermissionName string    `description:"品种名称"`
-	Sort                int       `description:"排序字段,越小越靠前,默认值:10"`
+	SandboxClassifyId   int       `gorm:"primaryKey;column:sandbox_classify_id;type:int(11);not null"`
+	SandboxClassifyName string    `gorm:"column:sandbox_classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ParentId            int       `gorm:"column:parent_id;type:int(11);not null;default:0"`                   // 父级id
+	HasData             int       `gorm:"column:has_data;type:tinyint(4);default:0"`                          // 是否存在指标数据:1有,2:无
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                   // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                   // 修改时间
+	SysUserId           int       `gorm:"column:sys_user_id;type:int(11)"`                                    // 创建人id
+	SysUserRealName     string    `gorm:"column:sys_user_real_name;type:varchar(50)"`                         // 创建人姓名
+	Level               int       `gorm:"column:level;type:int(11);default:0"`                                // 层级
+	Sort                int       `gorm:"column:sort;type:int(9) unsigned;default:10"`                        // 排序字段,越小越靠前,默认值:10
+	ChartPermissionId   int       `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"` // 品种id
+	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(32);not null;default:''"`  // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
 }
 
 func AddSandboxClassify(item *SandboxClassify) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrmUsingDB("data")
+	//lastId, err = o.Insert(item)
+	err = global.DmSQL["data"].Create(item).Error
 	return
 }
 
 // GetSandboxClassifyByParentId
 func GetSandboxClassifyByParentId(parentId int) (items []*SandboxClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM sandbox_classify WHERE parent_id=? order by sort asc,sandbox_classify_id asc`
-	_, err = o.Raw(sql, parentId).QueryRows(&items)
+	//_, err = o.Raw(sql, parentId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, parentId).Find(&items).Error
 	return
 }
 
 // GetSandboxClassifyAll
 func GetSandboxClassifyAll() (items []*SandboxClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM sandbox_classify WHERE parent_id<>0 order by sort asc,sandbox_classify_id asc`
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql).Find(&items).Error
 	return
 }
 
+//type SandboxClassifyItems struct {
+//	SandboxClassifyId   int       `orm:"column(sandbox_classify_id);pk"`
+//	SandboxClassifyName string    `description:"分类名称"`
+//	ParentId            int       `description:"父级id"`
+//	HasData             int       `description:"是否含有指标数据"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//	SysUserId           int       `description:"创建人id"`
+//	SysUserName         string    `description:"创建人姓名"`
+//	Level               int       `description:"层级"`
+//	Sort                int       `description:"排序字段,越小越靠前,默认值:10"`
+//	SandboxId           int       `description:"沙盘id"`
+//	ChartPermissionId   int       `description:"品种id"`
+//	ChartPermissionName string    `description:"品种名称"`
+//	Children            []*SandboxClassifyItems
+//}
+
 type SandboxClassifyItems struct {
-	SandboxClassifyId   int       `orm:"column(sandbox_classify_id);pk" gorm:"primaryKey" `
-	SandboxClassifyName string    `description:"分类名称"`
-	ParentId            int       `description:"父级id"`
-	HasData             int       `description:"是否含有指标数据"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
-	SysUserId           int       `description:"创建人id"`
-	SysUserName         string    `description:"创建人姓名"`
-	Level               int       `description:"层级"`
-	Sort                int       `description:"排序字段,越小越靠前,默认值:10"`
-	SandboxId           int       `description:"沙盘id"`
-	ChartPermissionId   int       `description:"品种id"`
-	ChartPermissionName string    `description:"品种名称"`
-	Children            []*SandboxClassifyItems
+	SandboxClassifyId   int                     `gorm:"primaryKey;column:sandbox_classify_id;type:int(11);not null"`
+	SandboxClassifyName string                  `gorm:"column:sandbox_classify_name;type:varchar(255);not null;default:''"` // 分类名称
+	ParentId            int                     `gorm:"column:parent_id;type:int(11);not null;default:0"`                   // 父级id
+	HasData             int                     `gorm:"column:has_data;type:tinyint(4);default:0"`                          // 是否存在指标数据:1有,2:无
+	CreateTime          time.Time               `gorm:"column:create_time;type:datetime"`                                   // 创建时间
+	ModifyTime          time.Time               `gorm:"column:modify_time;type:datetime"`                                   // 修改时间
+	SysUserId           int                     `gorm:"column:sys_user_id;type:int(11)"`                                    // 创建人id
+	SysUserRealName     string                  `gorm:"column:sys_user_real_name;type:varchar(50)"`                         // 创建人姓名
+	Level               int                     `gorm:"column:level;type:int(11);default:0"`                                // 层级
+	Sort                int                     `gorm:"column:sort;type:int(9) unsigned;default:10"`                        // 排序字段,越小越靠前,默认值:10
+	ChartPermissionId   int                     `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"` // 品种id
+	ChartPermissionName string                  `gorm:"column:chart_permission_name;type:varchar(32);not null;default:''"`  // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
+	Children            []*SandboxClassifyItems `gorm:"-"`
+	SandboxId           int                     `gorm:"column:sandbox_id" description:"沙盘id"`
 }
 
 type SandboxClassifyListResp struct {
@@ -73,17 +108,19 @@ type AddSandboxClassifyReq struct {
 }
 
 func GetSandboxClassifyCount(sandboxClassifyName string, parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT COUNT(1) AS count FROM sandbox_classify WHERE parent_id=? AND sandbox_classify_name=? `
-	err = o.Raw(sql, parentId, sandboxClassifyName).QueryRow(&count)
+	//err = o.Raw(sql, parentId, sandboxClassifyName).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, parentId, sandboxClassifyName).Scan(&count).Error
 	return
 }
 
 // GetSandboxClassifyMaxSort 获取沙盘分类下最大的排序数
 func GetSandboxClassifyMaxSort(parentId int) (sort int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT Max(sort) AS sort FROM sandbox_classify WHERE parent_id=? `
-	err = o.Raw(sql, parentId).QueryRow(&sort)
+	//err = o.Raw(sql, parentId).QueryRow(&sort)
+	err = global.DmSQL["data"].Raw(sql, parentId).Scan(&sort).Error
 	return
 }
 
@@ -95,16 +132,18 @@ type EditSandboxClassifyReq struct {
 }
 
 func GetSandboxClassifyById(classifyId int) (item *SandboxClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM sandbox_classify WHERE sandbox_classify_id=? `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 func EditSandboxClassify(classifyId, ChartPermissionId int, sandboxClassifyName, ChartPermissionName string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `UPDATE sandbox_classify SET sandbox_classify_name=?,chart_permission_id = ?, chart_permission_name = ?, modify_time=NOW() WHERE sandbox_classify_id=? `
-	_, err = o.Raw(sql, sandboxClassifyName, ChartPermissionId, ChartPermissionName, classifyId).Exec()
+	//_, err = o.Raw(sql, sandboxClassifyName, ChartPermissionId, ChartPermissionName, classifyId).Exec()
+	err = global.DmSQL["data"].Exec(sql, sandboxClassifyName, ChartPermissionId, ChartPermissionName, classifyId).Error
 	return
 }
 
@@ -113,7 +152,7 @@ type SandboxClassifyDeleteCheckReq struct {
 }
 
 func GetSandboxInfoCountByClassifyId(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT COUNT(1) AS count FROM sandbox AS a
 				WHERE a.sandbox_classify_id IN(
 				SELECT t.sandbox_classify_id FROM 
@@ -126,7 +165,8 @@ func GetSandboxInfoCountByClassifyId(classifyId int) (count int, err error) {
 				UNION SELECT * FROM sandbox_classify WHERE sandbox_classify_id = @pid 
 				)AS t
 				) AND a.is_delete = 0 `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	//err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DmSQL["data"].Raw(sql, classifyId).Scan(&count).Error
 	return
 }
 
@@ -141,7 +181,7 @@ type DeleteSandboxClassifyReq struct {
 }
 
 func DeleteSandboxClassify(classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` DELETE FROM sandbox_classify
 				WHERE sandbox_classify_id IN(
 				SELECT t.sandbox_classify_id FROM
@@ -154,7 +194,8 @@ func DeleteSandboxClassify(classifyId int) (err error) {
 				UNION SELECT * FROM sandbox_classify WHERE sandbox_classify_id = @pid
 				)AS t
 				) `
-	_, err = o.Raw(sql, classifyId).Exec()
+	//_, err = o.Raw(sql, classifyId).Exec()
+	err = global.DmSQL["data"].Exec(sql, classifyId).Error
 	return
 }
 
@@ -171,33 +212,36 @@ type MoveSandboxClassifyReq struct {
 
 // UpdateSandboxClassifySortByParentId 根据沙盘父类id更新排序
 func UpdateSandboxClassifySortByParentId(parentId, classifyId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` update sandbox_classify set sort = ` + updateSort + ` WHERE parent_id=? and sort > ? `
 	if classifyId > 0 {
 		sql += ` or ( sandbox_classify_id > ` + fmt.Sprint(classifyId) + ` and sort= ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	//_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DmSQL["data"].Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // GetFirstSandboxClassifyByParentId 获取当前父级沙盘分类下的排序第一条的数据
 func GetFirstSandboxClassifyByParentId(parentId int) (item *SandboxClassify, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT * FROM sandbox_classify WHERE parent_id=? order by sort asc,sandbox_classify_id asc limit 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	//err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, parentId).First(&item).Error
 	return
 }
 
 // Update 更新沙盘分类基础信息
 func (sandboxClassify *SandboxClassify) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(sandboxClassify, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(sandboxClassify, cols...)
+	err = global.DmSQL["data"].Select(cols).Updates(sandboxClassify).Error
 	return
 }
 
 // GetSandboxClassifyAndInfoByParentId
 func GetSandboxClassifyAndInfoByParentId(parentId int) (items []*SandboxClassifyItems, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` SELECT
 	0 AS sandbox_id,
 	sandbox_classify_id,
@@ -237,7 +281,8 @@ WHERE
 ORDER BY
 	sort ASC,
 	sandbox_classify_id ASC`
-	_, err = o.Raw(sql, parentId, parentId).QueryRows(&items)
+	//_, err = o.Raw(sql, parentId, parentId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, parentId, parentId).Find(&items).Error
 	return
 }
 
@@ -260,9 +305,9 @@ type SandboxLinkCheckResp struct {
 	ReportIdList    []*SandboxLinkCheckItem `description:"报告id列表"`
 }
 
-// 获取所有子级分类id
+// GetSandboxClassifySubcategories 获取所有子级分类id
 func GetSandboxClassifySubcategories(classifyId int) (Ids string, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `SELECT GROUP_CONCAT(sandbox_classify_id) AS ids
 FROM (
 SELECT @pv := ? AS sandbox_classify_id
@@ -272,14 +317,16 @@ FROM sandbox_classify sc
 JOIN (SELECT @pv := ?) initial
 WHERE sc.parent_id = @pv
 ) subcategories; `
-	err = o.Raw(sql, classifyId, classifyId).QueryRow(&Ids)
+	//err = o.Raw(sql, classifyId, classifyId).QueryRow(&Ids)
+	err = global.DmSQL["data"].Raw(sql, classifyId, classifyId).First(&Ids).Error
 	return
 }
 
 // UpdateSandboxClassifyChartPermissionById 根据沙盘id更新品种
 func UpdateSandboxClassifyChartPermissionById(ChartPermissionId int, ChartPermissionName, Ids string) (err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := ` UPDATE sandbox_classify SET chart_permission_id = ?, chart_permission_name = ? WHERE sandbox_classify_id IN ( ` + Ids + ` ) `
-	_, err = o.Raw(sql, ChartPermissionId, ChartPermissionName).Exec()
+	//_, err = o.Raw(sql, ChartPermissionId, ChartPermissionName).Exec()
+	err = global.DmSQL["data"].Exec(sql, ChartPermissionId, ChartPermissionName).Error
 	return
 }

+ 35 - 20
models/sandbox/sandbox_draft.go

@@ -1,40 +1,55 @@
 package sandbox
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
 // SandboxDraft 沙盘推演草稿表
+//type SandboxDraft struct {
+//	SandboxDraftId      int       `orm:"column(sandbox_draft_id);pk" description:"沙盘草稿记录id"`
+//	SandboxId           int       `description:"沙盘id"`
+//	Name                string    `description:"沙盘名称"`
+//	ChartPermissionId   int       `description:"品种id"`
+//	ChartPermissionName string    `description:"品种名称"`
+//	CurrVersion         int       `description:"当前版本"`
+//	Content             string    `description:"沙盘数据"`
+//	OpUserId            int       `description:"最近一次编辑操作的用户id"`
+//	OpUserName          string    `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
+//	CreateTime          time.Time `description:"创建时间"`
+//}
+
 type SandboxDraft struct {
-	SandboxDraftId      int       `orm:"column(sandbox_draft_id);pk" gorm:"primaryKey"  description:"沙盘草稿记录id"`
-	SandboxId           int       `description:"沙盘id"`
-	Name                string    `description:"沙盘名称"`
-	ChartPermissionId   int       `description:"品种id"`
-	ChartPermissionName string    `description:"品种名称"`
-	CurrVersion         int       `description:"当前版本"`
-	Content             string    `description:"沙盘数据"`
-	OpUserId            int       `description:"最近一次编辑操作的用户id"`
-	OpUserName          string    `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
-	CreateTime          time.Time `description:"创建时间"`
+	SandboxDraftId      int       `gorm:"primaryKey;column:sandbox_draft_id;type:int(9) unsigned;not null"`                     // 沙盘草稿记录id
+	SandboxId           int       `gorm:"index:idx_sandbox_user_id;column:sandbox_id;type:int(9) unsigned;not null;default:0"`  // 沙盘id
+	Name                string    `gorm:"column:name;type:varchar(64);not null;default:''"`                                     // 沙盘名称
+	ChartPermissionId   int       `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"`                   // 品种id
+	ChartPermissionName string    `gorm:"column:chart_permission_name;type:varchar(32);not null;default:''"`                    // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
+	CurrVersion         int       `gorm:"column:curr_version;type:int(9) unsigned;not null;default:0"`                          // 当前版本
+	Content             string    `gorm:"column:content;type:text;not null"`                                                    // 沙盘数据
+	OpUserId            int       `gorm:"index:idx_sandbox_user_id;column:op_user_id;type:int(10) unsigned;not null;default:0"` // 当前编辑操作的用户id
+	OpUserName          string    `gorm:"column:op_user_name;type:varchar(32);not null;default:''"`                             // 当前编辑的用户名称(冗余字段,避免查表)
+	CreateTime          time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`                          // 沙盘草稿创建时间
 }
 
 // AddSandboxDraft 添加一个新的沙盘草稿
 func AddSandboxDraft(sandboxDraft *SandboxDraft) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	// 新增草稿
-	id, err := o.Insert(sandboxDraft)
-	if err != nil {
-		return
-	}
-	sandboxDraft.SandboxDraftId = int(id)
+	//o := orm.NewOrmUsingDB("data")
+	//// 新增草稿
+	//id, err := o.Insert(sandboxDraft)
+	//if err != nil {
+	//	return
+	//}
+	//sandboxDraft.SandboxDraftId = int(id)
+	err = global.DmSQL["data"].Create(sandboxDraft).Error
 	return
 }
 
 // GetLastSandboxDraftById 根据沙盘id获取最后一条沙盘草稿详情
 func GetLastSandboxDraftById(sandboxId int) (sandboxDraft *SandboxDraft, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `select * from sandbox_draft where sandbox_id = ? order by sandbox_draft_id desc `
-	err = o.Raw(sql, sandboxId).QueryRow(&sandboxDraft)
+	//err = o.Raw(sql, sandboxId).QueryRow(&sandboxDraft)
+	err = global.DmSQL["data"].Raw(sql, sandboxId).First(&sandboxDraft).Error
 	return
 }

+ 106 - 66
models/sandbox/sandbox_version.go

@@ -1,103 +1,143 @@
 package sandbox
 
 import (
-	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
 // SandboxVersion 沙盘推演版本表
+//type SandboxVersion struct {
+//	SandboxVersionId    int       `orm:"column(sandbox_version_id);pk" description:"沙盘版本记录id"`
+//	SandboxId           int       `description:"沙盘id"`
+//	Name                string    `description:"沙盘名称"`
+//	ChartPermissionId   int       `description:"品种id"`
+//	ChartPermissionName string    `description:"品种名称"`
+//	CurrVersion         int       `description:"当前版本"`
+//	Content             string    `description:"沙盘数据"`
+//	SvgData             string    `description:"沙盘svg图片数据"`
+//	PicUrl              string    `description:"沙盘图片地址"`
+//	OpUserId            int       `description:"最近一次编辑操作的用户id"`
+//	OpUserName          string    `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
+//	VersionCode         string    `description:"沙盘版本code,对外开放使用"`
+//	IsDelete            int8      `description:"是否删除,0:未删除,1:已删除"`
+//	CreateTime          time.Time `description:"创建时间"`
+//}
+
 type SandboxVersion struct {
-	SandboxVersionId    int       `orm:"column(sandbox_version_id);pk" gorm:"primaryKey"  description:"沙盘版本记录id"`
-	SandboxId           int       `description:"沙盘id"`
-	Name                string    `description:"沙盘名称"`
-	ChartPermissionId   int       `description:"品种id"`
-	ChartPermissionName string    `description:"品种名称"`
-	CurrVersion         int       `description:"当前版本"`
-	Content             string    `description:"沙盘数据"`
-	SvgData             string    `description:"沙盘svg图片数据"`
-	PicUrl              string    `description:"沙盘图片地址"`
-	OpUserId            int       `description:"最近一次编辑操作的用户id"`
-	OpUserName          string    `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
-	VersionCode         string    `description:"沙盘版本code,对外开放使用"`
-	IsDelete            int8      `description:"是否删除,0:未删除,1:已删除"`
-	CreateTime          time.Time `description:"创建时间"`
+	SandboxVersionId    int       `gorm:"primaryKey;column:sandbox_version_id;type:int(9) unsigned;not null"`                                // 沙盘版本记录id
+	SandboxId           int       `gorm:"index:idx_sandbox_version_id;column:sandbox_id;type:int(9) unsigned;not null;default:0"`            // 沙盘id
+	Name                string    `gorm:"index:idx_name;column:name;type:varchar(64);not null;default:''"`                                   // 沙盘名称
+	ChartPermissionId   int       `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"`                                // 品种id
+	ChartPermissionName string    `gorm:"index:idx_chart_permission_name;column:chart_permission_name;type:varchar(32);not null;default:''"` // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
+	CurrVersion         int       `gorm:"index:idx_sandbox_version_id;column:curr_version;type:int(9) unsigned;not null;default:0"`          // 当前版本
+	VersionCode         string    `gorm:"index:idx_version_code;column:version_code;type:varchar(255);default:''"`                           // 沙盘版本code,对外开放使用
+	Content             string    `gorm:"column:content;type:text"`                                                                          // 沙盘数据
+	PicURL              string    `gorm:"column:pic_url;type:varchar(255);not null;default:''"`                                              // 沙盘图片
+	SvgData             string    `gorm:"column:svg_data;type:text;not null"`                                                                // svg信息,便于前端构建图片
+	OpUserId            int       `gorm:"column:op_user_id;type:int(10) unsigned;not null;default:0"`                                        // 当前版本编辑操作的用户id
+	OpUserName          string    `gorm:"index:idx_op_user_name;column:op_user_name;type:varchar(32);not null;default:''"`                   // 当前版本编辑的用户名称(冗余字段,避免查表)
+	IsDelete            int8      `gorm:"column:is_delete;type:tinyint(9);not null;default:0"`                                               // 是否删除,0:未删除,1:已删除
+	CreateTime          time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`                                       // 沙盘创建时间
 }
 
 // Update 沙盘版本字段变更
 func (item *SandboxVersion) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(item, cols...)
+	//o := orm.NewOrmUsingDB("data")
+	//_, err = o.Update(item, cols...)
+	err = global.DmSQL["data"].Select(cols).Updates(item).Error
 	return
 }
 
 // GetSandboxVersionBySandbox2VersionId 根据沙盘id和版本id获取沙盘版本详情
-func GetSandboxVersionBySandbox2VersionId(sandboxId, sandboxVersion int) (sandboxVersionInfo *SandboxVersion, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.sandbox_id = ? and a.is_delete = 0 and b.is_delete = 0 and b.curr_version = ?`
-	err = o.Raw(sql, sandboxId, sandboxVersion).QueryRow(&sandboxVersionInfo)
-	return
-}
+//func GetSandboxVersionBySandbox2VersionId(sandboxId, sandboxVersion int) (sandboxVersionInfo *SandboxVersion, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.sandbox_id = ? and a.is_delete = 0 and b.is_delete = 0 and b.curr_version = ?`
+//	err = o.Raw(sql, sandboxId, sandboxVersion).QueryRow(&sandboxVersionInfo)
+//	return
+//}
 
 // GetSandboxVersionBySandboxVersionCode 根据沙盘版本code获取沙盘版本详情
 func GetSandboxVersionBySandboxVersionCode(sandboxVersionCode string) (sandboxVersionInfo *SandboxVersion, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.is_delete = 0 and b.is_delete = 0  and b.version_code = ?`
-	err = o.Raw(sql, sandboxVersionCode).QueryRow(&sandboxVersionInfo)
+	//err = o.Raw(sql, sandboxVersionCode).QueryRow(&sandboxVersionInfo)
+	err = global.DmSQL["data"].Raw(sql, sandboxVersionCode).First(&sandboxVersionInfo).Error
 	return
 }
 
 // GetLastSandboxVersionBySandbox2VersionId 根据沙盘id和版本id获取距离最新的沙盘版本详情
-func GetLastSandboxVersionBySandbox2VersionId(sandboxId, sandboxVersion int) (sandboxVersionInfo *SandboxVersion, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.sandbox_id = ? and a.is_delete = 0 and b.is_delete = 0  and b.curr_version < ? order by b.curr_version desc`
-	err = o.Raw(sql, sandboxId, sandboxVersion).QueryRow(&sandboxVersionInfo)
-	return
-}
+//func GetLastSandboxVersionBySandbox2VersionId(sandboxId, sandboxVersion int) (sandboxVersionInfo *SandboxVersion, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := `select b.* from sandbox a join sandbox_version b on a.sandbox_id=b.sandbox_id where a.sandbox_id = ? and a.is_delete = 0 and b.is_delete = 0  and b.curr_version < ? order by b.curr_version desc`
+//	err = o.Raw(sql, sandboxId, sandboxVersion).QueryRow(&sandboxVersionInfo)
+//	return
+//}
+
+// SandboxVersionListItem 沙盘推演版本列表数据
+//type SandboxVersionListItem struct {
+//	SandboxVersionId    int    `orm:"column(sandbox_version_id);pk" description:"沙盘版本记录id"`
+//	SandboxId           int    `description:"沙盘id"`
+//	Name                string `description:"沙盘名称"`
+//	ChartPermissionId   int    `description:"品种id"`
+//	ChartPermissionName string `description:"品种名称"`
+//	CurrVersion         int    `description:"当前版本"`
+//	//Content             string    `description:"沙盘数据"`
+//	PicUrl      string    `description:"沙盘图片地址"`
+//	OpUserId    int       `description:"最近一次编辑操作的用户id"`
+//	OpUserName  string    `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
+//	VersionCode string    `description:"沙盘版本code,对外开放使用"`
+//	IsDelete    int8      `description:"是否删除,0:未删除,1:已删除" json:"-"`
+//	CanEdit     bool      `description:"是否可编辑"`
+//	ModifyTime  time.Time `description:"最后一次修改时间"`
+//	CreateTime  time.Time `description:"创建时间"`
+//}
 
 // SandboxVersionListItem 沙盘推演版本列表数据
 type SandboxVersionListItem struct {
-	SandboxVersionId    int    `orm:"column(sandbox_version_id);pk" gorm:"primaryKey"  description:"沙盘版本记录id"`
-	SandboxId           int    `description:"沙盘id"`
-	Name                string `description:"沙盘名称"`
-	ChartPermissionId   int    `description:"品种id"`
-	ChartPermissionName string `description:"品种名称"`
-	CurrVersion         int    `description:"当前版本"`
-	//Content             string    `description:"沙盘数据"`
-	PicUrl      string    `description:"沙盘图片地址"`
-	OpUserId    int       `description:"最近一次编辑操作的用户id"`
-	OpUserName  string    `description:"最近一次编辑的用户名称(冗余字段,避免查表)"`
-	VersionCode string    `description:"沙盘版本code,对外开放使用"`
-	IsDelete    int8      `description:"是否删除,0:未删除,1:已删除" json:"-"`
-	CanEdit     bool      `description:"是否可编辑"`
-	ModifyTime  time.Time `description:"最后一次修改时间"`
-	CreateTime  time.Time `description:"创建时间"`
+	SandboxVersionId    int    `gorm:"primaryKey;column:sandbox_version_id;type:int(9) unsigned;not null"`                                // 沙盘版本记录id
+	SandboxId           int    `gorm:"index:idx_sandbox_version_id;column:sandbox_id;type:int(9) unsigned;not null;default:0"`            // 沙盘id
+	Name                string `gorm:"index:idx_name;column:name;type:varchar(64);not null;default:''"`                                   // 沙盘名称
+	ChartPermissionId   int    `gorm:"column:chart_permission_id;type:int(9) unsigned;not null;default:0"`                                // 品种id
+	ChartPermissionName string `gorm:"index:idx_chart_permission_name;column:chart_permission_name;type:varchar(32);not null;default:''"` // 品种名称(冗余字段,避免列表页查询时再去关联表查询)
+	CurrVersion         int    `gorm:"index:idx_sandbox_version_id;column:curr_version;type:int(9) unsigned;not null;default:0"`          // 当前版本
+	VersionCode         string `gorm:"index:idx_version_code;column:version_code;type:varchar(255);default:''"`                           // 沙盘版本code,对外开放使用
+	//Content             string    `gorm:"column:content;type:text"`                                                                          // 沙盘数据
+	PicURL     string    `gorm:"column:pic_url;type:varchar(255);not null;default:''"`                            // 沙盘图片
+	SvgData    string    `gorm:"column:svg_data;type:text;not null"`                                              // svg信息,便于前端构建图片
+	OpUserId   int       `gorm:"column:op_user_id;type:int(10) unsigned;not null;default:0"`                      // 当前版本编辑操作的用户id
+	OpUserName string    `gorm:"index:idx_op_user_name;column:op_user_name;type:varchar(32);not null;default:''"` // 当前版本编辑的用户名称(冗余字段,避免查表)
+	IsDelete   int8      `gorm:"column:is_delete;type:tinyint(9);not null;default:0"`                             // 是否删除,0:未删除,1:已删除
+	CreateTime time.Time `gorm:"column:create_time;type:timestamp;default:CURRENT_TIMESTAMP"`                     // 沙盘创建时间
+	ModifyTime time.Time `gorm:"-" description:"最后一次修改时间"`
+	CanEdit    bool      `gorm:"-" description:"是否可编辑"`
 }
 
 // GetVersionList 获取沙盘版本列表页
 func GetVersionList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*SandboxVersionListItem, err error) {
-	o := orm.NewOrmUsingDB("data")
+	//o := orm.NewOrmUsingDB("data")
 	sql := "select b.sandbox_version_id,b.sandbox_id,b.name,b.chart_permission_id,b.chart_permission_name,b.curr_version,b.version_code,b.pic_url,b.op_user_id,b.op_user_name,b.create_time from sandbox as a join sandbox_version b on a.sandbox_id=b.sandbox_id where 1=1 AND a.is_delete = 0  AND b.is_delete = 0 "
 	sql += condition
 	sql += ` order by b.sandbox_version_id desc`
 
 	totalSql := `select count(1) total from (` + sql + `) z `
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	//err = o.Raw(totalSql, pars).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(totalSql, pars).Scan(&total).Error
 	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = global.DmSQL["data"].Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
 // GetTotalSandboxVersionBySandboxId 根据沙盘id获取沙盘版本数量
-func GetTotalSandboxVersionBySandboxId(sandboxId int) (sandboxVersionInfo *SandboxVersion, err error) {
-	o := orm.NewOrmUsingDB("data")
-	sql := `select count(1) total from sandbox_version b where b.sandbox_id = ? and b.is_delete = 0 `
-	err = o.Raw(sql, sandboxId).QueryRow(&sandboxVersionInfo)
-	return
-}
+//func GetTotalSandboxVersionBySandboxId(sandboxId int) (sandboxVersionInfo *SandboxVersion, err error) {
+//	o := orm.NewOrmUsingDB("data")
+//	sql := `select count(1) total from sandbox_version b where b.sandbox_id = ? and b.is_delete = 0 `
+//	err = o.Raw(sql, sandboxId).QueryRow(&sandboxVersionInfo)
+//	return
+//}
 
 type TotalSandboxVersion struct {
 	SandboxId int `description:"沙盘id"`
@@ -105,13 +145,13 @@ type TotalSandboxVersion struct {
 }
 
 // GetTotalSandboxVersionBySandboxIdList 根据沙盘id获取沙盘版本数量
-func GetTotalSandboxVersionBySandboxIdList(sandboxIdList []int) (items []*TotalSandboxVersion, err error) {
-	num := len(sandboxIdList)
-	if num <= 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("data")
-	sql := `select sandbox_id,count(1) AS total from sandbox_version b where b.sandbox_id in (` + utils.GetOrmInReplace(num) + `) and b.is_delete = 0 GROUP BY sandbox_id`
-	_, err = o.Raw(sql, sandboxIdList).QueryRows(&items)
-	return
-}
+//func GetTotalSandboxVersionBySandboxIdList(sandboxIdList []int) (items []*TotalSandboxVersion, err error) {
+//	num := len(sandboxIdList)
+//	if num <= 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("data")
+//	sql := `select sandbox_id,count(1) AS total from sandbox_version b where b.sandbox_id in (` + utils.GetOrmInReplace(num) + `) and b.is_delete = 0 GROUP BY sandbox_id`
+//	_, err = o.Raw(sql, sandboxIdList).QueryRows(&items)
+//	return
+//}

+ 235 - 84
models/semantic_analysis/sa_compare.go

@@ -1,24 +1,38 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
+//type SaCompare struct {
+//	SaCompareId  int       `orm:"column(sa_compare_id);pk" description:"比对ID"`
+//	ClassifyId   int       `description:"比对分类ID"`
+//	ClassifyName string    `description:"比对分类名称"`
+//	Title        string    `description:"标题"`
+//	ResultImg    string    `description:"比对结果图片"`
+//	SysAdminId   int       `description:"创建人ID"`
+//	SysAdminName string    `description:"创建人姓名"`
+//	Sort         int       `description:"排序"`
+//	CreateTime   time.Time `description:"创建时间"`
+//	ModifyTime   time.Time `description:"修改时间"`
+//}
+
 type SaCompare struct {
-	SaCompareId  int       `orm:"column(sa_compare_id);pk" gorm:"primaryKey"  description:"比对ID"`
-	ClassifyId   int       `description:"比对分类ID"`
-	ClassifyName string    `description:"比对分类名称"`
-	Title        string    `description:"标题"`
-	ResultImg    string    `description:"比对结果图片"`
-	SysAdminId   int       `description:"创建人ID"`
-	SysAdminName string    `description:"创建人姓名"`
-	Sort         int       `description:"排序"`
-	CreateTime   time.Time `description:"创建时间"`
-	ModifyTime   time.Time `description:"修改时间"`
+	SaCompareId  int       `gorm:"primaryKey;column:sa_compare_id;type:int(10) unsigned;not null"`                    // 语义分析-比对Id
+	ClassifyId   int       `gorm:"index:idx_classify_id;column:classify_id;type:int(10) unsigned;not null;default:0"` // 比对分类Id
+	ClassifyName string    `gorm:"column:classify_name;type:varchar(128);not null;default:''"`                        // 比对分类名称
+	Title        string    `gorm:"column:title;type:varchar(255);not null;default:''"`                                // 分析标题
+	ResultImg    string    `gorm:"column:result_img;type:varchar(255);not null;default:''"`                           // 比对结果图片
+	SysAdminId   int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`                      // 创建人Id
+	SysAdminName string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`                       // 创建人姓名
+	Sort         int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                              // 排序
+	CreateTime   time.Time `gorm:"column:create_time;type:datetime"`                                                  // 创建时间
+	ModifyTime   time.Time `gorm:"column:modify_time;type:datetime"`                                                  // 更新时间
 }
 
 var SaCompareColumns = struct {
@@ -50,53 +64,59 @@ func (m *SaCompare) TableName() string {
 }
 
 func (m *SaCompare) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaCompareId = int(id)
+	//o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaCompareId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaCompare) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaCompare) Del() (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaCompareId).Exec()
+	//_, err = o.Raw(sql, m.SaCompareId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaCompareId).Error
 	return
 }
 
 func (m *SaCompare) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaCompare) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaCompare) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaCompare) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompare, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -106,12 +126,13 @@ func (m *SaCompare) GetItemsByCondition(condition string, pars []interface{}, fi
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaCompare) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompare, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -122,11 +143,16 @@ func (m *SaCompare) GetPageItemsByCondition(startSize, pageSize int, condition s
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -213,42 +239,82 @@ type SaCompareUpdateResultImgReq struct {
 
 // UpdateSaCompareClassifyByClassifyId 更新比对分类信息
 func UpdateSaCompareClassifyByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `UPDATE sa_compare SET classify_name = ? WHERE classify_id = ?`
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
+	//_, err = o.Raw(sql, classifyName, classifyId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyName, classifyId).Error
 	return
 }
 
 // CreateSaCompare 新增比对、比对段落和比对标签
 func CreateSaCompare(compareItem *SaCompare, compareDocs []*SaCompareDoc, compareLabels []*SaCompareLabel) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//// 新增比对
+	//lastId, err := tx.Insert(compareItem)
+	//if err != nil {
+	//	return
+	//}
+	//compareId := int(lastId)
+	//compareItem.SaCompareId = compareId
+	//
+	//// 新增比对段落
+	//if len(compareDocs) > 0 {
+	//	for i := range compareDocs {
+	//		compareDocs[i].CompareId = compareId
+	//	}
+	//	if _, e := tx.InsertMulti(len(compareDocs), compareDocs); e != nil {
+	//		err = e
+	//		return
+	//	}
+	//}
+	//
+	//// 新增比对标签
+	//if len(compareLabels) > 0 {
+	//	for i := range compareLabels {
+	//		compareLabels[i].CompareId = compareId
+	//	}
+	//	if _, e := tx.InsertMulti(len(compareLabels), compareLabels); e != nil {
+	//		err = e
+	//		return
+	//	}
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	// 新增比对
-	lastId, err := tx.Insert(compareItem)
-	if err != nil {
+	e := tx.Create(compareItem).Error
+	if e != nil {
+		err = fmt.Errorf("insert compare err: %v", e)
 		return
 	}
-	compareId := int(lastId)
-	compareItem.SaCompareId = compareId
 
 	// 新增比对段落
 	if len(compareDocs) > 0 {
 		for i := range compareDocs {
-			compareDocs[i].CompareId = compareId
+			compareDocs[i].CompareId = compareItem.SaCompareId
 		}
-		if _, e := tx.InsertMulti(len(compareDocs), compareDocs); e != nil {
-			err = e
+		e = tx.CreateInBatches(compareDocs, utils.MultiAddNum).Error
+		if e != nil {
+			err = fmt.Errorf("insert docs err: %v", e)
 			return
 		}
 	}
@@ -256,10 +322,11 @@ func CreateSaCompare(compareItem *SaCompare, compareDocs []*SaCompareDoc, compar
 	// 新增比对标签
 	if len(compareLabels) > 0 {
 		for i := range compareLabels {
-			compareLabels[i].CompareId = compareId
+			compareLabels[i].CompareId = compareItem.SaCompareId
 		}
-		if _, e := tx.InsertMulti(len(compareLabels), compareLabels); e != nil {
-			err = e
+		e = tx.CreateInBatches(compareLabels, utils.MultiAddNum).Error
+		if e != nil {
+			err = fmt.Errorf("insert labels err: %v", e)
 			return
 		}
 	}
@@ -268,34 +335,86 @@ func CreateSaCompare(compareItem *SaCompare, compareDocs []*SaCompareDoc, compar
 
 // UpdateSaCompare 保存比对、比对段落和比对标签
 func UpdateSaCompare(compareItem *SaCompare, compareDocs []*SaCompareDoc, compareLabels []*SaCompareLabel, compareUpCols []string) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//// 删除比对段落和标签
+	//sql := `DELETE FROM sa_compare_doc WHERE compare_id = ?`
+	//_, err = tx.Raw(sql, compareItem.SaCompareId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//sql = `DELETE FROM sa_compare_label WHERE compare_id = ?`
+	//_, err = tx.Raw(sql, compareItem.SaCompareId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 更新比对
+	//_, err = tx.Update(compareItem, compareUpCols...)
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 新增比对段落
+	//if len(compareDocs) > 0 {
+	//	for i := range compareDocs {
+	//		compareDocs[i].CompareId = compareItem.SaCompareId
+	//	}
+	//	if _, e := tx.InsertMulti(len(compareDocs), compareDocs); e != nil {
+	//		err = e
+	//		return
+	//	}
+	//}
+	//
+	//// 新增比对标签
+	//if len(compareLabels) > 0 {
+	//	for i := range compareLabels {
+	//		compareLabels[i].CompareId = compareItem.SaCompareId
+	//	}
+	//	if _, e := tx.InsertMulti(len(compareLabels), compareLabels); e != nil {
+	//		err = e
+	//		return
+	//	}
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	// 删除比对段落和标签
 	sql := `DELETE FROM sa_compare_doc WHERE compare_id = ?`
-	_, err = tx.Raw(sql, compareItem.SaCompareId).Exec()
-	if err != nil {
+	e := tx.Exec(sql, compareItem.SaCompareId).Error
+	if e != nil {
+		err = fmt.Errorf("delete docs err: %v", e)
 		return
 	}
 	sql = `DELETE FROM sa_compare_label WHERE compare_id = ?`
-	_, err = tx.Raw(sql, compareItem.SaCompareId).Exec()
-	if err != nil {
+	e = tx.Exec(sql, compareItem.SaCompareId).Error
+	if e != nil {
+		err = fmt.Errorf("delete labels err: %v", e)
 		return
 	}
 
 	// 更新比对
-	_, err = tx.Update(compareItem, compareUpCols...)
-	if err != nil {
+	e = tx.Select(compareUpCols).Updates(compareItem).Error
+	if e != nil {
+		err = fmt.Errorf("update compare err: %v", e)
 		return
 	}
 
@@ -304,8 +423,9 @@ func UpdateSaCompare(compareItem *SaCompare, compareDocs []*SaCompareDoc, compar
 		for i := range compareDocs {
 			compareDocs[i].CompareId = compareItem.SaCompareId
 		}
-		if _, e := tx.InsertMulti(len(compareDocs), compareDocs); e != nil {
-			err = e
+		e = tx.CreateInBatches(compareDocs, utils.MultiAddNum).Error
+		if e != nil {
+			err = fmt.Errorf("insert docs err: %v", e)
 			return
 		}
 	}
@@ -315,8 +435,9 @@ func UpdateSaCompare(compareItem *SaCompare, compareDocs []*SaCompareDoc, compar
 		for i := range compareLabels {
 			compareLabels[i].CompareId = compareItem.SaCompareId
 		}
-		if _, e := tx.InsertMulti(len(compareLabels), compareLabels); e != nil {
-			err = e
+		e = tx.CreateInBatches(compareLabels, utils.MultiAddNum).Error
+		if e != nil {
+			err = fmt.Errorf("insert labels err: %v", e)
 			return
 		}
 	}
@@ -368,31 +489,59 @@ type SaCompareDelReq struct {
 
 // DelSaCompare 删除文档和段落
 func DelSaCompare(compareId int) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//sql := `DELETE FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
+	//_, err = tx.Raw(sql, compareId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//sql = `DELETE FROM sa_compare_doc WHERE compare_id = ?`
+	//_, err = tx.Raw(sql, compareId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//sql = `DELETE FROM sa_compare_label WHERE compare_id = ?`
+	//_, err = tx.Raw(sql, compareId).Exec()
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
+	// 删除比对/段落/标签
 	sql := `DELETE FROM sa_compare WHERE sa_compare_id = ? LIMIT 1`
-	_, err = tx.Raw(sql, compareId).Exec()
-	if err != nil {
+	e := tx.Exec(sql, compareId).Error
+	if e != nil {
+		err = fmt.Errorf("delete compare err: %v", e)
 		return
 	}
 	sql = `DELETE FROM sa_compare_doc WHERE compare_id = ?`
-	_, err = tx.Raw(sql, compareId).Exec()
-	if err != nil {
+	e = tx.Exec(sql, compareId).Error
+	if e != nil {
+		err = fmt.Errorf("delete docs err: %v", e)
 		return
 	}
 	sql = `DELETE FROM sa_compare_label WHERE compare_id = ?`
-	_, err = tx.Raw(sql, compareId).Exec()
+	e = tx.Exec(sql, compareId).Error
+	if e != nil {
+		err = fmt.Errorf("delete labels err: %v", e)
+	}
 	return
 }
 
@@ -406,20 +555,22 @@ type SaCompareMoveReq struct {
 
 // UpdateSaCompareSort 根据分类ID更新排序
 func UpdateSaCompareSort(classifyId, nowSort int, prevId int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := ` UPDATE sa_compare SET sort = ` + updateSort + ` WHERE classify_id = ? AND `
 	if prevId > 0 {
 		sql += ` ( sort > ? or ( sa_compare_id > ` + fmt.Sprint(prevId) + ` and sort = ` + fmt.Sprint(nowSort) + ` )) `
 	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	//_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyId, nowSort).Error
 	return
 }
 
 // GetFirstSortSaCompare 获取排序最前的比对
 func GetFirstSortSaCompare(classifyId int) (item *SaCompare, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := ` SELECT * FROM sa_compare WHERE classify_id = ? ORDER BY sort ASC,sa_compare_id ASC LIMIT 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).Find(&item).Error
 	return
 }
 

+ 49 - 28
models/semantic_analysis/sa_compare_classify.go

@@ -1,20 +1,29 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
+//type SaCompareClassify struct {
+//	SaCompareClassifyId int       `orm:"column(sa_compare_classify_id);pk" description:"分类ID"`
+//	ClassifyName        string    `description:"分类名称"`
+//	SysAdminId          int       `description:"创建人ID"`
+//	SysAdminName        string    `description:"创建人姓名"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//}
+
 type SaCompareClassify struct {
-	SaCompareClassifyId int       `orm:"column(sa_compare_classify_id);pk" gorm:"primaryKey"  description:"分类ID"`
-	ClassifyName        string    `description:"分类名称"`
-	SysAdminId          int       `description:"创建人ID"`
-	SysAdminName        string    `description:"创建人姓名"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
+	SaCompareClassifyId int       `gorm:"primaryKey;column:sa_compare_classify_id;type:int(10) unsigned;not null"` // 语义分析-文档分类Id
+	ClassifyName        string    `gorm:"column:classify_name;type:varchar(128);not null;default:''"`              // 分类名称
+	SysAdminId          int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`            // 创建人Id
+	SysAdminName        string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`             // 创建人姓名
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                        // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                        // 更新时间
 }
 
 var SaCompareClassifyColumns = struct {
@@ -38,53 +47,59 @@ func (m *SaCompareClassify) TableName() string {
 }
 
 func (m *SaCompareClassify) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaCompareClassifyId = int(id)
+	//o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaCompareClassifyId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaCompareClassify) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaCompareClassify) Del() (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sa_compare_classify WHERE sa_compare_classify_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaCompareClassifyId).Exec()
+	//_, err = o.Raw(sql, m.SaCompareClassifyId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaCompareClassifyId).Error
 	return
 }
 
 func (m *SaCompareClassify) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare_classify WHERE sa_compare_classify_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaCompareClassify) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare_classify WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaCompareClassify) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaCompareClassify) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompareClassify, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -94,12 +109,13 @@ func (m *SaCompareClassify) GetItemsByCondition(condition string, pars []interfa
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaCompareClassify) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompareClassify, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -110,11 +126,16 @@ func (m *SaCompareClassify) GetPageItemsByCondition(startSize, pageSize int, con
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 

+ 94 - 87
models/semantic_analysis/sa_compare_doc.go

@@ -1,15 +1,21 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 )
 
+//type SaCompareDoc struct {
+//	SaCompareDocId int `orm:"column(sa_compare_doc_id);pk"`
+//	CompareId      int `description:"比对ID"`
+//	DocId          int `description:"文档ID"`
+//}
+
 type SaCompareDoc struct {
-	SaCompareDocId int `orm:"column(sa_compare_doc_id);pk" gorm:"primaryKey" `
-	CompareId      int `description:"比对ID"`
-	DocId          int `description:"文档ID"`
+	SaCompareDocId int `gorm:"primaryKey;column:sa_compare_doc_id;type:int(10) unsigned;not null"`              // 比对文档Id
+	CompareId      int `gorm:"index:idx_compare_id;column:compare_id;type:int(10) unsigned;not null;default:0"` // 比对Id
+	DocId          int `gorm:"column:doc_id;type:int(10) unsigned;not null;default:0"`                          // 文档Id
 }
 
 var SaCompareDocColumns = struct {
@@ -26,54 +32,54 @@ func (m *SaCompareDoc) TableName() string {
 	return "sa_compare_doc"
 }
 
-func (m *SaCompareDoc) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaCompareDocId = int(id)
-	return
-}
+//func (m *SaCompareDoc) Create() (err error) {
+//	o := orm.NewOrm()
+//	id, err := o.Insert(m)
+//	if err != nil {
+//		return
+//	}
+//	m.SaCompareDocId = int(id)
+//	return
+//}
 
-func (m *SaCompareDoc) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
-	return
-}
+//func (m *SaCompareDoc) Update(cols []string) (err error) {
+//	o := orm.NewOrm()
+//	_, err = o.Update(m, cols...)
+//	return
+//}
 
-func (m *SaCompareDoc) Del() (err error) {
-	o := orm.NewOrm()
-	sql := `DELETE FROM sa_compare_doc WHERE sa_compare_doc_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaCompareDocId).Exec()
-	return
-}
+//func (m *SaCompareDoc) Del() (err error) {
+//	o := orm.NewOrm()
+//	sql := `DELETE FROM sa_compare_doc WHERE sa_compare_doc_id = ? LIMIT 1`
+//	_, err = o.Raw(sql, m.SaCompareDocId).Exec()
+//	return
+//}
 
-func (m *SaCompareDoc) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
-	sql := `SELECT * FROM sa_compare_doc WHERE sa_compare_doc_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
-	return
-}
+//func (m *SaCompareDoc) GetItemById(id int) (err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT * FROM sa_compare_doc WHERE sa_compare_doc_id = ? LIMIT 1`
+//	err = o.Raw(sql, id).QueryRow(&m)
+//	return
+//}
 
-func (m *SaCompareDoc) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
-	sql := `SELECT * FROM sa_compare_doc WHERE 1=1 `
-	sql += condition
-	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
-	return
-}
+//func (m *SaCompareDoc) GetItemByCondition(condition string, pars []interface{}) (err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT * FROM sa_compare_doc WHERE 1=1 `
+//	sql += condition
+//	sql += ` LIMIT 1`
+//	err = o.Raw(sql, pars).QueryRow(&m)
+//	return
+//}
 
-func (m *SaCompareDoc) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
-	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
+//func (m *SaCompareDoc) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+//	o := orm.NewOrm()
+//	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
+//	err = o.Raw(sql, pars).QueryRow(&count)
+//	return
+//}
 
 func (m *SaCompareDoc) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompareDoc, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -83,29 +89,30 @@ func (m *SaCompareDoc) GetItemsByCondition(condition string, pars []interface{},
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
-func (m *SaCompareDoc) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompareDoc, err error) {
-	o := orm.NewOrm()
-	fields := strings.Join(fieldArr, ",")
-	if len(fieldArr) == 0 {
-		fields = `*`
-	}
-	order := ``
-	if orderRule != "" {
-		order = ` ORDER BY ` + orderRule
-	}
-	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
-		return
-	}
-	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
-	return
-}
+//func (m *SaCompareDoc) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompareDoc, err error) {
+//	o := orm.NewOrm()
+//	fields := strings.Join(fieldArr, ",")
+//	if len(fieldArr) == 0 {
+//		fields = `*`
+//	}
+//	order := ``
+//	if orderRule != "" {
+//		order = ` ORDER BY ` + orderRule
+//	}
+//	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
+//	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+//	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+//		return
+//	}
+//	sql += ` LIMIT ?,?`
+//	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+//	return
+//}
 
 // SaCompareDocSection 比对文档段落信息
 type SaCompareDocSection struct {
@@ -119,25 +126,25 @@ type SaCompareDocSection struct {
 }
 
 // GetSaCompareDocAndSections 获取比对关联的文档段落
-func GetSaCompareDocAndSections(compareId int) (items []*SaCompareDocSection, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT
-				a.doc_id,
-				b.title,
-				b.theme,
-				b.classify_name,
-				c.sa_doc_section_id AS section_id,
-				c.content,
-				c.sort
-			FROM
-				sa_compare_doc AS a
-			JOIN sa_doc AS b ON a.doc_id = b.sa_doc_id
-			JOIN sa_doc_section AS c ON a.doc_id = c.doc_id
-			WHERE
-				a.compare_id = ?
-			ORDER BY
-				a.doc_id,
-				c.sort ASC`
-	_, err = o.Raw(sql, compareId).QueryRows(&items)
-	return
-}
+//func GetSaCompareDocAndSections(compareId int) (items []*SaCompareDocSection, err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT
+//				a.doc_id,
+//				b.title,
+//				b.theme,
+//				b.classify_name,
+//				c.sa_doc_section_id AS section_id,
+//				c.content,
+//				c.sort
+//			FROM
+//				sa_compare_doc AS a
+//			JOIN sa_doc AS b ON a.doc_id = b.sa_doc_id
+//			JOIN sa_doc_section AS c ON a.doc_id = c.doc_id
+//			WHERE
+//				a.compare_id = ?
+//			ORDER BY
+//				a.doc_id,
+//				c.sort ASC`
+//	_, err = o.Raw(sql, compareId).QueryRows(&items)
+//	return
+//}

+ 72 - 41
models/semantic_analysis/sa_compare_label.go

@@ -1,26 +1,42 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
+//type SaCompareLabel struct {
+//	SaCompareLabelId int       `orm:"column(sa_compare_label_id);pk" description:"段落标签ID"`
+//	CompareId        int       `description:"比对ID"`
+//	DocId            int       `description:"文档ID"`
+//	SectionId        int       `description:"段落ID"`
+//	LabelId          int       `description:"标签ID"`
+//	LabelName        string    `description:"标签名称"`
+//	IsPart           int       `description:"是否为片段: 0-整段; 1-片段"`
+//	StartIndex       int       `description:"片段开始下标"`
+//	EndIndex         int       `description:"片段结束下标"`
+//	Content          string    `description:"内容"`
+//	SysAdminId       int       `description:"创建人ID"`
+//	SysAdminName     string    `description:"创建人姓名"`
+//	CreateTime       time.Time `description:"创建时间"`
+//}
+
 type SaCompareLabel struct {
-	SaCompareLabelId int       `orm:"column(sa_compare_label_id);pk" gorm:"primaryKey"  description:"段落标签ID"`
-	CompareId        int       `description:"比对ID"`
-	DocId            int       `description:"文档ID"`
-	SectionId        int       `description:"段落ID"`
-	LabelId          int       `description:"标签ID"`
-	LabelName        string    `description:"标签名称"`
-	IsPart           int       `description:"是否为片段: 0-整段; 1-片段"`
-	StartIndex       int       `description:"片段开始下标"`
-	EndIndex         int       `description:"片段结束下标"`
-	Content          string    `description:"内容"`
-	SysAdminId       int       `description:"创建人ID"`
-	SysAdminName     string    `description:"创建人姓名"`
-	CreateTime       time.Time `description:"创建时间"`
+	SaCompareLabelId int       `gorm:"primaryKey;column:sa_compare_label_id;type:int(10) unsigned;not null"`            // 语义分析-文档段落标签Id
+	CompareId        int       `gorm:"index:idx_compare_id;column:compare_id;type:int(10) unsigned;not null;default:0"` // 比对Id
+	DocId            int       `gorm:"index:idx_doc_id;column:doc_id;type:int(10) unsigned;not null;default:0"`         // 文档Id
+	SectionId        int       `gorm:"index:idx_section_id;column:section_id;type:int(10) unsigned;not null;default:0"` // 段落Id
+	LabelId          int       `gorm:"index:idx_label_id;column:label_id;type:int(10) unsigned;not null;default:0"`     // 标签Id
+	LabelName        string    `gorm:"column:label_name;type:varchar(128);not null;default:''"`                         // 标签名称
+	IsPart           int       `gorm:"column:is_part;type:tinyint(4) unsigned;not null;default:0"`                      // 是否为片段:0-整段;1-片段
+	StartIndex       int       `gorm:"column:start_index;type:int(10) unsigned;not null;default:0"`                     // 片段开始下标
+	EndIndex         int       `gorm:"column:end_index;type:int(10) unsigned;not null;default:0"`                       // 片段结束下标
+	Content          string    `gorm:"column:content;type:text"`                                                        // 内容
+	SysAdminId       int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`                    // 创建人Id
+	SysAdminName     string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`                     // 创建人姓名
+	CreateTime       time.Time `gorm:"column:create_time;type:datetime"`                                                // 创建时间
 }
 
 var SaCompareLabelColumns = struct {
@@ -57,48 +73,54 @@ func (m *SaCompareLabel) TableName() string {
 }
 
 func (m *SaCompareLabel) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaCompareLabelId = int(id)
+	//o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaCompareLabelId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaCompareLabel) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaCompareLabel) Del() (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sa_compare_label WHERE sa_compare_label_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaCompareLabelId).Exec()
+	//_, err = o.Raw(sql, m.SaCompareLabelId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaCompareLabelId).Error
 	return
 }
 
 func (m *SaCompareLabel) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare_label WHERE sa_compare_label_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaCompareLabel) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare_label WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaCompareLabel) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
@@ -110,14 +132,15 @@ type SaCompareLabelGroupCount struct {
 }
 
 func (m *SaCompareLabel) GetGroupCountByCondition(condition string, pars []interface{}, groupRule string) (items []*SaCompareLabelGroupCount, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) AS use_num, %s FROM %s WHERE 1=1 %s GROUP BY %s`, groupRule, m.TableName(), condition, groupRule)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaCompareLabel) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompareLabel, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -127,12 +150,13 @@ func (m *SaCompareLabel) GetItemsByCondition(condition string, pars []interface{
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaCompareLabel) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompareLabel, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -143,19 +167,25 @@ func (m *SaCompareLabel) GetPageItemsByCondition(startSize, pageSize int, condit
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // UpdateSaCompareLabelByLabelId 更新比对标签信息
 func UpdateSaCompareLabelByLabelId(labelId int, labelName string) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `UPDATE sa_compare_label SET label_name = ? WHERE label_id = ?`
-	_, err = o.Raw(sql, labelName, labelId).Exec()
+	//_, err = o.Raw(sql, labelName, labelId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, labelName, labelId).Error
 	return
 }
 
@@ -175,7 +205,7 @@ type SaCompareLabelItem struct {
 
 // GetSaCompareLabelByCond 获取比对标签
 func GetSaCompareLabelByCond(condition string, pars []interface{}) (items []*SaCompareLabelItem, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT
 				a.sa_compare_label_id,
 				a.label_id,
@@ -197,6 +227,7 @@ func GetSaCompareLabelByCond(condition string, pars []interface{}) (items []*SaC
 				a.doc_id,
 				c.sort ASC`
 	sql = fmt.Sprintf(sql, condition)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }

+ 86 - 35
models/semantic_analysis/sa_compare_search_keyword.go

@@ -1,18 +1,26 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // SaCompareSearchKeyword 文档比对搜索关键词表
+//type SaCompareSearchKeyword struct {
+//	SaCompareSearchKeywordId int       `orm:"column(sa_compare_search_keyword_id);pk"`
+//	CompareId                int       `description:"文档比对ID"`
+//	Keyword                  string    `description:"关键词"`
+//	CreateTime               time.Time `description:"创建时间"`
+//}
+
 type SaCompareSearchKeyword struct {
-	SaCompareSearchKeywordId int       `orm:"column(sa_compare_search_keyword_id);pk" gorm:"primaryKey" `
-	CompareId                int       `description:"文档比对ID"`
-	Keyword                  string    `description:"关键词"`
-	CreateTime               time.Time `description:"创建时间"`
+	SaCompareSearchKeywordId int       `gorm:"primaryKey;column:sa_compare_search_keyword_id;type:int(10) unsigned;not null"`
+	CompareId                int       `gorm:"index:idx_compare_id;column:compare_id;type:int(10) unsigned;not null;default:0"` // 比对Id
+	Keyword                  string    `gorm:"column:keyword;type:varchar(128);not null;default:''"`                            // 关键词
+	CreateTime               time.Time `gorm:"column:create_time;type:datetime"`                                                // 创建时间
 }
 
 var SaCompareSearchKeywordColumns = struct {
@@ -32,53 +40,59 @@ func (m *SaCompareSearchKeyword) TableName() string {
 }
 
 func (m *SaCompareSearchKeyword) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaCompareSearchKeywordId = int(id)
+	//o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaCompareSearchKeywordId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) Del() (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sa_compare_search_keyword WHERE sa_compare_search_keyword_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaCompareSearchKeywordId).Exec()
+	//_, err = o.Raw(sql, m.SaCompareSearchKeywordId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaCompareSearchKeywordId).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare_search_keyword WHERE sa_compare_search_keyword_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_compare_search_keyword WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaCompareSearchKeyword, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -88,12 +102,13 @@ func (m *SaCompareSearchKeyword) GetItemsByCondition(condition string, pars []in
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaCompareSearchKeyword) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaCompareSearchKeyword, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -104,11 +119,16 @@ func (m *SaCompareSearchKeyword) GetPageItemsByCondition(startSize, pageSize int
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -118,11 +138,38 @@ type SaCompareSearchKeywordSaveReq struct {
 }
 
 func (m *SaCompareSearchKeyword) DelAndCreateSearchKeywords(compareId int, keywords []string) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//}()
+	//
+	//sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ?`, m.TableName(), SaCompareSearchKeywordColumns.CompareId)
+	//if _, e := o.Raw(sql, compareId).Exec(); e != nil {
+	//	return e
+	//}
+	//if len(keywords) > 0 {
+	//	items := make([]*SaCompareSearchKeyword, 0)
+	//	for _, v := range keywords {
+	//		items = append(items, &SaCompareSearchKeyword{
+	//			CompareId:  compareId,
+	//			Keyword:    v,
+	//			CreateTime: time.Now().Local(),
+	//		})
+	//	}
+	//	if _, e := o.InsertMulti(len(items), items); e != nil {
+	//		return e
+	//	}
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -132,8 +179,10 @@ func (m *SaCompareSearchKeyword) DelAndCreateSearchKeywords(compareId int, keywo
 	}()
 
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ?`, m.TableName(), SaCompareSearchKeywordColumns.CompareId)
-	if _, e := o.Raw(sql, compareId).Exec(); e != nil {
-		return e
+	e := tx.Exec(sql, compareId).Error
+	if e != nil {
+		err = fmt.Errorf("remove keyword err: %v", e)
+		return
 	}
 	if len(keywords) > 0 {
 		items := make([]*SaCompareSearchKeyword, 0)
@@ -144,8 +193,10 @@ func (m *SaCompareSearchKeyword) DelAndCreateSearchKeywords(compareId int, keywo
 				CreateTime: time.Now().Local(),
 			})
 		}
-		if _, e := o.InsertMulti(len(items), items); e != nil {
-			return e
+		e = tx.CreateInBatches(items, utils.MultiAddNum).Error
+		if e != nil {
+			err = fmt.Errorf("insert keywords err: %v", e)
+			return
 		}
 	}
 	return

+ 195 - 76
models/semantic_analysis/sa_doc.go

@@ -1,27 +1,42 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
+//type SaDoc struct {
+//	SaDocId      int       `orm:"column(sa_doc_id);pk" description:"文档ID"`
+//	ClassifyId   int       `description:"文档分类ID"`
+//	ClassifyName string    `description:"分类名称"`
+//	Title        string    `description:"标题"`
+//	Theme        string    `description:"主题"`
+//	CoverImg     string    `description:"封面图"`
+//	ContentMd5   string    `description:"内容md5, 用于内容去重"`
+//	SysAdminId   int       `description:"创建人ID"`
+//	SysAdminName string    `description:"创建人姓名"`
+//	Sort         int       `description:"排序"`
+//	CreateTime   time.Time `description:"创建时间"`
+//	ModifyTime   time.Time `description:"修改时间"`
+//}
+
 type SaDoc struct {
-	SaDocId      int       `orm:"column(sa_doc_id);pk" gorm:"primaryKey"  description:"文档ID"`
-	ClassifyId   int       `description:"文档分类ID"`
-	ClassifyName string    `description:"分类名称"`
-	Title        string    `description:"标题"`
-	Theme        string    `description:"主题"`
-	CoverImg     string    `description:"封面图"`
-	ContentMd5   string    `description:"内容md5, 用于内容去重"`
-	SysAdminId   int       `description:"创建人ID"`
-	SysAdminName string    `description:"创建人姓名"`
-	Sort         int       `description:"排序"`
-	CreateTime   time.Time `description:"创建时间"`
-	ModifyTime   time.Time `description:"修改时间"`
+	SaDocId      int       `gorm:"primaryKey;column:sa_doc_id;type:int(10) unsigned;not null"`                        // 语义分析-文档Id
+	ClassifyId   int       `gorm:"index:idx_classify_id;column:classify_id;type:int(10) unsigned;not null;default:0"` // 文档分类Id
+	ClassifyName string    `gorm:"column:classify_name;type:varchar(128);not null;default:''"`                        // 文档分类名称
+	Title        string    `gorm:"column:title;type:varchar(255);not null;default:''"`                                // 文档标题
+	Theme        string    `gorm:"column:theme;type:varchar(128);not null;default:''"`                                // 主题
+	CoverImg     string    `gorm:"column:cover_img;type:varchar(255);not null;default:''"`                            // 封面图
+	ContentMd5   string    `gorm:"column:content_md5;type:char(32);not null;default:''"`                              // 内容md5后的字符串,用于内容去重
+	SysAdminId   int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`                      // 创建人Id
+	SysAdminName string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`                       // 创建人姓名
+	Sort         int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                              // 排序
+	CreateTime   time.Time `gorm:"column:create_time;type:datetime"`                                                  // 创建时间
+	ModifyTime   time.Time `gorm:"column:modify_time;type:datetime"`                                                  // 更新时间
 }
 
 var SaDocColumns = struct {
@@ -57,53 +72,59 @@ func (m *SaDoc) TableName() string {
 }
 
 func (m *SaDoc) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaDocId = int(id)
+	//// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaDocId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaDoc) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	//// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaDoc) Del() (err error) {
-	o := orm.NewOrm()
+	//// o := orm.NewOrm()
 	sql := `DELETE FROM sa_doc WHERE sa_doc_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaDocId).Exec()
+	//_, err = o.Raw(sql, m.SaDocId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaDocId).Error
 	return
 }
 
 func (m *SaDoc) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	//// o := orm.NewOrm()
 	sql := `SELECT * FROM sa_doc WHERE sa_doc_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaDoc) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	//// o := orm.NewOrm()
 	sql := `SELECT * FROM sa_doc WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaDoc) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaDoc) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaDoc, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -113,12 +134,13 @@ func (m *SaDoc) GetItemsByCondition(condition string, pars []interface{}, fieldA
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaDoc) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaDoc, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -129,44 +151,75 @@ func (m *SaDoc) GetPageItemsByCondition(startSize, pageSize int, condition strin
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // InsertSaDocAndSections 新增文档及段落
 func InsertSaDocAndSections(doc *SaDoc, sections []*SaDocSection) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//lastId, err := tx.Insert(doc)
+	//if err != nil {
+	//	return
+	//}
+	//doc.SaDocId = int(lastId)
+	//
+	//if len(sections) > 0 {
+	//	for i := range sections {
+	//		sections[i].DocId = int(lastId)
+	//		secId, e := tx.Insert(sections[i])
+	//		if e != nil {
+	//			err = e
+	//			return
+	//		}
+	//		sections[i].SaDocSectionId = int(secId)
+	//	}
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
-	lastId, err := tx.Insert(doc)
-	if err != nil {
+	e := tx.Create(doc).Error
+	if e != nil {
+		err = fmt.Errorf("insert doc err: %v", e)
 		return
 	}
-	doc.SaDocId = int(lastId)
 
 	if len(sections) > 0 {
 		for i := range sections {
-			sections[i].DocId = int(lastId)
-			secId, e := tx.Insert(sections[i])
+			sections[i].DocId = doc.SaDocId
+			e = tx.Create(sections[i]).Error
 			if e != nil {
 				err = e
 				return
 			}
-			sections[i].SaDocSectionId = int(secId)
 		}
 	}
 	return
@@ -174,26 +227,49 @@ func InsertSaDocAndSections(doc *SaDoc, sections []*SaDocSection) (err error) {
 
 // DelSaDocAndSections 删除文档和段落
 func DelSaDocAndSections(docId int) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//sql := `DELETE FROM sa_doc WHERE sa_doc_id = ? LIMIT 1`
+	//_, err = tx.Raw(sql, docId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//sql = `DELETE FROM sa_doc_section WHERE doc_id = ?`
+	//_, err = tx.Raw(sql, docId).Exec()
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	sql := `DELETE FROM sa_doc WHERE sa_doc_id = ? LIMIT 1`
-	_, err = tx.Raw(sql, docId).Exec()
-	if err != nil {
+	e := tx.Exec(sql, docId).Error
+	if e != nil {
+		err = fmt.Errorf("delete doc err: %v", e)
 		return
 	}
+
 	sql = `DELETE FROM sa_doc_section WHERE doc_id = ?`
-	_, err = tx.Raw(sql, docId).Exec()
+	e = tx.Exec(sql, docId).Error
+	if e != nil {
+		err = fmt.Errorf("delete sections err: %v", e)
+		return
+	}
 	return
 }
 
@@ -249,46 +325,86 @@ type SaDocDetail struct {
 
 // UpdateSaDocClassifyByClassifyId 更新文档分类信息
 func UpdateSaDocClassifyByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `UPDATE sa_doc SET classify_name = ? WHERE classify_id = ?`
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
+	//_, err = o.Raw(sql, classifyName, classifyId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyName, classifyId).Error
 	return
 }
 
 // UpdateSaDocAndSections 更新文档和段落
 func UpdateSaDocAndSections(docItem *SaDoc, insertSecs, updateSecs []*SaDocSection, delSecIds []int, updateCols, updateSecCols []string) (err error) {
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//// 更新文档
+	//if _, err = tx.Update(docItem, updateCols...); err != nil {
+	//	return
+	//}
+	//// 段落-新增/更新/删除
+	//if len(insertSecs) > 0 {
+	//	if _, err = tx.InsertMulti(len(insertSecs), insertSecs); err != nil {
+	//		return
+	//	}
+	//}
+	//for _, s := range updateSecs {
+	//	if _, err = tx.Update(s, updateSecCols...); err != nil {
+	//		return
+	//	}
+	//}
+	//if len(delSecIds) > 0 {
+	//	sql := `DELETE FROM sa_doc_section WHERE doc_id = ? AND sa_doc_section_id IN (%s)`
+	//	sql = fmt.Sprintf(sql, utils.GetOrmInReplace(len(delSecIds)))
+	//	_, err = tx.Raw(sql, docItem.SaDocId, delSecIds).Exec()
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	// 更新文档
-	if _, err = tx.Update(docItem, updateCols...); err != nil {
+	e := tx.Select(updateCols).Updates(docItem).Error
+	if e != nil {
+		err = fmt.Errorf("update doc err: %v", e)
 		return
 	}
 	// 段落-新增/更新/删除
 	if len(insertSecs) > 0 {
-		if _, err = tx.InsertMulti(len(insertSecs), insertSecs); err != nil {
+		e = tx.CreateInBatches(insertSecs, utils.MultiAddNum).Error
+		if e != nil {
+			err = fmt.Errorf("insert sections err: %v", e)
 			return
 		}
 	}
 	for _, s := range updateSecs {
-		if _, err = tx.Update(s, updateSecCols...); err != nil {
+		e = tx.Select(updateSecCols).Updates(s).Error
+		if e != nil {
+			err = fmt.Errorf("update section err: %v", e)
 			return
 		}
 	}
 	if len(delSecIds) > 0 {
 		sql := `DELETE FROM sa_doc_section WHERE doc_id = ? AND sa_doc_section_id IN (%s)`
 		sql = fmt.Sprintf(sql, utils.GetOrmInReplace(len(delSecIds)))
-		_, err = tx.Raw(sql, docItem.SaDocId, delSecIds).Exec()
+		e = tx.Exec(sql, docItem.SaDocId, delSecIds).Error
+		if e != nil {
+			err = fmt.Errorf("remove sections err: %v", e)
+		}
 	}
 	return
 }
@@ -309,7 +425,7 @@ type ElasticSaDoc struct {
 
 // GetSaDocsWithUseNumByCondition 获取文档及引用数
 func GetSaDocsWithUseNumByCondition(condition string, pars []interface{}) (items []*SaDocItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT
 				a.*, COUNT(b.sa_compare_label_id) AS use_num
 			FROM
@@ -322,25 +438,28 @@ func GetSaDocsWithUseNumByCondition(condition string, pars []interface{}) (items
 			ORDER BY
 			    a.sort ASC, a.create_time DESC, a.sa_doc_id ASC`
 	sql = fmt.Sprintf(sql, condition)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 // UpdateSaDocSort 根据分类ID更新排序
 func UpdateSaDocSort(classifyId, nowSort int, prevId int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := ` UPDATE sa_doc SET sort = ` + updateSort + ` WHERE classify_id = ? AND `
 	if prevId > 0 {
 		sql += ` ( sort > ? or ( sa_doc_id > ` + fmt.Sprint(prevId) + ` and sort = ` + fmt.Sprint(nowSort) + ` )) `
 	}
-	_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	//_, err = o.Raw(sql, classifyId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, classifyId, nowSort).Error
 	return
 }
 
 // GetFirstSortSaDoc 获取排序最前的文档
 func GetFirstSortSaDoc(classifyId int) (item *SaDoc, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := ` SELECT * FROM sa_doc WHERE classify_id = ? ORDER BY sort ASC,sa_doc_id ASC LIMIT 1`
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	//err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, classifyId).First(&item).Error
 	return
 }

+ 51 - 29
models/semantic_analysis/sa_doc_classify.go

@@ -1,21 +1,31 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
+//type SaDocClassify struct {
+//	SaDocClassifyId int       `orm:"column(sa_doc_classify_id);pk" description:"分类ID"`
+//	ClassifyName    string    `description:"分类名称"`
+//	CoverImg        string    `description:"封面图"`
+//	SysAdminId      int       `description:"创建人ID"`
+//	SysAdminName    string    `description:"创建人名称"`
+//	CreateTime      time.Time `description:"创建时间"`
+//	ModifyTime      time.Time `description:"修改时间"`
+//}
+
 type SaDocClassify struct {
-	SaDocClassifyId int       `orm:"column(sa_doc_classify_id);pk" gorm:"primaryKey"  description:"分类ID"`
-	ClassifyName    string    `description:"分类名称"`
-	CoverImg        string    `description:"封面图"`
-	SysAdminId      int       `description:"创建人ID"`
-	SysAdminName    string    `description:"创建人名称"`
-	CreateTime      time.Time `description:"创建时间"`
-	ModifyTime      time.Time `description:"修改时间"`
+	SaDocClassifyId int       `gorm:"primaryKey;column:sa_doc_classify_id;type:int(10) unsigned;not null"` // 语义分析-文档分类Id
+	ClassifyName    string    `gorm:"column:classify_name;type:varchar(128);not null;default:''"`          // 分类名称
+	CoverImg        string    `gorm:"column:cover_img;type:varchar(255);not null;default:''"`              // 封面图
+	SysAdminId      int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"`        // 创建人Id
+	SysAdminName    string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`         // 创建人姓名
+	CreateTime      time.Time `gorm:"column:create_time;type:datetime"`                                    // 创建时间
+	ModifyTime      time.Time `gorm:"column:modify_time;type:datetime"`                                    // 更新时间
 }
 
 var SaDocClassifyColumns = struct {
@@ -41,53 +51,59 @@ func (m *SaDocClassify) TableName() string {
 }
 
 func (m *SaDocClassify) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaDocClassifyId = int(id)
+	//o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaDocClassifyId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaDocClassify) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	//o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaDocClassify) Del() (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sa_doc_classify WHERE sa_doc_classify_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaDocClassifyId).Exec()
+	//_, err = o.Raw(sql, m.SaDocClassifyId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaDocClassifyId).Error
 	return
 }
 
 func (m *SaDocClassify) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_doc_classify WHERE sa_doc_classify_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaDocClassify) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT * FROM sa_doc_classify WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaDocClassify) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaDocClassify) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaDocClassify, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -97,12 +113,13 @@ func (m *SaDocClassify) GetItemsByCondition(condition string, pars []interface{}
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaDocClassify) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaDocClassify, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -113,11 +130,16 @@ func (m *SaDocClassify) GetPageItemsByCondition(startSize, pageSize int, conditi
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 

+ 45 - 26
models/semantic_analysis/sa_doc_section.go

@@ -1,16 +1,23 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 )
 
+//type SaDocSection struct {
+//	SaDocSectionId int    `orm:"column(sa_doc_section_id);pk" description:"段落ID"`
+//	DocId          int    `description:"文档ID"`
+//	Content        string `description:"段落内容"`
+//	Sort           int    `description:"排序"`
+//}
+
 type SaDocSection struct {
-	SaDocSectionId int    `orm:"column(sa_doc_section_id);pk" gorm:"primaryKey"  description:"段落ID"`
-	DocId          int    `description:"文档ID"`
-	Content        string `description:"段落内容"`
-	Sort           int    `description:"排序"`
+	SaDocSectionId int    `gorm:"primaryKey;column:sa_doc_section_id;type:int(10) unsigned;not null"`      // 语义分析-文档段落表
+	DocId          int    `gorm:"index:idx_doc_id;column:doc_id;type:int(10) unsigned;not null;default:0"` // 文档Id
+	Content        string `gorm:"column:content;type:text"`                                                // 段落内容
+	Sort           int    `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                    // 排序
 }
 
 var SaDocSectionColumns = struct {
@@ -30,53 +37,59 @@ func (m *SaDocSection) TableName() string {
 }
 
 func (m *SaDocSection) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaDocSectionId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaDocSectionId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaDocSection) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaDocSection) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `DELETE FROM sa_doc_section WHERE sa_doc_section_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaDocSectionId).Exec()
+	//_, err = o.Raw(sql, m.SaDocSectionId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaDocSectionId).Error
 	return
 }
 
 func (m *SaDocSection) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sa_doc_section WHERE sa_doc_section_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaDocSection) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sa_doc_section WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaDocSection) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaDocSection) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaDocSection, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -86,12 +99,13 @@ func (m *SaDocSection) GetItemsByCondition(condition string, pars []interface{},
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaDocSection) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaDocSection, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -102,11 +116,16 @@ func (m *SaDocSection) GetPageItemsByCondition(startSize, pageSize int, conditio
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 

+ 49 - 28
models/semantic_analysis/sa_label.go

@@ -1,20 +1,29 @@
 package semantic_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
+//type SaLabel struct {
+//	SaLabelId    int       `orm:"column(sa_label_id);pk" description:"标签ID"`
+//	LabelName    string    `description:"标签名称"`
+//	SysAdminId   int       `description:"创建人ID"`
+//	SysAdminName string    `description:"创建人名称"`
+//	CreateTime   time.Time `description:"创建时间"`
+//	ModifyTime   time.Time `description:"修改时间"`
+//}
+
 type SaLabel struct {
-	SaLabelId    int       `orm:"column(sa_label_id);pk" gorm:"primaryKey"  description:"标签ID"`
-	LabelName    string    `description:"标签名称"`
-	SysAdminId   int       `description:"创建人ID"`
-	SysAdminName string    `description:"创建人名称"`
-	CreateTime   time.Time `description:"创建时间"`
-	ModifyTime   time.Time `description:"修改时间"`
+	SaLabelId    int       `gorm:"primaryKey;column:sa_label_id;type:int(10) unsigned;not null"` // 语义分析-标签Id
+	LabelName    string    `gorm:"column:label_name;type:varchar(128);not null;default:''"`      // 标签名称
+	SysAdminId   int       `gorm:"column:sys_admin_id;type:int(10) unsigned;not null;default:0"` // 创建人Id
+	SysAdminName string    `gorm:"column:sys_admin_name;type:varchar(128);not null;default:''"`  // 创建人姓名
+	CreateTime   time.Time `gorm:"column:create_time;type:datetime"`                             // 创建时间
+	ModifyTime   time.Time `gorm:"column:modify_time;type:datetime"`                             // 更新时间
 }
 
 var SaLabelColumns = struct {
@@ -38,53 +47,59 @@ func (m *SaLabel) TableName() string {
 }
 
 func (m *SaLabel) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SaLabelId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SaLabelId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
 func (m *SaLabel) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SaLabel) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `DELETE FROM sa_label WHERE sa_label_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.SaLabelId).Exec()
+	//_, err = o.Raw(sql, m.SaLabelId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SaLabelId).Error
 	return
 }
 
 func (m *SaLabel) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sa_label WHERE sa_label_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	//err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&m).Error
 	return
 }
 
 func (m *SaLabel) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sa_label WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	//err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&m).Error
 	return
 }
 
 func (m *SaLabel) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SaLabel) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SaLabel, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -94,12 +109,13 @@ func (m *SaLabel) GetItemsByCondition(condition string, pars []interface{}, fiel
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SaLabel) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*SaLabel, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -110,11 +126,16 @@ func (m *SaLabel) GetPageItemsByCondition(startSize, pageSize int, condition str
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSql, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 

+ 223 - 97
models/speech_recognition/speech_recognition.go

@@ -1,9 +1,9 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
@@ -18,23 +18,42 @@ const (
 )
 
 // SpeechRecognition 语音识别主表
+//type SpeechRecognition struct {
+//	SpeechRecognitionId int       `orm:"column(speech_recognition_id);pk"`
+//	UniqueCode          string    `description:"唯一编码"`
+//	FileName            string    `description:"文件名称"`
+//	ResourceUrl         string    `description:"文件路径"`
+//	MenuId              int       `description:"目录ID"`
+//	SysUserId           int       `description:"创建人ID"`
+//	SysUserName         string    `description:"创建人姓名"`
+//	State               int       `description:"状态:1-待转换;2-转换完成;3-转换失败"`
+//	Abstract            string    `description:"摘要,取前几段内容"`
+//	Sort                int       `description:"目录下的排序"`
+//	FileState           int       `description:"文件(非语音识别)删除状态:0-正常;1-删除(该字段作为软删标识)"`
+//	FileSecond          int       `description:"文件时长(秒)"`
+//	FileSize            int       `description:"文件大小(byte)"`
+//	ConvertRemark       string    `description:"转写备注-失败原因"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//}
+
 type SpeechRecognition struct {
-	SpeechRecognitionId int       `orm:"column(speech_recognition_id);pk" gorm:"primaryKey" `
-	UniqueCode          string    `description:"唯一编码"`
-	FileName            string    `description:"文件名称"`
-	ResourceUrl         string    `description:"文件路径"`
-	MenuId              int       `description:"目录ID"`
-	SysUserId           int       `description:"创建人ID"`
-	SysUserName         string    `description:"创建人姓名"`
-	State               int       `description:"状态:1-待转换;2-转换完成;3-转换失败"`
-	Abstract            string    `description:"摘要,取前几段内容"`
-	Sort                int       `description:"目录下的排序"`
-	FileState           int       `description:"文件(非语音识别)删除状态:0-正常;1-删除(该字段作为软删标识)"`
-	FileSecond          int       `description:"文件时长(秒)"`
-	FileSize            int       `description:"文件大小(byte)"`
-	ConvertRemark       string    `description:"转写备注-失败原因"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
+	SpeechRecognitionId int       `gorm:"primaryKey;column:speech_recognition_id;type:int(10) unsigned;not null"`    // 语音识别Id
+	UniqueCode          string    `gorm:"column:unique_code;type:varchar(64);not null;default:''"`                   // 唯一编码
+	FileName            string    `gorm:"column:file_name;type:varchar(128);not null;default:''"`                    // 文件名称
+	ResourceUrl         string    `gorm:"column:resource_url;type:varchar(255);not null;default:''"`                 // 文件路径
+	MenuId              int       `gorm:"index:idx_menu_id;column:menu_id;type:int(10) unsigned;not null;default:0"` // 目录Id
+	SysUserId           int       `gorm:"column:sys_user_id;type:int(10) unsigned;not null;default:0"`               // 创建人Id
+	SysUserName         string    `gorm:"column:sys_user_name;type:varchar(128);not null;default:''"`                // 创建人姓名
+	State               int       `gorm:"column:state;type:tinyint(4) unsigned;not null;default:0"`                  // 状态:1-待转换;2-转换完成;3-转换失败
+	Abstract            string    `gorm:"column:abstract;type:text"`                                                 // 摘要,取前几段内容
+	Sort                int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                      // 目录下的排序
+	FileState           int       `gorm:"column:file_state;type:tinyint(4) unsigned;not null;default:0"`             // 文件删除状态:0-正常;1-删除(该字段作为软删标识)
+	FileSecond          int       `gorm:"column:file_second;type:int(10) unsigned;not null;default:0"`               // 文件时长(秒)
+	FileSize            int       `gorm:"column:file_size;type:int(10) unsigned;not null;default:0"`                 // 文件大小(byte)
+	ConvertRemark       string    `gorm:"column:convert_remark;type:varchar(255);not null;default:''"`               // 转写备注-失败原因
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                          // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                          // 更新时间
 }
 
 var SpeechRecognitionCols = struct {
@@ -84,12 +103,13 @@ func (m *SpeechRecognition) PrimaryId() string {
 }
 
 func (m *SpeechRecognition) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SpeechRecognitionId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SpeechRecognitionId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -97,21 +117,24 @@ func (m *SpeechRecognition) CreateMulti(items []*SpeechRecognition) (err error)
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognition) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognition) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.SpeechRecognitionId).Exec()
+	//_, err = o.Raw(sql, m.SpeechRecognitionId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SpeechRecognitionId).Error
 	return
 }
 
@@ -119,39 +142,43 @@ func (m *SpeechRecognition) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognition) GetItemById(id int) (item *SpeechRecognition, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognition) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognition, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognition) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognition) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognition, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -161,12 +188,13 @@ func (m *SpeechRecognition) GetItemsByCondition(condition string, pars []interfa
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognition) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognition, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -176,7 +204,8 @@ func (m *SpeechRecognition) GetPageItemsByCondition(condition string, pars []int
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -277,27 +306,47 @@ func UpdateSpeechAndApiLog(speechItem *SpeechRecognition, speechCols []string, a
 		err = fmt.Errorf("speechItem nil or apiLogItem nil")
 		return
 	}
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//_, e := tx.Update(speechItem, speechCols...)
+	//if e != nil {
+	//	err = fmt.Errorf("update speech err: %s", e.Error())
+	//	return
+	//}
+	//_, e = tx.Update(apiLogItem, logCols...)
+	//if e != nil {
+	//	err = fmt.Errorf("update api log err: %s", e.Error())
+	//	return
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
-	_, e := tx.Update(speechItem, speechCols...)
+	e := tx.Select(speechCols).Updates(speechItem).Error
 	if e != nil {
-		err = fmt.Errorf("update speech err: %s", e.Error())
+		err = fmt.Errorf("update speech err: %v", e)
 		return
 	}
-	_, e = tx.Update(apiLogItem, logCols...)
+	e = tx.Select(logCols).Updates(apiLogItem).Error
 	if e != nil {
-		err = fmt.Errorf("update api log err: %s", e.Error())
+		err = fmt.Errorf("update api err: %v", e)
 		return
 	}
 	return
@@ -309,31 +358,58 @@ func CreateContentAndUpdateSpeechAndApiLog(contents []*SpeechRecognitionContent,
 		err = fmt.Errorf("speechItem nil or apiLogItem nil")
 		return
 	}
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//_, e := tx.Update(speechItem, speechCols...)
+	//if e != nil {
+	//	err = fmt.Errorf("update speech err: %s", e.Error())
+	//	return
+	//}
+	//_, e = tx.Update(apiLogItem, logCols...)
+	//if e != nil {
+	//	err = fmt.Errorf("update api log err: %s", e.Error())
+	//	return
+	//}
+	//if len(contents) > 0 {
+	//	_, e = tx.InsertMulti(len(contents), contents)
+	//	if e != nil {
+	//		err = fmt.Errorf("insert multi contents err: %s", e.Error())
+	//		return
+	//	}
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
-	_, e := tx.Update(speechItem, speechCols...)
+	e := tx.Select(speechCols).Updates(speechItem).Error
 	if e != nil {
-		err = fmt.Errorf("update speech err: %s", e.Error())
+		err = fmt.Errorf("update speech err: %v", e)
 		return
 	}
-	_, e = tx.Update(apiLogItem, logCols...)
+	e = tx.Select(logCols).Updates(apiLogItem).Error
 	if e != nil {
-		err = fmt.Errorf("update api log err: %s", e.Error())
+		err = fmt.Errorf("update api err: %v", e)
 		return
 	}
 	if len(contents) > 0 {
-		_, e = tx.InsertMulti(len(contents), contents)
+		e = tx.CreateInBatches(contents, utils.MultiAddNum).Error
 		if e != nil {
 			err = fmt.Errorf("insert multi contents err: %s", e.Error())
 			return
@@ -399,25 +475,26 @@ func FormatSpeechRecognition2DetailItem(origin *SpeechRecognition, contents []*S
 
 // SpeechRecognitionDetailTag 语音识别详情标签
 type SpeechRecognitionDetailTag struct {
-	TagId   int    `description:"标签ID"`
-	TagName string `description:"标签名称"`
+	TagId   int    `description:"标签ID" gorm:"tag_id"`
+	TagName string `description:"标签名称" gorm:"tag_name"`
 }
 
 // GetSpeechRecognitionTagBySpeechId 获取语音识别标签
 func GetSpeechRecognitionTagBySpeechId(speechId int) (items []*SpeechRecognitionDetailTag, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT a.speech_recognition_tag_id AS tag_id, a.tag_name FROM speech_recognition_tag AS a
 		JOIN speech_recognition_tag_mapping AS b ON a.speech_recognition_tag_id = b.tag_id
 		WHERE b.speech_recognition_id = ?`
-	_, err = o.Raw(sql, speechId).QueryRows(&items)
+	//_, err = o.Raw(sql, speechId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, speechId).Find(&items).Error
 	return
 }
 
 // SpeechRecognitionMappingTags 语音识别标签
 type SpeechRecognitionMappingTags struct {
-	SpeechRecognitionId int    `description:"语音识别ID"`
-	TagId               int    `description:"标签ID"`
-	TagName             string `description:"标签名称"`
+	SpeechRecognitionId int    `description:"语音识别ID" gorm:"speech_recognition_id"`
+	TagId               int    `description:"标签ID" gorm:"tag_id"`
+	TagName             string `description:"标签名称" gorm:"tag_name"`
 }
 
 // GetSpeechRecognitionTagsBySpeechIds 根据语音识别IDs获取标签
@@ -425,11 +502,12 @@ func GetSpeechRecognitionTagsBySpeechIds(speechIds []int) (items []*SpeechRecogn
 	if len(speechIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT a.speech_recognition_id, a.tag_id, b.tag_name FROM speech_recognition_tag_mapping AS a
 		JOIN speech_recognition_tag AS b ON a.tag_id = b.speech_recognition_tag_id
 		WHERE a.speech_recognition_id IN (%s)`, utils.GetOrmInReplace(len(speechIds)))
-	_, err = o.Raw(sql, speechIds).QueryRows(&items)
+	//_, err = o.Raw(sql, speechIds).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, speechIds).Find(&items).Error
 	return
 }
 
@@ -462,30 +540,33 @@ type SpeechRecognitionContentExportReq struct {
 
 // UpdateSortByMenuId 根据分类ID更新排序
 func (m *SpeechRecognition) UpdateSortByMenuId(menuId, nowSort int, prevSpeechId int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`UPDATE %s SET %s = %s WHERE %s = ? `, m.TableName(), SpeechRecognitionCols.Sort, updateSort, SpeechRecognitionCols.MenuId)
 	if prevSpeechId > 0 {
 		sql += fmt.Sprintf(` AND (%s > ? OR (%s > %d AND %s = %d))`, SpeechRecognitionCols.Sort, SpeechRecognitionCols.SpeechRecognitionId, prevSpeechId, SpeechRecognitionCols.Sort, nowSort)
 	} else {
 		sql += fmt.Sprintf(` AND %s > ?`, SpeechRecognitionCols.Sort)
 	}
-	_, err = o.Raw(sql, menuId, nowSort).Exec()
+	//_, err = o.Raw(sql, menuId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuId, nowSort).Error
 	return
 }
 
 // GetMaxSortByMenuId 获取分类下最大Sort
 func (m *SpeechRecognition) GetMaxSortByMenuId(menuId int) (sort int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT MAX(sort) AS sort FROM %s WHERE %s = ?`, m.TableName(), SpeechRecognitionCols.MenuId)
-	err = o.Raw(sql, menuId).QueryRow(&sort)
+	//err = o.Raw(sql, menuId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, menuId).Scan(&sort).Error
 	return
 }
 
 // GetFirstByMenuId 获取目录下排序第一的数据
 func (m *SpeechRecognition) GetFirstByMenuId(menuId int) (item *SpeechRecognition, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? ORDER BY %s ASC, %s ASC LIMIT 1`, m.TableName(), SpeechRecognitionCols.MenuId, SpeechRecognitionCols.Sort, SpeechRecognitionCols.SpeechRecognitionId)
-	err = o.Raw(sql, menuId).QueryRow(&item)
+	//err = o.Raw(sql, menuId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, menuId).First(&item).Error
 	return
 }
 
@@ -500,12 +581,65 @@ func (m *SpeechRecognition) SpeechSave(speechItem *SpeechRecognition, speechCols
 		err = fmt.Errorf("speech nil")
 		return
 	}
-	o := orm.NewOrm()
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("transaction begin err: %s", e.Error())
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	err = fmt.Errorf("transaction begin err: %s", e.Error())
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//}()
+	//
+	//// 转写文件
+	//if len(speechCols) > 0 {
+	//	_, e = tx.Update(speechItem, speechCols...)
+	//	if e != nil {
+	//		err = fmt.Errorf("update speech err: %s", e.Error())
+	//		return
+	//	}
+	//}
+	//
+	//// 转写内容
+	//if len(contents) > 0 {
+	//	sql := fmt.Sprintf(`UPDATE %s SET %s = ?, %s = 1, %s = NOW() WHERE %s = ?`, "speech_recognition_content", SpeechRecognitionContentCols.Content, SpeechRecognitionContentCols.IsUpdate, SpeechRecognitionContentCols.ModifyTime, SpeechRecognitionContentCols.SpeechRecognitionContentId)
+	//	p, e := tx.Raw(sql).Prepare()
+	//	if e != nil {
+	//		err = fmt.Errorf("update prepare err: %s", e.Error())
+	//		return
+	//	}
+	//	defer func() {
+	//		_ = p.Close()
+	//	}()
+	//	for _, v := range contents {
+	//		_, e = p.Exec(v.Content, v.SpeechRecognitionContentId)
+	//		if e != nil {
+	//			err = fmt.Errorf("update exec err: %s", e.Error())
+	//			return
+	//		}
+	//	}
+	//}
+	//
+	//// 标签
+	//sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ?`, "speech_recognition_tag_mapping", SpeechRecognitionTagMappingCols.SpeechRecognitionId)
+	//_, e = tx.Raw(sql, speechItem.SpeechRecognitionId).Exec()
+	//if e != nil {
+	//	err = fmt.Errorf("remove tag mappings err: %s", e.Error())
+	//	return
+	//}
+	//if len(tagMappings) > 0 {
+	//	_, e = tx.InsertMulti(len(tagMappings), tagMappings)
+	//	if e != nil {
+	//		err = fmt.Errorf("insert tag mappings err: %s", e.Error())
+	//		return
+	//	}
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -516,7 +650,7 @@ func (m *SpeechRecognition) SpeechSave(speechItem *SpeechRecognition, speechCols
 
 	// 转写文件
 	if len(speechCols) > 0 {
-		_, e = tx.Update(speechItem, speechCols...)
+		e := tx.Select(speechCols).Updates(speechItem).Error
 		if e != nil {
 			err = fmt.Errorf("update speech err: %s", e.Error())
 			return
@@ -526,16 +660,8 @@ func (m *SpeechRecognition) SpeechSave(speechItem *SpeechRecognition, speechCols
 	// 转写内容
 	if len(contents) > 0 {
 		sql := fmt.Sprintf(`UPDATE %s SET %s = ?, %s = 1, %s = NOW() WHERE %s = ?`, "speech_recognition_content", SpeechRecognitionContentCols.Content, SpeechRecognitionContentCols.IsUpdate, SpeechRecognitionContentCols.ModifyTime, SpeechRecognitionContentCols.SpeechRecognitionContentId)
-		p, e := tx.Raw(sql).Prepare()
-		if e != nil {
-			err = fmt.Errorf("update prepare err: %s", e.Error())
-			return
-		}
-		defer func() {
-			_ = p.Close()
-		}()
 		for _, v := range contents {
-			_, e = p.Exec(v.Content, v.SpeechRecognitionContentId)
+			e := tx.Exec(sql, v.Content, v.SpeechRecognitionContentId).Error
 			if e != nil {
 				err = fmt.Errorf("update exec err: %s", e.Error())
 				return
@@ -545,13 +671,13 @@ func (m *SpeechRecognition) SpeechSave(speechItem *SpeechRecognition, speechCols
 
 	// 标签
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ?`, "speech_recognition_tag_mapping", SpeechRecognitionTagMappingCols.SpeechRecognitionId)
-	_, e = tx.Raw(sql, speechItem.SpeechRecognitionId).Exec()
+	e := tx.Exec(sql, speechItem.SpeechRecognitionId).Error
 	if e != nil {
 		err = fmt.Errorf("remove tag mappings err: %s", e.Error())
 		return
 	}
 	if len(tagMappings) > 0 {
-		_, e = tx.InsertMulti(len(tagMappings), tagMappings)
+		e = tx.CreateInBatches(tagMappings, utils.MultiAddNum).Error
 		if e != nil {
 			err = fmt.Errorf("insert tag mappings err: %s", e.Error())
 			return

+ 52 - 32
models/speech_recognition/speech_recognition_api_log.go

@@ -1,9 +1,9 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -25,14 +25,24 @@ var ApiErrMsgMapping = map[int]string{
 }
 
 // SpeechRecognitionApiLog 语音识别-API请求日志
+//type SpeechRecognitionApiLog struct {
+//	Id                  int       `orm:"column(id);pk"`
+//	SpeechRecognitionId int       `description:"报告类型:1-中文研报;2-英文研报;3-智能研报"`
+//	RequestId           string    `description:"API请求的唯一标识TaskId"`
+//	RequestCode         int       `description:"API请求结果状态码:-1-待请求;0-成功;其他-失败"`
+//	RequestResult       string    `description:"API请求结果-JSON"`
+//	CreateTime          time.Time `description:"创建时间"`
+//	ModifyTime          time.Time `description:"修改时间"`
+//}
+
 type SpeechRecognitionApiLog struct {
-	Id                  int       `orm:"column(id);pk" gorm:"primaryKey" `
-	SpeechRecognitionId int       `description:"报告类型:1-中文研报;2-英文研报;3-智能研报"`
-	RequestId           string    `description:"API请求的唯一标识TaskId"`
-	RequestCode         int       `description:"API请求结果状态码:-1-待请求;0-成功;其他-失败"`
-	RequestResult       string    `description:"API请求结果-JSON"`
-	CreateTime          time.Time `description:"创建时间"`
-	ModifyTime          time.Time `description:"修改时间"`
+	Id                  int       `gorm:"primaryKey;column:id;type:int(10) unsigned;not null"`
+	SpeechRecognitionId int       `gorm:"index:idx_speech_id;column:speech_recognition_id;type:int(10) unsigned;not null;default:0"` // 语音识别Id
+	RequestId           string    `gorm:"column:request_id;type:varchar(64);not null;default:''"`                                    // Api请求的唯一标识TaskId
+	RequestCode         int       `gorm:"column:request_code;type:int(10);not null;default:-1"`                                      // Api请求结果状态码:0-成功;其他-失败
+	RequestResult       string    `gorm:"column:request_result;type:mediumtext"`                                                     // Api请求结果-JSON
+	CreateTime          time.Time `gorm:"column:create_time;type:datetime"`                                                          // 创建时间
+	ModifyTime          time.Time `gorm:"column:modify_time;type:datetime"`                                                          // 更新时间
 }
 
 var SpeechRecognitionApiLogCols = struct {
@@ -62,12 +72,13 @@ func (m *SpeechRecognitionApiLog) PrimaryId() string {
 }
 
 func (m *SpeechRecognitionApiLog) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.Id = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.Id = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -75,21 +86,24 @@ func (m *SpeechRecognitionApiLog) CreateMulti(items []*SpeechRecognitionApiLog)
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.Id).Exec()
+	//_, err = o.Raw(sql, m.Id).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.Id).Error
 	return
 }
 
@@ -97,39 +111,43 @@ func (m *SpeechRecognitionApiLog) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) GetItemById(id int) (item *SpeechRecognitionApiLog, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognitionApiLog, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognitionApiLog, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -139,12 +157,13 @@ func (m *SpeechRecognitionApiLog) GetItemsByCondition(condition string, pars []i
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognitionApiLog) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognitionApiLog, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -154,6 +173,7 @@ func (m *SpeechRecognitionApiLog) GetPageItemsByCondition(condition string, pars
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }

+ 69 - 45
models/speech_recognition/speech_recognition_content.go

@@ -1,24 +1,36 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // SpeechRecognitionContent 语音识别-内容表
+//type SpeechRecognitionContent struct {
+//	SpeechRecognitionContentId int       `orm:"column(speech_recognition_content_id);pk"`
+//	SpeechRecognitionId        int       `description:"语音识别ID"`
+//	Sort                       int       `description:"段落排序"`
+//	Content                    string    `description:"段落内容"`
+//	StartMs                    int       `description:"单句开始时间(毫秒)"`
+//	EndMs                      int       `description:"单句结束时间(毫秒)"`
+//	IsUpdate                   int       `description:"是否手动修改过:0-否;1-是"`
+//	CreateTime                 time.Time `description:"创建时间"`
+//	ModifyTime                 time.Time `description:"修改时间"`
+//}
+
 type SpeechRecognitionContent struct {
-	SpeechRecognitionContentId int       `orm:"column(speech_recognition_content_id);pk" gorm:"primaryKey" `
-	SpeechRecognitionId        int       `description:"语音识别ID"`
-	Sort                       int       `description:"段落排序"`
-	Content                    string    `description:"段落内容"`
-	StartMs                    int       `description:"单句开始时间(毫秒)"`
-	EndMs                      int       `description:"单句结束时间(毫秒)"`
-	IsUpdate                   int       `description:"是否手动修改过:0-否;1-是"`
-	CreateTime                 time.Time `description:"创建时间"`
-	ModifyTime                 time.Time `description:"修改时间"`
+	SpeechRecognitionContentId int       `gorm:"primaryKey;column:speech_recognition_content_id;type:int(10) unsigned;not null"`
+	SpeechRecognitionId        int       `gorm:"index:idx_speech_id;column:speech_recognition_id;type:int(10) unsigned;not null;default:0"` // 语音识别Id
+	Sort                       int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                                      // 段落排序
+	Content                    string    `gorm:"column:content;type:text"`                                                                  // 段落内容
+	StartMs                    int       `gorm:"column:start_ms;type:int(10) unsigned;not null;default:0"`                                  // 单句开始时间(毫秒)
+	EndMs                      int       `gorm:"column:end_ms;type:int(10) unsigned;not null;default:0"`                                    // 单句结束时间(毫秒)
+	IsUpdate                   int       `gorm:"column:is_update;type:tinyint(4) unsigned;not null;default:0"`                              // 是否手动修改过:0-否;1-是
+	CreateTime                 time.Time `gorm:"column:create_time;type:datetime"`                                                          // 创建时间
+	ModifyTime                 time.Time `gorm:"column:modify_time;type:datetime"`                                                          // 更新时间
 }
 
 var SpeechRecognitionContentCols = struct {
@@ -52,12 +64,13 @@ func (m *SpeechRecognitionContent) PrimaryId() string {
 }
 
 func (m *SpeechRecognitionContent) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SpeechRecognitionContentId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SpeechRecognitionContentId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -65,21 +78,24 @@ func (m *SpeechRecognitionContent) CreateMulti(items []*SpeechRecognitionContent
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.SpeechRecognitionContentId).Exec()
+	//_, err = o.Raw(sql, m.SpeechRecognitionContentId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SpeechRecognitionContentId).Error
 	return
 }
 
@@ -87,39 +103,43 @@ func (m *SpeechRecognitionContent) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) GetItemById(id int) (item *SpeechRecognitionContent, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognitionContent, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognitionContent, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -129,12 +149,13 @@ func (m *SpeechRecognitionContent) GetItemsByCondition(condition string, pars []
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognitionContent) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognitionContent, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -144,7 +165,8 @@ func (m *SpeechRecognitionContent) GetPageItemsByCondition(condition string, par
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -184,17 +206,18 @@ func (m *SpeechRecognitionContent) BatchUpdateContents(contents []SpeechRecognit
 	if len(contents) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`UPDATE %s SET %s = ?, %s = 1, %s = NOW() WHERE %s = ?`, m.TableName(), SpeechRecognitionContentCols.Content, SpeechRecognitionContentCols.IsUpdate, SpeechRecognitionContentCols.ModifyTime, SpeechRecognitionContentCols.SpeechRecognitionContentId)
-	p, err := o.Raw(sql).Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close()
-	}()
+	//p, err := o.Raw(sql).Prepare()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	_ = p.Close()
+	//}()
 	for _, v := range contents {
-		_, err = p.Exec(v.Content, v.SpeechRecognitionContentId)
+		//_, err = p.Exec(v.Content, v.SpeechRecognitionContentId)
+		err = global.DEFAULT_DmSQL.Exec(sql, v.Content, v.SpeechRecognitionContentId).Error
 		if err != nil {
 			return
 		}
@@ -204,8 +227,9 @@ func (m *SpeechRecognitionContent) BatchUpdateContents(contents []SpeechRecognit
 
 // ClearContentBySpeechId 清除转写文件内容
 func (m *SpeechRecognitionContent) ClearContentBySpeechId(speechId int) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ?`, m.TableName(), SpeechRecognitionContentCols.SpeechRecognitionId)
-	_, err = o.Raw(sql, speechId).Exec()
+	//_, err = o.Raw(sql, speechId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, speechId).Error
 	return
 }

+ 68 - 42
models/speech_recognition/speech_recognition_menu.go

@@ -1,9 +1,9 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -14,16 +14,28 @@ const (
 )
 
 // SpeechRecognitionMenu 语音识别-目录表
+//type SpeechRecognitionMenu struct {
+//	SpeechRecognitionMenuId int       `orm:"column(speech_recognition_menu_id);pk"`
+//	UniqueCode              string    `description:"唯一编码"`
+//	MenuName                string    `description:"目录名称"`
+//	ParentId                int       `description:"父级ID"`
+//	Level                   int       `description:"目录层级"`
+//	Sort                    int       `description:"排序"`
+//	RootId                  int       `description:"顶级ID"`
+//	CreateTime              time.Time `description:"创建时间"`
+//	ModifyTime              time.Time `description:"修改时间"`
+//}
+
 type SpeechRecognitionMenu struct {
-	SpeechRecognitionMenuId int       `orm:"column(speech_recognition_menu_id);pk" gorm:"primaryKey" `
-	UniqueCode              string    `description:"唯一编码"`
-	MenuName                string    `description:"目录名称"`
-	ParentId                int       `description:"父级ID"`
-	Level                   int       `description:"目录层级"`
-	Sort                    int       `description:"排序"`
-	RootId                  int       `description:"顶级ID"`
-	CreateTime              time.Time `description:"创建时间"`
-	ModifyTime              time.Time `description:"修改时间"`
+	SpeechRecognitionMenuId int       `gorm:"primaryKey;column:speech_recognition_menu_id;type:int(10) unsigned;not null"` // 语音识别目录Id
+	UniqueCode              string    `gorm:"column:unique_code;type:varchar(64);not null;default:''"`                     // 唯一编码
+	MenuName                string    `gorm:"column:menu_name;type:varchar(255);not null;default:''"`                      // 目录名称
+	ParentId                int       `gorm:"column:parent_id;type:int(10) unsigned;not null;default:0"`                   // 父级Id
+	Level                   int       `gorm:"column:level;type:tinyint(4) unsigned;not null;default:0"`                    // 目录层级
+	Sort                    int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                        // 排序
+	RootId                  int       `gorm:"column:root_id;type:int(10) unsigned;not null;default:0"`                     // 顶级Id
+	CreateTime              time.Time `gorm:"column:create_time;type:datetime"`                                            // 创建时间
+	ModifyTime              time.Time `gorm:"column:modify_time;type:datetime"`                                            // 更新时间
 }
 
 var SpeechRecognitionMenuCols = struct {
@@ -57,12 +69,13 @@ func (m *SpeechRecognitionMenu) PrimaryId() string {
 }
 
 func (m *SpeechRecognitionMenu) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SpeechRecognitionMenuId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SpeechRecognitionMenuId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -70,21 +83,24 @@ func (m *SpeechRecognitionMenu) CreateMulti(items []*SpeechRecognitionMenu) (err
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.SpeechRecognitionMenuId).Exec()
+	//_, err = o.Raw(sql, m.SpeechRecognitionMenuId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SpeechRecognitionMenuId).Error
 	return
 }
 
@@ -92,39 +108,43 @@ func (m *SpeechRecognitionMenu) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) GetItemById(id int) (item *SpeechRecognitionMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognitionMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognitionMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -134,12 +154,13 @@ func (m *SpeechRecognitionMenu) GetItemsByCondition(condition string, pars []int
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognitionMenu) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognitionMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -149,7 +170,8 @@ func (m *SpeechRecognitionMenu) GetPageItemsByCondition(condition string, pars [
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -216,28 +238,31 @@ type SpeechRecognitionMenuMoveReq struct {
 
 // UpdateSortByParentId 根据父级ID更新排序
 func (m *SpeechRecognitionMenu) UpdateSortByParentId(parentId, menuId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`UPDATE %s SET %s = %s WHERE %s = ? AND %s > ?`, m.TableName(), SpeechRecognitionMenuCols.Sort, updateSort, SpeechRecognitionMenuCols.ParentId, SpeechRecognitionMenuCols.Sort)
 	if menuId > 0 {
 		sql += fmt.Sprintf(` OR (%s > %d AND %s = %d)`, SpeechRecognitionMenuCols.SpeechRecognitionMenuId, menuId, SpeechRecognitionMenuCols.Sort, nowSort)
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	//_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // GetMaxSortByParentId 获取父级分类下最大Sort
 func (m *SpeechRecognitionMenu) GetMaxSortByParentId(parentId int) (sort int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT MAX(sort) AS sort FROM %s WHERE %s = ?`, m.TableName(), SpeechRecognitionMenuCols.ParentId)
-	err = o.Raw(sql, parentId).QueryRow(&sort)
+	//err = o.Raw(sql, parentId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).Scan(&sort).Error
 	return
 }
 
 // GetFirstByParentId 获取父级目录下排序第一的目录
 func (m *SpeechRecognitionMenu) GetFirstByParentId(parentId int) (item *SpeechRecognitionMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? ORDER BY %s ASC, %s ASC LIMIT 1`, m.TableName(), SpeechRecognitionMenuCols.ParentId, SpeechRecognitionMenuCols.Sort, SpeechRecognitionMenuCols.SpeechRecognitionMenuId)
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	//err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).First(&item).Error
 	return
 }
 
@@ -246,11 +271,12 @@ func (m *SpeechRecognitionMenu) UpdateChildByParentMenuId(menuIds []int, rootId
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	var pars []interface{}
 	pars = append(pars, rootId, levelStep)
 	pars = append(pars, menuIds)
 	sql := fmt.Sprintf(`UPDATE %s SET %s = ?, %s = %s + ? WHERE %s IN (%s)`, m.TableName(), SpeechRecognitionMenuCols.RootId, SpeechRecognitionMenuCols.Level, SpeechRecognitionMenuCols.Level, SpeechRecognitionMenuCols.SpeechRecognitionMenuId, utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, pars).Exec()
+	//_, err = o.Raw(sql, pars).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, pars).Error
 	return
 }

+ 64 - 40
models/speech_recognition/speech_recognition_tag.go

@@ -1,22 +1,32 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // SpeechRecognitionTag 语音识别-标签表
+//type SpeechRecognitionTag struct {
+//	SpeechRecognitionTagId int       `orm:"column(speech_recognition_tag_id);pk"`
+//	UniqueCode             string    `description:"唯一编码"`
+//	TagName                string    `description:"标签名称"`
+//	MenuId                 int       `description:"目录ID"`
+//	Sort                   int       `description:"排序"`
+//	CreateTime             time.Time `description:"创建时间"`
+//	ModifyTime             time.Time `description:"修改时间"`
+//}
+
 type SpeechRecognitionTag struct {
-	SpeechRecognitionTagId int       `orm:"column(speech_recognition_tag_id);pk" gorm:"primaryKey" `
-	UniqueCode             string    `description:"唯一编码"`
-	TagName                string    `description:"标签名称"`
-	MenuId                 int       `description:"目录ID"`
-	Sort                   int       `description:"排序"`
-	CreateTime             time.Time `description:"创建时间"`
-	ModifyTime             time.Time `description:"修改时间"`
+	SpeechRecognitionTagId int       `gorm:"primaryKey;column:speech_recognition_tag_id;type:int(10) unsigned;not null"`
+	UniqueCode             string    `gorm:"column:unique_code;type:varchar(64);not null;default:''"`                   // 唯一编码
+	TagName                string    `gorm:"column:tag_name;type:varchar(128);not null;default:''"`                     // 文件名称
+	MenuId                 int       `gorm:"index:idx_menu_id;column:menu_id;type:int(10) unsigned;not null;default:0"` // 目录Id
+	Sort                   int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                      // 目录下的排序
+	CreateTime             time.Time `gorm:"column:create_time;type:datetime"`                                          // 创建时间
+	ModifyTime             time.Time `gorm:"column:modify_time;type:datetime"`                                          // 更新时间
 }
 
 var SpeechRecognitionTagCols = struct {
@@ -48,12 +58,13 @@ func (m *SpeechRecognitionTag) PrimaryId() string {
 }
 
 func (m *SpeechRecognitionTag) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SpeechRecognitionTagId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SpeechRecognitionTagId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -61,21 +72,24 @@ func (m *SpeechRecognitionTag) CreateMulti(items []*SpeechRecognitionTag) (err e
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.SpeechRecognitionTagId).Exec()
+	//_, err = o.Raw(sql, m.SpeechRecognitionTagId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SpeechRecognitionTagId).Error
 	return
 }
 
@@ -83,39 +97,43 @@ func (m *SpeechRecognitionTag) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) GetItemById(id int) (item *SpeechRecognitionTag, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognitionTag, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognitionTag, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -125,12 +143,13 @@ func (m *SpeechRecognitionTag) GetItemsByCondition(condition string, pars []inte
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognitionTag) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognitionTag, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -140,7 +159,8 @@ func (m *SpeechRecognitionTag) GetPageItemsByCondition(condition string, pars []
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -187,30 +207,33 @@ type SpeechRecognitionTagRemoveReq struct {
 
 // UpdateSortByMenuId 根据分类ID更新排序
 func (m *SpeechRecognitionTag) UpdateSortByMenuId(menuId, nowSort int, prevTagId int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`UPDATE %s SET %s = %s WHERE %s = ? `, m.TableName(), SpeechRecognitionTagCols.Sort, updateSort, SpeechRecognitionTagCols.MenuId)
 	if prevTagId > 0 {
 		sql += fmt.Sprintf(` AND (%s > ? OR (%s > %d AND %s = %d))`, SpeechRecognitionTagCols.Sort, SpeechRecognitionTagCols.SpeechRecognitionTagId, prevTagId, SpeechRecognitionTagCols.Sort, nowSort)
 	} else {
 		sql += fmt.Sprintf(` AND %s > ?`, SpeechRecognitionTagCols.Sort)
 	}
-	_, err = o.Raw(sql, menuId, nowSort).Exec()
+	//_, err = o.Raw(sql, menuId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuId, nowSort).Error
 	return
 }
 
 // GetMaxSortByMenuId 获取分类下最大Sort
 func (m *SpeechRecognitionTag) GetMaxSortByMenuId(menuId int) (sort int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT MAX(sort) AS sort FROM %s WHERE %s = ?`, m.TableName(), SpeechRecognitionTagCols.MenuId)
-	err = o.Raw(sql, menuId).QueryRow(&sort)
+	//err = o.Raw(sql, menuId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, menuId).Scan(&sort).Error
 	return
 }
 
 // GetFirstByMenuId 获取目录下排序第一的数据
 func (m *SpeechRecognitionTag) GetFirstByMenuId(menuId int) (item *SpeechRecognitionTag, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? ORDER BY %s ASC, %s ASC LIMIT 1`, m.TableName(), SpeechRecognitionTagCols.MenuId, SpeechRecognitionTagCols.Sort, SpeechRecognitionTagCols.SpeechRecognitionTagId)
-	err = o.Raw(sql, menuId).QueryRow(&item)
+	//err = o.Raw(sql, menuId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, menuId).First(&item).Error
 	return
 }
 
@@ -218,8 +241,9 @@ func (m *SpeechRecognitionTag) GetTagIdsByMenuIds(menuIds []int) (tagIds []int,
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE %s IN (%s) GROUP BY %s`, SpeechRecognitionTagCols.SpeechRecognitionTagId, m.TableName(), SpeechRecognitionTagCols.MenuId, utils.GetOrmInReplace(len(menuIds)), SpeechRecognitionTagCols.SpeechRecognitionTagId)
-	_, err = o.Raw(sql, menuIds).QueryRows(&tagIds)
+	//_, err = o.Raw(sql, menuIds).QueryRows(&tagIds)
+	err = global.DEFAULT_DmSQL.Raw(sql, menuIds).Scan(&tagIds).Error
 	return
 }

+ 50 - 32
models/speech_recognition/speech_recognition_tag_mapping.go

@@ -1,17 +1,23 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 )
 
 // SpeechRecognitionTagMapping 语音识别-标签关联表
+//type SpeechRecognitionTagMapping struct {
+//	Id                  int `orm:"column(id);pk"`
+//	SpeechRecognitionId int `description:"语音识别ID"`
+//	TagId               int `description:"标签ID"`
+//}
+
 type SpeechRecognitionTagMapping struct {
-	Id                  int `orm:"column(id);pk" gorm:"primaryKey" `
-	SpeechRecognitionId int `description:"语音识别ID"`
-	TagId               int `description:"标签ID"`
+	Id                  int `gorm:"primaryKey;column:id;type:int(10) unsigned;not null"`
+	SpeechRecognitionId int `gorm:"index:idx_speech_id;column:speech_recognition_id;type:int(10) unsigned;not null;default:0"` // 语音识别Id
+	TagId               int `gorm:"index:idx_tag_id;column:tag_id;type:int(10) unsigned;not null;default:0"`                   // 标签Id
 }
 
 var SpeechRecognitionTagMappingCols = struct {
@@ -33,12 +39,13 @@ func (m *SpeechRecognitionTagMapping) PrimaryId() string {
 }
 
 func (m *SpeechRecognitionTagMapping) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.Id = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.Id = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -46,21 +53,24 @@ func (m *SpeechRecognitionTagMapping) CreateMulti(items []*SpeechRecognitionTagM
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.Id).Exec()
+	//_, err = o.Raw(sql, m.Id).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SpeechRecognitionId).Error
 	return
 }
 
@@ -68,39 +78,43 @@ func (m *SpeechRecognitionTagMapping) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) GetItemById(id int) (item *SpeechRecognitionTagMapping, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognitionTagMapping, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognitionTagMapping, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -110,12 +124,13 @@ func (m *SpeechRecognitionTagMapping) GetItemsByCondition(condition string, pars
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMapping) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognitionTagMapping, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -125,15 +140,17 @@ func (m *SpeechRecognitionTagMapping) GetPageItemsByCondition(condition string,
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // ClearMappingBySpeechId 清除转写文件标签关联
 func (m *SpeechRecognitionTagMapping) ClearMappingBySpeechId(speechId int) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ?`, m.TableName(), SpeechRecognitionTagMappingCols.SpeechRecognitionId)
-	_, err = o.Raw(sql, speechId).Exec()
+	//_, err = o.Raw(sql, speechId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, speechId).Error
 	return
 }
 
@@ -141,8 +158,9 @@ func (m *SpeechRecognitionTagMapping) GetSpeechIdsByTagIds(tagIds []int) (speech
 	if len(tagIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE %s IN (%s) GROUP BY %s`, SpeechRecognitionTagMappingCols.SpeechRecognitionId, m.TableName(), SpeechRecognitionTagMappingCols.TagId, utils.GetOrmInReplace(len(tagIds)), SpeechRecognitionTagMappingCols.SpeechRecognitionId)
-	_, err = o.Raw(sql, tagIds).QueryRows(&speechIds)
+	//_, err = o.Raw(sql, tagIds).QueryRows(&speechIds)
+	err = global.DEFAULT_DmSQL.Raw(sql, tagIds).Scan(&speechIds).Error
 	return
 }

+ 68 - 42
models/speech_recognition/speech_recognition_tag_menu.go

@@ -1,9 +1,9 @@
 package speech_recognition
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -14,16 +14,28 @@ const (
 )
 
 // SpeechRecognitionTagMenu 标签目录表
+//type SpeechRecognitionTagMenu struct {
+//	SpeechRecognitionTagMenuId int       `orm:"column(speech_recognition_tag_menu_id);pk"`
+//	UniqueCode                 string    `description:"唯一编码"`
+//	MenuName                   string    `description:"目录名称"`
+//	ParentId                   int       `description:"父级ID"`
+//	Level                      int       `description:"目录层级"`
+//	Sort                       int       `description:"排序"`
+//	RootId                     int       `description:"顶级ID"`
+//	CreateTime                 time.Time `description:"创建时间"`
+//	ModifyTime                 time.Time `description:"修改时间"`
+//}
+
 type SpeechRecognitionTagMenu struct {
-	SpeechRecognitionTagMenuId int       `orm:"column(speech_recognition_tag_menu_id);pk" gorm:"primaryKey" `
-	UniqueCode                 string    `description:"唯一编码"`
-	MenuName                   string    `description:"目录名称"`
-	ParentId                   int       `description:"父级ID"`
-	Level                      int       `description:"目录层级"`
-	Sort                       int       `description:"排序"`
-	RootId                     int       `description:"顶级ID"`
-	CreateTime                 time.Time `description:"创建时间"`
-	ModifyTime                 time.Time `description:"修改时间"`
+	SpeechRecognitionTagMenuId int       `gorm:"primaryKey;column:speech_recognition_tag_menu_id;type:int(10) unsigned;not null"` // 语音识别目录Id
+	UniqueCode                 string    `gorm:"column:unique_code;type:varchar(64);not null;default:''"`                         // 唯一编码
+	MenuName                   string    `gorm:"column:menu_name;type:varchar(255);not null;default:''"`                          // 目录名称
+	ParentId                   int       `gorm:"column:parent_id;type:int(10) unsigned;not null;default:0"`                       // 父级Id
+	Level                      int       `gorm:"column:level;type:tinyint(4) unsigned;not null;default:0"`                        // 目录层级
+	Sort                       int       `gorm:"column:sort;type:int(10) unsigned;not null;default:0"`                            // 目录下的排序
+	RootId                     int       `gorm:"column:root_id;type:int(10) unsigned;not null;default:0"`                         // 顶级Id
+	CreateTime                 time.Time `gorm:"column:create_time;type:datetime"`                                                // 创建时间
+	ModifyTime                 time.Time `gorm:"column:modify_time;type:datetime"`                                                // 更新时间
 }
 
 var SpeechRecognitionTagMenuCols = struct {
@@ -57,12 +69,13 @@ func (m *SpeechRecognitionTagMenu) PrimaryId() string {
 }
 
 func (m *SpeechRecognitionTagMenu) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.SpeechRecognitionTagMenuId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.SpeechRecognitionTagMenuId = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -70,21 +83,24 @@ func (m *SpeechRecognitionTagMenu) CreateMulti(items []*SpeechRecognitionTagMenu
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.SpeechRecognitionTagMenuId).Exec()
+	//_, err = o.Raw(sql, m.SpeechRecognitionTagMenuId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.SpeechRecognitionTagMenuId).Error
 	return
 }
 
@@ -92,39 +108,43 @@ func (m *SpeechRecognitionTagMenu) MultiDel(menuIds []int) (err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, menuIds).Exec()
+	//_, err = o.Raw(sql, menuIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, menuIds).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) GetItemById(id int) (item *SpeechRecognitionTagMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *SpeechRecognitionTagMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	order := ``
 	if orderRule != "" {
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	//err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SpeechRecognitionTagMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -134,12 +154,13 @@ func (m *SpeechRecognitionTagMenu) GetItemsByCondition(condition string, pars []
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *SpeechRecognitionTagMenu) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*SpeechRecognitionTagMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -149,7 +170,8 @@ func (m *SpeechRecognitionTagMenu) GetPageItemsByCondition(condition string, par
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -210,28 +232,31 @@ type SpeechRecognitionTagMenuMoveReq struct {
 
 // UpdateSortByParentId 根据父级ID更新排序
 func (m *SpeechRecognitionTagMenu) UpdateSortByParentId(parentId, menuId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`UPDATE %s SET %s = %s WHERE %s = ? AND %s > ?`, m.TableName(), SpeechRecognitionTagMenuCols.Sort, updateSort, SpeechRecognitionTagMenuCols.ParentId, SpeechRecognitionTagMenuCols.Sort)
 	if menuId > 0 {
 		sql += fmt.Sprintf(` OR (%s > %d AND %s = %d)`, SpeechRecognitionTagMenuCols.SpeechRecognitionTagMenuId, menuId, SpeechRecognitionTagMenuCols.Sort, nowSort)
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	//_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // GetMaxSortByParentId 获取父级分类下最大Sort
 func (m *SpeechRecognitionTagMenu) GetMaxSortByParentId(parentId int) (sort int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT MAX(sort) AS sort FROM %s WHERE %s = ?`, m.TableName(), SpeechRecognitionTagMenuCols.ParentId)
-	err = o.Raw(sql, parentId).QueryRow(&sort)
+	//err = o.Raw(sql, parentId).QueryRow(&sort)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).Scan(&sort).Error
 	return
 }
 
 // GetFirstByParentId 获取父级目录下排序第一的目录
 func (m *SpeechRecognitionTagMenu) GetFirstByParentId(parentId int) (item *SpeechRecognitionTagMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? ORDER BY %s ASC, %s ASC LIMIT 1`, m.TableName(), SpeechRecognitionTagMenuCols.ParentId, SpeechRecognitionTagMenuCols.Sort, SpeechRecognitionTagMenuCols.SpeechRecognitionTagMenuId)
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	//err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).First(&item).Error
 	return
 }
 
@@ -240,11 +265,12 @@ func (m *SpeechRecognitionTagMenu) UpdateChildByParentMenuId(menuIds []int, root
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	var pars []interface{}
 	pars = append(pars, rootId, levelStep)
 	pars = append(pars, menuIds)
 	sql := fmt.Sprintf(`UPDATE %s SET %s = ?, %s = %s + ? WHERE %s IN (%s)`, m.TableName(), SpeechRecognitionTagMenuCols.RootId, SpeechRecognitionTagMenuCols.Level, SpeechRecognitionTagMenuCols.Level, SpeechRecognitionTagMenuCols.SpeechRecognitionTagMenuId, utils.GetOrmInReplace(len(menuIds)))
-	_, err = o.Raw(sql, pars).Exec()
+	//_, err = o.Raw(sql, pars).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, pars).Error
 	return
 }

+ 32 - 19
models/system/admin_config.go

@@ -1,33 +1,44 @@
 package system
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
+//type AdminConfig struct {
+//	ConfigId    int       `orm:"column(config_id);pk" description:"配置id"`
+//	AdminId     int       `description:"系统客户id"`
+//	ConfigCode  string    `description:"配置编码"`
+//	ConfigValue string    `description:"配置值"`
+//	Remark      string    `description:"备注信息"`
+//	CreateTime  time.Time `description:"创建时间"`
+//}
+
 type AdminConfig struct {
-	ConfigId    int       `orm:"column(config_id);pk" gorm:"primaryKey"  description:"配置id"`
-	AdminId     int       `description:"系统客户id"`
-	ConfigCode  string    `description:"配置编码"`
-	ConfigValue string    `description:"配置值"`
-	Remark      string    `description:"备注信息"`
-	CreateTime  time.Time `description:"创建时间"`
+	ConfigId    int       `gorm:"primaryKey;column:config_id;type:int(11);not null"`
+	AdminId     int       `gorm:"column:admin_id;type:int(11);not null;default:0"` // 系统客户id
+	ConfigCode  string    `gorm:"column:config_code;type:varchar(50);default:''"`  // 配置编码
+	ConfigValue string    `gorm:"column:config_value;type:text"`                   // 配置值
+	Remark      string    `gorm:"column:remark;type:varchar(255);default:''"`      // 备注信息
+	CreateTime  time.Time `gorm:"column:create_time;type:datetime"`                // 创建时间
 }
 
 // Update 更新基础信息
 func (item *AdminConfig) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(item, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(item, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(item).Error
 	return
 }
 
 func (item *AdminConfig) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.ConfigId = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(item)
+	//if err != nil {
+	//	return
+	//}
+	//item.ConfigId = int(id)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -37,17 +48,19 @@ var ChartLanguageVar = `chart_language`
 
 // GetConfigDetailByCode 获取详情
 func GetConfigDetailByCode(adminId int, configCode string) (item *AdminConfig, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := ` SELECT * FROM admin_config WHERE admin_id = ? AND  config_code=? `
-	err = o.Raw(sql, adminId, configCode).QueryRow(&item)
+	//err = o.Raw(sql, adminId, configCode).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId, configCode).First(&item).Error
 	return
 }
 
 // GetDefaultConfigDetailByCode 获取默认配置详情
 func GetDefaultConfigDetailByCode(configCode string) (item *AdminConfig, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := ` SELECT * FROM admin_config WHERE admin_id = ? AND  config_code=? `
-	err = o.Raw(sql, 0, configCode).QueryRow(&item)
+	//err = o.Raw(sql, 0, configCode).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, 0, configCode).First(&item).Error
 	return
 }
 

+ 25 - 10
models/system/admin_operate_record.go

@@ -2,24 +2,39 @@ package system
 
 import (
 	"eta_gn/eta_api/global"
+	"fmt"
 	"time"
 )
 
+//type AdminOperateRecord struct {
+//	AdminOperateRecordId int       `gorm:"primaryKey" orm:"column(admin_operate_record_id);pk" description:"id"`
+//	AdminId              int       `description:"系统客户id"`
+//	RealName             string    `description:"配置编码"`
+//	Uuid                 string    `description:"配置值"`
+//	Uri                  string    `description:"地址"`
+//	Params               string    `description:"参数"`
+//	Ip                   string    `description:"IP"`
+//	UserAgent            string    `description:"用户代理信息"`
+//	CreateTime           time.Time `description:"创建时间"`
+//	Header               string
+//}
+
 type AdminOperateRecord struct {
-	AdminOperateRecordId int       `gorm:"primaryKey" orm:"column(admin_operate_record_id);pk" gorm:"primaryKey"  description:"id"`
-	AdminId              int       `description:"系统客户id"`
-	RealName             string    `description:"配置编码"`
-	Uuid                 string    `description:"配置值"`
-	Uri                  string    `description:"地址"`
-	Params               string    `description:"参数"`
-	Ip                   string    `description:"IP"`
-	UserAgent            string    `description:"用户代理信息"`
-	CreateTime           time.Time `description:"创建时间"`
-	Header               string
+	AdminOperateRecordId int       `gorm:"primaryKey;column:admin_operate_record_id;type:int(11);not null"`
+	AdminId              int       `gorm:"index:idx_admin_id;column:admin_id;type:int(11)"`        // 系统用户id,
+	RealName             string    `gorm:"column:real_name;type:varchar(50);default:''"`           // 用户姓名
+	Uuid                 string    `gorm:"index:idx_uuid;column:uuid;type:varchar(50);default:''"` // 配置值,
+	Uri                  string    `gorm:"index:idx_uri;column:uri;type:varchar(255);default:''"`  // 地址,
+	Params               string    `gorm:"column:params;type:text"`                                // 参数,
+	Ip                   string    `gorm:"column:ip;type:varchar(30);default:''"`                  // Ip
+	UserAgent            string    `gorm:"column:user_agent;type:varchar(500);default:''"`         // 用户代理信息
+	CreateTime           time.Time `gorm:"column:create_time;type:datetime"`                       // 创建时间
+	Header               string    `gorm:"column:header;type:text"`                                // 请求头部信息
 }
 
 func (item *AdminOperateRecord) Insert() (err error) {
 	err = global.DEFAULT_DmSQL.Create(item).Error
+	fmt.Println("AdminOperateRecord ERR: ", err)
 
 	return
 }

+ 59 - 36
models/system/admin_verify_code_record.go

@@ -2,8 +2,8 @@ package system
 
 import (
 	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -21,19 +21,34 @@ const (
 )
 
 // AdminVerifyCodeRecord 短信邮箱验证码记录表
+//type AdminVerifyCodeRecord struct {
+//	Id          int       `orm:"column(id);pk"`
+//	VerifyType  int       `description:"验证方式:1-手机号;2-邮箱"`
+//	Source      int       `description:"来源:1-登录;2-异常登录校验;3-忘记密码"`
+//	Mobile      string    `description:"手机号"`
+//	Email       string    `description:"邮箱"`
+//	Code        string    `description:"验证码"`
+//	ExpiredTime time.Time `description:"验证码过期时间"`
+//	SendResult  string    `description:"发送结果"`
+//	SendStatus  int       `description:"发送状态:0-待发送;1-已发送;2-发送失败"`
+//	RequestId   string    `description:"请求ID"`
+//	CreateTime  time.Time `description:"创建时间"`
+//	ModifyTime  time.Time `description:"更新时间"`
+//}
+
 type AdminVerifyCodeRecord struct {
-	Id          int       `orm:"column(id);pk" gorm:"primaryKey" `
-	VerifyType  int       `description:"验证方式:1-手机号;2-邮箱"`
-	Source      int       `description:"来源:1-登录;2-异常登录校验;3-忘记密码"`
-	Mobile      string    `description:"手机号"`
-	Email       string    `description:"邮箱"`
-	Code        string    `description:"验证码"`
-	ExpiredTime time.Time `description:"验证码过期时间"`
-	SendResult  string    `description:"发送结果"`
-	SendStatus  int       `description:"发送状态:0-待发送;1-已发送;2-发送失败"`
-	RequestId   string    `description:"请求ID"`
-	CreateTime  time.Time `description:"创建时间"`
-	ModifyTime  time.Time `description:"更新时间"`
+	Id          int       `gorm:"primaryKey;column:id;type:int(10) unsigned;not null"`
+	VerifyType  int       `gorm:"column:verify_type;type:tinyint(4) unsigned;not null;default:0"` // 验证方式:1-手机号;2-邮箱
+	Source      int       `gorm:"column:source;type:tinyint(4) unsigned;not null;default:0"`      // 来源:1-登录;2-异常登录校验;3-忘记密码
+	Mobile      string    `gorm:"column:mobile;type:varchar(32);not null;default:''"`             // 手机号
+	Email       string    `gorm:"column:email;type:varchar(128);not null;default:''"`             // 邮箱
+	Code        string    `gorm:"column:code;type:varchar(16);not null;default:''"`               // 验证码
+	ExpiredTime time.Time `gorm:"column:expired_time;type:datetime;not null"`                     // 验证码过期时间
+	SendResult  string    `gorm:"column:send_result;type:text"`                                   // 发送结果
+	SendStatus  int       `gorm:"column:send_status;type:tinyint(4) unsigned;not null;default:0"` // 发送状态:0-待发送;1-已发送;2-发送失败
+	RequestId   string    `gorm:"column:request_id;type:varchar(255);not null;default:''"`        // 请求Id
+	CreateTime  time.Time `gorm:"column:create_time;type:datetime"`                               // 创建时间
+	ModifyTime  time.Time `gorm:"column:modify_time;type:datetime"`                               // 更新时间
 }
 
 func (m *AdminVerifyCodeRecord) TableName() string {
@@ -45,12 +60,13 @@ func (m *AdminVerifyCodeRecord) PrimaryId() string {
 }
 
 func (m *AdminVerifyCodeRecord) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.Id = int(id)
+	// o := orm.NewOrm()
+	//id, err := o.Insert(m)
+	//if err != nil {
+	//	return
+	//}
+	//m.Id = int(id)
+	err = global.DEFAULT_DmSQL.Create(m).Error
 	return
 }
 
@@ -58,48 +74,53 @@ func (m *AdminVerifyCodeRecord) CreateMulti(items []*AdminVerifyCodeRecord) (err
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	// o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DmSQL.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	// o := orm.NewOrm()
+	//_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DmSQL.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) Del() (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	_, err = o.Raw(sql, m.Id).Exec()
+	//_, err = o.Raw(sql, m.Id).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, m.Id).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) GetItemById(id int) (item *AdminVerifyCodeRecord, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = o.Raw(sql, id).QueryRow(&item)
+	//err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) GetItemByCondition(condition string, pars []interface{}) (item *AdminVerifyCodeRecord, err error) {
-	o := global.DEFAULT_DmSQL
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = o.Raw(sql, pars).Find(&item).Error
-
+	//err = o.Raw(sql, pars).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).First(&item).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*AdminVerifyCodeRecord, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -109,12 +130,13 @@ func (m *AdminVerifyCodeRecord) GetItemsByCondition(condition string, pars []int
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 func (m *AdminVerifyCodeRecord) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*AdminVerifyCodeRecord, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -124,6 +146,7 @@ func (m *AdminVerifyCodeRecord) GetPageItemsByCondition(condition string, pars [
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }

+ 105 - 111
models/system/research_group.go

@@ -1,131 +1,125 @@
 package system
 
-import (
-	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
 // ResearchGroup 研究方向分组表
-type ResearchGroup struct {
-	ResearchGroupId   int       `orm:"column(research_group_id);pk" gorm:"primaryKey"  description:"研究方向分组ID"`
-	ResearchGroupName string    `json:"research_group_name" description:"研究方向分组名称"`
-	ParentId          int       `json:"parent_id" description:"父类ID"`
-	ChartPermissionId int       `json:"chart_permission_id" description:"品种权限ID"`
-	Sort              int       `json:"sort" description:"排序"`
-	State             int       `json:"state" description:"显示状态 0-不显示 1-显示"`
-	CreateTime        time.Time `json:"create_time" description:"创建时间"`
-	ModifyTime        time.Time `json:"modify_time" description:"更新时间"`
-}
+//type ResearchGroup struct {
+//	ResearchGroupId   int       `orm:"column(research_group_id);pk" description:"研究方向分组ID"`
+//	ResearchGroupName string    `json:"research_group_name" description:"研究方向分组名称"`
+//	ParentId          int       `json:"parent_id" description:"父类ID"`
+//	ChartPermissionId int       `json:"chart_permission_id" description:"品种权限ID"`
+//	Sort              int       `json:"sort" description:"排序"`
+//	State             int       `json:"state" description:"显示状态 0-不显示 1-显示"`
+//	CreateTime        time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime        time.Time `json:"modify_time" description:"更新时间"`
+//}
 
 // GetResearchGroupList 获取研究方向分组列表
-func GetResearchGroupList() (list []*ResearchGroup, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	sql := `SELECT * FROM research_group WHERE state = 1 ORDER BY sort`
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetResearchGroupList() (list []*ResearchGroup, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := `SELECT * FROM research_group WHERE state = 1 ORDER BY sort`
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // GetResearchGroupById 主键获取分组
-func GetResearchGroupById(groupId int) (item *ResearchGroup, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT * FROM research_group WHERE research_group_id = ? LIMIT 1`
-	err = o.Raw(sql, groupId).QueryRow(&item)
-	return
-}
+//func GetResearchGroupById(groupId int) (item *ResearchGroup, err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT * FROM research_group WHERE research_group_id = ? LIMIT 1`
+//	err = o.Raw(sql, groupId).QueryRow(&item)
+//	return
+//}
 
 // ResearchGroupRelation 研究方向关系表
-type ResearchGroupRelation struct {
-	Id              int `orm:"column(id);pk" gorm:"primaryKey" `
-	ResearchGroupId int `json:"research_group_id" description:"分组ID"`
-	AdminId         int `json:"admin_id" description:"研究员ID"`
-}
+//type ResearchGroupRelation struct {
+//	Id              int `orm:"column(id);pk"`
+//	ResearchGroupId int `json:"research_group_id" description:"分组ID"`
+//	AdminId         int `json:"admin_id" description:"研究员ID"`
+//}
 
 // ResearchGroupRelationListByAdminId 根据研究员ID获取研究方向分组关系列表
-func ResearchGroupRelationListByAdminId(adminId int) (list []*ResearchGroupRelation, err error) {
-	o := orm.NewOrm()
-	sql := `SELECT * FROM research_group_relation WHERE admin_id = ?`
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
-	return
-}
+//func ResearchGroupRelationListByAdminId(adminId int) (list []*ResearchGroupRelation, err error) {
+//	o := orm.NewOrm()
+//	sql := `SELECT * FROM research_group_relation WHERE admin_id = ?`
+//	_, err = o.Raw(sql, adminId).QueryRows(&list)
+//	return
+//}
 
-// ResearchGroupRelation 研究方向分组关系表
-type ResearchGroupRelationItem struct {
-	ResearchGroupId int    `json:"research_group_id" description:"研究方向分组ID"`
-	AdminId         int    `json:"admin_id" description:"研究员ID"`
-	AdminName       string `json:"admin_name" description:"研究员姓名"`
-}
+// ResearchGroupRelationItem 研究方向分组关系表
+//type ResearchGroupRelationItem struct {
+//	ResearchGroupId int    `json:"research_group_id" description:"研究方向分组ID"`
+//	AdminId         int    `json:"admin_id" description:"研究员ID"`
+//	AdminName       string `json:"admin_name" description:"研究员姓名"`
+//}
 
 // GetResearchGroupRelationList 获取研究方向分组关系列表
-func GetResearchGroupRelationList(include int) (list []*ResearchGroupRelationItem, err error) {
-	// 是否包含已禁止的研究员, 默认不包含
-	condition := ` WHERE b.enabled = 1 `
-	if include == 1 {
-		condition = ` WHERE 1=1 `
-	}
-	o := orm.NewOrm()
-	sql := `SELECT
-				a.research_group_id,
-				a.admin_id,
-				b.real_name AS admin_name
-			FROM
-				research_group_relation AS a
-			INNER JOIN admin AS b ON a.admin_id = b.admin_id `
-	sql += condition
-	sql += ` ORDER BY
-				a.research_group_id ASC,
-				a.admin_id ASC`
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetResearchGroupRelationList(include int) (list []*ResearchGroupRelationItem, err error) {
+//	// 是否包含已禁止的研究员, 默认不包含
+//	condition := ` WHERE b.enabled = 1 `
+//	if include == 1 {
+//		condition = ` WHERE 1=1 `
+//	}
+//	o := orm.NewOrm()
+//	sql := `SELECT
+//				a.research_group_id,
+//				a.admin_id,
+//				b.real_name AS admin_name
+//			FROM
+//				research_group_relation AS a
+//			INNER JOIN admin AS b ON a.admin_id = b.admin_id `
+//	sql += condition
+//	sql += ` ORDER BY
+//				a.research_group_id ASC,
+//				a.admin_id ASC`
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // UpdateAdminResearchGroup 更新研究员研究方向分组
-func UpdateAdminResearchGroup(adminId int, items []*ResearchGroupRelation) (err error) {
-	o := orm.NewOrm()
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	sql := `DELETE FROM research_group_relation WHERE admin_id = ?`
-	if _, err = o.Raw(sql, adminId).Exec(); err != nil {
-		return
-	}
-	itemsLen := len(items)
-	if itemsLen > 0 {
-		_, err = o.InsertMulti(itemsLen, items)
-	}
-	return
-}
+//func UpdateAdminResearchGroup(adminId int, items []*ResearchGroupRelation) (err error) {
+//	o := orm.NewOrm()
+//	to, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = to.Rollback()
+//		} else {
+//			_ = to.Commit()
+//		}
+//	}()
+//	sql := `DELETE FROM research_group_relation WHERE admin_id = ?`
+//	if _, err = o.Raw(sql, adminId).Exec(); err != nil {
+//		return
+//	}
+//	itemsLen := len(items)
+//	if itemsLen > 0 {
+//		_, err = o.InsertMulti(itemsLen, items)
+//	}
+//	return
+//}
 
 // AdminResearchGroupList 研究员研究方向分组列表
-type AdminResearchGroupList struct {
-	AdminId      int    `json:"admin_id"`
-	GroupNameStr string `json:"group_name_str"`
-}
+//type AdminResearchGroupList struct {
+//	AdminId      int    `json:"admin_id"`
+//	GroupNameStr string `json:"group_name_str"`
+//}
 
 // GetAdminResearchGroupListByAdminId 获取研究员研究方向分组列表
-func GetAdminResearchGroupListByAdminId(adminIds []int) (list []*AdminResearchGroupList, err error) {
-	if len(adminIds) == 0 {
-		return
-	}
-	o := orm.NewOrm()
-	sql := `SELECT
-				a.admin_id,
-				GROUP_CONCAT(b.research_group_name) AS group_name_str
-			FROM
-				research_group_relation AS a
-			INNER JOIN research_group AS b ON a.research_group_id = b.research_group_id
-			WHERE
-				a.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `)
-			GROUP BY
-				a.admin_id`
-	_, err = o.Raw(sql, adminIds).QueryRows(&list)
-	return
-}
+//func GetAdminResearchGroupListByAdminId(adminIds []int) (list []*AdminResearchGroupList, err error) {
+//	if len(adminIds) == 0 {
+//		return
+//	}
+//	o := orm.NewOrm()
+//	sql := `SELECT
+//				a.admin_id,
+//				GROUP_CONCAT(b.research_group_name) AS group_name_str
+//			FROM
+//				research_group_relation AS a
+//			INNER JOIN research_group AS b ON a.research_group_id = b.research_group_id
+//			WHERE
+//				a.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `)
+//			GROUP BY
+//				a.admin_id`
+//	_, err = o.Raw(sql, adminIds).QueryRows(&list)
+//	return
+//}

+ 64 - 44
models/system/sys_admin.go

@@ -1,9 +1,9 @@
 package system
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
@@ -46,23 +46,25 @@ type AdminItem struct {
 }
 
 func GetSysuserList(condition string, pars []interface{}, startSize, pageSize int) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY enabled DESC, last_updated_time DESC, created_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
 func GetSysuserListCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT COUNT(1) AS count FROM admin WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
@@ -124,29 +126,33 @@ type SysuserAddReq struct {
 
 func GetSysAdminCount(adminName string) (count int, err error) {
 	sql := `SELECT COUNT(1) AS count FROM admin WHERE admin_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, adminName).QueryRow(&count)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, adminName).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminName).Scan(&count).Error
 	return
 }
 
 func GetSysAdminByName(adminName string) (item *Admin, err error) {
 	sql := `SELECT * FROM admin WHERE admin_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, adminName).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, adminName).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminName).First(&item).Error
 	return
 }
 
 func GetSysAdminById(adminId int) (item *Admin, err error) {
 	sql := `SELECT * FROM admin WHERE admin_id=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, adminId).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, adminId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId).First(&item).Error
 	return
 }
 
 func AddAdmin(item *Admin) (err error) {
-	o := orm.NewOrm()
-	adminId, err := o.Insert(item)
-	item.AdminId = int(adminId)
+	// o := orm.NewOrm()
+	//adminId, err := o.Insert(item)
+	//item.AdminId = int(adminId)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -190,21 +196,23 @@ type SysuserEditEnabledReq struct {
 
 // 变更状态
 func EditAdminEnabled(item *Admin) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `UPDATE admin
 			SET
 			  last_updated_time = NOW(),enabled=? WHERE admin_id = ? `
-	_, err = o.Raw(sql, item.Enabled, item.AdminId).Exec()
+	//_, err = o.Raw(sql, item.Enabled, item.AdminId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, item.Enabled, item.AdminId).Error
 	return
 }
 
 // DisableAdmin 禁用用户
 func DisableAdmin(adminId int) (err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `UPDATE admin
 			SET
 			  last_updated_time = NOW(),disable_time=now(),enabled=0 WHERE admin_id = ? `
-	_, err = o.Raw(sql, adminId).Exec()
+	//_, err = o.Raw(sql, adminId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, adminId).Error
 	return
 }
 
@@ -214,8 +222,9 @@ type SysuserDeleteReq struct {
 
 func DeleteSysuser(adminId int) (err error) {
 	sql := `DELETE FROM admin WHERE admin_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, adminId).Exec()
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, adminId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, adminId).Error
 	return
 }
 
@@ -225,45 +234,48 @@ func GetSysAdminCountByMobile(mobile string, adminId int) (count int, err error)
 	if adminId > 0 {
 		sql += ` AND admin_id != ` + fmt.Sprint(adminId)
 	}
-	o := orm.NewOrm()
-	err = o.Raw(sql, mobile).QueryRow(&count)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, mobile).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, mobile).First(&count).Error
 	return
 }
 
 func GetSysUserItems(condition string, pars []interface{}) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY last_updated_time DESC `
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
 
 // GetGroupSysUserList 根据分组id获取系统用户列表
 func GetGroupSysUserList(groupId int) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE group_id=? ORDER BY created_time DESC `
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
 // GetDepartmentGroupSysUserList 根据部门id和分组id获取系统用户列表
 func GetDepartmentGroupSysUserList(departmentId, groupId int, roleTypeCodes string) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE department_id = ? and group_id=? and enabled=1 `
 	if roleTypeCodes != "" {
 		sql += ` and role_type_code in (` + roleTypeCodes + `) `
 	}
 	sql += ` ORDER BY created_time asc `
-	_, err = o.Raw(sql, departmentId, groupId).QueryRows(&items)
+	//_, err = o.Raw(sql, departmentId, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentId, groupId).Find(&items).Error
 	return
 }
 
 // GetGrooupsysUserList 根据大组id和小组id获取系统用户列表
 func GetGrooupsysUserList(groupId int, roleTypeCodes string, enabled int) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE group_id = ? `
 	if roleTypeCodes != "" {
 		sql += ` and role_type_code in (` + roleTypeCodes + `) `
@@ -272,7 +284,8 @@ func GetGrooupsysUserList(groupId int, roleTypeCodes string, enabled int) (items
 		sql += fmt.Sprint(` AND enabled=`, enabled, ` `)
 	}
 	sql += ` ORDER BY created_time asc `
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
@@ -282,34 +295,38 @@ func GetSysAdminByIdSlice(adminIdList []string) (items []*Admin, err error) {
 		return
 	}
 	sql := `SELECT * FROM admin WHERE admin_id in (` + strings.Join(adminIdList, ",") + `) `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
 // GetTeamSysUserList 根据小组id获取系统用户列表
 func GetTeamSysUserList(teamId, enabled int) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE group_id=? `
 	if enabled >= 0 {
 		sql += fmt.Sprint(` AND enabled=`, enabled, ` `)
 	}
 	sql += ` ORDER BY created_time DESC `
-	_, err = o.Raw(sql, teamId).QueryRows(&items)
+	//_, err = o.Raw(sql, teamId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, teamId).Find(&items).Error
 	return
 }
 
 func GetGroupIdByParentId(groupId int) (items []*string, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT group_id FROM sys_group WHERE parent_id=? ORDER BY create_time DESC `
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
 func GetAdminByGroupId(groupId int) (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM admin WHERE group_id=? ORDER BY created_time DESC`
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
@@ -320,7 +337,7 @@ type OpenIdList struct {
 
 // GetRaiAdmin 获取权益内部人员(技术组+私募组)
 func GetRaiAdmin() (items []*AdminItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT
 				admin_id,
 				real_name,
@@ -335,7 +352,8 @@ func GetRaiAdmin() (items []*AdminItem, err error) {
 				department_name = '产品技术部'
 				AND enabled = 1
 			)`
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -374,8 +392,9 @@ func GetSysAdminList(condition string, pars []interface{}, fieldArr []string, or
 		order = orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM admin WHERE 1=1 %s ORDER BY %s`, fields, condition, order)
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
@@ -392,7 +411,8 @@ func GetSysAdminByIdList(adminIdList []int) (items []*Admin, err error) {
 		return
 	}
 	sql := `SELECT * FROM admin WHERE admin_id in (` + utils.GetOrmInReplace(num) + `) `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, adminIdList).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, adminIdList).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminIdList).Find(&items).Error
 	return
 }

+ 71 - 38
models/system/sys_department.go

@@ -1,7 +1,7 @@
 package system
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -10,7 +10,7 @@ type SysDepartmentAddReq struct {
 }
 
 type SysDepartment struct {
-	DepartmentId   int       `orm:"column(department_id);pk" gorm:"primaryKey"  description:"部门Id"`
+	DepartmentId   int       `orm:"column(department_id);pk" description:"部门Id"`
 	DepartmentName string    `description:"部门名称"`
 	Sort           int       `description:"排序"`
 	CreateTime     time.Time `description:"创建时间"`
@@ -18,14 +18,16 @@ type SysDepartment struct {
 
 func GetSysDepartmentCount(departmentName string) (count int, err error) {
 	sql := `SELECT COUNT(1) AS count FROM sys_department WHERE department_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, departmentName).QueryRow(&count)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, departmentName).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentName).Scan(&count).Error
 	return
 }
 
 func AddSysDepartment(item *SysDepartment) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	// o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -36,38 +38,58 @@ type SysDepartmentEditReq struct {
 
 func GetSysDepartmentById(departmentId int) (item *SysDepartment, err error) {
 	sql := `SELECT * FROM sys_department WHERE department_id=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, departmentId).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, departmentId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentId).First(&item).Error
 	return
 }
 
 func GetSysDepartmentByName(departmentName string) (item *SysDepartment, err error) {
 	sql := `SELECT * FROM sys_department WHERE department_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, departmentName).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, departmentName).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentName).First(&item).Error
 	return
 }
 
 func ModifySysDepartment(departmentName string, departmentId int) (err error) {
-	o := orm.NewOrm()
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	// o := orm.NewOrm()
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//sql := `UPDATE sys_department SET department_name=? WHERE department_id=? `
+	//_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//sql = `UPDATE admin SET department_name=? WHERE department_id=? `
+	//_, err = to.Raw(sql, departmentName, departmentId).Exec()
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
 	sql := `UPDATE sys_department SET department_name=? WHERE department_id=? `
-	_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	//_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	err = tx.Exec(sql, departmentName, departmentId).Error
 	if err != nil {
 		return
 	}
 	sql = `UPDATE admin SET department_name=? WHERE department_id=? `
-	_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	//_, err = to.Raw(sql, departmentName, departmentId).Exec()
+	err = tx.Exec(sql, departmentName, departmentId).Error
 	return
 }
 
@@ -77,13 +99,14 @@ type SysDepartmentDeleteReq struct {
 
 func DeleteSysDepartment(departmentId int) (err error) {
 	sql := `DELETE FROM sys_department WHERE department_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, departmentId).Exec()
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, departmentId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, departmentId).Error
 	return
 }
 
 type SysDepartmentList struct {
-	DepartmentId   int             `orm:"column(department_id);pk" gorm:"primaryKey"  description:"部门Id"`
+	DepartmentId   int             `orm:"column(department_id);pk" description:"部门Id"`
 	DepartmentName string          `description:"部门名称"`
 	CreateTime     time.Time       `description:"创建时间"`
 	Child          []*SysGroupList `description:"分组"`
@@ -91,21 +114,23 @@ type SysDepartmentList struct {
 }
 
 func GetDepartmentList() (items []*SysDepartmentList, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sys_department ORDER BY sort ASC, create_time ASC `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
 // GetDepartmentListByIds 根据部门id集合获取部门列表信息
 func GetDepartmentListByIds(departmentIds string) (items []*SysDepartmentList, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sys_department where 1 = 1 `
 	if departmentIds != "" {
 		sql += `and department_id in(` + departmentIds + `) `
 	}
 	sql += ` ORDER BY sort ASC, create_time ASC `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -115,8 +140,9 @@ type SysDepartmentListResp struct {
 
 func GetSysDepartmentAll() (item []*SysDepartment, err error) {
 	sql := `SELECT * FROM sys_department ORDER BY sort ASC, department_id ASC `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql).QueryRows(&item)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql).QueryRows(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&item).Error
 	return
 }
 
@@ -129,16 +155,23 @@ func MultiUpdateDepartmentSort(items []*DepartmentSort) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	p, err := o.Raw("UPDATE sys_department SET sort = ? WHERE department_id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close()
-	}()
+	// o := orm.NewOrm()
+	sql := "UPDATE sys_department SET sort = ? WHERE department_id = ?"
+	//p, err := o.Raw("UPDATE sys_department SET sort = ? WHERE department_id = ?").Prepare()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	_ = p.Close()
+	//}()
+	//for _, v := range items {
+	//	_, err = p.Exec(v.Sort, v.DepartmentId)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
 	for _, v := range items {
-		_, err = p.Exec(v.Sort, v.DepartmentId)
+		err = global.DEFAULT_DmSQL.Exec(sql, v.Sort, v.DepartmentId).Error
 		if err != nil {
 			return
 		}

+ 101 - 64
models/system/sys_group.go

@@ -1,7 +1,7 @@
 package system
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -11,7 +11,7 @@ type SysGroupAddReq struct {
 }
 
 type SysGroup struct {
-	GroupId      int       `orm:"column(group_id);pk" gorm:"primaryKey"  description:"分组ID"`
+	GroupId      int       `orm:"column(group_id);pk" description:"分组ID"`
 	DepartmentId int       `description:"部门Id"`
 	ParentId     int       `description:"父级Id"`
 	GroupName    string    `description:"分组名称"`
@@ -21,14 +21,16 @@ type SysGroup struct {
 
 func GetSysGroupCount(departmentId int, groupName string) (count int, err error) {
 	sql := `SELECT COUNT(1) AS count FROM sys_group WHERE department_id=? AND group_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, departmentId, groupName).QueryRow(&count)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, departmentId, groupName).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentId, groupName).Scan(&count).Error
 	return
 }
 
 func AddSysGroup(item *SysGroup) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	// o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -39,35 +41,55 @@ type SysGroupEditReq struct {
 
 func GetSysGroupById(groupId int) (item *SysGroup, err error) {
 	sql := `SELECT * FROM sys_group WHERE group_id=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, groupId).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, groupId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).First(&item).Error
 	return
 }
 
 func GetSysGroupByName(groupName string) (item *SysGroup, err error) {
 	sql := `SELECT * FROM sys_group WHERE group_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, groupName).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, groupName).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupName).First(&item).Error
 	return
 }
 
 func ModifySysGroup(groupName string, groupId int) (err error) {
-	o := orm.NewOrm()
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	// o := orm.NewOrm()
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
+	//_, err = to.Raw(sql, groupName, groupId).Exec()
+	//sql = `UPDATE admin SET group_name=? WHERE group_id=? `
+	//_, err = to.Raw(sql, groupName, groupId).Exec()
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
 	sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
-	_, err = to.Raw(sql, groupName, groupId).Exec()
+	//_, err = to.Raw(sql, groupName, groupId).Exec()
+	err = tx.Exec(sql, groupName, groupId).Error
+	if err != nil {
+		return
+	}
 	sql = `UPDATE admin SET group_name=? WHERE group_id=? `
-	_, err = to.Raw(sql, groupName, groupId).Exec()
+	//_, err = to.Raw(sql, groupName, groupId).Exec()
+	err = tx.Exec(sql, groupName, groupId).Error
 	return
 }
 
@@ -77,14 +99,15 @@ type SysGroupDeleteReq struct {
 
 func DeleteSysGroup(groupId int) (err error) {
 	sql := `DELETE FROM sys_group WHERE group_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, groupId).Exec()
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, groupId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, groupId).Error
 	return
 }
 
 // 因前端显示需要,TopId字段用来当做一级部门id,DepartmentId为当前分组id
 type SysGroupList struct {
-	GroupId      int            `orm:"column(group_id);pk" gorm:"primaryKey"  json:"DepartmentId" description:"分组ID"`
+	GroupId      int            `orm:"column(group_id);pk" json:"DepartmentId" description:"分组ID"`
 	ParentId     int            `json:"ParentId" description:"父级ID"`
 	DepartmentId int            `json:"TopId" description:"部门Id"`
 	GroupName    string         `json:"DepartmentName" description:"分组名称"`
@@ -95,51 +118,57 @@ type SysGroupList struct {
 
 func GetSysGroupByDepartmentId(departmentId int) (items []*SysGroupList, err error) {
 	sql := `SELECT * FROM sys_group WHERE department_id=? AND parent_id=0 ORDER BY sort ASC, create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, departmentId).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, departmentId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentId).Find(&items).Error
 	return
 }
 
 // GetSysGroupListByDepartmentId 获取该部门下的所有分组(包含大小分组,不包含 “无” 这个分组)
 func GetSysGroupListByDepartmentId(departmentId int) (items []*SysGroupList, err error) {
 	sql := `SELECT * FROM sys_group WHERE department_id=? AND group_name<>'无' ORDER BY sort ASC, create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, departmentId).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, departmentId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, departmentId).Find(&items).Error
 	return
 }
 
 func ClearSysUserGroup(groupId int) (err error) {
 	sql := `UPDATE admin SET group_id=0,group_name='' WHERE group_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, groupId).Exec()
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, groupId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, groupId).Error
 	return
 }
 
 func GetSysGroupByDirectorId(directorId int) (items []*SysGroupList, err error) {
 	sql := `SELECT * FROM sys_group WHERE group_id=? ORDER BY sort ASC, create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, directorId).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, directorId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, directorId).Find(&items).Error
 	return
 }
 
 // GetSysGroupByGroupId 销售主管用,查找销售主管所在大组的名称
 func GetSysGroupByGroupId(groupId int) (items []*SysGroupList, err error) {
 	sql := `SELECT * FROM sys_group WHERE department_id=2 AND parent_id=0 AND group_id=? ORDER BY sort ASC, create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
 // GetChildSysGroupByGroupId 通过上级分组id获取下级的分组id
 func GetChildSysGroupByGroupId(groupId int) (items []*SysGroup, err error) {
 	sql := `SELECT * FROM sys_group WHERE parent_id=? ORDER BY sort ASC, create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
 type SysFullGroup struct {
-	GroupId         int       `orm:"column(group_id);pk" gorm:"primaryKey"  description:"分组ID"`
+	GroupId         int       `orm:"column(group_id);pk" description:"分组ID"`
 	DepartmentId    int       `description:"部门Id"`
 	ParentId        int       `description:"父级Id"`
 	GroupName       string    `description:"分组名称"`
@@ -154,8 +183,9 @@ func GetFullGroup() (list []*SysFullGroup, err error) {
 from sys_group s 
 LEFT JOIN sys_group g on s.parent_id=g.group_id
 LEFT JOIN sys_department d on s.department_id=d.department_id ORDER BY s.sort ASC, s.create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql).QueryRows(&list)
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql).QueryRows(&list)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&list).Error
 	return
 }
 
@@ -175,16 +205,23 @@ func MultiUpdateGroupSort(items []*GroupSort) (err error) {
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	p, err := o.Raw("UPDATE sys_group SET sort = ? WHERE group_id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close()
-	}()
+	// o := orm.NewOrm()
+	//p, err := o.Raw("UPDATE sys_group SET sort = ? WHERE group_id = ?").Prepare()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	_ = p.Close()
+	//}()
+	//for _, v := range items {
+	//	_, err = p.Exec(v.Sort, v.GroupId)
+	//	if err != nil {
+	//		return
+	//	}
+	//}
+	sql := "UPDATE sys_group SET sort = ? WHERE group_id = ?"
 	for _, v := range items {
-		_, err = p.Exec(v.Sort, v.GroupId)
+		err = global.DEFAULT_DmSQL.Exec(sql, v.Sort, v.GroupId).Error
 		if err != nil {
 			return
 		}
@@ -192,23 +229,23 @@ func MultiUpdateGroupSort(items []*GroupSort) (err error) {
 	return
 }
 
-func GetGroupByDepartmentId(departmentId int) (list []*SysFullGroup, err error) {
-	sql := `SELECT
-				s.*, g.group_name AS parent_group_name,
-				d.department_name
-			FROM
-				sys_group s
-			LEFT JOIN sys_group g ON s.parent_id = g.group_id
-			LEFT JOIN sys_department d ON s.department_id = d.department_id
-			WHERE
-				s.department_id = ?
-			ORDER BY
-				s.sort ASC,
-				s.create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, departmentId).QueryRows(&list)
-	return
-}
+//func GetGroupByDepartmentId(departmentId int) (list []*SysFullGroup, err error) {
+//	sql := `SELECT
+//				s.*, g.group_name AS parent_group_name,
+//				d.department_name
+//			FROM
+//				sys_group s
+//			LEFT JOIN sys_group g ON s.parent_id = g.group_id
+//			LEFT JOIN sys_department d ON s.department_id = d.department_id
+//			WHERE
+//				s.department_id = ?
+//			ORDER BY
+//				s.sort ASC,
+//				s.create_time ASC`
+//	o := orm.NewOrm()
+//	_, err = o.Raw(sql, departmentId).QueryRows(&list)
+//	return
+//}
 
 type RoadshowGroupResp struct {
 	List []RoadshowGroups

+ 42 - 39
models/system/sys_menu.go

@@ -3,7 +3,6 @@ package system
 import (
 	"eta_gn/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -17,7 +16,7 @@ const (
 )
 
 type SysMenu struct {
-	MenuId     int       `orm:"column(menu_id);pk" gorm:"primaryKey" `
+	MenuId     int       `orm:"column(menu_id);pk"`
 	ParentId   int       `description:"父级菜单ID"`
 	Name       string    `description:"菜单名称或者按钮名称"`
 	Sort       string    `description:"排序"`
@@ -37,7 +36,7 @@ type SysMenu struct {
 
 // GetSysMenuItemsByCondition 获取菜单列表
 func GetSysMenuItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*SysMenu, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -47,7 +46,8 @@ func GetSysMenuItemsByCondition(condition string, pars []interface{}, fieldArr [
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM sys_menu WHERE 1=1 %s %s`, fields, condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
@@ -80,27 +80,27 @@ type MenuListResp struct {
 	List []*MenuList
 }
 
-func GetMenuList(roleId int) (items []*MenuList, err error) {
-	sql := ` SELECT a.* FROM sys_menu AS a
-			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
-			INNER JOIN sys_role AS c ON b.role_id=c.role_id
-			WHERE c.role_id=?
-			AND a.parent_id=0 
-            ORDER BY sort ASC `
-	_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
-	return
-}
-
-func GetMenuByParentId(roleId, parentId int) (items []*ChildMenu, err error) {
-	sql := ` SELECT a.* FROM sys_menu AS a
-			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
-			INNER JOIN sys_role AS c ON b.role_id=c.role_id
-			WHERE c.role_id=?
-			AND a.parent_id=? 
-            ORDER BY sort ASC `
-	_, err = orm.NewOrm().Raw(sql, roleId, parentId).QueryRows(&items)
-	return
-}
+//func GetMenuList(roleId int) (items []*MenuList, err error) {
+//	sql := ` SELECT a.* FROM sys_menu AS a
+//			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
+//			INNER JOIN sys_role AS c ON b.role_id=c.role_id
+//			WHERE c.role_id=?
+//			AND a.parent_id=0
+//            ORDER BY sort ASC `
+//	_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
+//	return
+//}
+
+//func GetMenuByParentId(roleId, parentId int) (items []*ChildMenu, err error) {
+//	sql := ` SELECT a.* FROM sys_menu AS a
+//			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id
+//			INNER JOIN sys_role AS c ON b.role_id=c.role_id
+//			WHERE c.role_id=?
+//			AND a.parent_id=?
+//            ORDER BY sort ASC `
+//	_, err = orm.NewOrm().Raw(sql, roleId, parentId).QueryRows(&items)
+//	return
+//}
 
 // GetMenuListByRoleIds 根据管理员多个角色查询菜单ID
 func GetMenuListByRoleIds(roleIds string) (items []*MenuList, err error) {
@@ -110,21 +110,22 @@ func GetMenuListByRoleIds(roleIds string) (items []*MenuList, err error) {
 			WHERE c.role_id in (` + roleIds + `)
 			AND a.parent_id=0 
             ORDER BY sort ASC `
-	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
 // GetMenuByParentIdRoleIds 根据管理员多个角色查询子菜单ID
-func GetMenuByParentIdRoleIds(roleIds string, parentId int) (items []*ChildMenu, err error) {
-	sql := ` SELECT DISTINCT a.* FROM sys_menu AS a
-			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id AND b.type = 0
-			INNER JOIN sys_role AS c ON b.role_id=c.role_id
-			WHERE c.role_id in (` + roleIds + `)
-			AND a.parent_id=? 
-            ORDER BY a.sort ASC, create_time DESC, menu_id DESC`
-	_, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
-	return
-}
+//func GetMenuByParentIdRoleIds(roleIds string, parentId int) (items []*ChildMenu, err error) {
+//	sql := ` SELECT DISTINCT a.* FROM sys_menu AS a
+//			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id AND b.type = 0
+//			INNER JOIN sys_role AS c ON b.role_id=c.role_id
+//			WHERE c.role_id in (` + roleIds + `)
+//			AND a.parent_id=?
+//            ORDER BY a.sort ASC, create_time DESC, menu_id DESC`
+//	_, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
+//	return
+//}
 
 // GetMenuButtonsByRoleId 获取角色按钮菜单
 func GetMenuButtonsByRoleId(roleId int) (items []*SysMenu, err error) {
@@ -138,7 +139,8 @@ func GetMenuButtonsByRoleId(roleId int) (items []*SysMenu, err error) {
 			ORDER BY
 				r.sort ASC,
 				r.create_time DESC`
-	_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleId).Find(&items).Error
 	return
 }
 
@@ -196,7 +198,7 @@ func GetMenuButtonApisByRoleId(roleId int) (items []*SysMenu, err error) {
 	return
 }
 
-// GetMenuListByRoleIds 根据管理员多个角色查询菜单ID
+// GetMenuListAllByRoleIds 根据管理员多个角色查询菜单ID
 func GetMenuListAllByRoleIds(roleIds string) (items []*MenuList, err error) {
 	sql := ` SELECT DISTINCT a.* FROM sys_menu AS a
 			INNER JOIN sys_role_menu AS b ON a.menu_id=b.menu_id AND b.type = 0
@@ -204,6 +206,7 @@ func GetMenuListAllByRoleIds(roleIds string) (items []*MenuList, err error) {
 			WHERE c.role_id in (` + roleIds + `)
             AND a.menu_type=0
             ORDER BY menu_id ASC `
-	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }

+ 23 - 17
models/system/sys_menu_button.go

@@ -1,12 +1,13 @@
 package system
 
 import (
+	"eta_gn/eta_api/global"
 	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type SysMenuButton struct {
-	MenuButtonId int `orm:"column(menu_button_id);pk" gorm:"primaryKey"  description:"菜单按钮id"`
+	MenuButtonId int `orm:"column(menu_button_id);pk" description:"菜单按钮id"`
 	MenuId       int
 	ButtonName   int
 	CreateTime   time.Time
@@ -29,22 +30,23 @@ type MenuButtonsResp struct {
 	CheckList []*int
 }
 
-func AddSysMenuButton(item *SysMenuButton) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
-	return
-}
+//func AddSysMenuButton(item *SysMenuButton) (lastId int64, err error) {
+//	o := orm.NewOrm()
+//	lastId, err = o.Insert(item)
+//	return
+//}
 
 type SysRoleButton struct {
-	Id           int `orm:"column(id);pk" gorm:"primaryKey"  description:"关联id"`
+	Id           int `orm:"column(id);pk" description:"关联id"`
 	RoleId       int
 	MenuButtonId int
 	CreateTime   time.Time
 }
 
 func AddSysRoleButton(item *SysRoleButton) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	//o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -52,8 +54,9 @@ func GetRoleButtonCheck(roleId int) (items []*SysRoleButton, err error) {
 	sql := `SELECT b.* FROM  sys_menu_button AS a
 			INNER JOIN sys_role_button AS b ON a.menu_button_id=b.menu_button_id
 			WHERE b.role_id=?`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, roleId).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, roleId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleId).Find(&items).Error
 	return
 }
 
@@ -67,21 +70,24 @@ func GetButtonMenu() (items []*ButtonMenu, err error) {
 	sql := `SELECT b.menu_id,b.name FROM sys_menu_button AS a
 			INNER JOIN sys_menu AS b ON a.menu_id=b.menu_id
 			GROUP BY  b.menu_id `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
 func DeleteSysRoleButton(roleId int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sys_role_button WHERE role_id=? `
-	_, err = o.Raw(sql, roleId).Exec()
+	//_, err = o.Raw(sql, roleId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, roleId).Error
 	return
 }
 
 func GetSysRoleButtonCount(roleId, buttonId int) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT COUNT(1) AS count FROM sys_role_button WHERE role_id=? AND menu_button_id=? `
-	_, err = o.Raw(sql, roleId, buttonId).Exec()
+	//_, err = o.Raw(sql, roleId, buttonId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, roleId, buttonId).Error
 	return
 }

+ 81 - 42
models/system/sys_role.go

@@ -1,8 +1,8 @@
 package system
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
@@ -13,7 +13,7 @@ type SysRoleAddReq struct {
 }
 
 type SysRole struct {
-	RoleId       int       `orm:"column(role_id);pk" gorm:"primaryKey"  description:"角色ID"`
+	RoleId       int       `orm:"column(role_id);pk" description:"角色ID"`
 	RoleName     string    `description:"角色名称"`
 	RoleType     string    `description:"角色类型"`
 	RoleTypeCode string    `description:"角色类型编码"`
@@ -22,7 +22,7 @@ type SysRole struct {
 }
 
 type SysRoleItem struct {
-	RoleId       int       `orm:"column(role_id);pk" gorm:"primaryKey"  description:"角色ID"`
+	RoleId       int       `orm:"column(role_id);pk" description:"角色ID"`
 	RoleName     string    `description:"角色名称"`
 	RoleType     string    `description:"角色类型"`
 	RoleTypeCode string    `description:"角色类型编码"`
@@ -32,14 +32,16 @@ type SysRoleItem struct {
 
 func GetSysRoleCount(roleName string) (count int, err error) {
 	sql := `SELECT COUNT(1) AS count FROM sys_role WHERE role_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, roleName).QueryRow(&count)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, roleName).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleName).First(&count).Error
 	return
 }
 
 func AddSysRole(item *SysRole) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	// o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -51,29 +53,33 @@ type SysRoleEditReq struct {
 
 func GetSysRoleById(roleId int) (item *SysRoleItem, err error) {
 	sql := `SELECT * FROM sys_role WHERE role_id=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, roleId).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, roleId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleId).First(&item).Error
 	return
 }
 
 func GetSysRoleByName(roleName string) (item *SysRoleItem, err error) {
 	sql := `SELECT * FROM sys_role WHERE role_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, roleName).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, roleName).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleName).First(&item).Error
 	return
 }
 
 // GetSysRoleByRoleTypeCode role_type_code
 func GetSysRoleByRoleTypeCode(roleTypeCode string) (item *SysRoleItem, err error) {
 	sql := `SELECT * FROM sys_role WHERE role_type_code=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, roleTypeCode).QueryRow(&item)
+	// o := orm.NewOrm()
+	//err = o.Raw(sql, roleTypeCode).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleTypeCode).First(&item).Error
 	return
 }
 func ModifySysRole(roleName, roleType, roleTypeCode string, groupId int) (err error) {
 	sql := `UPDATE sys_role SET role_name=?,role_type=?,role_type_code=?,modify_time=NOW() WHERE role_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, roleName, roleType, roleTypeCode, groupId).Exec()
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, roleName, roleType, roleTypeCode, groupId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, roleName, roleType, roleTypeCode, groupId).Error
 	return
 }
 
@@ -83,29 +89,32 @@ type SysRoleDeleteReq struct {
 
 func DeleteSysRole(roleId int) (err error) {
 	sql := `DELETE FROM sys_role WHERE role_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, roleId).Exec()
+	// o := orm.NewOrm()
+	//_, err = o.Raw(sql, roleId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, roleId).Error
 	return
 }
 
 func GetSysRoleListCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT COUNT(1) AS count FROM sys_role WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func GetSysRoleList(condition string, pars []interface{}, startSize, pageSize int) (items []*SysRoleItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sys_role WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY modify_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -134,13 +143,15 @@ type RoleMenuListResp struct {
 
 func GetRoleMenuList() (items []*RoleMenuList, err error) {
 	sql := `SELECT * FROM sys_menu WHERE parent_id=0 ORDER BY sort ASC `
-	_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
 func GetRoleMenuByParentId(parentId int) (items []*RoleMenu, err error) {
 	sql := `SELECT * FROM sys_menu WHERE parent_id=? ORDER BY sort ASC `
-	_, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql, parentId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, parentId).Find(&items).Error
 	return
 }
 
@@ -149,7 +160,8 @@ func GetCheckListRoleMenu(roleId, parentId int) (items []*RoleMenuList, err erro
 				INNER JOIN sys_menu AS b ON a.menu_id=b.menu_id
 				WHERE a.role_id=? AND a.type = 0
 				AND b.parent_id=? `
-	_, err = orm.NewOrm().Raw(sql, roleId, parentId).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql, roleId, parentId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleId, parentId).Find(&items).Error
 	return
 }
 
@@ -161,21 +173,23 @@ type RoleMenusAddReq struct {
 
 func DeleteRoleMenuByRoleId(roleId int) (err error) {
 	sql := `DELETE FROM sys_role_menu WHERE role_id=? `
-	_, err = orm.NewOrm().Raw(sql, roleId).Exec()
+	//_, err = orm.NewOrm().Raw(sql, roleId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, roleId).Error
 	return
 
 }
 
 type SysRoleMenu struct {
-	RoleMenuId int `orm:"column(role_menu_id);pk" gorm:"primaryKey"  description:"关联id"`
+	RoleMenuId int `orm:"column(role_menu_id);pk" description:"关联id"`
 	RoleId     int
 	MenuId     int
 	Type       int `description:"类型:0-全选;1-半选(此字段仅用于前端的回显)"`
 }
 
 func AddSysRoleMenu(item *SysRoleMenu) (lastId int64, err error) {
-	o := orm.NewOrm()
-	lastId, err = o.Insert(item)
+	// o := orm.NewOrm()
+	//lastId, err = o.Insert(item)
+	err = global.DEFAULT_DmSQL.Create(item).Error
 	return
 }
 
@@ -184,11 +198,30 @@ func CreateMultiSysRoleMenu(roleId int, items []*SysRoleMenu) (err error) {
 	if roleId == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//		return
+	//	}
+	//	_ = tx.Commit()
+	//}()
+	//
+	//sql := `DELETE FROM sys_role_menu WHERE role_id = ?`
+	//_, err = tx.Raw(sql, roleId).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//if len(items) > 0 {
+	//	_, err = tx.InsertMulti(len(items), items)
+	//}
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -198,25 +231,28 @@ func CreateMultiSysRoleMenu(roleId int, items []*SysRoleMenu) (err error) {
 	}()
 
 	sql := `DELETE FROM sys_role_menu WHERE role_id = ?`
-	_, err = tx.Raw(sql, roleId).Exec()
+	//_, err = tx.Raw(sql, roleId).Exec()
+	err = tx.Exec(sql, roleId).Error
 	if err != nil {
 		return
 	}
 
 	if len(items) > 0 {
-		_, err = tx.InsertMulti(len(items), items)
+		//_, err = tx.InsertMulti(len(items), items)
+		err = tx.CreateInBatches(items, utils.MultiAddNum).Error
 	}
 	return
 }
 
 func GetSysRoleAll(levelFlag bool) (items []*SysRoleItem, err error) {
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sys_role WHERE 1=1`
 	if levelFlag {
 		sql += ` and role_level = 0`
 	}
 	sql += ` ORDER BY create_time DESC `
-	_, err = o.Raw(sql).QueryRows(&items)
+	//_, err = o.Raw(sql).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -229,9 +265,10 @@ func GetEnglishAuthRoleIds(roleCodes []string) (roleIds []int, err error) {
 	if len(roleCodes) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT role_id FROM sys_role WHERE role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
-	_, err = o.Raw(sql, roleCodes).QueryRows(&roleIds)
+	//_, err = o.Raw(sql, roleCodes).QueryRows(&roleIds)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleCodes).Scan(&roleIds).Error
 	return
 }
 
@@ -243,7 +280,8 @@ func GetSysRoleMenuByRoleId(roleId int) (items []*SysRoleMenu, err error) {
 				sys_role_menu
 			WHERE
 				role_id = ?`
-	_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleId).Find(&items).Error
 	return
 }
 
@@ -252,8 +290,9 @@ func GetEnglishAuthRoleItems(roleCodes []string) (items []*SysRole, err error) {
 	if len(roleCodes) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	// o := orm.NewOrm()
 	sql := `SELECT * FROM sys_role WHERE role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
-	_, err = o.Raw(sql, roleCodes).QueryRows(&items)
+	//_, err = o.Raw(sql, roleCodes).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleCodes).Find(&items).Error
 	return
 }

+ 74 - 38
models/system/sys_role_admin.go

@@ -1,13 +1,13 @@
 package system
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type SysRoleAdmin struct {
-	Id         int       `orm:"column(id);pk" gorm:"primaryKey"  description:"自增ID"`
+	Id         int       `orm:"column(id);pk" description:"自增ID"`
 	AdminId    int       `orm:"column(admin_id);" description:"系统用户id"`
 	RoleId     int       `orm:"column(role_id);" description:"角色ID"`
 	CreateTime time.Time `orm:"column(create_time);" description:"创建时间"`
@@ -39,14 +39,16 @@ func (sa *SysRoleAdmin) TableName() string {
 // GetRoleIdsByAdminId 根据管理员账号查询角色ID
 func GetRoleIdsByAdminId(adminId int) (items []*SysRoleAdmin, err error) {
 	sql := `SELECT * from sys_role_admin where admin_id = ?`
-	_, err = orm.NewOrm().Raw(sql, adminId).QueryRows(&items)
+	//_, err = orm.NewOrm().Raw(sql, adminId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId).Find(&items).Error
 	return
 }
 
 // GetRoleIdsByAdminIdRoleId 根据管理员账号和角色查询
 func GetRoleIdsByAdminIdRoleId(adminId int, roleId int) (item *SysRoleAdmin, err error) {
 	sql := `SELECT * from sys_role_admin where admin_id = ? and role_id=?`
-	err = orm.NewOrm().Raw(sql, adminId, roleId).QueryRow(&item)
+	//err = orm.NewOrm().Raw(sql, adminId, roleId).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId, roleId).First(&item).Error
 	return
 }
 
@@ -74,7 +76,8 @@ where 1=1`
 		sql += condition
 	}
 	sql += ` ORDER BY s.id DESC limit ?, ?`
-	_, err = orm.NewOrm().Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	//_, err = orm.NewOrm().Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
@@ -89,7 +92,8 @@ where 1=1`
 	if condition != "" {
 		sql += condition
 	}
-	err = orm.NewOrm().Raw(sql, pars).QueryRow(&total)
+	//err = orm.NewOrm().Raw(sql, pars).QueryRow(&total)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&total).Error
 	return
 }
 
@@ -101,39 +105,42 @@ FROM
 	sys_role_admin s
 	LEFT JOIN admin a ON s.admin_id = a.admin_id 
 where s.role_id=? and s.admin_id in (` + adminIds + `)`
-	_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&list)
+	//_, err = orm.NewOrm().Raw(sql, roleId).QueryRows(&list)
+	err = global.DEFAULT_DmSQL.Raw(sql, roleId).Find(&list).Error
 	return
 }
 
 // AddRoleAdminBatch 批量新增留言版管理员
 func AddRoleAdminBatch(admins []*SysRoleAdmin) (err error) {
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(admins), admins)
+	//o := orm.NewOrm()
+	//_, err = o.InsertMulti(len(admins), admins)
+	err = global.DEFAULT_DmSQL.CreateInBatches(admins, utils.MultiAddNum).Error
 	return
 }
 
 // DeleteRoleAdmin 删除管理员和角色的绑定
 func DeleteRoleAdmin(SysRoleAdminId int) (err error) {
 	sql := `DELETE FROM sys_role_admin WHERE id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, SysRoleAdminId).Exec()
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, SysRoleAdminId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, SysRoleAdminId).Error
 	return
 }
 
 // GetRoleAdminById 根据ID查询绑定记录
-func GetRoleAdminById(SysRoleAdminId int) (item *SysRoleAdmin, err error) {
-	sql := `SELECT
-	*
-FROM
-	sys_role_admin 
-where id=?`
-	err = orm.NewOrm().Raw(sql, SysRoleAdminId).QueryRow(&item)
-	return
-}
+//func GetRoleAdminById(SysRoleAdminId int) (item *SysRoleAdmin, err error) {
+//	sql := `SELECT
+//	*
+//FROM
+//	sys_role_admin
+//where id=?`
+//	err = orm.NewOrm().Raw(sql, SysRoleAdminId).QueryRow(&item)
+//	return
+//}
 
 // GetEnglishAuthRoleAdminList 查询英文权限管理员列表
 func GetEnglishAuthRoleAdminList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*RoleAdminItem, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT
 				s.id as sys_role_admin_id,
 				a.admin_id,
@@ -158,12 +165,17 @@ func GetEnglishAuthRoleAdminList(condition string, pars []interface{}, startSize
 	sql += ` GROUP BY s.admin_id `
 
 	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	//if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	//	return
+	//}
+	err = global.DEFAULT_DmSQL.Raw(totalSQl, pars).Scan(&total).Error
+	if err != nil {
 		return
 	}
 
 	sql += ` ORDER BY s.create_time DESC,s.admin_id ASC LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	//_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
@@ -172,9 +184,10 @@ func DeleteRoleAdminByAdminIdAndRoleIds(adminId int, roleIds []int) (err error)
 	if len(roleIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `DELETE FROM sys_role_admin WHERE admin_id = ? AND role_id IN (` + utils.GetOrmInReplace(len(roleIds)) + `) `
-	_, err = o.Raw(sql, adminId, roleIds).Exec()
+	//_, err = o.Raw(sql, adminId, roleIds).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, adminId, roleIds).Error
 	return
 }
 
@@ -183,7 +196,7 @@ func CheckEnglishAuthRoleAdminByAdminIds(adminIds []int, roleCodes []string) (li
 	if len(adminIds) == 0 || len(roleCodes) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT
 				s.*
 			FROM
@@ -194,7 +207,8 @@ func CheckEnglishAuthRoleAdminByAdminIds(adminIds []int, roleCodes []string) (li
 				s.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `) AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)
 			GROUP BY
 				s.admin_id`
-	_, err = o.Raw(sql, adminIds, roleCodes).QueryRows(&list)
+	//_, err = o.Raw(sql, adminIds, roleCodes).QueryRows(&list)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminIds, roleCodes).Find(&list).Error
 	return
 }
 
@@ -209,7 +223,7 @@ func GetAdminEnglishAuthRoleDetail(adminId int, roleCodes []string) (list []*Eng
 	if len(roleCodes) == 0 {
 		return
 	}
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := `SELECT
 				s.admin_id, r.role_type_code
 			FROM
@@ -218,34 +232,56 @@ func GetAdminEnglishAuthRoleDetail(adminId int, roleCodes []string) (list []*Eng
 			JOIN admin AS a ON s.admin_id = a.admin_id
 			WHERE
 				s.admin_id = ? AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
-	_, err = o.Raw(sql, adminId, roleCodes).QueryRows(&list)
+	//_, err = o.Raw(sql, adminId, roleCodes).QueryRows(&list)
+	err = global.DEFAULT_DmSQL.Raw(sql, adminId, roleCodes).Find(&list).Error
 	return
 }
 
 // EditEnglishAuthRoleAdmin 编辑管理员英文权限
 func EditEnglishAuthRoleAdmin(adminId int, englishRoleIds []int, roleAdmins []*SysRoleAdmin) (err error) {
-	o := orm.NewOrm()
-	tx, e := o.Begin()
-	if e != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//tx, e := o.Begin()
+	//if e != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = tx.Rollback()
+	//	} else {
+	//		_ = tx.Commit()
+	//	}
+	//}()
+	//
+	//// 删除原绑定关系
+	//sql := `DELETE FROM sys_role_admin WHERE admin_id = ? AND role_id IN (` + utils.GetOrmInReplace(len(englishRoleIds)) + `)`
+	//_, err = tx.Raw(sql, adminId, englishRoleIds).Exec()
+	//if err != nil {
+	//	return
+	//}
+	//
+	//// 新增绑定关系
+	//_, err = tx.InsertMulti(len(roleAdmins), roleAdmins)
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
+			return
 		}
+		_ = tx.Commit()
 	}()
 
 	// 删除原绑定关系
 	sql := `DELETE FROM sys_role_admin WHERE admin_id = ? AND role_id IN (` + utils.GetOrmInReplace(len(englishRoleIds)) + `)`
-	_, err = tx.Raw(sql, adminId, englishRoleIds).Exec()
+	//_, err = tx.Raw(sql, adminId, englishRoleIds).Exec()
+	err = tx.Exec(sql, adminId, englishRoleIds).Error
 	if err != nil {
 		return
 	}
 
 	// 新增绑定关系
-	_, err = tx.InsertMulti(len(roleAdmins), roleAdmins)
+	//_, err = tx.InsertMulti(len(roleAdmins), roleAdmins)
+	err = tx.CreateInBatches(roleAdmins, utils.MultiAddNum).Error
 	return
 }
 

+ 10 - 10
models/system/sys_session.go

@@ -2,12 +2,11 @@ package system
 
 import (
 	"eta_gn/eta_api/global"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type SysSession struct {
-	Id              int `orm:"column(id);pk" gorm:"primaryKey" `
+	Id              int `orm:"column(id);pk"`
 	SysUserId       int
 	UserName        string
 	AccessToken     string
@@ -29,12 +28,12 @@ func AddSysSession(item *SysSession) (err error) {
 	return
 }
 
-func GetSysSessionBySysUserId(sysUserId int) (item *SysSession, err error) {
-	sql := `SELECT * FROM sys_session WHERE sys_user_id=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
-	o := orm.NewOrm()
-	err = o.Raw(sql, sysUserId).QueryRow(&item)
-	return
-}
+//func GetSysSessionBySysUserId(sysUserId int) (item *SysSession, err error) {
+//	sql := `SELECT * FROM sys_session WHERE sys_user_id=? AND expired_time> NOW() ORDER BY expired_time DESC LIMIT 1 `
+//	o := orm.NewOrm()
+//	err = o.Raw(sql, sysUserId).QueryRow(&item)
+//	return
+//}
 
 // GetSysSessionByToken 根据token获取session
 func GetSysSessionByToken(token string) (item *SysSession, err error) {
@@ -54,8 +53,9 @@ func ExpiredSysSessionByAdminId(adminId int) (err error) {
 
 // UnBindAdminRecordByUserId 根据系统用户id解除绑定用户关系
 func UnBindAdminRecordByUserId(userId int) (err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	msql := ` UPDATE admin_record SET user_id = 0 WHERE user_id = ? `
-	_, err = o.Raw(msql, userId).Exec()
+	//_, err = o.Raw(msql, userId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(msql, userId).Error
 	return
 }

+ 43 - 21
models/system/sys_team.go

@@ -1,7 +1,7 @@
 package system
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -12,7 +12,7 @@ type SysTeamAddReq struct {
 }
 
 type SysTeam struct {
-	GroupId      int       `orm:"column(group_id);pk" gorm:"primaryKey"  description:"分组ID"`
+	GroupId      int       `orm:"column(group_id);pk" description:"分组ID"`
 	ParentId     int       `description:"父级Id"`
 	DepartmentId int       `description:"部门id"`
 	GroupName    string    `description:"分组名称"`
@@ -21,8 +21,9 @@ type SysTeam struct {
 
 func GetSysTeamCount(groupId int, teamName string) (count int, err error) {
 	sql := `SELECT COUNT(1) AS count FROM sys_group WHERE parent_id=? AND group_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, groupId, teamName).QueryRow(&count)
+	//o := orm.NewOrm()
+	//err = o.Raw(sql, groupId, teamName).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId, teamName).Scan(&count).Error
 	return
 }
 
@@ -33,28 +34,47 @@ type SysTeamEditReq struct {
 
 func GetSysTeamByName(teamName string) (item *SysGroup, err error) {
 	sql := `SELECT * FROM sys_group WHERE group_name=? `
-	o := orm.NewOrm()
-	err = o.Raw(sql, teamName).QueryRow(&item)
+	//o := orm.NewOrm()
+	//err = o.Raw(sql, teamName).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, teamName).First(&item).Error
 	return
 }
 
 func ModifySysTeam(teamName string, teamId int) (err error) {
-	o := orm.NewOrm()
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	//o := orm.NewOrm()
+	//to, err := o.Begin()
+	//if err != nil {
+	//	return
+	//}
+	//defer func() {
+	//	if err != nil {
+	//		_ = to.Rollback()
+	//	} else {
+	//		_ = to.Commit()
+	//	}
+	//}()
+	//sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
+	//_, err = to.Raw(sql, teamName, teamId).Exec()
+	//sql = `UPDATE admin SET group_name=? WHERE group_id=? `
+	//_, err = to.Raw(sql, teamName, teamId).Exec()
+
+	tx := global.DEFAULT_DmSQL.Begin()
 	defer func() {
 		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
+			_ = tx.Rollback()
+			return
 		}
+		_ = tx.Commit()
 	}()
 	sql := `UPDATE sys_group SET group_name=? WHERE group_id=? `
-	_, err = to.Raw(sql, teamName, teamId).Exec()
+	//_, err = to.Raw(sql, teamName, teamId).Exec()
+	err = tx.Exec(sql, teamName, teamId).Error
+	if err != nil {
+		return
+	}
 	sql = `UPDATE admin SET group_name=? WHERE group_id=? `
-	_, err = to.Raw(sql, teamName, teamId).Exec()
+	//_, err = to.Raw(sql, teamName, teamId).Exec()
+	err = tx.Exec(sql, teamName, teamName).Error
 	return
 }
 
@@ -63,7 +83,7 @@ type SysTeamDeleteReq struct {
 }
 
 type SysTeamList struct {
-	GroupId    int       `orm:"column(group_id);pk" gorm:"primaryKey"  json:"DepartmentId" description:"小组ID"`
+	GroupId    int       `orm:"column(group_id);pk" json:"DepartmentId" description:"小组ID"`
 	ParentId   int       `json:"GroupId" description:"小组Id"`
 	GroupName  string    `json:"DepartmentName" description:"分组名称"`
 	CreateTime time.Time `description:"创建时间"`
@@ -71,14 +91,16 @@ type SysTeamList struct {
 
 func GetSysTeamByDepartmentId(groupId int) (items []*SysTeamList, err error) {
 	sql := `SELECT * FROM sys_group WHERE parent_id=? ORDER BY sort ASC, create_time ASC`
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, groupId).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, groupId).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, groupId).Find(&items).Error
 	return
 }
 
 func ClearSysUserTeam(groupId int) (err error) {
 	sql := `UPDATE admin SET group_id=0,group_name='' WHERE group_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, groupId).Exec()
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, groupId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, groupId).Error
 	return
 }

+ 26 - 19
models/system/sys_user.go

@@ -4,7 +4,6 @@ import (
 	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
@@ -28,7 +27,7 @@ type LoginResp struct {
 }
 
 type Admin struct {
-	AdminId                   int    `orm:"column(admin_id);pk" gorm:"primaryKey"  description:"系统用户id"`
+	AdminId                   int    `orm:"column(admin_id);pk" description:"系统用户id"`
 	AdminName                 string `description:"系统用户名称"`
 	AdminAvatar               string `description:"用户头像"`
 	RealName                  string `description:"系统用户姓名"`
@@ -78,8 +77,9 @@ func (item *Admin) Update(cols []string) (err error) {
 func CheckSysUser(userName, password string) (item *Admin, err error) {
 	sql := ` SELECT a.*,b.role_type_code FROM "admin" AS a
 			 INNER JOIN sys_role AS b ON a.role_id=b.role_id WHERE a.admin_name=? AND a.password=? LIMIT 1`
-	o := orm.NewOrm()
-	err = o.Raw(sql, userName, password).QueryRow(&item)
+	//o := orm.NewOrm()
+	//err = o.Raw(sql, userName, password).QueryRow(&item)
+	err = global.DEFAULT_DmSQL.Raw(sql, userName, password).First(&item).Error
 	return
 }
 
@@ -92,8 +92,9 @@ func GetSysUserById(sysUserId int) (item *Admin, err error) {
 
 func ModifyPwd(sysUserId int, newPwd string) (err error) {
 	sql := `UPDATE "admin" SET password=?,last_updated_time=NOW() WHERE admin_id=? `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, newPwd, sysUserId).Exec()
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, newPwd, sysUserId).Exec()
+	err = global.DEFAULT_DmSQL.Exec(sql, newPwd, sysUserId).Error
 	return
 }
 
@@ -117,32 +118,35 @@ func GetAdminListByIdList(idList []int) (items []*Admin, err error) {
 		return
 	}
 	sql := `SELECT * FROM "admin" WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) and enabled=1 `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, idList).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, idList).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, idList).Find(&items).Error
 	return
 }
 
-// GetAdminListByIdList 根据用户id列表获取系统用户列表
+// GetAdminListByIdListWithoutEnable 根据用户id列表获取系统用户列表
 func GetAdminListByIdListWithoutEnable(idList []int) (items []*Admin, err error) {
 	lenNum := len(idList)
 	if lenNum <= 0 {
 		return
 	}
 	sql := `SELECT * FROM "admin" WHERE admin_id in (` + utils.GetOrmInReplace(lenNum) + `) `
-	o := orm.NewOrm()
-	_, err = o.Raw(sql, idList).QueryRows(&items)
+	//o := orm.NewOrm()
+	//_, err = o.Raw(sql, idList).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, idList).Find(&items).Error
 	return
 }
 
 func (item *Admin) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM "admin" WHERE 1=1 %s`, condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	//err = o.Raw(sql, pars).QueryRow(&count)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Scan(&count).Error
 	return
 }
 
 func (item *Admin) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*Admin, err error) {
-	o := orm.NewOrm()
+	//o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -152,13 +156,14 @@ func (item *Admin) GetItemsByCondition(condition string, pars []interface{}, fie
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM "admin" WHERE 1=1 %s %s`, fields, condition, order)
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	//_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DEFAULT_DmSQL.Raw(sql, pars).Find(&items).Error
 	return
 }
 
 // GetSysUserByMobile 手机号获取用户
 func GetSysUserByMobile(mobile string) (item *Admin, err error) {
-	o := global.DEFAULT_DmSQL
+	//o := global.DEFAULT_DmSQL
 	sql := `SELECT
 				a.*, b.role_type_code
 			FROM
@@ -167,13 +172,14 @@ func GetSysUserByMobile(mobile string) (item *Admin, err error) {
 			WHERE
 				a.mobile = ?
 			LIMIT 1`
-	err = o.Raw(sql, mobile).Find(&item).Error
+	//err = o.Raw(sql, mobile).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, mobile).First(&item).Error
 	return
 }
 
 // GetSysUserByEmail 邮箱获取用户
 func GetSysUserByEmail(email string) (item *Admin, err error) {
-	o := global.DEFAULT_DmSQL
+	//o := global.DEFAULT_DmSQL
 	sql := `SELECT
 				a.*, b.role_type_code
 			FROM
@@ -182,7 +188,8 @@ func GetSysUserByEmail(email string) (item *Admin, err error) {
 			WHERE
 				a.email = ?
 			LIMIT 1`
-	err = o.Raw(sql, email).Find(&item).Error
+	//err = o.Raw(sql, email).Find(&item).Error
+	err = global.DEFAULT_DmSQL.Raw(sql, email).First(&item).Error
 	return
 }
 

+ 1 - 1
models/system/sys_user_login_record.go

@@ -6,7 +6,7 @@ import (
 )
 
 type SysUserLoginRecord struct {
-	Id         int `orm:"column(id);pk" gorm:"primaryKey" `
+	Id         int `orm:"column(id);pk"`
 	Uid        int
 	UserName   string
 	Ip         string

+ 221 - 160
models/variety_tag.go

@@ -1,95 +1,144 @@
 package models
 
-import (
-	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
 // VarietyClassify 标签库分类表
-type VarietyClassify struct {
-	VarietyClassifyId int       `orm:"column(variety_classify_id);pk" gorm:"primaryKey"  description:"标签分类ID"`
-	ClassifyName      string    `json:"classify_name" description:"标签分类名称"`
-	Sort              int       `json:"sort" description:"排序"`
-	State             int       `json:"state" description:"显示状态 0-禁用 1-启用"`
-	CreateTime        time.Time `json:"create_time" description:"创建时间"`
-	ModifyTime        time.Time `json:"modify_time" description:"更新时间"`
-}
-
-func (varietyClassify *VarietyClassify) Add() (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	lastId, err = o.Insert(varietyClassify)
-	if err != nil {
-		return
-	}
-	varietyClassify.VarietyClassifyId = int(lastId)
-	return
-}
-
-func (varietyClassify *VarietyClassify) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Update(varietyClassify, cols...)
-	return
-}
+//type VarietyClassify struct {
+//	VarietyClassifyId int       `orm:"column(variety_classify_id);pk" gorm:"primaryKey"  description:"标签分类ID"`
+//	ClassifyName      string    `json:"classify_name" description:"标签分类名称"`
+//	Sort              int       `json:"sort" description:"排序"`
+//	State             int       `json:"state" description:"显示状态 0-禁用 1-启用"`
+//	CreateTime        time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime        time.Time `json:"modify_time" description:"更新时间"`
+//}
+
+//func (varietyClassify *VarietyClassify) Add() (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	lastId, err = o.Insert(varietyClassify)
+//	if err != nil {
+//		return
+//	}
+//	varietyClassify.VarietyClassifyId = int(lastId)
+//	return
+//}
+
+//func (varietyClassify *VarietyClassify) Update(cols []string) (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	_, err = o.Update(varietyClassify, cols...)
+//	return
+//}
+
+//type VarietyClassify struct {
+//	VarietyClassifyId int       `orm:"column(variety_classify_id);pk" description:"标签分类ID"`
+//	ClassifyName      string    `json:"classify_name" description:"标签分类名称"`
+//	Sort              int       `json:"sort" description:"排序"`
+//	State             int       `json:"state" description:"显示状态 0-禁用 1-启用"`
+//	CreateTime        time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime        time.Time `json:"modify_time" description:"更新时间"`
+//}
+
+//func (varietyClassify *VarietyClassify) Add() (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	lastId, err = o.Insert(varietyClassify)
+//	if err != nil {
+//		return
+//	}
+//	varietyClassify.VarietyClassifyId = int(lastId)
+//	return
+//}
+
+//func (varietyClassify *VarietyClassify) Update(cols []string) (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	_, err = o.Update(varietyClassify, cols...)
+//	return
+//}
 
 // GetEnableVarietyClassifyList 获取启用的标签分类列表
-func GetEnableVarietyClassifyList(hasForbidden bool) (list []*VarietyClassify, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	sql := ""
-	if hasForbidden {
-		sql = `SELECT * FROM variety_classify ORDER BY sort ASC`
-	} else {
-		sql = `SELECT * FROM variety_classify WHERE state = 1 ORDER BY sort ASC`
-	}
-
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetEnableVarietyClassifyList(hasForbidden bool) (list []*VarietyClassify, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := ""
+//	if hasForbidden {
+//		sql = `SELECT * FROM variety_classify ORDER BY sort ASC`
+//	} else {
+//		sql = `SELECT * FROM variety_classify WHERE state = 1 ORDER BY sort ASC`
+//	}
+//
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // VarietyTag 标签表
-type VarietyTag struct {
-	VarietyTagId                int       `orm:"column(variety_tag_id);pk" gorm:"primaryKey"  description:"标签ID"`
-	VarietyClassifyId           int       `json:"variety_classify_id" description:"标签分类ID"`
-	VarietyClassifyName         string    `json:"variety_classify_name" description:"标签分类名称"`
-	TagName                     string    `json:"tag_name" description:"标签名称"`
-	ChartPermissionClassifyName string    `json:"chart_permission_classify_name" description:"品种权限分类名"`
-	ChartPermissionId           int       `json:"chart_permission_id" description:"品种权限ID"`
-	ChartPermissionName         string    `json:"chart_permission_name" description:"品种权限名称"`
-	Sort                        int       `json:"sort" description:"排序"`
-	State                       int       `json:"state" description:"显示状态 0-禁用 1-启用"`
-	CreateTime                  time.Time `json:"create_time" description:"创建时间"`
-	ModifyTime                  time.Time `json:"modify_time" description:"更新时间"`
-}
-
-func (varietyTag *VarietyTag) Add() (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	lastId, err = o.Insert(varietyTag)
-	if err != nil {
-		return
-	}
-	varietyTag.VarietyTagId = int(lastId)
-	return
-}
-
-func (varietyTag *VarietyTag) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Update(varietyTag, cols...)
-	return
-}
+//type VarietyTag struct {
+//	VarietyTagId                int       `orm:"column(variety_tag_id);pk" gorm:"primaryKey"  description:"标签ID"`
+//	VarietyClassifyId           int       `json:"variety_classify_id" description:"标签分类ID"`
+//	VarietyClassifyName         string    `json:"variety_classify_name" description:"标签分类名称"`
+//	TagName                     string    `json:"tag_name" description:"标签名称"`
+//	ChartPermissionClassifyName string    `json:"chart_permission_classify_name" description:"品种权限分类名"`
+//	ChartPermissionId           int       `json:"chart_permission_id" description:"品种权限ID"`
+//	ChartPermissionName         string    `json:"chart_permission_name" description:"品种权限名称"`
+//	Sort                        int       `json:"sort" description:"排序"`
+//	State                       int       `json:"state" description:"显示状态 0-禁用 1-启用"`
+//	CreateTime                  time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime                  time.Time `json:"modify_time" description:"更新时间"`
+//}
+
+//func (varietyTag *VarietyTag) Add() (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	lastId, err = o.Insert(varietyTag)
+//	if err != nil {
+//		return
+//	}
+//	varietyTag.VarietyTagId = int(lastId)
+//	return
+//}
+
+//func (varietyTag *VarietyTag) Update(cols []string) (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	_, err = o.Update(varietyTag, cols...)
+//	return
+//}
+
+//type VarietyTag struct {
+//	VarietyTagId                int       `orm:"column(variety_tag_id);pk" description:"标签ID"`
+//	VarietyClassifyId           int       `json:"variety_classify_id" description:"标签分类ID"`
+//	VarietyClassifyName         string    `json:"variety_classify_name" description:"标签分类名称"`
+//	TagName                     string    `json:"tag_name" description:"标签名称"`
+//	ChartPermissionClassifyName string    `json:"chart_permission_classify_name" description:"品种权限分类名"`
+//	ChartPermissionId           int       `json:"chart_permission_id" description:"品种权限ID"`
+//	ChartPermissionName         string    `json:"chart_permission_name" description:"品种权限名称"`
+//	Sort                        int       `json:"sort" description:"排序"`
+//	State                       int       `json:"state" description:"显示状态 0-禁用 1-启用"`
+//	CreateTime                  time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime                  time.Time `json:"modify_time" description:"更新时间"`
+//}
+
+//func (varietyTag *VarietyTag) Add() (lastId int64, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	lastId, err = o.Insert(varietyTag)
+//	if err != nil {
+//		return
+//	}
+//	varietyTag.VarietyTagId = int(lastId)
+//	return
+//}
+
+//func (varietyTag *VarietyTag) Update(cols []string) (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	_, err = o.Update(varietyTag, cols...)
+//	return
+//}
 
 // GetEnableVarietyTagList 获取启用状态标签列表
-func GetEnableVarietyTagList(hasForbidden bool) (list []*VarietyTag, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	var sql string
-	if hasForbidden {
-		sql = `SELECT * FROM variety_tag ORDER BY sort`
-	} else {
-		sql = `SELECT * FROM variety_tag WHERE state = 1 ORDER BY sort`
-	}
-
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetEnableVarietyTagList(hasForbidden bool) (list []*VarietyTag, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	var sql string
+//	if hasForbidden {
+//		sql = `SELECT * FROM variety_tag ORDER BY sort`
+//	} else {
+//		sql = `SELECT * FROM variety_tag WHERE state = 1 ORDER BY sort`
+//	}
+//
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // ResearchVarietyTagRelation 研究员标签关系表
 type ResearchVarietyTagRelation struct {
@@ -104,91 +153,103 @@ type ResearchTagRelation struct {
 	AdminId         int `json:"admin_id" description:"研究员ID"`
 }
 
+//type ResearchVarietyTagRelation struct {
+//	Id           int `orm:"column(id);pk"`
+//	VarietyTagId int `json:"variety_tag_id" description:"标签ID"`
+//	AdminId      int `json:"admin_id" description:"研究员ID"`
+//}
+
+//type ResearchTagRelation struct {
+//	Id              int `json:"id"`
+//	ResearchGroupId int `json:"research_group_id" description:"分组ID"`
+//	AdminId         int `json:"admin_id" description:"研究员ID"`
+//}
+
 // ResearchTagRelationListByAdminId 根据研究员ID获取标签关系列表
-func ResearchTagRelationListByAdminId(adminId int) (list []*ResearchTagRelation, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	sql := `SELECT id, variety_tag_id AS research_group_id, admin_id FROM research_variety_tag_relation WHERE admin_id = ?`
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
-	return
-}
+//func ResearchTagRelationListByAdminId(adminId int) (list []*ResearchTagRelation, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := `SELECT id, variety_tag_id AS research_group_id, admin_id FROM research_variety_tag_relation WHERE admin_id = ?`
+//	_, err = o.Raw(sql, adminId).QueryRows(&list)
+//	return
+//}
 
 // ResearchVarietyTagRelationItem 研究员标签关系
-type ResearchVarietyTagRelationItem struct {
-	VarietyTagId int    `json:"variety_tag_id" description:"标签ID"`
-	AdminId      int    `json:"admin_id" description:"研究员ID"`
-	AdminName    string `json:"admin_name" description:"研究员姓名"`
-}
+//type ResearchVarietyTagRelationItem struct {
+//	VarietyTagId int    `json:"variety_tag_id" description:"标签ID"`
+//	AdminId      int    `json:"admin_id" description:"研究员ID"`
+//	AdminName    string `json:"admin_name" description:"研究员姓名"`
+//}
 
 // GetResearchVarietyTagRelationList 获取研究员标签关系列表
-func GetResearchVarietyTagRelationList(include int) (list []*ResearchVarietyTagRelationItem, err error) {
-	// 是否包含已禁止的研究员, 默认不包含
-	condition := ` WHERE b.enabled = 1 `
-	if include == 1 {
-		condition = ` WHERE 1=1 `
-	}
-	o := orm.NewOrmUsingDB("weekly")
-	sql := `SELECT
-				a.variety_tag_id,
-				a.admin_id,
-				b.real_name AS admin_name
-			FROM
-				research_variety_tag_relation AS a
-			INNER JOIN admin AS b ON a.admin_id = b.admin_id `
-	sql += condition
-	sql += ` ORDER BY
-				a.variety_tag_id ASC,
-				a.admin_id ASC`
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetResearchVarietyTagRelationList(include int) (list []*ResearchVarietyTagRelationItem, err error) {
+//	// 是否包含已禁止的研究员, 默认不包含
+//	condition := ` WHERE b.enabled = 1 `
+//	if include == 1 {
+//		condition = ` WHERE 1=1 `
+//	}
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := `SELECT
+//				a.variety_tag_id,
+//				a.admin_id,
+//				b.real_name AS admin_name
+//			FROM
+//				research_variety_tag_relation AS a
+//			INNER JOIN admin AS b ON a.admin_id = b.admin_id `
+//	sql += condition
+//	sql += ` ORDER BY
+//				a.variety_tag_id ASC,
+//				a.admin_id ASC`
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}
 
 // UpdateAdminVarietyTagRelation 更新研究员标签关系
-func UpdateAdminVarietyTagRelation(adminId int, items []*ResearchVarietyTagRelation) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = to.Rollback()
-		} else {
-			_ = to.Commit()
-		}
-	}()
-	sql := `DELETE FROM research_variety_tag_relation WHERE admin_id = ?`
-	if _, err = o.Raw(sql, adminId).Exec(); err != nil {
-		return
-	}
-	itemsLen := len(items)
-	if itemsLen > 0 {
-		_, err = o.InsertMulti(itemsLen, items)
-	}
-	return
-}
+//func UpdateAdminVarietyTagRelation(adminId int, items []*ResearchVarietyTagRelation) (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	to, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = to.Rollback()
+//		} else {
+//			_ = to.Commit()
+//		}
+//	}()
+//	sql := `DELETE FROM research_variety_tag_relation WHERE admin_id = ?`
+//	if _, err = o.Raw(sql, adminId).Exec(); err != nil {
+//		return
+//	}
+//	itemsLen := len(items)
+//	if itemsLen > 0 {
+//		_, err = o.InsertMulti(itemsLen, items)
+//	}
+//	return
+//}
 
 // AdminVarietyTagRelationList 研究员研究方向列表
-type AdminVarietyTagRelationList struct {
-	AdminId      int    `json:"admin_id"`
-	GroupNameStr string `json:"group_name_str"`
-}
+//type AdminVarietyTagRelationList struct {
+//	AdminId      int    `json:"admin_id"`
+//	GroupNameStr string `json:"group_name_str"`
+//}
 
 // GetAdminVarietyTagRelationListByAdminId 获取研究员研究方向分组列表
-func GetAdminVarietyTagRelationListByAdminId(adminIds []int) (list []*AdminVarietyTagRelationList, err error) {
-	if len(adminIds) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("weekly")
-	sql := `SELECT
-				a.admin_id,
-				GROUP_CONCAT(b.tag_name) AS group_name_str
-			FROM
-				research_variety_tag_relation AS a
-			INNER JOIN variety_tag AS b ON a.variety_tag_id = b.variety_tag_id
-			WHERE
-				a.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `)
-			GROUP BY
-				a.admin_id`
-	_, err = o.Raw(sql, adminIds).QueryRows(&list)
-	return
-}
+//func GetAdminVarietyTagRelationListByAdminId(adminIds []int) (list []*AdminVarietyTagRelationList, err error) {
+//	if len(adminIds) == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := `SELECT
+//				a.admin_id,
+//				GROUP_CONCAT(b.tag_name) AS group_name_str
+//			FROM
+//				research_variety_tag_relation AS a
+//			INNER JOIN variety_tag AS b ON a.variety_tag_id = b.variety_tag_id
+//			WHERE
+//				a.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `)
+//			GROUP BY
+//				a.admin_id`
+//	_, err = o.Raw(sql, adminIds).QueryRows(&list)
+//	return
+//}

+ 61 - 66
models/yb/price_driven.go

@@ -1,81 +1,76 @@
 package yb
 
-import (
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
 // PriceDriven 价格驱动表
-type PriceDriven struct {
-	PriceDrivenId int `orm:"column(price_driven_id);pk" gorm:"primaryKey"  description:"价格驱动ID"`
-	//ChartPermissionId   int       `json:"chart_permission_id" description:"品种权限ID"`
-	VarietyTagId        int       `json:"variety_tag_id" description:"标签ID"`
-	VarietyTagName      string    `json:"variety_tag_name" description:"标签名称"`
-	MainVariable        string    `json:"main_variable" description:"关键变量"`
-	CoreDrivenType      int       `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
-	CoreDrivenContent   string    `json:"core_driven_content" description:"核心驱动内容"`
-	CoreContent         string    `json:"core_content" description:"核心内容"`
-	LastUpdateAdminId   int       `json:"last_update_admin_id" description:"最后更新人ID"`
-	LastUpdateAdminName string    `json:"last_update_admin_name" description:"最后更新人名称"`
-	ThsMsgState         int       `json:"ths_msg_state" description:"同花顺推送状态:0-未推送 1-已推送"`
-	TemplateMsgState    int       `json:"template_msg_state" description:"模板消息推送状态:0-未推送 1-已推送"`
-	PublishState        int       `json:"publish_state" description:"发布状态:0-未发布 1-已发布"`
-	SendThsMsgTime      time.Time `json:"last_ths_msg_time" description:"最后推送同花顺客群消息时间"`
-	SendTemplateMsgTime time.Time `json:"last_template_msg_time" description:"最后推送模板消息时间"`
-	CreateTime          time.Time `json:"create_time" description:"创建时间"`
-	ModifyTime          time.Time `json:"modify_time" description:"更新时间"`
-}
+//type PriceDriven struct {
+//	PriceDrivenId int `orm:"column(price_driven_id);pk" description:"价格驱动ID"`
+//	//ChartPermissionId   int       `json:"chart_permission_id" description:"品种权限ID"`
+//	VarietyTagId        int       `json:"variety_tag_id" description:"标签ID"`
+//	VarietyTagName      string    `json:"variety_tag_name" description:"标签名称"`
+//	MainVariable        string    `json:"main_variable" description:"关键变量"`
+//	CoreDrivenType      int       `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
+//	CoreDrivenContent   string    `json:"core_driven_content" description:"核心驱动内容"`
+//	CoreContent         string    `json:"core_content" description:"核心内容"`
+//	LastUpdateAdminId   int       `json:"last_update_admin_id" description:"最后更新人ID"`
+//	LastUpdateAdminName string    `json:"last_update_admin_name" description:"最后更新人名称"`
+//	ThsMsgState         int       `json:"ths_msg_state" description:"同花顺推送状态:0-未推送 1-已推送"`
+//	TemplateMsgState    int       `json:"template_msg_state" description:"模板消息推送状态:0-未推送 1-已推送"`
+//	PublishState        int       `json:"publish_state" description:"发布状态:0-未发布 1-已发布"`
+//	SendThsMsgTime      time.Time `json:"last_ths_msg_time" description:"最后推送同花顺客群消息时间"`
+//	SendTemplateMsgTime time.Time `json:"last_template_msg_time" description:"最后推送模板消息时间"`
+//	CreateTime          time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime          time.Time `json:"modify_time" description:"更新时间"`
+//}
 
 // TableName 表名变更
-func (priceDrivenInfo *PriceDriven) TableName() string {
-	return "yb_price_driven"
-}
+//func (priceDrivenInfo *PriceDriven) TableName() string {
+//	return "yb_price_driven"
+//}
 
 // Add 新增
-func (priceDrivenInfo *PriceDriven) Add() (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	id, err := o.Insert(priceDrivenInfo)
-	if err != nil {
-		return
-	}
-	priceDrivenInfo.PriceDrivenId = int(id)
-	return
-}
+//func (priceDrivenInfo *PriceDriven) Add() (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	id, err := o.Insert(priceDrivenInfo)
+//	if err != nil {
+//		return
+//	}
+//	priceDrivenInfo.PriceDrivenId = int(id)
+//	return
+//}
 
 // Update 更新
-func (priceDrivenInfo *PriceDriven) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Update(priceDrivenInfo, cols...)
-	return
-}
+//func (priceDrivenInfo *PriceDriven) Update(cols []string) (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	_, err = o.Update(priceDrivenInfo, cols...)
+//	return
+//}
 
 // PriceDrivenSaveLog 价格驱动保存记录表
-type PriceDrivenSaveLog struct {
-	Id            int `orm:"column(id);pk" gorm:"primaryKey" `
-	PriceDrivenId int `json:"price_driven_id" description:"价格驱动ID"`
-	//ChartPermissionId int       `json:"chart_permission_id" description:"品种权限ID"`
-	VarietyTagId      int       `json:"variety_tag_id" description:"标签ID"`
-	MainVariable      string    `json:"main_variable" description:"关键变量"`
-	CoreDrivenType    int       `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
-	CoreDrivenContent string    `json:"core_driven_content" description:"核心驱动内容"`
-	CoreContent       string    `json:"core_content" description:"核心内容"`
-	AdminId           int       `json:"admin_id" description:"更新人ID"`
-	AdminName         string    `json:"admin_name" description:"更新人名称"`
-	CreateTime        time.Time `json:"create_time" description:"创建时间"`
-}
+//type PriceDrivenSaveLog struct {
+//	Id            int `orm:"column(id);pk"`
+//	PriceDrivenId int `json:"price_driven_id" description:"价格驱动ID"`
+//	//ChartPermissionId int       `json:"chart_permission_id" description:"品种权限ID"`
+//	VarietyTagId      int       `json:"variety_tag_id" description:"标签ID"`
+//	MainVariable      string    `json:"main_variable" description:"关键变量"`
+//	CoreDrivenType    int       `json:"core_driven_type" description:"核心驱动类型 0-多 1-空"`
+//	CoreDrivenContent string    `json:"core_driven_content" description:"核心驱动内容"`
+//	CoreContent       string    `json:"core_content" description:"核心内容"`
+//	AdminId           int       `json:"admin_id" description:"更新人ID"`
+//	AdminName         string    `json:"admin_name" description:"更新人名称"`
+//	CreateTime        time.Time `json:"create_time" description:"创建时间"`
+//}
 
 // TableName 表名变更
-func (priceDrivenSaveLogInfo *PriceDrivenSaveLog) TableName() string {
-	return "yb_price_driven_save_log"
-}
+//func (priceDrivenSaveLogInfo *PriceDrivenSaveLog) TableName() string {
+//	return "yb_price_driven_save_log"
+//}
 
 // Add 新增保存记录
-func (priceDrivenSaveLogInfo *PriceDrivenSaveLog) Add() (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	lastId, err := o.Insert(priceDrivenSaveLogInfo)
-	if err != nil {
-		return
-	}
-	priceDrivenSaveLogInfo.PriceDrivenId = int(lastId)
-	return
-}
+//func (priceDrivenSaveLogInfo *PriceDrivenSaveLog) Add() (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	lastId, err := o.Insert(priceDrivenSaveLogInfo)
+//	if err != nil {
+//		return
+//	}
+//	priceDrivenSaveLogInfo.PriceDrivenId = int(lastId)
+//	return
+//}

+ 17 - 22
models/yb/price_driven_tag.go

@@ -1,29 +1,24 @@
 package yb
 
-import (
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
 // PriceDrivenTag 标签库分类表
-type PriceDrivenTag struct {
-	Id             int       `orm:"column(id);pk" gorm:"primaryKey"  `
-	VarietyTagId   int       `json:"variety_tag_id" description:"标签ID"`
-	VarietyTagName string    `json:"variety_tag_name" description:"标签名称"`
-	State          int       `json:"state" description:"显示状态 0-禁用 1-启用"`
-	CreateTime     time.Time `json:"create_time" description:"创建时间"`
-	ModifyTime     time.Time `json:"modify_time" description:"更新时间"`
-}
+//type PriceDrivenTag struct {
+//	Id             int       `orm:"column(id);pk" `
+//	VarietyTagId   int       `json:"variety_tag_id" description:"标签ID"`
+//	VarietyTagName string    `json:"variety_tag_name" description:"标签名称"`
+//	State          int       `json:"state" description:"显示状态 0-禁用 1-启用"`
+//	CreateTime     time.Time `json:"create_time" description:"创建时间"`
+//	ModifyTime     time.Time `json:"modify_time" description:"更新时间"`
+//}
 
 // TableName 表名变更
-func (priceDrivenTag *PriceDrivenTag) TableName() string {
-	return "yb_price_driven_tag"
-}
+//func (priceDrivenTag *PriceDrivenTag) TableName() string {
+//	return "yb_price_driven_tag"
+//}
 
 // GetPriceDrivenTagList 获取价格驱动标签列表
-func GetPriceDrivenTagList() (list []*PriceDrivenTag, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	sql := `SELECT * FROM yb_price_driven_tag`
-	_, err = o.Raw(sql).QueryRows(&list)
-	return
-}
+//func GetPriceDrivenTagList() (list []*PriceDrivenTag, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := `SELECT * FROM yb_price_driven_tag`
+//	_, err = o.Raw(sql).QueryRows(&list)
+//	return
+//}

+ 53 - 58
models/yb/yb_community_question_process.go

@@ -1,68 +1,63 @@
 package yb
 
-import (
-	"github.com/beego/beego/v2/client/orm"
-	"time"
-)
-
-const (
-	// 流程类型: 1-分配; 2-转移
-	ProcessTypeDistribute = 1
-	ProcessTypeTransfer   = 2
-)
+//const (
+//	// 流程类型: 1-分配; 2-转移
+//	ProcessTypeDistribute = 1
+//	ProcessTypeTransfer   = 2
+//)
 
 // CommunityQuestionProcess 问答社区流程表
-type CommunityQuestionProcess struct {
-	Id                  int       `orm:"column(id);pk" gorm:"primaryKey"  json:"-"`
-	CommunityQuestionId int       `json:"community_question_id"`
-	TransferUserId      int       `json:"transfer_user_id"`
-	TransferAdminId     int       `json:"transfer_admin_id"`
-	TransferAdminName   string    `json:"transfer_admin_name"`
-	ReplierUserId       int       `json:"replier_user_id"`
-	ReplierAdminId      int       `json:"replier_admin_id"`
-	ReplierAdminName    string    `json:"replier_admin_name"`
-	Remark              string    `json:"remark"`
-	ProcessType         int       `json:"process_type"`
-	CreateTime          time.Time `json:"create_time"`
-	VarietyClassifyId   int       `json:"variety_classify_id"`
-	VarietyTagId        int       `json:"variety_tag_id"`
-}
+//type CommunityQuestionProcess struct {
+//	Id                  int       `orm:"column(id);pk" json:"-"`
+//	CommunityQuestionId int       `json:"community_question_id"`
+//	TransferUserId      int       `json:"transfer_user_id"`
+//	TransferAdminId     int       `json:"transfer_admin_id"`
+//	TransferAdminName   string    `json:"transfer_admin_name"`
+//	ReplierUserId       int       `json:"replier_user_id"`
+//	ReplierAdminId      int       `json:"replier_admin_id"`
+//	ReplierAdminName    string    `json:"replier_admin_name"`
+//	Remark              string    `json:"remark"`
+//	ProcessType         int       `json:"process_type"`
+//	CreateTime          time.Time `json:"create_time"`
+//	VarietyClassifyId   int       `json:"variety_classify_id"`
+//	VarietyTagId        int       `json:"variety_tag_id"`
+//}
 
-func (item *CommunityQuestionProcess) TableName() string {
-	return "yb_community_question_process"
-}
+//func (item *CommunityQuestionProcess) TableName() string {
+//	return "yb_community_question_process"
+//}
 
-func (item *CommunityQuestionProcess) Create() (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
-	return
-}
+//func (item *CommunityQuestionProcess) Create() (err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	id, err := o.Insert(item)
+//	if err != nil {
+//		return
+//	}
+//	item.Id = int(id)
+//	return
+//}
 
 // CommunityQuestionProcessItem 问答社区流程
-type CommunityQuestionProcessItem struct {
-	CommunityQuestionId int
-	TransferUserId      int
-	TransferAdminId     int
-	TransferAdminName   string
-	ReplierUserId       int
-	ReplierAdminId      int
-	ReplierAdminName    string
-	Remark              string
-	ProcessType         int
-	CreateTime          string
-	VarietyClassifyId   int
-	VarietyTagId        int
-}
+//type CommunityQuestionProcessItem struct {
+//	CommunityQuestionId int
+//	TransferUserId      int
+//	TransferAdminId     int
+//	TransferAdminName   string
+//	ReplierUserId       int
+//	ReplierAdminId      int
+//	ReplierAdminName    string
+//	Remark              string
+//	ProcessType         int
+//	CreateTime          string
+//	VarietyClassifyId   int
+//	VarietyTagId        int
+//}
 
 // GetCommunityQuestionProcessItemList 根据问答ID获取流程
-func GetCommunityQuestionProcessItemList(questionId int) (list []*CommunityQuestionProcessItem, err error) {
-	list = make([]*CommunityQuestionProcessItem, 0)
-	o := orm.NewOrmUsingDB("weekly")
-	sql := `SELECT * FROM yb_community_question_process WHERE community_question_id = ? ORDER BY create_time DESC`
-	_, err = o.Raw(sql, questionId).QueryRows(&list)
-	return
-}
+//func GetCommunityQuestionProcessItemList(questionId int) (list []*CommunityQuestionProcessItem, err error) {
+//	list = make([]*CommunityQuestionProcessItem, 0)
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := `SELECT * FROM yb_community_question_process WHERE community_question_id = ? ORDER BY create_time DESC`
+//	_, err = o.Raw(sql, questionId).QueryRows(&list)
+//	return
+//}

+ 98 - 105
services/research_group.go

@@ -1,114 +1,107 @@
 package services
 
-import (
-	"errors"
-	"eta_gn/eta_api/models/system"
-	"strconv"
-	"strings"
-)
-
 // ResearchGroup 研究方向分组表
-type ResearchGroupItem struct {
-	ResearchGroupId   int                    `json:"research_group_id" description:"研究方向分组ID"`
-	ResearchGroupName string                 `json:"research_group_name" description:"研究方向分组名称"`
-	ParentId          int                    `json:"parent_id" description:"父类ID"`
-	ChartPermissionId int                    `json:"chart_permission_id" description:"品种权限ID"`
-	Sort              int                    `json:"sort" description:"排序"`
-	Members           []*ResearchGroupMember `json:"members"`
-	Children          []*ResearchGroupItem   `json:"children"`
-}
+//type ResearchGroupItem struct {
+//	ResearchGroupId   int                    `json:"research_group_id" description:"研究方向分组ID"`
+//	ResearchGroupName string                 `json:"research_group_name" description:"研究方向分组名称"`
+//	ParentId          int                    `json:"parent_id" description:"父类ID"`
+//	ChartPermissionId int                    `json:"chart_permission_id" description:"品种权限ID"`
+//	Sort              int                    `json:"sort" description:"排序"`
+//	Members           []*ResearchGroupMember `json:"members"`
+//	Children          []*ResearchGroupItem   `json:"children"`
+//}
 
 // ResearchGroupMember 研究方向组员信息
-type ResearchGroupMember struct {
-	AdminId   int    `json:"admin_id"`
-	AdminName string `json:"admin_name"`
-}
+//type ResearchGroupMember struct {
+//	AdminId   int    `json:"admin_id"`
+//	AdminName string `json:"admin_name"`
+//}
 
 // GetResearchGroupTree 获取研究方向分组及组员列表
-func GetResearchGroupTree(include int) (respList []*ResearchGroupItem, err error) {
-	respList = make([]*ResearchGroupItem, 0)
-	list, e := system.GetResearchGroupList()
-	if e != nil {
-		err = errors.New("获取研究方向分组失败, Err:" + e.Error())
-		return
-	}
-	listLen := len(list)
-	if listLen == 0 {
-		return
-	}
-	// 分类
-	firstList := make([]*ResearchGroupItem, 0)
-	secondList := make([]*ResearchGroupItem, 0)
-	for i := 0; i < listLen; i++ {
-		item := new(ResearchGroupItem)
-		item.ResearchGroupId = list[i].ResearchGroupId
-		item.ResearchGroupName = list[i].ResearchGroupName
-		item.ParentId = list[i].ParentId
-		item.ChartPermissionId = list[i].ChartPermissionId
-		item.Sort = list[i].Sort
-		if list[i].ParentId == 0 {
-			firstList = append(firstList, item)
-		} else {
-			secondList = append(secondList, item)
-		}
-	}
-	if len(firstList) == 0 {
-		return
-	}
-	// 匹配成员
-	relationList, e := system.GetResearchGroupRelationList(include)
-	if e != nil {
-		err = errors.New("获取研究方向关系失败, Err:" + e.Error())
-		return
-	}
-	for _, v := range secondList {
-		members := make([]*ResearchGroupMember, 0)
-		for _, r := range relationList {
-			if v.ResearchGroupId == r.ResearchGroupId {
-				members = append(members, &ResearchGroupMember{
-					AdminId:   r.AdminId,
-					AdminName: r.AdminName,
-				})
-			}
-		}
-		v.Members = members
-	}
-	// 匹配子分类
-	for _, p := range firstList {
-		children := make([]*ResearchGroupItem, 0)
-		for _, child := range secondList {
-			if p.ResearchGroupId == child.ParentId {
-				children = append(children, child)
-			}
-		}
-		p.Children = children
-	}
-	respList = firstList
-	return
-}
+//func GetResearchGroupTree(include int) (respList []*ResearchGroupItem, err error) {
+//	respList = make([]*ResearchGroupItem, 0)
+//	list, e := system.GetResearchGroupList()
+//	if e != nil {
+//		err = errors.New("获取研究方向分组失败, Err:" + e.Error())
+//		return
+//	}
+//	listLen := len(list)
+//	if listLen == 0 {
+//		return
+//	}
+//	// 分类
+//	firstList := make([]*ResearchGroupItem, 0)
+//	secondList := make([]*ResearchGroupItem, 0)
+//	for i := 0; i < listLen; i++ {
+//		item := new(ResearchGroupItem)
+//		item.ResearchGroupId = list[i].ResearchGroupId
+//		item.ResearchGroupName = list[i].ResearchGroupName
+//		item.ParentId = list[i].ParentId
+//		item.ChartPermissionId = list[i].ChartPermissionId
+//		item.Sort = list[i].Sort
+//		if list[i].ParentId == 0 {
+//			firstList = append(firstList, item)
+//		} else {
+//			secondList = append(secondList, item)
+//		}
+//	}
+//	if len(firstList) == 0 {
+//		return
+//	}
+//	// 匹配成员
+//	relationList, e := system.GetResearchGroupRelationList(include)
+//	if e != nil {
+//		err = errors.New("获取研究方向关系失败, Err:" + e.Error())
+//		return
+//	}
+//	for _, v := range secondList {
+//		members := make([]*ResearchGroupMember, 0)
+//		for _, r := range relationList {
+//			if v.ResearchGroupId == r.ResearchGroupId {
+//				members = append(members, &ResearchGroupMember{
+//					AdminId:   r.AdminId,
+//					AdminName: r.AdminName,
+//				})
+//			}
+//		}
+//		v.Members = members
+//	}
+//	// 匹配子分类
+//	for _, p := range firstList {
+//		children := make([]*ResearchGroupItem, 0)
+//		for _, child := range secondList {
+//			if p.ResearchGroupId == child.ParentId {
+//				children = append(children, child)
+//			}
+//		}
+//		p.Children = children
+//	}
+//	respList = firstList
+//	return
+//}
 
 // UpdateAdminResearchGroup 更新研究员研究方向分组
-func UpdateAdminResearchGroup(adminId int, groupIds string) (err error) {
-	if adminId == 0 {
-		return
-	}
-	items := make([]*system.ResearchGroupRelation, 0)
-	groupIdArr := strings.Split(groupIds, ",")
-	if groupIds != "" {
-		for _, v := range groupIdArr {
-			groupId, e := strconv.Atoi(v)
-			if e != nil {
-				err = errors.New("分组ID有误")
-				return
-			}
-			items = append(items, &system.ResearchGroupRelation{
-				ResearchGroupId: groupId,
-				AdminId:         adminId,
-			})
-		}
-	}
-	if e := system.UpdateAdminResearchGroup(adminId, items); e != nil {
-		err = errors.New("更新研究方向分组失败, Err:" + e.Error())
-	}
-	return
-}
+//func UpdateAdminResearchGroup(adminId int, groupIds string) (err error) {
+//	if adminId == 0 {
+//		return
+//	}
+//	items := make([]*system.ResearchGroupRelation, 0)
+//	groupIdArr := strings.Split(groupIds, ",")
+//	if groupIds != "" {
+//		for _, v := range groupIdArr {
+//			groupId, e := strconv.Atoi(v)
+//			if e != nil {
+//				err = errors.New("分组ID有误")
+//				return
+//			}
+//			items = append(items, &system.ResearchGroupRelation{
+//				ResearchGroupId: groupId,
+//				AdminId:         adminId,
+//			})
+//		}
+//	}
+//	if e := system.UpdateAdminResearchGroup(adminId, items); e != nil {
+//		err = errors.New("更新研究方向分组失败, Err:" + e.Error())
+//	}
+//	return
+//}

+ 145 - 154
services/variety_tag.go

@@ -1,14 +1,5 @@
 package services
 
-import (
-	"errors"
-	"fmt"
-	"eta_gn/eta_api/models"
-	"eta_gn/eta_api/models/yb"
-	"strconv"
-	"strings"
-)
-
 // TagTreeItem 标签树
 type TagTreeItem struct {
 	ClassifyId   int        `json:"classify_id" description:"分类ID"`
@@ -38,150 +29,150 @@ type TagResearcher struct {
 }
 
 // GetTagTree 获取标签树
-func GetTagTree(hasResearcher, include, questionId int) (respList []*TagTreeItem, err error) {
-	respList = make([]*TagTreeItem, 0)
-	var hasForbiddenTag bool
-	if include == 1 { //如果包含被禁用的研究员,也要包含状态被禁用的分类
-		hasForbiddenTag = true
-	}
-	// 获取标签分类
-	classifyList, e := models.GetEnableVarietyClassifyList(hasForbiddenTag)
-	if e != nil {
-		err = errors.New("获取标签分类列表失败, Err: " + e.Error())
-		return
-	}
-	classifyLen := len(classifyList)
-	if classifyLen == 0 {
-		return
-	}
-
-	tagList, e := models.GetEnableVarietyTagList(hasForbiddenTag)
-	if e != nil {
-		err = errors.New("获取标签列表失败, Err: " + e.Error())
-		return
-	}
-	// 标签研究员组
-	var relationList []*models.ResearchVarietyTagRelationItem
-	if hasResearcher == 1 {
-		relationList, e = models.GetResearchVarietyTagRelationList(include)
-		if e != nil {
-			err = errors.New("获取研究员标签关系失败, Err:" + e.Error())
-			return
-		}
-	}
-
-	// 价格驱动标签
-	priceTagList, e := yb.GetPriceDrivenTagList()
-	if e != nil {
-		err = errors.New("获取价格驱动标签列表失败, Err:" + e.Error())
-		return
-	}
-	priceTagLen := len(priceTagList)
-	priceTagMap := make(map[int]int, 0)
-	for i := 0; i < priceTagLen; i++ {
-		priceTagMap[priceTagList[i].VarietyTagId] = priceTagList[i].State
-	}
-
-	// 问答社区-研究员是否允许被二次选中
-	processMap := make(map[string]bool)
-	if questionId > 0 {
-		processList, e := yb.GetCommunityQuestionProcessItemList(questionId)
-		if e != nil {
-			err = errors.New("获取问答流程列表失败, Err:" + e.Error())
-			return
-		}
-		for i := range processList {
-			k := fmt.Sprintf("%d-%d", processList[i].VarietyTagId, processList[i].ReplierAdminId)
-			processMap[k] = true
-		}
-	}
-
-	// 标签成员、价格驱动状态
-	tagsArr := make([]*TagItem, 0)
-	tagLen := len(tagList)
-	for i := 0; i < tagLen; i++ {
-		item := tagList[i]
-		// 价格驱动
-		priceState := priceTagMap[item.VarietyTagId]
-		tmp := &TagItem{
-			TagId:             item.VarietyTagId,
-			TagName:           item.TagName,
-			Sort:              item.Sort,
-			ClassifyId:        item.VarietyClassifyId,
-			ChartPermissionId: item.ChartPermissionId,
-			PriceDrivenState:  priceState,
-		}
-		members := make([]*TagResearcher, 0)
-		if hasResearcher == 1 {
-			for _, r := range relationList {
-				if item.VarietyTagId == r.VarietyTagId {
-					k := fmt.Sprintf("%d-%d", item.VarietyTagId, r.AdminId)
-					as := true
-					if processMap[k] {
-						as = false
-					}
-					members = append(members, &TagResearcher{
-						AdminId:     r.AdminId,
-						AdminName:   r.AdminName,
-						AllowSelect: as,
-					})
-				}
-			}
-			if len(members) > 0 {
-				tmp.ResearcherList = members
-				tagsArr = append(tagsArr, tmp)
-			}
-		} else {
-			tagsArr = append(tagsArr, tmp)
-		}
-	}
-	// 分类标签
-	for i := 0; i < classifyLen; i++ {
-		classifyItem := new(TagTreeItem)
-		classifyItem.ClassifyId = classifyList[i].VarietyClassifyId
-		classifyItem.ClassifyName = classifyList[i].ClassifyName
-		classifyItem.TagId = classifyList[i].VarietyClassifyId
-		classifyItem.TagName = classifyList[i].ClassifyName
-		classifyItem.Sort = classifyList[i].Sort
-		classifyItem.Tags = make([]*TagItem, 0)
-		for _, t := range tagsArr {
-			if classifyItem.ClassifyId == t.ClassifyId {
-				classifyItem.Tags = append(classifyItem.Tags, t)
-			}
-		}
-		if hasResearcher == 1 {
-			if len(classifyItem.Tags) > 0 {
-				respList = append(respList, classifyItem)
-			}
-		} else {
-			respList = append(respList, classifyItem)
-		}
-	}
-	return
-}
+//func GetTagTree(hasResearcher, include, questionId int) (respList []*TagTreeItem, err error) {
+//	respList = make([]*TagTreeItem, 0)
+//	var hasForbiddenTag bool
+//	if include == 1 { //如果包含被禁用的研究员,也要包含状态被禁用的分类
+//		hasForbiddenTag = true
+//	}
+//	// 获取标签分类
+//	classifyList, e := models.GetEnableVarietyClassifyList(hasForbiddenTag)
+//	if e != nil {
+//		err = errors.New("获取标签分类列表失败, Err: " + e.Error())
+//		return
+//	}
+//	classifyLen := len(classifyList)
+//	if classifyLen == 0 {
+//		return
+//	}
+//
+//	tagList, e := models.GetEnableVarietyTagList(hasForbiddenTag)
+//	if e != nil {
+//		err = errors.New("获取标签列表失败, Err: " + e.Error())
+//		return
+//	}
+//	// 标签研究员组
+//	var relationList []*models.ResearchVarietyTagRelationItem
+//	if hasResearcher == 1 {
+//		relationList, e = models.GetResearchVarietyTagRelationList(include)
+//		if e != nil {
+//			err = errors.New("获取研究员标签关系失败, Err:" + e.Error())
+//			return
+//		}
+//	}
+//
+//	// 价格驱动标签
+//	priceTagList, e := yb.GetPriceDrivenTagList()
+//	if e != nil {
+//		err = errors.New("获取价格驱动标签列表失败, Err:" + e.Error())
+//		return
+//	}
+//	priceTagLen := len(priceTagList)
+//	priceTagMap := make(map[int]int, 0)
+//	for i := 0; i < priceTagLen; i++ {
+//		priceTagMap[priceTagList[i].VarietyTagId] = priceTagList[i].State
+//	}
+//
+//	// 问答社区-研究员是否允许被二次选中
+//	processMap := make(map[string]bool)
+//	if questionId > 0 {
+//		processList, e := yb.GetCommunityQuestionProcessItemList(questionId)
+//		if e != nil {
+//			err = errors.New("获取问答流程列表失败, Err:" + e.Error())
+//			return
+//		}
+//		for i := range processList {
+//			k := fmt.Sprintf("%d-%d", processList[i].VarietyTagId, processList[i].ReplierAdminId)
+//			processMap[k] = true
+//		}
+//	}
+//
+//	// 标签成员、价格驱动状态
+//	tagsArr := make([]*TagItem, 0)
+//	tagLen := len(tagList)
+//	for i := 0; i < tagLen; i++ {
+//		item := tagList[i]
+//		// 价格驱动
+//		priceState := priceTagMap[item.VarietyTagId]
+//		tmp := &TagItem{
+//			TagId:             item.VarietyTagId,
+//			TagName:           item.TagName,
+//			Sort:              item.Sort,
+//			ClassifyId:        item.VarietyClassifyId,
+//			ChartPermissionId: item.ChartPermissionId,
+//			PriceDrivenState:  priceState,
+//		}
+//		members := make([]*TagResearcher, 0)
+//		if hasResearcher == 1 {
+//			for _, r := range relationList {
+//				if item.VarietyTagId == r.VarietyTagId {
+//					k := fmt.Sprintf("%d-%d", item.VarietyTagId, r.AdminId)
+//					as := true
+//					if processMap[k] {
+//						as = false
+//					}
+//					members = append(members, &TagResearcher{
+//						AdminId:     r.AdminId,
+//						AdminName:   r.AdminName,
+//						AllowSelect: as,
+//					})
+//				}
+//			}
+//			if len(members) > 0 {
+//				tmp.ResearcherList = members
+//				tagsArr = append(tagsArr, tmp)
+//			}
+//		} else {
+//			tagsArr = append(tagsArr, tmp)
+//		}
+//	}
+//	// 分类标签
+//	for i := 0; i < classifyLen; i++ {
+//		classifyItem := new(TagTreeItem)
+//		classifyItem.ClassifyId = classifyList[i].VarietyClassifyId
+//		classifyItem.ClassifyName = classifyList[i].ClassifyName
+//		classifyItem.TagId = classifyList[i].VarietyClassifyId
+//		classifyItem.TagName = classifyList[i].ClassifyName
+//		classifyItem.Sort = classifyList[i].Sort
+//		classifyItem.Tags = make([]*TagItem, 0)
+//		for _, t := range tagsArr {
+//			if classifyItem.ClassifyId == t.ClassifyId {
+//				classifyItem.Tags = append(classifyItem.Tags, t)
+//			}
+//		}
+//		if hasResearcher == 1 {
+//			if len(classifyItem.Tags) > 0 {
+//				respList = append(respList, classifyItem)
+//			}
+//		} else {
+//			respList = append(respList, classifyItem)
+//		}
+//	}
+//	return
+//}
 
 // UpdateResearcherTagGroup 更新研究员标签分组
-func UpdateResearcherTagGroup(adminId int, groupIds string) (err error) {
-	if adminId == 0 {
-		return
-	}
-	items := make([]*models.ResearchVarietyTagRelation, 0)
-	groupIdArr := strings.Split(groupIds, ",")
-	if groupIds != "" {
-		for _, v := range groupIdArr {
-			groupId, e := strconv.Atoi(v)
-			if e != nil {
-				err = errors.New("分组ID有误")
-				return
-			}
-			items = append(items, &models.ResearchVarietyTagRelation{
-				VarietyTagId: groupId,
-				AdminId:      adminId,
-			})
-		}
-	}
-	if e := models.UpdateAdminVarietyTagRelation(adminId, items); e != nil {
-		err = errors.New("更新研究员标签分组失败, Err:" + e.Error())
-	}
-	return
-}
+//func UpdateResearcherTagGroup(adminId int, groupIds string) (err error) {
+//	if adminId == 0 {
+//		return
+//	}
+//	items := make([]*models.ResearchVarietyTagRelation, 0)
+//	groupIdArr := strings.Split(groupIds, ",")
+//	if groupIds != "" {
+//		for _, v := range groupIdArr {
+//			groupId, e := strconv.Atoi(v)
+//			if e != nil {
+//				err = errors.New("分组ID有误")
+//				return
+//			}
+//			items = append(items, &models.ResearchVarietyTagRelation{
+//				VarietyTagId: groupId,
+//				AdminId:      adminId,
+//			})
+//		}
+//	}
+//	if e := models.UpdateAdminVarietyTagRelation(adminId, items); e != nil {
+//		err = errors.New("更新研究员标签分组失败, Err:" + e.Error())
+//	}
+//	return
+//}