|
|
@@ -91,8 +91,7 @@ func ActivityCoinAutoExchangeGreenEnergyNew(engine *xorm.Engine, masterId string |
|
|
|
MasterId: masterId, |
|
|
|
Uid: v.Uid, |
|
|
|
Amount: v.Amount, |
|
|
|
CoinId1: coin1.Id, |
|
|
|
CoinId2: coin2.Id, |
|
|
|
CoinId: coin1.Id, |
|
|
|
AutoExchangeNumsAmount: autoExchangeNumsByPersonAmount, |
|
|
|
}, md.OneCirclesRoutKeyForAutoExchangeGreenEnergyToPerson) |
|
|
|
} |
|
|
@@ -105,8 +104,7 @@ func ActivityCoinAutoExchangeGreenEnergyNew(engine *xorm.Engine, masterId string |
|
|
|
MasterId: masterId, |
|
|
|
Uid: v.Uid, |
|
|
|
Amount: v.Amount, |
|
|
|
CoinId1: coin1.Id, |
|
|
|
CoinId2: coin2.Id, |
|
|
|
CoinId: coin2.Id, |
|
|
|
AutoExchangeNumsAmount: autoExchangeNumsByTeamAmount, |
|
|
|
}, md.OneCirclesRoutKeyForAutoExchangeGreenEnergyToTeam) |
|
|
|
} |
|
|
@@ -114,8 +112,8 @@ func ActivityCoinAutoExchangeGreenEnergyNew(engine *xorm.Engine, masterId string |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// ActivityCoinAutoExchangeGreenEnergy 活跃积分自动兑换成绿色能量 |
|
|
|
func ActivityCoinAutoExchangeGreenEnergy(engine *xorm.Engine, masterId string) (err error) { |
|
|
|
// OldActivityCoinAutoExchangeGreenEnergy 活跃积分自动兑换成绿色能量 |
|
|
|
func OldActivityCoinAutoExchangeGreenEnergy(engine *xorm.Engine, masterId string) (err error) { |
|
|
|
//1、查找 `one_circles_green_energy_basic_setting` 基础设置 && `one_circles_public_platoon_basic_setting` 基础设置 |
|
|
|
oneCirclesGreenEnergyBasicSetting, err := db.OneCirclesGreenEnergyBasicSettingGetOneByParams(engine, map[string]interface{}{ |
|
|
|
"key": "is_open", |
|
|
@@ -243,8 +241,8 @@ func ActivityCoinAutoExchangeGreenEnergy(engine *xorm.Engine, masterId string) ( |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// ActivityCoinAutoExchangeGreenEnergyForTeam 活跃积分自动兑换成绿色能量 |
|
|
|
func ActivityCoinAutoExchangeGreenEnergyForTeam(engine *xorm.Engine, masterId string) (err error) { |
|
|
|
// OldActivityCoinAutoExchangeGreenEnergyForTeam 活跃积分自动兑换成绿色能量 |
|
|
|
func OldActivityCoinAutoExchangeGreenEnergyForTeam(engine *xorm.Engine, masterId string) (err error) { |
|
|
|
//1、查找 `one_circles_green_energy_basic_setting` 基础设置 && `one_circles_public_platoon_basic_setting` 基础设置 |
|
|
|
oneCirclesGreenEnergyBasicSetting, err := db.OneCirclesGreenEnergyBasicSettingGetOneByParams(engine, map[string]interface{}{ |
|
|
|
"key": "is_open", |
|
|
@@ -371,3 +369,133 @@ func ActivityCoinAutoExchangeGreenEnergyForTeam(engine *xorm.Engine, masterId st |
|
|
|
} |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// ActivityCoinAutoExchangeGreenEnergy 活跃积分自动兑换成绿色能量(个人) |
|
|
|
func ActivityCoinAutoExchangeGreenEnergy(engine *xorm.Engine, masterId string, ch *rabbit.Channel) (err error) { |
|
|
|
//1、查找`one_circles_public_platoon_basic_setting` 基础设置 |
|
|
|
oneCirclesPublicPlatoonBasicSetting, err := db.OneCirclesPublicPlatoonBasicSettingGetOneByParams(engine, map[string]interface{}{ |
|
|
|
"key": "is_open", |
|
|
|
"value": 1, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
if oneCirclesPublicPlatoonBasicSetting.ExchangeRules == "" { |
|
|
|
err = errors.New("自动兑换未设置!") |
|
|
|
return |
|
|
|
} |
|
|
|
var exchangeRulesStruct *md2.ExchangeRulesStruct |
|
|
|
err = json.Unmarshal([]byte(oneCirclesPublicPlatoonBasicSetting.ExchangeRules), &exchangeRulesStruct) |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
var autoExchangeNumsByPerson = zhios_order_relate_utils.StrToFloat64(exchangeRulesStruct.AutoExchangeNumsByPerson) //个人活跃积分X个自动兑换 |
|
|
|
fmt.Println("autoExchangeNumsByPerson>>>>>>>>>>>>", autoExchangeNumsByPerson) |
|
|
|
|
|
|
|
//2、获取"个人活跃积分" && 获取"团队活跃积分" |
|
|
|
var coin1, coin2 model.VirtualCoin |
|
|
|
_, err = engine.Where("id = ?", oneCirclesPublicPlatoonBasicSetting.PersonActivePointsCoinId).Get(&coin1) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
_, err = engine.Where("id = ?", oneCirclesPublicPlatoonBasicSetting.TeamActivePointsCoinId).Get(&coin2) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
personActivePointsCoinExchangeRatioValue, _ := decimal.NewFromString(coin1.ExchangeRatio) |
|
|
|
|
|
|
|
//3、当前 "个人活跃积分"可以自动兑换的用户数据 && "团队活跃积分"可以自动兑换的用户数据 |
|
|
|
var list1 []model.UserVirtualAmount |
|
|
|
err = engine.Where("coin_id = ?", oneCirclesPublicPlatoonBasicSetting.PersonActivePointsCoinId).And("amount >=?", autoExchangeNumsByPerson).Find(&list1) |
|
|
|
if err != nil { |
|
|
|
fmt.Println("err:::::1111", err) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
session := engine.NewSession() |
|
|
|
defer func() { |
|
|
|
session.Close() |
|
|
|
if err := recover(); err != nil { |
|
|
|
_ = zhios_order_relate_logx.Error(err) |
|
|
|
} |
|
|
|
}() |
|
|
|
session.Begin() |
|
|
|
|
|
|
|
for _, v := range list1 { |
|
|
|
autoExchangeNumsByPersonValue, _ := decimal.NewFromString(v.Amount) |
|
|
|
autoExchangeNumsByPersonAmount := autoExchangeNumsByPersonValue.Div(personActivePointsCoinExchangeRatioValue).String() |
|
|
|
//TODO::推入rabbitmq 异步处理 |
|
|
|
ch.Publish(md.OneCirclesExchange, md.OneCirclesStructForAutoExchangeGreenEnergy{ |
|
|
|
MasterId: masterId, |
|
|
|
Uid: v.Uid, |
|
|
|
Amount: v.Amount, |
|
|
|
CoinId: coin1.Id, |
|
|
|
AutoExchangeNumsAmount: autoExchangeNumsByPersonAmount, |
|
|
|
}, md.OneCirclesRoutKeyForAutoExchangeGreenEnergyToPerson) |
|
|
|
} |
|
|
|
|
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
// ActivityCoinAutoExchangeGreenEnergyForTeam 活跃积分自动兑换成绿色能量(团队) |
|
|
|
func ActivityCoinAutoExchangeGreenEnergyForTeam(engine *xorm.Engine, masterId string, ch *rabbit.Channel) (err error) { |
|
|
|
//1、查找`one_circles_public_platoon_basic_setting` 基础设置 |
|
|
|
oneCirclesPublicPlatoonBasicSetting, err := db.OneCirclesPublicPlatoonBasicSettingGetOneByParams(engine, map[string]interface{}{ |
|
|
|
"key": "is_open", |
|
|
|
"value": 1, |
|
|
|
}) |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
if oneCirclesPublicPlatoonBasicSetting.ExchangeRules == "" { |
|
|
|
err = errors.New("自动兑换未设置!") |
|
|
|
return |
|
|
|
} |
|
|
|
var exchangeRulesStruct *md2.ExchangeRulesStruct |
|
|
|
err = json.Unmarshal([]byte(oneCirclesPublicPlatoonBasicSetting.ExchangeRules), &exchangeRulesStruct) |
|
|
|
if err != nil { |
|
|
|
return |
|
|
|
} |
|
|
|
var autoExchangeNumsByTeam = zhios_order_relate_utils.StrToFloat64(exchangeRulesStruct.AutoExchangeNumsByTeam) //团队活跃积分X个自动兑换 |
|
|
|
fmt.Println("autoExchangeNumsByTeam>>>>>>>>>>>>", autoExchangeNumsByTeam) |
|
|
|
|
|
|
|
//2、获取"个人活跃积分" && 获取"团队活跃积分" |
|
|
|
var coin2 model.VirtualCoin |
|
|
|
_, err = engine.Where("id = ?", oneCirclesPublicPlatoonBasicSetting.TeamActivePointsCoinId).Get(&coin2) |
|
|
|
if err != nil { |
|
|
|
return err |
|
|
|
} |
|
|
|
teamActivePointsCoinExchangeRatioValue, _ := decimal.NewFromString(coin2.ExchangeRatio) |
|
|
|
|
|
|
|
//3、当前 "个人活跃积分"可以自动兑换的用户数据 && "团队活跃积分"可以自动兑换的用户数据 |
|
|
|
var list2 []model.UserVirtualAmount |
|
|
|
err = engine.Where("coin_id = ?", oneCirclesPublicPlatoonBasicSetting.TeamActivePointsCoinId).And("amount >=?", autoExchangeNumsByTeam).Find(&list2) |
|
|
|
if err != nil { |
|
|
|
fmt.Println("err:::::2222", err) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
session := engine.NewSession() |
|
|
|
defer func() { |
|
|
|
session.Close() |
|
|
|
if err := recover(); err != nil { |
|
|
|
_ = zhios_order_relate_logx.Error(err) |
|
|
|
} |
|
|
|
}() |
|
|
|
session.Begin() |
|
|
|
|
|
|
|
for _, v := range list2 { |
|
|
|
autoExchangeNumsByTeamValue, _ := decimal.NewFromString(v.Amount) |
|
|
|
autoExchangeNumsByTeamAmount := autoExchangeNumsByTeamValue.Div(teamActivePointsCoinExchangeRatioValue).String() |
|
|
|
//TODO::推入rabbitmq 异步处理 |
|
|
|
ch.Publish(md.OneCirclesExchange, md.OneCirclesStructForAutoExchangeGreenEnergy{ |
|
|
|
MasterId: masterId, |
|
|
|
Uid: v.Uid, |
|
|
|
Amount: v.Amount, |
|
|
|
CoinId: coin2.Id, |
|
|
|
AutoExchangeNumsAmount: autoExchangeNumsByTeamAmount, |
|
|
|
}, md.OneCirclesRoutKeyForAutoExchangeGreenEnergyToTeam) |
|
|
|
} |
|
|
|
|
|
|
|
return |
|
|
|
} |