diff --git a/service/end_user.go b/service/end_user.go index f539037..8f50802 100644 --- a/service/end_user.go +++ b/service/end_user.go @@ -12,6 +12,7 @@ import ( "github.com/samber/lo" "github.com/shopspring/decimal" "xorm.io/builder" + "xorm.io/xorm" "xorm.io/xorm/schemas" ) @@ -55,6 +56,29 @@ func (_EndUserService) AllEndUserRecord(reportId string) ([]model.EndUserDetail, return users, err } +func (_EndUserService) UpdateEndUserRegisterRecord(tx *xorm.Session, record model.EndUserDetail) (err error) { + record.CalculatePeriod() + _, err = tx.ID(schemas.NewPK(record.ReportId, record.ParkId, record.MeterId)). + Cols( + "current_period_overall", + "adjust_overall", + "current_period_critical", + "current_period_peak", + "current_period_flat", + "current_perios_valley", + "adjust_critical", + "adjust_peak", + "adjust_flat", + "adjust_valley", + ). + Update(record) + return +} + +func (_EndUserService) newVirtualExcelAnalysisError(err error) *excel.ExcelAnalysisError { + return &excel.ExcelAnalysisError{Col: -1, Row: -1, Err: excel.AnalysisError{Err: err}} +} + func (es _EndUserService) BatchImportNonPVRegister(reportId string, file io.Reader) *exceptions.BatchError { errs := exceptions.NewBatchError() users, err := es.AllEndUserRecord(reportId) @@ -99,21 +123,7 @@ func (es _EndUserService) BatchImportNonPVRegister(reportId string, file io.Read elem.AdjustCritical = decimal.Zero elem.AdjustPeak = decimal.Zero elem.AdjustValley = decimal.Zero - elem.CalculatePeriod() - _, err = tx.ID(schemas.NewPK(elem.ReportId, elem.ParkId, elem.MeterId)). - Cols( - "current_period_overall", - "adjust_overall", - "current_period_critical", - "current_period_peak", - "current_period_flat", - "current_perios_valley", - "adjust_critical", - "adjust_peak", - "adjust_flat", - "adjust_valley", - ). - Update(elem) + err := es.UpdateEndUserRegisterRecord(tx, elem) if err != nil { errs.AddError(es.newVirtualExcelAnalysisError(err)) } @@ -134,10 +144,6 @@ func (es _EndUserService) BatchImportNonPVRegister(reportId string, file io.Read return errs } -func (_EndUserService) newVirtualExcelAnalysisError(err error) *excel.ExcelAnalysisError { - return &excel.ExcelAnalysisError{Col: -1, Row: -1, Err: excel.AnalysisError{Err: err}} -} - func (es _EndUserService) BatchImportPVRegister(reportId string, file io.Reader) *exceptions.BatchError { errs := exceptions.NewBatchError() users, err := es.AllEndUserRecord(reportId) @@ -182,21 +188,7 @@ func (es _EndUserService) BatchImportPVRegister(reportId string, file io.Reader) elem.AdjustCritical = im.AdjustCritical.Decimal elem.AdjustPeak = im.AdjustPeak.Decimal elem.AdjustValley = im.AdjustValley.Decimal - elem.CalculatePeriod() - _, err = tx.ID(schemas.NewPK(elem.ReportId, elem.ParkId, elem.MeterId)). - Cols( - "current_period_overall", - "adjust_overall", - "current_period_critical", - "current_period_peak", - "current_period_flat", - "current_perios_valley", - "adjust_critical", - "adjust_peak", - "adjust_flat", - "adjust_valley", - ). - Update(elem) + err := es.UpdateEndUserRegisterRecord(tx, elem) if err != nil { errs.AddError(es.newVirtualExcelAnalysisError(err)) }