enhance(charge):完成用户服务延期功能的测试。

This commit is contained in:
徐涛
2022-08-15 16:56:56 +08:00
parent f033691aa4
commit 224ae9b07d
4 changed files with 62 additions and 16 deletions

View File

@@ -5,6 +5,7 @@ import (
"electricity_bill_calc/global"
"electricity_bill_calc/model"
"electricity_bill_calc/repository"
"electricity_bill_calc/utils"
"time"
"xorm.io/builder"
@@ -16,12 +17,25 @@ type _ChargeService struct{}
var ChargeService _ChargeService
func (c _ChargeService) CreateChargeRecord(charge *model.UserCharge, extendWithIgnoreSettle bool) error {
var seqs = make([]int64, 0)
err := global.DBConn.Table(&model.UserCharge{}).Cols("seq").Find(&seqs)
if err != nil {
return err
}
maxSeq := utils.Reduce(seqs, 0, func(acc, elem int64) int64 {
if elem > acc {
return elem
} else {
return acc
}
})
tx := global.DBConn.NewSession()
defer tx.Close()
if err := tx.Begin(); err != nil {
return err
}
_, err := tx.Insert(charge)
charge.Seq = maxSeq + 1
_, err = tx.Insert(charge)
if err != nil {
tx.Rollback()
return err
@@ -121,9 +135,18 @@ func (c _ChargeService) CancelCharge(seq int64, uid string) error {
tx.Rollback()
return exceptions.NewNotFoundError("未找到匹配指定条件的计费记录。")
}
lastValidExpriation, err := repository.ChargeRepo.LastValidChargeTo(uid)
err = tx.Commit()
if err != nil {
tx.Rollback()
return err
}
tx = global.DBConn.NewSession()
defer tx.Close()
if err := tx.Begin(); err != nil {
return err
}
lastValidExpriation, err := repository.ChargeRepo.LastValidChargeTo(uid)
if err != nil {
return exceptions.NewNotFoundError("未找到最后合法的计费时间。")
}
err = c.updateUserExpiration(tx, uid, lastValidExpriation)