|
|
@@ -97,6 +97,7 @@ func (s Service) List(req model.ListReq) ([]accountModel.SettleAccountMain, int,
|
|
|
// 新增
|
|
|
func (s Service) Add(req accountModel.AccountMainAddReq, user request.UserInfo) error {
|
|
|
now := gtime.Now() // 获取当前时间
|
|
|
+ var baseAccount accountModel.BaseAccount
|
|
|
|
|
|
// 更新必要信息
|
|
|
req.Main.CreateUserId = int(user.Id)
|
|
|
@@ -106,6 +107,17 @@ func (s Service) Add(req accountModel.AccountMainAddReq, user request.UserInfo)
|
|
|
req.Main.UpdateBy = user.RealName
|
|
|
req.Main.UpdateOn = now
|
|
|
|
|
|
+ // 获取账户
|
|
|
+ result1, err := s.Dao.DB.Model("base_account").Where(fmt.Sprintf("MainUserId='%v'", req.Main.MainUserId)).Order("Advance ASC").FindOne()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = result1.Struct(&baseAccount)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ baseAccount.Available -= req.Main.TotalPrice // 账户可用金额计算
|
|
|
+
|
|
|
tx, err := s.Dao.DB.Begin()
|
|
|
if err != nil {
|
|
|
return err
|
|
|
@@ -133,6 +145,12 @@ func (s Service) Add(req accountModel.AccountMainAddReq, user request.UserInfo)
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+ _, err = tx.Save("base_account", baseAccount)
|
|
|
+ if err != nil {
|
|
|
+ tx.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
return tx.Commit()
|
|
|
}
|
|
|
|
|
|
@@ -153,6 +171,7 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq, user request.User
|
|
|
}
|
|
|
var main accountModel.SettleAccountMain
|
|
|
var details []accountModel.SettleAccountDetail
|
|
|
+ var baseAccount accountModel.BaseAccount
|
|
|
var rules []Param
|
|
|
now := gtime.Now()
|
|
|
per := float64(0)
|
|
|
@@ -194,6 +213,16 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq, user request.User
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+ // 获取账户
|
|
|
+ result1, err := s.Dao.DB.Model("base_account").Where(fmt.Sprintf("MainUserId='%v'", main.MainUserId)).Order("Advance ASC").FindOne()
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ err = result1.Struct(&baseAccount)
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
var detail accountModel.SettleAccountDetail
|
|
|
detail.PaymentType = "1"
|
|
|
detail.PaymentAccount = 0
|
|
|
@@ -229,7 +258,11 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq, user request.User
|
|
|
detail.PaymentAccount += item.PaymentAccount * per
|
|
|
}
|
|
|
|
|
|
+ oldAmount := main.TotalPrice
|
|
|
main.TotalPrice = detail.PaymentAccount
|
|
|
+ diffValue := oldAmount - detail.PaymentAccount
|
|
|
+
|
|
|
+ baseAccount.Available += diffValue // 账户可用金额返还
|
|
|
|
|
|
tx, err := s.Dao.DB.Begin()
|
|
|
if err != nil {
|
|
|
@@ -254,6 +287,12 @@ func (s Service) Cancel(req accountModel.AccountMainCancelReq, user request.User
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
+ _, err = tx.Save("base_account", baseAccount)
|
|
|
+ if err != nil {
|
|
|
+ tx.Rollback()
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
return tx.Commit()
|
|
|
}
|
|
|
|