diff --git a/consume/honey_dividends_consume.go b/consume/honey_dividends_consume.go new file mode 100644 index 0000000..eb3d201 --- /dev/null +++ b/consume/honey_dividends_consume.go @@ -0,0 +1,86 @@ +package consume + +import ( + "applet/app/cfg" + "applet/app/db" + "applet/app/utils" + "applet/app/utils/logx" + "applet/consume/md" + "code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git/rabbit" + md2 "code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git/md" + honey_dividend "code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git/rule/honey_dividend" + "code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git/rule/one_circles" + "encoding/json" + "errors" + "fmt" + "github.com/streadway/amqp" +) + +func DividendRewardConsume(queue md.MqQueue) { + fmt.Println(">>>>>>>>>>>>DividendRewardConsume>>>>>>>>>>>>") + 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) + + one_circles.Init(cfg.RedisAddr) + + var res amqp.Delivery + var ok bool + for { + res, ok = <-delivery + if ok == true { + err = handleDividendRewardConsume(res.Body) + if err != nil { + fmt.Println("err ::: ", err) + utils.FilePutContents("ServiceAwardDividendRelationConsume_ERR", "[err]:"+err.Error()) + _ = res.Reject(true) //TODO::拒绝 Ack + } else { + _ = res.Ack(true) + } + } else { + panic(errors.New("error getting message")) + } + } + fmt.Println("get msg done") +} + +func handleDividendRewardConsume(msgData []byte) error { + //1、解析mq中queue的数据结构体 + var msg *md2.HoneyDividendForUserDividend + err := json.Unmarshal(msgData, &msg) + if err != nil { + return err + } + + engine := db.DBs[msg.MasterId] + session := engine.NewSession() + defer func() { + session.Close() + if err := recover(); err != nil { + _ = logx.Error(err) + } + }() + session.Begin() + + err = honey_dividend.DealDividendReward(session, *msg) + if err != nil { + _ = session.Rollback() + fmt.Println("err:::::!!!", err.Error()) + return err + } + + err = session.Commit() + if err != nil { + _ = session.Rollback() + return errors.New("事务提交失败") + } + return nil +} diff --git a/consume/init.go b/consume/init.go index e50901a..9bee565 100644 --- a/consume/init.go +++ b/consume/init.go @@ -103,6 +103,8 @@ func initConsumes() { jobs[consumeMd.NewFlexibleEmploymentWithdrawForPupiaoConsumeFunName] = NewFlexibleEmploymentWithdrawForPupiaoConsume jobs[consumeMd.ServiceAwardDividendRelationConsumeFunName] = ServiceAwardDividendRelationConsume + jobs[consumeMd.DividendRewardConsumeFunName] = DividendRewardConsume //蜂蜜分红 + //jobs[consumeMd.ZhiosMallGreenCoinConsumeFunName] = ZhiosMallGreenCoinConsume //绿色双链积分 //jobs[consumeMd.ZhiosOneCirclesCoinConsumeFunName] = ZhiosOneCirclesCoinConsume //一个圈圈虚拟币变化 diff --git a/consume/md/consume_key.go b/consume/md/consume_key.go index 97c5b20..10ffa63 100644 --- a/consume/md/consume_key.go +++ b/consume/md/consume_key.go @@ -623,6 +623,15 @@ var RabbitMqQueueKeyList = []*MqQueue{ BindKey: "", ConsumeFunName: "ServiceAwardDividendRelationConsume", }, + { + ExchangeName: "honey.dividend", + Name: "honey_dividend_user_reward", + Type: DirectQueueType, + IsPersistent: false, + RoutKey: "user_dividend", + BindKey: "", + ConsumeFunName: "DividendRewardConsume", + }, } const ( @@ -695,4 +704,5 @@ const ( InstallmentPaymentAutoRepaidConsumeFunName = "InstallmentPaymentAutoRepaidConsume" CanalGimMessageConsumeFunName = "CanalGimMessageConsume" ServiceAwardDividendRelationConsumeFunName = "ServiceAwardDividendRelationConsume" + DividendRewardConsumeFunName = "DividendRewardConsume" ) diff --git a/go.mod b/go.mod index 1a190d5..d9500a1 100644 --- a/go.mod +++ b/go.mod @@ -9,10 +9,10 @@ require ( code.fnuoos.com/go_rely_warehouse/zyos_go_condition_statistics.git v1.1.2-0.20240607091816-3df1433a2f0d code.fnuoos.com/go_rely_warehouse/zyos_go_es.git v1.0.0 code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 - code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git v1.9.10-0.20240805104025-400b3fbc3065 + code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git v1.9.10-0.20240812063533-c7e6269357a6 code.fnuoos.com/go_rely_warehouse/zyos_go_pay.git v1.6.2-0.20231116085701-9ba6e19f877b code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git v1.1.21-0.20240730013105-a13176f971e9 - code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240805085726-a0042fa1ed3c + code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240812063422-6380c884a38b github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 github.com/boombuler/barcode v1.0.1