forked from free-lancers/electricity_bill_calc_service
feat(charge):基本完成所有用户服务延期记录部分的功能,待测。
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"electricity_bill_calc/config"
|
||||
"electricity_bill_calc/global"
|
||||
"electricity_bill_calc/model"
|
||||
"electricity_bill_calc/utils"
|
||||
"time"
|
||||
|
||||
"xorm.io/builder"
|
||||
@@ -50,3 +51,20 @@ func (_ChargeRepository) ListPagedChargeRecord(keyword, beginDate, endDate strin
|
||||
Find(&charges)
|
||||
return charges, total, err
|
||||
}
|
||||
|
||||
func (_ChargeRepository) LastValidChargeTo(uid string) (time.Time, error) {
|
||||
veryBlankTime, _ := time.Parse("2006-01-02 15:04:05", "0001-01-01 00:00:00")
|
||||
var records = make([]time.Time, 0)
|
||||
err := global.DBConn.Where(builder.Eq{"settled": true, "cancelled": false, "refunded": false}).Cols("charged_to").Find(&records)
|
||||
if err != nil {
|
||||
return veryBlankTime, nil
|
||||
}
|
||||
lastValid := utils.Reduce(records, veryBlankTime, func(acc, elem time.Time) time.Time {
|
||||
if elem.After(acc) {
|
||||
return elem
|
||||
} else {
|
||||
return acc
|
||||
}
|
||||
})
|
||||
return lastValid, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user