dengbiao 1 day ago
parent
commit
f70c4fb92b
6 changed files with 145 additions and 12 deletions
  1. +2
    -8
      app/md/mq.go
  2. +11
    -3
      consume/egg_energy_auto_exchange_green_energy.go
  3. +119
    -0
      consume/egg_energy_recruit_new_user_reward.go
  4. +2
    -0
      consume/init.go
  5. +10
    -0
      consume/md/consume_key.go
  6. +1
    -1
      go.mod

+ 2
- 8
app/md/mq.go View File

@@ -1,11 +1,5 @@
package md

const OrdExchange = "order"

const (
OrdRoutKeyForJudgePackageOrdOrdState = "judge_package_ord_state" //订单状态
)

type JudgePackageOrdOrdState struct {
OrdNo string `json:"ord_no"`
type EggEnergyRecruitNewUserRewardMq struct {
Uid int64 `json:"uid"`
}

+ 11
- 3
consume/egg_energy_auto_exchange_green_energy.go View File

@@ -3,6 +3,7 @@ package consume
import (
"applet/app/cfg"
"applet/app/db"
md4 "applet/app/md"
utils2 "applet/app/utils"
"applet/app/utils/logx"
"applet/consume/md"
@@ -36,7 +37,7 @@ func EggEnergyAutoExchangeGreenEnergyConsume(queue md.MqQueue) {
for {
res, ok = <-delivery
if ok == true {
err = handleEggEnergyAutoExchangeGreenEnergyConsume(res.Body)
err = handleEggEnergyAutoExchangeGreenEnergyConsume(res.Body, ch)
if err != nil {
fmt.Println("EggEnergyAutoExchangeGreenEnergyConsume_ERR:::::", err.Error())
utils2.FilePutContents("EggEnergyAutoExchangeGreenEnergyConsume_ERR", utils2.SerializeStr(map[string]interface{}{
@@ -55,7 +56,7 @@ func EggEnergyAutoExchangeGreenEnergyConsume(queue md.MqQueue) {
fmt.Println("get msg done")
}

func handleEggEnergyAutoExchangeGreenEnergyConsume(msgData []byte) error {
func handleEggEnergyAutoExchangeGreenEnergyConsume(msgData []byte, ch *rabbit.Channel) error {
//1、解析mq中queue的数据结构体
var msg *md2.EggEnergyStructForAutoExchangeGreenEnergy
err := json.Unmarshal(msgData, &msg)
@@ -66,5 +67,12 @@ func handleEggEnergyAutoExchangeGreenEnergyConsume(msgData []byte) error {

//2、调用制度方法
err = egg_energy.ActivityCoinAutoExchangeEggPersonEnergy(engine, *msg)
return err
if err != nil {
return err
}
//3、给到直推奖励
ch.Publish(md2.EggEnergyExchange, md4.EggEnergyRecruitNewUserRewardMq{
Uid: msg.Uid,
}, "egg_energy_recruit_new_user_reward")
return nil
}

+ 119
- 0
consume/egg_energy_recruit_new_user_reward.go View File

@@ -0,0 +1,119 @@
package consume

import (
"applet/app/cfg"
"applet/app/db"
md4 "applet/app/md"
utils2 "applet/app/utils"
"applet/app/utils/logx"
"applet/consume/md"
"code.fnuoos.com/EggPlanet/egg_models.git/src/implement"
"code.fnuoos.com/EggPlanet/egg_system_rules.git"
"code.fnuoos.com/EggPlanet/egg_system_rules.git/enum"
md3 "code.fnuoos.com/EggPlanet/egg_system_rules.git/md"
"code.fnuoos.com/EggPlanet/egg_system_rules.git/rule"
md2 "code.fnuoos.com/EggPlanet/egg_system_rules.git/rule/egg_energy/md"
"code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit"
"encoding/json"
"errors"
"fmt"
"github.com/streadway/amqp"
)

func EggEnergyRecruitNewUserRewardConsume(queue md.MqQueue) {
fmt.Println(">>>>>>>>>>>>EggEnergyRecruitNewUserRewardConsume>>>>>>>>>>>>")
ch, err := rabbit.Cfg.Pool.GetChannel()
if err != nil {
logx.Error(err)
return
}
defer ch.Release()
//1、将自己绑定到交换机上
ch.Bind(queue.Name, queue.ExchangeName, queue.RoutKey)
//2、取出数据进行消费
ch.Qos(1)
delivery := ch.Consume(queue.Name, false)

egg_system_rules.Init(cfg.RedisAddr)
var res amqp.Delivery
var ok bool
for {
res, ok = <-delivery
if ok == true {
err = handleEggEnergyRecruitNewUserRewardConsume(res.Body)
if err != nil {
fmt.Println("EggEnergyRecruitNewUserRewardConsume_ERR:::::", err.Error())
utils2.FilePutContents("EggEnergyRecruitNewUserRewardConsume_ERR", utils2.SerializeStr(map[string]interface{}{
"body": res.Body,
"err": err.Error(),
}))
_ = res.Reject(true) //TODO::拒绝
} else {
err = res.Ack(true)
fmt.Println("err ::: ", err)
}
} else {
panic(errors.New("error getting message"))
}
}
fmt.Println("get msg done")
}

func handleEggEnergyRecruitNewUserRewardConsume(msgData []byte) error {
//1、解析mq中queue的数据结构体
var msg *md4.EggEnergyRecruitNewUserRewardMq
err := json.Unmarshal(msgData, &msg)
if err != nil {
return err
}
engine := db.Db

//2、给到直推奖励
eggEnergyRecruitNewUserRewardDb := implement.NewEggEnergyRecruitNewUserRewardDb(engine)
_, exist, _ := eggEnergyRecruitNewUserRewardDb.EggEnergyRecruitNewUserRewardGet(msg.Uid)
if !exist { //TODO::判断是否签到过
eggEnergyBasicSettingDb := implement.NewEggEnergyBasicSettingDb(db.Db)
eggEnergyBasicSetting, err1 := eggEnergyBasicSettingDb.EggEnergyBasicSettingGetOneByParams(map[string]interface{}{
"key": "is_open",
"value": 1,
})
if err1 != nil {
return err1
}
if eggEnergyBasicSetting != nil {
userDb := implement.NewUserDb(db.Db)
user, err1 := userDb.GetUser(msg.Uid)
if err1 != nil {
return err1
}
if user != nil {
userDeleteInfoDb := implement.NewUserDeleteInfoDb(db.Db)
userDelete := userDeleteInfoDb.GetUserDeleteInfo(user.Phone)
fmt.Println("userDelete>>>>>>>>>>>>>>>", userDelete)
if userDelete == nil {
var newUserRewardRules *md2.NewUserRewardRules
err1 = json.Unmarshal([]byte(eggEnergyBasicSetting.NewUserIncentiveRules), &newUserRewardRules)
if err1 != nil {
fmt.Println("handleAddPublicPlatoonUserRelationCommissionConsume___ERR>>>>", err1.Error())
}
rewardValue := newUserRewardRules.InviteUserRewardValue
session := db.Db.NewSession()
err1 = rule.DealUserVirtualCoin(session, md3.DealUserVirtualCoinReq{
Kind: "add",
Title: enum.UserVirtualAmountFlowTransferType.String(enum.EggEnergyRecruitNewUsersReward),
TransferType: int(enum.EggEnergyRecruitNewUsersReward),
CoinId: eggEnergyBasicSetting.PersonEggPointsCoinId,
Uid: user.ParentUid,
Amount: float64(rewardValue),
})
if err1 != nil {
return err1
}
session.Commit()
}
}
}
}

return nil
}

+ 2
- 0
consume/init.go View File

@@ -58,6 +58,8 @@ func initConsumes() {
jobs[consumeMd.EggEnergySettlementPublicGiveActivityCoinFunName] = EggEnergySettlementPublicGiveActivityCoinConsume
jobs[consumeMd.EggEnergyStartExchangeGreenEnergyFunName] = EggEnergyStartExchangeGreenEnergyConsume
jobs[consumeMd.EggEnergyAutoExchangeGreenEnergyFunName] = EggEnergyAutoExchangeGreenEnergyConsume
jobs[consumeMd.EggEnergyRecruitNewUserRewardFunName] = EggEnergyRecruitNewUserRewardConsume

jobs[consumeMd.EggEnergyTeamAssistanceConsumeFunName] = EggEnergyTeamAssistanceConsume // 更新团队助力数据
jobs[consumeMd.EggCanalUserVirtualCoinFlowAggregationConsumeFunName] = EggCanalUserVirtualCoinFlowAggregationConsume // 聚合流水数据
jobs[consumeMd.EggPublishDataFunName] = EggPublishDataConsume // 聚合流水数据


+ 10
- 0
consume/md/consume_key.go View File

@@ -101,6 +101,15 @@ var RabbitMqQueueKeyList = []*MqQueue{
BindKey: "",
ConsumeFunName: "EggEnergyAutoExchangeGreenEnergyConsume",
},
{
ExchangeName: "egg.energy",
Name: "egg_energy_recruit_new_user_reward",
Type: DirectQueueType,
IsPersistent: false,
RoutKey: "egg_energy_recruit_new_user_reward",
BindKey: "",
ConsumeFunName: "EggEnergyRecruitNewUserRewardConsume",
},
{
ExchangeName: "egg.app",
Name: "add_public_platoon_user_relation_commission",
@@ -394,6 +403,7 @@ const (
EggEnergySettlementPublicGiveActivityCoinFunName = "EggEnergySettlementPublicGiveActivityCoinConsume"
EggEnergyStartExchangeGreenEnergyFunName = "EggEnergyStartExchangeGreenEnergyConsume"
EggEnergyAutoExchangeGreenEnergyFunName = "EggEnergyAutoExchangeGreenEnergyConsume"
EggEnergyRecruitNewUserRewardFunName = "EggEnergyRecruitNewUserRewardConsume"
EggEnergyNewUserRegisterDataFunName = "EggEnergyNewUserRegisterDataConsume"
EggEnergyDealUserECPMFunName = "EggEnergyDealUserECPMConsume"
EggEnergyTemporaryDealUserECPMFunName = "TemporaryEggEnergyDealUserECPMConsume"


+ 1
- 1
go.mod View File

@@ -7,7 +7,7 @@ go 1.19
// replace code.fnuoos.com/EggPlanet/egg_system_rules.git => E:/company/Egg/egg_system_rules

require (
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20250104182559-3f1d190a6c31
code.fnuoos.com/EggPlanet/egg_models.git v0.2.1-0.20250106115148-27e932d9ac3d
code.fnuoos.com/EggPlanet/egg_system_rules.git v0.0.4-0.20250104230219-410c5822c551
code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.1-0.20241118083738-0f22da9ba0be
code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5


Loading…
Cancel
Save