Переглянути джерело

gorm改造:model下单文件

hsun 3 місяців тому
батько
коміт
7202d588ad
59 змінених файлів з 2921 додано та 2676 видалено
  1. 5 0
      global/initDb.go
  2. 27 29
      models/api_uri.go
  3. 17 28
      models/business_conf.go
  4. 21 24
      models/business_conf_operation_record.go
  5. 106 74
      models/chart_permission.go
  6. 359 254
      models/classify.go
  7. 82 79
      models/classify_menu.go
  8. 52 52
      models/classify_menu_relation.go
  9. 13 24
      models/cloud_disk_menu.go
  10. 20 31
      models/cloud_disk_resource.go
  11. 10 10
      models/edb_import_fail.go
  12. 11 14
      models/edbdata_import_fail.go
  13. 38 38
      models/en_classify_permission.go
  14. 34 30
      models/en_company_permission.go
  15. 48 45
      models/en_permission.go
  16. 18 16
      models/en_video_cover.go
  17. 15 9
      models/english_classify.go
  18. 21 27
      models/english_company.go
  19. 5 10
      models/english_company_log.go
  20. 57 49
      models/english_company_todo.go
  21. 7 12
      models/english_company_todo_public.go
  22. 53 52
      models/english_policy_report.go
  23. 213 173
      models/english_report.go
  24. 53 52
      models/english_report_email.go
  25. 29 36
      models/english_report_email_log.go
  26. 7 12
      models/english_report_email_op_log.go
  27. 33 20
      models/english_report_email_pv.go
  28. 72 62
      models/english_video.go
  29. 62 62
      models/manual_edb.go
  30. 6 6
      models/meeting_probabilities.go
  31. 30 20
      models/out_link.go
  32. 21 25
      models/permission.go
  33. 60 47
      models/ppt_v2.go
  34. 17 23
      models/ppt_v2_grant.go
  35. 40 42
      models/ppt_v2_group.go
  36. 54 45
      models/ppt_v2_group_mapping.go
  37. 389 374
      models/report.go
  38. 34 18
      models/report_author.go
  39. 98 95
      models/report_chapter.go
  40. 16 15
      models/report_chapter_ticker.go
  41. 85 87
      models/report_chapter_type.go
  42. 19 23
      models/report_chapter_type_permission.go
  43. 45 47
      models/report_grant.go
  44. 6 10
      models/report_ppt_img.go
  45. 9 4
      models/report_state_record.go
  46. 46 65
      models/report_v2.go
  47. 9 6
      models/report_view_record.go
  48. 1 1
      models/research_report.go
  49. 16 11
      models/resource.go
  50. 6 8
      models/search_key_word.go
  51. 289 230
      models/target.go
  52. 41 38
      models/user_collect_classify.go
  53. 5 4
      models/user_seller_relation.go
  54. 3 3
      models/user_view_history.go
  55. 27 33
      models/variety_tag.go
  56. 6 5
      models/wechat_send_msg.go
  57. 14 18
      models/wx_user.go
  58. 40 49
      services/api.go
  59. 1 0
      utils/constants.go

+ 5 - 0
global/initDb.go

@@ -52,6 +52,11 @@ func InitDb() {
 		connectDb(utils.MYSQL_AI_URL, utils.DbNameAI, newLogger, dbMap, false)
 	}
 
+	// 用户主库
+	if utils.MYSQL_WEEKLY_URL != `` && (utils.BusinessCode == utils.BusinessCodeRelease || utils.BusinessCode == utils.BusinessCodeSandbox || utils.BusinessCode == utils.BusinessCodeDebug) {
+		connectDb(utils.MYSQL_WEEKLY_URL, utils.DbNameWeekly, newLogger, dbMap, false)
+	}
+
 	//全局赋值数据库链接
 	DbMap = dbMap
 

+ 27 - 29
models/api_uri.go

@@ -1,31 +1,29 @@
 package models
 
-import "github.com/beego/beego/v2/client/orm"
-
-type ApiUriTest struct {
-	ApiUri         string
-	ParentUri      string
-	Method         string
-	Description    string
-	MenuId         string
-	ParentMenu     string // 一级菜单
-	ChildMenu      string // 二级菜单
-	ButtonName     string // 按钮名称
-	Id             int    `orm:"column(id);pk"`
-	IsPublic       int    // 是否公共api,0否,1是
-	ChildChildMenu string // 三级菜单
-}
-
-func GetApiUriTest() (items []*ApiUriTest, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	sql := ` SELECT * FROM api_uri_test `
-	_,err = o.Raw(sql).QueryRows(&items)
-	return
-}
-
-func UpdateApiUriTest(api string, menuId int) (err error) {
-	o := orm.NewOrm()
-	sql := ` UPDATE sys_menu SET api = ? where menu_id = ?`
-	_, err = o.Raw(sql, api, menuId).Exec()
-	return
-}
+//type ApiUriTest struct {
+//	ApiUri         string
+//	ParentUri      string
+//	Method         string
+//	Description    string
+//	MenuId         string
+//	ParentMenu     string // 一级菜单
+//	ChildMenu      string // 二级菜单
+//	ButtonName     string // 按钮名称
+//	Id             int    `orm:"column(id);pk"`
+//	IsPublic       int    // 是否公共api,0否,1是
+//	ChildChildMenu string // 三级菜单
+//}
+//
+//func GetApiUriTest() (items []*ApiUriTest, err error) {
+//	o := orm.NewOrmUsingDB("weekly")
+//	sql := ` SELECT * FROM api_uri_test `
+//	_,err = o.Raw(sql).QueryRows(&items)
+//	return
+//}
+//
+//func UpdateApiUriTest(api string, menuId int) (err error) {
+//	o := orm.NewOrm()
+//	sql := ` UPDATE sys_menu SET api = ? where menu_id = ?`
+//	_, err = o.Raw(sql, api, menuId).Exec()
+//	return
+//}

+ 17 - 28
models/business_conf.go

@@ -76,13 +76,13 @@ var FromSceneMap = map[int]string{
 
 // BusinessConf 商户配置表
 type BusinessConf struct {
-	Id         int    `orm:"column(id);pk"`
-	ConfKey    string `description:"配置Key"`
-	ConfVal    string `description:"配置值"`
-	ValType    int    `description:"1-字符串;2-数值;3-字符串数组;4-富文本;"`
-	Necessary  int    `description:"是否必填:0-否;1-是"`
-	Remark     string `description:"备注"`
-	CreateTime time.Time
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement"` //`orm:"column(id);pk" gorm:"primaryKey" `
+	ConfKey    string    `gorm:"column:conf_key"`                    //`description:"配置Key"`
+	ConfVal    string    `gorm:"column:conf_val"`                    //`description:"配置值"`
+	ValType    int       `gorm:"column:val_type"`                    //`description:"1-字符串;2-数值;3-字符串数组;4-富文本;"`
+	Necessary  int       `gorm:"column:necessary"`                   //`description:"是否必填:0-否;1-是"`
+	Remark     string    `gorm:"column:remark"`                      // `description:"备注"`
+	CreateTime time.Time `gorm:"column:create_time"`
 }
 
 func (m *BusinessConf) TableName() string {
@@ -95,10 +95,6 @@ func (m *BusinessConf) PrimaryId() string {
 
 func (m *BusinessConf) Create() (err error) {
 	err = global.DEFAULT_DB.Create(m).Error
-	if err != nil {
-		return
-	}
-
 	return
 }
 
@@ -107,41 +103,35 @@ func (m *BusinessConf) CreateMulti(items []*BusinessConf) (err error) {
 		return
 	}
 	err = global.DEFAULT_DB.CreateInBatches(items, utils.MultiAddNum).Error
-
 	return
 }
 
 func (m *BusinessConf) Update(cols []string) (err error) {
 	err = global.DEFAULT_DB.Select(cols).Updates(m).Error
-
 	return
 }
 
 func (m *BusinessConf) Del() (err error) {
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
 	err = global.DEFAULT_DB.Exec(sql, m.Id).Error
-
 	return
 }
 
 func (m *BusinessConf) GetItemById(id int) (item *BusinessConf, err error) {
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
-	err = global.DEFAULT_DB.Raw(sql, id).First(&item).Error
-
+	err = global.DEFAULT_DB.Raw(sql, id).Find(&item).Error
 	return
 }
 
 func (m *BusinessConf) GetItemByCondition(condition string, pars []interface{}) (item *BusinessConf, err error) {
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = global.DEFAULT_DB.Raw(sql, pars).First(&item).Error
-
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&item).Error
 	return
 }
 
 func (m *BusinessConf) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
-	err = global.DEFAULT_DB.Raw(sql, pars).Scan(&count).Error
-
+	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&count).Error
 	return
 }
 
@@ -155,8 +145,7 @@ func (m *BusinessConf) 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 = global.DEFAULT_DB.Raw(sql, pars).Find(&items).Error
-
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -170,8 +159,8 @@ func (m *BusinessConf) GetPageItemsByCondition(condition string, pars []interfac
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
-	err = global.DEFAULT_DB.Raw(sql, pars, startSize, pageSize).Find(&items).Error
-
+	pars = append(pars, startSize, pageSize)
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -204,21 +193,21 @@ type BusinessConfUpdate struct {
 
 // UpdateBusinessConfMulti 批量修改配置
 func UpdateBusinessConfMulti(items []BusinessConfUpdate) (err error) {
-	sql := `UPDATE business_conf SET conf_val = ? WHERE conf_key = ?`
+	tx := global.DEFAULT_DB.Begin()
 	for _, v := range items {
-		err = global.DEFAULT_DB.Exec(sql, v.ConfVal, v.ConfKey).Error
+		err = tx.Exec("UPDATE business_conf SET conf_val = ? WHERE conf_key = ?", v.ConfVal, v.ConfKey).Error
 		if err != nil {
+			tx.Rollback()
 			return
 		}
 	}
-
+	tx.Commit()
 	return
 }
 
 func GetBusinessConfByKey(key string) (item *BusinessConf, err error) {
 	sql := fmt.Sprintf(`SELECT * FROM business_conf WHERE conf_key = ? LIMIT 1`)
 	err = global.DEFAULT_DB.Raw(sql, key).First(&item).Error
-
 	return
 }
 

+ 21 - 24
models/business_conf_operation_record.go

@@ -1,15 +1,17 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 // BusinessConfOperationRecord 商户配置操作记录表
 type BusinessConfOperationRecord struct {
-	Id          int       `orm:"column(id);pk"`
+	Id          int       `gorm:"column:id;primaryKey;autoIncrement"`
 	SysUserId   int       `description:"操作人ID"`
 	SysRealName string    `description:"操作人姓名"`
 	Content     string    `description:"操作数据"`
@@ -25,12 +27,7 @@ func (m *BusinessConfOperationRecord) PrimaryId() string {
 }
 
 func (m *BusinessConfOperationRecord) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.Id = int(id)
+	err = global.DEFAULT_DB.Create(m).Error
 	return
 }
 
@@ -38,47 +35,47 @@ func (m *BusinessConfOperationRecord) CreateMulti(items []*BusinessConfOperation
 	if len(items) == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	err = global.DEFAULT_DB.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (m *BusinessConfOperationRecord) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DB.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *BusinessConfOperationRecord) Del() (err error) {
-	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 = global.DEFAULT_DB.Exec(sql, m.Id).Error
 	return
 }
 
 func (m *BusinessConfOperationRecord) GetItemById(id int) (item *BusinessConfOperationRecord, err error) {
-	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 = global.DEFAULT_DB.Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *BusinessConfOperationRecord) GetItemByCondition(condition string, pars []interface{}) (item *BusinessConfOperationRecord, err error) {
-	o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DEFAULT_DB.Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *BusinessConfOperationRecord) 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)
+	var countNull sql2.NullInt64
+	err = global.DEFAULT_DB.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func (m *BusinessConfOperationRecord) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*BusinessConfOperationRecord, err error) {
-	o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -88,12 +85,11 @@ func (m *BusinessConfOperationRecord) 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 = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *BusinessConfOperationRecord) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*BusinessConfOperationRecord, err error) {
-	o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -103,6 +99,7 @@ func (m *BusinessConfOperationRecord) 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)
+	pars = append(pars, startSize, pageSize)
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }

+ 106 - 74
models/chart_permission.go

@@ -1,9 +1,10 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
@@ -11,36 +12,76 @@ const (
 	FiccProductId = 1
 )
 
+// ChartPermission 报告权限表
+//type ChartPermission struct {
+//	ChartPermissionId     int       `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
+//	ChartPermissionName   string    `description:"名称" json:"chart_permission_name"`
+//	PermissionName        string    `description:"权限名" json:"permission_name"`
+//	Sort                  int       `description:"排序" json:"sort"`
+//	Enabled               int       `description:"是否可用" json:"enabled"`
+//	CreatedTime           time.Time `description:"创建时间" json:"created_time"`
+//	LastUpdatedTime       time.Time `description:"更新时间" json:"last_updated_time"`
+//	TeleconferenceSort    int       `description:"电话会类型排序" json:"teleconference_sort"`
+//	Remark                string    `description:"备注" json:"remark"`
+//	ClassifyName          string    `description:"分类名称" json:"classify_name"`
+//	ProductName           string    `description:"产品名称" json:"product_name"`
+//	ProductId             int       `description:"产品ID" json:"product_id"`
+//	ImageURL              string    `orm:"column(image_url);" description:"图片地址" json:"image_url"`
+//	ShowType              int       `description:"1:查研观向小程序展示" json:"show_type"`
+//	IsOther               int       `description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
+//	IsReport              int       `description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
+//	CygxAuth              int       `description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
+//	PermissionType        int       `description:"1主观,2客观" json:"permission_type"`
+//	YbImgUrl              string    `description:"研报小程序报告列表icon" json:"yb_img_url"`
+//	ProductPermissionName string    `description:"种类权限名称" json:"product_permission_name"`
+//	PriceDrivenState      int       `description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
+//	ImageUrlM             string    `description:"图片地址(查研观向移动端)" json:"image_url_m"`
+//	ParentId              int       `description:"父级权限id" json:"parent_id"`
+//	IsPublic              int       `description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
+//}
+
 // ChartPermission 报告权限表
 type ChartPermission struct {
-	ChartPermissionId     int       `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
-	ChartPermissionName   string    `description:"名称" json:"chart_permission_name"`
-	PermissionName        string    `description:"权限名" json:"permission_name"`
-	Sort                  int       `description:"排序" json:"sort"`
-	Enabled               int       `description:"是否可用" json:"enabled"`
-	CreatedTime           time.Time `description:"创建时间" json:"created_time"`
-	LastUpdatedTime       time.Time `description:"更新时间" json:"last_updated_time"`
-	TeleconferenceSort    int       `description:"电话会类型排序" json:"teleconference_sort"`
-	Remark                string    `description:"备注" json:"remark"`
-	ClassifyName          string    `description:"分类名称" json:"classify_name"`
-	ProductName           string    `description:"产品名称" json:"product_name"`
-	ProductId             int       `description:"产品ID" json:"product_id"`
-	ImageURL              string    `orm:"column(image_url);" description:"图片地址" json:"image_url"`
-	ShowType              int       `description:"1:查研观向小程序展示" json:"show_type"`
-	IsOther               int       `description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
-	IsReport              int       `description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
-	CygxAuth              int       `description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
-	PermissionType        int       `description:"1主观,2客观" json:"permission_type"`
-	YbImgUrl              string    `description:"研报小程序报告列表icon" json:"yb_img_url"`
-	ProductPermissionName string    `description:"种类权限名称" json:"product_permission_name"`
-	PriceDrivenState      int       `description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
-	ImageUrlM             string    `description:"图片地址(查研观向移动端)" json:"image_url_m"`
-	ParentId              int       `description:"父级权限id" json:"parent_id"`
-	IsPublic              int       `description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
+	ChartPermissionId     int       `gorm:"column:chart_permission_id;primaryKey"` //`orm:"column(chart_permission_id);pk" gorm:"primaryKey"  description:"问题ID" json:"chart_permission_id"`
+	ChartPermissionName   string    `gorm:"column:chart_permission_name"`          //`description:"名称" json:"chart_permission_name"`
+	PermissionName        string    `gorm:"column:permission_name"`                //`description:"权限名" json:"permission_name"`
+	Sort                  int       `gorm:"column:sort"`                           //`description:"排序" json:"sort"`
+	Enabled               int       `gorm:"column:enabled"`                        //`description:"是否可用" json:"enabled"`
+	CreatedTime           time.Time `gorm:"column:created_time"`                   //`description:"创建时间" json:"created_time"`
+	LastUpdatedTime       time.Time `gorm:"column:last_updated_time"`              //`description:"更新时间" json:"last_updated_time"`
+	TeleconferenceSort    int       `gorm:"column:teleconference_sort"`            //`description:"电话会类型排序" json:"teleconference_sort"`
+	Remark                string    `gorm:"column:remark"`                         //`description:"备注" json:"remark"`
+	ClassifyName          string    `gorm:"column:classify_name"`                  //`description:"分类名称" json:"classify_name"`
+	ProductName           string    `gorm:"column:product_name"`                   //`description:"产品名称" json:"product_name"`
+	ProductId             int       `gorm:"column:product_id"`                     //`description:"产品ID" json:"product_id"`
+	ImageURL              string    `gorm:"column:image_url"`                      //`orm:"column(image_url);" description:"图片地址" json:"image_url"`
+	ShowType              int       `gorm:"column:show_type"`                      //`description:"1:查研观向小程序展示" json:"show_type"`
+	IsOther               int       `gorm:"column:is_other"`                       //`description:"是否是其他,用于查研观向小程序后台展示" json:"is_other"`
+	IsReport              int       `gorm:"column:is_report"`                      //`description:"是否是报告,用于查研观向小程序前台报告展示" json:"is_report"`
+	CygxAuth              int       `gorm:"column:cygx_auth"`                      //`description:"是否是权限,用于查研观向小程序前台权限校验" json:"cygx_auth"`
+	PermissionType        int       `gorm:"column:permission_type"`                //`description:"1主观,2客观" json:"permission_type"`
+	YbImgUrl              string    `gorm:"column:yb_img_url"`                     //`description:"研报小程序报告列表icon" json:"yb_img_url"`
+	ProductPermissionName string    `gorm:"column:product_permission_name"`        //`description:"种类权限名称" json:"product_permission_name"`
+	PriceDrivenState      int       `gorm:"column:price_driven_state"`             //`description:"品种价格驱动开启状态 0-关闭 1-开启" json:"price_driven_state"`
+	ImageUrlM             string    `gorm:"column:image_url_m"`                    //`description:"图片地址(查研观向移动端)" json:"image_url_m"`
+	ParentId              int       `gorm:"column:parent_id"`                      //`description:"父级权限id" json:"parent_id"`
+	IsPublic              int       `gorm:"column:is_public"`                      //`description:"是否是公有权限1:公有权限,0私有权限" json:"is_public"`
 }
 
