dengbiao 4 місяці тому
джерело
коміт
3635bf7a4d
4 змінених файлів з 100 додано та 2 видалено
  1. +86
    -0
      consume/honey_dividends_consume.go
  2. +2
    -0
      consume/init.go
  3. +10
    -0
      consume/md/consume_key.go
  4. +2
    -2
      go.mod

+ 86
- 0
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
}

+ 2
- 0
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 //一个圈圈虚拟币变化



+ 10
- 0
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"
)

+ 2
- 2
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


Завантаження…
Відмінити
Зберегти