Parcourir la source

test

tags/v4.3.1
huangjiajun il y a 1 an
Parent
révision
81f4507ffe
1 fichiers modifiés avec 15 ajouts et 6 suppressions
  1. +15
    -6
      rule/self_buy_global.go

+ 15
- 6
rule/self_buy_global.go Voir le fichier

@@ -78,7 +78,7 @@ func Pool(eg *xorm.Engine, price string) error {
}
//统计数量
//礼包的
sql := `SELECT SUM(sum) as sum,uid FROM mall_ord_capital_pool_total WHERE leave_price>0 and type=1 GROUP BY uid;`
sql := `SELECT SUM(num) as sum,uid FROM mall_ord_capital_pool_total WHERE leave_price>0 and type=1 GROUP BY uid;`
nativeString, err := db.QueryNativeStringSess(session, sql)
if err != nil {
session.Rollback()
@@ -107,6 +107,10 @@ func Pool(eg *xorm.Engine, price string) error {
newIds = append(newIds, v["uid"])
}
}
if sum == 0 {
session.Rollback()
return errors.New("没有分配份数")
}
oneMoney := zhios_order_relate_utils.StrToFloat64(price) / float64(sum)
//金额小的先扣 扣不完 给下一个
var userMap = make(map[string]float64)
@@ -136,7 +140,7 @@ func Pool(eg *xorm.Engine, price string) error {
session.Rollback()
return err
}
if has {
if has && zhios_order_relate_utils.StrToFloat64(oneData.LeavePrice) > 0 {
//先扣除 剩下的进损失
if zhios_order_relate_utils.StrToFloat64(oneData.LeavePrice)-leave < 0 {
leave = leave - zhios_order_relate_utils.StrToFloat64(oneData.LeavePrice)
@@ -157,7 +161,7 @@ func Pool(eg *xorm.Engine, price string) error {
session.Rollback()
return err
}
userSumMap[v] -= leave
leave = 0
}
userMap[v] = leave
@@ -191,7 +195,7 @@ func Pool(eg *xorm.Engine, price string) error {
session.Rollback()
return err
}
if has {
if has && zhios_order_relate_utils.StrToFloat64(oneData.LeavePrice) > 0 {
//先扣除 剩下的进损失
if zhios_order_relate_utils.StrToFloat64(oneData.LeavePrice)-leave < 0 {
leave = leave - zhios_order_relate_utils.StrToFloat64(oneData.LeavePrice)
@@ -215,10 +219,13 @@ func Pool(eg *xorm.Engine, price string) error {
session.Rollback()
return err
}
userSumMap[v["uid"]] -= oneMoney
userSumMap[v["uid"]] -= leave
}
}
for k, v := range userSumMap {
if v <= 0 {
continue
}
bools := Finflow(session, k, v)
if bools == false {
session.Rollback()
@@ -238,8 +245,10 @@ func Pool(eg *xorm.Engine, price string) error {
}
func OneDoing(sess *xorm.Session, data model.MallOrdCapitalPoolTotal, oneMoney, leave float64) (float64, error) {
money := oneMoney + leave
if zhios_order_relate_utils.StrToFloat64(data.LeavePrice) <= 0 {
return money, nil
}
if zhios_order_relate_utils.StrToFloat64(data.LeavePrice)-money < 0 {
money = zhios_order_relate_utils.StrToFloat64(data.LeavePrice)
leave = money - zhios_order_relate_utils.StrToFloat64(data.LeavePrice)
data.LeavePrice = "0"
} else {


Chargement…
Annuler
Enregistrer