forked from free-lancers/electricity_bill_calc_service
		
	enhance(charge):服务延期记录序号改为自增长。
This commit is contained in:
		@@ -8,7 +8,7 @@ import (
 | 
			
		||||
 | 
			
		||||
type UserCharge struct {
 | 
			
		||||
	Created     `xorm:"extends"`
 | 
			
		||||
	Seq         int64               `xorm:"bigint pk not null" json:"seq"`
 | 
			
		||||
	Seq         int64               `xorm:"bigint pk not null autoincr" json:"seq"`
 | 
			
		||||
	UserId      string              `xorm:"varchar(120) not null" json:"userId"`
 | 
			
		||||
	Fee         decimal.NullDecimal `xorm:"numeric(12,2)" json:"fee"`
 | 
			
		||||
	Discount    decimal.NullDecimal `xorm:"numeric(5,4)" json:"discount"`
 | 
			
		||||
 
 | 
			
		||||
@@ -5,7 +5,6 @@ import (
 | 
			
		||||
	"electricity_bill_calc/global"
 | 
			
		||||
	"electricity_bill_calc/model"
 | 
			
		||||
	"electricity_bill_calc/repository"
 | 
			
		||||
	"electricity_bill_calc/utils"
 | 
			
		||||
	"time"
 | 
			
		||||
 | 
			
		||||
	"xorm.io/builder"
 | 
			
		||||
@@ -17,25 +16,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
 | 
			
		||||
		}
 | 
			
		||||
	})
 | 
			
		||||
	// 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
 | 
			
		||||
	}
 | 
			
		||||
	charge.Seq = maxSeq + 1
 | 
			
		||||
	_, err = tx.Insert(charge)
 | 
			
		||||
	charge.Seq = 0
 | 
			
		||||
	_, err := tx.Insert(charge)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		tx.Rollback()
 | 
			
		||||
		return err
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user