Jelajahi Sumber

数据库交互优化及错误处理

- 替换`beego orm`包为`global.DmSQL`,统一数据库交互方式。
-直接使用`global.DmSQL`进行SQL查询和操作,减少中间变量,改进错误处理。
- 移除不必要的`beego orm`导入,简化项目依赖。
- 在`AdminOperateRecord`模型的`Insert`方法中隐藏错误打印,避免日志泄露。

此次代码调整,优化了数据库操作的统一性和效率,同时通过改进错误处理流程,提升了系统的稳定性和安全性。
Roc 5 bulan lalu
induk
melakukan
8b4a96c9e8

+ 12 - 17
models/data_manage/supply_analysis/variety.go

@@ -4,7 +4,6 @@ import (
 	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
 	"fmt"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
@@ -148,15 +147,11 @@ func (item Variety) GetListBySuperAdminPage(condition string, pars []interface{}
 	// 数据总数
 	totalSql := `SELECT COUNT(1) total ` + baseSql
 
-	var adminMenusCount int64
-
-	err = global.DmSQL["data"].Select("total").Raw(totalSql, pars).Row().Scan(&adminMenusCount)
+	err = global.DmSQL["data"].Raw(totalSql, pars).Scan(&total).Error
 	if err != nil {
 		fmt.Println("Count Err:", err)
 		return
 	}
-	fmt.Println(adminMenusCount)
-	total = int(adminMenusCount)
 	// 列表页数据
 	listSql := `SELECT * ` + baseSql + ` ORDER BY modify_time DESC,variety_id DESC LIMIT ?,?`
 	err = global.DmSQL["data"].Raw(listSql, pars, startSize, pageSize).Scan(&items).Error
@@ -166,7 +161,6 @@ func (item Variety) GetListBySuperAdminPage(condition string, pars []interface{}
 
 // GetListByPage 获取分页数据
 func (item Variety) GetListByPage(condition string, pars []interface{}, startSize, pageSize int) (total int, items []*VarietyItem, err error) {
-	o := orm.NewOrmUsingDB("data")
 	baseSql := ` FROM ( SELECT a.*, GROUP_CONCAT(DISTINCT b.sys_user_id ORDER BY b.sys_user_id ASC SEPARATOR ',') AS permission_user_id FROM variety a 
 				JOIN variety_admin_permission b on a.variety_id=b.variety_id 
 				JOIN variety_edb_info c on a.variety_id=c.variety_id WHERE 1=1 `
@@ -176,36 +170,37 @@ func (item Variety) GetListByPage(condition string, pars []interface{}, startSiz
 	baseSql += ` GROUP BY a.variety_id ) d `
 	// 数据总数
 	totalSql := `SELECT COUNT(1) total ` + baseSql
-	err = o.Raw(totalSql, pars).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(totalSql, pars).Scan(&total).Error
 	if err != nil {
 		return
 	}
 
 	// 列表页数据
 	listSql := `SELECT * ` + baseSql + ` ORDER BY modify_time DESC,variety_id DESC LIMIT ?,?`
-	_, err = o.Raw(listSql, pars, startSize, pageSize).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(listSql, pars, startSize, pageSize).Scan(&items).Error
+
 	return
 }
 
 // Update 更新基础信息
 func (variety *Variety) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(variety, cols...)
+	err = global.DmSQL["data"].Select(cols).Updates(variety).Error
+
 	return
 }
 
 // Delete 删除
 func (variety *Variety) Delete() (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Delete(variety)
+	err = global.DmSQL["data"].Delete(variety).Error
+
 	return
 }
 
 // GetVarietyMaxSort 获取图表分类下最大的排序数
 func GetVarietyMaxSort(parentId int) (sort int, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT Max(sort) AS sort FROM future_good_chart_classify WHERE parent_id=? AND is_delete=0 `
-	err = o.Raw(sql, parentId).QueryRow(&sort)
+	err = global.DmSQL["data"].Raw(sql, parentId).Scan(&sort).Error
+
 	return
 }
 
@@ -216,8 +211,8 @@ type VarietyView struct {
 }
 
 func GetVarietyViewById(classifyId int) (item *VarietyView, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM future_good_chart_classify WHERE future_good_chart_classify_id=? AND is_delete=0 `
-	err = o.Raw(sql, classifyId).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, classifyId).First(&item).Error
+
 	return
 }

+ 3 - 3
models/data_manage/supply_analysis/variety_admin_permission.go

@@ -1,7 +1,7 @@
 package supply_analysis
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -15,8 +15,8 @@ type VarietyAdminPermission struct {
 
 // GetVarietyPermissionByVarietyIdAndUserId 根据品种id和用户id获取权限记录表
 func GetVarietyPermissionByVarietyIdAndUserId(varietyId, sysUserId int) (item *VarietyAdminPermission, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_admin_permission a  WHERE variety_id = ? AND sys_user_id = ? ORDER BY id desc `
-	err = o.Raw(sql, varietyId, sysUserId).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, varietyId, sysUserId).First(&item).Error
+
 	return
 }

+ 14 - 16
models/data_manage/supply_analysis/variety_edb_info.go

@@ -1,7 +1,7 @@
 package supply_analysis
 
 import (
-	"github.com/beego/beego/v2/client/orm"
+	"eta_gn/eta_api/global"
 	"time"
 )
 
@@ -27,36 +27,34 @@ func BatchCreateVarietyEdbInfo(list []*VarietyEdbInfo) (err error) {
 	if num <= 0 {
 		return
 	}
-
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(num, list)
+	err = global.DmSQL["data"].CreateInBatches(list, num).Error
 
 	return
 }
 
 // GetCountVarietyEdbByVarietyId 根据品种id获取添加到已经生成的指标数量(不管是否加入到ETA指标库)
 func GetCountVarietyEdbByVarietyId(varietyId int) (total int, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT count(1) total FROM variety_edb_info AS a WHERE a.variety_id = ?`
-	err = o.Raw(sql, varietyId).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(sql, varietyId).Scan(&total).Error
+
 	return
 }
 
 // GetVarietyEdbListByVarietyId 根据品种id获取添加到已经生成的指标(不管是否加入到ETA指标库)
 func GetVarietyEdbListByVarietyId(varietyId int) (items []*VarietyEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ?`
-	_, err = o.Raw(sql, varietyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, varietyId).Scan(&items).Error
+
 	return
 }
 
 // GetCountVarietyEdbInfoByVarietyId 根据品种id获取添加到ETA指标库的指标数量
 func GetCountVarietyEdbInfoByVarietyId(varietyId int) (total int, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT count(1) total FROM variety_edb_info AS a
 			JOIN edb_info b on a.edb_info_id=b.edb_info_id
 			WHERE a.variety_id = ? and a.edb_info_id >0`
-	err = o.Raw(sql, varietyId).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(sql, varietyId).Scan(&total).Error
+
 	return
 }
 
@@ -88,23 +86,23 @@ type VarietyEdbInfoButton struct {
 
 // GetAllVarietyEdbInfoByVarietyId 根据品种id获取所有的指标
 func GetAllVarietyEdbInfoByVarietyId(varietyId int) (items []*VarietyEdbInfoItem, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_id = ? ORDER BY a.variety_edb_id ASC `
-	_, err = o.Raw(sql, varietyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, varietyId).Scan(&items).Error
+
 	return
 }
 
 // GetVarietyEdbInfoByVarietyEdbId 根据品种指标id获取的指标
 func GetVarietyEdbInfoByVarietyEdbId(varietyId int) (item *VarietyEdbInfo, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_edb_info AS a WHERE a.variety_edb_id = ? ORDER BY a.variety_edb_id ASC `
-	err = o.Raw(sql, varietyId).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, varietyId).First(&item).Error
+
 	return
 }
 
 // Update 更基础信息
 func (varietyEdbInfo *VarietyEdbInfo) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(varietyEdbInfo, cols...)
+	err = global.DmSQL["data"].Select(cols).Updates(varietyEdbInfo).Error
+
 	return
 }

+ 19 - 28
models/data_manage/supply_analysis/variety_plant.go

@@ -1,8 +1,8 @@
 package supply_analysis
 
 import (
+	"eta_gn/eta_api/global"
 	"eta_gn/eta_api/utils"
-	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
 
@@ -29,39 +29,30 @@ type VarietyPlant struct {
 
 // AddVarietyPlant 添加variety_plant装置
 func AddVarietyPlant(item *VarietyPlant) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	lastId, err := o.Insert(item)
-	if err != nil {
-		return
-	}
-	item.VarietyPlantId = int(lastId)
+	err = global.DmSQL["data"].Create(item).Error
 
 	return
 }
 
 // MultiAddVarietyPlant 批量添加variety_plant装置
 func MultiAddVarietyPlant(items []*VarietyPlant) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.InsertMulti(len(items), items)
-	if err != nil {
-		return
-	}
+	err = global.DmSQL["data"].CreateInBatches(items, utils.MultiAddNum).Error
 
 	return
 }
 
 // Update 更新基础信息
 func (varietyPlant *VarietyPlant) Update(cols []string) (err error) {
-	o := orm.NewOrmUsingDB("data")
-	_, err = o.Update(varietyPlant, cols...)
+	err = global.DmSQL["data"].Select(cols).Updates(varietyPlant).Error
+
 	return
 }
 
 // GetVarietyPlantById 根据品种装置id获取品种装置详情
 func GetVarietyPlantById(id int) (item *VarietyPlant, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_plant WHERE variety_plant_id = ?`
-	err = o.Raw(sql, id).QueryRow(&item)
+	err = global.DmSQL["data"].Raw(sql, id).First(&item).Error
+
 	return
 }
 
@@ -71,9 +62,9 @@ func GetVarietyPlantByIdList(idList []int) (items []*VarietyPlant, err error) {
 	if num <= 0 {
 		return
 	}
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_plant WHERE variety_plant_id in (` + utils.GetOrmInReplace(num) + `)`
-	_, err = o.Raw(sql, idList).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, idList).Scan(&items).Error
+
 	return
 }
 
@@ -108,46 +99,46 @@ type VarietyPlantButton struct {
 
 // GetAllVarietyPlantByVarietyId 根据品种id获取所有的装置
 func GetAllVarietyPlantByVarietyId(varietyId int) (items []*VarietyPlantItem, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT * FROM variety_plant a  WHERE variety_id = ? ORDER BY sort ASC, variety_plant_id ASC `
-	_, err = o.Raw(sql, varietyId).QueryRows(&items)
+	err = global.DmSQL["data"].Raw(sql, varietyId).Scan(&items).Error
+
 	return
 }
 
 // GetCountVarietyPlantByVarietyId 根据品种id获取所有的装置数量
 func GetCountVarietyPlantByVarietyId(varietyId int) (total int, err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `SELECT count(1) total FROM variety_plant a  WHERE variety_id = ? `
-	err = o.Raw(sql, varietyId).QueryRow(&total)
+	err = global.DmSQL["data"].Raw(sql, varietyId).Scan(&total).Error
+
 	return
 }
 
 // DeleteVarietyPlantById 根据装置id删除
 func DeleteVarietyPlantById(id int) (err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `DELETE FROM variety_plant WHERE variety_plant_id = ?`
-	_, err = o.Raw(sql, id).Exec()
+	err = global.DmSQL["data"].Exec(sql, id).Error
+
 	return
 }
 
 // UpdateEdbInfoSortByPrevId 根据上一层级id更新排序
 func UpdateEdbInfoSortByPrevId(varietyId, prevVarietyId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `UPDATE variety_plant set sort = ` + updateSort + ` WHERE variety_id=? AND `
 	if prevVarietyId > 0 {
 		sql += ` ( sort > ? or ( sort=? AND variety_plant_id > ?)) `
 	}
-	_, err = o.Raw(sql, varietyId, nowSort, nowSort, prevVarietyId).Exec()
+	err = global.DmSQL["data"].Exec(sql, varietyId, nowSort, nowSort, prevVarietyId).Error
+
 	return
 }
 
 // UpdateEdbInfoSortByNextId 根据下一层级id更新排序
 func UpdateEdbInfoSortByNextId(varietyId, prevVarietyId, nowSort int, updateSort string) (err error) {
-	o := orm.NewOrmUsingDB("data")
 	sql := `UPDATE variety_plant set sort = ` + updateSort + ` WHERE variety_id=? AND `
 	if prevVarietyId > 0 {
 		sql += ` ( sort < ? or (  sort=? AND variety_plant_id < ? )) `
 	}
-	_, err = o.Raw(sql, varietyId, nowSort, nowSort, prevVarietyId).Exec()
+	err = global.DmSQL["data"].Exec(sql, varietyId, nowSort, nowSort, prevVarietyId).Error
+
 	return
 }

+ 0 - 2
models/system/admin_operate_record.go

@@ -2,7 +2,6 @@ package system
 
 import (
 	"eta_gn/eta_api/global"
-	"fmt"
 	"time"
 )
 
@@ -21,7 +20,6 @@ type AdminOperateRecord struct {
 
 func (item *AdminOperateRecord) Insert() (err error) {
 	err = global.DEFAULT_DmSQL.Create(item).Error
-	fmt.Println("AdminOperateRecord ERR: ", err)
 
 	return
 }