Explorar o código

fix:orm not row found -> gorm record not found

zqbao hai 7 meses
pai
achega
5b403d7453

+ 4 - 3
controllers/base_auth.go

@@ -5,10 +5,11 @@ import (
 	"eta_gn/eta_chart_lib/models"
 	"eta_gn/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/server/web"
 	"net/http"
 	"net/url"
 	"strings"
+
+	"github.com/beego/beego/v2/server/web"
 )
 
 type BaseAuthController struct {
@@ -94,7 +95,7 @@ func (c *BaseAuthController) Prepare() {
 			//fmt.Println("GetUserByToken")
 			//session, err := system.GetSysSessionByToken(token)
 			//if err != nil {
-			//	if err.Error() == utils.ErrNoRow() {
+			//	if utils.IsErrNoRow() {
 			//		this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + token}, false, false)
 			//		this.StopRun()
 			//		return
@@ -115,7 +116,7 @@ func (c *BaseAuthController) Prepare() {
 			//}
 			//admin, err := system.GetSysUserById(session.SysUserId)
 			//if err != nil {
-			//	if err.Error() == utils.ErrNoRow() {
+			//	if utils.IsErrNoRow() {
 			//		this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取admin 信息失败 " + strconv.Itoa(session.SysUserId)}, false, false)
 			//		this.StopRun()
 			//		return

+ 4 - 3
controllers/base_auth_v2.go

@@ -5,10 +5,11 @@ import (
 	"eta_gn/eta_chart_lib/models"
 	"eta_gn/eta_chart_lib/utils"
 	"fmt"
-	"github.com/beego/beego/v2/server/web"
 	"net/http"
 	"net/url"
 	"strings"
+
+	"github.com/beego/beego/v2/server/web"
 )
 
 type BaseAuthV2Controller struct {
@@ -106,7 +107,7 @@ func (c *BaseAuthV2Controller) Prepare() {
 			//fmt.Println("GetUserByToken")
 			//session, err := system.GetSysSessionByToken(token)
 			//if err != nil {
-			//	if err.Error() == utils.ErrNoRow() {
+			//	if utils.IsErrNoRow() {
 			//		this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "Token 信息已变更:Token: " + token}, false, false)
 			//		this.StopRun()
 			//		return
@@ -127,7 +128,7 @@ func (c *BaseAuthV2Controller) Prepare() {
 			//}
 			//admin, err := system.GetSysUserById(session.SysUserId)
 			//if err != nil {
-			//	if err.Error() == utils.ErrNoRow() {
+			//	if utils.IsErrNoRow() {
 			//		this.JSON(models.BaseResponse{Ret: 408, Msg: "信息已变更,请重新登陆!", ErrMsg: "获取admin 信息失败 " + strconv.Itoa(session.SysUserId)}, false, false)
 			//		this.StopRun()
 			//		return

+ 3 - 3
controllers/chart.go

@@ -88,7 +88,7 @@ func (this *ChartController) ChartInfoDetail() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -185,7 +185,7 @@ func (this *ChartController) ChartInfoRefresh() {
 	}
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -334,7 +334,7 @@ func (this *ChartController) Collect() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(req.UniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 1 - 1
controllers/chart_auth.go

@@ -64,7 +64,7 @@ func (this *ChartAuthController) ChartInfoDetail() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 3 - 3
controllers/chart_common.go

@@ -95,7 +95,7 @@ func (this *ChartController) CommonChartInfoDetailFromUniqueCode() {
 
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -711,7 +711,7 @@ func (this *ChartController) FutureGoodChartInfoRefresh() {
 	}
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -909,7 +909,7 @@ func (this *ChartController) CorrelationChartInfoRefresh() {
 	}
 	chartInfo, err := models.GetChartInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该图已被删除,请刷新页面"
 			br.ErrMsg = "该图已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 2 - 2
controllers/excel_info.go

@@ -82,7 +82,7 @@ func (this *ExcelInfoController) GetTableDetail() {
 
 	excelInfo, err := models.GetExcelInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该表格已被删除,请刷新页面"
 			br.ErrMsg = "该表格已被删除,请刷新页面,Err:" + err.Error()
 			return
@@ -297,7 +297,7 @@ func (this *ExcelInfoController) Refresh() {
 	// 获取数据详情
 	excelDetail, errMsg, err := excel2.GetExcelDetailInfoByExcelInfoId(uniqueCode, this.Lang)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该表格已被删除,请刷新页面"
 			br.ErrMsg = "该表格已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 1 - 1
controllers/table.go

@@ -53,7 +53,7 @@ func (this *TableController) TableInfoDetail() {
 
 	tableInfo, err := models.GetTableInfoByUniqueCode(uniqueCode)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			br.Msg = "该表格已被删除,请刷新页面"
 			br.ErrMsg = "该表格已被删除,请刷新页面,Err:" + err.Error()
 			return

+ 2 - 2
models/data_manage/edb_info.go

@@ -108,7 +108,7 @@ func GetEdbInfoByIdList(edbInfoIdList []int) (items []*EdbInfo, err error) {
 
 func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
 	calculateList, err := GetEdbInfoCalculateMap(edbInfoId, source)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		return
 	}
 	for _, item := range calculateList {
@@ -148,7 +148,7 @@ func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculate
 
 // func GetRefreshEdbInfoFromBase(edbInfoId, source int) (baseEdbInfoArr, calculateInfoArr []*EdbInfo, err error) {
 // 	calculateList, err := GetEdbInfoCalculateMap(edbInfoId, source)
-// 	if err != nil && err.Error() != utils.ErrNoRow() {
+// 	if err != nil && !utils.IsErrNoRow() {
 // 		return
 // 	}
 // 	for _, item := range calculateList {

+ 3 - 3
services/data/chart_theme.go

@@ -17,7 +17,7 @@ import (
 // @return err error
 func GetChartThemeConfig(chartThemeId, source, chartType int) (chartTheme *chart_theme.ChartTheme, err error) {
 	chartTheme, err = chart_theme.GetChartThemeId(chartThemeId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		return
 	}
 
@@ -46,7 +46,7 @@ func GetChartThemeConfig(chartThemeId, source, chartType int) (chartTheme *chart
 
 	// 寻找默认的主题id
 	chartTheme, err = chart_theme.GetChartThemeId(chartThemeType.DefaultChartThemeId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		return
 	}
 
@@ -107,4 +107,4 @@ func ConvertOldChartOptions(config string) (newConfig string, err error) {
 	newThemeStr, _ := json.Marshal(newTheme)
 	newConfig = string(newThemeStr)
 	return
-}
+}

+ 5 - 4
services/data/edb_info.go

@@ -7,10 +7,11 @@ import (
 	"eta_gn/eta_chart_lib/services/alarm_msg"
 	"eta_gn/eta_chart_lib/utils"
 	"fmt"
-	"github.com/shopspring/decimal"
 	"math"
 	"sort"
 	"time"
+
+	"github.com/shopspring/decimal"
 )
 
 // EdbInfoRefreshAllFromBaseBak
@@ -93,7 +94,7 @@ func EdbInfoRefreshAllFromBaseBak(edbInfoIdList []int, refreshAll bool) (err err
 
 		//maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
 		//if err != nil {
-		//	if err.Error() == utils.ErrNoRow() { //找不到数据,那么就进入到下一条数据做处理
+		//	if utils.IsErrNoRow() { //找不到数据,那么就进入到下一条数据做处理
 		//		continue
 		//	}
 		//	return err
@@ -317,7 +318,7 @@ func EdbInfoRefreshAllFromBaseBak(edbInfoIdList []int, refreshAll bool) (err err
 // getRefreshEdbInfoList 获取待更新的指标(普通基础指标、普通运算指标,预测运算指标)
 func getRefreshEdbInfoListByIds(edbInfoIdList []int) (newBaseEdbInfoArr, newBasePredictEdbInfoArr []*data_manage.EdbInfo, newCalculateMap, newPredictCalculateMap map[int]*data_manage.EdbInfo, calculateArr, predictCalculateArr []int, err error, errMsg string) {
 	calculateList, err := data_manage.GetEdbInfoAllCalculateByEdbInfoIdList(edbInfoIdList)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		err = errors.New("GetEdbInfoAllCalculate Err:" + err.Error())
 		return
 	}
@@ -696,7 +697,7 @@ func edbInfoRefreshAll(refreshAll bool, newBaseEdbInfoArr, newBasePredictEdbInfo
 
 		//maxAndMinItem, err := data_manage.GetEdbInfoMaxAndMinInfo(source, edbCode)
 		//if err != nil {
-		//	if err.Error() == utils.ErrNoRow() { //找不到数据,那么就进入到下一条数据做处理
+		//	if utils.IsErrNoRow() { //找不到数据,那么就进入到下一条数据做处理
 		//		continue
 		//	}
 		//	return err

+ 4 - 3
services/data/excel/balance_table.go

@@ -8,11 +8,12 @@ import (
 	"eta_gn/eta_chart_lib/models/request"
 	"eta_gn/eta_chart_lib/utils"
 	"fmt"
-	"github.com/shopspring/decimal"
-	"github.com/xuri/excelize/v2"
 	"strconv"
 	"strings"
 	"time"
+
+	"github.com/shopspring/decimal"
+	"github.com/xuri/excelize/v2"
 )
 
 // 将表格信息转化成指标数据
@@ -80,7 +81,7 @@ func GetBalanceExcelChartSingle(chartInfoId, ChartEdbId int, lang string) (mappi
 	excelInfoId := mappingListTmp[0].ExcelInfoId
 	excelInfo, err := excel.GetExcelInfoById(excelInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			errMsg = "表格不存在"
 			err = fmt.Errorf(errMsg)
 			return

+ 1 - 1
services/data/excel/excel_info.go

@@ -1125,7 +1125,7 @@ func GetExcelDetailInfoByExcelInfoId(uniqueCode, lang string) (excelDetail excel
 	excelInfo, err := excel.GetExcelInfoByUniqueCode(uniqueCode)
 	if err != nil {
 		err = errors.New("获取ETA表格信息失败,Err:" + err.Error())
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			errMsg = "ETA表格被删除,请刷新页面"
 			err = errors.New("ETA表格被删除,请刷新页面,Err:" + err.Error())
 		}

+ 4 - 3
services/data/predict_edb_info.go

@@ -6,9 +6,10 @@ import (
 	"eta_gn/eta_chart_lib/models"
 	"eta_gn/eta_chart_lib/models/data_manage"
 	"eta_gn/eta_chart_lib/utils"
-	"github.com/shopspring/decimal"
 	"strconv"
 	"time"
+
+	"github.com/shopspring/decimal"
 )
 
 // GetPredictEdbDayList 获取预测指标日期列表
@@ -104,7 +105,7 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, startDate,
 	}
 	// 查找该预测指标配置
 	predictEdbConfList, err := data_manage.GetPredictEdbConfListById(edbInfo.EdbInfoId)
-	if err != nil && err.Error() != utils.ErrNoRow() {
+	if err != nil && !utils.IsErrNoRow(err) {
 		errMsg = "获取预测指标配置信息失败"
 		return
 	}
@@ -123,7 +124,7 @@ func GetPredictDataListByPredictEdbInfo(edbInfo *data_manage.EdbInfo, startDate,
 	// 来源指标
 	sourceEdbInfoItem, err = data_manage.GetEdbInfoById(predictEdbConf.SourceEdbInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			errMsg = "找不到来源指标信息"
 			err = errors.New(errMsg)
 		}

+ 6 - 5
services/data/range_analysis/chart_info.go

@@ -9,9 +9,10 @@ import (
 	"eta_gn/eta_chart_lib/services/data"
 	"eta_gn/eta_chart_lib/utils"
 	"fmt"
-	"github.com/shopspring/decimal"
 	"math"
 	"time"
+
+	"github.com/shopspring/decimal"
 )
 
 // GetAutoCalculateDateDataList 获取当前时间相关的区间作为计算依据
@@ -521,7 +522,7 @@ func GetChartDataByEdbInfoListBySeries(chartInfoId int, dateType, startYear int,
 	chartSeriesOb := new(data_manage.FactorEdbSeriesChartMapping)
 	seriesMappingItem, err := chartSeriesOb.GetItemByChartInfoId(chartInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			err = fmt.Errorf("图表关联关系不存在")
 			return
 		} else {
@@ -842,7 +843,7 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 	if chartInfoId > 0 {
 		chartInfo, err = models.GetChartInfoById(chartInfoId)
 		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
+			if utils.IsErrNoRow(err) {
 				errMsg = "图表已被删除,请刷新页面"
 				err = errors.New(errMsg)
 				return
@@ -854,7 +855,7 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 	} else {
 		chartInfo, err = models.GetChartInfoByUniqueCode(uniqueCode)
 		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
+			if utils.IsErrNoRow(err) {
 				errMsg = "图表已被删除,请刷新页面"
 				err = errors.New(errMsg)
 				return
@@ -896,7 +897,7 @@ func ChartInfoRefresh(chartInfoId int, uniqueCode string) (isAsync bool, err err
 	chartSeriesOb := new(data_manage.FactorEdbSeriesChartMapping)
 	seriesMappingItem, err := chartSeriesOb.GetItemByChartInfoId(chartInfo.ChartInfoId)
 	if err != nil {
-		if err.Error() == utils.ErrNoRow() {
+		if utils.IsErrNoRow(err) {
 			err = nil
 		} else {
 			err = fmt.Errorf("获取图表关联失败, Err: " + err.Error())

+ 12 - 0
utils/common.go

@@ -27,6 +27,7 @@ import (
 	"time"
 
 	"github.com/shopspring/decimal"
+	"gorm.io/gorm"
 )
 
 // 随机数种子
@@ -211,6 +212,17 @@ func ErrNoRow() string {
 	return "<QuerySeter> no row found"
 }
 
+// IsErrNoRow
+// @Description: 判断是否是gorm的查询不到数据的报错
+// @param err
+// @return bool
+func IsErrNoRow(err error) bool {
+	if err == nil {
+		return false
+	}
+	return errors.Is(err, gorm.ErrRecordNotFound)
+}
+
 // 校验邮箱格式
 func ValidateEmailFormatat(email string) bool {
 	reg := regexp.MustCompile(RegularEmail)