diff --git a/app/db/db_capital_pool.go b/app/db/db_capital_pool.go new file mode 100644 index 0000000..319fb8a --- /dev/null +++ b/app/db/db_capital_pool.go @@ -0,0 +1,16 @@ +package db + +import ( + "applet/app/db/model" + "applet/app/utils/logx" + "xorm.io/xorm" +) + +//UserProfileFindByArkID is get userprofile by arkid +func CapitalPoolByIsUse(Db *xorm.Engine) (*model.CapitalPool, error) { + var m model.CapitalPool + if has, err := Db.Where("is_use = 1").Get(&m); err != nil || has == false { + return nil, logx.Warn(err) + } + return &m, nil +} diff --git a/app/db/model/capital_pool.go b/app/db/model/capital_pool.go new file mode 100644 index 0000000..fff71b1 --- /dev/null +++ b/app/db/model/capital_pool.go @@ -0,0 +1,18 @@ +package model + +import ( + "time" +) + +type CapitalPool struct { + Id int `json:"id" xorm:"not null pk autoincr comment('主键id') INT(11)"` + IsUse int `json:"is_use" xorm:"not null comment('是否开启(否:0;是:1)') TINYINT(1)"` + IsAuto int `json:"is_auto" xorm:"not null default 0 comment('是否自动分红(否:0;是:1)') TINYINT(1)"` + BonusType string `json:"bonus_type" xorm:"not null default '0' comment('分红类型(1佣金,2积分,3区块币)多个以逗号隔开') VARCHAR(255)"` + BonusDateType int `json:"bonus_date_type" xorm:"not null default 0 comment('日期类型(1每天,2固定时间)') TINYINT(1)"` + BonusTime string `json:"bonus_time" xorm:"default '0' comment('分红日期(1,15,30)多个日期已逗号分隔开;ps 只有日期类型是2才是有数据') VARCHAR(255)"` + BonusLevelType int `json:"bonus_level_type" xorm:"not null default 0 comment('用户等级分红类型(1,指定等级,2大于或等于指定等级)') TINYINT(1)"` + UserLevelGroup string `json:"user_level_group" xorm:"not null comment('指定用户等级组json') TEXT"` + CreateAt time.Time `json:"create_at" xorm:"not null default 'CURRENT_TIMESTAMP' comment('创建时间') TIMESTAMP"` + UpdateAt time.Time `json:"update_at" xorm:"default 'CURRENT_TIMESTAMP' comment('更新时间') TIMESTAMP"` +} diff --git a/app/md/order.go b/app/md/order.go index 0798edc..560a71e 100644 --- a/app/md/order.go +++ b/app/md/order.go @@ -253,3 +253,15 @@ type VipOrder struct { // 定制订单列表的站长 const CustomizedOrderListMaster = "[68823769], [22255132]" + +type InsertCapitalPoolOrdBelongData struct { + Uid string `json:"uid" remark:用户id` + Pvd string `json:"pvd" remark:订单渠道:自营,导购,o2o。。。。` + OrdId string `json:"ord_id" remark:订单id` + Commission string `json:"commission" remark:订单总佣金` + CommissionType string `json:"commission_type" remark:佣金类型(CNY,虚拟币1Id,虚拟币2Id)` + CapitalPoolRate string `json:"capital_pool_rate" remark:资金池存入比例` + DepositValue string `json:"deposit_value" remark:存入金额` + Price string `json:"price"` + PriceValue string `json:"price_value"` +} diff --git a/app/svc/svc_comm_deal_commission.go b/app/svc/svc_comm_deal_commission.go index 8fa1692..e85f2f9 100644 --- a/app/svc/svc_comm_deal_commission.go +++ b/app/svc/svc_comm_deal_commission.go @@ -3,6 +3,7 @@ package svc import ( db2 "applet/app/db" "applet/app/db/model" + "applet/app/md" "applet/app/utils" "code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git/lib/comm_plan" md2 "code.fnuoos.com/go_rely_warehouse/zyos_go_order_relate_rule.git/md" @@ -200,6 +201,19 @@ func CommSettleDone(eg *xorm.Engine, pvd string, oid int64, masterId string, map if err != nil { return false } + //全球分红写入 + var req = &md.InsertCapitalPoolOrdBelongData{ + Uid: mapData["uid"], + Pvd: mapData["pvd"], + Commission: mapData["commission"], + CommissionType: "cny", + OrdId: utils.Int64ToStr(oid), + CapitalPoolRate: mapData["global_rate"], + DepositValue: utils.Float64ToStr(utils.FloatFormat(utils.StrToFloat64(mapData["commission"])*utils.StrToFloat64(mapData["global_rate"]), 6)), + Price: mapData["price"], + PriceValue: utils.Float64ToStr(utils.FloatFormat(utils.StrToFloat64(mapData["price"])*utils.StrToFloat64(mapData["global_rate"]), 6)), + } + SaveCapitalPoolOrderByCommApi(eg, masterId, req) return true } func CommCommSettleMoney(session *xorm.Session, item *model.CommOrdListRelate, appName, masterId string, mapData map[string]string) bool { diff --git a/app/svc/svc_save_capital_pool_order.go b/app/svc/svc_save_capital_pool_order.go new file mode 100644 index 0000000..711c4b4 --- /dev/null +++ b/app/svc/svc_save_capital_pool_order.go @@ -0,0 +1,55 @@ +package svc + +import ( + "applet/app/cfg" + "applet/app/db" + "applet/app/md" + "crypto/tls" + "encoding/json" + "io/ioutil" + "net/http" + "strings" + "time" + "xorm.io/xorm" +) + +func SaveCapitalPoolOrderByCommApi(eg *xorm.Engine, masterId string, req *md.InsertCapitalPoolOrdBelongData) { + ms, err := db.CapitalPoolByIsUse(eg) + if ms == nil || err != nil { + return + } + host := cfg.AppComm.URL + "/api/v1/comm/CapitalPool/addBonusOrd" + tr := &http.Transport{ + TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, + } + client := &http.Client{ + Timeout: 15 * time.Second, + Transport: tr, + } + byte1, _ := json.Marshal(req) + req1, _ := http.NewRequest("POST", host, strings.NewReader(string(byte1))) + req1.Header.Set("master_id", masterId) + req1.Header.Set("Content-Type", "application/json") + resp, err := (client).Do(req1) + if err != nil || resp == nil { + return + } + defer resp.Body.Close() + respByte, _ := ioutil.ReadAll(resp.Body) + + if len(respByte) == 0 { + return + } + var serverResp map[string]interface{} + err = json.Unmarshal(respByte, &serverResp) + if err != nil || serverResp == nil { + return + } + if serverResp["data"] == nil { + if serverResp["msg"] != "" { + return + } + return + } + return +} diff --git a/consume/md/consume_key.go b/consume/md/consume_key.go index 2ce12b5..447591d 100644 --- a/consume/md/consume_key.go +++ b/consume/md/consume_key.go @@ -463,10 +463,10 @@ var RabbitMqQueueKeyList = []*MqQueue{ }, { ExchangeName: "zhios.relate_reward.exchange", - Name: "zhios_relate_reward", + Name: "zhios_relate_reward_dev", Type: FanOutQueueType, IsPersistent: false, - RoutKey: "relate_reward", + RoutKey: "relate_reward_dev", BindKey: "", ConsumeFunName: "ZhiosRelateRewardExchange", }, diff --git a/consume/zhios_relate_reward_exchange.go b/consume/zhios_relate_reward_exchange.go index f476dd0..f424a41 100644 --- a/consume/zhios_relate_reward_exchange.go +++ b/consume/zhios_relate_reward_exchange.go @@ -72,6 +72,7 @@ func handleZhiosRelateRewardExchange(msg []byte) error { //计算佣金 var CommissionParam md3.CommissionFirstParam CommissionParam.CommissionParam.Commission = canalMsg.Reward + CommissionParam.CommissionParam.GoodsPrice = canalMsg.Money CommissionParam.Uid = uid CommissionParam.Provider = canalMsg.Provider @@ -84,6 +85,11 @@ func handleZhiosRelateRewardExchange(msg []byte) error { var mapData = map[string]string{ "coin_id_type": canalMsg.CoinIdType, "mode": cfgs.Mode, + "uid": uid, + "pvd": canalMsg.Provider, + "commission": canalMsg.Reward, + "global_rate": utils.Float64ToStr(cfgs.GlobalRate), + "price": canalMsg.Money, "title": title, "device_model": canalMsg.DeviceModel, "reward_type": canalMsg.RewardType,