|
|
@@ -32,7 +32,7 @@ const (
|
|
|
WX_TAKE_CASH_AMOUNT_LIMIT_MAX = 20000 //5000元
|
|
|
)
|
|
|
|
|
|
-//提货券和提货券余额
|
|
|
+// 提货券和提货券余额
|
|
|
func (self *BalanceController) GetBalanceInfo() {
|
|
|
type BalanceInfo struct {
|
|
|
Total int64 `orm:"-" json:"total"` //余额,单位分
|
|
|
@@ -56,7 +56,7 @@ func (self *BalanceController) GetBalanceInfo() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//提货券变动列表
|
|
|
+// 提货券变动列表
|
|
|
func (self *BalanceController) GetBalanceList() {
|
|
|
page, _ := self.GetInt64("page", 1)
|
|
|
perPage, _ := self.GetInt64("per_page", 20)
|
|
|
@@ -83,7 +83,7 @@ func (self *BalanceController) GetBalanceList() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//资金详情
|
|
|
+// 资金详情
|
|
|
func (self *BalanceController) GetBalanceDetail() {
|
|
|
_id := self.Ctx.Input.Param(":id")
|
|
|
id, _ := strconv.ParseInt(_id, 10, 64)
|
|
|
@@ -102,7 +102,7 @@ func (self *BalanceController) GetBalanceDetail() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//佣金详情
|
|
|
+// 佣金详情
|
|
|
func (self *BalanceController) GetCashBalanceDetail() {
|
|
|
_id := self.Ctx.Input.Param(":id")
|
|
|
id, _ := strconv.ParseInt(_id, 10, 64)
|
|
|
@@ -121,7 +121,7 @@ func (self *BalanceController) GetCashBalanceDetail() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//现金账户变动列表
|
|
|
+// 现金账户变动列表
|
|
|
func (self *BalanceController) GetCashBalanceList() {
|
|
|
page, _ := self.GetInt64("page", 1)
|
|
|
perPage, _ := self.GetInt64("per_page", 20)
|
|
|
@@ -150,7 +150,7 @@ func (self *BalanceController) GetCashBalanceList() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//现金账户信息
|
|
|
+// 现金账户信息
|
|
|
func (self *BalanceController) GetCashBalanceInfo() {
|
|
|
type BalanceInfo struct {
|
|
|
Available int64 `orm:"-" json:"available"` //对应页面上可提现余额,单位分,进账+出账
|
|
|
@@ -213,24 +213,39 @@ func (self *BalanceController) TakeCash() {
|
|
|
}
|
|
|
|
|
|
canExtract := balance_model.GetCashTotalBalance(wxUser.Id)
|
|
|
-
|
|
|
+ freeFeiCashLimit := balance_model.GetRechargeBalance(wxUser.Id)
|
|
|
+ usedLimit := balance_model.GetTakeFeeBalance(wxUser.Id)
|
|
|
+ freeFeiCash := freeFeiCashLimit - usedLimit
|
|
|
//余额不足
|
|
|
+
|
|
|
if canExtract < amount {
|
|
|
self.ReturnError(403, apps.BalanceNotEnough, "", nil)
|
|
|
}
|
|
|
+
|
|
|
//超过微信余额限制5K,按5K计算
|
|
|
if amount > WX_TAKE_CASH_AMOUNT_LIMIT_MAX {
|
|
|
amount = WX_TAKE_CASH_AMOUNT_LIMIT_MAX
|
|
|
}
|
|
|
|
|
|
+ freeAmount := int64(0)
|
|
|
+ feeAmount := int64(0) //假如提现 100,免额 50
|
|
|
+ if freeFeiCash > 0 {
|
|
|
+ if freeFeiCash < amount {
|
|
|
+ freeAmount = freeFeiCash // 用掉的额度
|
|
|
+ feeAmount = amount - freeFeiCash // 收费的部份
|
|
|
+ } else {
|
|
|
+ freeAmount = amount //用掉的额度
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
takeCashLock.Lock()
|
|
|
defer takeCashLock.Unlock()
|
|
|
|
|
|
//处理提现手续费
|
|
|
- feeTotal := float64(amount) * (float64(sys_config.GetTakeCashTax())) / float64(100)
|
|
|
+ feeTotal := float64(feeAmount) * (float64(sys_config.GetTakeCashTax())) / float64(100)
|
|
|
fee := int64(math.Floor(feeTotal + 0.5))
|
|
|
|
|
|
- o := new(balance_model.TakeCashOrder).Create(wxUser.Id, amount)
|
|
|
+ o := new(balance_model.TakeCashOrder).Create(wxUser.Id, amount, feeAmount, freeAmount)
|
|
|
if o != nil {
|
|
|
new(balance_model.CashBalance).Create(wxUser.Id, -amount, balance_model.CASH_SOURCE_TAKE_CASH,
|
|
|
o.OrderId, balance_model.CASH_SOURCE_TAKE_CASH_NAME)
|
|
|
@@ -252,7 +267,7 @@ func (self *BalanceController) TakeCash() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//获取提现限额
|
|
|
+// 获取提现限额
|
|
|
func (self *BalanceController) GetTakeCashLimit() {
|
|
|
type LimitInfo struct {
|
|
|
MinLimitCash int64 `json:"min_limit_cash"` //提现限额
|
|
|
@@ -272,7 +287,7 @@ func (self *BalanceController) GetTakeCashLimit() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//提现流列表
|
|
|
+// 提现流列表
|
|
|
func (self *BalanceController) GetTakeCashOrders() {
|
|
|
|
|
|
page, _ := self.GetInt64("page", 1)
|
|
|
@@ -329,7 +344,7 @@ func (self *BalanceController) GetTakeCashOrders() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//佣金转提货券
|
|
|
+// 佣金转提货券
|
|
|
func (self *BalanceController) TransferToBalance() {
|
|
|
//单位:分
|
|
|
amount, _ := self.GetInt64("amount")
|
|
|
@@ -389,7 +404,7 @@ func (self *BalanceController) TransferToBalance() {
|
|
|
self.ServeJSON()
|
|
|
}
|
|
|
|
|
|
-//现金账户变动列表
|
|
|
+// 现金账户变动列表
|
|
|
func (self *BalanceController) GetCashToBalanceList() {
|
|
|
page, _ := self.GetInt64("page", 1)
|
|
|
perPage, _ := self.GetInt64("per_page", 20)
|