+//type ChartPermissionVO struct {
+//	ChartPermissionId   int       `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
+//	ChartPermissionName string    `description:"名称" json:"chart_permission_name"`
+//	PermissionName      string    `description:"权限名" json:"permission_name"`
+//	Sort                int       `description:"排序" json:"sort"`
+//	Enabled             int       `description:"是否可用" json:"enabled"`
+//	CreatedTime         time.Time `description:"创建时间" json:"created_time"`
+//	LastUpdatedTime     time.Time `description:"更新时间" json:"last_updated_time"`
+//	ParentId            int       `description:"父级权限id" json:"parent_id"`
+//	Children            []*ChartPermissionVO
+//}
+
 type ChartPermissionVO struct {
-	ChartPermissionId   int       `orm:"column(chart_permission_id);pk" description:"问题ID" json:"chart_permission_id"`
+	ChartPermissionId   int       `gorm:"column:chart_permission_id;primaryKey" json:"chart_permission_id"`
 	ChartPermissionName string    `description:"名称" json:"chart_permission_name"`
 	PermissionName      string    `description:"权限名" json:"permission_name"`
 	Sort                int       `description:"排序" json:"sort"`
@@ -64,8 +105,7 @@ type ChartPermissionItem struct {
 
 // Update 更新
 func (c *ChartPermission) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(c, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(c).Error
 	return
 }
 
@@ -98,8 +138,7 @@ type PermissionMoveReq struct {
 }
 
 func (c *ChartPermission) SetEnabled(id, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
+	to := global.DbMap[utils.DbNameReport].Begin()
 	if err != nil {
 		return
 	}
@@ -111,12 +150,12 @@ func (c *ChartPermission) SetEnabled(id, enabled int) (err error) {
 		}
 	}()
 	sql := ` UPDATE chart_permission SET enabled =?  WHERE id = ?`
-	_, err = to.Raw(sql, enabled, id).Exec()
+	err = to.Exec(sql, enabled, id).Error
 	if err != nil {
 		return
 	}
 	sql = ` UPDATE chart_permission SET enabled =?  WHERE parent_id = ?`
-	_, err = to.Raw(sql, enabled, id).Exec()
+	err = to.Exec(sql, enabled, id).Error
 	if err != nil {
 		return
 	}
@@ -125,123 +164,120 @@ func (c *ChartPermission) SetEnabled(id, enabled int) (err error) {
 
 // Create 新增权限
 func (c *ChartPermission) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(c)
-	if err != nil {
-		return
-	}
-	c.ChartPermissionId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(c).Error
 	return
 }
 
 // SetIsPublic 更新公有私有权限
 func (c *ChartPermission) SetIsPublic(ids []int, parentId, isPublic int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `update chart_permission set is_public=? WHERE parent_id = ?  and  chart_permission_id IN (` + utils.GetOrmInReplace(len(ids)) + `)`
-	_, err = o.Raw(sql, isPublic, parentId, ids).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, isPublic, parentId, ids).Error
 	return
 }
 
 // UpdatesByParentId 更新启动禁用
 func (c *ChartPermission) UpdateClassifyNameByParentId(parentId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `update chart_permission set classify_name=? WHERE parent_id = ?`
-	_, err = o.Raw(sql, classifyName, parentId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, classifyName, parentId).Error
 	return
 }
 
 // SetEnabledByParentId 更新启动禁用
 func (c *ChartPermission) SetEnabledByParentId(parentId, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` UPDATE chart_permission SET enabled =?  WHERE parent_id = ?`
-	_, err = o.Raw(sql, enabled, parentId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, enabled, parentId).Error
 	return
 }
 
 // SetEnabledByChartPermissionId 更新启动禁用
 func (c *ChartPermission) SetEnabledByChartPermissionId(chartPermissionId, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` UPDATE chart_permission SET enabled =?  WHERE chart_permission_id = ?`
-	_, err = o.Raw(sql, enabled, chartPermissionId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, enabled, chartPermissionId).Error
 	return
 }
 
 // GetItemById 查询品种
 func (c *ChartPermission) GetItemById(chartPermissionId int) (item *ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `select * from chart_permission WHERE chart_permission_id = ?`
-	err = o.Raw(sql, chartPermissionId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, chartPermissionId).First(&item).Error
 	return
 }
 
 // GetItemsByCondition 查询列表
 func (c *ChartPermission) GetItemsByCondition(condition string, pars []interface{}) (items []*ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `select * from chart_permission WHERE 1=1 ` + condition + ` order by sort asc, chart_permission_id asc`
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 // GetItemByCondition 查询列表
 func (c *ChartPermission) GetItemByCondition(condition string, pars []interface{}) (item *ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `select * from chart_permission WHERE 1=1 ` + condition
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // UpdateChartPermissionSortByParentId 根据父类id更新排序
 func UpdateChartPermissionSortByParentId(parentId, chartPermissionId, nowSort int, updateSort string, productId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` update chart_permission set sort = ` + updateSort + ` WHERE parent_id=? AND product_id = ? AND (sort > ? `
 	if chartPermissionId > 0 {
 		sql += ` or ( chart_permission_id > ` + fmt.Sprint(chartPermissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `))`
 	} else {
 		sql += `)`
 	}
-	_, err = o.Raw(sql, parentId, productId, nowSort).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, parentId, productId, nowSort).Error
 	return
 }
 
 // GetMaxSort 获取最大的排序值
 func (c *ChartPermission) GetMaxSort() (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `select max(sort) from chart_permission `
-	err = o.Raw(sql).QueryRow(&maxSort)
+	var maxNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetMaxSortByParentId 获取最大的排序值
 func (c *ChartPermission) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `select max(sort) from chart_permission WHERE parent_id=? `
-	err = o.Raw(sql, parentId).QueryRow(&maxSort)
+	var maxNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetFirstChartPermissionByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
 func (c *ChartPermission) GetFirstChartPermissionByParentId(parentId int) (item *ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `select * from chart_permission WHERE parent_id=? ORDER BY sort ASC, chart_permission_id ASC LIMIT 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).First(&item).Error
 	return
 }
 
 // GetChartPermissionById 主键获取品种
 func GetChartPermissionById(permissionId int) (item *ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM chart_permission WHERE chart_permission_id = ?`
-	err = o.Raw(sql, permissionId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, permissionId).First(&item).Error
 	return
 }
 
 // GetSecondaryChartPermissions 获取二级权限列表
-func GetSecondaryChartPermissions() (list []*ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM chart_permission WHERE product_id = ? AND parent_id > 0 AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
-	_, err = o.Raw(sql, FiccProductId).QueryRows(&list)
-	return
-}
+//func GetSecondaryChartPermissions() (list []*ChartPermission, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT * FROM chart_permission WHERE product_id = ? AND parent_id > 0 AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
+//	_, err = o.Raw(sql, FiccProductId).QueryRows(&list)
+//	return
+//}
 
 type SimpleChartPermission struct {
 	ChartPermissionId   int                      `description:"品种ID"`
@@ -264,10 +300,8 @@ func FormatChartPermission2Simple(origin *ChartPermission) (item *SimpleChartPer
 
 // GetChartPermissionsByProductId 获取权限列表
 func GetChartPermissionsByProductId() (list []*ChartPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM chart_permission WHERE product_id = ? AND enabled = 1 ORDER BY parent_id ASC, sort ASC, created_time ASC`
-	_, err = o.Raw(sql, FiccProductId).QueryRows(&list)
-
+	err = global.DbMap[utils.DbNameReport].Raw(sql, FiccProductId).Find(&list).Error
 	return
 }
 
@@ -283,9 +317,7 @@ func GetChartPermissionByIdList(permissionIdList []int) (items []*ChartPermissio
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM chart_permission WHERE chart_permission_id in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, permissionIdList).QueryRows(&items)
-
+	err = global.DbMap[utils.DbNameReport].Raw(sql, permissionIdList).Find(&items).Error
 	return
 }

+ 359 - 254
models/classify.go

@@ -1,6 +1,8 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
 	"time"
@@ -9,46 +11,95 @@ import (
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
+//type Classify struct {
+//	Id                   int       `orm:"column(id);pk"`
+//	ClassifyName         string    `description:"分类名称"`
+//	Sort                 int       `json:"-"`
+//	ParentId             int       `description:"父级分类id"`
+//	CreateTime           time.Time `description:"创建时间"`
+//	ModifyTime           time.Time `description:"修改时间"`
+//	Abstract             string    `description:"栏目简介"`
+//	Descript             string    `description:"分享描述"`
+//	ReportAuthor         string    `description:"栏目作者"`
+//	AuthorDescript       string    `description:"作者简介"`
+//	ColumnImgUrl         string    `description:"栏目配图"`
+//	HeadImgUrl           string    `description:"头部banner"`
+//	AvatarImgUrl         string    `description:"头像"`
+//	ReportImgUrl         string    `description:"报告配图"`
+//	HomeImgUrl           string    `description:"首页配图"`
+//	ClassifyLabel        string    `description:"分类标签"`
+//	ShowType             int       `description:"展示类型:1-列表 2-专栏"`
+//	HasTeleconference    int       `description:"是否有电话会:0-否 1-是"`
+//	VipTitle             string    `description:"研究员头衔"`
+//	IsShow               int       `description:"是否在小程序显示:1-显示 0-隐藏"`
+//	YbFiccSort           int       `description:"小程序FICC页排序"`
+//	YbFiccIcon           string    `description:"小程序FICC页icon"`
+//	YbFiccPcIcon         string    `description:"小程序PC端FICC页背景图"`
+//	YbIconUrl            string    `description:"小程序已购页icon"`
+//	YbBgUrl              string    `description:"小程序已购详情背景图"`
+//	YbListImg            string    `description:"小程序研报列表封面图"`
+//	YbShareBgImg         string    `description:"小程序研报详情分享背景图"`
+//	YbRightBanner        string    `description:"Pc端详情页,右侧,报告合集背景图"`
+//	RelateTel            int       `description:"是否在电话会中可选: 0-否; 1-是"`
+//	RelateVideo          int       `description:"是否在路演视频中可选: 0-否; 1-是"`
+//	IsMassSend           int       `description:"1:群发,0:非群发"`
+//	Enabled              int       `description:"是否可用,1可用,0禁用"`
+//	Level                int       `description:"层级"`
+//	HasChild             int       `description:"是否有子级别,0:下面没有子分类,1:下面有子分类;默认:0"`
+//	ReportDetailShowType int       `description:"报告详情的展示类型:1-拼接;2:目录"`
+//}
+
 type Classify struct {
-	Id                   int       `orm:"column(id);pk"`
-	ClassifyName         string    `description:"分类名称"`
-	Sort                 int       `json:"-"`
-	ParentId             int       `description:"父级分类id"`
-	CreateTime           time.Time `description:"创建时间"`
-	ModifyTime           time.Time `description:"修改时间"`
-	Abstract             string    `description:"栏目简介"`
-	Descript             string    `description:"分享描述"`
-	ReportAuthor         string    `description:"栏目作者"`
-	AuthorDescript       string    `description:"作者简介"`
-	ColumnImgUrl         string    `description:"栏目配图"`
-	HeadImgUrl           string    `description:"头部banner"`
-	AvatarImgUrl         string    `description:"头像"`
-	ReportImgUrl         string    `description:"报告配图"`
-	HomeImgUrl           string    `description:"首页配图"`
-	ClassifyLabel        string    `description:"分类标签"`
-	ShowType             int       `description:"展示类型:1-列表 2-专栏"`
-	HasTeleconference    int       `description:"是否有电话会:0-否 1-是"`
-	VipTitle             string    `description:"研究员头衔"`
-	IsShow               int       `description:"是否在小程序显示:1-显示 0-隐藏"`
-	YbFiccSort           int       `description:"小程序FICC页排序"`
-	YbFiccIcon           string    `description:"小程序FICC页icon"`
-	YbFiccPcIcon         string    `description:"小程序PC端FICC页背景图"`
-	YbIconUrl            string    `description:"小程序已购页icon"`
-	YbBgUrl              string    `description:"小程序已购详情背景图"`
-	YbListImg            string    `description:"小程序研报列表封面图"`
-	YbShareBgImg         string    `description:"小程序研报详情分享背景图"`
-	YbRightBanner        string    `description:"Pc端详情页,右侧,报告合集背景图"`
-	RelateTel            int       `description:"是否在电话会中可选: 0-否; 1-是"`
-	RelateVideo          int       `description:"是否在路演视频中可选: 0-否; 1-是"`
-	IsMassSend           int       `description:"1:群发,0:非群发"`
-	Enabled              int       `description:"是否可用,1可用,0禁用"`
-	Level                int       `description:"层级"`
-	HasChild             int       `description:"是否有子级别,0:下面没有子分类,1:下面有子分类;默认:0"`
-	ReportDetailShowType int       `description:"报告详情的展示类型:1-拼接;2:目录"`
-}
+	Id                   int       `gorm:"column:id;primaryKey" json:"id"`                                //`orm:"column(id);pk" gorm:"primaryKey" `
+	ClassifyName         string    `gorm:"column:classify_name" json:"classify_name"`                     //`description:"分类名称"`
+	Sort                 int       `gorm:"column:sort" json:"sort"`                                       //`json:"-"`
+	ParentId             int       `gorm:"column:parent_id" json:"parent_id"`                             //`description:"父级分类id"`
+	CreateTime           time.Time `gorm:"column:create_time" json:"create_time"`                         //`description:"创建时间"`
+	ModifyTime           time.Time `gorm:"column:modify_time" json:"modify_time"`                         //`description:"修改时间"`
+	Abstract             string    `gorm:"column:abstract" json:"abstract"`                               //`description:"栏目简介"`
+	Descript             string    `gorm:"column:descript" json:"descript"`                               //`description:"分享描述"`
+	ReportAuthor         string    `gorm:"column:report_author" json:"report_author"`                     //`description:"栏目作者"`
+	AuthorDescript       string    `gorm:"column:author_descript" json:"author_descript"`                 //`description:"作者简介"`
+	ColumnImgUrl         string    `gorm:"column:column_img_url" json:"column_img_url"`                   //`description:"栏目配图"`
+	HeadImgUrl           string    `gorm:"column:head_img_url" json:"head_img_url"`                       //`description:"头部banner"`
+	AvatarImgUrl         string    `gorm:"column:avatar_img_url" json:"avatar_img_url"`                   //`description:"头像"`
+	ReportImgUrl         string    `gorm:"column:report_img_url" json:"report_img_url"`                   //`description:"报告配图"`
+	HomeImgUrl           string    `gorm:"column:home_img_url" json:"home_img_url"`                       //`description:"首页配图"`
+	ClassifyLabel        string    `gorm:"column:classify_label" json:"classify_label"`                   //`description:"分类标签"`
+	ShowType             int       `gorm:"column:show_type" json:"show_type"`                             //`description:"展示类型:1-列表 2-专栏"`
+	HasTeleconference    int       `gorm:"column:has_teleconference" json:"has_teleconference"`           //`description:"是否有电话会:0-否 1-是"`
+	VipTitle             string    `gorm:"column:vip_title" json:"vip_title"`                             //`description:"研究员头衔"`
+	IsShow               int       `gorm:"column:is_show" json:"is_show"`                                 //`description:"是否在小程序显示:1-显示 0-隐藏"`
+	YbFiccSort           int       `gorm:"column:yb_ficc_sort" json:"yb_ficc_sort"`                       //`description:"小程序FICC页排序"`
+	YbFiccIcon           string    `gorm:"column:yb_ficc_icon" json:"yb_ficc_icon"`                       // `description:"小程序FICC页icon"`
+	YbFiccPcIcon         string    `gorm:"column:yb_ficc_pc_icon" json:"yb_ficc_pc_icon"`                 //`description:"小程序PC端FICC页背景图"`
+	YbIconUrl            string    `gorm:"column:yb_icon_url" json:"yb_icon_url"`                         //`description:"小程序已购页icon"`
+	YbBgUrl              string    `gorm:"column:yb_bg_url" json:"yb_bg_url"`                             //`description:"小程序已购详情背景图"`
+	YbListImg            string    `gorm:"column:yb_list_img" json:"yb_list_img"`                         //`description:"小程序研报列表封面图"`
+	YbShareBgImg         string    `gorm:"column:yb_share_bg_img" json:"yb_share_bg_img"`                 //`description:"小程序研报详情分享背景图"`
+	YbRightBanner        string    `gorm:"column:yb_right_banner" json:"yb_right_banner"`                 //`description:"Pc端详情页,右侧,报告合集背景图"`
+	RelateTel            int       `gorm:"column:relate_tel" json:"relate_tel"`                           //`description:"是否在电话会中可选: 0-否; 1-是"`
+	RelateVideo          int       `gorm:"column:relate_video" json:"relate_video"`                       //`description:"是否在路演视频中可选: 0-否; 1-是"`
+	IsMassSend           int       `gorm:"column:is_mass_send" json:"is_mass_send"`                       //`description:"1:群发,0:非群发"`
+	Enabled              int       `gorm:"column:enabled" json:"enabled"`                                 //`description:"是否可用,1可用,0禁用"`
+	Level                int       `gorm:"column:level" json:"level"`                                     //`description:"层级"`
+	HasChild             int       `gorm:"column:has_child" json:"has_child"`                             //`description:"是否有子级别,0:下面没有子分类,1:下面有子分类;默认:0"`
+	ReportDetailShowType int       `gorm:"column:report_detail_show_type" json:"report_detail_show_type"` //`description:"报告详情的展示类型:1-拼接;2:目录"`
+}
+
+//type ClassifyVO struct {
+//	Id            int    `orm:"column(id);pk"`
+//	ClassifyName  string `description:"分类名称"`
+//	Sort          int    `json:"-"`
+//	ParentId      int    `description:"父级分类id"`
+//	ClassifyLabel string `description:"分类标签"`
+//	Enabled       int    `description:"是否可用,1可用,0禁用"`
+//	Level         int    `description:"层级"`
+//	Children      *[]ClassifyVO
+//}
 
 type ClassifyVO struct {
-	Id            int    `orm:"column(id);pk"`
+	Id            int    `gorm:"column:id;primaryKey"`
 	ClassifyName  string `description:"分类名称"`
 	Sort          int    `json:"-"`
 	ParentId      int    `description:"父级分类id"`
@@ -92,11 +143,7 @@ type ClassifyAddReq struct {
 }
 
 func (c *Classify) Delete(childIds []int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	tx := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			tx.Rollback()
@@ -105,14 +152,14 @@ func (c *Classify) Delete(childIds []int) (err error) {
 		}
 	}()
 	// 删除自身
-	_, err = tx.Delete(c)
+	err = tx.Delete(c).Error
 	if err != nil {
 		return
 	}
 	// 删除子分类
 	if len(childIds) > 0 {
 		sql := `DELETE FROM classify WHERE id IN (` + utils.GetOrmInReplace(len(childIds)) + `)`
-		_, err = tx.Raw(sql, childIds).Exec()
+		err = tx.Exec(sql, childIds).Error
 		if err != nil {
 			return
 		}
@@ -122,13 +169,22 @@ func (c *Classify) Delete(childIds []int) (err error) {
 	if c.ParentId > 0 {
 		var count int
 		sql := `SELECT COUNT(*) FROM classify WHERE parent_id=? `
-		err = tx.Raw(sql, c.ParentId).QueryRow(&count)
+
+		var countNull sql2.NullInt64
+		err = tx.Raw(sql, c.ParentId).Scan(&countNull).Error
+		if err != nil {
+			return
+		}
+		if countNull.Valid {
+			count = int(countNull.Int64)
+		}
+
 		if err != nil {
 			return
 		}
 		if count == 0 {
 			sql = `UPDATE classify SET has_child=0 WHERE id=? `
-			_, err = tx.Raw(sql, c.ParentId).Exec()
+			err = tx.Exec(sql, c.ParentId).Error
 			if err != nil {
 				return
 			}
@@ -136,48 +192,53 @@ func (c *Classify) Delete(childIds []int) (err error) {
 	}
 
 	deleteImgSql := `DELETE FROM banner WHERE classify_id=? `
-	_, err = tx.Raw(deleteImgSql, c.Id).Exec()
+	err = tx.Exec(deleteImgSql, c.Id).Error
 	return
 }
 
 func GetClassifyByName(classifyName string, parentId int) (item *Classify, err error) {
 	sql := `SELECT * FROM classify WHERE classify_name=? AND parent_id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sql, classifyName, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyName, parentId).First(&item).Error
 	return
 }
 
 func GetClassifyById(classifyId int) (item *Classify, err error) {
 	sql := `SELECT * FROM classify WHERE id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 // 添加分类
 func AddClassify(item *Classify) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func GetReportCountByClassifyId(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT COUNT(1) AS count FROM report WHERE classify_id_second=? `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func GetClassifySubCountByClassifyId(classifyId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT COUNT(1) as num FROM classify AS a
         INNER JOIN report AS b ON a.id=b.classify_id_second
         WHERE a.parent_id=? `
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
@@ -185,35 +246,41 @@ func GetClassifySubCountByParentId(classifyId int) (count int, err error) {
 	sqlCount := `
 	SELECT COUNT(1) as num FROM classify AS a
 	WHERE a.parent_id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sqlCount, classifyId).QueryRow(&count)
-	return
-}
-
-// 删除分类
-func DeleteClassify(classifyId int) (err error) {
-	sql := `DELETE FROM classify WHERE id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, classifyId).Exec()
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sqlCount, classifyId).Scan(&countNull).Error
 	if err != nil {
 		return
 	}
-	deleteImgSql := `DELETE FROM banner WHERE classify_id=? `
-	_, err = o.Raw(deleteImgSql, classifyId).Exec()
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
+// 删除分类
+//func DeleteClassify(classifyId int) (err error) {
+//	sql := `DELETE FROM classify WHERE id=? `
+//	o := orm.NewOrmUsingDB("rddp")
+//	_, err = o.Raw(sql, classifyId).Exec()
+//	if err != nil {
+//		return
+//	}
+//	deleteImgSql := `DELETE FROM banner WHERE classify_id=? `
+//	_, err = o.Raw(deleteImgSql, classifyId).Exec()
+//	return
+//}
+
 // classifyName, abstract, descript string, parentId, classifyId int
 // 修改分类
-func EditClassify(req *EditClassifyReq) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	//sql := `UPDATE classify SET classify_name = ?,abstract=?, parent_id= ?,descript=?,report_author=?,author_descript=?,column_img_url=?,head_img_url=?,avatar_img_url=?,report_img_url=?,home_img_url=?,classify_label=?,show_type=?,has_teleconference=?,vip_title=?,modify_time= NOW() WHERE id = ? `
-	//_, err = o.Raw(sql, req.ClassifyName, req.Abstract, req.ParentId, req.Descript, req.ReportAuthor, req.AuthorDescript, req.ColumnImgUrl, req.HeadImgUrl, req.AvatarImgUrl, req.ReportImgUrl, req.HomeImgUrl, req.ClassifyLabel, req.ShowType, req.HasTeleconference, req.VipTitle, req.ClassifyId).Exec()
-	sql := `UPDATE classify SET classify_name = ?,parent_id= ?,modify_time= NOW() WHERE id = ? `
-	_, err = o.Raw(sql, req.ClassifyName, req.ParentId, req.ClassifyId).Exec()
-
-	return
-}
+//func EditClassify(req *EditClassifyReq) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	//sql := `UPDATE classify SET classify_name = ?,abstract=?, parent_id= ?,descript=?,report_author=?,author_descript=?,column_img_url=?,head_img_url=?,avatar_img_url=?,report_img_url=?,home_img_url=?,classify_label=?,show_type=?,has_teleconference=?,vip_title=?,modify_time= NOW() WHERE id = ? `
+//	//_, err = o.Raw(sql, req.ClassifyName, req.Abstract, req.ParentId, req.Descript, req.ReportAuthor, req.AuthorDescript, req.ColumnImgUrl, req.HeadImgUrl, req.AvatarImgUrl, req.ReportImgUrl, req.HomeImgUrl, req.ClassifyLabel, req.ShowType, req.HasTeleconference, req.VipTitle, req.ClassifyId).Exec()
+//	sql := `UPDATE classify SET classify_name = ?,parent_id= ?,modify_time= NOW() WHERE id = ? `
+//	_, err = o.Raw(sql, req.ClassifyName, req.ParentId, req.ClassifyId).Exec()
+//
+//	return
+//}
 
 // ParentClassify
 // @Description: 获取父级分类
@@ -221,52 +288,84 @@ func EditClassify(req *EditClassifyReq) (err error) {
 // @datetime 2024-06-18 15:03:49
 // @return items []*Classify
 // @return err error
-func ParentClassify() (items []*Classify, err error) {
-	sql := `SELECT * FROM classify WHERE parent_id=0 order by id desc `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql).QueryRows(&items)
-	return
-}
+//func ParentClassify() (items []*Classify, err error) {
+//	sql := `SELECT * FROM classify WHERE parent_id=0 order by id desc `
+//	o := orm.NewOrmUsingDB("rddp")
+//	_, err = o.Raw(sql).QueryRows(&items)
+//	return
+//}
 
 // 根据id获取分类详情
 func FindByIdClassify(classifyId int) (item *Classify, err error) {
 	sql := `SELECT * FROM classify WHERE id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyId).First(&item).Error
 	return
 }
 
+//type ClassifyList struct {
+//	Id                    int       `orm:"column(id);pk"`
+//	ClassifyName          string    `description:"分类名称"`
+//	Sort                  int       `description:"排序"`
+//	ParentId              int       `description:"父级分类id"`
+//	CreateTime            time.Time `description:"创建时间"`
+//	ModifyTime            time.Time `description:"修改时间"`
+//	Abstract              string    `description:"简介"`
+//	Descript              string    `description:"描述"`
+//	ClassifyLabel         string    `description:"分类标签"`
+//	ShowType              int       `description:"展示类型:1-列表 2-专栏"`
+//	HasTeleconference     int       `description:"是否有电话会:0-否 1-是"`
+//	IsShow                int       `description:"是否在小程序显示:1-显示 0-隐藏"`
+//	YbFiccSort            int       `description:"小程序FICC页排序"`
+//	YbFiccIcon            string    `description:"小程序FICC页icon"`
+//	YbFiccPcIcon          string    `description:"小程序PC端FICC页背景图"`
+//	YbIconUrl             string    `description:"小程序已购页icon"`
+//	YbBgUrl               string    `description:"小程序已购详情背景图"`
+//	YbListImg             string    `description:"小程序研报列表封面图"`
+//	YbShareBgImg          string    `description:"小程序研报详情分享背景图"`
+//	YbRightBanner         string    `description:"Pc端详情页,右侧,报告合集背景图"`
+//	RelateTel             int       `description:"是否在电话会中可选: 0-否; 1-是"`
+//	RelateVideo           int       `description:"是否在路演视频中可选: 0-否; 1-是"`
+//	Enabled               int       `description:"是否可用,1可用,0禁用"`
+//	Child                 []*ClassifyList
+//	ClassifyMenuId        int `description:"二级分类-子目录ID"`
+//	ClassifyMenuList      []*ClassifyMenu
+//	ChartPermissionIdList []int `description:"绑定的权限ID"`
+//	Level                 int   `description:"层级"`
+//	HasChild              int   `description:"是否有子级别,0:下面没有子分类,1:下面有子分类;默认:0"`
+//	IsEnableDelete        int   `description:"是否允许删除: 0-否; 1-是"`
+//}
+
 type ClassifyList struct {
-	Id                    int       `orm:"column(id);pk"`
-	ClassifyName          string    `description:"分类名称"`
-	Sort                  int       `description:"排序"`
-	ParentId              int       `description:"父级分类id"`
-	CreateTime            time.Time `description:"创建时间"`
-	ModifyTime            time.Time `description:"修改时间"`
-	Abstract              string    `description:"简介"`
-	Descript              string    `description:"描述"`
-	ClassifyLabel         string    `description:"分类标签"`
-	ShowType              int       `description:"展示类型:1-列表 2-专栏"`
-	HasTeleconference     int       `description:"是否有电话会:0-否 1-是"`
-	IsShow                int       `description:"是否在小程序显示:1-显示 0-隐藏"`
-	YbFiccSort            int       `description:"小程序FICC页排序"`
-	YbFiccIcon            string    `description:"小程序FICC页icon"`
-	YbFiccPcIcon          string    `description:"小程序PC端FICC页背景图"`
-	YbIconUrl             string    `description:"小程序已购页icon"`
-	YbBgUrl               string    `description:"小程序已购详情背景图"`
-	YbListImg             string    `description:"小程序研报列表封面图"`
-	YbShareBgImg          string    `description:"小程序研报详情分享背景图"`
-	YbRightBanner         string    `description:"Pc端详情页,右侧,报告合集背景图"`
-	RelateTel             int       `description:"是否在电话会中可选: 0-否; 1-是"`
-	RelateVideo           int       `description:"是否在路演视频中可选: 0-否; 1-是"`
-	Enabled               int       `description:"是否可用,1可用,0禁用"`
-	Child                 []*ClassifyList
-	ClassifyMenuId        int `description:"二级分类-子目录ID"`
-	ClassifyMenuList      []*ClassifyMenu
-	ChartPermissionIdList []int `description:"绑定的权限ID"`
-	Level                 int   `description:"层级"`
-	HasChild              int   `description:"是否有子级别,0:下面没有子分类,1:下面有子分类;默认:0"`
-	IsEnableDelete        int   `description:"是否允许删除: 0-否; 1-是"`
+	Id                    int             `gorm:"column:id"`                 //`orm:"column(id);pk" gorm:"primaryKey" `
+	ClassifyName          string          `gorm:"column:classify_name"`      //`description:"分类名称"`
+	Sort                  int             `gorm:"column:sort"`               //`description:"排序"`
+	ParentId              int             `gorm:"column:parent_id"`          //`description:"父级分类id"`
+	CreateTime            time.Time       `gorm:"column:create_time"`        //`description:"创建时间"`
+	ModifyTime            time.Time       `gorm:"column:modify_time"`        //`description:"修改时间"`
+	Abstract              string          `gorm:"column:abstract"`           //`description:"简介"`
+	Descript              string          `gorm:"column:descript"`           //`description:"描述"`
+	ClassifyLabel         string          `gorm:"column:classify_label"`     //`description:"分类标签"`
+	ShowType              int             `gorm:"column:show_type"`          //`description:"展示类型:1-列表 2-专栏"`
+	HasTeleconference     int             `gorm:"column:has_teleconference"` //`description:"是否有电话会:0-否 1-是"`
+	IsShow                int             `gorm:"column:is_show"`            //`description:"是否在小程序显示:1-显示 0-隐藏"`
+	YbFiccSort            int             `gorm:"column:yb_ficc_sort"`       //`description:"小程序FICC页排序"`
+	YbFiccIcon            string          `gorm:"column:yb_ficc_icon"`       //`description:"小程序FICC页icon"`
+	YbFiccPcIcon          string          `gorm:"column:yb_ficc_pc_icon"`    //`description:"小程序PC端FICC页背景图"`
+	YbIconUrl             string          `gorm:"column:yb_icon_url"`        //`description:"小程序已购页icon"`
+	YbBgUrl               string          `gorm:"column:yb_bg_url"`          //`description:"小程序已购详情背景图"`
+	YbListImg             string          `gorm:"column:yb_list_img"`        //`description:"小程序研报列表封面图"`
+	YbShareBgImg          string          `gorm:"column:yb_share_bg_img"`    //`description:"小程序研报详情分享背景图"`
+	YbRightBanner         string          `gorm:"column:yb_right_banner"`    //`description:"Pc端详情页,右侧,报告合集背景图"`
+	RelateTel             int             `gorm:"column:relate_tel"`         //`description:"是否在电话会中可选: 0-否; 1-是"`
+	RelateVideo           int             `gorm:"column:relate_video"`       //`description:"是否在路演视频中可选: 0-否; 1-是"`
+	Enabled               int             `gorm:"column:enabled"`            //`description:"是否可用,1可用,0禁用"`
+	Level                 int             `gorm:"column:level"`              //`description:"层级"`
+	HasChild              int             `gorm:"column:has_child"`          //`description:"是否有子级别,0:下面没有子分类,1:下面有子分类;默认:0"`
+	Child                 []*ClassifyList `gorm:"-"`
+	ClassifyMenuId        int             `gorm:"-"` //`description:"二级分类-子目录ID"`
+	ClassifyMenuList      []*ClassifyMenu `gorm:"-"`
+	ChartPermissionIdList []int           `gorm:"-"` //`description:"绑定的权限ID"`
+	IsEnableDelete        int             `gorm:"-" description:"是否允许删除: 0-否; 1-是"`
 }
 
 type ClassifyItem struct {
@@ -287,68 +386,68 @@ type ClassifyPermissionListResp struct {
 }
 
 // 获取分类列表
-func GetClassifyList(keyWord string, enabled int) (items []*ClassifyList, err error) {
-	sql := ``
-	companyTypeSqlStr := ``
-	if enabled == 1 {
-		companyTypeSqlStr += ` AND enabled = 1 `
-	}
-	pars := make([]interface{}, 0)
-	if keyWord != "" {
-		sql = `SELECT * FROM (
-                   SELECT * FROM classify
-                   WHERE parent_id=0 ` + companyTypeSqlStr + `  AND classify_name LIKE ?
-                   UNION
-                   SELECT * FROM classify
-                   WHERE id IN( SELECT parent_id FROM classify
-                   WHERE parent_id>0 ` + companyTypeSqlStr + `  AND classify_name LIKE ? )
-                   )AS t
-                   ORDER BY sort ASC,create_time ASC`
-		pars = utils.GetLikeKeywordPars(pars, keyWord, 2)
-	} else {
-		sql = `SELECT * FROM classify WHERE parent_id=0 ` + companyTypeSqlStr
-
-		sql += ` ORDER BY sort ASC, create_time ASC`
-	}
-	pars = append(pars)
-
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, pars...).QueryRows(&items)
-	return
-}
-
-func GetClassifyListCount(keyWord, companyType string, hideDayWeek int) (count int, err error) {
-	sqlCount := ``
-
-	companyTypeSqlStr := ``
-	if companyType == "ficc" {
-		companyTypeSqlStr = " AND id != 40 AND parent_id != 40 "
-	} else if companyType == "权益" {
-		companyTypeSqlStr = " AND (id = 40 or parent_id = 40)  "
-	}
-
-	pars := make([]interface{}, 0)
-
-	if keyWord != "" {
-		sqlCount = `SELECT  COUNT(1) AS count FROM (
-               SELECT * FROM classify
-               WHERE parent_id=0 ` + companyTypeSqlStr + `  AND classify_name LIKE ?
-               UNION
-               SELECT * FROM classify
-               WHERE id IN(SELECT parent_id FROM classify
-               WHERE parent_id>0 ` + companyTypeSqlStr + `  AND classify_name LIKE ? )
-               )AS t `
-		pars = utils.GetLikeKeywordPars(pars, keyWord, 2)
-	} else {
-		sqlCount = `SELECT COUNT(1) AS count FROM classify WHERE parent_id=0 ` + companyTypeSqlStr
-		if hideDayWeek == 1 {
-			sqlCount += ` AND classify_name <> '晨报' AND classify_name <> '周报' `
-		}
-	}
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sqlCount, pars...).QueryRow(&count)
-	return
-}
+//func GetClassifyList(keyWord string, enabled int) (items []*ClassifyList, err error) {
+//	sql := ``
+//	companyTypeSqlStr := ``
+//	if enabled == 1 {
+//		companyTypeSqlStr += ` AND enabled = 1 `
+//	}
+//	pars := make([]interface{}, 0)
+//	if keyWord != "" {
+//		sql = `SELECT * FROM (
+//                   SELECT * FROM classify
+//                   WHERE parent_id=0 ` + companyTypeSqlStr + `  AND classify_name LIKE ?
+//                   UNION
+//                   SELECT * FROM classify
+//                   WHERE id IN( SELECT parent_id FROM classify
+//                   WHERE parent_id>0 ` + companyTypeSqlStr + `  AND classify_name LIKE ? )
+//                   )AS t
+//                   ORDER BY sort ASC,create_time ASC`
+//		pars = utils.GetLikeKeywordPars(pars, keyWord, 2)
+//	} else {
+//		sql = `SELECT * FROM classify WHERE parent_id=0 ` + companyTypeSqlStr
+//
+//		sql += ` ORDER BY sort ASC, create_time ASC`
+//	}
+//	pars = append(pars)
+//
+//	o := orm.NewOrmUsingDB("rddp")
+//	_, err = o.Raw(sql, pars...).QueryRows(&items)
+//	return
+//}
+
+//func GetClassifyListCount(keyWord, companyType string, hideDayWeek int) (count int, err error) {
+//	sqlCount := ``
+//
+//	companyTypeSqlStr := ``
+//	if companyType == "ficc" {
+//		companyTypeSqlStr = " AND id != 40 AND parent_id != 40 "
+//	} else if companyType == "权益" {
+//		companyTypeSqlStr = " AND (id = 40 or parent_id = 40)  "
+//	}
+//
+//	pars := make([]interface{}, 0)
+//
+//	if keyWord != "" {
+//		sqlCount = `SELECT  COUNT(1) AS count FROM (
+//               SELECT * FROM classify
+//               WHERE parent_id=0 ` + companyTypeSqlStr + `  AND classify_name LIKE ?
+//               UNION
+//               SELECT * FROM classify
+//               WHERE id IN(SELECT parent_id FROM classify
+//               WHERE parent_id>0 ` + companyTypeSqlStr + `  AND classify_name LIKE ? )
+//               )AS t `
+//		pars = utils.GetLikeKeywordPars(pars, keyWord, 2)
+//	} else {
+//		sqlCount = `SELECT COUNT(1) AS count FROM classify WHERE parent_id=0 ` + companyTypeSqlStr
+//		if hideDayWeek == 1 {
+//			sqlCount += ` AND classify_name <> '晨报' AND classify_name <> '周报' `
+//		}
+//	}
+//	o := orm.NewOrmUsingDB("rddp")
+//	err = o.Raw(sqlCount, pars...).QueryRow(&count)
+//	return
+//}
 
 type CheckDeleteClassifyReq struct {
 	ClassifyId int `description:"分类ID"`
@@ -373,7 +472,6 @@ type FindByIdClassifyReq struct {
 }
 
 func GetClassifyChild(parentId int, keyWord string) (items []*Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ``
 	pars := make([]interface{}, 0)
 	if keyWord != "" {
@@ -383,35 +481,34 @@ func GetClassifyChild(parentId int, keyWord string) (items []*Classify, err erro
 		sql = `SELECT * FROM classify WHERE parent_id=? ORDER BY create_time ASC `
 	}
 	pars = append(pars, parentId)
-	_, err = o.Raw(sql, pars...).QueryRows(&items)
-
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
-func GetClassifyChildByParentIds(parentId []int, keyWord string, enabled int) (items []*Classify, err error) {
-	parentIdLen := len(parentId)
-	if parentIdLen == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ``
-	pars := make([]interface{}, 0)
-	pars = append(pars, parentId)
-	if keyWord != "" {
-		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) AND classify_name LIKE ? `
-		pars = append(pars, utils.GetLikeKeyword(keyWord))
-	} else {
-		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) `
-	}
-
-	if enabled == 1 {
-		sql += ` AND enabled=1 `
-	}
-	sql += ` ORDER BY create_time ASC `
-	_, err = o.Raw(sql, pars...).QueryRows(&items)
-
-	return
-}
+//func GetClassifyChildByParentIds(parentId []int, keyWord string, enabled int) (items []*Classify, err error) {
+//	parentIdLen := len(parentId)
+//	if parentIdLen == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := ``
+//	pars := make([]interface{}, 0)
+//	pars = append(pars, parentId)
+//	if keyWord != "" {
+//		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) AND classify_name LIKE ? `
+//		pars = append(pars, utils.GetLikeKeyword(keyWord))
+//	} else {
+//		sql = `SELECT * FROM classify WHERE parent_id IN (` + utils.GetOrmInReplace(parentIdLen) + `) `
+//	}
+//
+//	if enabled == 1 {
+//		sql += ` AND enabled=1 `
+//	}
+//	sql += ` ORDER BY create_time ASC `
+//	_, err = o.Raw(sql, pars...).QueryRows(&items)
+//
+//	return
+//}
 
 // EditClassifyPermissionReq 编辑分类权限请求
 type EditClassifyPermissionReq struct {
@@ -436,18 +533,16 @@ func GetAllClassifyWithDesc() (list []*Classify, err error) {
 }
 
 // GetClassifyByKeyword 名称获取分类
-func GetClassifyByKeyword(keyword string) (item Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT * FROM classify WHERE classify_name = ? LIMIT 1 `
-	err = o.Raw(sql, keyword).QueryRow(&item)
-	return
-}
+//func GetClassifyByKeyword(keyword string) (item Classify, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := ` SELECT * FROM classify WHERE classify_name = ? LIMIT 1 `
+//	err = o.Raw(sql, keyword).QueryRow(&item)
+//	return
+//}
 
 // UpdateClassify 更新分类
 func (classifyInfo *Classify) UpdateClassify(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(classifyInfo, cols...)
-
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(classifyInfo).Error
 	return
 }
 
@@ -462,7 +557,6 @@ type SimpleClassifyList struct {
 
 // GetClassifyByCondition 获取分类列表
 func GetClassifyByCondition(condition, orderRule string, pars []interface{}) (items []*SimpleClassifyList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM classify WHERE 1 = 1 `
 	if condition != `` {
 		sql += condition
@@ -472,17 +566,17 @@ func GetClassifyByCondition(condition, orderRule string, pars []interface{}) (it
 		order = orderRule
 	}
 	sql += ` ORDER BY ` + order
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 // UpdateChildClassifyRelateSetting 更新子分类关联设置
-func UpdateChildClassifyRelateSetting(parentId, relateTel, relateVideo int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `UPDATE classify SET relate_tel = ?, relate_video = ? WHERE parent_id = ?`
-	_, err = o.Raw(sql, relateTel, relateVideo, parentId).Exec()
-	return
-}
+//func UpdateChildClassifyRelateSetting(parentId, relateTel, relateVideo int) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `UPDATE classify SET relate_tel = ?, relate_video = ? WHERE parent_id = ?`
+//	_, err = o.Raw(sql, relateTel, relateVideo, parentId).Exec()
+//	return
+//}
 
 // RelateTelSecClassifyWithPermissions 关联了电话会的二级分类及权限
 type RelateTelSecClassifyWithPermissions struct {
@@ -493,36 +587,52 @@ type RelateTelSecClassifyWithPermissions struct {
 
 // UpdateClassifySortByParentId 根据父类id更新排序
 func UpdateClassifySortByParentId(parentId, permissionId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` update classify set sort = ` + updateSort + ` WHERE parent_id=? AND sort > ? `
 	if permissionId > 0 {
 		sql += ` or ( id > ` + fmt.Sprint(permissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // GetMaxSortByParentId 获取最大的排序值
 func (classifyInfo *Classify) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT max(sort) AS sort FROM classify WHERE parent_id = ? `
-	err = o.Raw(sql, parentId).QueryRow(&maxSort)
+	if utils.DbDriverName == utils.DbDriverByDm {
+		sql = `SELECT COALESCE(MAX(sort), 0) AS sort FROM classify WHERE parent_id = ? `
+	}
+	var maxNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetMaxSort 获取最大的排序值
 func (classifyInfo *Classify) GetMaxSort() (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT max(sort) AS sort FROM classify`
-	err = o.Raw(sql).QueryRow(&maxSort)
+	if utils.DbDriverName == utils.DbDriverByDm {
+		sql = `SELECT COALESCE(MAX(sort), 0) AS sort FROM classify`
+	}
+	var maxNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetFirstClassifyByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
 func (classifyInfo *Classify) GetFirstClassifyByParentId(parentId int) (item *Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM classify WHERE parent_id = ? order by sort asc, id asc limit 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).First(&item).Error
 	return
 }
 
@@ -538,11 +648,7 @@ type ClassifySetEnabledReq struct {
 }
 
 func (classifyInfo *Classify) SetEnabled(id, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -551,12 +657,12 @@ func (classifyInfo *Classify) SetEnabled(id, enabled int) (err error) {
 		}
 	}()
 	sql := ` UPDATE classify SET enabled =?  WHERE id = ?`
-	_, err = to.Raw(sql, enabled, id).Exec()
+	err = to.Exec(sql, enabled, id).Error
 	if err != nil {
 		return
 	}
 	sql = ` UPDATE classify SET enabled =?  WHERE parent_id = ?`
-	_, err = to.Raw(sql, enabled, id).Exec()
+	err = to.Exec(sql, enabled, id).Error
 	if err != nil {
 		return
 	}
@@ -571,10 +677,15 @@ func (classifyInfo *Classify) SetEnabled(id, enabled int) (err error) {
 // @return total int
 // @return err error
 func GetCountClassifyChildByParentId(parentId int) (total int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT count(1) AS total FROM classify WHERE parent_id = ? `
-	err = o.Raw(sql, parentId).QueryRow(&total)
-
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		total = int(countNull.Int64)
+	}
 	return
 }
 
@@ -601,8 +712,7 @@ func GetClassifyListByKeyword(keyWord string, enabled int) (items []*ClassifyLis
 	}
 	sql += ` ORDER BY sort ASC, create_time ASC`
 
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, pars...).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -621,8 +731,7 @@ func GetClassifyListByParentIdList(parentClassifyIdList []int) (items []*Classif
 	}
 	sql := `SELECT * FROM classify WHERE id in (` + utils.GetOrmInReplace(num) + `) ORDER BY sort ASC, create_time ASC`
 
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, parentClassifyIdList).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentClassifyIdList).Find(&items).Error
 	return
 }
 
@@ -639,17 +748,13 @@ func GetClassifyListByIdList(classifyIdList []int) (items []*Classify, err error
 		return
 	}
 	sql := `SELECT * FROM classify WHERE id IN (` + utils.GetOrmInReplace(num) + `) `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, classifyIdList).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyIdList).Find(&items).Error
 	return
 }
 
 // GetClassifyListByParentId 查询父分类下所有的子分类
 func GetClassifyListByParentId(parentId int) (items []*Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM classify WHERE parent_id = ? and enabled = 1`
-
-	_, err = o.Raw(sql, parentId).QueryRows(&items)
-
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Find(&items).Error
 	return items, err
 }

+ 82 - 79
models/classify_menu.go

@@ -1,19 +1,29 @@
 package models
 
 import (
-	"fmt"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ClassifyMenu 报告分类-子目录表
+//type ClassifyMenu struct {
+//	MenuId     int       `orm:"column(menu_id);pk"`
+//	MenuName   string    `description:"子目录名称"`
+//	ClassifyId int       `description:"一级分类ID"`
+//	Sort       int       `description:"排序"`
+//	CreateTime time.Time `description:"创建时间"`
+//	ModifyTime time.Time `description:"更新时间"`
+//}
+
 type ClassifyMenu struct {
-	MenuId     int       `orm:"column(menu_id);pk"`
-	MenuName   string    `description:"子目录名称"`
-	ClassifyId int       `description:"一级分类ID"`
-	Sort       int       `description:"排序"`
-	CreateTime time.Time `description:"创建时间"`
-	ModifyTime time.Time `description:"更新时间"`
+	MenuId     int       `gorm:"column:menu_id;primaryKey;autoIncrement"` // `orm:"column(menu_id);pk" gorm:"primaryKey" `
+	MenuName   string    `gorm:"column:mobile"`                           //`description:"子目录名称"`
+	ClassifyId int       `gorm:"column:classify_id"`                      //`description:"一级分类ID"`
+	Sort       int       `gorm:"column:sort"`                             //`description:"排序"`
+	CreateTime time.Time `gorm:"column:create_time"`                      //`description:"创建时间"`
+	ModifyTime time.Time `gorm:"column:modify_time"`                      //`description:"更新时间"`
 }
 
 func (item *ClassifyMenu) TableName() string {
@@ -21,34 +31,27 @@ func (item *ClassifyMenu) TableName() string {
 }
 
 func (item *ClassifyMenu) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.MenuId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *ClassifyMenu) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 func (item *ClassifyMenu) InsertMulti(items []*ClassifyMenu) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	err = global.DbMap[utils.DbNameReport].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 // GetClassifyMenuById 主键获取子目录
-func GetClassifyMenuById(id int) (item *ClassifyMenu, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM classify_menu WHERE menu_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&item)
-	return
-}
+//func GetClassifyMenuById(id int) (item *ClassifyMenu, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT * FROM classify_menu WHERE menu_id = ? LIMIT 1`
+//	err = o.Raw(sql, id).QueryRow(&item)
+//	return
+//}
 
 // GetClassifyMenuList 获取子目录列表
 func GetClassifyMenuList(condition string, pars []interface{}) (list []*ClassifyMenu, err error) {
@@ -62,63 +65,63 @@ func GetClassifyMenuList(condition string, pars []interface{}) (list []*Classify
 
 // ClassifyMenuSaveReq 保存分类子目录请求体
 type ClassifyMenuSaveReq struct {
-	MenuId     int    `description:"子目录ID, 0为新增, 大于0为编辑"`
-	MenuName   string `description:"子目录名称"`
+	MenuId   int    `description:"子目录ID, 0为新增, 大于0为编辑"`
+	MenuName string `description:"子目录名称"`
 	//ClassifyId int    `description:"一级分类ID"`
 }
 
 // InsertAndUpdateClassifyMenu 新增/编辑/删除分类子目录
-func InsertAndUpdateClassifyMenu(insertMenus []*ClassifyMenu, editMenus []*ClassifyMenu, deleteMenuIds []int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
-		}
-	}()
-
-	// 编辑
-	sql := ``
-	if len(editMenus) > 0 {
-		for i := range editMenus {
-			sql = fmt.Sprintf(`UPDATE classify_menu SET menu_name = '%s', sort = %d, modify_time = NOW() WHERE menu_id = %d`,
-				editMenus[i].MenuName, editMenus[i].Sort, editMenus[i].MenuId)
-			if _, e := tx.Raw(sql).Exec(); e != nil {
-				err = e
-				return
-			}
-		}
-	}
-
-	// 删除
-	if len(deleteMenuIds) > 0 {
-		for i := range deleteMenuIds {
-			sql = fmt.Sprintf(`DELETE FROM classify_menu WHERE menu_id = %d LIMIT 1`, deleteMenuIds[i])
-			if _, e := tx.Raw(sql).Exec(); e != nil {
-				err = e
-				return
-			}
-			// 删除关联关系
-			sql = fmt.Sprintf(`DELETE FROM classify_menu_relation WHERE menu_id = %d`, deleteMenuIds[i])
-			if _, e := tx.Raw(sql).Exec(); e != nil {
-				err = e
-				return
-			}
-		}
-	}
-
-	// 新增
-	if len(insertMenus) > 0 {
-		_, e := tx.InsertMulti(len(insertMenus), insertMenus)
-		if e != nil {
-			err = e
-			return
-		}
-	}
-	return
-}
+//func InsertAndUpdateClassifyMenu(insertMenus []*ClassifyMenu, editMenus []*ClassifyMenu, deleteMenuIds []int) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	tx, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = tx.Rollback()
+//		} else {
+//			_ = tx.Commit()
+//		}
+//	}()
+//
+//	// 编辑
+//	sql := ``
+//	if len(editMenus) > 0 {
+//		for i := range editMenus {
+//			sql = fmt.Sprintf(`UPDATE classify_menu SET menu_name = '%s', sort = %d, modify_time = NOW() WHERE menu_id = %d`,
+//				editMenus[i].MenuName, editMenus[i].Sort, editMenus[i].MenuId)
+//			if _, e := tx.Raw(sql).Exec(); e != nil {
+//				err = e
+//				return
+//			}
+//		}
+//	}
+//
+//	// 删除
+//	if len(deleteMenuIds) > 0 {
+//		for i := range deleteMenuIds {
+//			sql = fmt.Sprintf(`DELETE FROM classify_menu WHERE menu_id = %d LIMIT 1`, deleteMenuIds[i])
+//			if _, e := tx.Raw(sql).Exec(); e != nil {
+//				err = e
+//				return
+//			}
+//			// 删除关联关系
+//			sql = fmt.Sprintf(`DELETE FROM classify_menu_relation WHERE menu_id = %d`, deleteMenuIds[i])
+//			if _, e := tx.Raw(sql).Exec(); e != nil {
+//				err = e
+//				return
+//			}
+//		}
+//	}
+//
+//	// 新增
+//	if len(insertMenus) > 0 {
+//		_, e := tx.InsertMulti(len(insertMenus), insertMenus)
+//		if e != nil {
+//			err = e
+//			return
+//		}
+//	}
+//	return
+//}

+ 52 - 52
models/classify_menu_relation.go

@@ -1,16 +1,24 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 // ClassifyMenuRelation 报告分类-子目录关联表
+//type ClassifyMenuRelation struct {
+//	Id         int       `orm:"column(id);pk"`
+//	MenuId     int       `description:"子目录ID"`
+//	ClassifyId int       `description:"二级分类ID"`
+//	CreateTime time.Time `description:"创建时间"`
+//}
+
 type ClassifyMenuRelation struct {
-	Id         int       `orm:"column(id);pk"`
-	MenuId     int       `description:"子目录ID"`
-	ClassifyId int       `description:"二级分类ID"`
-	CreateTime time.Time `description:"创建时间"`
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement"` //`orm:"column(id);pk" gorm:"primaryKey" `
+	MenuId     int       `gorm:"column:menu_id"`                     //`description:"子目录ID"`
+	ClassifyId int       `gorm:"column:classify_id"`                 //`description:"二级分类ID"`
+	CreateTime time.Time `gorm:"column:create_time"`                 //`description:"创建时间"`
 }
 
 func (item *ClassifyMenuRelation) TableName() string {
@@ -18,70 +26,62 @@ func (item *ClassifyMenuRelation) TableName() string {
 }
 
 func (item *ClassifyMenuRelation) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *ClassifyMenuRelation) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 func (item *ClassifyMenuRelation) InsertMulti(items []*ClassifyMenuRelation) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	err = global.DbMap[utils.DbNameReport].CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 // GetClassifyMenuRelationList 获取子目录关联列表
 func GetClassifyMenuRelationList(condition string, pars []interface{}) (list []*ClassifyMenuRelation, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM classify_menu_relation WHERE 1 = 1 `
 	sql += condition
 	sql += ` ORDER BY create_time DESC`
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&list).Error
 	return
 }
 
 // DeleteAndInsertClassifyMenuRelation 新增子目录关联
-func DeleteAndInsertClassifyMenuRelation(classifyId, menuId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
-	defer func() {
-		if err != nil {
-			_ = tx.Rollback()
-		} else {
-			_ = tx.Commit()
-		}
-	}()
-
-	// 删除
-	sql := `DELETE FROM classify_menu_relation WHERE classify_id = ?`
-	if _, e := tx.Raw(sql, classifyId).Exec(); e != nil {
-		err = e
-		return
-	}
-
-	// 新增
-	if menuId > 0 {
-		relate := &ClassifyMenuRelation{
-			ClassifyId: classifyId,
-			MenuId:     menuId,
-			CreateTime: time.Now().Local(),
-		}
-		_, e := tx.Insert(relate)
-		if e != nil {
-			err = e
-		}
-	}
-	return
-}
+//func DeleteAndInsertClassifyMenuRelation(classifyId, menuId int) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	tx, err := o.Begin()
+//	if err != nil {
+//		return
+//	}
+//	defer func() {
+//		if err != nil {
+//			_ = tx.Rollback()
+//		} else {
+//			_ = tx.Commit()
+//		}
+//	}()
+//
+//	// 删除
+//	sql := `DELETE FROM classify_menu_relation WHERE classify_id = ?`
+//	if _, e := tx.Raw(sql, classifyId).Exec(); e != nil {
+//		err = e
+//		return
+//	}
+//
+//	// 新增
+//	if menuId > 0 {
+//		relate := &ClassifyMenuRelation{
+//			ClassifyId: classifyId,
+//			MenuId:     menuId,
+//			CreateTime: time.Now().Local(),
+//		}
+//		_, e := tx.Insert(relate)
+//		if e != nil {
+//			err = e
+//		}
+//	}
+//	return
+//}

+ 13 - 24
models/cloud_disk_menu.go

@@ -1,15 +1,15 @@
 package models
 
 import (
-	"fmt"
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
+	"fmt"
 	"strings"
 	"time"
 )
 
 type CloudDiskMenu struct {
-	MenuId     int       `orm:"column(menu_id);pk" description:"目录ID"`
+	MenuId     int       `gorm:"column:menu_id;primaryKey;autoIncrement" description:"目录ID"`
 	MenuName   string    `description:"目录名称"`
 	ParentId   int       `description:"父级ID"`
 	Size       int64     `description:"目录大小"`
@@ -24,39 +24,30 @@ func (m *CloudDiskMenu) TableName() string {
 }
 
 func (m *CloudDiskMenu) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.MenuId = int(id)
+	err = global.DEFAULT_DB.Create(m).Error
 	return
 }
 
 func (m *CloudDiskMenu) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DB.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *CloudDiskMenu) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
 	sql := `SELECT * FROM cloud_disk_menu WHERE menu_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DB.Raw(sql, id).Find(&m).Error
 	return
 }
 
 func (m *CloudDiskMenu) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
 	sql := `SELECT * FROM cloud_disk_menu WHERE 1=1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DB.Raw(sql, pars).Find(&m).Error
 	return
 }
 
 func (m *CloudDiskMenu) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*CloudDiskMenu, err error) {
-	o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -66,7 +57,7 @@ func (m *CloudDiskMenu) 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 = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -90,11 +81,7 @@ func DeleteCloudDiskMenuAndResourcesByMenuIds(menuIds []int) (err error) {
 	if menuLens == 0 {
 		return
 	}
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	tx := global.DEFAULT_DB.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -104,11 +91,13 @@ func DeleteCloudDiskMenuAndResourcesByMenuIds(menuIds []int) (err error) {
 	}()
 
 	sql := `DELETE FROM cloud_disk_menu WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
-	if _, err = tx.Raw(sql, menuIds).Exec(); err != nil {
+	err = tx.Exec(sql, menuIds).Error
+	if err != nil {
 		return
 	}
 	sql = `DELETE FROM cloud_disk_resource WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
-	if _, err = tx.Raw(sql, menuIds).Exec(); err != nil {
+	err = tx.Exec(sql, menuIds).Error
+	if err != nil {
 		return
 	}
 	return

+ 20 - 31
models/cloud_disk_resource.go

@@ -1,9 +1,9 @@
 package models
 
 import (
-	"fmt"
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
+	"fmt"
 	"strings"
 	"time"
 )
@@ -15,7 +15,7 @@ const (
 )
 
 type CloudDiskResource struct {
-	ResourceId     int       `orm:"column(resource_id);pk" description:"资源ID"`
+	ResourceId     int       `gorm:"column:resource_id;primaryKey;autoIncrement" description:"资源ID"`
 	MenuId         int       `description:"目录ID"`
 	ResourceName   string    `description:"文件名"`
 	ResourceSuffix string    `description:"文件后缀名"`
@@ -33,44 +33,34 @@ func (m *CloudDiskResource) TableName() string {
 }
 
 func (m *CloudDiskResource) Create() (err error) {
-	o := orm.NewOrm()
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.ResourceId = int(id)
+	err = global.DEFAULT_DB.Create(m).Error
 	return
 }
 
 func (m *CloudDiskResource) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(m, cols...)
+	err = global.DEFAULT_DB.Select(cols).Updates(m).Error
 	return
 }
 
 func (m *CloudDiskResource) Delete() (err error) {
-	o := orm.NewOrm()
 	sql := `DELETE FROM cloud_disk_resource WHERE resource_id = ? LIMIT 1`
-	_, err = o.Raw(sql, m.ResourceId).Exec()
+	err = global.DEFAULT_DB.Exec(sql, m.ResourceId).Error
 	return
 }
 
 func (m *CloudDiskResource) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE resource_id = ? LIMIT 1`, m.TableName())
-	err = o.Raw(sql, id).QueryRow(&m)
+	err = global.DEFAULT_DB.Raw(sql, id).Find(&m).Error
 	return
 }
 
 func (m *CloudDiskResource) GetItemByCondition(condition string, pars []interface{}) (err error) {
-	o := orm.NewOrm()
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&m)
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&m).Error
 	return
 }
 
 func (m *CloudDiskResource) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*CloudDiskResource, err error) {
-	o := orm.NewOrm()
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -80,7 +70,7 @@ func (m *CloudDiskResource) 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 = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -151,7 +141,6 @@ type CloudDiskMenuResourcePath struct {
 
 // GetCloudDiskMenuAndResourceList UNION获取云盘列表数据
 func GetCloudDiskMenuAndResourceList(menuCond, resourceCond string, menuPars, resourcePars []interface{}, orderRule string) (items []*CloudDiskListItem, err error) {
-	o := orm.NewOrm()
 	base := `SELECT menu_id AS item_id, menu_name AS item_name, 1 AS item_type, parent_id, size, "" AS resource_url, "" AS item_icon, admin_id, admin_name, create_time FROM cloud_disk_menu
 			WHERE 1=1 %s
 			UNION
@@ -162,7 +151,9 @@ func GetCloudDiskMenuAndResourceList(menuCond, resourceCond string, menuPars, re
 		order = ` ORDER BY ` + orderRule
 	}
 	sql := fmt.Sprintf(base, menuCond, resourceCond, order)
-	_, err = o.Raw(sql, menuPars, resourcePars).QueryRows(&items)
+	pars := make([]interface{}, 0)
+	pars = append(pars, menuPars, resourcePars)
+	err = global.DEFAULT_DB.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -171,9 +162,8 @@ func GetSizeTotalByMenuIds(menuIds []int) (sizeTotal int64, err error) {
 	if len(menuIds) == 0 {
 		return
 	}
-	o := orm.NewOrm()
 	sql := `SELECT SUM(size) FROM cloud_disk_resource WHERE menu_id IN (` + utils.GetOrmInReplace(len(menuIds)) + `)`
-	err = o.Raw(sql, menuIds).QueryRow(&sizeTotal)
+	err = global.DEFAULT_DB.Raw(sql, menuIds).Scan(&sizeTotal).Error
 	return
 }
 
@@ -192,11 +182,7 @@ func BatchDeleteCloudDiskMenuAndResource(menuIds, resourceIds []int) (err error)
 		return
 	}
 
-	o := orm.NewOrm()
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	tx := global.DEFAULT_DB.Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -207,17 +193,20 @@ func BatchDeleteCloudDiskMenuAndResource(menuIds, resourceIds []int) (err error)
 
 	if menuLens > 0 {
 		sql := `DELETE FROM cloud_disk_menu WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
-		if _, err = tx.Raw(sql, menuIds).Exec(); err != nil {
+		err = tx.Exec(sql, menuIds).Error
+		if err != nil {
 			return
 		}
 		sql = `DELETE FROM cloud_disk_resource WHERE menu_id IN (` + utils.GetOrmInReplace(menuLens) + `)`
-		if _, err = tx.Raw(sql, menuIds).Exec(); err != nil {
+		err = tx.Exec(sql, menuIds).Error
+		if err != nil {
 			return
 		}
 	}
 	if resourceLens > 0 {
 		sql := `DELETE FROM cloud_disk_resource WHERE resource_id IN (` + utils.GetOrmInReplace(resourceLens) + `)`
-		if _, err = tx.Raw(sql, resourceIds).Exec(); err != nil {
+		err = tx.Exec(sql, resourceIds).Error
+		if err != nil {
 			return
 		}
 	}

+ 10 - 10
models/edb_import_fail.go

@@ -1,9 +1,12 @@
 package models
 
-import "github.com/beego/beego/v2/client/orm"
+import (
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
+)
 
 type EdbImportFail struct {
-	Id           int `orm:"column(id);pk"`
+	Id           int `gorm:"column:id;primaryKey;autoIncrement"`
 	ClassifyName string
 	Frequency    string
 	SecName      string
@@ -13,23 +16,20 @@ type EdbImportFail struct {
 }
 
 func AddEdbImportFail(item *EdbImportFail) (err error) {
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Insert(item)
-	return err
+	err = global.DbMap[utils.DbNameManualIndex].Create(item).Error
+	return
 }
 
 // DelEdbImportFail 删除导入失败记录
 func DelEdbImportFail(userId int) (err error) {
-	o := orm.NewOrmUsingDB("edb")
 	sql := `delete from edb_import_fail where sys_user_id=?`
-	_, err = o.Raw(sql, userId).Exec()
-	return err
+	err = global.DbMap[utils.DbNameManualIndex].Exec(sql, userId).Error
+	return
 }
 
 // GetEdbImportFailList 获取指标数据导入失败数据
 func GetEdbImportFailList(sysUserId int) (items []*EdbImportFail, err error) {
-	o := orm.NewOrmUsingDB("edb")
 	sql := ` SELECT * FROM edb_import_fail WHERE sys_user_id=? `
-	_, err = o.Raw(sql, sysUserId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameManualIndex].Raw(sql, sysUserId).Find(&items).Error
 	return
 }

+ 11 - 14
models/edbdata_import_fail.go

@@ -1,12 +1,12 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 )
 
 type EdbdataImportFail struct {
-	Id           int `orm:"column(id);pk"`
+	Id           int `gorm:"column:id;primaryKey;autoIncrement"`
 	ClassifyName string
 	CreateDate   string
 	SecName      string
@@ -17,11 +17,11 @@ type EdbdataImportFail struct {
 	Unit         string
 }
 
-func AddEdbdataImportFail(item *EdbdataImportFail) (err error) {
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Insert(item)
-	return err
-}
+//func AddEdbdataImportFail(item *EdbdataImportFail) (err error) {
+//	o := orm.NewOrmUsingDB("edb")
+//	_, err = o.Insert(item)
+//	return err
+//}
 
 // MultiAddEdbdataImportFail
 // @Description: 批量添加导入失败的信息
@@ -30,16 +30,13 @@ func AddEdbdataImportFail(item *EdbdataImportFail) (err error) {
 // @param items []*EdbdataImportFail
 // @return err error
 func MultiAddEdbdataImportFail(items []*EdbdataImportFail) (err error) {
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.InsertMulti(utils.MultiAddNum, items)
-
-	return err
+	err = global.DbMap[utils.DbNameManualIndex].CreateInBatches(items, utils.MultiAddNum).Error
+	return
 }
 
 // DelEdbDataImportFail 删除导入指标失败记录
 func DelEdbDataImportFail(userId int) (err error) {
-	o := orm.NewOrmUsingDB("edb")
 	sql := `delete from edbdata_import_fail where sys_user_id=?`
-	_, err = o.Raw(sql, userId).Exec()
-	return err
+	err = global.DbMap[utils.DbNameManualIndex].Exec(sql, userId).Error
+	return
 }

+ 38 - 38
models/en_classify_permission.go

@@ -1,15 +1,16 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 type EnClassifyPermission struct {
-	EnClassifyPermissionId int       `orm:"column(en_classify_permission_id);pk" description:"英文品种权限ID"`
+	EnClassifyPermissionId int       `gorm:"column:en_classify_permission_id;primaryKey;autoIncrement" description:"英文品种权限ID"`
 	EnClassifyId           int       `description:"英文分类ID"`
 	EnPermissionId         int       `description:"英文品种ID"`
 	CreateTime             time.Time `description:"创建时间"`
@@ -32,53 +33,49 @@ func (m *EnClassifyPermission) TableName() string {
 }
 
 func (m *EnClassifyPermission) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.EnClassifyPermissionId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(m).Error
 	return
 }
 
 func (m *EnClassifyPermission) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *EnClassifyPermission) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), EnClassifyPermissionColumns.EnClassifyPermissionId)
-	_, err = o.Raw(sql, m.EnClassifyPermissionId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, m.EnClassifyPermissionId).Error
 	return
 }
 
 func (m *EnClassifyPermission) GetItemById(id int) (item *EnClassifyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), EnClassifyPermissionColumns.EnClassifyPermissionId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *EnClassifyPermission) GetItemByCondition(condition string, pars []interface{}) (item *EnClassifyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 `, m.TableName())
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *EnClassifyPermission) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	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)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func (m *EnClassifyPermission) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EnClassifyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -88,12 +85,11 @@ func (m *EnClassifyPermission) 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 = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *EnClassifyPermission) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*EnClassifyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -103,24 +99,34 @@ func (m *EnClassifyPermission) GetPageItemsByCondition(startSize, pageSize int,
 		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 {
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
+
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize)
+	pars = append(pars, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func ClearAndCreateEnClassifyPermissions(classifyId int, permissions []*EnClassifyPermission) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM en_classify_permission WHERE en_classify_id = ?`
-	if _, e := o.Raw(sql, classifyId).Exec(); e != nil {
+	e := global.DbMap[utils.DbNameReport].Exec(sql, classifyId).Error
+	if e != nil {
 		err = fmt.Errorf("delete err: %s", e.Error())
 		return
 	}
 	if len(permissions) > 0 {
-		if _, e := o.InsertMulti(len(permissions), permissions); e != nil {
+		e = global.DbMap[utils.DbNameReport].CreateInBatches(permissions, utils.MultiAddNum).Error
+		if e != nil {
 			err = fmt.Errorf("insert multi err: %s", e.Error())
 			return
 		}
@@ -129,13 +135,10 @@ func ClearAndCreateEnClassifyPermissions(classifyId int, permissions []*EnClassi
 }
 
 func CreateEnClassifyPermissions(permissions []*EnClassifyPermission) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	if len(permissions) > 0 {
-		if _, e := o.InsertMulti(len(permissions), permissions); e != nil {
-			err = fmt.Errorf("insert multi err: %s", e.Error())
-			return
-		}
+	if len(permissions) == 0 {
+		return
 	}
+	err = global.DbMap[utils.DbNameReport].CreateInBatches(permissions, utils.MultiAddNum).Error
 	return
 }
 
@@ -149,30 +152,27 @@ func GetEnglishReportIdsByEnPermissionIds(permissionIds []int) (reportIds []int,
 	if len(permissionIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT id FROM english_report WHERE classify_id_second IN (
 				SELECT DISTINCT en_classify_id FROM en_classify_permission WHERE en_permission_id IN (` + utils.GetOrmInReplace(len(permissionIds)) + `)
 			)`
-	_, err = o.Raw(sql, permissionIds).QueryRows(&reportIds)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, permissionIds).Find(&reportIds).Error
 	return
 }
 
 // GetEnPermissionIdsByEnglishReportId 获取英文报告权限IDs
 func GetEnPermissionIdsByEnglishReportId(reportId int) (permissionIds []int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT en_permission_id FROM en_classify_permission WHERE en_classify_id = (
 				SELECT classify_id_second FROM english_report WHERE id = ?
 			)`
-	_, err = o.Raw(sql, reportId).QueryRows(&permissionIds)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, reportId).Find(&permissionIds).Error
 	return
 }
 
 // GetEnPermissionIdsByEnglishVideoId 获取英文视频权限IDs
 func GetEnPermissionIdsByEnglishVideoId(videoId int) (permissionIds []int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT en_permission_id FROM en_classify_permission WHERE en_classify_id = (
 				SELECT classify_id_second FROM english_video WHERE id = ?
 			)`
-	_, err = o.Raw(sql, videoId).QueryRows(&permissionIds)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, videoId).Find(&permissionIds).Error
 	return
 }

+ 34 - 30
models/en_company_permission.go

@@ -1,15 +1,16 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"strings"
 	"time"
 )
 
 type EnCompanyPermission struct {
-	EnCompanyPermissionId int       `orm:"column(en_company_permission_id);pk" description:"英文品种权限ID"`
+	EnCompanyPermissionId int       `gorm:"column:en_company_permission_id;primaryKey;primaryKey" description:"英文品种权限ID"`
 	EnCompanyId           int       `description:"英文客户ID"`
 	EnPermissionId        int       `description:"英文品种ID"`
 	CreateTime            time.Time `description:"创建时间"`
@@ -32,53 +33,49 @@ func (m *EnCompanyPermission) TableName() string {
 }
 
 func (m *EnCompanyPermission) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.EnCompanyPermissionId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(m).Error
 	return
 }
 
 func (m *EnCompanyPermission) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *EnCompanyPermission) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), EnCompanyPermissionColumns.EnCompanyPermissionId)
-	_, err = o.Raw(sql, m.EnCompanyPermissionId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, m.EnCompanyPermissionId).Error
 	return
 }
 
 func (m *EnCompanyPermission) GetItemById(id int) (item *EnCompanyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), EnCompanyPermissionColumns.EnCompanyPermissionId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *EnCompanyPermission) GetItemByCondition(condition string, pars []interface{}) (item *EnCompanyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 `, m.TableName())
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *EnCompanyPermission) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	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)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func (m *EnCompanyPermission) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EnCompanyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -88,12 +85,11 @@ func (m *EnCompanyPermission) 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 = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *EnCompanyPermission) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*EnCompanyPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -103,24 +99,34 @@ func (m *EnCompanyPermission) GetPageItemsByCondition(startSize, pageSize int, c
 		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 {
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
+
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize)
+	pars = append(pars, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func ClearAndCreateEnCompanyPermissions(companyId int, permissions []*EnCompanyPermission) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `DELETE FROM en_company_permission WHERE en_company_id = ?`
-	if _, e := o.Raw(sql, companyId).Exec(); e != nil {
+	e := global.DbMap[utils.DbNameReport].Exec(sql, companyId).Error
+	if e != nil {
 		err = fmt.Errorf("delete err: %s", e.Error())
 		return
 	}
 	if len(permissions) > 0 {
-		if _, e := o.InsertMulti(len(permissions), permissions); e != nil {
+		e = global.DEFAULT_DB.CreateInBatches(permissions, utils.MultiAddNum).Error
+		if e != nil {
 			err = fmt.Errorf("insert multi err: %s", e.Error())
 			return
 		}
@@ -133,11 +139,9 @@ func GetEnglishCompanyIdsByEnPermissionIds(permissionIds []int) (companyIds []in
 	if len(permissionIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT DISTINCT a.en_company_id FROM en_company_permission AS a
 			JOIN english_company AS b ON a.en_company_id = b.company_id
-			WHERE
-				a.en_permission_id IN (` + utils.GetOrmInReplace(len(permissionIds)) + `) AND b.status <> 3 AND b.enabled <> 0 AND b.is_deleted = 0`
-	_, err = o.Raw(sql, permissionIds).QueryRows(&companyIds)
+			WHERE a.en_permission_id IN (` + utils.GetOrmInReplace(len(permissionIds)) + `) AND b.status <> 3 AND b.enabled <> 0 AND b.is_deleted = 0`
+	err = global.DbMap[utils.DbNameReport].Raw(sql, permissionIds).Find(&companyIds).Error
 	return
 }

+ 48 - 45
models/en_permission.go

@@ -1,15 +1,17 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
 type EnPermission struct {
-	EnPermissionId   int       `orm:"column(en_permission_id);pk" description:"英文品种权限ID"`
+	EnPermissionId   int       `gorm:"column:id;primaryKey;autoIncrement" description:"英文品种权限ID"`
 	EnPermissionName string    `description:"品种权限名称"`
 	CnPermissionName string    `description:"对应的中文权限名称"`
 	ParentId         int       `description:"父级ID"`
@@ -44,53 +46,49 @@ func (m *EnPermission) TableName() string {
 }
 
 func (m *EnPermission) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(m)
-	if err != nil {
-		return
-	}
-	m.EnPermissionId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(m).Error
 	return
 }
 
 func (m *EnPermission) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(m, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(m).Error
 	return
 }
 
 func (m *EnPermission) Del() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), EnPermissionColumns.EnPermissionId)
-	_, err = o.Raw(sql, m.EnPermissionId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, m.EnPermissionId).Error
 	return
 }
 
 func (m *EnPermission) GetItemById(id int) (item *EnPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), EnPermissionColumns.EnPermissionId)
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, id).First(&item).Error
 	return
 }
 
 func (m *EnPermission) GetItemByCondition(condition string, pars []interface{}) (item *EnPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 `, m.TableName())
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (m *EnPermission) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	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)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func (m *EnPermission) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EnPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -100,12 +98,11 @@ func (m *EnPermission) 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 = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (m *EnPermission) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*EnPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -115,12 +112,21 @@ func (m *EnPermission) GetPageItemsByCondition(startSize, pageSize int, conditio
 		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 {
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
+
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize)
+	pars = append(pars, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -170,7 +176,6 @@ type EnPermissionMoveReq struct {
 }
 
 func GetEnPermissionUnionList(condition string, pars []interface{}) (items []*EnPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`
 		SELECT
 			*
@@ -186,17 +191,13 @@ func GetEnPermissionUnionList(condition string, pars []interface{}) (items []*En
 			parent_id ASC,
 			sort ASC,
 			create_time ASC`, condition, condition)
-	_, err = o.Raw(sql, pars, pars).QueryRows(&items)
+	pars = append(pars, pars...)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func ClearEnPermissionsByPermissionId(permissionId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	tx, e := o.Begin()
-	if e != nil {
-		err = fmt.Errorf("orm begin err: %s", e.Error())
-		return
-	}
+	tx := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -206,14 +207,14 @@ func ClearEnPermissionsByPermissionId(permissionId int) (err error) {
 	}()
 
 	sql := `DELETE FROM en_classify_permission WHERE en_permission_id = ?`
-	_, e = tx.Raw(sql, permissionId).Exec()
+	e := tx.Exec(sql, permissionId).Error
 	if e != nil {
 		err = fmt.Errorf("delete en_classify_permission err: %s", e.Error())
 		return
 	}
 
 	sql = `DELETE FROM en_company_permission WHERE en_permission_id = ?`
-	_, e = tx.Raw(sql, permissionId).Exec()
+	e = tx.Exec(sql, permissionId).Error
 	if e != nil {
 		err = fmt.Errorf("delete en_company_permission err: %s", e.Error())
 		return
@@ -223,51 +224,53 @@ func ClearEnPermissionsByPermissionId(permissionId int) (err error) {
 
 // UpdateEnPermissionSortByParentId 根据父类id更新排序
 func UpdateEnPermissionSortByParentId(parentId, permissionId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` update en_permission set sort = ` + updateSort + ` WHERE parent_id=? AND sort > ? `
 	if permissionId > 0 {
 		sql += ` or ( en_permission_id > ` + fmt.Sprint(permissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // GetMaxSortByParentId 获取最大的排序值
 func (m *EnPermission) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var maxNull sql2.NullInt64
 	sql := fmt.Sprintf(`SELECT max(%s) AS sort FROM %s WHERE %s = ? `, EnPermissionColumns.Sort, m.TableName(), EnPermissionColumns.ParentId)
-	err = o.Raw(sql, parentId).QueryRow(&maxSort)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Scan(&maxNull).Error
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetMaxSort 获取最大的排序值
 func (m *EnPermission) GetMaxSort() (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var maxNull sql2.NullInt64
 	sql := fmt.Sprintf(`SELECT max(%s) AS sort FROM %s`, EnPermissionColumns.Sort, m.TableName())
-	err = o.Raw(sql).QueryRow(&maxSort)
+	err = global.DbMap[utils.DbNameReport].Raw(sql).Scan(&maxNull).Error
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetFirstEnPermissionByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
 func (m *EnPermission) GetFirstEnPermissionByParentId(parentId int) (item *EnPermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? order by sort asc, en_permission_id asc limit 1`, m.TableName(), EnPermissionColumns.ParentId)
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).First(&item).Error
 	return
 }
 
 // SetEnabled 更新启动禁用
 func (m *EnPermission) SetEnabled(parentId, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`UPDATE %s SET %s = ?  WHERE %s = ?`, m.TableName(), EnPermissionColumns.Enabled, EnPermissionColumns.ParentId)
-	_, err = o.Raw(sql, enabled, parentId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, enabled, parentId).Error
 	return
 }
 
 // SetEnabledByPermissionId 更新启动禁用
 func (m *EnPermission) SetEnabledByPermissionId(permissionId, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := fmt.Sprintf(`UPDATE %s SET %s = ?  WHERE %s = ?`, m.TableName(), EnPermissionColumns.Enabled, EnPermissionColumns.EnPermissionId)
-	_, err = o.Raw(sql, enabled, permissionId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, enabled, permissionId).Error
 	return
 }

+ 18 - 16
models/en_video_cover.go

@@ -1,14 +1,16 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // EnglishVideoCover 英文研报视频封面库
 type EnglishVideoCover struct {
-	Id         int       `orm:"column(id);pk;auto" description:"封面ID"`
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement" description:"封面ID"`
 	CoverName  string    `description:"封面名称"`
 	CoverUrl   string    `description:"封面图地址"`
 	IsDeleted  int       `description:"是否已删除 0-否 1-是"`
@@ -22,52 +24,52 @@ func (item *EnglishVideoCover) TableName() string {
 }
 
 func (item *EnglishVideoCover) Add() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishVideoCover) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 // GetEnglishVideoCoverById 主键获取封面
 func GetEnglishVideoCoverById(coverId int) (item *EnglishVideoCover, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_video_cover WHERE id = ? AND is_deleted = 0 LIMIT 1`
-	err = o.Raw(sql, coverId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, coverId).First(&item).Error
 	return
 }
 
 // GetEnglishVideoCoverPageList 获取封面库分页列表
 func GetEnglishVideoCoverPageList(condition string, pars []interface{}, orderRule string, startSize, pageSize int) (total int, list []*EnglishVideoCover, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_video_cover WHERE is_deleted = 0 `
 	sql += condition
 	if orderRule == "" {
 		orderRule = ` ORDER BY modify_time DESC`
 	}
 	sql += orderRule
-	totalSQL := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQL, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&list).Error
 	return
 }
 
 // DeleteEnglishVideoCover 删除封面
 func DeleteEnglishVideoCover(coverId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_video_cover SET is_deleted = 1, delete_time = NOW() WHERE id = ? LIMIT 1`
-	_, err = o.Raw(sql, coverId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, coverId).Error
 	return
 }
 
-
 type EnglishVideoCoverListResp struct {
 	Paging *paging.PagingItem
 	List   []*EnglishVideoCoverItem `description:"列表数据"`
@@ -89,4 +91,4 @@ type EnglishVideoCoverSaveReq struct {
 
 type EnglishVideoCoverOptionReq struct {
 	Id int `description:"封面图ID"`
-}
+}

+ 15 - 9
models/english_classify.go

@@ -1,42 +1,48 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 )
 
 // UpdateEnglishClassifySortByParentId 根据父类id更新排序
 func UpdateEnglishClassifySortByParentId(parentId, permissionId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` update english_classify set sort = ` + updateSort + ` WHERE parent_id=? AND sort > ? `
 	if permissionId > 0 {
 		sql += ` or ( id > ` + fmt.Sprint(permissionId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
 	}
-	_, err = o.Raw(sql, parentId, nowSort).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, parentId, nowSort).Error
 	return
 }
 
 // GetMaxSortByParentId 获取最大的排序值
 func (classifyInfo *EnglishClassify) GetMaxSortByParentId(parentId int) (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var maxNull sql2.NullInt64
 	sql := `SELECT max(sort) AS sort FROM english_classify WHERE parent_id = ? `
-	err = o.Raw(sql, parentId).QueryRow(&maxSort)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).Scan(&maxNull).Error
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetMaxSort 获取最大的排序值
 func (classifyInfo *EnglishClassify) GetMaxSort() (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var maxNull sql2.NullInt64
 	sql := `SELECT max(sort) AS sort FROM english_classify`
-	err = o.Raw(sql).QueryRow(&maxSort)
+	err = global.DbMap[utils.DbNameReport].Raw(sql).Scan(&maxNull).Error
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetFirstClassifyByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
 func (classifyInfo *EnglishClassify) GetFirstClassifyByParentId(parentId int) (item *Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_classify WHERE parent_id = ? order by sort asc, id asc limit 1`
-	err = o.Raw(sql, parentId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, parentId).First(&item).Error
 	return
 }
 

+ 21 - 27
models/english_company.go

@@ -1,7 +1,9 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
@@ -14,7 +16,7 @@ const (
 
 // EnglishCompany 英文客户
 type EnglishCompany struct {
-	CompanyId   int       `orm:"column(company_id);pk" description:"英文客户ID"`
+	CompanyId   int       `gorm:"column:company_id;primaryKey;autoIncrement" description:"英文客户ID"`
 	CompanyName string    `description:"客户名称"`
 	CountryCode string    `description:"国家Code"`
 	Country     string    `description:"国家"`
@@ -40,12 +42,7 @@ func (item *EnglishCompany) TableName() string {
 }
 
 func (item *EnglishCompany) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.CompanyId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
@@ -60,24 +57,21 @@ type EnglishCompanySaveReq struct {
 }
 
 func (item *EnglishCompany) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 // GetEnglishCompanyById 主键获取客户
 func GetEnglishCompanyById(id int) (item *EnglishCompany, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_company WHERE is_deleted = 0 AND company_id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, id).First(&item).Error
 	return
 }
 
 // GetEnglishCompanyByName 名称获取客户
 func GetEnglishCompanyByName(companyName string) (item *EnglishCompany, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_company WHERE is_deleted = 0 AND company_name = ? LIMIT 1`
-	err = o.Raw(sql, companyName).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, companyName).First(&item).Error
 	return
 }
 
@@ -88,11 +82,7 @@ type EnglishCompanyDelReq struct {
 
 // DeleteEnglishCompanyAndEmails 删除英文客户及联系人
 func DeleteEnglishCompanyAndEmails(companyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	tx := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -103,14 +93,14 @@ func DeleteEnglishCompanyAndEmails(companyId int) (err error) {
 
 	// 删除客户
 	sql := `UPDATE english_company SET is_deleted = 1,modify_time = NOW() WHERE company_id = ? LIMIT 1`
-	_, err = tx.Raw(sql, companyId).Exec()
+	err = tx.Exec(sql, companyId).Error
 	if err != nil {
 		return
 	}
 
 	// 删除联系人
 	sql = `UPDATE english_report_email SET is_deleted = 1,modify_time = NOW() WHERE company_id = ?`
-	_, err = tx.Raw(sql, companyId).Exec()
+	err = tx.Exec(sql, companyId).Error
 	return
 }
 
@@ -149,7 +139,6 @@ type EnglishCompanyListTodo struct {
 
 // GetEnglishCompanyPageList 获取客户列表-分页
 func GetEnglishCompanyPageList(condition string, pars []interface{}, order string, startSize, pageSize int) (total int, list []*EnglishCompanyListItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT
 	c.*,
 IF
@@ -186,12 +175,18 @@ WHERE
 	} else {
 		sql += ` ORDER BY c.create_time DESC, c.company_id DESC`
 	}
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&list).Error
 	return
 }
 
@@ -212,7 +207,6 @@ type EnglishCompanyViewResp struct {
 
 // GetEnglishCompanyList 获取英文客户列表
 func GetEnglishCompanyList(condition string, pars []interface{}, order string) (list []*EnglishCompany, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_company WHERE is_deleted = 0 `
 	sql += condition
 	if order != "" {
@@ -220,7 +214,7 @@ func GetEnglishCompanyList(condition string, pars []interface{}, order string) (
 	} else {
 		sql += ` ORDER BY create_time DESC`
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&list).Error
 	return
 }
 

+ 5 - 10
models/english_company_log.go

@@ -1,7 +1,8 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
@@ -15,7 +16,7 @@ const (
 
 // EnglishCompanyLog 英文客户操作日志表
 type EnglishCompanyLog struct {
-	Id         int       `orm:"column(id);pk"`
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement" `
 	CompanyId  int       `description:"英文客户ID"`
 	AdminId    int       `description:"操作人ID"`
 	OptionData string    `description:"操作数据-JSON"`
@@ -28,17 +29,11 @@ func (item *EnglishCompanyLog) TableName() string {
 }
 
 func (item *EnglishCompanyLog) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishCompanyLog) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }

+ 57 - 49
models/english_company_todo.go

@@ -1,8 +1,9 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
@@ -17,7 +18,7 @@ const (
 
 // EnglishCompanyTodo 英文客户TODO任务
 type EnglishCompanyTodo struct {
-	Id                 int       `orm:"column(id);pk"`
+	Id                 int       `gorm:"column:id;primaryKey;autoIncrement" `
 	CompanyId          int       `description:"客户id"`
 	Content            string    `description:"任务描述"`
 	SellerId           int       `description:"客户所属销售id"`
@@ -39,7 +40,7 @@ type EnglishCompanyTodo struct {
 
 // EnglishCompanyTodoResp 英文客户TODO响应体
 type EnglishCompanyTodoResp struct {
-	Id              int    `orm:"column(id);pk"`
+	Id              int    `gorm:"column:id;primaryKey;autoIncrement" `
 	CompanyId       int    `description:"客户id"`
 	Content         string `description:"任务描述"`
 	SellerId        int    `description:"客户所属销售id"`
@@ -57,18 +58,12 @@ type EnglishCompanyTodoResp struct {
 }
 
 func (item *EnglishCompanyTodo) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.CompanyId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishCompanyTodo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
@@ -95,17 +90,22 @@ type EnglishCompanyTodoApproveReq struct {
 
 // GetEnglishCompanyTodoById 根据任务ID获取客户任务
 func GetEnglishCompanyTodoById(id int) (item *EnglishCompanyTodo, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_company_todo WHERE id = ? LIMIT 1 `
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, id).First(&item).Error
 	return
 }
 
 // GetCountDoingEnglishCompanyTodo 获取正在进行中的任务数量
 func GetCountDoingEnglishCompanyTodo(companyId int) (total int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var totalNull sql2.NullInt64
 	sql := `SELECT count(1) AS total FROM english_company_todo WHERE status = "进行中" AND company_id = ? AND is_delete = 0 `
-	err = o.Raw(sql, companyId).QueryRow(&total)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, companyId).Scan(&totalNull).Error
+	if err != nil {
+		return
+	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	return
 }
 
@@ -117,7 +117,6 @@ type GetEnglishCompanyTodoPageListResp struct {
 
 // GetEnglishCompanyTodoList 获取客户任务列表
 func GetEnglishCompanyTodoList(companyId, startSize, pageSize int, order string) (total int, items []*EnglishCompanyTodo, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT
 				a.*
 			FROM
@@ -125,23 +124,28 @@ func GetEnglishCompanyTodoList(companyId, startSize, pageSize int, order string)
 			JOIN english_company b ON a.company_id = b.company_id
 			WHERE
 				a.company_id = ? AND a.status != "已作废" AND a.is_delete = 0 `
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, companyId).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, companyId).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
+
 	if order != `` {
 		sql += order
 	} else {
 		sql += ` ORDER BY a.create_time DESC`
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, companyId, startSize, pageSize).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, companyId, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // GetDoingEnglishCompanyTodoList 获取客户的进行中任务列表
 func GetDoingEnglishCompanyTodoList(companyId int) (items []*EnglishCompanyTodo, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT
 				a.*
 			FROM
@@ -151,33 +155,33 @@ func GetDoingEnglishCompanyTodoList(companyId int) (items []*EnglishCompanyTodo,
 				a.company_id = ? AND a.status = "进行中" AND a.is_delete = 0
 			ORDER BY
 				a.create_time ASC`
-	_, err = o.Raw(sql, companyId).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, companyId).Find(&items).Error
 	return
 }
 
 // GetEnglishCompanyLatestTodoByCompanyIds 获取英文客户最新的一条TODO任务
-func GetEnglishCompanyLatestTodoByCompanyIds(companyIds []int) (items []*EnglishCompanyTodo, err error) {
-	itemsLen := len(companyIds)
-	if itemsLen == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT b.* FROM 
-			(
-				SELECT
-					company_id,
-					MAX(create_time) AS ct
-				FROM
-					english_company_todo
-				WHERE
-					is_delete = 0 AND status != "已作废" AND company_id IN (` + utils.GetOrmInReplace(itemsLen) + `)
-				GROUP BY
-					company_id
-			) AS a
-			LEFT JOIN english_company_todo AS b ON b.company_id = a.company_id AND b.create_time = a.ct `
-	_, err = o.Raw(sql, companyIds).QueryRows(&items)
-	return
-}
+//func GetEnglishCompanyLatestTodoByCompanyIds(companyIds []int) (items []*EnglishCompanyTodo, err error) {
+//	itemsLen := len(companyIds)
+//	if itemsLen == 0 {
+//		return
+//	}
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT b.* FROM
+//			(
+//				SELECT
+//					company_id,
+//					MAX(create_time) AS ct
+//				FROM
+//					english_company_todo
+//				WHERE
+//					is_delete = 0 AND status != "已作废" AND company_id IN (` + utils.GetOrmInReplace(itemsLen) + `)
+//				GROUP BY
+//					company_id
+//			) AS a
+//			LEFT JOIN english_company_todo AS b ON b.company_id = a.company_id AND b.create_time = a.ct `
+//	_, err = o.Raw(sql, companyIds).QueryRows(&items)
+//	return
+//}
 
 type EnglishCompanyTodoDoing struct {
 	Id                 int       `description:"待办ID"`
@@ -226,7 +230,6 @@ type GetEnglishCompanyTodoDoingPageListResp struct {
 
 // GetEnglishCompanyTodoDoingList 获取客户任务未完成列表
 func GetEnglishCompanyTodoDoingList(startSize, pageSize int, order string) (total int, items []*EnglishCompanyTodoDoing, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT
 				a.*,
 				b.company_name
@@ -235,24 +238,29 @@ func GetEnglishCompanyTodoDoingList(startSize, pageSize int, order string) (tota
 			JOIN english_company b ON a.company_id = b.company_id
 			WHERE
 				a.status = "进行中" AND a.is_delete = 0 `
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
+
 	if order != `` {
 		sql += order
 	} else {
 		sql += ` ORDER BY a.end_time ASC`
 	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, startSize, pageSize).Find(&items).Error
 	return
 }
 
 // DeleteEnglishCompanyTodoByCompanyId (软)删除英文客户TODO
 func DeleteEnglishCompanyTodoByCompanyId(companyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_company_todo SET is_delete = 1 WHERE company_id = ?`
-	_, err = o.Raw(sql, companyId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, companyId).Error
 	return
 }

+ 7 - 12
models/english_company_todo_public.go

@@ -1,13 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 // EnglishCompanyTodoPublic 英文客户公共TODO任务
 type EnglishCompanyTodoPublic struct {
-	Id             int       `orm:"column(id);pk"`
+	Id             int       `gorm:"column:id;primaryKey;autoIncrement"`
 	Content        string    `description:"任务描述"`
 	CreateUserId   int       `description:"创建人用户id"`
 	CreateUserName string    `description:"创建人用户姓名"`
@@ -30,18 +31,12 @@ type EnglishCompanyTodoPublicResp struct {
 }
 
 func (item *EnglishCompanyTodoPublic) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishCompanyTodoPublic) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
@@ -52,8 +47,8 @@ type EnglishCompanyTodoPublicAddReq struct {
 
 // GetLastEnglishCompanyTodoPublic 获取最新的公共任务TODO
 func GetLastEnglishCompanyTodoPublic() (item *EnglishCompanyTodoPublic, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_company_todo_public ORDER BY create_time DESC LIMIT 1`
-	err = o.Raw(sql).QueryRow(&item)
+	err = o.Raw(sql).First(&item).Error
 	return
 }

+ 53 - 52
models/english_policy_report.go

@@ -1,16 +1,17 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
-	"strings"
 	"time"
 )
 
 // 英文策略报告
 type EnglishPolicyReport struct {
-	Id                 int       `orm:"column(id);pk;auto" description:"策略报告Id"`
+	Id                 int       `gorm:"column:id;primaryKey;autoIncrement" description:"策略报告Id"`
 	ClassifyIdFirst    int       `description:"一级分类id"`
 	ClassifyNameFirst  string    `description:"一级分类名称"`
 	ClassifyIdSecond   int       `description:"二级分类id"`
@@ -35,13 +36,15 @@ type EnglishPolicyReport struct {
 
 // AddEnglishPolicyReportMulti 批量新增report
 func AddEnglishPolicyReportMulti(list []*EnglishPolicyReport) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(list), list)
+	if len(list) == 0 {
+		return
+	}
+	err = global.DbMap[utils.DbNameReport].CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
 type EnglishPolicyReportDetail struct {
-	Id                 int    `description:"策略报告Id"`
+	Id                 int    `gorm:"column:id;primaryKey;autoIncrement" description:"策略报告Id"`
 	ClassifyIdFirst    int    `description:"一级分类id"`
 	ClassifyNameFirst  string `description:"一级分类名称"`
 	ClassifyIdSecond   int    `description:"二级分类id"`
@@ -64,18 +67,17 @@ type EnglishPolicyReportDetail struct {
 }
 
 func GetEnglishPolicyReportById(reportId int) (item *EnglishPolicyReportDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_policy_report WHERE id=?`
-	err = o.Raw(sql, reportId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, reportId).First(&item).Error
 	return
 }
 
-func GetEnglishPolicyReportBySourceReportId(sourceReportId int) (item *EnglishPolicyReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM english_policy_report WHERE source_report_id = ? LIMIT 1`
-	err = o.Raw(sql, sourceReportId).QueryRow(&item)
-	return
-}
+//func GetEnglishPolicyReportBySourceReportId(sourceReportId int) (item *EnglishPolicyReport, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT * FROM english_policy_report WHERE source_report_id = ? LIMIT 1`
+//	err = o.Raw(sql, sourceReportId).QueryRow(&item)
+//	return
+//}
 
 type EnglishPolicyReportList struct {
 	Id                 int    `orm:"column(id);pk;auto" description:"策略报告Id"`
@@ -106,36 +108,38 @@ type EnglishPolicyReportListResp struct {
 }
 
 func GetEnglishPolicyReportListCount(condition string, pars []interface{}) (count int, err error) {
-	oRddp := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count  FROM english_policy_report WHERE 1=1 `
+	sql := `SELECT COUNT(1) AS count FROM english_policy_report WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = oRddp.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func GetEnglishPolicyReportList(condition string, pars []interface{}, startSize, pageSize int) (items []*EnglishPolicyReportList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	//产品权限
-	sql := `SELECT * 
-        FROM english_policy_report WHERE 1=1  `
+	sql := `SELECT * FROM english_policy_report WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	sql += `ORDER BY  publish_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	sql += `ORDER BY publish_time DESC LIMIT ?,?`
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func GetEnglishPolicyReportByCondition(condition string, pars []interface{}) (items []*EnglishPolicyReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * 
-        FROM english_policy_report WHERE 1=1  `
+	sql := `SELECT * FROM english_policy_report WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -157,47 +161,44 @@ func SyncEnglishPolicyReportById(id, newReportId int) (err error) {
 
 // 设置策略报告内容
 func SetEnglishPolicyReportContentBySourceReportId(sourceReportId int, content string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_policy_report SET content=?, modify_time=NOW() WHERE source_report_id = ? `
-	_, err = o.Raw(sql, content, sourceReportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, content, sourceReportId).Error
 	return
 }
 
 // 取消发布报告
 func SyncCancelEnglishPolicyReport(reportId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` UPDATE english_policy_report SET state=1,sync_time=null,modify_time=NOW(), sync_report_id=0 WHERE id =?  `
-	_, err = o.Raw(sql, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, reportId).Error
 	return
 }
 
 // 删除报告
-func DeleteEnglishPolicyReport(reportIds int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` DELETE FROM english_policy_report WHERE id =? `
-	_, err = o.Raw(sql, reportIds).Exec()
-	return
-}
+//func DeleteEnglishPolicyReport(reportIds int) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := ` DELETE FROM english_policy_report WHERE id =? `
+//	_, err = o.Raw(sql, reportIds).Exec()
+//	return
+//}
 
 // Update 更新
 func (item *EnglishPolicyReport) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 // GetEnglishPolicyReportByIds 根据IDs获取英文报告列表
-func GetEnglishPolicyReportByIds(reportIds []int, fieldArr []string) (list []*EnglishPolicyReport, err error) {
-	listLen := len(reportIds)
-	if listLen == 0 {
-		return
-	}
-	fields := ` * `
-	if len(fieldArr) > 0 {
-		fields = strings.Join(fieldArr, ",")
-	}
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT ` + fields + ` FROM english_policy_report WHERE id IN (` + utils.GetOrmInReplace(listLen) + `)`
-	_, err = o.Raw(sql, reportIds).QueryRows(&list)
-	return
-}
+//func GetEnglishPolicyReportByIds(reportIds []int, fieldArr []string) (list []*EnglishPolicyReport, err error) {
+//	listLen := len(reportIds)
+//	if listLen == 0 {
+//		return
+//	}
+//	fields := ` * `
+//	if len(fieldArr) > 0 {
+//		fields = strings.Join(fieldArr, ",")
+//	}
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT ` + fields + ` FROM english_policy_report WHERE id IN (` + utils.GetOrmInReplace(listLen) + `)`
+//	_, err = o.Raw(sql, reportIds).QueryRows(&list)
+//	return
+//}

+ 213 - 173
models/english_report.go

@@ -1,19 +1,20 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"errors"
+	"eta/eta_api/global"
 	"eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/utils"
 	"fmt"
 	"strings"
 	"time"
 
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 type EnglishReport struct {
-	Id                 int       `orm:"column(id)" description:"报告Id"`
+	Id                 int       `gorm:"column:id;primaryKey;autoIncrement" description:"报告Id"`
 	AddType            int       `description:"新增方式:1:新增报告,2:继承报告"`
 	ClassifyIdFirst    int       `description:"一级分类id"`
 	ClassifyNameFirst  string    `description:"一级分类名称"`
@@ -53,41 +54,67 @@ type EnglishReport struct {
 }
 
 func GetEnglishReportStage(classifyIdFirst, classifyIdSecond int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ``
+	var countNull sql2.NullInt64
 	if classifyIdSecond > 0 {
 		sql = "SELECT MAX(stage) AS max_stage FROM english_report WHERE classify_id_second=? "
-		o.Raw(sql, classifyIdSecond).QueryRow(&count)
+		err = global.DbMap[utils.DbNameReport].Raw(sql, classifyIdSecond).Scan(&countNull).Error
+		if err != nil {
+			return
+		}
+		if countNull.Valid {
+			count = int(countNull.Int64)
+		}
 	} else {
 		sql = "SELECT MAX(stage) AS max_stage FROM english_report WHERE classify_id_first=? "
-		o.Raw(sql, classifyIdFirst).QueryRow(&count)
+		err = global.DbMap[utils.DbNameReport].Raw(sql, classifyIdFirst).Scan(&countNull).Error
+		if err != nil {
+			return
+		}
+		if countNull.Valid {
+			count = int(countNull.Int64)
+		}
 	}
 	return
 }
 
 func GetEnglishReportStageEdit(classifyIdFirst, classifyIdSecond, reportId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ``
+	var countNull sql2.NullInt64
 	if classifyIdSecond > 0 {
 		sql = "SELECT MAX(stage) AS max_stage FROM english_report WHERE classify_id_second=? AND id<>? "
-		o.Raw(sql, classifyIdSecond, reportId).QueryRow(&count)
+		err = global.DbMap[utils.DbNameReport].Raw(sql, classifyIdSecond, reportId).Scan(&countNull).Error
+		if err != nil {
+			return
+		}
+		if countNull.Valid {
+			count = int(countNull.Int64)
+		}
 	} else {
 		sql = "SELECT MAX(stage) AS max_stage FROM english_report WHERE classify_id_first=? AND id<>? "
-		o.Raw(sql, classifyIdFirst, reportId).QueryRow(&count)
+		err = global.DbMap[utils.DbNameReport].Raw(sql, classifyIdFirst, reportId).Scan(&countNull).Error
+		if err != nil {
+			return
+		}
+		if countNull.Valid {
+			count = int(countNull.Int64)
+		}
 	}
 	return
 }
 
 func AddEnglishReport(item *EnglishReport) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
 	return
 }
 
 func ModifyEnglishReportCode(reportId int64, reportCode string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_report SET report_code=? WHERE id=? `
-	_, err = o.Raw(sql, reportCode, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, reportCode, reportId).Error
 	return
 }
 
@@ -166,7 +193,6 @@ type ElasticEnglishReportDetail struct {
 }
 
 func EditEnglishReport(item *EnglishReport, reportId int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_report
 			SET
 			  classify_id_first =?,
@@ -185,13 +211,13 @@ func EditEnglishReport(item *EnglishReport, reportId int64) (err error) {
 			  modify_time = ?,
 			  overview = ?
 			WHERE id = ? `
-	_, err = o.Raw(sql, item.ClassifyIdFirst, item.ClassifyNameFirst, item.ClassifyIdSecond, item.ClassifyNameSecond, item.Title,
-		item.Abstract, item.Author, item.Frequency, item.State, item.Content, item.ContentSub, item.Stage, item.CreateTime, time.Now(), item.Overview, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, item.ClassifyIdFirst, item.ClassifyNameFirst, item.ClassifyIdSecond, item.ClassifyNameSecond, item.Title,
+		item.Abstract, item.Author, item.Frequency, item.State, item.Content, item.ContentSub, item.Stage, item.CreateTime, time.Now(), item.Overview, reportId).Error
 	return
 }
 
 type EnglishReportDetail struct {
-	Id                 int    `orm:"column(id)" description:"报告Id"`
+	Id                 int    `gorm:"column:id;primaryKey" description:"报告Id"`
 	AddType            int    `description:"新增方式:1:新增报告,2:继承报告"`
 	ClassifyIdFirst    int    `description:"一级分类id"`
 	ClassifyNameFirst  string `description:"一级分类名称"`
@@ -223,16 +249,14 @@ type EnglishReportDetail struct {
 }
 
 func GetEnglishReportById(reportId int) (item *EnglishReportDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_report WHERE id=?`
-	err = o.Raw(sql, reportId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, reportId).First(&item).Error
 	return
 }
 
 func GetEnglishReportItemById(reportId int) (item *EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * FROM english_report WHERE id = ? LIMIT 1`
-	err = o.Raw(sql, reportId).QueryRow(&item)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, reportId).First(&item).Error
 	return
 }
 
@@ -293,17 +317,22 @@ func GetEnglishReportListCount(condition string, pars []interface{}, companyType
 		companyTypeSqlStr = " AND classify_id_first = 40 "
 	}
 
-	oRddp := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT COUNT(1) AS count  FROM english_report WHERE 1=1 ` + companyTypeSqlStr
 	if condition != "" {
 		sql += condition
 	}
-	err = oRddp.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func GetEnglishReportList(condition string, pars []interface{}, companyType string, startSize, pageSize int, fieldArr []string) (items []*EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	//产品权限
 	companyTypeSqlStr := ``
 	if companyType == "ficc" {
@@ -323,61 +352,63 @@ func GetEnglishReportList(condition string, pars []interface{}, companyType stri
 	}
 	// 排序:1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过
 	sql += ` ORDER BY FIELD(state,3,1,4,5,6,2), modify_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func GetEnglishReportByCondition(condition string, pars []interface{}) (items []*EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT * 
         FROM english_report WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func GetEnglishReportCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `SELECT count(*) 
         FROM english_report WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 // PublishEnglishReportById 发布报告
 func PublishEnglishReportById(reportId int, publishTime string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_report SET state=2,publish_time=?,pre_publish_time=null,modify_time=NOW() WHERE id = ? `
-	_, err = o.Raw(sql, publishTime, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, publishTime, reportId).Error
 	return
 }
 
 // ResetEnglishReportById 重置报告状态
 func ResetEnglishReportById(reportId, state int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_report SET state = ?, pre_publish_time = null, modify_time = NOW() WHERE id = ?`
-	_, err = o.Raw(sql, state, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, state, reportId).Error
 	return
 }
 
 // PublishCancelEnglishReport 取消发布报告
 func PublishCancelEnglishReport(reportIds, state int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` UPDATE english_report SET state=?, pre_publish_time=null WHERE id =?  `
-	_, err = o.Raw(sql, state, reportIds).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, state, reportIds).Error
 	return
 }
 
 // SetPrePublishEnglishReportById 设置定时发布
 func SetPrePublishEnglishReportById(reportId int, prePublishTime string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_report SET pre_publish_time=? WHERE id = ? and state = 1 `
-	_, err = o.Raw(sql, prePublishTime, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, prePublishTime, reportId).Error
 	return
 }
 
@@ -399,23 +430,20 @@ func DeleteEnglishReportAndChapter(reportInfo *EnglishReportDetail) (err error)
 
 // 删除报告
 func DeleteEnglishReport(reportIds int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` DELETE FROM english_report WHERE id =? `
-	_, err = o.Raw(sql, reportIds).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, reportIds).Error
 	return
 }
 
 func EditEnglishReportContent(reportId int, content, contentSub string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` UPDATE english_report SET content=?,content_sub=?,modify_time=NOW() WHERE id=? `
-	_, err = o.Raw(sql, content, contentSub, reportId).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, content, contentSub, reportId).Error
 	return
 }
 
 func AddEnglishReportSaveLog(reportId, adminId int, content, contentSub, adminName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
 	sql := ` INSERT INTO english_report_save_log(report_id, content,content_sub,admin_id,admin_name) VALUES (?,?,?,?,?) `
-	_, err = o.Raw(sql, reportId, content, contentSub, adminId, adminName).Exec()
+	err = global.DbMap[utils.DbNameReport].Exec(sql, reportId, content, contentSub, adminId, adminName).Error
 	return
 }
 
@@ -444,7 +472,6 @@ type EnglishClassifyListResp struct {
 // GetEnglishClassifyRootId 获取一级分类列表
 func GetEnglishClassifyRootId(keyword string, enabled int) (items []*EnglishClassifyList, err error) {
 	sql := ``
-	o := orm.NewOrmUsingDB("rddp")
 	cond := ""
 	if enabled == 1 {
 		cond = " AND enabled=1 "
@@ -459,10 +486,10 @@ func GetEnglishClassifyRootId(keyword string, enabled int) (items []*EnglishClas
                    WHERE parent_id>0 ` + cond + ` AND classify_name LIKE ? )
                    )AS t
                    ORDER BY sort ASC,create_time ASC`
-		_, err = o.Raw(sql, utils.GetLikeKeyword(keyword), utils.GetLikeKeyword(keyword)).QueryRows(&items)
+		err = global.DbMap[utils.DbNameReport].Raw(sql, utils.GetLikeKeyword(keyword), utils.GetLikeKeyword(keyword)).Find(&items).Error
 	} else {
 		sql = `SELECT * FROM english_classify WHERE parent_id=0 ` + cond + ` ORDER BY sort ASC,create_time ASC `
-		_, err = o.Raw(sql).QueryRows(&items)
+		err = global.DbMap[utils.DbNameReport].Raw(sql).Find(&items).Error
 	}
 	return
 }
@@ -471,7 +498,7 @@ func GetEnglishClassifyListByRootId(rootIds []int, keyword string, enabled int)
 	sql := ``
 	pars := make([]interface{}, 0)
 
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	cond := ""
 	if enabled == 1 {
 		cond = " AND enabled=1 "
@@ -486,55 +513,58 @@ FROM
 	WHERE a.parent_id>0  ` + cond + ` and a.classify_name LIKE ? and a.root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `)`
 		pars = append(pars, utils.GetLikeKeyword(keyword))
 		pars = append(pars, rootIds)
-		_, err = o.Raw(sql, pars).QueryRows(&items)
+		err = o.Raw(sql, pars...).Find(&items).Error
 	} else {
 		sql = `SELECT * FROM english_classify WHERE parent_id>0  ` + cond + ` and root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `) `
-		_, err = o.Raw(sql, rootIds).QueryRows(&items)
+		err = o.Raw(sql, rootIds).Find(&items).Error
 	}
 	return
 }
 
 func GetEnglishClassifyChildByIds(ids []int) (items []*EnglishClassifyList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_classify WHERE id IN (` + utils.GetOrmInReplace(len(ids)) + `) ORDER BY create_time ASC `
-	_, err = o.Raw(sql, ids).QueryRows(&items)
+	err = o.Raw(sql, ids).Find(&items).Error
 	return
 }
 
 func GetEnglishReportDetailByClassifyId(classifyIdFirst, classifyIdSecond int) (item *EnglishReportDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM english_report WHERE 1=1 `
 	if classifyIdSecond > 0 {
 		sql = sql + ` AND classify_id_second=?   ORDER BY stage DESC LIMIT 1`
-		err = o.Raw(sql, classifyIdSecond).QueryRow(&item)
+		err = o.Raw(sql, classifyIdSecond).First(&item).Error
 	} else {
 		sql = sql + ` AND classify_id_first=?   ORDER BY stage DESC LIMIT 1`
-		err = o.Raw(sql, classifyIdFirst).QueryRow(&item)
+		err = o.Raw(sql, classifyIdFirst).First(&item).Error
 	}
 	return
 }
 
 // Update 更新
 func (item *EnglishReport) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 // ModifyEnglishReportAuthor 更改英文报告作者
 func ModifyEnglishReportAuthor(condition string, pars []interface{}, authorName string) (count int, err error) {
 	//产品权限
-	oRddp := orm.NewOrmUsingDB("rddp")
 	sql := `UPDATE english_report set author = ? WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = oRddp.Raw(sql, authorName, pars).QueryRow(&count)
+	res := global.DbMap[utils.DbNameReport].Exec(sql, utils.ForwardPars(pars, authorName)...)
+	if res.Error != nil {
+		err = res.Error
+		return
+	}
+	count = int(res.RowsAffected)
 	return
 }
 
 type EnglishClassify struct {
-	Id            int       `orm:"column(id);pk"`
+	Id            int       `gorm:"column:id;primaryKey"`
 	ClassifyName  string    `description:"分类名称"`
 	Sort          int       `description:"排序"`
 	ParentId      int       `description:"父级分类id"`
@@ -549,10 +579,7 @@ type EnglishClassify struct {
 }
 
 func (e *EnglishClassify) Delete() (err error) {
-	tx, err := orm.NewOrmUsingDB("rddp").Begin()
-	if err != nil {
-		return
-	}
+	tx := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			tx.Rollback()
@@ -560,14 +587,14 @@ func (e *EnglishClassify) Delete() (err error) {
 			tx.Commit()
 		}
 	}()
-	_, err = tx.Delete(e)
+	err = tx.Delete(e).Error
 	if err != nil {
 		return
 	}
 	if e.Id == e.RootId {
 		// 删除一级分类时,删除其下所有子分类
 		sql := `DELETE FROM english_classify WHERE root_id = ?`
-		_, err = tx.Raw(sql, e.Id).Exec()
+		err = tx.Exec(sql, e.Id).Error
 		if err != nil {
 			return
 		}
@@ -575,7 +602,7 @@ func (e *EnglishClassify) Delete() (err error) {
 	if e.ParentId == e.RootId {
 		// 删除二级分类时,更新其父级分类的子分类数量
 		sql := `DELETE FROM english_classify WHERE id = ? OR parent_id = ?`
-		_, err = tx.Raw(sql, e.Id, e.ParentId).Exec()
+		err = tx.Exec(sql, e.Id, e.ParentId).Error
 		if err != nil {
 			return
 		}
@@ -584,13 +611,16 @@ func (e *EnglishClassify) Delete() (err error) {
 }
 
 func AddEnglishClassify(item *EnglishClassify) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
 	return
 }
 
 func ModifyEnglishClassify(item *EnglishClassify) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_classify
 	SET
 	classify_name = ?,
@@ -599,129 +629,145 @@ func ModifyEnglishClassify(item *EnglishClassify) (err error) {
 	root_id = ?,
 	modify_time = ? 
 	WHERE id = ? `
-	_, err = o.Raw(sql, item.ClassifyName, item.Sort, item.ParentId, item.RootId, item.ModifyTime, item.Id).Exec()
+	err = o.Exec(sql, item.ClassifyName, item.Sort, item.ParentId, item.RootId, item.ModifyTime, item.Id).Error
 	return
 }
 
 // UpdateEnglishClassifyRootIdByParentId 更新报告分类的顶级ID
 func UpdateEnglishClassifyRootIdByParentId(parentId, rootId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := " UPDATE english_classify SET root_id = ? WHERE parent_id=? "
-	_, err = o.Raw(sql, rootId, parentId).Exec()
+	err = o.Exec(sql, rootId, parentId).Error
 	return
 }
 
-// UpdateClassify 更新分类
+// UpdateEnglishClassify 更新分类
 func (classifyInfo *EnglishClassify) UpdateEnglishClassify(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(classifyInfo, cols...)
-
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(classifyInfo).Error
 	return
 }
 
 // DeleteEnglishClassify 删除英文分类
-func DeleteEnglishClassify(classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` DELETE FROM english_classify WHERE id =? `
-	_, err = o.Raw(sql, classifyId).Exec()
-	return
-}
-
-func GetEnglishClassifyChildCounts(parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=? `
-	err = o.Raw(sql, parentId).QueryRow(&count)
-	return
-}
+//func DeleteEnglishClassify(classifyId int) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` DELETE FROM english_classify WHERE id =? `
+//	_, err = o.Raw(sql, classifyId).Error
+//	return
+//}
+
+//func GetEnglishClassifyChildCounts(parentId int) (count int, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=? `
+//	err = o.Raw(sql, parentId).QueryRow(&count)
+//	return
+//}
 
 func GetEnglishReportCounts(classifyId, parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var countNull sql2.NullInt64
 	sql := ``
 	if parentId == 0 {
 		sql = `SELECT COUNT(1) AS count FROM english_report WHERE classify_id_first=? `
 	} else {
 		sql = `SELECT COUNT(1) AS count FROM english_report WHERE classify_id_second=? `
 	}
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, classifyId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func GetEnglishClassifyCountsByName(name string, parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var countNull sql2.NullInt64
 	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE classify_name=? AND parent_id = ? `
-	err = o.Raw(sql, name, parentId).QueryRow(&count)
+	err = global.DbMap[utils.DbNameReport].Raw(sql, name, parentId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 // GetEnglishFirstClassifyList 获取一级、二级分类列表
 func GetEnglishFirstClassifyList() (items []*EnglishClassifyList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_classify WHERE parent_id=0  ORDER BY sort ASC,create_time`
-	_, err = o.Raw(sql).QueryRows(&items)
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
 // GetEnglishSecondClassifyList 获取一级、二级分类列表
 func GetEnglishSecondClassifyList(rootIds []int) (items []*EnglishClassifyList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_classify WHERE root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `) and parent_id>0 and root_id=parent_id ORDER BY sort ASC,create_time ASC`
-	_, err = o.Raw(sql, rootIds).QueryRows(&items)
+	err = o.Raw(sql, rootIds).Find(&items).Error
 	return
 }
 
 func GetEnglishFirstClassifyListCount() (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	var countNull sql2.NullInt64
 	sqlCount := `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=0`
-	err = o.Raw(sqlCount).QueryRow(&count)
+	err = global.DbMap[utils.DbNameReport].Raw(sqlCount).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func GetEnglishReportClassifyById(classifyId int) (item *EnglishClassify, err error) {
 	sql := `SELECT * FROM english_classify WHERE id=?`
-	o := orm.NewOrmUsingDB("rddp")
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Raw(sql, classifyId).First(&item).Error
 	return
 }
 
 func GetEnglishReportClassifyByIds(classifyIds []int) (list []*EnglishClassify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_classify WHERE id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `)`
-	_, err = o.Raw(sql, classifyIds).QueryRows(&list)
+	err = o.Raw(sql, classifyIds).Find(&list).Error
 	return
 }
 
 // UpdateEnglishReportSecondClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishReportSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_report SET classify_name_second = ? WHERE classify_id_second = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
+//func UpdateEnglishReportSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := " UPDATE english_report SET classify_name_second = ? WHERE classify_id_second = ? "
+//	_, err = o.Raw(sql, classifyName, classifyId).Error
+//	return
+//}
 
 // UpdateEnglishReportFirstClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishReportFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_report SET classify_name_first = ? WHERE classify_id_first = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
+//func UpdateEnglishReportFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := " UPDATE english_report SET classify_name_first = ? WHERE classify_id_first = ? "
+//	_, err = o.Raw(sql, classifyName, classifyId).Error
+//	return
+//}
 
 // UpdateEnglishReportFirstClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishReportByClassifyId(classifyFirstName, classifySecondName string, firstClassifyId, secondClassifyId int, ids string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_report SET classify_name_first = ?,classify_name_second = ?,classify_id_first=?, classify_id_second =?  WHERE id IN (" + ids + ") "
-	_, err = o.Raw(sql, classifyFirstName, classifySecondName, firstClassifyId, secondClassifyId).Exec()
-	return
-}
+//func UpdateEnglishReportByClassifyId(classifyFirstName, classifySecondName string, firstClassifyId, secondClassifyId int, ids string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := " UPDATE english_report SET classify_name_first = ?,classify_name_second = ?,classify_id_first=?, classify_id_second =?  WHERE id IN (" + ids + ") "
+//	_, err = o.Raw(sql, classifyFirstName, classifySecondName, firstClassifyId, secondClassifyId).Error
+//	return
+//}
 
 func UpdateEnglishReportClassifyByFirstSecondClassifyId(classifyId, parentId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	// 更新相关联的二级分类的parentId,和classify_name_second
 	sql := `update english_report r
 LEFT JOIN english_classify c ON r.classify_id_second = c.id
 SET r.classify_id_first=c.parent_id, r.classify_name_second=c.classify_name
 where (r.classify_id_first != c.parent_id or r.classify_name_second != c.classify_name) and r.classify_id_second =?`
-	_, err = o.Raw(sql, classifyId).Exec()
+	err = o.Exec(sql, classifyId).Error
 	if err != nil {
 		return
 	}
@@ -730,7 +776,7 @@ where (r.classify_id_first != c.parent_id or r.classify_name_second != c.classif
     LEFT JOIN english_classify c ON r.classify_id_first = c.id
     SET r.classify_name_first=c.classify_name
 where r.classify_name_first	!= c.classify_name and r.classify_id_first=?`
-	_, err = o.Raw(sql, parentId).Exec()
+	err = o.Exec(sql, parentId).Error
 	if err != nil {
 		return
 	}
@@ -739,31 +785,29 @@ where r.classify_name_first	!= c.classify_name and r.classify_id_first=?`
     LEFT JOIN english_classify c ON r.classify_id_first = c.id
     SET r.classify_name_first=c.classify_name
 where r.classify_name_first	!= c.classify_name and r.classify_id_first=?`
-	_, err = o.Raw(sql, classifyId).Exec()
+	err = o.Exec(sql, classifyId).Error
 	return
 }
 
 // FetchEnglishReportById 主键获取英文报告
-func FetchEnglishReportById(reportId int) (item *EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM english_report WHERE id=?`
-	err = o.Raw(sql, reportId).QueryRow(&item)
-	return
-}
+//func FetchEnglishReportById(reportId int) (item *EnglishReport, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := `SELECT * FROM english_report WHERE id=?`
+//	err = o.Raw(sql, reportId).QueryRow(&item)
+//	return
+//}
 
 // UpdateReport 更新英文报告
 func (reportInfo *EnglishReport) UpdateReport(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(reportInfo, cols...)
-
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(reportInfo).Error
 	return
 }
 
 // GetAllEnglishClassify 获取所有英文分类
 func GetAllEnglishClassify() (list []*Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM english_classify `
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
@@ -777,9 +821,9 @@ func GetEnglishReportByIds(reportIds []int, fieldArr []string) (list []*EnglishR
 	if len(fieldArr) > 0 {
 		fields = strings.Join(fieldArr, ",")
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT ` + fields + ` FROM english_report WHERE id IN (` + utils.GetOrmInReplace(listLen) + `)`
-	_, err = o.Raw(sql, reportIds).QueryRows(&list)
+	err = o.Raw(sql, reportIds).Find(&list).Error
 	return
 }
 
@@ -803,9 +847,9 @@ type EnglishClassifyNameParentName struct {
 }
 
 func GetEnglishClassifyByClassifyNameAndParentName(parentClassiyName, classifyName string) (item EnglishClassifyNameParentName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "SELECT c1.*, c2.classify_name as parent_classify_name FROM english_classify c1 LEFT JOIN english_classify c2 on c1.parent_id = c2.id where c1.parent_id > 0 and c2.classify_name = ? and c1.classify_name= ?"
-	err = o.Raw(sql, parentClassiyName, classifyName).QueryRow(&item)
+	err = o.Raw(sql, parentClassiyName, classifyName).First(&item).Error
 	return
 }
 
@@ -839,9 +883,9 @@ func (m RSChildClassifyList) Swap(i, j int) {
 
 // GetEnglishClassifyByClassifyNameParentId 获取英文分类
 func GetEnglishClassifyByClassifyNameParentId(classifyName string, parentId int) (item *Classify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM english_classify where classify_name = ? and parent_id = ? `
-	err = o.Raw(sql, classifyName, parentId).QueryRow(&item)
+	err = o.Raw(sql, classifyName, parentId).First(&item).Error
 	return
 }
 
@@ -856,7 +900,7 @@ type EnglishClassifyFullName struct {
 
 // GetEnglishClassifyFullNameByIds 获取英文分类名一级/二级/三级
 func GetEnglishClassifyFullNameByIds(classifyIds []int) (list []*EnglishClassifyFullName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT
 	a.id,
 	a.parent_id,
@@ -869,36 +913,36 @@ FROM
 	LEFT JOIN english_classify b ON a.root_id = b.id
 	LEFT JOIN english_classify c ON a.parent_id = c.id 
 where a.id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `)`
-	_, err = o.Raw(sql, classifyIds).QueryRows(&list)
+	err = o.Raw(sql, classifyIds).Find(&list).Error
 	return
 }
 
 func (m *EnglishReport) GetItemById(id int) (item *EnglishReport, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report WHERE id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
 // GetEnglishClassifies 获取所有英文分类
 func GetEnglishClassifies() (list []*EnglishClassify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM english_classify `
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 // GetEnglishReportStateCount 获取指定状态的报告数量
 func GetEnglishReportStateCount(state int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT COUNT(1) AS count FROM english_report WHERE state = ?`
-	err = o.Raw(sql, state).QueryRow(&count)
+	err = o.Raw(sql, state).First(&count).Error
 	return
 }
 
 // UpdateEnglishReportsStateByCond 批量更新报告状态
 func UpdateEnglishReportsStateByCond(classifyFirstId, classifySecondId, oldState, newState int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	cond := ``
 	if classifyFirstId > 0 {
 		cond += fmt.Sprintf(` AND classify_id_first = %d`, classifyFirstId)
@@ -907,7 +951,7 @@ func UpdateEnglishReportsStateByCond(classifyFirstId, classifySecondId, oldState
 		cond += fmt.Sprintf(` AND classify_id_second = %d`, classifySecondId)
 	}
 	sql := fmt.Sprintf(`UPDATE english_report SET state = ?, pre_publish_time = NULL WHERE state = ? %s`, cond)
-	_, err = o.Raw(sql, newState, oldState).Exec()
+	err = o.Exec(sql, newState, oldState).Error
 	return
 }
 
@@ -916,16 +960,16 @@ func UpdateEnglishReportsStateBySecondIds(oldState, newState int, secondIds []in
 	if len(secondIds) <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	// (有审批流的)未发布->待提交
 	sql := fmt.Sprintf(`UPDATE english_report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
-	_, err = o.Raw(sql, newState, oldState, secondIds).Exec()
+	err = o.Exec(sql, newState, oldState, secondIds).Error
 	if err != nil {
 		return
 	}
 	// (无审批流的)待提交->未发布
 	sql = fmt.Sprintf(`UPDATE english_report SET state = ?, pre_publish_time = NULL WHERE state = ? AND classify_id_second NOT IN (%s)`, utils.GetOrmInReplace(len(secondIds)))
-	_, err = o.Raw(sql, oldState, newState, secondIds).Exec()
+	err = o.Exec(sql, oldState, newState, secondIds).Error
 	return
 }
 
@@ -935,11 +979,7 @@ type EnglishClassifySetEnabledReq struct {
 }
 
 func (classifyInfo *EnglishClassify) SetEnabled(id, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -948,12 +988,12 @@ func (classifyInfo *EnglishClassify) SetEnabled(id, enabled int) (err error) {
 		}
 	}()
 	sql := ` UPDATE english_classify SET enabled =?  WHERE id = ?`
-	_, err = to.Raw(sql, enabled, id).Exec()
+	err = to.Exec(sql, enabled, id).Error
 	if err != nil {
 		return
 	}
 	sql = ` UPDATE english_classify SET enabled =?  WHERE parent_id = ? or root_id = ?`
-	_, err = to.Raw(sql, enabled, id, id).Exec()
+	err = to.Exec(sql, enabled, id, id).Error
 	if err != nil {
 		return
 	}
@@ -961,16 +1001,16 @@ func (classifyInfo *EnglishClassify) SetEnabled(id, enabled int) (err error) {
 }
 
 func ModifyEnglishReportPdfUrl(reportId int, detailPdfUrl string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_report SET detail_pdf_url=? WHERE id=? `
-	_, err = o.Raw(sql, detailPdfUrl, reportId).Exec()
+	err = o.Exec(sql, detailPdfUrl, reportId).Error
 	return
 }
 
 func ModifyEnglishReportImgUrl(reportId int, detailImgUrl string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_report SET detail_img_url=? WHERE id=? `
-	_, err = o.Raw(sql, detailImgUrl, reportId).Exec()
+	err = o.Exec(sql, detailImgUrl, reportId).Error
 	return
 }
 
@@ -1023,17 +1063,17 @@ func FormatEnglishReport2ListItem(origin *EnglishReport) (item *EnglishReportLis
 
 // UpdateEnglishReportEmailHasFail 标记报告邮件发送失败
 func UpdateEnglishReportEmailHasFail(reportId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_report SET email_has_fail = 1 WHERE id = ?`
-	_, err = o.Raw(sql, reportId).Exec()
+	err = o.Exec(sql, reportId).Error
 	return
 }
 
 // UpdatePdfUrlEnglishReportById 清空pdf相关字段
 func UpdatePdfUrlEnglishReportById(reportId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_report SET detail_img_url = '',detail_pdf_url='',modify_time=NOW() WHERE id = ? `
-	_, err = o.Raw(sql, reportId).Exec()
+	err = o.Exec(sql, reportId).Error
 	return
 }
 
@@ -1041,13 +1081,13 @@ func GetEnglishReportFieldsByIds(ids []int, fields []string) (items []*EnglishRe
 	if len(ids) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	field := " * "
 	if len(fields) > 0 {
 		field = fmt.Sprintf(" %s ", strings.Join(fields, ","))
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM english_report WHERE id IN (%s)`, field, utils.GetOrmInReplace(len(ids)))
-	_, err = o.Raw(sql, ids).QueryRows(&items)
+	err = o.Raw(sql, ids).Find(&items).Error
 	return
 }
 
@@ -1055,10 +1095,10 @@ func GetExistEnglishReportClassifyIdByClassifyIds(classifyIds []int) (existClass
 	if len(classifyIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT classify_id_first, classify_id_second FROM english_report WHERE 1=1 `
 	sql += fmt.Sprintf(` AND (classify_id_first IN (%s) OR classify_id_second IN (%s))`, utils.GetOrmInReplace(len(classifyIds)), utils.GetOrmInReplace(len(classifyIds)))
 
-	_, err = o.Raw(sql, classifyIds, classifyIds).QueryRows(&existClassifyIds)
+	err = o.Raw(sql, classifyIds, classifyIds).Find(&existClassifyIds).Error
 	return
 }

+ 53 - 52
models/english_report_email.go

@@ -1,15 +1,16 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 // EnglishReportEmail 英文研报-邮箱/客户联系人
 type EnglishReportEmail struct {
-	Id              int       `orm:"column(id);pk" description:"邮箱ID"`
+	Id              int       `gorm:"column:id;primaryKey;autoIncrement" description:"邮箱ID"`
 	CompanyId       int       `description:"客户ID"`
 	Name            string    `description:"联系人名称"`
 	Email           string    `description:"邮箱地址"`
@@ -46,26 +47,20 @@ type EnglishReportEmailSaveReq struct {
 }
 
 func (item *EnglishReportEmail) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishReportEmail) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 // GetEnglishReportEmailById 主键获取邮箱
 func GetEnglishReportEmailById(id int) (item *EnglishReportEmail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email WHERE is_deleted = 0 AND id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
@@ -117,7 +112,7 @@ type EnglishReportEmailRespItem struct {
 
 // GetEnglishReportEmailPageList 获取邮箱列表-分页
 func GetEnglishReportEmailPageList(condition string, pars []interface{}, order string, startSize, pageSize int) (total int, list []*EnglishReportEmailRespItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.id,a.name,a.email,a.mobile,a.country_code,a.business_card_url,a.view_total,a.company_id,
 a.last_view_time,a.admin_id,a.admin_name,a.create_time,a.modify_time,a.enabled,a.status,a.is_deleted,a.register_time,
 b.company_name AS company_name,a.company_name AS register_company_name FROM english_report_email AS a LEFT JOIN 
@@ -129,18 +124,23 @@ WHERE a.is_deleted = 0 `
 	} else {
 		sql += ` ORDER BY a.create_time DESC`
 	}
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = o.Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
 // GetEnglishReportEmailList 获取邮箱列表
 func GetEnglishReportEmailList(condition string, pars []interface{}, order string) (list []*EnglishReportEmail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email WHERE is_deleted = 0`
 	sql += condition
 	if order != "" {
@@ -148,18 +148,18 @@ func GetEnglishReportEmailList(condition string, pars []interface{}, order strin
 	} else {
 		sql += ` ORDER BY create_time DESC`
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = o.Raw(sql, pars...).Find(&list).Error
 	return
 }
 
 // GetEnglishReportEmailByEmail 地址获取邮箱
 func GetEnglishReportEmailByEmail(email string) (item *EnglishReportEmailResp, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.id,a.name,a.email,a.mobile,a.country_code,a.business_card_url,a.view_total,
 a.last_view_time,a.admin_id,a.admin_name,a.create_time,a.modify_time,a.enabled,a.status,
 b.company_name AS company_name,a.company_name AS register_company_name FROM english_report_email AS a LEFT JOIN 
 	english_company AS b ON a.company_id = b.company_id WHERE a.is_deleted = 0 AND a.email = ? LIMIT 1`
-	err = o.Raw(sql, email).QueryRow(&item)
+	err = o.Raw(sql, email).First(&item).Error
 	return
 }
 
@@ -176,9 +176,9 @@ type EnglishReportEditEnabledReq struct {
 
 // DelEnglishReportEmail 删除邮箱
 func DelEnglishReportEmail(id int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM english_report_email WHERE id = ? LIMIT 1`
-	_, err = o.Raw(sql, id).Exec()
+	err = o.Exec(sql, id).Error
 	return
 }
 
@@ -199,7 +199,7 @@ type EnglishReportEmailConf struct {
 
 // GetEnglishCompanyViewPageList 获取联系人点击量列表-分页
 func GetEnglishCompanyViewPageList(condition string, pars []interface{}, order string, startSize, pageSize int) (total int, list []*EnglishReportEmail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email WHERE view_total > 0 `
 	sql += condition
 	if order != "" {
@@ -208,22 +208,23 @@ func GetEnglishCompanyViewPageList(condition string, pars []interface{}, order s
 		sql += ` ORDER BY create_time DESC`
 	}
 
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = o.Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
 // MultiCreateEnglishEmail 批量新增英文邮箱/联系人
 func MultiCreateEnglishEmail(items []*EnglishReportEmail, logs []*EnglishReportEmailOpLog) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	tx, err := o.Begin()
-	if err != nil {
-		return
-	}
+	tx := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = tx.Rollback()
@@ -233,13 +234,13 @@ func MultiCreateEnglishEmail(items []*EnglishReportEmail, logs []*EnglishReportE
 	}()
 
 	// 新增联系人
-	_, err = tx.InsertMulti(len(items), items)
+	err = tx.CreateInBatches(items, utils.MultiAddNum).Error
 	if err != nil {
 		return
 	}
 
 	// 新增日志
-	_, err = tx.InsertMulti(len(logs), logs)
+	err = tx.CreateInBatches(logs, utils.MultiAddNum).Error
 	return
 }
 
@@ -251,9 +252,9 @@ type EnglishReportEmailResendReq struct {
 
 // UpdateEnglishEmailEnabledByCompanyId 更新客户下所有联系人状态
 func UpdateEnglishEmailEnabledByCompanyId(companyId, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_report_email SET enabled = ? WHERE company_id = ?`
-	_, err = o.Raw(sql, enabled, companyId).Exec()
+	err = o.Exec(sql, enabled, companyId).Error
 	return
 }
 
@@ -264,25 +265,25 @@ type EnglishReportMoveReq struct {
 }
 
 // GetEnglishReportEmailListWithCompany 获取邮箱列表
-func GetEnglishReportEmailListWithCompany(condition string, pars []interface{}, order string) (list []*EnglishReportEmailRespItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT a.id,a.name,a.email,a.mobile,a.country_code,a.business_card_url,a.view_total,
-a.last_view_time,a.admin_id,a.admin_name,a.create_time,a.modify_time,a.enabled,a.status,
-b.company_name AS company_name,a.company_name AS register_company_name FROM english_report_email AS a LEFT JOIN 
-	english_company AS b ON a.company_id = b.company_id WHERE is_deleted = 0 `
-	sql += condition
-	if order != "" {
-		sql += order
-	} else {
-		sql += ` ORDER BY create_time DESC`
-	}
-	_, err = o.Raw(sql, pars).QueryRows(&list)
-	return
-}
+//func GetEnglishReportEmailListWithCompany(condition string, pars []interface{}, order string) (list []*EnglishReportEmailRespItem, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := `SELECT a.id,a.name,a.email,a.mobile,a.country_code,a.business_card_url,a.view_total,
+//a.last_view_time,a.admin_id,a.admin_name,a.create_time,a.modify_time,a.enabled,a.status,
+//b.company_name AS company_name,a.company_name AS register_company_name FROM english_report_email AS a LEFT JOIN
+//	english_company AS b ON a.company_id = b.company_id WHERE is_deleted = 0 `
+//	sql += condition
+//	if order != "" {
+//		sql += order
+//	} else {
+//		sql += ` ORDER BY create_time DESC`
+//	}
+//	err = o.Raw(sql, pars...).Find(&list).Error
+//	return
+//}
 
 // GetEnCompanyIdsByKeyword 关键词获取英文客户IDs
 func GetEnCompanyIdsByKeyword(keyword string) (companyIds []int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT DISTINCT
 				a.company_id
 			FROM
@@ -290,6 +291,6 @@ func GetEnCompanyIdsByKeyword(keyword string) (companyIds []int, err error) {
 			JOIN english_company AS b ON a.company_id = b.company_id AND b.is_deleted = 0
 			WHERE
 				a.is_deleted = 0 AND a.status = 1 AND (a.email LIKE ? OR a.mobile LIKE ? OR b.company_name LIKE ?)`
-	_, err = o.Raw(sql, utils.GetLikeKeyword(keyword), utils.GetLikeKeyword(keyword), utils.GetLikeKeyword(keyword)).QueryRows(&companyIds)
+	err = o.Raw(sql, utils.GetLikeKeyword(keyword), utils.GetLikeKeyword(keyword), utils.GetLikeKeyword(keyword)).Find(&companyIds).Error
 	return
 }

+ 29 - 36
models/english_report_email_log.go

@@ -1,8 +1,9 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
@@ -18,7 +19,7 @@ const (
 
 // EnglishReportEmailLog 英文研报-邮件推送记录
 type EnglishReportEmailLog struct {
-	Id           int       `orm:"column(id);pk;auto" description:"邮箱ID"`
+	Id           int       `gorm:"column:id;primaryKey" description:"邮箱ID"`
 	ReportId     int       `description:"报告ID或者线上路演ID"`
 	ReportType   int       `description:"类型:0英文研报,1英文线上路演"`
 	EmailId      int       `description:"邮箱ID"`
@@ -38,36 +39,29 @@ func (item *EnglishReportEmailLog) TableName() string {
 }
 
 func (item *EnglishReportEmailLog) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, e := o.Insert(item)
-	if e != nil {
-		err = e
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishReportEmailLog) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 func (item *EnglishReportEmailLog) InsertMulti(items []*EnglishReportEmailLog) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 // GetEnglishReportEmailLogList 获取日志列表
 func GetEnglishReportEmailLogList(condition string, pars []interface{}) (list []*EnglishReportEmailLog, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email_log WHERE is_deleted = 0 `
 	if condition != `` {
 		sql += condition
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = o.Raw(sql, pars...).Find(&list).Error
 	return
 }
 
@@ -91,7 +85,7 @@ type EnglishReportEmailLogPageList struct {
 
 // GetEnglishReportEmailLogPageList 获取日志列表-分页
 func GetEnglishReportEmailLogPageList(condition string, pars []interface{}, order string, startSize, pageSize int) (total int, list []*EnglishReportEmailLog, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email_log WHERE is_deleted = 0 `
 	sql += condition
 	if order != "" {
@@ -99,20 +93,25 @@ func GetEnglishReportEmailLogPageList(condition string, pars []interface{}, orde
 	} else {
 		sql += ` ORDER BY send_status ASC, create_time DESC`
 	}
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
 // GetEnglishReportEmailLogById 主键获取日志
 func GetEnglishReportEmailLogById(id int) (item *EnglishReportEmailLog, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email_log WHERE is_deleted = 0 AND id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = o.Raw(sql, id).First(&item).Error
 	return
 }
 
@@ -121,10 +120,10 @@ func DeleteEnglishReportEmailLogByIds(logIds []int) (err error) {
 	if len(logIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM english_report_email_log WHERE id IN (` + utils.GetOrmInReplace(len(logIds)) + `)`
 	//sql := `UPDATE english_report_email_log SET is_deleted = 1 WHERE id IN (` + utils.GetOrmInReplace(len(logIds)) + `)`
-	_, err = o.Raw(sql, logIds).Exec()
+	err = o.Exec(sql, logIds).Error
 	return
 }
 
@@ -136,33 +135,27 @@ type EnglishReportEmailLogFail struct {
 
 // GetEnglishReportEmailLogFailList 获取群发消息日志失败列表
 func GetEnglishReportEmailLogFailList(reportType int) (list []*EnglishReportEmailLogFail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT 1 AS has_fail, report_id FROM english_report_email_log WHERE report_type=? and is_deleted = 0 AND send_status = 0 GROUP BY report_id`
-	_, err = o.Raw(sql, reportType).QueryRows(&list)
+	err = o.Raw(sql, reportType).Find(&list).Error
 	return
 }
 
 // GetEnglishReportEmailLog 获取邮件推送日志
 func GetEnglishReportEmailLog(condition string, pars []interface{}) (item *EnglishReportEmailLog, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_report_email_log WHERE 1 = 1 `
 	sql += condition
 	sql += ` ORDER BY id DESC LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
 func (item *EnglishReportEmailLog) MultiUpdateResult(items []*EnglishReportEmailLog) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	p, err := o.Raw("UPDATE english_report_email_log SET send_data = ?, result = ?, send_status = ?, err_msg = ? WHERE id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close()
-	}()
+	o := global.DbMap[utils.DbNameReport]
+	sql := "UPDATE english_report_email_log SET send_data = ?, result = ?, send_status = ?, err_msg = ? WHERE id = ?"
 	for _, v := range items {
-		_, err = p.Exec(v.SendData, v.Result, v.SendStatus, v.ErrMsg, v.Id)
+		err = o.Exec(sql, v.SendData, v.Result, v.SendStatus, v.ErrMsg, v.Id).Error
 		if err != nil {
 			return
 		}

+ 7 - 12
models/english_report_email_op_log.go

@@ -1,7 +1,8 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
@@ -16,7 +17,7 @@ const (
 
 // EnglishReportEmailOpLog 英文邮箱/联系人-操作日志表
 type EnglishReportEmailOpLog struct {
-	Id         int       `orm:"column(id);pk"`
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement"`
 	CompanyId  int       `description:"客户ID"`
 	EmailId    int       `description:"联系人ID"`
 	AdminId    int       `description:"操作人ID"`
@@ -30,23 +31,17 @@ func (item *EnglishReportEmailOpLog) TableName() string {
 }
 
 func (item *EnglishReportEmailOpLog) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.Id = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func (item *EnglishReportEmailOpLog) MultiCreate(items []*EnglishReportEmailOpLog) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(len(items), items)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
 func (item *EnglishReportEmailOpLog) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }

+ 33 - 20
models/english_report_email_pv.go

@@ -1,15 +1,17 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 // EnglishReportEmailPV 英文研报-邮箱pv
 type EnglishReportEmailPV struct {
-	Id         int       `orm:"column(id);pk;auto"`
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement"`
 	ReportId   int       `description:"英文报告ID"`
 	EmailId    int       `description:"邮箱ID"`
 	ReportType int       `description:"类型:0英文研报,1英文线上路演"`
@@ -21,8 +23,7 @@ func (item *EnglishReportEmailPV) TableName() string {
 }
 
 func (item *EnglishReportEmailPV) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
@@ -52,7 +53,7 @@ type EnglishReportEmailUvResp struct {
 
 // GetEnglishReportEmailPageList 获取邮箱pv列表-分页
 func GetEnglishReportEmailPvPageList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*EnglishReportEmailPvResp, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT
 				b.name,
 				b.email,
@@ -67,19 +68,23 @@ func GetEnglishReportEmailPvPageList(condition string, pars []interface{}, start
 	}
 	sql += ` GROUP BY a.email_id `
 
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` ORDER BY recent_click_time DESC LIMIT ?,?`
-
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
 // GetEnglishReportEmailUvPageList 获取邮箱uv列表-分页
 func GetEnglishReportEmailUvPageList(condition string, pars []interface{}, startSize, pageSize int) (total int, list []*EnglishReportEmailUvResp, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT
 				b.name,
 				b.email,
@@ -93,13 +98,17 @@ func GetEnglishReportEmailUvPageList(condition string, pars []interface{}, start
 	}
 	sql += ` GROUP BY a.email_id `
 
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` ORDER BY recent_click_time DESC LIMIT ?,?`
-
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }
 
@@ -119,9 +128,9 @@ type EnglishEmailViewResp struct {
 	LastViewTime string `description:"最近一次点击时间"`
 }
 
-// todo GetEnglishEmailPageList 获取英文邮箱/联系人阅读列表-分页
+// GetEnglishEmailViewPageList 获取英文邮箱/联系人阅读列表-分页
 func GetEnglishEmailViewPageList(condition string, pars []interface{}, orderRule string, startSize, pageSize int) (total int, list []*EnglishEmailViewResp, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT
 				report_id,
                 report_type as click_type,
@@ -136,15 +145,19 @@ func GetEnglishEmailViewPageList(condition string, pars []interface{}, orderRule
 	}
 	sql += ` GROUP BY report_id, report_type`
 
-	totalSQl := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSQl, pars).QueryRow(&total); err != nil {
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	if orderRule != `` {
 		sql += orderRule
 	}
 	sql += ` LIMIT ?,?`
-
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&list)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&list).Error
 	return
 }

+ 72 - 62
models/english_video.go

@@ -1,16 +1,17 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"strings"
 	"time"
 
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 type EnglishVideo struct {
-	Id                 int       `orm:"column(id);pk;auto" description:"路演视频Id"`
+	Id                 int       `gorm:"column:id;primaryKey;autoIncrement" description:"路演视频Id"`
 	ClassifyIdFirst    int       `description:"一级分类id"`
 	ClassifyNameFirst  string    `description:"一级分类名称"`
 	ClassifyIdSecond   int       `description:"二级分类id"`
@@ -36,15 +37,14 @@ type EnglishVideo struct {
 }
 
 func AddEnglishVideo(item *EnglishVideo) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 func ModifyEnglishVideoCode(id int, VideoCode string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_video SET video_code=? WHERE id=? `
-	_, err = o.Raw(sql, VideoCode, id).Exec()
+	err = o.Exec(sql, VideoCode, id).Error
 	return
 }
 
@@ -90,7 +90,7 @@ type ElasticEnglishVideoDetail struct {
 }
 
 func EditEnglishVideo(item *EnglishVideo, Id int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_video
 			SET
 			  classify_id_first =?,
@@ -106,8 +106,8 @@ func EditEnglishVideo(item *EnglishVideo, Id int) (err error) {
               video_cover_url = ?,
               video_seconds = ?
 			WHERE id = ? `
-	_, err = o.Raw(sql, item.ClassifyIdFirst, item.ClassifyNameFirst, item.ClassifyIdSecond, item.ClassifyNameSecond, item.Title,
-		item.Abstract, item.State, time.Now(), item.Overview, item.VideoUrl, item.VideoCoverUrl, item.VideoSeconds, Id).Exec()
+	err = o.Exec(sql, item.ClassifyIdFirst, item.ClassifyNameFirst, item.ClassifyIdSecond, item.ClassifyNameSecond, item.Title,
+		item.Abstract, item.State, time.Now(), item.Overview, item.VideoUrl, item.VideoCoverUrl, item.VideoSeconds, Id).Error
 	return
 }
 
@@ -134,16 +134,16 @@ type EnglishVideoDetail struct {
 }
 
 func GetEnglishVideoById(Id int) (item *EnglishVideoDetail, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_video WHERE id=?`
-	err = o.Raw(sql, Id).QueryRow(&item)
+	err = o.Raw(sql, Id).First(&item).Error
 	return
 }
 
 func GetEnglishVideoItemById(Id int) (item *EnglishVideo, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM english_video WHERE id = ? LIMIT 1`
-	err = o.Raw(sql, Id).QueryRow(&item)
+	err = o.Raw(sql, Id).First(&item).Error
 	return
 }
 
@@ -185,72 +185,76 @@ type EnglishVideoReq struct {
 }
 
 func GetEnglishVideoListCount(condition string, pars []interface{}) (count int, err error) {
-	//产品权限
-	oRddp := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT COUNT(1) AS count  FROM english_video WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = oRddp.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func GetEnglishVideoList(condition string, pars []interface{}, startSize, pageSize int) (items []*EnglishVideoList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-
-	sql := `SELECT * 
-        FROM english_video WHERE 1=1  `
+	o := global.DbMap[utils.DbNameReport]
+	sql := `SELECT * FROM english_video WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
 	sql += `ORDER BY  modify_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func GetEnglishVideoByCondition(condition string, pars []interface{}) (items []*EnglishVideo, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * 
-        FROM english_video WHERE 1=1  `
+	o := global.DbMap[utils.DbNameReport]
+	sql := `SELECT * FROM english_video WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 // 发布报告
 func PublishEnglishVideoById(Id int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE english_video SET state=2,publish_time=now(),modify_time=NOW() WHERE id = ? `
-	_, err = o.Raw(sql, Id).Exec()
+	err = o.Exec(sql, Id).Error
 	return
 }
 
 // 取消发布报告
 func PublishCancelEnglishVideo(Ids int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` UPDATE english_video SET state=1,publish_time=null WHERE id =?  `
-	_, err = o.Raw(sql, Ids).Exec()
+	err = o.Exec(sql, Ids).Error
 	return
 }
 
 // DeleteEnglishVideo 删除路演视频
 func DeleteEnglishVideo(Id int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` DELETE FROM english_video WHERE id=? `
-	_, err = o.Raw(sql, Id).Exec()
+	err = o.Exec(sql, Id).Error
 	return
 }
 
 func UpdateEnglishVideoClassifyByFirstSecondClassifyId(classifyId, parentId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	// 更新相关联的二级分类的parentId,和classify_name_second
 	sql := `update english_video r
 LEFT JOIN english_classify c ON r.classify_id_second = c.id
 SET r.classify_id_first=c.parent_id, r.classify_name_second=c.classify_name
 where (r.classify_id_first != c.parent_id or r.classify_name_second != c.classify_name) and r.classify_id_second =?`
-	_, err = o.Raw(sql, classifyId).Exec()
+	err = o.Exec(sql, classifyId).Error
 	if err != nil {
 		return
 	}
@@ -259,7 +263,7 @@ where (r.classify_id_first != c.parent_id or r.classify_name_second != c.classif
     LEFT JOIN english_classify c ON r.classify_id_first = c.id
     SET r.classify_name_first=c.classify_name
 where r.classify_name_first	!= c.classify_name and r.classify_id_first=?`
-	_, err = o.Raw(sql, parentId).Exec()
+	err = o.Exec(sql, parentId).Error
 	if err != nil {
 		return
 	}
@@ -268,52 +272,58 @@ where r.classify_name_first	!= c.classify_name and r.classify_id_first=?`
     LEFT JOIN english_classify c ON r.classify_id_first = c.id
     SET r.classify_name_first=c.classify_name
 where r.classify_name_first	!= c.classify_name and r.classify_id_first=?`
-	_, err = o.Raw(sql, classifyId).Exec()
+	err = o.Exec(sql, classifyId).Error
 	return
 }
 
 // Update 更新
 func (item *EnglishVideo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 func GetEnglishVideoCounts(classifyId, parentId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ``
 	if parentId == 0 {
 		sql = `SELECT COUNT(1) AS count FROM english_video WHERE classify_id_first=? `
 	} else {
 		sql = `SELECT COUNT(1) AS count FROM english_video WHERE classify_id_second=? `
 	}
-	err = o.Raw(sql, classifyId).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, classifyId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 // UpdateEnglishVideoSecondClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishVideoSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_video SET classify_name_second = ? WHERE classify_id_second = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
+//func UpdateEnglishVideoSecondClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := " UPDATE english_video SET classify_name_second = ? WHERE classify_id_second = ? "
+//	err = o.Exec(sql, classifyName, classifyId).Error
+//	return
+//}
 
 // UpdateEnglishVideoFirstClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishVideoFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_video SET classify_name_first = ? WHERE classify_id_first = ? "
-	_, err = o.Raw(sql, classifyName, classifyId).Exec()
-	return
-}
+//func UpdateEnglishVideoFirstClassifyNameByClassifyId(classifyId int, classifyName string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := " UPDATE english_video SET classify_name_first = ? WHERE classify_id_first = ? "
+//	err = o.Exec(sql, classifyName, classifyId).Error
+//	return
+//}
 
-// UpdateEnglishVideoFirstClassifyNameByClassifyId 更新报告分类名称字段
-func UpdateEnglishVideoByClassifyId(classifyFirstName, classifySecondName string, firstClassifyId, secondClassifyId int, ids string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := " UPDATE english_video SET classify_name_first = ?,classify_name_second = ?,classify_id_first=?, classify_id_second =?  WHERE id IN (" + ids + ") "
-	_, err = o.Raw(sql, classifyFirstName, classifySecondName, firstClassifyId, secondClassifyId).Exec()
-	return
-}
+// UpdateEnglishVideoByClassifyId 更新报告分类名称字段
+//func UpdateEnglishVideoByClassifyId(classifyFirstName, classifySecondName string, firstClassifyId, secondClassifyId int, ids string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := " UPDATE english_video SET classify_name_first = ?,classify_name_second = ?,classify_id_first=?, classify_id_second =?  WHERE id IN (" + ids + ") "
+//	err = o.Exec(sql, classifyFirstName, classifySecondName, firstClassifyId, secondClassifyId).Error
+//	return
+//}
 
 // GetEnglishVideoByIds 根据IDs获取英文报告列表
 func GetEnglishVideoByIds(Ids []int, fieldArr []string) (list []*EnglishVideo, err error) {
@@ -325,16 +335,16 @@ func GetEnglishVideoByIds(Ids []int, fieldArr []string) (list []*EnglishVideo, e
 	if len(fieldArr) > 0 {
 		fields = strings.Join(fieldArr, ",")
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT ` + fields + ` FROM english_video WHERE id IN (` + utils.GetOrmInReplace(listLen) + `)`
-	_, err = o.Raw(sql, Ids).QueryRows(&list)
+	err = o.Raw(sql, Ids).Find(&list).Error
 	return
 }
 
 // GetAllEnglishVideoClassify 获取路演视频分类列表
 func GetAllEnglishVideoClassify() (list []*EnglishVideo, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT classify_id_first, classify_id_second FROM english_video `
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }

+ 62 - 62
models/manual_edb.go

@@ -1,8 +1,9 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
@@ -22,8 +23,8 @@ type TargetDetailResp struct {
 // @return err error
 func GetTargetByTradeCode(tradeCode string) (item *EdbInfoItem, err error) {
 	sql := `SELECT * FROM edbinfo WHERE TRADE_CODE = ?  `
-	o := orm.NewOrmUsingDB("edb")
-	err = o.Raw(sql, tradeCode).QueryRow(&item)
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, tradeCode).First(&item).Error
 	return
 }
 
@@ -36,17 +37,23 @@ func GetTargetByTradeCode(tradeCode string) (item *EdbInfoItem, err error) {
 // @return total int
 // @return err error
 func GetCountManualUserClassify(sysUserId, classifyId int) (total int, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := `SELECT count(1) ct FROM manual_user_classify WHERE admin_id=? AND classify_id = ? `
-	err = o.Raw(sql, sysUserId, classifyId).QueryRow(&total)
-
+	var totalNull sql2.NullInt64
+	err = o.Raw(sql, sysUserId, classifyId).Scan(&totalNull).Error
+	if err != nil {
+		return
+	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	return
 }
+
 func GetManualClassifyByClassifyId(classifyId int) (item *EdbdataClassify, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := ` SELECT classify_id,classify_name,parent_id FROM edbdata_classify WHERE classify_id = ?  `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
-
+	err = o.Raw(sql, classifyId).First(&item).Error
 	return
 }
 
@@ -59,12 +66,11 @@ func GetManualClassifyByClassifyId(classifyId int) (item *EdbdataClassify, err e
 // @return err error
 func GetEdbDataListByCode(tradeCode string) (items []*Edbdata, err error) {
 	sql := ` SELECT  TRADE_CODE,DT,round(CLOSE,4) CLOSE,modify_time  FROM edbdata WHERE TRADE_CODE = ?  GROUP BY TRADE_CODE,DT ORDER BY DT DESC `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, tradeCode).QueryRows(&items)
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, tradeCode).Find(&items).Error
 	return
 }
 
-// EdbInfoListItem
 type EdbInfoListItem struct {
 	TradeCode          string `orm:"column(TRADE_CODE);pk" description:"指标code"`
 	SecName            string `orm:"column(SEC_NAME);" description:"指标名称"`
@@ -108,20 +114,17 @@ type EdbListResp struct {
 // @return items []*Edbinfo
 // @return err error
 func GetEdbInfoList(condition string, pars []interface{}, startSize, pageSize int) (items []*EdbInfoListItem, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := `SELECT DISTINCT a.* FROM edbinfo AS a  WHERE a.classify_id > 0 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += ` ORDER BY a.create_date DESC `
-
 	if pageSize > 0 {
 		sql += ` LIMIT ?,? `
 		pars = append(pars, startSize, pageSize)
 	}
-
-	_, err = o.Raw(sql, pars).QueryRows(&items)
-
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -134,7 +137,7 @@ func GetEdbInfoList(condition string, pars []interface{}, startSize, pageSize in
 // @return items []*Edbinfo
 // @return err error
 func GetEdbInfoSortList(condition string, pars []interface{}, startSize, pageSize int, orderField, orderType string) (items []*EdbInfoListItem, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := `SELECT a.* FROM edbinfo AS a  WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -151,9 +154,7 @@ func GetEdbInfoSortList(condition string, pars []interface{}, startSize, pageSiz
 		sql += ` LIMIT ?,? `
 		pars = append(pars, startSize, pageSize)
 	}
-
-	_, err = o.Raw(sql, pars).QueryRows(&items)
-
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -166,15 +167,13 @@ func GetEdbInfoSortList(condition string, pars []interface{}, startSize, pageSiz
 // @return total int
 // @return err error
 func GetCountEdbInfoList(condition string, pars []interface{}) (total int, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := `SELECT COUNT(1) ct FROM edbinfo AS a  WHERE a.classify_id > 0 `
 	if condition != "" {
 		sql += condition
 	}
 	sql += ` ORDER BY a.create_date DESC `
-
-	err = o.Raw(sql, pars).QueryRow(&total)
-
+	err = o.Raw(sql, pars...).First(&total).Error
 	return
 }
 
@@ -185,8 +184,8 @@ func GetCountEdbInfoList(condition string, pars []interface{}) (total int, err e
 // @param items []*Edbdata
 // @return err error
 func OnlyMultiAddEdbdata(items []*Edbdata) (err error) {
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.InsertMulti(utils.MultiAddNum, items)
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.CreateInBatches(items, utils.MultiAddNum).Error
 	return
 }
 
@@ -203,10 +202,9 @@ func DelEdbdataByCodeAndDateList(tradeCode string, dateList []string) (err error
 		return
 	}
 
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := `delete from edbdata  WHERE TRADE_CODE=? AND DT in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = o.Raw(sql, tradeCode, dateList).Exec()
-
+	err = o.Exec(sql, tradeCode, dateList).Error
 	return
 }
 
@@ -218,9 +216,9 @@ func DelEdbdataByCodeAndDateList(tradeCode string, dateList []string) (err error
 // @param isJoinEdb int 是否加入指标库
 // @return err error
 func UpdateManualIsJoinEdbStatus(edbCode string, isJoinEdb int8) (err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := ` UPDATE edbinfo SET is_join_edb = ? WHERE TRADE_CODE =? `
-	_, err = o.Raw(sql, isJoinEdb, edbCode).Exec()
+	err = o.Exec(sql, isJoinEdb, edbCode).Error
 	return
 }
 
@@ -248,10 +246,7 @@ func DelManualIndexByCodeList(codeList []string) (err error) {
 	if num <= 0 {
 		return
 	}
-	to, err := orm.NewOrmUsingDB("edb").Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameManualIndex].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -261,18 +256,17 @@ func DelManualIndexByCodeList(codeList []string) (err error) {
 	}()
 	// 删除指标
 	sql := `DELETE FROM edbinfo WHERE TRADE_CODE  in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = to.Raw(sql, codeList).Exec()
+	err = to.Exec(sql, codeList).Error
 	if err != nil {
-
+		return
 	}
 
 	// 删除指标数据
 	sql = `DELETE FROM edbdata WHERE TRADE_CODE  in (` + utils.GetOrmInReplace(num) + `) `
-	_, err = to.Raw(sql, codeList).Exec()
+	err = to.Exec(sql, codeList).Error
 	if err != nil {
-
+		return
 	}
-
 	return
 }
 
@@ -289,9 +283,8 @@ func GetEdbinfoListBySecNameList(secNameList []string) (items []*Edbinfo, err er
 		return
 	}
 	sql := `SELECT * FROM edbinfo WHERE SEC_NAME in (` + utils.GetOrmInReplace(num) + ` ) AND REMARK='手动' `
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Raw(sql, secNameList).QueryRows(&items)
-
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Raw(sql, secNameList).Find(&items).Error
 	return
 }
 
@@ -307,10 +300,9 @@ func GetTargetsDataListByCodeList(tradeCodeList []string) (items []*Edbdata, err
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := `SELECT * FROM edbdata WHERE TRADE_CODE in (` + utils.GetOrmInReplace(num) + ` ) ORDER BY DT ASC `
-	_, err = o.Raw(sql, tradeCodeList).QueryRows(&items)
-
+	err = o.Raw(sql, tradeCodeList).Find(&items).Error
 	return
 }
 
@@ -338,8 +330,8 @@ type EdbinfoOpRecord struct {
 // @datetime 2024-07-30 16:25:55
 // @return err error
 func (m *EdbinfoOpRecord) Create() (err error) {
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.Insert(m)
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.Create(m).Error
 	return
 }
 
@@ -351,8 +343,8 @@ func (m *EdbinfoOpRecord) Create() (err error) {
 // @param list []*EdbinfoOpRecord
 // @return err error
 func (m *EdbinfoOpRecord) MulCreate(list []*EdbinfoOpRecord) (err error) {
-	o := orm.NewOrmUsingDB("edb")
-	_, err = o.InsertMulti(utils.MultiAddNum, list)
+	o := global.DbMap[utils.DbNameManualIndex]
+	err = o.CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
@@ -383,16 +375,18 @@ type EdbinfoOpRecordListResp struct {
 // @return items []*EdbinfoOpRecordItem
 // @return err error
 func GetEdbinfoOpRecordPageList(tradeCode string, startSize, pageSize int) (total int, items []*EdbinfoOpRecordItem, err error) {
-	o := orm.NewOrmUsingDB("edb")
-	sql := `SELECT  count(1) FROM edbinfo_op_record AS a  WHERE TRADE_CODE = ? `
-	err = o.Raw(sql, tradeCode).QueryRow(&total)
+	o := global.DbMap[utils.DbNameManualIndex]
+	sql := `SELECT count(1) FROM edbinfo_op_record AS a  WHERE TRADE_CODE = ? `
+	var totalNull sql2.NullInt64
+	err = o.Raw(sql, tradeCode).Scan(&totalNull).Error
 	if err != nil {
 		return
 	}
-
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql = `SELECT  a.* FROM edbinfo_op_record AS a  WHERE TRADE_CODE = ? ORDER BY a.create_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, tradeCode, startSize, pageSize).QueryRows(&items)
-
+	err = o.Raw(sql, tradeCode, startSize, pageSize).Find(&items).Error
 	return
 }
 
@@ -405,12 +399,19 @@ func GetEdbinfoOpRecordPageList(tradeCode string, startSize, pageSize int) (tota
 // @return count int
 // @return err error
 func GetManualEdbCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := ` SELECT COUNT(1) AS count FROM edbinfo WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
@@ -421,9 +422,8 @@ func GetManualEdbCountByCondition(condition string, pars []interface{}) (count i
 // @param tradeCode string
 // @return err error
 func DelEdbinfoOpRecordByTradeCode(tradeCode string) (err error) {
-	o := orm.NewOrmUsingDB("edb")
+	o := global.DbMap[utils.DbNameManualIndex]
 	sql := ` DELETE FROM edbinfo_op_record WHERE TRADE_CODE = ? `
-	_, err = o.Raw(sql, tradeCode).Exec()
-
+	err = o.Exec(sql, tradeCode).Error
 	return
 }

+ 6 - 6
models/meeting_probabilities.go

@@ -1,13 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 // MeetingProbabilities 加息表格详情表
 type MeetingProbabilities struct {
-	MeetingInfoId int    `orm:"column(meeting_info_id);pk"`
+	MeetingInfoId int    `gorm:"column:meeting_info_id;primaryKey"`
 	DateTime      string // 数据日期
 	Content       string // 表格内容
 	ExcelImage    string // 表格图片
@@ -18,16 +19,15 @@ type MeetingProbabilities struct {
 
 // GetMeetingInfoById 根据id 获取加息概率表格详情
 func GetMeetingInfoById(dateTime string) (item *MeetingProbabilities, err error) {
-	o := orm.NewOrmUsingDB("data")
+	o := global.DbMap[utils.DbNameIndex]
 	sql := ``
 	if dateTime == "" {
 		sql = ` SELECT * FROM meeting_probabilities WHERE is_delete=0 ORDER BY create_time DESC LIMIT 1 `
-		err = o.Raw(sql).QueryRow(&item)
+		err = o.Raw(sql).Find(&item).Error
 		return
 	} else {
 		sql = ` SELECT * FROM meeting_probabilities WHERE date_time=? AND is_delete=0 `
-		err = o.Raw(sql, dateTime).QueryRow(&item)
+		err = o.Raw(sql, dateTime).Find(&item).Error
 		return
 	}
 }
-

+ 30 - 20
models/out_link.go

@@ -1,15 +1,16 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"strings"
 	"time"
 )
 
 type OutLink struct {
-	Id           int       `orm:"column(id);pk;auto" description:"自增序号"`
+	Id           int       `gorm:"column:id;primaryKey;autoIncrement" description:"自增序号"`
 	Title        string    `description:"菜单名称"`
 	Url          string    `description:"链接地址"`
 	SysAdminId   int       `description:"创建人ID"`
@@ -47,23 +48,20 @@ func (ol *OutLink) TableName() string {
 }
 
 func (ol *OutLink) Create() (err error) {
-	o := orm.NewOrm()
-	_, err = o.Insert(ol)
-	if err != nil {
-		return
-	}
+	o := global.DEFAULT_DB
+	err = o.Create(ol).Error
 	return
 }
 
 func (ol *OutLink) GetItemById(id int) (err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	sql := `SELECT * FROM out_link WHERE id = ? LIMIT 1`
-	err = o.Raw(sql, id).QueryRow(&ol)
+	err = o.Raw(sql, id).First(&ol).Error
 	return
 }
 
 func (ol *OutLink) GetItemsByCondition(condition string, pars []interface{}, orderRule string) (items []*OutLink, err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	sql := `SELECT * FROM out_link WHERE 1=1 `
 	sql += condition
 	order := ` ORDER BY create_time ASC`
@@ -71,32 +69,39 @@ func (ol *OutLink) GetItemsByCondition(condition string, pars []interface{}, ord
 		order = ` ORDER BY ` + orderRule
 	}
 	sql += order
-	_, err = o.Raw(sql, pars).QueryRows(&items)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func (ol *OutLink) Update(cols []string) (err error) {
-	o := orm.NewOrm()
-	_, err = o.Update(ol, cols...)
+	o := global.DEFAULT_DB
+	err = o.Select(cols).Updates(ol).Error
 	return
 }
 
 func (ol *OutLink) Del() (err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	sql := `DELETE FROM out_link WHERE id = ? LIMIT 1`
-	_, err = o.Raw(sql, ol.Id).Exec()
+	err = o.Exec(sql, ol.Id).Error
 	return
 }
 
 func (ol *OutLink) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, ol.TableName(), condition)
-	err = o.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 func (ol *OutLink) GetPageItemsByCondition(startSize, pageSize int, condition string, pars []interface{}, fieldArr []string, orderRule string) (total int, items []*OutLink, err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	fields := strings.Join(fieldArr, ",")
 	if len(fieldArr) == 0 {
 		fields = `*`
@@ -107,10 +112,15 @@ func (ol *OutLink) GetPageItemsByCondition(startSize, pageSize int, condition st
 	}
 	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, ol.TableName(), condition, order)
 	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z`
-	if err = o.Raw(totalSql, pars).QueryRow(&total); err != nil {
+	var totalNull sql2.NullInt64
+	err = o.Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	sql += ` LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	err = o.Raw(sql, pars, startSize, pageSize).Find(&items).Error
 	return
 }

+ 21 - 25
models/permission.go

@@ -1,14 +1,14 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"strconv"
 )
 
 // ChartPermissionSearchKeyWordMapping 权限相关
 type ChartPermissionSearchKeyWordMapping struct {
-	Id                 int    `description:"id" json:"-"`
+	Id                 int    `gorm:"column:id;primaryKey;autoIncrement" description:"id" json:"-"`
 	ChartPermissionId  int    `description:"权限id"`
 	KeyWord            string `description:"二级分类名称"`
 	From               string `description:"类型标识" json:"-"`
@@ -18,26 +18,22 @@ type ChartPermissionSearchKeyWordMapping struct {
 }
 
 func GetPermission(classifyId int) (items []*ChartPermissionSearchKeyWordMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.classify_id = ? `
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = o.Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
 func GetAllPermissionMapping() (items []*ChartPermissionSearchKeyWordMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp'`
-	_, err = o.Raw(sql).QueryRows(&items)
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
 // EditChartPermissionSearchKeyWordMappingMulti 修改报告报告权限(先删除原有的权限,再添加新的权限)
 func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdList []int, classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -46,7 +42,7 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 		}
 	}()
 	sql := "DELETE FROM chart_permission_search_key_word_mapping WHERE `from` = 'rddp' AND classify_id = ?"
-	_, err = to.Raw(sql, classifyId).Exec()
+	err = to.Exec(sql, classifyId).Error
 	if err != nil {
 		return
 	}
@@ -64,7 +60,7 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 			}
 			chartPermissionSearchKeyWordMappingList = append(chartPermissionSearchKeyWordMappingList, tmpChartPermissionSearchKeyWordMapping)
 		}
-		_, err = to.InsertMulti(len(chartPermissionSearchKeyWordMappingList), chartPermissionSearchKeyWordMappingList)
+		err = to.CreateInBatches(chartPermissionSearchKeyWordMappingList, utils.MultiAddNum).Error
 	}
 	return
 }
@@ -72,15 +68,15 @@ func EditChartPermissionSearchKeyWordMappingMulti(keyword string, permissionIdLi
 func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
 	sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
            VALUES(?,?,?)`
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Exec(sql, chartPermissionId, reportId, "rddp").Error
 	return
 }
 
 func RemoveChartPermissionChapterMapping(reportId int64) (err error) {
 	sql := ` DELETE FROM chart_permission_chapter_mapping WHERE research_type=? AND report_chapter_type_id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, "rddp", reportId).Exec()
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Exec(sql, "rddp", reportId).Error
 	return
 }
 
@@ -90,17 +86,17 @@ type ChartPermissionMappingIdName struct {
 }
 
 func GetChartPermissionNameFromMappingByKeyword(source string, classifyId int) (list []*ChartPermissionMappingIdName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := " SELECT b.chart_permission_id AS permission_id,b.permission_name FROM chart_permission_search_key_word_mapping AS a INNER JOIN chart_permission AS b ON a.chart_permission_id = b.chart_permission_id WHERE a.`from` = ? AND a.classify_id = ? "
-	_, err = o.Raw(sql, source, classifyId).QueryRows(&list)
+	err = o.Raw(sql, source, classifyId).Find(&list).Error
 	return
 }
 
 // UpdateChartPermissionNameFromMappingByKeyword 根据关键词及来源更新新关键词
 func UpdateChartPermissionNameFromMappingByKeyword(newKeyword string, classifyId int, source string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := " UPDATE chart_permission_search_key_word_mapping SET key_word = ? WHERE classify_id = ? AND `from` = ? "
-	_, err = o.Raw(sql, newKeyword, classifyId, source).Exec()
+	err = o.Exec(sql, newKeyword, classifyId, source).Error
 	return
 }
 
@@ -122,20 +118,20 @@ type ChartPermissionSearchKeyWordMappingAndPermissionName struct {
 // @return items []*ChartPermissionSearchKeyWordMappingAndPermissionName
 // @return err error
 func GetPermissionByClassifyId(classifyId int) (items []*ChartPermissionSearchKeyWordMappingAndPermissionName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.chart_permission_name,a.permission_name,b.chart_permission_id,b.key_word,b.classify_id FROM chart_permission AS a 
  join chart_permission_search_key_word_mapping AS b ON a.chart_permission_id=b.chart_permission_id WHERE b.from='rddp' AND b.classify_id = ? `
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	err = o.Raw(sql, classifyId).Find(&items).Error
 	return
 }
 
 func GetClassifyIdsByPermissionId(chartPermissionIdList []string) (classifyIds []string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT classify_id 
 			FROM chart_permission_search_key_word_mapping 
 				WHERE  chart_permission_id IN (` + utils.GetOrmInReplace(len(chartPermissionIdList)) + `) 
 			GROUP BY classify_id
 			HAVING COUNT(DISTINCT chart_permission_id) = ` + strconv.Itoa(len(chartPermissionIdList)) + ``
-	_, err = o.Raw(sql, chartPermissionIdList).QueryRows(&classifyIds)
+	err = o.Raw(sql, chartPermissionIdList).Find(&classifyIds).Error
 	return
 }

+ 60 - 47
models/ppt_v2.go

@@ -1,17 +1,19 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/models/data_manage/excel"
 	"eta/eta_api/models/ppt_english"
+	"eta/eta_api/utils"
 	"time"
 
-	"github.com/beego/beego/v2/client/orm"
 	"github.com/rdlucklib/rdluck_tools/paging"
 )
 
 // PptV2 表
 type PptV2 struct {
-	PptId         int       `orm:"column(ppt_id);pk;auto" description:"ppt的Id"`
+	PptId         int       `gorm:"column:ppt_id;primaryKey;autoIncrement" description:"ppt的Id"`
 	TemplateType  int       `description:"模版类型"`
 	BackgroundImg string    `description:"背景图片"`
 	Title         string    `description:"标题"`
@@ -35,7 +37,7 @@ type PptV2 struct {
 }
 
 type PptV2Item struct {
-	PptId         int       `orm:"column(ppt_id);pk" description:"ppt的Id"`
+	PptId         int       `gorm:"column:ppt_id;primaryKey;autoIncrement" description:"ppt的Id"`
 	TemplateType  int       `description:"模版类型"`
 	BackgroundImg string    `description:"背景图片"`
 	Title         string    `description:"标题"`
@@ -60,7 +62,7 @@ type PptV2Item struct {
 }
 
 func GetPptV2List(condition string, pars []interface{}, startSize, pageSize int) (items []*PptV2Item, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -68,12 +70,13 @@ func GetPptV2List(condition string, pars []interface{}, startSize, pageSize int)
 	//
 	sql += `ORDER BY modify_time DESC LIMIT ?,?`
 	//sql += `ORDER BY create_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 func GetPptV2ByCondition(condition string, pars []interface{}) (items []*PptV2, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 WHERE 1=1 `
 	if condition != "" {
 		sql += condition
@@ -81,17 +84,24 @@ func GetPptV2ByCondition(condition string, pars []interface{}) (items []*PptV2,
 	//
 	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...).Find(&items).Error
 	return
 }
 
 func GetPptV2ListCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT COUNT(1) AS count FROM ppt_v2 WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
@@ -102,16 +112,15 @@ type PptV2ListResp struct {
 
 // AddPptV2 新增PPT
 func AddPptV2(item *PptV2) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	err = global.DbMap[utils.DbNameReport].Create(item).Error
 	return
 }
 
 // DeletePptV2 删除ppt
 func DeletePptV2(pptId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM ppt_v2 WHERE ppt_id=? `
-	_, err = o.Raw(sql, pptId).Exec()
+	err = o.Exec(sql, pptId).Error
 	return
 }
 
@@ -139,8 +148,7 @@ type AddPptResp struct {
 
 // Update 更新ppt基础信息
 func (item *PptV2) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
@@ -155,32 +163,29 @@ type SavePptV2PathReq struct {
 }
 
 func GetPptV2ById(pptId int) (item *PptV2, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 WHERE 1=1 AND ppt_id=? `
-	err = o.Raw(sql, pptId).QueryRow(&item)
+	err = o.Raw(sql, pptId).First(&item).Error
 	return
 }
 
 func GetPptV2ByIds(pptIds []int) (list []*PptV2, err error) {
-	_, err = orm.NewOrmUsingDB("rddp").
-		QueryTable("ppt_v2").
-		Filter("ppt_id__in", pptIds).
-		All(&list)
+	err = global.DbMap[utils.DbNameReport].Table("ppt_v2").Where("ppt_id IN ?", pptIds).Find(&list).Error
 	return
 }
 
-func GetPptV2ByTitle(title string) (item *PptV2, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM ppt_v2 WHERE 1=1 AND title=? `
-	err = o.Raw(sql, title).QueryRow(&item)
-	return
-}
+//func GetPptV2ByTitle(title string) (item *PptV2, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := `SELECT * FROM ppt_v2 WHERE 1=1 AND title=? `
+//	err = o.Raw(sql, title).First(&item).Error
+//	return
+//}
 
 // EditPptV2Path 编辑Ppt的下载地址
 func EditPptV2Path(pptId int, pptxPath string) (err error) {
 	sql := `UPDATE ppt_v2 SET pptx_url=?,modify_time=NOW(),publish_time=NOW() WHERE ppt_id=? `
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql, pptxPath, pptId).Exec()
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Exec(sql, pptxPath, pptId).Error
 	return
 }
 
@@ -194,15 +199,19 @@ type PptV2PublishRecord struct {
 
 // AddPptV2PublishRecord 添加发布记录,主要是记录每次发布的时候,当前的ppt
 func AddPptV2PublishRecord(item *PptV2PublishRecord) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
 	return
 }
 
 // PptV2SaveLog ppt记录表
 type PptV2SaveLog struct {
-	Id            int       `orm:"column(id);pk" description:"自增Id"`
-	PptId         int       `orm:"column(ppt_id)" description:"ppt的Id"`
+	Id            int       `gorm:"column:id;primaryKey" description:"自增Id"`
+	PptId         int       `gorm:"column:ppt_id" description:"ppt的Id"`
 	TemplateType  int       `description:"模版类型"`
 	BackgroundImg string    `description:"背景图片"`
 	Title         string    `description:"标题"`
@@ -218,8 +227,12 @@ type PptV2SaveLog struct {
 
 // AddPptV2SaveLog 新增PPT日志
 func AddPptV2SaveLog(item *PptV2SaveLog) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
 	return
 }
 
@@ -236,16 +249,16 @@ type PPT2ReportReq struct {
 
 // AddPptV2Multi 批量新增ppt
 func AddPptV2Multi(list []*PptV2) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(1, list)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
 // GetAllPptTitle 获取当前目录的所有名称
 func GetAllPptTitle() (names []string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select title from ppt_v2"
-	_, err = o.Raw(sql).QueryRows(&names)
+	err = o.Raw(sql).Find(&names).Error
 	return
 }
 
@@ -257,15 +270,15 @@ type PPT2ReportResp struct {
 
 // GetPptV2ByReportId 通过关联的报告ID获取PPT
 func GetPptV2ByReportId(reportId int) (item *PptV2, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 WHERE 1=1 AND report_id=? LIMIT 1`
-	err = o.Raw(sql, reportId).QueryRow(&item)
+	err = o.Raw(sql, reportId).First(&item).Error
 	return
 }
 
 // GetSharePptV2 获取公开分享的ppt
 func GetSharePptV2(IsNewPpt int) (items []*PptV2, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 WHERE 1=1 AND is_share = 1 `
 
 	if IsNewPpt > 0 {
@@ -273,20 +286,20 @@ func GetSharePptV2(IsNewPpt int) (items []*PptV2, err error) {
 	}
 	sql += `ORDER BY create_time DESC`
 	//sql += `ORDER BY create_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql).QueryRows(&items)
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
 // GetAllPptV2List 根据条件获取所有的Ppt
 func GetAllPptV2List(condition string, pars []interface{}) (items []*PptV2Item, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 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...).Find(&items).Error
 	return
 }
 
@@ -301,9 +314,9 @@ type BatchEnPPT2CnReq struct {
 }
 
 func GetPptV2ByTitleAndId(title string, adminId int) (item *PptV2, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2 WHERE 1=1 AND title=? AND admin_id=? `
-	err = o.Raw(sql, title, adminId).QueryRow(&item)
+	err = o.Raw(sql, title, adminId).First(&item).Error
 	return
 }
 

+ 17 - 23
models/ppt_v2_grant.go

@@ -1,14 +1,14 @@
 package models
 
 import (
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
 // PptV2Grant Ppt授权表
 type PptV2Grant struct {
-	GrantId      int64     `orm:"column(grant_id);pk;auto" description:"自增序号"`
+	GrantId      int64     `gorm:"column:grant_id;primaryKey" description:"自增序号"`
 	PptId        int64     `description:"ppt ID"`
 	DepartmentId int64     `description:"授权部门id"`
 	GrantAdminId int64     `description:"授权部门id"`
@@ -17,9 +17,9 @@ type PptV2Grant struct {
 
 // GetPPtGrantInfo 获取已经有权限的ppt列表
 func GetPPtGrantInfo(pptId int) (list []*PptV2Grant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM ppt_v2_grant WHERE ppt_id=? `
-	_, err = o.Raw(sql, pptId).QueryRows(&list)
+	err = o.Raw(sql, pptId).Find(&list).Error
 	return
 }
 
@@ -39,11 +39,7 @@ type GrantPptReq struct {
 
 // MultiAddPptV2Grant 批量添加授权记录
 func MultiAddPptV2Grant(pptId int, list []*PptV2Grant) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -53,14 +49,14 @@ func MultiAddPptV2Grant(pptId int, list []*PptV2Grant) (err error) {
 	}()
 
 	sql := "DELETE from ppt_v2_grant where ppt_id=?"
-	_, err = to.Raw(sql, pptId).Exec()
+	err = to.Exec(sql, pptId).Error
 	if err != nil {
 		return
 	}
 
 	// 新增授权记录
 	if len(list) > 0 {
-		_, tmpErr := to.InsertMulti(len(list), list)
+		tmpErr := to.CreateInBatches(list, utils.MultiAddNum).Error
 		if tmpErr != nil {
 			err = tmpErr
 			return
@@ -72,16 +68,15 @@ func MultiAddPptV2Grant(pptId int, list []*PptV2Grant) (err error) {
 
 // DeletePptV2Grant 移除授权记录
 func DeletePptV2Grant(pptId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "DELETE from ppt_v2_grant where ppt_id=?"
-	_, err = o.Raw(sql, pptId).Exec()
-
+	err = o.Exec(sql, pptId).Error
 	return
 }
 
 // PptV2InfoGrantItem Ppt信息记录(包含授权信息)
 type PptV2InfoGrantItem struct {
-	PptId         int       `orm:"column(ppt_id);pk;auto" description:"ppt的Id"`
+	PptId         int       `gorm:"column:ppt_id;primaryKey" description:"ppt的Id"`
 	TemplateType  int       `description:"模版类型"`
 	BackgroundImg string    `description:"背景图片"`
 	Title         string    `description:"标题"`
@@ -110,31 +105,30 @@ type PptV2InfoGrantItem struct {
 
 // GetAllGrantList 获取已经有权限的ppt列表
 func GetAllGrantList(sysUserId int) (list []*PptV2InfoGrantItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.* FROM ppt_v2 a JOIN ppt_v2_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).Find(&list).Error
 	return
 }
 
 // GetGrantList 获取我共享出去/别人共享给我的的ppt列表
 func GetGrantList(condition string, pars []interface{}) (list []*PptV2InfoGrantItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.* FROM ppt_v2 a JOIN ppt_v2_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...).Find(&list).Error
 	return
 }
 
 // GetPPtGrantConf 根据ppt_id和操作人获取ppt权限配置
 func GetPPtGrantConf(pptId, sysUserId int) (item *PptV2InfoGrantItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.* FROM ppt_v2 a JOIN ppt_v2_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).First(&item).Error
 	return
 }

+ 40 - 42
models/ppt_v2_group.go

@@ -1,14 +1,14 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/models/ppt_english"
+	"eta/eta_api/utils"
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
 type PptV2Group struct {
-	GroupId    int64     `orm:"column(group_id);pk;auto" description:"ppt目录ID"`
+	GroupId    int64     `gorm:"column:group_id;primaryKey" description:"ppt目录ID"`
 	GroupName  string    `description:"目录名称"`
 	AdminId    int       `description:"目录创建者账号ID"`
 	IsShare    int8      `description:"是否共享,0私有,1共享"`
@@ -21,133 +21,131 @@ type PptV2Group struct {
 
 // GetPrivatePptGroups 获取私有目录
 func GetPrivatePptGroups(adminId int) (list []*PptV2Group, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select * from ppt_v2_group where admin_id=? order by group_sort asc, group_id asc"
-	_, err = o.Raw(sql, adminId).QueryRows(&list)
+	err = o.Raw(sql, adminId).Find(&list).Error
 	return
 }
 
 // GetPrivatePptGroupsByAdminId 获取用户自己的私有目录
 func GetPrivatePptGroupsByAdminId(adminId int) (list []*PptV2Group, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select * from ppt_v2_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).Find(&list).Error
 	return
 }
 
 // GetPublicPptGroups 获取ppt公共目录
 func GetPublicPptGroups() (list []*PptV2Group, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select * from ppt_v2_group where is_share=1 order by share_time asc, group_id asc"
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 // GetPptGroupByName 根据目录名称查询
 func GetPptGroupByName(groupName string, adminId int) (item *PptV2Group, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select * from ppt_v2_group where admin_id=? and group_name=?"
-	err = o.Raw(sql, adminId, groupName).QueryRow(&item)
+	err = o.Raw(sql, adminId, groupName).First(&item).Error
 	return
 }
 
 // GetPptGroupById 根据目录Id查询
 func GetPptGroupByGroupIdAdminId(groupId int64, adminId int) (item *PptV2Group, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select * from ppt_v2_group where admin_id=? and group_id=?"
-	err = o.Raw(sql, adminId, groupId).QueryRow(&item)
+	err = o.Raw(sql, adminId, groupId).First(&item).Error
 	return
 }
 
 // GetPptGroupByGroupId 根据目录Id查询
 func GetPptGroupByGroupId(groupId int64) (item *PptV2Group, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select * from ppt_v2_group where group_id=?"
-	err = o.Raw(sql, groupId).QueryRow(&item)
+	err = o.Raw(sql, groupId).First(&item).Error
 	return
 }
 
 // AddPptGroup 新增目录
 func AddPptGroup(item *PptV2Group) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.GroupId)
 	return
 }
 
 // DeletePptGroup 删除单个ppt目录
 func DeletePptGroup(groupId int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM ppt_v2_group WHERE group_id=? `
-	_, err = o.Raw(sql, groupId).Exec()
+	err = o.Exec(sql, groupId).Error
 	return
 }
 
 // DeletePptGroupByGroupIds 删除单个ppt目录
 func DeletePptGroupByGroupIds(groupIds string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM ppt_v2_group WHERE group_id in  ` + groupIds
-	_, err = o.Raw(sql).Exec()
+	err = o.Exec(sql).Error
 	return
 }
 
 // Update 更新ppt目录基础信息
 func (item *PptV2Group) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Select(cols).Updates(item).Error
 	return
 }
 
 // MoveUpGroupBySort 往上移动目录
 func MoveUpGroupBySort(nextSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `update ppt_v2_group set group_sort = group_sort + 1 where group_sort >= ? and group_sort< ?`
-	_, err = o.Raw(sql, nextSort, currentSort).Exec()
+	err = o.Exec(sql, nextSort, currentSort).Error
 	return
 }
 
 // MoveDownGroupBySort 往下移动目录
 func MoveDownGroupBySort(prevSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `update ppt_v2_group set group_sort = group_sort - 1 where group_sort <= ? and group_sort> ? `
-	_, err = o.Raw(sql, prevSort, currentSort).Exec()
+	err = o.Exec(sql, prevSort, currentSort).Error
 	return
 }
 
 // GetPptGroupNamesByAdminId 获取当前目录的所有名称
 func GetPptGroupNamesByAdminId(adminId int) (names []string, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select group_name from ppt_v2_group  where admin_id = ?"
-	_, err = o.Raw(sql, adminId).QueryRows(&names)
+	err = o.Raw(sql, adminId).Find(&names).Error
 	return
 }
 
 // GetPptGroupIdAndGroupNameByAdminId 查找分组名称和标识
 func GetPptGroupIdAndGroupNameByAdminId(adminId int) (list []*RespPptGroupName, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := "select group_id, group_name from ppt_v2_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).Find(&list).Error
 	return
 }
 
 // AddPptGroupMappingMulti 批量新增ppt和目录的映射关系
 func AddPptGroupMulti(list []*PptV2Group) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(1, list)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
 // UpdatePptGroupSortMulti 批量更新初始排序标识
 func UpdatePptGroupSortMulti(groupIds []int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	p, err := o.Raw("UPDATE ppt_v2_group SET group_sort = group_id WHERE group_id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close() // 别忘记关闭 statement
-	}()
+	o := global.DbMap[utils.DbNameReport]
+	sql := "UPDATE ppt_v2_group SET group_sort = group_id WHERE group_id = ?"
 	for _, v := range groupIds {
-		_, err = p.Exec(v)
+		err = o.Exec(sql, v).Error
 		if err != nil {
 			return
 		}

+ 54 - 45
models/ppt_v2_group_mapping.go

@@ -1,6 +1,9 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 
 	"github.com/beego/beego/v2/client/orm"
@@ -8,7 +11,7 @@ import (
 
 // ppt目录和ppt 映射表
 type PptV2GroupMapping struct {
-	GroupPptId      int64     `orm:"column(group_ppt_id);pk;auto" description:"自增序号"`
+	GroupPptId      int64     `gorm:"column:group_ppt_id;primaryKey;autoIncrement" description:"自增序号"`
 	GroupId         int64     `description:"ppt目录ID"`
 	PptSort         int64     `description:"Ppt的排序"`
 	PptId           int64     `description:"ppt ID"`
@@ -22,88 +25,94 @@ type PptV2GroupMapping struct {
 
 // AddPptGroupMapping 新增目录和ppt的映射关系
 func AddPptGroupMapping(item *PptV2GroupMapping) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.GroupPptId)
 	return
 }
 
 // GetPptMappingCountByGroupId 查询目录下,ppt的个数
 func GetPptMappingCountByGroupId(groupId int64) (total int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `select count(*) from ppt_v2_group_mapping where group_id=?`
-	err = o.Raw(sql, groupId).QueryRow(&total)
+	var totalNull sql2.NullInt64
+	err = o.Raw(sql, groupId).Scan(&totalNull).Error
+	if err != nil {
+		return
+	}
+	if totalNull.Valid {
+		total = totalNull.Int64
+	}
 	return
 }
 
 // GetPptMappingListByGroupId 查询目录下,ppt列表
 func GetPptMappingListByGroupId(groupId int64) (list []*PptV2GroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `select group_ppt_id, group_id, ppt_id, ppt_sort, admin_id, admin_real_name, create_time from ppt_v2_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).Find(&list).Error
 	return
 }
 
 // GetPptMappingListByGroupIds 根据分组ID查找
 func GetPptMappingListByGroupIds(groupIds []int64) (list []*PptV2GroupMapping, err error) {
-	_, err = orm.NewOrmUsingDB("rddp").
-		QueryTable("ppt_v2_group_mapping").
-		Filter("group_id__in", groupIds).
-		OrderBy("-ppt_sort", "group_ppt_id").
-		All(&list)
-
+	err = global.DbMap[utils.DbNameReport].Table("ppt_v2_group_mapping").Where("group_id in ?", groupIds).Find(&list).Error
 	return
 }
 
 // GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系
 func GetPptMappingByGroupPptId(groupPptId int64, adminId int) (item *PptV2GroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `select * from ppt_v2_group_mapping where group_ppt_id=? and admin_id=?`
-	err = o.Raw(sql, groupPptId, adminId).QueryRow(&item)
+	err = o.Raw(sql, groupPptId, adminId).First(&item).Error
 	return
 }
 
-// GetPptMappingByGroupPptId 查询根据映射ID,查询单个映射关系数量
+// GetPptMappingByGroupPptCountId 查询根据映射ID,查询单个映射关系数量
 func GetPptMappingByGroupPptCountId(groupPptId int64, adminId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `select COUNT(*) AS count from ppt_v2_group_mapping where group_ppt_id=? and admin_id=?`
-	err = o.Raw(sql, groupPptId, adminId).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, groupPptId, adminId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 // GetPptMappingByPptId 查询根据ppt_Id, 查询当映单个映射关系
 func GetPptMappingByPptId(pptId int64) (item *PptV2GroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` select * from ppt_v2_group_mapping where ppt_id=? `
-	err = o.Raw(sql, pptId).QueryRow(&item)
+	err = o.Raw(sql, pptId).First(&item).Error
 	return
 }
 
 // Update 更新ppt目录映射的基本信息
 func (item *PptV2GroupMapping) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 
 // AddPptGroupMappingMulti 批量新增ppt和目录的映射关系
 func AddPptGroupMappingMulti(list []*PptV2GroupMapping) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(1, list)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.CreateInBatches(list, utils.MultiAddNum).Error
 	return
 }
 
 // UpdatePptGroupMappingSortMulti 批量更新初始排序标识
 func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	p, err := o.Raw("UPDATE ppt_v2_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?").Prepare()
-	if err != nil {
-		return
-	}
-	defer func() {
-		_ = p.Close() // 别忘记关闭 statement
-	}()
+	o := global.DbMap[utils.DbNameReport]
+	sql := "UPDATE ppt_v2_group_mapping SET ppt_sort = group_ppt_id WHERE group_ppt_id = ?"
 	for _, v := range groupPptIds {
-		_, err = p.Exec(v)
+		err = o.Exec(sql, v).Error
 		if err != nil {
 			return
 		}
@@ -113,41 +122,41 @@ func UpdatePptGroupMappingSortMulti(groupPptIds []int64) (err error) {
 
 // DeletePptGroupMapping 删除ppt目录
 func DeletePptGroupMapping(groupId int64, adminId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM ppt_v2_group_mapping WHERE group_ppt_id=? and admin_id=? `
-	_, err = o.Raw(sql, groupId, adminId).Exec()
+	err = o.Exec(sql, groupId, adminId).Error
 	return
 }
 
 // DeletePptGroupMappingByPptId 删除ppt目录
 func DeletePptGroupMappingByPptId(pptId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM ppt_v2_group_mapping WHERE ppt_id=?`
-	_, err = o.Raw(sql, pptId).Exec()
+	err = o.Exec(sql, pptId).Error
 	return
 }
 
 // MoveUpGroupPptBySort 往上移动ppt
 func MoveUpGroupPptBySort(groupId, nextSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `update ppt_v2_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.Exec(sql, groupId, nextSort, currentSort).Error
 	return
 }
 
 // MoveDownGroupPptBySort 往下移动ppt
 func MoveDownGroupPptBySort(groupId, prevSort, currentSort int64) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `update ppt_v2_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.Exec(sql, groupId, prevSort, currentSort).Error
 	return
 }
 
 // GetGroupPptByPptId 根据pptID 查找各个目录下的ppt
 func GetGroupPptByPptId(pptId int) (list []*PptV2GroupMapping, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `select * from ppt_v2_group_mapping where ppt_id=?`
-	_, err = o.Raw(sql, pptId).QueryRows(&list)
+	err = o.Raw(sql, pptId).Find(&list).Error
 	return
 }
 
@@ -165,7 +174,7 @@ func GetPublicGroupPptByPptIds(pptIds []string) (list []*PptV2GroupMapping, err
 	sql := qb.String()
 
 	// 执行 SQL 语句
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Raw(sql).QueryRows(&list)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Raw(sql).Find(&list).Error
 	return
 }

Різницю між файлами не показано, бо вона завелика
+ 389 - 374
models/report.go


+ 34 - 18
models/report_author.go

@@ -1,13 +1,15 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	sql2 "database/sql"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"time"
 )
 
 type ReportAuthor struct {
-	Id           int       `orm:"column(id)" description:"报告作者ID"`
+	Id           int       `gorm:"column:id;primaryKey;autoIncrement" description:"报告作者ID"`
 	ReportAuthor string    `description:"报告作者名称"`
 	AuthorType   int       `description:"类型,1:中文;2:英文"`
 	Enable       int       `description:"是否启用,0:禁用,1:启用"`
@@ -18,32 +20,43 @@ type ReportAuthor struct {
 
 // GetReportAuthorList 获取报告作者列表
 func GetReportAuthorList(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*ReportAuthor, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	baseSql := `  report_author WHERE is_delete=0 `
 	if condition != "" {
 		baseSql += condition
 	}
 
 	totalSql := ` SELECT count(1) total FROM ` + baseSql
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	var totalNull sql2.NullInt64
+	err = global.DbMap[utils.DbNameReport].Raw(totalSql, pars...).Scan(&totalNull).Error
 	if err != nil {
 		return
 	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 
 	sql := ` SELECT * FROM ` + baseSql + ` ORDER BY id desc LIMIT ?,? `
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
 // GetReportAuthorCount 获取报告作者列表数
 func GetReportAuthorCount(condition string, pars []interface{}) (total int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-
+	o := global.DbMap[utils.DbNameReport]
 	totalSql := ` SELECT count(1) total FROM report_author WHERE 1=1 `
 	if condition != "" {
 		totalSql += condition
 	}
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	var totalNull sql2.NullInt64
+	err = o.Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
+		return
+	}
+	if totalNull.Valid {
+		total = int(totalNull.Int64)
+	}
 	return
 }
 
@@ -61,39 +74,42 @@ type AddReportAuthorReq struct {
 
 // GetReportAuthorById 根据作者id获取数据
 func GetReportAuthorById(authorId int) (item *ReportAuthor, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report_author WHERE is_delete=0 AND id = ? `
-	err = o.Raw(sql, authorId).QueryRow(&item)
+	err = o.Raw(sql, authorId).First(&item).Error
 	return
 }
 
 // GetReportAuthorByAuthor 根据作者名称获取数据
 func GetReportAuthorByAuthor(title string, authorType int) (item *ReportAuthor, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report_author WHERE is_delete=0 AND report_author=? AND author_type = ? `
-	err = o.Raw(sql, title, authorType).QueryRow(&item)
+	err = o.Raw(sql, title, authorType).First(&item).Error
 	return
 }
 
 // GetReportAuthorByAuthorAndId 根据作者名称和作者id获取数据
 func GetReportAuthorByAuthorAndId(title string, authorType, authorId int) (item *ReportAuthor, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT * FROM report_author WHERE is_delete=0 AND report_author=? AND author_type = ? AND id != ? `
-	err = o.Raw(sql, title, authorType, authorId).QueryRow(&item)
+	err = o.Raw(sql, title, authorType, authorId).First(&item).Error
 	return
 }
 
 // AddReportAuthor 新增作者
 func AddReportAuthor(item *ReportAuthor) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
 	return
 }
 
 // Update 更新作者基础信息
 func (item *ReportAuthor) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(item, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(item).Error
 	return
 }
 

+ 98 - 95
models/report_chapter.go

@@ -1,15 +1,16 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/models/report"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // ReportChapter 报告章节
 type ReportChapter struct {
-	ReportChapterId     int       `orm:"column(report_chapter_id);pk" description:"报告章节ID"`
+	ReportChapterId     int       `gorm:"column:report_chapter_id;primaryKey;autoIncrement" description:"报告章节ID"`
 	ReportId            int       `description:"报告ID"`
 	ReportType          string    `description:"报告类型 day-晨报 week-周报"`
 	ClassifyIdFirst     int       `description:"一级分类id"`
@@ -47,7 +48,7 @@ type ReportChapter struct {
 
 // ReportChapterItem 报告章节详情
 type ReportChapterItem struct {
-	ReportChapterId     int    `orm:"column(report_chapter_id);pk" description:"报告章节ID"`
+	ReportChapterId     int    `gorm:"column:report_chapter_id;primaryKey;autoIncrement" description:"报告章节ID"`
 	ReportId            int    `description:"报告ID"`
 	ReportType          string `description:"报告类型 day-晨报 week-周报"`
 	ClassifyIdFirst     int    `description:"一级分类id"`
@@ -130,19 +131,17 @@ type ReportChapterResp struct {
 
 // GetChapterListByReportId 根据ReportId获取章节列表
 func GetChapterListByReportId(reportId int) (list []*ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE report_id = ? ORDER BY sort ASC`
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-
+	err = o.Raw(sql, reportId).Find(&list).Error
 	return
 }
 
 // GetPublishedChapterListByReportId 根据ReportId获取已发布章节列表
 func GetPublishedChapterListByReportId(reportId int) (list []*ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE report_id = ? AND publish_state = 2 ORDER BY sort ASC`
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-
+	err = o.Raw(sql, reportId).Find(&list).Error
 	return
 }
 
@@ -186,10 +185,9 @@ type EditTickList struct {
 
 // GetReportChapterInfoById 根据主键获取报告章节
 func GetReportChapterInfoById(reportChapterId int) (item *ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE report_chapter_id = ? `
-	err = o.Raw(sql, reportChapterId).QueryRow(&item)
-
+	err = o.Raw(sql, reportChapterId).First(&item).Error
 	return
 }
 
@@ -201,19 +199,17 @@ func GetReportChapterInfoById(reportChapterId int) (item *ReportChapter, err err
 // @return item *ReportChapterItem
 // @return err error
 func GetReportChapterItemById(reportChapterId int) (item *ReportChapterItem, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE report_chapter_id = ? `
-	err = o.Raw(sql, reportChapterId).QueryRow(&item)
-
+	err = o.Raw(sql, reportChapterId).First(&item).Error
 	return
 }
 
 // GetLastPublishedReportChapter 获取上一篇已发表的晨周报章节
 func GetLastPublishedReportChapter(typeId int, reportType string) (item *ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE publish_state = 2 AND type_id = ? AND report_type = ? ORDER BY report_chapter_id DESC limit 1 `
-	err = o.Raw(sql, typeId, reportType).QueryRow(&item)
-
+	err = o.Raw(sql, typeId, reportType).First(&item).Error
 	return
 }
 
@@ -224,21 +220,18 @@ func GetLastPublishedReportChapter(typeId int, reportType string) (item *ReportC
 // @datetime 2024-06-04 15:14:41
 // @return err error
 func (chapterChapterInfo *ReportChapter) Add() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err := o.Insert(chapterChapterInfo)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(chapterChapterInfo).Error
 	if err != nil {
 		return
 	}
-	chapterChapterInfo.ReportChapterId = int(lastId)
-
 	return
 }
 
 // UpdateChapter 更新报表章节
 func (chapterChapterInfo *ReportChapter) UpdateChapter(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(chapterChapterInfo, cols...)
-
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Select(cols).Updates(chapterChapterInfo).Error
 	return
 }
 
@@ -286,7 +279,7 @@ type ReportChapterVideoList struct {
 
 // GetReportChapterVideoList 获取报告章节音频列表
 func GetReportChapterVideoList(reportId int) (list []*ReportChapterVideoList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT
 				report_id,
 				report_chapter_id,
@@ -299,8 +292,7 @@ func GetReportChapterVideoList(reportId int) (list []*ReportChapterVideoList, er
 				report_id = ? AND publish_state = 2 AND video_url != ""
 			ORDER BY
 				report_chapter_id ASC `
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-
+	err = o.Raw(sql, reportId).Find(&list).Error
 	return
 }
 
@@ -309,7 +301,7 @@ func GetReportChapterVideoListByReportIds(reportIds []int) (list []*ReportChapte
 	if len(reportIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT
 				report_id,
 				report_chapter_id,
@@ -322,8 +314,7 @@ func GetReportChapterVideoListByReportIds(reportIds []int) (list []*ReportChapte
 				report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `) AND publish_state = 2 AND video_url != ""
 			ORDER BY
 				report_chapter_id ASC `
-	_, err = o.Raw(sql, reportIds).QueryRows(&list)
-
+	err = o.Raw(sql, reportIds).Find(&list).Error
 	return
 }
 
@@ -332,7 +323,7 @@ func GetReportChapterVideoListByChapterIds(chapterIds []int) (list []*ReportChap
 	if len(chapterIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT
 				report_id,
 				report_chapter_id,
@@ -345,7 +336,7 @@ func GetReportChapterVideoListByChapterIds(chapterIds []int) (list []*ReportChap
 				report_chapter_id IN (` + utils.GetOrmInReplace(len(chapterIds)) + `) AND publish_state = 2
 			ORDER BY
 				report_chapter_id ASC `
-	_, err = o.Raw(sql, chapterIds).QueryRows(&list)
+	err = o.Raw(sql, chapterIds).Find(&list).Error
 	return
 }
 
@@ -357,10 +348,16 @@ type PublishReportChapterReq struct {
 
 // CountPublishedChapterNum 获取报告已发布的章节数
 func CountPublishedChapterNum(reportId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE report_id = ? AND publish_state = 2 `
-	err = o.Raw(sql, reportId).QueryRow(&count)
-
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, reportId).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
@@ -371,13 +368,13 @@ func CountPublishedChapterNum(reportId int) (count int, err error) {
 // @param reportId int
 // @return count int
 // @return err error
-func CountUnPublishedChapterNum(reportId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE report_id = ? AND publish_state = 1 `
-	err = o.Raw(sql, reportId).QueryRow(&count)
-
-	return
-}
+//func CountUnPublishedChapterNum(reportId int) (count int, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE report_id = ? AND publish_state = 1 `
+//	err = o.Raw(sql, reportId).First(&count)
+//
+//	return
+//}
 
 // GetUnPublishedChapterList
 // @Description: 获取报告未发布的章节列表
@@ -387,10 +384,9 @@ func CountUnPublishedChapterNum(reportId int) (count int, err error) {
 // @return list []*ReportChapter
 // @return err error
 func GetUnPublishedChapterList(reportId int) (list []*ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT report_chapter_id,report_id,title FROM report_chapter WHERE report_id = ? AND publish_state = 1 ORDER BY sort ASC`
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-
+	err = o.Raw(sql, reportId).Find(&list).Error
 	return
 }
 
@@ -399,47 +395,47 @@ func GetChapterListByChapterIds(chapterIds []int) (list []*ReportChapter, err er
 	if len(chapterIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE report_chapter_id IN (` + utils.GetOrmInReplace(len(chapterIds)) + `) ORDER BY sort ASC`
-	_, err = o.Raw(sql, chapterIds).QueryRows(&list)
+	err = o.Raw(sql, chapterIds).Find(&list).Error
 	return
 }
 
 // GetChapterSimpleListByChapterIds 根据章节ID获取章节列表
-func GetChapterSimpleListByChapterIds(chapterIds []int) (list []*ReportChapter, err error) {
-	if len(chapterIds) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT report_id, report_chapter_id, title, type_name, create_time, IF(publish_time,publish_time,create_time) as publish_time FROM report_chapter WHERE report_chapter_id IN (` + utils.GetOrmInReplace(len(chapterIds)) + `) ORDER BY publish_time desc, sort ASC`
-	_, err = o.Raw(sql, chapterIds).QueryRows(&list)
-	return
-}
+//func GetChapterSimpleListByChapterIds(chapterIds []int) (list []*ReportChapter, err error) {
+//	if len(chapterIds) == 0 {
+//		return
+//	}
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` SELECT report_id, report_chapter_id, title, type_name, create_time, IF(publish_time,publish_time,create_time) as publish_time FROM report_chapter WHERE report_chapter_id IN (` + utils.GetOrmInReplace(len(chapterIds)) + `) ORDER BY publish_time desc, sort ASC`
+//	err = o.Raw(sql, chapterIds).Find(&list)
+//	return
+//}
 
 // GetChapterSimpleListByReportIds 根据ReportId获取章节列表
-func GetChapterSimpleListByReportIds(reportIds []int) (list []*ReportChapter, err error) {
-	if len(reportIds) == 0 {
-		return
-	}
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT report_id, report_chapter_id, title, type_name, create_time, IF(publish_time,publish_time,create_time) as publish_time FROM report_chapter WHERE publish_state = 2 and report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `) ORDER BY publish_time desc, sort ASC`
-	_, err = o.Raw(sql, reportIds).QueryRows(&list)
-	return
-}
+//func GetChapterSimpleListByReportIds(reportIds []int) (list []*ReportChapter, err error) {
+//	if len(reportIds) == 0 {
+//		return
+//	}
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` SELECT report_id, report_chapter_id, title, type_name, create_time, IF(publish_time,publish_time,create_time) as publish_time FROM report_chapter WHERE publish_state = 2 and report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `) ORDER BY publish_time desc, sort ASC`
+//	err = o.Raw(sql, reportIds).Find(&list)
+//	return
+//}
 
 // UpdateReportChapterTypeNameByTypeId 更新章节类型名称
 func UpdateReportChapterTypeNameByTypeId(typeId int, typeName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `UPDATE report_chapter SET type_name = ? WHERE type_id = ?`
-	_, err = o.Raw(sql, typeName, typeId).Exec()
+	err = o.Raw(sql, typeName, typeId).Error
 	return
 }
 
 // CountReportChapterByTypeId 通过章节类型ID获取章节数
 func CountReportChapterByTypeId(typeId int) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT COUNT(1) AS ct FROM report_chapter WHERE type_id = ?`
-	err = o.Raw(sql, typeId).QueryRow(&count)
+	err = o.Raw(sql, typeId).First(&count).Error
 	return
 }
 
@@ -468,12 +464,11 @@ type EditReportChapterBaseInfoAndPermissionReq struct {
 // @return list []int
 // @return err error
 func GetReportChapterIdList(reportId int) (list []int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT report_chapter_id FROM report_chapter
 			WHERE report_id = ? 
 			ORDER BY report_chapter_id ASC `
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-
+	err = o.Raw(sql, reportId).Find(&list).Error
 	return
 }
 
@@ -495,9 +490,9 @@ type ReportChapterMoveReq struct {
 // @return item *ReportChapter
 // @return err error
 func (chapterChapterInfo *ReportChapter) GetReportChapterById(reportChapterId int) (item *ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE report_chapter_id = ?`
-	err = o.Raw(sql, reportChapterId).QueryRow(&item)
+	err = o.Raw(sql, reportChapterId).First(&item).Error
 	return
 }
 
@@ -512,7 +507,7 @@ func (chapterChapterInfo *ReportChapter) GetReportChapterById(reportChapterId in
 // @param updateSort string
 // @return err error
 func (chapterChapterInfo *ReportChapter) UpdateReportChapterSortByReportId(reportId, reportChapterId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	pars := make([]interface{}, 0)
 	sql := ` update report_chapter set sort = ` + updateSort + ` WHERE report_id = ? AND sort > ?`
 	pars = append(pars, reportId, nowSort)
@@ -521,9 +516,7 @@ func (chapterChapterInfo *ReportChapter) UpdateReportChapterSortByReportId(repor
 		sql += ` or ( report_chapter_id > ?  and sort = ? )`
 		pars = append(pars, reportChapterId, nowSort)
 	}
-
-	_, err = o.Raw(sql, pars).Exec()
-
+	err = o.Exec(sql, pars...).Error
 	return
 }
 
@@ -536,9 +529,9 @@ func (chapterChapterInfo *ReportChapter) UpdateReportChapterSortByReportId(repor
 // @return item *ReportChapter
 // @return err error
 func (chapterChapterInfo *ReportChapter) GetFirstReportChapterByReportId(reportId int) (item *ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter WHERE 1 = 1 AND report_id = ? ORDER BY sort ASC, report_chapter_id ASC LIMIT 1`
-	err = o.Raw(sql, reportId).QueryRow(&item)
+	err = o.Raw(sql, reportId).First(&item).Error
 	return
 }
 
@@ -551,10 +544,16 @@ func (chapterChapterInfo *ReportChapter) GetFirstReportChapterByReportId(reportI
 // @return maxSort int
 // @return err error
 func (chapterChapterInfo *ReportChapter) GetMaxSortByReportId(reportId int) (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT max(sort) AS sort FROM report_chapter WHERE report_id = ?`
-	err = o.Raw(sql, reportId).QueryRow(&maxSort)
-
+	var maxNull sql2.NullInt64
+	err = o.Raw(sql, reportId).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
@@ -566,9 +565,8 @@ func (chapterChapterInfo *ReportChapter) GetMaxSortByReportId(reportId int) (max
 // @param cols []string
 // @return err error
 func (chapterChapterInfo *ReportChapter) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(chapterChapterInfo, cols...)
-
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Select(cols).Updates(chapterChapterInfo).Error
 	return
 }
 
@@ -580,10 +578,9 @@ type DelReportChapterReq struct {
 
 // GetAllReportChapter 获取所有的报告章节
 func GetAllReportChapter() (items []*ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter ORDER BY report_chapter_id asc `
-	_, err = o.Raw(sql).QueryRows(&items)
-
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -596,20 +593,26 @@ func GetAllReportChapter() (items []*ReportChapter, err error) {
 // @return count int
 // @return err error
 func GetCountReportChapterByCondition(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT COUNT(1) AS count FROM report_chapter WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
-	err = o.Raw(sql, pars).QueryRow(&count)
-
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
 // GetNewestPreReportChapterByClassifyIdAndTypeId 获取分类下往期中最新发布的系统章节
 func GetNewestPreReportChapterByClassifyIdAndTypeId(classifyId, typeId int) (item *ReportChapter, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT a.* FROM report_chapter AS a JOIN report AS b ON a.report_id = b.id WHERE a.classify_id_first = ? AND a.type_id = ? AND a.publish_state = 2 AND b.state IN (2,6) ORDER BY a.publish_time DESC LIMIT 1`
-	err = o.Raw(sql, classifyId, typeId).QueryRow(&item)
+	err = o.Raw(sql, classifyId, typeId).First(&item).Error
 	return
 }

+ 16 - 15
models/report_chapter_ticker.go

@@ -1,13 +1,13 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type ReportChapterTicker struct {
-	Id              int       `orm:"column(id);pk" description:"主键ID"`
+	Id              int       `gorm:"column:id;primaryKey;autoIncrement" description:"主键ID"`
 	ReportChapterId int       `description:"报告章节ID"`
 	Sort            int       `description:"排序"`
 	Ticker          string    `description:"ticker"`
@@ -15,34 +15,36 @@ type ReportChapterTicker struct {
 	UpdateTime      time.Time `description:"更新时间"`
 }
 
-// 新增章节ticker
+// InsertChapterTicker 新增章节ticker
 func InsertChapterTicker(tickerInfo *ReportChapterTicker) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(tickerInfo)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(tickerInfo).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(tickerInfo.Id)
 	return
 }
 
 // GetTickerListByReportChapterId 根据章节ID获取ticker列表
 func GetTickerListByReportChapterId(reportChapterId int) (list []*ReportChapterTicker, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_ticker WHERE report_chapter_id = ? ORDER BY sort ASC `
-	_, err = o.Raw(sql, reportChapterId).QueryRows(&list)
-
+	err = o.Raw(sql, reportChapterId).Find(&list).Error
 	return
 }
 
 // ClearReportChapterTicker 清空章节ticker
 func ClearReportChapterTicker(reportChapterId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` DELETE FROM report_chapter_ticker WHERE report_chapter_id = ? `
-	_, err = o.Raw(sql, reportChapterId).Exec()
-
+	err = o.Exec(sql, reportChapterId).Error
 	return
 }
 
 // DailyBaseColumn 基础列
 type DailyBaseColumn struct {
-	BaseColumnId          int       `orm:"column(base_column_id)" description:"主键ID"`
+	BaseColumnId          int       `gorm:"column:base_column_id;primaryKey;autoIncrement" description:"主键ID"`
 	TableName             string    `description:"表名"`
 	BaseColumnName        string    `description:"列名称"`
 	BaseColumnChapterType string    `description:"列类型"`
@@ -58,7 +60,7 @@ type DailyBaseColumn struct {
 
 // GetDailyBaseColumnList 获取基础列列表
 func GetDailyBaseColumnList(keyword string, typeId int) (list []*DailyBaseColumn, err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := ` SELECT * FROM daily_base_column WHERE 1 = 1 `
 	pars := make([]interface{}, 0)
 	if keyword != "" {
@@ -67,7 +69,6 @@ func GetDailyBaseColumnList(keyword string, typeId int) (list []*DailyBaseColumn
 	}
 	pars = append(pars, typeId)
 	sql += ` AND report_chapter_type_id = ? `
-	_, err = o.Raw(sql, pars).QueryRows(&list)
-
+	err = o.Raw(sql, pars...).Find(&list).Error
 	return
 }

+ 85 - 87
models/report_chapter_type.go

@@ -1,14 +1,15 @@
 package models
 
 import (
+	sql2 "database/sql"
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type ReportChapterType struct {
-	ReportChapterTypeId        int       `orm:"column(report_chapter_type_id);pk" description:"报告章节类型id"`
+	ReportChapterTypeId        int       `gorm:"column:report_chapter_type_id;primaryKey;autoIncrement" description:"报告章节类型id"`
 	ReportChapterTypeKey       string    `description:"章节key"`
 	ReportChapterTypeThumb     string    `description:"H5展示的图片"`
 	BannerUrl                  string    `description:"banner显示图片"`
@@ -35,12 +36,7 @@ type ReportChapterType struct {
 }
 
 func (r *ReportChapterType) Create() (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	id, err := o.Insert(r)
-	if err != nil {
-		return
-	}
-	r.ReportChapterTypeId = int(id)
+	err = global.DbMap[utils.DbNameReport].Create(r).Error
 	return
 }
 
@@ -55,25 +51,19 @@ func (r *ReportChapterType) MultiCreate(addList []*ReportChapterType) (err error
 	if len(addList) <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.InsertMulti(500, addList)
-
+	o := global.DbMap[utils.DbNameReport]
+	err = o.CreateInBatches(addList, utils.MultiAddNum).Error
 	return
 }
 
 func (r *ReportChapterType) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	_, err = o.Update(r, cols...)
+	err = global.DbMap[utils.DbNameReport].Select(cols).Updates(r).Error
 	return
 }
 
 // DeleteReportChapterType 删除章节类型及相关权限
 func DeleteReportChapterType(typeId int, reportType string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -84,64 +74,64 @@ func DeleteReportChapterType(typeId int, reportType string) (err error) {
 
 	// 删除章节类型
 	sql := `DELETE FROM report_chapter_type WHERE report_chapter_type_id = ? LIMIT 1`
-	_, err = to.Raw(sql, typeId).Exec()
+	err = to.Exec(sql, typeId).Error
 
 	// 删除章节类型权限
 	sql = `DELETE FROM report_chapter_type_permission WHERE report_chapter_type_id = ?`
-	_, err = to.Raw(sql, typeId).Exec()
+	err = to.Exec(sql, typeId).Error
 
 	// 周报-删除实际权限
 	if reportType == utils.REPORT_TYPE_WEEK {
 		sql = `DELETE FROM chart_permission_chapter_mapping WHERE report_chapter_type_id = ? AND research_type = ?`
-		_, err = to.Raw(sql, typeId, reportType).Exec()
+		err = to.Exec(sql, typeId, reportType).Error
 	}
 	return
 }
 
 // GetReportChapterTypeById 获取章节类型
 func GetReportChapterTypeById(reportChapterTypeId int) (item *ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE report_chapter_type_id = ? `
-	err = o.Raw(sql, reportChapterTypeId).QueryRow(&item)
+	err = o.Raw(sql, reportChapterTypeId).First(&item).Error
 	return
 }
 
 // GetReportChapterTypeList 获取章节类型列表
 func GetReportChapterTypeList() (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 1 `
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 // GetReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
 func GetReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ? AND enabled = 1`
-	_, err = o.Raw(sql, researchType).QueryRows(&list)
+	err = o.Raw(sql, researchType).Find(&list).Error
 	return
 }
 
 // GetAllReportChapterTypeListByResearchType 通过报告类型获取章节类型列表
 func GetAllReportChapterTypeListByResearchType(researchType string) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE research_type = ?`
-	_, err = o.Raw(sql, researchType).QueryRows(&list)
+	err = o.Raw(sql, researchType).Find(&list).Error
 	return
 }
 
 // GetAllReportChapterTypeList 通过传入的条件获取所有的章节类型列表
 func GetAllReportChapterTypeList(condition string, pars []interface{}) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE 1=1 `
 	sql += condition
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = o.Raw(sql, pars...).Find(&list).Error
 	return
 }
 
 // GetEnableReportChapterTypeList 获取未暂停的章节类型列表
 func GetEnableReportChapterTypeList(researchType string) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT
 				*
 			FROM
@@ -157,7 +147,7 @@ func GetEnableReportChapterTypeList(researchType string) (list []*ReportChapterT
 					NOW() NOT BETWEEN pause_start_time AND pause_end_time
 				)
 			) `
-	_, err = o.Raw(sql, researchType).QueryRows(&list)
+	err = o.Raw(sql, researchType).Find(&list).Error
 	return
 }
 
@@ -170,9 +160,9 @@ type DayWeekReportPauseTime struct {
 
 // GetDayWeekReportPauseTimeList 获取晨报周报暂停时间
 func GetDayWeekReportPauseTimeList() (list []*DayWeekReportPauseTime, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT research_type, MAX(a.pause_start_time) AS pause_start_time, MAX(a.pause_end_time) AS pause_end_time FROM report_chapter_type AS a WHERE a.is_set = 1 GROUP BY a.research_type`
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
@@ -195,17 +185,16 @@ type SetDayWeekReportEnableUpdateRuleReq struct {
 }
 
 // ResetDayWeekReportUpdateRule 重置章节类型的暂停时间
-func ResetDayWeekReportUpdateRule(researchType string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 WHERE research_type = ?`
-	_, err = o.Raw(sql, researchType).Exec()
-	return
-}
+//func ResetDayWeekReportUpdateRule(researchType string) (err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 WHERE research_type = ?`
+//	err = o.Exec(sql, researchType).Error
+//	return
+//}
 
 // SetDayWeekReportUpdateRule 设置章节类型的暂停时间
 func SetDayWeekReportUpdateRule(researchType string, list []DayWeekReportUpdateRule) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
+	to := global.DbMap[utils.DbNameReport].Begin()
 	if err != nil {
 		return
 	}
@@ -219,7 +208,7 @@ func SetDayWeekReportUpdateRule(researchType string, list []DayWeekReportUpdateR
 
 	// 先将所有品种的状态变更为启用
 	sql := ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 WHERE research_type = ?`
-	_, err = to.Raw(sql, researchType).Exec()
+	err = to.Exec(sql, researchType).Error
 	if err != nil {
 		return
 	}
@@ -229,7 +218,7 @@ func SetDayWeekReportUpdateRule(researchType string, list []DayWeekReportUpdateR
 			continue
 		}
 		tmpSql := ` UPDATE report_chapter_type SET pause_start_time = ?, pause_end_time = ?, is_set = 1 WHERE research_type = ? AND report_chapter_type_id = ? `
-		_, err = to.Raw(tmpSql, v.PauseStartTime, v.PauseEndTime, researchType, v.ReportChapterTypeId).Exec()
+		err = to.Exec(tmpSql, v.PauseStartTime, v.PauseEndTime, researchType, v.ReportChapterTypeId).Error
 		if err != nil {
 			return
 		}
@@ -240,11 +229,7 @@ func SetDayWeekReportUpdateRule(researchType string, list []DayWeekReportUpdateR
 
 // SetDayWeekReportEnableUpdateRule 设置章节类型的禁用状态
 func SetDayWeekReportEnableUpdateRule(dayReportChapterTypeIdList, weekReportChapterTypeIdList []string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -256,7 +241,7 @@ func SetDayWeekReportEnableUpdateRule(dayReportChapterTypeIdList, weekReportChap
 		researchType := `day`
 		// 先将所有品种的状态变更为启用
 		sql := ` UPDATE report_chapter_type SET enabled = 1 WHERE research_type = ?`
-		_, err = to.Raw(sql, researchType).Exec()
+		err = to.Exec(sql, researchType).Error
 		if err != nil {
 			return
 		}
@@ -265,7 +250,7 @@ func SetDayWeekReportEnableUpdateRule(dayReportChapterTypeIdList, weekReportChap
 		num := len(dayReportChapterTypeIdList)
 		if num > 0 {
 			sql = ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 , enabled = 0 WHERE research_type = ? AND report_chapter_type_id IN (` + utils.GetOrmInReplace(num) + `) `
-			_, err = to.Raw(sql, researchType, dayReportChapterTypeIdList).Exec()
+			err = to.Exec(sql, researchType, dayReportChapterTypeIdList).Error
 		}
 	}
 
@@ -273,7 +258,7 @@ func SetDayWeekReportEnableUpdateRule(dayReportChapterTypeIdList, weekReportChap
 		researchType := `week`
 		// 先将所有品种的状态变更为启用
 		sql := ` UPDATE report_chapter_type SET enabled = 1 WHERE research_type = ?`
-		_, err = to.Raw(sql, researchType).Exec()
+		err = to.Exec(sql, researchType).Error
 		if err != nil {
 			return
 		}
@@ -282,7 +267,7 @@ func SetDayWeekReportEnableUpdateRule(dayReportChapterTypeIdList, weekReportChap
 		num := len(weekReportChapterTypeIdList)
 		if num > 0 {
 			sql = ` UPDATE report_chapter_type SET pause_start_time = null, pause_end_time = null, is_set = 0 , enabled = 0 WHERE research_type = ? AND report_chapter_type_id IN (` + utils.GetOrmInReplace(num) + `) `
-			_, err = to.Raw(sql, researchType, weekReportChapterTypeIdList).Exec()
+			err = to.Exec(sql, researchType, weekReportChapterTypeIdList).Error
 		}
 	}
 	return
@@ -298,17 +283,17 @@ type StopUpdateReportChapterTypeResp struct {
 
 // GetStopUpdateReportChapterTypeListByResearchType 获取暂停更新章节类型列表
 func GetStopUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE is_set = 1 AND pause_end_time >= ? AND enabled = 1 `
-	_, err = o.Raw(sql, time.Now().Format(utils.FormatDate)).QueryRows(&list)
+	err = o.Raw(sql, time.Now().Format(utils.FormatDate)).Find(&list).Error
 	return
 }
 
 // GetDisableUpdateReportChapterTypeListByResearchType 获取停止更新的章节类型列表
 func GetDisableUpdateReportChapterTypeListByResearchType() (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE enabled = 0`
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
@@ -323,21 +308,21 @@ type ReportChapterTypeListResp struct {
 }
 
 // GetReportChapterTypeCount 获取章节类型总数
-func GetReportChapterTypeCount(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT COUNT(1) FROM report_chapter_type WHERE 1 = 1 `
-	sql += condition
-	err = o.Raw(sql, pars).QueryRow(&count)
-	return
-}
+//func GetReportChapterTypeCount(condition string, pars []interface{}) (count int, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` SELECT COUNT(1) FROM report_chapter_type WHERE 1 = 1 `
+//	sql += condition
+//	err = o.Raw(sql, pars...).QueryRow(&count)
+//	return
+//}
 
 // GetReportChapterTypePageList 获取章节类型列表
 func GetReportChapterTypePageList(condition string, pars []interface{}) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE 1 = 1 `
 	sql += condition
 	sql += ` ORDER BY sort ASC, created_time DESC`
-	_, err = o.Raw(sql, pars).QueryRows(&list)
+	err = o.Raw(sql, pars...).Find(&list).Error
 	return
 }
 
@@ -407,63 +392,76 @@ type ReportChapterTypeEnabledReq struct {
 
 // GetReportChapterTypeByCondition 获取章节类型
 func GetReportChapterTypeByCondition(condition string, pars []interface{}) (item *ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE 1 = 1 `
 	sql += condition
 	sql += ` LIMIT 1`
-	err = o.Raw(sql, pars).QueryRow(&item)
+	err = o.Raw(sql, pars...).First(&item).Error
 	return
 }
 
 // GetMaxSort 获取最大的排序值
 func (r *ReportChapterType) GetMaxSort() (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT max(sort) AS sort FROM report_chapter_type`
-	err = o.Raw(sql).QueryRow(&maxSort)
+	var maxNull sql2.NullInt64
+	err = o.Raw(sql).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // GetMaxSortByResearchType 获取最大的排序值
 func (r *ReportChapterType) GetMaxSortByResearchType(researchType string) (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `SELECT max(sort) AS sort FROM report_chapter_type WHERE research_type = ?`
-	err = o.Raw(sql, researchType).QueryRow(&maxSort)
+	var maxNull sql2.NullInt64
+	err = o.Raw(sql, researchType).Scan(&maxNull).Error
+	if err != nil {
+		return
+	}
+	if maxNull.Valid {
+		maxSort = int(maxNull.Int64)
+	}
 	return
 }
 
 // UpdateReportChapterTypeSortByResearchType 根据父类id更新排序
 func UpdateReportChapterTypeSortByResearchType(researchType string, reportChapterTypeId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` update report_chapter_type set sort = ` + updateSort + ` WHERE research_type=? AND sort > ?`
 	if reportChapterTypeId > 0 {
 		sql += ` or ( report_chapter_type_id > ` + fmt.Sprint(reportChapterTypeId) + ` and sort = ` + fmt.Sprint(nowSort) + `)`
 	}
-
-	_, err = o.Raw(sql, researchType, nowSort).Exec()
+	err = o.Exec(sql, researchType, nowSort).Error
 	return
 }
 
-// GetFirstReportChapterTypeByParentId 获取当前父级分类下,且排序数相同 的排序第一条的数据
+// GetFirstReportChapterTypeByResearchType 获取当前父级分类下,且排序数相同 的排序第一条的数据
 func (r *ReportChapterType) GetFirstReportChapterTypeByResearchType(researchType string) (item *ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE 1 = 1 AND research_type = ? ORDER BY sort ASC, report_chapter_type_id ASC LIMIT 1`
-	err = o.Raw(sql, researchType).QueryRow(&item)
+	err = o.Raw(sql, researchType).First(&item).Error
 	return
 }
 
 // GetReportChapterTypeById 获取章节类型
 func (r *ReportChapterType) GetReportChapterTypeById(reportChapterTypeId int) (item *ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE report_chapter_type_id = ?`
-	err = o.Raw(sql, reportChapterTypeId).QueryRow(&item)
+	err = o.Raw(sql, reportChapterTypeId).First(&item).Error
 	return
 }
 
 // SetEnabled 更新启动禁用
 func (r *ReportChapterType) SetEnabled(id, enabled int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` update report_chapter_type set enabled = ? WHERE report_chapter_type_id = ?`
-	_, err = o.Raw(sql, enabled, id).Exec()
+	err = o.Exec(sql, enabled, id).Error
 	return
 }
 
@@ -475,9 +473,9 @@ func (r *ReportChapterType) SetEnabled(id, enabled int) (err error) {
 // @return list []*ReportChapterType
 // @return err error
 func GetReportChapterTypeListByClassifyId(classifyId int) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE report_classify_id = ? AND enabled = 1`
-	_, err = o.Raw(sql, classifyId).QueryRows(&list)
+	err = o.Raw(sql, classifyId).Find(&list).Error
 	return
 }
 
@@ -489,8 +487,8 @@ func GetReportChapterTypeListByClassifyId(classifyId int) (list []*ReportChapter
 // @return list []*ReportChapterType
 // @return err error
 func GetAllReportChapterTypeListByClassifyId(classifyId int) (list []*ReportChapterType, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type WHERE report_classify_id = ? `
-	_, err = o.Raw(sql, classifyId).QueryRows(&list)
+	err = o.Raw(sql, classifyId).Find(&list).Error
 	return
 }

+ 19 - 23
models/report_chapter_type_permission.go

@@ -1,13 +1,13 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 type ReportChapterTypePermission struct {
-	Id                    int       `orm:"column(id);pk" description:"主键ID"`
+	Id                    int       `gorm:"column:id;primaryKey;autoIncrement" description:"主键ID"`
 	ReportChapterTypeId   int       `description:"报告章节类型ID"`
 	ReportChapterTypeName string    `description:"章节名称"`
 	ChartPermissionId     int       `description:"大分类ID"`
@@ -24,19 +24,15 @@ type ReportChapterTypePermission struct {
 // @return list []*ReportChapterTypePermission
 // @return err error
 func GetChapterTypePermissionByReportChapterTypeId(typeId int) (list []*ReportChapterTypePermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type_permission WHERE report_chapter_type_id = ?  ORDER BY chart_permission_id ASC `
-	_, err = o.Raw(sql, typeId).QueryRows(&list)
+	err = o.Raw(sql, typeId).Find(&list).Error
 	return
 }
 
 // SetReportChapterTypePermission 设置报告章节类型权限
 func SetReportChapterTypePermission(chapterTypeId int, newPermissions []*ReportChapterTypePermission) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -47,14 +43,14 @@ func SetReportChapterTypePermission(chapterTypeId int, newPermissions []*ReportC
 
 	// 删除原章节类型权限
 	sql := `DELETE FROM report_chapter_type_permission WHERE report_chapter_type_id = ?`
-	_, err = to.Raw(sql, chapterTypeId).Exec()
+	err = to.Exec(sql, chapterTypeId).Error
 	if err != nil {
 		return
 	}
 
 	// 新增章节类型权限
 	if len(newPermissions) > 0 {
-		_, err = to.InsertMulti(len(newPermissions), newPermissions)
+		err = to.CreateInBatches(newPermissions, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -64,14 +60,14 @@ func SetReportChapterTypePermission(chapterTypeId int, newPermissions []*ReportC
 	//if researchType == utils.REPORT_TYPE_WEEK {
 	//	// 删除原权限
 	//	sql = `DELETE FROM chart_permission_chapter_mapping WHERE report_chapter_type_id = ? AND research_type = ?`
-	//	_, err = to.Raw(sql, chapterTypeId, researchType).Exec()
+	//	err = to.Raw(sql, chapterTypeId, researchType).Error
 	//	if err != nil {
 	//		return
 	//	}
 	//
 	//	// 新增权限
 	//	if len(newWeekPermissions) > 0 {
-	//		_, err = to.InsertMulti(len(newWeekPermissions), newWeekPermissions)
+	//		err = to.InsertMulti(len(newWeekPermissions), newWeekPermissions)
 	//		if err != nil {
 	//			return
 	//		}
@@ -82,12 +78,12 @@ func SetReportChapterTypePermission(chapterTypeId int, newPermissions []*ReportC
 }
 
 // GetChapterTypePermissionByResearchType 根据章节类型ID及研报类型获取章节类型权限列表
-func GetChapterTypePermissionByResearchType(researchType string) (list []*ReportChapterTypePermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := ` SELECT * FROM report_chapter_type_permission WHERE research_type = ? ORDER BY chart_permission_id ASC `
-	_, err = o.Raw(sql, researchType).QueryRows(&list)
-	return
-}
+//func GetChapterTypePermissionByResearchType(researchType string) (list []*ReportChapterTypePermission, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := ` SELECT * FROM report_chapter_type_permission WHERE research_type = ? ORDER BY chart_permission_id ASC `
+//	err = o.Raw(sql, researchType).Find(&list).Error
+//	return
+//}
 
 // GetChapterTypePermissionByChapterTypeIdList
 // @Description: 根据章节类型ID列表获取章节类型权限列表
@@ -101,9 +97,9 @@ func GetChapterTypePermissionByChapterTypeIdList(chapterTypeIdList []int) (list
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type_permission WHERE report_chapter_type_id in (` + utils.GetOrmInReplace(num) + `) ORDER BY chart_permission_id ASC `
-	_, err = o.Raw(sql, chapterTypeIdList).QueryRows(&list)
+	err = o.Raw(sql, chapterTypeIdList).Find(&list).Error
 	return
 }
 
@@ -114,8 +110,8 @@ func GetChapterTypePermissionByChapterTypeIdList(chapterTypeIdList []int) (list
 // @return list []*ReportChapterTypePermission
 // @return err error
 func GetAllChapterTypePermission() (list []*ReportChapterTypePermission, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := ` SELECT * FROM report_chapter_type_permission ORDER BY chart_permission_id ASC `
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }

+ 45 - 47
models/report_grant.go

@@ -2,13 +2,11 @@ package models
 
 import (
 	"time"
-
-	"github.com/beego/beego/v2/client/orm"
 )
 
 // ReportGrant Ppt授权表
 type ReportGrant struct {
-	GrantId      int64     `orm:"column(grant_id);pk;auto" description:"自增序号"`
+	GrantId      int64     `gorm:"column:grant_id;primaryKey;autoIncrement" description:"自增序号"`
 	ReportId     int64     `description:"report ID"`
 	DepartmentId int64     `description:"授权部门id"`
 	GrantAdminId int64     `description:"授权部门id"`
@@ -16,51 +14,51 @@ type ReportGrant struct {
 }
 
 // GetReportGrantInfo 获取已经有权限的report列表
-func GetReportGrantInfo(reportId int) (list []*ReportGrant, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM report_grant WHERE report_id=? `
-	_, err = o.Raw(sql, reportId).QueryRows(&list)
-	return
-}
+//func GetReportGrantInfo(reportId int) (list []*ReportGrant, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT * FROM report_grant WHERE report_id=? `
+//	_, err = o.Raw(sql, reportId).QueryRows(&list)
+//	return
+//}
 
 // MultiAddReportGrant 批量添加授权记录
-func MultiAddReportGrant(reportId int, list []*ReportGrant) (err error) {
-	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(len(list), list)
-		if tmpErr != nil {
-			err = tmpErr
-			return
-		}
-	}
-
-	return
-}
+//func MultiAddReportGrant(reportId int, list []*ReportGrant) (err error) {
+//	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(len(list), list)
+//		if tmpErr != nil {
+//			err = tmpErr
+//			return
+//		}
+//	}
+//
+//	return
+//}
 
 // DeleteReportGrant 移除授权记录
-func DeleteReportGrant(reportId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := "DELETE from report_grant where report_id=?"
-	_, err = o.Raw(sql, reportId).Exec()
-
-	return
-}
+//func DeleteReportGrant(reportId int) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := "DELETE from report_grant where report_id=?"
+//	_, err = o.Raw(sql, reportId).Exec()
+//
+//	return
+//}

+ 6 - 10
models/report_ppt_img.go

@@ -1,13 +1,14 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 // ReportPptImg Ppt转报告的图片记录表
 type ReportPptImg struct {
-	ReportPptImgId  int       `orm:"column(report_ppt_img_id);pk;auto" description:"自增id"`
+	ReportPptImgId  int       `gorm:"column:report_ppt_img_id;primaryKey;autoIncrement" description:"自增id"`
 	PptId           int       `description:"ppt的id"`
 	ReportId        int       `description:"关联的报告ID"`
 	ReportChapterId int       `description:"关联的报告章节ID"`
@@ -20,12 +21,7 @@ func AddAndEditMultiReportPptImg(pptId int, reportPptImgList []*ReportPptImg) (e
 	if len(reportPptImgList) < 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("rddp")
-
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -34,10 +30,10 @@ func AddAndEditMultiReportPptImg(pptId int, reportPptImgList []*ReportPptImg) (e
 		}
 	}()
 	sql := ` DELETE FROM report_ppt_img WHERE ppt_id = ?`
-	_, err = to.Raw(sql, pptId).Exec()
+	err = to.Exec(sql, pptId).Error
 	if err != nil {
 		return
 	}
-	_, err = to.InsertMulti(len(reportPptImgList), reportPptImgList)
+	err = to.CreateInBatches(reportPptImgList, utils.MultiAddNum).Error
 	return
 }

+ 9 - 4
models/report_state_record.go

@@ -1,12 +1,13 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 type ReportStateRecord struct {
-	Id         int       `orm:"column(id)" description:"Id"`
+	Id         int       `gorm:"column:id;primaryKey;autoIncrement" description:"Id"`
 	ReportId   int       // 研报id
 	ReportType int       // 报告类型'报告类型:1中文研报2智能研报'
 	State      int       // 状态:1-未提交 2-待审核 3-驳回 4-审核
@@ -16,7 +17,11 @@ type ReportStateRecord struct {
 }
 
 func AddReportStateRecord(item *ReportStateRecord) (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	lastId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	lastId = int64(item.Id)
 	return
 }

+ 46 - 65
models/report_v2.go

@@ -1,10 +1,11 @@
 package models
 
 import (
+	sql2 "database/sql"
 	"errors"
+	"eta/eta_api/global"
 	"eta/eta_api/models/report"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 )
 
 // AddReportAndChapter
@@ -17,11 +18,7 @@ import (
 // @return reportId int64
 // @return err error
 func AddReportAndChapter(reportItem *Report, allGrantUserList []*report.ReportGrant, addReportChapterList []AddReportChapter) (reportId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -31,18 +28,18 @@ func AddReportAndChapter(reportItem *Report, allGrantUserList []*report.ReportGr
 	}()
 
 	// 新增报告
-	reportId, err = to.Insert(reportItem)
+	err = to.Create(reportItem).Error
 	if err != nil {
 		return
 	}
-	reportItem.Id = int(reportId)
+	reportId = int64(reportItem.Id)
 
 	// 新增报告授权
 	if len(allGrantUserList) > 0 {
 		for _, v := range allGrantUserList {
 			v.ReportId = reportItem.Id
 		}
-		_, err = to.InsertMulti(500, allGrantUserList)
+		err = to.CreateInBatches(allGrantUserList, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -54,12 +51,11 @@ func AddReportAndChapter(reportItem *Report, allGrantUserList []*report.ReportGr
 			// 新增章节
 			chapterItem := addReportChapter.ReportChapter
 			chapterItem.ReportId = int(reportId)
-			cpId, tmpErr := to.Insert(chapterItem)
+			tmpErr := to.Create(chapterItem).Error
 			if tmpErr != nil {
 				err = tmpErr
 				return
 			}
-			chapterItem.ReportChapterId = int(cpId)
 
 			// 新增章节授权
 			if len(addReportChapter.GrantList) > 0 {
@@ -67,7 +63,7 @@ func AddReportAndChapter(reportItem *Report, allGrantUserList []*report.ReportGr
 				for _, v := range grantList {
 					v.ReportChapterId = chapterItem.ReportChapterId
 				}
-				_, err = to.InsertMulti(500, grantList)
+				err = to.CreateInBatches(grantList, utils.MultiAddNum).Error
 				if err != nil {
 					return
 				}
@@ -79,7 +75,7 @@ func AddReportAndChapter(reportItem *Report, allGrantUserList []*report.ReportGr
 				for _, v := range permissionList {
 					v.ReportChapterId = chapterItem.ReportChapterId
 				}
-				_, err = to.InsertMulti(500, permissionList)
+				err = to.CreateInBatches(permissionList, utils.MultiAddNum).Error
 				if err != nil {
 					return
 				}
@@ -101,11 +97,7 @@ func AddReportAndChapter(reportItem *Report, allGrantUserList []*report.ReportGr
 // @param delReportGrantIdList []int
 // @return err error
 func EditReportAndPermission(reportInfo *Report, updateCols []string, addReportGrantList []*report.ReportGrant, delReportGrantIdList []int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -116,7 +108,7 @@ func EditReportAndPermission(reportInfo *Report, updateCols []string, addReportG
 
 	// 变更报告章节信息
 	if len(updateCols) > 0 {
-		_, err = to.Update(reportInfo, updateCols...)
+		err = to.Select(updateCols).Updates(reportInfo).Error
 		if err != nil {
 			return
 		}
@@ -124,7 +116,7 @@ func EditReportAndPermission(reportInfo *Report, updateCols []string, addReportG
 
 	// 新增报告授权用户
 	if len(addReportGrantList) > 0 {
-		_, err = to.InsertMulti(500, addReportGrantList)
+		err = to.CreateInBatches(addReportGrantList, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -134,7 +126,7 @@ func EditReportAndPermission(reportInfo *Report, updateCols []string, addReportG
 	delNum := len(delReportGrantIdList)
 	if delNum > 0 {
 		sql := `DELETE FROM report_grant WHERE grant_id IN (` + utils.GetOrmInReplace(delNum) + `)`
-		_, err = to.Raw(sql, delReportGrantIdList).Exec()
+		err = to.Exec(sql, delReportGrantIdList).Error
 		if err != nil {
 			return
 		}
@@ -152,11 +144,7 @@ func EditReportAndPermission(reportInfo *Report, updateCols []string, addReportG
 // @param addChapterPermissionMap []*report.ReportChapterPermissionMapping
 // @return err error
 func AddChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, addReportChapterGrantList []*report.ReportChapterGrant, addChapterPermissionMap []*report.ReportChapterPermissionMapping) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -165,18 +153,17 @@ func AddChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, addReport
 		}
 	}()
 
-	lastId, err := to.Insert(reportChapterInfo)
+	err = to.Create(reportChapterInfo).Error
 	if err != nil {
 		return
 	}
-	reportChapterInfo.ReportChapterId = int(lastId)
 
 	// 新增报告章节授权用户
 	if len(addReportChapterGrantList) > 0 {
 		for k, _ := range addReportChapterGrantList {
 			addReportChapterGrantList[k].ReportChapterId = reportChapterInfo.ReportChapterId
 		}
-		_, err = to.InsertMulti(500, addReportChapterGrantList)
+		err = to.CreateInBatches(addReportChapterGrantList, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -188,7 +175,7 @@ func AddChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, addReport
 			addChapterPermissionMap[k].ReportChapterId = reportChapterInfo.ReportChapterId
 		}
 
-		_, err = to.InsertMulti(500, addChapterPermissionMap)
+		err = to.CreateInBatches(addChapterPermissionMap, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -209,11 +196,7 @@ func AddChapterBaseInfoAndPermission(reportChapterInfo *ReportChapter, addReport
 // @param delChapterPermissionMappingIdList []int
 // @return err error
 func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *ReportChapter, updateCols []string, addReportChapterGrantList []*report.ReportChapterGrant, addChapterPermissionMap []*report.ReportChapterPermissionMapping, delReportChapterGrantIdList, delChapterPermissionMappingIdList []int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -224,7 +207,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 
 	// 变更报告的最后编辑人信息
 	{
-		_, err = to.Update(reportInfo, "LastModifyAdminId", "LastModifyAdminName", "ModifyTime")
+		err = to.Select([]string{"LastModifyAdminId", "LastModifyAdminName", "ModifyTime"}).Updates(reportInfo).Error
 		if err != nil {
 			return
 		}
@@ -232,7 +215,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 
 	// 变更报告章节信息
 	if len(updateCols) > 0 {
-		_, err = to.Update(reportChapterInfo, updateCols...)
+		err = to.Select(updateCols).Updates(reportChapterInfo).Error
 		if err != nil {
 			return
 		}
@@ -240,7 +223,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 
 	// 新增报告章节授权用户
 	if len(addReportChapterGrantList) > 0 {
-		_, err = to.InsertMulti(500, addReportChapterGrantList)
+		err = to.CreateInBatches(addReportChapterGrantList, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -250,7 +233,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 	delNum := len(delReportChapterGrantIdList)
 	if delNum > 0 {
 		sql := `DELETE FROM report_chapter_grant WHERE grant_id IN (` + utils.GetOrmInReplace(delNum) + `)`
-		_, err = to.Raw(sql, delReportChapterGrantIdList).Exec()
+		err = to.Exec(sql, delReportChapterGrantIdList).Error
 		if err != nil {
 			return
 		}
@@ -258,7 +241,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 
 	// 新增报告章节的品种配置
 	if len(addChapterPermissionMap) > 0 {
-		_, err = to.InsertMulti(500, addChapterPermissionMap)
+		err = to.CreateInBatches(addChapterPermissionMap, utils.MultiAddNum).Error
 		if err != nil {
 			return
 		}
@@ -268,7 +251,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 	delNum = len(delChapterPermissionMappingIdList)
 	if delNum > 0 {
 		sql := `DELETE FROM report_chapter_permission_mapping WHERE report_chapter_permission_mapping_id IN (` + utils.GetOrmInReplace(delNum) + `)`
-		_, err = to.Raw(sql, delChapterPermissionMappingIdList).Exec()
+		err = to.Exec(sql, delChapterPermissionMappingIdList).Error
 		if err != nil {
 			return
 		}
@@ -286,11 +269,7 @@ func EditChapterBaseInfoAndPermission(reportInfo *Report, reportChapterInfo *Rep
 // @param reportChapterInfo *ReportChapter
 // @return err error
 func DelChapterAndPermission(reportInfo *Report, updateReportCols []string, reportChapterInfo *ReportChapter) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -301,7 +280,7 @@ func DelChapterAndPermission(reportInfo *Report, updateReportCols []string, repo
 
 	// 变更报告信息
 	if len(updateReportCols) > 0 {
-		_, err = to.Update(reportInfo, updateReportCols...)
+		err = to.Select(updateReportCols).Updates(reportInfo).Error
 		if err != nil {
 			return
 		}
@@ -309,7 +288,7 @@ func DelChapterAndPermission(reportInfo *Report, updateReportCols []string, repo
 
 	// 删除报告对应章节
 	{
-		_, err = to.Delete(reportChapterInfo)
+		err = to.Delete(reportChapterInfo).Error
 		if err != nil {
 			return
 		}
@@ -318,7 +297,7 @@ func DelChapterAndPermission(reportInfo *Report, updateReportCols []string, repo
 	// 删除报告章节的授权用户权限
 	{
 		sql := `DELETE FROM report_chapter_grant WHERE report_chapter_id = ? `
-		_, err = to.Raw(sql, reportChapterInfo.ReportChapterId).Exec()
+		err = to.Exec(sql, reportChapterInfo.ReportChapterId).Error
 		if err != nil {
 			return
 		}
@@ -327,7 +306,7 @@ func DelChapterAndPermission(reportInfo *Report, updateReportCols []string, repo
 	// 删除报告章节的品种配置
 	{
 		sql := `DELETE FROM report_chapter_permission_mapping WHERE report_chapter_id = ? `
-		_, err = to.Raw(sql, reportChapterInfo.ReportChapterId).Exec()
+		err = to.Exec(sql, reportChapterInfo.ReportChapterId).Error
 		if err != nil {
 			return
 		}
@@ -345,14 +324,19 @@ func DelChapterAndPermission(reportInfo *Report, updateReportCols []string, repo
 // @return count int
 // @return err error
 func GetReportListCountByAuthorized(condition string, pars []interface{}) (count int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count  FROM report as a 
- WHERE 1=1  `
+	o := global.DbMap[utils.DbNameReport]
+	sql := `SELECT COUNT(1) AS count  FROM report as a WHERE 1=1  `
 	if condition != "" {
 		sql += condition
 	}
-
-	err = o.Raw(sql, pars).QueryRow(&count)
+	var countNull sql2.NullInt64
+	err = o.Raw(sql, pars...).Scan(&countNull).Error
+	if err != nil {
+		return
+	}
+	if countNull.Valid {
+		count = int(countNull.Int64)
+	}
 	return
 }
 
@@ -367,7 +351,7 @@ func GetReportListCountByAuthorized(condition string, pars []interface{}) (count
 // @return items []*ReportList
 // @return err error
 func GetReportListByAuthorized(condition string, pars []interface{}, startSize, pageSize int) (items []*ReportList, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 
 	sql := `SELECT id,classify_id_first,classify_name_first,classify_id_second,classify_name_second,classify_id_third,classify_name_third,title,stage,create_time,author,report_layout,collaborate_type,is_public_publish,abstract,has_chapter,publish_time FROM report as a WHERE 1=1  `
 	if condition != "" {
@@ -375,7 +359,8 @@ func GetReportListByAuthorized(condition string, pars []interface{}, startSize,
 	}
 	// 排序:1:未发布;2:已发布;3-待提交;4-待审批;5-已驳回;6-已通过
 	sql += ` GROUP BY a.id ORDER BY  report_create_time DESC LIMIT ?,?`
-	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	pars = append(pars, startSize, pageSize)
+	err = o.Raw(sql, pars...).Find(&items).Error
 	return
 }
 
@@ -392,11 +377,7 @@ func GetReportListByAuthorized(condition string, pars []interface{}, startSize,
 // @param currClassifyName string
 // @return err error
 func ModifyReportClassifyAndReportChapterTypeByCondition(condition string, pars []interface{}, updateStr string, chapterTypeIdMap map[int]int, oldClassifyId, currClassifyId int, currClassifyName string) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameReport].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -414,14 +395,14 @@ func ModifyReportClassifyAndReportChapterTypeByCondition(condition string, pars
 	if condition != "" {
 		sql += condition
 	}
-	_, err = to.Raw(sql, pars).Exec()
+	err = to.Exec(sql, pars...).Error
 	if err != nil {
 		return
 	}
 
 	// 修改历史报告中的章节分类归属
 	sql = `UPDATE report_chapter set classify_id_first=?,classify_name_first=? where classify_id_first = ?`
-	_, err = to.Raw(sql, currClassifyId, currClassifyName, oldClassifyId).Exec()
+	err = to.Exec(sql, currClassifyId, currClassifyName, oldClassifyId).Error
 	if err != nil {
 		return
 	}
@@ -432,7 +413,7 @@ func ModifyReportClassifyAndReportChapterTypeByCondition(condition string, pars
 			continue
 		}
 		tmpSql := `UPDATE report_chapter set type_id=? where type_id = ?`
-		_, err = to.Raw(tmpSql, currTypeId, oldTypeId).Exec()
+		err = to.Exec(tmpSql, currTypeId, oldTypeId).Error
 		if err != nil {
 			return
 		}

+ 9 - 6
models/report_view_record.go

@@ -1,12 +1,13 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 type ReportViewRecord struct {
-	Id          int       `orm:"column(id);pk"`
+	Id          int       `gorm:"column:id;primaryKey;autoIncrement"`
 	UserId      int       `description:"用户id"`
 	ReportId    int       `description:"报告id"`
 	Mobile      string    `description:"手机号"`
@@ -16,11 +17,13 @@ type ReportViewRecord struct {
 	CreateTime  time.Time `description:"创建时间"`
 }
 
-//获取需要修复的数据列表
 func GetViewListByReportId(reportId int) (total int64, list []*ReportViewRecord, err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `select * from report_view_record where report_id = ? order by id desc `
-
-	total, err = o.Raw(sql, reportId).QueryRows(&list)
+	err = o.Raw(sql, reportId).Find(&list).Error
+	if err != nil {
+		return
+	}
+	total = int64(len(list))
 	return
 }

+ 1 - 1
models/research_report.go

@@ -1,7 +1,7 @@
 package models
 
 type ChartPermissionChapterMapping struct {
-	Id                  int    `orm:"column(id);pk"`
+	Id                  int    `gorm:"column:id;primaryKey;autoIncrement"`
 	ChartPermissionId   int    `description:"权限ID"`
 	ReportChapterTypeId int    `description:"report_chapter_type表主键id或research_report表主键id或tactic表主键id"`
 	ResearchType        string `description:"报告类型 week;two_week;tactic;month;other;rddp; "`

+ 16 - 11
models/resource.go

@@ -1,19 +1,20 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 type Resource struct {
-	Id           int       `orm:"column(id);" description:"资源id"`
+	Id           int       `gorm:"column:id;primaryKey;autoIncrement" description:"资源id"`
 	ResourceUrl  string    `description:"资源地址"`
 	CreateTime   time.Time `description:"创建时间"`
 	ResourceType int       `description:"资源类型,1:图片,2:音频,3:视频 ,4:ppt"`
 }
 
 type ResourceResp struct {
-	Id            int64  `orm:"column(id);" description:"用户id"`
+	Id            int64  `gorm:"column:id;primaryKey;autoIncrement" description:"用户id"`
 	ResourceUrl   string `description:"资源地址"`
 	PlaySeconds   uint32 `description:"播放时长,单位秒"`
 	Source        string
@@ -24,17 +25,21 @@ type ResourceResp struct {
 }
 
 func AddResource(item *Resource) (newId int64, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	newId, err = o.Insert(item)
+	o := global.DbMap[utils.DbNameReport]
+	err = o.Create(item).Error
+	if err != nil {
+		return
+	}
+	newId = int64(item.Id)
 	return
 }
 
-func GetResourceById(id string) (item *Resource, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := "SELECT * FROM resource WHERE id=? "
-	err = o.Raw(sql, id).QueryRow(&item)
-	return
-}
+//func GetResourceById(id string) (item *Resource, err error) {
+//	o := global.DbMap[utils.DbNameReport]
+//	sql := "SELECT * FROM resource WHERE id=? "
+//	err = o.Raw(sql, id).First(&item).Error
+//	return
+//}
 
 type ResourceBase64Resp struct {
 	Image string `description:"图片,base64字符串"`

+ 6 - 8
models/search_key_word.go

@@ -1,13 +1,13 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
 	"time"
 )
 
 // SearchKeyWord 搜索关键词
 type SearchKeyWord struct {
-	SearchKeyWordId     int       `orm:"column(search_key_word_id)" description:"主键ID"`
+	SearchKeyWordId     int       `gorm:"column:search_key_word_id;primaryKey;autoIncrement" description:"主键ID"`
 	KeyWord             string    `description:"关键词"`
 	From                string    `description:"来源,在什么地方筛选"`
 	CreatedTime         time.Time `description:"创建时间"`
@@ -18,18 +18,16 @@ type SearchKeyWord struct {
 
 // AddTrendTagKeyWord 新增趋势标签关键词
 func AddTrendTagKeyWord(trend string) (err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	sql := " REPLACE INTO search_key_word (`key_word`,`from`) values (?,'trend') "
-	_, err = o.Raw(sql, trend).Exec()
-
+	err = o.Exec(sql, trend).Error
 	return
 }
 
 // GetKeyWordListByFrom 根据来源获取搜索关键词列表
 func GetKeyWordListByFrom(from string) (list []*SearchKeyWord, err error) {
-	o := orm.NewOrm()
+	o := global.DEFAULT_DB
 	sql := " SELECT * FROM search_key_word WHERE `from` = ? ORDER BY created_time ASC "
-	_, err = o.Raw(sql, from).QueryRows(&list)
-
+	err = o.Raw(sql, from).Find(&list).Error
 	return
 }

Різницю між файлами не показано, бо вона завелика
+ 289 - 230
models/target.go


+ 41 - 38
models/user_collect_classify.go

@@ -1,7 +1,10 @@
 // @Author gmy 2024/9/21 14:47:00
 package models
 
-import "github.com/beego/beego/v2/client/orm"
+import (
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
+)
 
 /**
 CREATE TABLE `user_collect_classify` (
@@ -14,55 +17,55 @@ CREATE TABLE `user_collect_classify` (
 */
 
 type UserCollectClassify struct {
-	UserCollectClassifyId int    `orm:"column(user_collect_classify_id);pk" description:"用户收藏的分类id"`
+	UserCollectClassifyId int    `gorm:"column:user_collect_classify_id;primaryKey;autoIncrement" description:"用户收藏的分类id"`
 	ClassifyId            int    `orm:"column(classify_id)" description:"分类id"`
 	SysUserId             int    `orm:"column(sys_user_id)" description:"收藏人用户id"`
 	CreateTime            string `orm:"column(create_time)" description:"收藏时间"`
 }
 
 // GetUserCollectClassifyList 查询用户收藏的分类列表
-func GetUserCollectClassifyList(sysUserId, classifyId int) (list []*UserCollectClassify, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM user_collect_classify WHERE 1=1`
-	var params []interface{}
-
-	// 处理 sysUserId 参数
-	if sysUserId > 0 {
-		sql += ` AND sys_user_id=?`
-		params = append(params, sysUserId)
-	}
-
-	// 处理 classifyId 参数
-	if classifyId > 0 {
-		sql += ` AND classify_id=?`
-		params = append(params, classifyId)
-	}
-
-	_, err = o.Raw(sql, params...).QueryRows(&list)
-
-	return
-}
+//func GetUserCollectClassifyList(sysUserId, classifyId int) (list []*UserCollectClassify, err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `SELECT * FROM user_collect_classify WHERE 1=1`
+//	var params []interface{}
+//
+//	// 处理 sysUserId 参数
+//	if sysUserId > 0 {
+//		sql += ` AND sys_user_id=?`
+//		params = append(params, sysUserId)
+//	}
+//
+//	// 处理 classifyId 参数
+//	if classifyId > 0 {
+//		sql += ` AND classify_id=?`
+//		params = append(params, classifyId)
+//	}
+//
+//	_, err = o.Raw(sql, params...).QueryRows(&list)
+//
+//	return
+//}
 
 // InsertUserCollectClassify 新增用户收藏的分类
-func InsertUserCollectClassify(item UserCollectClassify) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `INSERT INTO user_collect_classify(classify_id, sys_user_id, create_time) VALUES(?, ?, ?)`
-	_, err = o.Raw(sql, item.ClassifyId, item.SysUserId, item.CreateTime).Exec()
-	return
-}
+//func InsertUserCollectClassify(item UserCollectClassify) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `INSERT INTO user_collect_classify(classify_id, sys_user_id, create_time) VALUES(?, ?, ?)`
+//	_, err = o.Raw(sql, item.ClassifyId, item.SysUserId, item.CreateTime).Exec()
+//	return
+//}
 
 // DeleteUserCollectClassify 删除分类
-func DeleteUserCollectClassify(sysUserId, classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `DELETE FROM user_collect_classify WHERE sys_user_id=? AND classify_id=?`
-	_, err = o.Raw(sql, sysUserId, classifyId).Exec()
-	return
-}
+//func DeleteUserCollectClassify(sysUserId, classifyId int) (err error) {
+//	o := orm.NewOrmUsingDB("rddp")
+//	sql := `DELETE FROM user_collect_classify WHERE sys_user_id=? AND classify_id=?`
+//	_, err = o.Raw(sql, sysUserId, classifyId).Exec()
+//	return
+//}
 
-// DeleteUserCollectClassify 删除分类
+// DeleteCollectByClassifyId 删除分类
 func DeleteCollectByClassifyId(classifyId int) (err error) {
-	o := orm.NewOrmUsingDB("rddp")
+	o := global.DbMap[utils.DbNameReport]
 	sql := `DELETE FROM user_collect_classify WHERE classify_id=?`
-	_, err = o.Raw(sql, classifyId).Exec()
+	err = o.Exec(sql, classifyId).Error
 	return
 }

+ 5 - 4
models/user_seller_relation.go

@@ -1,12 +1,13 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 type UserSellerRelation struct {
-	RelationId int64     `orm:"column(relation_id);pk"`
+	RelationId int64     `gorm:"column:relation_id;primaryKey;autoIncrement"`
 	UserId     int       `description:"用户id"`
 	CompanyId  int       `description:"企业用户id"`
 	SellerId   int       `description:"销售id"`
@@ -20,8 +21,8 @@ type UserSellerRelation struct {
 
 // DeleteUserSellerRelationByProductId 根据产品id删除销售员与员工的关系
 func DeleteUserSellerRelationByProductId(userId, productId int) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := ` DELETE FROM user_seller_relation WHERE user_id=? and product_id = ?`
-	_, err = o.Raw(sql, userId, productId).Exec()
+	err = o.Exec(sql, userId, productId).Error
 	return
 }

+ 3 - 3
models/user_view_history.go

@@ -1,8 +1,8 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 )
 
 type ResearchReportViewPUV struct {
@@ -16,7 +16,7 @@ func GetPUVByResearchReportIds(reportIds []string) (list []*ResearchReportViewPU
 	if len(reportIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := `SELECT
 				research_report_id,
 				COUNT(1) AS pv,
@@ -27,6 +27,6 @@ func GetPUVByResearchReportIds(reportIds []string) (list []*ResearchReportViewPU
 				research_report_id IN (` + utils.GetOrmInReplace(len(reportIds)) + `)
 			GROUP BY
 				research_report_id`
-	_, err = o.Raw(sql, reportIds).QueryRows(&list)
+	err = o.Raw(sql, reportIds).Find(&list).Error
 	return
 }

+ 27 - 33
models/variety_tag.go

@@ -1,14 +1,14 @@
 package models
 
 import (
+	"eta/eta_api/global"
 	"eta/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
 // VarietyClassify 标签库分类表
 type VarietyClassify struct {
-	VarietyClassifyId int       `orm:"column(variety_classify_id);pk" description:"标签分类ID"`
+	VarietyClassifyId int       `gorm:"column:variety_classify_id;primaryKey;autoIncrement" description:"标签分类ID"`
 	ClassifyName      string    `json:"classify_name" description:"标签分类名称"`
 	Sort              int       `json:"sort" description:"排序"`
 	State             int       `json:"state" description:"显示状态 0-禁用 1-启用"`
@@ -17,38 +17,36 @@ type VarietyClassify struct {
 }
 
 func (varietyClassify *VarietyClassify) Add() (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	lastId, err = o.Insert(varietyClassify)
+	o := global.DbMap[utils.DbNameWeekly]
+	err = o.Create(varietyClassify).Error
 	if err != nil {
 		return
 	}
-	varietyClassify.VarietyClassifyId = int(lastId)
+	lastId = int64(varietyClassify.VarietyClassifyId)
 	return
 }
 
 func (varietyClassify *VarietyClassify) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Update(varietyClassify, cols...)
+	err = global.DbMap[utils.DbNameWeekly].Select(cols).Updates(varietyClassify).Error
 	return
 }
 
 // GetEnableVarietyClassifyList 获取启用的标签分类列表
 func GetEnableVarietyClassifyList(hasForbidden bool) (list []*VarietyClassify, err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	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)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 // VarietyTag 标签表
 type VarietyTag struct {
-	VarietyTagId                int       `orm:"column(variety_tag_id);pk" description:"标签ID"`
+	VarietyTagId                int       `gorm:"column:variety_tag_id;primaryKey;autoIncrement" description:"标签ID"`
 	VarietyClassifyId           int       `json:"variety_classify_id" description:"标签分类ID"`
 	VarietyClassifyName         string    `json:"variety_classify_name" description:"标签分类名称"`
 	TagName                     string    `json:"tag_name" description:"标签名称"`
@@ -62,24 +60,24 @@ type VarietyTag struct {
 }
 
 func (varietyTag *VarietyTag) Add() (lastId int64, err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	lastId, err = o.Insert(varietyTag)
+	o := global.DbMap[utils.DbNameWeekly]
+	err = o.Create(varietyTag).Error
 	if err != nil {
 		return
 	}
-	varietyTag.VarietyTagId = int(lastId)
+	lastId = int64(varietyTag.VarietyTagId)
 	return
 }
 
 func (varietyTag *VarietyTag) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Update(varietyTag, cols...)
+	o := global.DbMap[utils.DbNameWeekly]
+	err = o.Select(cols).Updates(varietyTag).Error
 	return
 }
 
 // GetEnableVarietyTagList 获取启用状态标签列表
 func GetEnableVarietyTagList(hasForbidden bool) (list []*VarietyTag, err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	var sql string
 	if hasForbidden {
 		sql = `SELECT * FROM variety_tag ORDER BY sort`
@@ -87,28 +85,28 @@ func GetEnableVarietyTagList(hasForbidden bool) (list []*VarietyTag, err error)
 		sql = `SELECT * FROM variety_tag WHERE state = 1 ORDER BY sort`
 	}
 
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 // ResearchVarietyTagRelation 研究员标签关系表
 type ResearchVarietyTagRelation struct {
-	Id           int `orm:"column(id);pk"`
+	Id           int `gorm:"column:id;primaryKey;autoIncrement"`
 	VarietyTagId int `json:"variety_tag_id" description:"标签ID"`
 	AdminId      int `json:"admin_id" description:"研究员ID"`
 }
 
 type ResearchTagRelation struct {
-	Id              int `json:"id"`
+	Id              int `gorm:"column:id;primaryKey;autoIncrement" 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")
+	o := global.DbMap[utils.DbNameWeekly]
 	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)
+	err = o.Raw(sql, adminId).Find(&list).Error
 	return
 }
 
@@ -126,7 +124,7 @@ func GetResearchVarietyTagRelationList(include int) (list []*ResearchVarietyTagR
 	if include == 1 {
 		condition = ` WHERE 1=1 `
 	}
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := `SELECT
 				a.variety_tag_id,
 				a.admin_id,
@@ -138,17 +136,13 @@ func GetResearchVarietyTagRelationList(include int) (list []*ResearchVarietyTagR
 	sql += ` ORDER BY
 				a.variety_tag_id ASC,
 				a.admin_id ASC`
-	_, err = o.Raw(sql).QueryRows(&list)
+	err = o.Raw(sql).Find(&list).Error
 	return
 }
 
 // UpdateAdminVarietyTagRelation 更新研究员标签关系
 func UpdateAdminVarietyTagRelation(adminId int, items []*ResearchVarietyTagRelation) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameWeekly].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -157,12 +151,12 @@ func UpdateAdminVarietyTagRelation(adminId int, items []*ResearchVarietyTagRelat
 		}
 	}()
 	sql := `DELETE FROM research_variety_tag_relation WHERE admin_id = ?`
-	if _, err = o.Raw(sql, adminId).Exec(); err != nil {
+	if err = to.Exec(sql, adminId).Error; err != nil {
 		return
 	}
 	itemsLen := len(items)
 	if itemsLen > 0 {
-		_, err = o.InsertMulti(itemsLen, items)
+		err = to.CreateInBatches(items, utils.MultiAddNum).Error
 	}
 	return
 }
@@ -178,7 +172,7 @@ func GetAdminVarietyTagRelationListByAdminId(adminIds []int) (list []*AdminVarie
 	if len(adminIds) == 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := `SELECT
 				a.admin_id,
 				GROUP_CONCAT(b.tag_name) AS group_name_str
@@ -189,6 +183,6 @@ func GetAdminVarietyTagRelationListByAdminId(adminIds []int) (list []*AdminVarie
 				a.admin_id IN (` + utils.GetOrmInReplace(len(adminIds)) + `)
 			GROUP BY
 				a.admin_id`
-	_, err = o.Raw(sql, adminIds).QueryRows(&list)
+	err = o.Raw(sql, adminIds).Find(&list).Error
 	return
 }

+ 6 - 5
models/wechat_send_msg.go

@@ -1,7 +1,8 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 )
 
 type OpenIdList struct {
@@ -16,8 +17,8 @@ func GetOpenIdArr() (items []string, err error) {
 		INNER JOIN user_record  AS ur ON wu.user_id=ur.user_id
           WHERE ur.open_id != "" AND ur.subscribe=1 AND ur.create_platform=1 AND  d.status IN('正式','试用','永续')
          ORDER BY FIELD(c.company_id, 16) desc, ur.user_record_id asc`
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Raw(sql).QueryRows(&items)
+	o := global.DbMap[utils.DbNameWeekly]
+	err = o.Raw(sql).Find(&items).Error
 	return
 }
 
@@ -33,7 +34,7 @@ func GetOpenIdArrByClassifyId(classifyId int) (items []string, err error) {
 			AND g.from='rddp'
 			AND g.classify_id=?
 			ORDER BY FIELD(c.company_id, 16) DESC, ur.user_record_id ASC  `
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Raw(sql, classifyId).QueryRows(&items)
+	o := global.DbMap[utils.DbNameWeekly]
+	err = o.Raw(sql, classifyId).Find(&items).Error
 	return
 }

+ 14 - 18
models/wx_user.go

@@ -1,12 +1,13 @@
 package models
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta/eta_api/global"
+	"eta/eta_api/utils"
 	"time"
 )
 
 type WxUser struct {
-	UserId              int64 `orm:"column(user_id);pk"`
+	UserId              int64 `gorm:"column:user_id;primaryKey;autoIncrement"`
 	Mobile              string
 	Email               string
 	CompanyId           int
@@ -27,40 +28,36 @@ type WxUser struct {
 	OutboundCountryCode string    `description:"外呼手机号区号,86、852、886等"`
 	LastUpdatedTime     time.Time `description:"最近一次更新时间"`
 	IsDeal              int       `description:"是否标记处理 0-未处理 1-已处理"`
-	OpenId              string    `orm:"column(open_id)" description:"微信openid"`
+	OpenId              string    `gorm:"column:open_id" description:"微信openid"`
 	Headimgurl          string    `description:"用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空"`
 	UserLabel           string    `description:"查研观向用户标签"`
 }
 
 func GetWxUserByMobile(mobile string) (item *WxUser, err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := `SELECT * FROM wx_user WHERE mobile = ? LIMIT 1`
-	err = o.Raw(sql, mobile).QueryRow(&item)
+	err = o.Raw(sql, mobile).First(&item).Error
 	return
 }
 
 // Update 更新wxUser信息
-func (wxUser *WxUser) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	_, err = o.Update(wxUser, cols...)
+func (WxUser *WxUser) Update(cols []string) (err error) {
+	o := global.DbMap[utils.DbNameWeekly]
+	err = o.Select(cols).Updates(WxUser).Error
 	return
 }
 
 // GetWxUserByCompanyIdAndMobile 根据客户ID及手机号获取用户
 func GetWxUserByCompanyIdAndMobile(companyId int, mobile string) (item *WxUser, err error) {
-	o := orm.NewOrmUsingDB("weekly")
+	o := global.DbMap[utils.DbNameWeekly]
 	sql := ` SELECT * FROM wx_user WHERE company_id = ? AND mobile = ? LIMIT 1 `
-	err = o.Raw(sql, companyId, mobile).QueryRow(&item)
+	err = o.Raw(sql, companyId, mobile).First(&item).Error
 	return
 }
 
 // DeleteWxUserAndRecordByUserId 删除用户及第三方信息
 func DeleteWxUserAndRecordByUserId(userId int) (err error) {
-	o := orm.NewOrmUsingDB("weekly")
-	to, err := o.Begin()
-	if err != nil {
-		return
-	}
+	to := global.DbMap[utils.DbNameWeekly].Begin()
 	defer func() {
 		if err != nil {
 			_ = to.Rollback()
@@ -71,12 +68,11 @@ func DeleteWxUserAndRecordByUserId(userId int) (err error) {
 
 	// 删除wx_user
 	userSql := ` DELETE FROM wx_user WHERE user_id = ? LIMIT 1 `
-	_, err = to.Raw(userSql, userId).Exec()
+	err = to.Exec(userSql, userId).Error
 	// 删除user_record
 	if err == nil {
 		recordSql := ` DELETE FROM user_record WHERE user_id = ? `
-		_, err = to.Raw(recordSql, userId).Exec()
+		err = to.Exec(recordSql, userId).Error
 	}
-
 	return
 }

+ 40 - 49
services/api.go

@@ -1,51 +1,42 @@
 package services
 
-import (
-	"eta/eta_api/models"
-	"fmt"
-	"strconv"
-	"strings"
-)
-
-func ApiFix() {
-	//拿到所有的api遍历
-	list, err := models.GetApiUriTest()
-	if err != nil {
-		return
-	}
-
-	apiMap := make(map[int]string, 0)
-
-	for _, v := range list {
-		menuIds := strings.Split(v.MenuId,",")
-		for _, menuIdStr := range menuIds {
-			if menuIdStr != "" {
-				menuId, err := strconv.Atoi(menuIdStr)
-				if err != nil {
-					fmt.Println("strconv err:" + err.Error())
-					return
-				}
-				if apis, ok := apiMap[menuId]; ok {
-					apiMap[menuId] = apis + "&" +v.ApiUri
-				} else {
-					apiMap[menuId] = v.ApiUri
-				}
-			}
-		}
-	}
-
-	fmt.Println(apiMap)
-
-	//修改每一个按钮的值
-	for menuId, api := range apiMap {
-		fmt.Println(menuId, api)
-		err := models.UpdateApiUriTest(api, menuId)
-		if err!= nil {
-			fmt.Println("update err:" + err.Error())
-			return
-		}
-	}
-
-}
-
-
+//func ApiFix() {
+//	//拿到所有的api遍历
+//	list, err := models.GetApiUriTest()
+//	if err != nil {
+//		return
+//	}
+//
+//	apiMap := make(map[int]string, 0)
+//
+//	for _, v := range list {
+//		menuIds := strings.Split(v.MenuId,",")
+//		for _, menuIdStr := range menuIds {
+//			if menuIdStr != "" {
+//				menuId, err := strconv.Atoi(menuIdStr)
+//				if err != nil {
+//					fmt.Println("strconv err:" + err.Error())
+//					return
+//				}
+//				if apis, ok := apiMap[menuId]; ok {
+//					apiMap[menuId] = apis + "&" +v.ApiUri
+//				} else {
+//					apiMap[menuId] = v.ApiUri
+//				}
+//			}
+//		}
+//	}
+//
+//	fmt.Println(apiMap)
+//
+//	//修改每一个按钮的值
+//	for menuId, api := range apiMap {
+//		fmt.Println(menuId, api)
+//		err := models.UpdateApiUriTest(api, menuId)
+//		if err!= nil {
+//			fmt.Println("update err:" + err.Error())
+//			return
+//		}
+//	}
+//
+//}

+ 1 - 0
utils/constants.go

@@ -557,4 +557,5 @@ const (
 	DbNameIndex       = "eta_index"
 	DbNameGL          = "eta_gl"
 	DbNameAI          = "eta_ai"
+	DbNameWeekly      = "weekly_report"
 )

Деякі файли не було показано, через те що забагато файлів було змінено