From 4cd9d7d1694023fa9d9a96280709a8d52d77d7a2 Mon Sep 17 00:00:00 2001 From: huangjiajun <582604932@qq.com> Date: Thu, 20 Jun 2024 18:16:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- go.mod | 4 +- go.sum | 4 ++ md/mq.go | 1 + .../installment_payment_auto_repaid.go | 19 ++++++++++ rule/installment_payment/md/mq.go | 18 +++++++++ utils/uuid.go | 38 +++++++++++++++++++ 6 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 utils/uuid.go diff --git a/go.mod b/go.mod index c6da8cb..3d49f74 100644 --- a/go.mod +++ b/go.mod @@ -6,8 +6,8 @@ go 1.15 //replace code.fnuoos.com/go_rely_warehouse/zyos_model.git => E:/company/go_rely_warehouse/zyos_model/ require ( - code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.3 - code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240619111913-4540786aa565 + code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 + code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240620100400-9ebf54e21441 github.com/gin-gonic/gin v1.9.1 github.com/go-redis/redis v6.15.9+incompatible github.com/gomodule/redigo v1.8.9 diff --git a/go.sum b/go.sum index 487c542..c7e615f 100644 --- a/go.sum +++ b/go.sum @@ -2,10 +2,14 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMT cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.3 h1:SPp5AswPmkDO2ML6WwGlzhIuls+/1dUfU40iOeH0dh4= code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.3/go.mod h1:TTcCnFn/LhBGapnutpezlW+GXkLRNPMWkziOoCsXQqY= +code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5 h1:dqvWJqlJi0WXCwTxbWPLvSOsKPjP+iEDBVgLcAl9nOE= +code.fnuoos.com/go_rely_warehouse/zyos_go_mq.git v0.0.5/go.mod h1:TTcCnFn/LhBGapnutpezlW+GXkLRNPMWkziOoCsXQqY= code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240618104112-42ff22d419df h1:2rSTK/V4sEJWa1Rf+sc0nWixTbRThGsQs60cozAfU/w= code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240618104112-42ff22d419df/go.mod h1:ssMD5Wh5IRmd06P4DSIWtKWwlfAIjfLSkK0Xp9ZyE00= code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240619111913-4540786aa565 h1:KLbCiwdd/STDY8MTV2Gaqayrzi9Ai43pZe8LfF3UUa8= code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240619111913-4540786aa565/go.mod h1:ssMD5Wh5IRmd06P4DSIWtKWwlfAIjfLSkK0Xp9ZyE00= +code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240620100400-9ebf54e21441 h1:hM0Yq0l3kc+qmdqq147yelawWBTOkR75D85H5O0iyik= +code.fnuoos.com/go_rely_warehouse/zyos_model.git v0.0.4-0.20240620100400-9ebf54e21441/go.mod h1:ssMD5Wh5IRmd06P4DSIWtKWwlfAIjfLSkK0Xp9ZyE00= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= gitea.com/xorm/sqlfiddle v0.0.0-20180821085327-62ce714f951a h1:lSA0F4e9A2NcQSqGqTOXqu2aRi/XEQxDCBwM8yJtE6s= diff --git a/md/mq.go b/md/mq.go index a626743..04476c0 100644 --- a/md/mq.go +++ b/md/mq.go @@ -8,6 +8,7 @@ const ( OneCirclesRoutKeyForAutoExchangeGreenEnergyToPerson = "auto_exchange_green_energy_to_person_1" // 自动兑换个人绿色能量 OneCirclesRoutKeyForAutoExchangeGreenEnergyToTeam = "auto_exchange_green_energy_to_team" // 自动兑换团队绿色能量 OneCirclesRoutKeyForSettlementPublicGiveActivityCoin = "settlement_public_give_activity_coin" // 计算观看激励视屏得到活跃积分 + ) type OneCirclesStructForSignIn struct { diff --git a/rule/installment_payment/installment_payment_auto_repaid.go b/rule/installment_payment/installment_payment_auto_repaid.go index 82016b2..6f43919 100644 --- a/rule/installment_payment/installment_payment_auto_repaid.go +++ b/rule/installment_payment/installment_payment_auto_repaid.go @@ -109,6 +109,7 @@ func DealInstallmentPaymentAutoRepaid(engine *xorm.Engine, args md.InstallmentPa } //3、新增`installment_payment_repaid_flow`数据 + oid := zhios_order_relate_utils.OrderUUID(installmentPaymentList.Uid) installmentPaymentRepaidFlowDb := implement.NewInstallmentPaymentRepaidFlowDb(engine) _, err = installmentPaymentRepaidFlowDb.InsertInstallmentPaymentRepaidFlowBySession(session, &models.InstallmentPaymentRepaidFlow{ RecordId: installmentPaymentList.Id, @@ -117,6 +118,7 @@ func DealInstallmentPaymentAutoRepaid(engine *xorm.Engine, args md.InstallmentPa WhichRepaymentPeriod: installmentPaymentList.AlreadyRepaidInstallmentNums, CreateAt: now.Format("2006-01-02 15:04:05"), UpdateAt: now.Format("2006-01-02 15:04:05"), + OrdId: zhios_order_relate_utils.StrToInt64(oid), }) if err != nil { session.Rollback() @@ -138,5 +140,22 @@ func DealInstallmentPaymentAutoRepaid(engine *xorm.Engine, args md.InstallmentPa session.Rollback() return err } + rewardData := md.ZhiosTaskReward{ + Uid: zhios_order_relate_utils.IntToStr(installmentPaymentList.Uid), + Mid: masterId, + Reward: zhios_order_relate_utils.Float64ToStr(zhios_order_relate_utils.StrToFloat64(installmentPaymentList.Commission)), + Title: "分期付自动还款", + Oid: oid, + Provider: "installment_payment", + } + ch, err := rabbit.Cfg.Pool.GetChannel() + if err != nil { + return nil + } + defer ch.Release() + err1 := ch.PublishV2(md.RelateReward, zhios_order_relate_utils.SerializeStr(rewardData), md.RelateRewardData) + if err1 != nil { + ch.PublishV2(md.RelateReward, zhios_order_relate_utils.SerializeStr(rewardData), md.RelateRewardData) + } return } diff --git a/rule/installment_payment/md/mq.go b/rule/installment_payment/md/mq.go index 369f72d..67b5e2c 100644 --- a/rule/installment_payment/md/mq.go +++ b/rule/installment_payment/md/mq.go @@ -4,6 +4,8 @@ const InstallmentPaymentExchange = "installment.payment" const ( InstallmentPaymentRoutKeyForAutoRepaid = "auto_repaid" // 自动还款 + RelateReward = "zhios.relate_reward.exchange" + RelateRewardData = "relate_reward" ) type InstallmentPaymentStructForAutoRepaid struct { @@ -18,3 +20,19 @@ type InstallmentPaymentStructForAutoRepaid struct { RepaymentAmountPerInstallment string `json:"repayment_amount_per_installment"` IsRepaidOff int `json:"is_repaid_off"` } + +type ZhiosTaskReward struct { + CoinId string `json:"coin_id"` // + Money string `json:"money"` + Uid string `json:"uid"` + Mid string `json:"mid"` + Reward string `json:"reward"` + CoinIdType string `json:"coin_id_type"` + Mode string `json:"mode"` + Title string `json:"title"` + DeviceModel string `json:"device_model"` + Oid string `json:"oid"` + RewardType string `json:"reward_type"` + PlanType string `json:"plan_type"` + Provider string `json:"provider"` +} diff --git a/utils/uuid.go b/utils/uuid.go new file mode 100644 index 0000000..322e82f --- /dev/null +++ b/utils/uuid.go @@ -0,0 +1,38 @@ +package zhios_order_relate_utils + +import ( + "math/rand" + "time" +) + +const ( + KC_RAND_KIND_NUM = 0 // 纯数字 + KC_RAND_KIND_LOWER = 1 // 小写字母 + KC_RAND_KIND_UPPER = 2 // 大写字母 + KC_RAND_KIND_ALL = 3 // 数字、大小写字母 +) + +// OrderUUID is only num for uuid +func OrderUUID(uid int) string { + ustr := IntToStr(uid) + tstr := Int64ToStr(time.Now().Unix()) + ulen := len(ustr) + tlen := len(tstr) + rlen := 18 - ulen - tlen + krb := Krand(rlen, KC_RAND_KIND_NUM) + return ustr + tstr + string(krb) +} + +func Krand(size int, kind int) []byte { + ikind, kinds, result := kind, [][]int{[]int{10, 48}, []int{26, 97}, []int{26, 65}}, make([]byte, size) + isAll := kind > 2 || kind < 0 + rand.Seed(time.Now().UnixNano()) + for i := 0; i < size; i++ { + if isAll { // random ikind + ikind = rand.Intn(3) + } + scope, base := kinds[ikind][0], kinds[ikind][1] + result[i] = uint8(base + rand.Intn(scope)) + } + return result +}