@@ -0,0 +1,131 @@
|
||||
package proxyser
|
||||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"91porn-server/models/v/proxyincomemod"
|
||||
"91porn-server/models/v/proxymod"
|
||||
"91porn-server/models/v/usermod"
|
||||
)
|
||||
|
||||
var PerformanceConvRat = []int64{100, 25, 15, 10}
|
||||
|
||||
// FindTotalIncome 查询总收益web
|
||||
func FindTotalIncome(uid uint64) (res map[string]interface{}, err error) {
|
||||
u, err := usermod.FindUserByUID(uid)
|
||||
if err != nil || u == nil {
|
||||
return
|
||||
}
|
||||
lv1, lv2, lv3, lv4, total, err := proxyincomemod.FindAllIncome(uid)
|
||||
res = make(map[string]interface{})
|
||||
res["uid"] = u.UID
|
||||
res["promotionCode"] = u.PromCode
|
||||
res["lv1"] = lv1
|
||||
res["lv2"] = lv2
|
||||
res["lv3"] = lv3
|
||||
res["lv4"] = lv4
|
||||
res["total"] = total
|
||||
res["withdraw"] = 0
|
||||
res["withdrawCount"] = 0
|
||||
return
|
||||
}
|
||||
|
||||
func invitationWebResHelp(uid uint64, uids []uint64, lv int, ic chan []proxymod.InvitationWebRes, flagChan chan int) {
|
||||
invLv, _ := proxymod.GetInveNextDetails(uids)
|
||||
if len(invLv) <= 0 {
|
||||
flagChan <- lv - 1
|
||||
return
|
||||
}
|
||||
data := make([]proxymod.InvitationWebRes, len(invLv))
|
||||
for i, v := range invLv {
|
||||
data[i] = proxymod.InvitationWebRes{
|
||||
UID: uid,
|
||||
IID: v.Invitee,
|
||||
Lv: lv,
|
||||
CreatedAt: v.CreatedAt,
|
||||
}
|
||||
}
|
||||
ic <- data
|
||||
if lv == 4 {
|
||||
flagChan <- lv
|
||||
}
|
||||
}
|
||||
|
||||
// GetInveUsers 获取下级代理
|
||||
func GetInveUsers(uid uint64) (i interface{}, err error) {
|
||||
m := make(map[string]interface{})
|
||||
var MaxLv int = 4
|
||||
flagChan := make(chan int)
|
||||
invResChan := make(chan []proxymod.InvitationWebRes, MaxLv)
|
||||
tmp := []uint64{uid}
|
||||
for i := 1; i <= MaxLv; i++ {
|
||||
if len(tmp) <= 0 {
|
||||
break
|
||||
}
|
||||
uids := tmp
|
||||
go invitationWebResHelp(uid, uids, i, invResChan, flagChan)
|
||||
uids, total, err := proxymod.GetInveNext(tmp)
|
||||
if err != nil || len(uids) <= 0 {
|
||||
break
|
||||
}
|
||||
m["totalLv"+strconv.Itoa(i)] = total
|
||||
tmp = uids
|
||||
}
|
||||
rcvSize, ok := <-flagChan
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
data := make([]proxymod.InvitationWebRes, 0, rcvSize)
|
||||
for i := 1; i <= rcvSize; i++ {
|
||||
res, ok := <-invResChan
|
||||
if !ok {
|
||||
break
|
||||
}
|
||||
if len(res) > 0 {
|
||||
data = append(data, res...)
|
||||
}
|
||||
}
|
||||
m["list"] = data
|
||||
i = m
|
||||
return
|
||||
}
|
||||
|
||||
// GetInvrDetails 获取上级代理
|
||||
func GetInvrDetails(uid uint64) ([]proxymod.InvitationWebRes, error) {
|
||||
invs, err := proxymod.GetInvrDetails(uid, 4)
|
||||
if err != nil {
|
||||
return []proxymod.InvitationWebRes{}, err
|
||||
}
|
||||
invsLen := len(invs)
|
||||
if invsLen == 0 {
|
||||
return []proxymod.InvitationWebRes{}, nil
|
||||
}
|
||||
data := make([]proxymod.InvitationWebRes, invsLen)
|
||||
i := 0
|
||||
for k, v := range invs {
|
||||
data[i] = proxymod.InvitationWebRes{
|
||||
UID: uid,
|
||||
IID: v.UID,
|
||||
Lv: k + 1,
|
||||
CreatedAt: v.CreatedAt,
|
||||
}
|
||||
i++
|
||||
}
|
||||
return data, nil
|
||||
}
|
||||
|
||||
// GetInvr 获取上级代理信息
|
||||
func GetInvr(uid uint64) (ivt uint64, code string, err error) {
|
||||
ivt, err = proxymod.GetInvrLv1(uid)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
u, err := usermod.FindUserByUID(ivt)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if u != nil {
|
||||
code = u.PromCode
|
||||
}
|
||||
return
|
||||
}
|
||||
Reference in New Issue
Block a user