修复商户后台的bugs,可正常运行

This commit is contained in:
kongyuebin
2021-11-11 21:57:13 +08:00
parent 5c43b3108a
commit ba02a72f55
8 changed files with 21 additions and 148 deletions

View File

@@ -13,22 +13,22 @@ import (
"fmt"
"github.com/beego/beego/v2/adapter/orm"
"github.com/beego/beego/v2/core/logs"
"merchant/conf"
"github.com/beego/beego/v2/server/web"
)
func Init() {
dbHost := conf.DB_HOST
dbUser := conf.DB_USER
dbPassword := conf.DB_PASSWORD
dbBase := conf.DB_BASE
dbPort := conf.DB_PORT
func init() {
dbHost, _ := web.AppConfig.String("mysql::dbhost")
dbUser, _ := web.AppConfig.String("mysql::dbuser")
dbPassword, _ := web.AppConfig.String("mysql::dbpasswd")
dbBase, _ := web.AppConfig.String("mysql::dbbase")
dbPort, _ := web.AppConfig.String("mysql::dbport")
link := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8", dbUser, dbPassword, dbHost, dbPort, dbBase)
logs.Info("mysql init.....", link)
orm.RegisterDriver("mysql", orm.DRMySQL)
orm.RegisterDataBase("default", "mysql", link, 30, 30)
_ = orm.RegisterDriver("mysql", orm.DRMySQL)
_ = orm.RegisterDataBase("default", "mysql", link, 30, 30)
orm.RegisterModel(new(UserInfo), new(MenuInfo), new(SecondMenuInfo),
new(PowerInfo), new(RoleInfo), new(BankCardInfo), new(RoadInfo),
new(RoadPoolInfo), new(AgentInfo), new(MerchantInfo), new(MerchantDeployInfo),

View File

@@ -1,90 +0,0 @@
/***************************************************
** @Desc : This file for ...
** @Time : 2019/10/19 14:17
** @Author : yuebin
** @File : transaction
** @Last Modified by : yuebin
** @Last Modified time: 2019/10/19 14:17
** @Software: GoLand
****************************************************/
package models
import (
"github.com/beego/beego/v2/adapter/orm"
"github.com/beego/beego/v2/core/logs"
"merchant/common"
"merchant/utils"
)
func OperatorAccount(accountUid, operatorType string, amount float64) (string, bool) {
o := orm.NewOrm()
o.Begin()
defer func(interface{}) {
if r := recover(); r != nil {
o.Rollback()
logs.Error("operator account fail")
}
}(o)
msg := ""
//处理事务
accountInfo := new(AccountInfo)
if err := o.Raw("select * from account_info where account_uid = ? for update", accountUid).QueryRow(accountInfo); err != nil || accountInfo.AccountUid == "" {
logs.Error("operator account get account info for update fail: ", err)
o.Rollback()
return msg, false
}
accountInfo.UpdateTime = utils.GetBasicDateTime()
flag := true
switch operatorType {
case common.PLUS_AMOUNT: //处理加款操作
accountInfo.Balance = accountInfo.Balance + amount
accountInfo.SettleAmount = accountInfo.SettleAmount + amount
case common.SUB_AMOUNT: //处理减款
if accountInfo.Balance >= amount && accountInfo.SettleAmount >= amount {
accountInfo.Balance = accountInfo.Balance - amount
accountInfo.SettleAmount = accountInfo.SettleAmount - amount
} else {
msg = "账户余额不够减"
flag = false
}
case common.FREEZE_AMOUNT: //处理冻结款
accountInfo.FreezeAmount = accountInfo.FreezeAmount + amount
case common.UNFREEZE_AMOUNT: //处理解冻款
if accountInfo.FreezeAmount >= amount {
accountInfo.FreezeAmount = accountInfo.FreezeAmount - amount
} else {
msg = "账户冻结金额不够解冻款"
flag = false
}
}
if !flag {
o.Rollback()
return msg, false
}
if _, err := o.Update(accountInfo); err != nil {
logs.Error("operator account update account fail: ", err)
o.Rollback()
return msg, false
}
//往account_history表中插入一条动账记录
accountHistory := AccountHistoryInfo{AccountUid: accountUid, AccountName: accountInfo.AccountName, Type: operatorType,
Amount: amount, Balance: accountInfo.Balance, CreateTime: utils.GetBasicDateTime(), UpdateTime: utils.GetBasicDateTime()}
if _, err := o.Insert(&accountHistory); err != nil {
logs.Error("operator account insert account history fail: ", err)
o.Rollback()
return msg, false
}
if err := o.Commit(); err != nil {
logs.Error("operator account commit fail: ", err)
return msg, false
} else {
logs.Info("操作账户成功")
return "", true
}
}