|
@@ -216,24 +216,56 @@ func (m *ClientPayTrans) SettleAdd(merchantAmount, clientAmount decimal.Decimal,
|
|
|
}
|
|
|
amountPreMerchant = merchantAccount.Amount
|
|
|
|
|
|
- err = tx.Table("merchant_client_account").Select("*").Where("client_open_id = ?", clientOpenId).Find(&clientAccount).Error
|
|
|
- if err != nil && err.Error() != "record not found" {
|
|
|
- return err
|
|
|
- }
|
|
|
+ if clientOpenId != "" { //原始码不抽佣金
|
|
|
+ err = tx.Table("merchant_client_account").Select("*").Where("client_open_id = ?", clientOpenId).Find(&clientAccount).Error
|
|
|
+ if err != nil && err.Error() != "record not found" {
|
|
|
+ return err
|
|
|
+ }
|
|
|
|
|
|
- if clientAccount.ID == 0 {
|
|
|
- clientAccount.ClientOpenID = clientOpenId
|
|
|
- clientAccount.Version = 1
|
|
|
- clientAccount.UpdatedAt = time.Now()
|
|
|
- clientAccount.CreatedAt = time.Now()
|
|
|
- err = tx.Table("merchant_client_account").Create(&clientAccount).Error
|
|
|
+ if clientAccount.ID == 0 {
|
|
|
+ clientAccount.ClientOpenID = clientOpenId
|
|
|
+ clientAccount.Version = 1
|
|
|
+ clientAccount.UpdatedAt = time.Now()
|
|
|
+ clientAccount.CreatedAt = time.Now()
|
|
|
+ err = tx.Table("merchant_client_account").Create(&clientAccount).Error
|
|
|
+ if err != nil {
|
|
|
+ return err
|
|
|
+ }
|
|
|
+ }
|
|
|
+ amountPreClient = clientAccount.Amount
|
|
|
+
|
|
|
+ clientAmountAdd := clientAccount.Amount.Add(clientAmount)
|
|
|
+ result := tx.Table("merchant_client_account").Model(&clientAccount).Where("client_open_id = ? and version = ?", clientOpenId, clientAccount.Version).Updates(
|
|
|
+ map[string]interface{}{
|
|
|
+ "amount": clientAmountAdd,
|
|
|
+ "version": clientAccount.Version + 1,
|
|
|
+ "updated_at": time.Now()})
|
|
|
+ if result.Error != nil {
|
|
|
+ return result.Error
|
|
|
+ }
|
|
|
+
|
|
|
+ if result.RowsAffected <= 0 {
|
|
|
+ err = errors.New("rows is zero")
|
|
|
+ return err
|
|
|
+ }
|
|
|
+
|
|
|
+ var clientAccountLog MerchantClientAccountLog
|
|
|
+
|
|
|
+ clientAccountLog.ClientOpenID = clientOpenId
|
|
|
+ clientAccountLog.UpdatedAt = time.Now()
|
|
|
+ clientAccountLog.AmountPre = amountPreClient
|
|
|
+ clientAccountLog.AmountAfter = clientAmountAdd
|
|
|
+ clientAccountLog.ReviewAmountAfter = clientAccount.ReviewAmount
|
|
|
+ clientAccountLog.ReviewAmountPre = clientAccount.ReviewAmount
|
|
|
+ clientAccountLog.Amount = clientAmount
|
|
|
+ clientAccountLog.PayTransId = payTransId
|
|
|
+
|
|
|
+ err = tx.Table("merchant_client_account_log").Create(&clientAccountLog).Error
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- amountPreClient = clientAccount.Amount
|
|
|
-
|
|
|
//做金额加减操作并且入日志库
|
|
|
merchantAmountAdd := merchantAccount.Amount.Add(merchantAmount)
|
|
|
result := tx.Table("merchant_account").Model(&merchantAccount).Where("merchant_open_id = ? and version = ?", merchantOpenId, merchantAccount.Version).Updates(
|
|
@@ -268,37 +300,6 @@ func (m *ClientPayTrans) SettleAdd(merchantAmount, clientAmount decimal.Decimal,
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- clientAmountAdd := clientAccount.Amount.Add(clientAmount)
|
|
|
- result = tx.Table("merchant_client_account").Model(&clientAccount).Where("client_open_id = ? and version = ?", clientOpenId, clientAccount.Version).Updates(
|
|
|
- map[string]interface{}{
|
|
|
- "amount": clientAmountAdd,
|
|
|
- "version": clientAccount.Version + 1,
|
|
|
- "updated_at": time.Now()})
|
|
|
- if result.Error != nil {
|
|
|
- return result.Error
|
|
|
- }
|
|
|
-
|
|
|
- if result.RowsAffected <= 0 {
|
|
|
- err = errors.New("rows is zero")
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
- var clientAccountLog MerchantClientAccountLog
|
|
|
-
|
|
|
- clientAccountLog.ClientOpenID = clientOpenId
|
|
|
- clientAccountLog.UpdatedAt = time.Now()
|
|
|
- clientAccountLog.AmountPre = amountPreClient
|
|
|
- clientAccountLog.AmountAfter = clientAmountAdd
|
|
|
- clientAccountLog.ReviewAmountAfter = clientAccount.ReviewAmount
|
|
|
- clientAccountLog.ReviewAmountPre = clientAccount.ReviewAmount
|
|
|
- clientAccountLog.Amount = clientAmount
|
|
|
- clientAccountLog.PayTransId = payTransId
|
|
|
-
|
|
|
- err = tx.Table("merchant_client_account_log").Create(&clientAccountLog).Error
|
|
|
- if err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
-
|
|
|
return nil
|
|
|
|
|
|
}
|