Initial commit
This commit is contained in:
@@ -0,0 +1,699 @@
|
||||
package botdailyhourstat
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"stat/common/statutils"
|
||||
)
|
||||
|
||||
func LineCount(iTemp string, iValue int64, permilValue int64) string {
|
||||
if permilValue > 1000000 || permilValue < -1000000 {
|
||||
s1 := fmt.Sprintf("%d", iValue)
|
||||
str1 := fmt.Sprintf(iTemp, s1)
|
||||
return str1 + "\n"
|
||||
} else {
|
||||
s1 := fmt.Sprintf("%d", iValue)
|
||||
str1 := fmt.Sprintf(iTemp, s1)
|
||||
v := float64(permilValue) / 10
|
||||
str2 := ""
|
||||
if v < 0 {
|
||||
str2 = fmt.Sprintf("⬇%.2f%%", v)
|
||||
} else if v > 0 {
|
||||
str2 = fmt.Sprintf("⬆+️%.2f%%", v)
|
||||
} else {
|
||||
str2 = fmt.Sprintf(" %.2f%%", v)
|
||||
}
|
||||
return str1 + str2 + "\n"
|
||||
}
|
||||
}
|
||||
|
||||
func LineMoneyOne(iTemp string, iValue int64) string {
|
||||
return LineCountOne(iTemp, iValue/100)
|
||||
}
|
||||
|
||||
func LineCountOne(iTemp string, iValue int64) string {
|
||||
s1 := fmt.Sprintf("%d", iValue)
|
||||
str1 := fmt.Sprintf(iTemp, s1)
|
||||
return str1 + "\n"
|
||||
}
|
||||
|
||||
func LineMoney(iTemp string, iValue int64, permilValue int64) string {
|
||||
return LineCount(iTemp, iValue/100, permilValue)
|
||||
}
|
||||
|
||||
func (s *StatItem) Display(prefix string) string {
|
||||
var text string
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "充值总计:")
|
||||
//text += s.Recharge.DisplayDayHourText(prefix+"┃", 100)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "老用户充值:")
|
||||
//text += s.RechargeOldUser.DisplayDayHourText(prefix+"┃", 100)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "新用户充值:")
|
||||
//text += s.RechargeNewUser.DisplayDayHourText(prefix+"┃", 100)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "[会员购买]:")
|
||||
//text += s.RechargeVip.DisplayDayHourText(prefix+"┃", 100)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "[金币购买]:")
|
||||
//text += s.RechargeGold.DisplayDayHourText(prefix+"┃", 100)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "[订单统计]:")
|
||||
//text += s.Order.DisplayDayHourText(prefix+"┃", 1)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┣", "[注册统计]:")
|
||||
//text += s.Register.DisplayDayHourText(prefix+"┃", 1)
|
||||
//text += fmt.Sprintf("%s%s\n", prefix+"┗", "[访问统计]:")
|
||||
//text += s.Visit.DisplayDayHourText(prefix+" ", 1)
|
||||
return text
|
||||
}
|
||||
|
||||
func (s *BotHourStat) DisplayDayHourText(appName string, compare *BotHourStat) string {
|
||||
calc := func(curr, hist *statutils.Stat) (*statutils.Stat, *statutils.Stat) {
|
||||
diff := curr.Sub(hist)
|
||||
rate := diff.Permil(hist)
|
||||
return curr, rate
|
||||
}
|
||||
rate := func(currValue, histValue int64) int64 {
|
||||
if histValue != 0 {
|
||||
return (currValue - histValue) * 1000 / histValue
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
var text string
|
||||
text += fmt.Sprintf("应用名称:【%s】\n", appName) //🆚
|
||||
text += fmt.Sprintf("统计时间:%s\n", s.SumDate.Format("2006-01-02T15:04:05"))
|
||||
if compare != nil {
|
||||
func() {
|
||||
reCurr, reRate := calc(&s.TodayStat.Recharge, &compare.TodayStat.Recharge)
|
||||
text += "1️⃣当日充值:\n"
|
||||
text += LineMoney("┣充值合计:%s", reCurr.Value(), reRate.Value())
|
||||
text += LineMoney("┃┏安卓充值:%s", reCurr.Android.Value(), reRate.Android.Value())
|
||||
text += LineMoney("┣╋苹果充值:%s", reCurr.Ios.Value(), reRate.Ios.Value())
|
||||
text += LineMoney("┃┣轻量充值:%s", reCurr.Light.Value(), reRate.Light.Value())
|
||||
text += LineMoney("┃┗H5充值 :%s", reCurr.H5.Value(), reRate.H5.Value())
|
||||
text += LineMoney("┃┏渠道充值:%s", reCurr.Total.District.Value, reRate.Total.District.Value)
|
||||
text += LineMoney("┣╋官网充值:%s", reCurr.Total.Web.Value, reRate.Total.Web.Value)
|
||||
text += LineMoney("┃┣自来充值:%s", reCurr.Total.Normal.Value, reRate.Total.Normal.Value)
|
||||
text += LineMoney("┃┗分享充值:%s", reCurr.Total.Share.Value, reRate.Total.Share.Value)
|
||||
oldCurr, oldRate := calc(&s.TodayStat.RechargeOld, &compare.TodayStat.RechargeOld)
|
||||
text += LineMoney("┃┏老用户充:%s", oldCurr.Value(), oldRate.Value())
|
||||
newCurr, newRate := calc(&s.TodayStat.RechargeNew, &compare.TodayStat.RechargeNew)
|
||||
text += LineMoney("┣╋新用户充:%s", newCurr.Value(), newRate.Value())
|
||||
v0, v00 := calc(newCurr.Percentage(reCurr), compare.TodayStat.RechargeNew.Percentage(&compare.TodayStat.Recharge))
|
||||
text += LineCount("┃┗新充占比:%s%%", v0.Value(), v00.Value())
|
||||
memCurr, memRate := calc(&s.TodayStat.RechargeVip, &compare.TodayStat.RechargeVip)
|
||||
text += LineMoney("┃┏会员充值:%s", memCurr.Value(), memRate.Value())
|
||||
coinCurr, coinRate := calc(&s.TodayStat.RechargeGold, &compare.TodayStat.RechargeGold)
|
||||
text += LineMoney("┣╋金币充值:%s", coinCurr.Value(), coinRate.Value())
|
||||
v2, v22 := calc(memCurr.Percentage(reCurr), compare.TodayStat.RechargeVip.Percentage(&compare.TodayStat.Recharge))
|
||||
text += LineCount("┃┗会员占比:%s%%", v2.Value(), v22.Value())
|
||||
orderCurr, orderRate := calc(&s.TodayStat.Order, &compare.TodayStat.Order)
|
||||
text += LineCount("┃┏订单拉起:%s", orderCurr.Count(), orderRate.Count())
|
||||
succCurr, succRate := calc(&s.TodayStat.OrderSucc, &compare.TodayStat.OrderSucc)
|
||||
text += LineCount("┣╋订单成功:%s", succCurr.Count(), succRate.Count())
|
||||
v1, v11 := calc(succCurr.Percentage(orderCurr), compare.TodayStat.OrderSucc.Percentage(&compare.TodayStat.Order))
|
||||
text += LineCount("┃┗成功比率:%s%%", v1.Count(), v11.Count())
|
||||
text += "2️⃣当日新增:\n"
|
||||
|
||||
regCurr, regRate := calc(&s.TodayStat.Register, &compare.TodayStat.Register)
|
||||
text += LineCount("┣新增用户:%s", regCurr.Count(), regRate.Count())
|
||||
text += LineCount("┃┏安卓新增:%s", regCurr.Android.Count(), regRate.Android.Count())
|
||||
text += LineCount("┣╋苹果新增:%s", regCurr.Ios.Count(), regRate.Ios.Count())
|
||||
text += LineCount("┃┣轻量新增:%s", regCurr.Light.Count(), regRate.Light.Count())
|
||||
text += LineCount("┃┗H5新增 :%s", regCurr.H5.Count(), regRate.H5.Count())
|
||||
text += LineCount("┃┏渠道新增:%s", regCurr.Total.District.Count, regRate.Total.District.Count)
|
||||
text += LineCount("┣╋有效新增:%s", regCurr.Total.Direct.Value()-regCurr.Total.Direct.Natural.Value,
|
||||
regRate.Total.Direct.Value()-regRate.Total.Direct.Natural.Value)
|
||||
text += LineCount("┣╋官网新增:%s", regCurr.Total.Web.Count, regRate.Total.Web.Count)
|
||||
text += LineCount("┃┣自来新增:%s", regCurr.Total.Normal.Count, regRate.Total.Normal.Count)
|
||||
text += LineCount("┃┗分享新增:%s", regCurr.Total.Share.Count, regRate.Total.Share.Count)
|
||||
text += "3️⃣当日日活:\n"
|
||||
visitCurr, visitRate := calc(&s.TodayStat.Visit, &compare.TodayStat.Visit)
|
||||
text += LineCount("┣日活总数:%s", visitCurr.Count(), visitRate.Count())
|
||||
text += LineCount("┃┏安卓日活:%s", visitCurr.Android.Count(), visitRate.Android.Count())
|
||||
text += LineCount("┣╋苹果日活:%s", visitCurr.Ios.Count(), visitRate.Ios.Count())
|
||||
text += LineCount("┃┣轻量日活:%s", visitCurr.Light.Count(), visitRate.Light.Count())
|
||||
text += LineCount("┃┗H5日活 :%s", visitCurr.H5.Count(), visitRate.H5.Count())
|
||||
text += LineCount("┃┏渠道日活:%s", visitCurr.Total.District.Count, visitRate.Total.District.Count)
|
||||
text += LineCount("┣╋官网日活:%s", visitCurr.Total.Web.Count, visitRate.Total.Web.Count)
|
||||
text += LineCount("┃┣自来日活:%s", visitCurr.Total.Normal.Count, visitRate.Total.Normal.Count)
|
||||
text += LineCount("┃┗分享日活:%s", visitCurr.Total.Share.Count, visitRate.Total.Share.Count)
|
||||
text += "4️⃣落地页点击:\n"
|
||||
text += LineCount("┣总数:%s", s.TodayLandPage.LandPageTotalClick, rate(s.TodayLandPage.LandPageTotalClick, compare.TodayLandPage.LandPageTotalClick))
|
||||
text += LineCount("┃┏安卓:%s", s.TodayLandPage.LandPageAndroidClick, rate(s.TodayLandPage.LandPageAndroidClick, compare.TodayLandPage.LandPageAndroidClick))
|
||||
text += LineCount("┣╋商店:%s", s.TodayLandPage.LandPageIosAppstoreClick, rate(s.TodayLandPage.LandPageIosAppstoreClick, compare.TodayLandPage.LandPageIosAppstoreClick))
|
||||
text += LineCount("┃┣企业:%s", s.TodayLandPage.LandPageIosFirmClick, rate(s.TodayLandPage.LandPageIosFirmClick, compare.TodayLandPage.LandPageIosFirmClick))
|
||||
text += LineCount("┃┗轻量:%s", s.TodayLandPage.LandPageIosLightClick, rate(s.TodayLandPage.LandPageIosLightClick, compare.TodayLandPage.LandPageIosLightClick))
|
||||
}()
|
||||
func() {
|
||||
reCurr, reRate := calc(&s.HourStat.Recharge, &compare.HourStat.Recharge)
|
||||
text += "5️⃣小时充值:\n"
|
||||
text += LineMoney("┣充值合计:%s", reCurr.Value(), reRate.Value())
|
||||
text += LineMoney("┃┏安卓充值:%s", reCurr.Android.Value(), reRate.Android.Value())
|
||||
text += LineMoney("┣╋苹果充值:%s", reCurr.Ios.Value(), reRate.Ios.Value())
|
||||
text += LineMoney("┃┣轻量充值:%s", reCurr.Light.Value(), reRate.Light.Value())
|
||||
text += LineMoney("┃┗H5充值 :%s", reCurr.H5.Value(), reRate.H5.Value())
|
||||
text += LineMoney("┃┏渠道充值:%s", reCurr.Total.District.Value, reRate.Total.District.Value)
|
||||
text += LineMoney("┣╋官网充值:%s", reCurr.Total.Web.Value, reRate.Total.Web.Value)
|
||||
text += LineMoney("┃┣自来充值:%s", reCurr.Total.Normal.Value, reRate.Total.Normal.Value)
|
||||
text += LineMoney("┃┗分享充值:%s", reCurr.Total.Share.Value, reRate.Total.Share.Value)
|
||||
oldCurr, oldRate := calc(&s.HourStat.RechargeOld, &compare.HourStat.RechargeOld)
|
||||
text += LineMoney("┃┏老用户充:%s", oldCurr.Value(), oldRate.Value())
|
||||
newCurr, newRate := calc(&s.HourStat.RechargeNew, &compare.HourStat.RechargeNew)
|
||||
text += LineMoney("┣╋新用户充:%s", newCurr.Value(), newRate.Value())
|
||||
v0, v00 := calc(newCurr.Percentage(reCurr), compare.HourStat.RechargeNew.Percentage(&compare.HourStat.Recharge))
|
||||
text += LineCount("┃┗新充占比:%s%%", v0.Value(), v00.Value())
|
||||
memCurr, memRate := calc(&s.HourStat.RechargeVip, &compare.HourStat.RechargeVip)
|
||||
text += LineMoney("┃┏会员充值:%s", memCurr.Value(), memRate.Value())
|
||||
coinCurr, coinRate := calc(&s.HourStat.RechargeGold, &compare.HourStat.RechargeGold)
|
||||
text += LineMoney("┣╋金币充值:%s", coinCurr.Value(), coinRate.Value())
|
||||
v2, v22 := calc(memCurr.Percentage(reCurr), compare.HourStat.RechargeVip.Percentage(&compare.HourStat.Recharge))
|
||||
text += LineCount("┃┗会员占比:%s%%", v2.Value(), v22.Value())
|
||||
orderCurr, orderRate := calc(&s.HourStat.Order, &compare.HourStat.Order)
|
||||
text += LineCount("┃┏订单拉起:%s", orderCurr.Count(), orderRate.Count())
|
||||
succCurr, succRate := calc(&s.HourStat.OrderSucc, &compare.HourStat.OrderSucc)
|
||||
text += LineCount("┣╋订单成功:%s", succCurr.Count(), succRate.Count())
|
||||
v1, v11 := calc(succCurr.Percentage(orderCurr), compare.HourStat.OrderSucc.Percentage(&compare.HourStat.Order))
|
||||
text += LineCount("┃┗订单成功率:%s%%", v1.Count(), v11.Count())
|
||||
text += "6️⃣小时新增:\n"
|
||||
regCurr, regRate := calc(&s.HourStat.Register, &compare.HourStat.Register)
|
||||
text += LineCount("┣新增用户:%s", regCurr.Count(), regRate.Count())
|
||||
text += LineCount("┃┏安卓新增:%s", regCurr.Android.Count(), regRate.Android.Count())
|
||||
text += LineCount("┣╋苹果新增:%s", regCurr.Ios.Count(), regRate.Ios.Count())
|
||||
text += LineCount("┃┣轻量新增:%s", regCurr.Light.Count(), regRate.Light.Count())
|
||||
text += LineCount("┃┗H5新增 :%s", regCurr.H5.Count(), regRate.H5.Count())
|
||||
text += LineCount("┃┏渠道新增:%s", regCurr.Total.District.Count, regRate.Total.District.Count)
|
||||
text += LineCount("┣╋有效新增:%s", regCurr.Total.Direct.Value()-regCurr.Total.Direct.Natural.Value,
|
||||
regRate.Total.Direct.Value()-regRate.Total.Direct.Natural.Value)
|
||||
text += LineCount("┣╋官网新增:%s", regCurr.Total.Web.Count, regRate.Total.Web.Count)
|
||||
text += LineCount("┃┣自来新增:%s", regCurr.Total.Normal.Count, regRate.Total.Normal.Count)
|
||||
text += LineCount("┃┗分享新增:%s", regCurr.Total.Share.Count, regRate.Total.Share.Count)
|
||||
text += "7️⃣小时落地页点击:\n"
|
||||
text += LineCount("┣总数:%s", s.HourLandPage.LandPageTotalClick, rate(s.HourLandPage.LandPageTotalClick, compare.HourLandPage.LandPageTotalClick))
|
||||
text += LineCount("┃┏安卓:%s", s.HourLandPage.LandPageAndroidClick, rate(s.HourLandPage.LandPageAndroidClick, compare.HourLandPage.LandPageAndroidClick))
|
||||
text += LineCount("┣╋商店:%s", s.HourLandPage.LandPageIosAppstoreClick, rate(s.HourLandPage.LandPageIosAppstoreClick, compare.HourLandPage.LandPageIosAppstoreClick))
|
||||
text += LineCount("┃┣企业:%s", s.HourLandPage.LandPageIosFirmClick, rate(s.HourLandPage.LandPageIosFirmClick, compare.HourLandPage.LandPageIosFirmClick))
|
||||
text += LineCount("┃┗轻量:%s", s.HourLandPage.LandPageIosLightClick, rate(s.HourLandPage.LandPageIosLightClick, compare.HourLandPage.LandPageIosLightClick))
|
||||
|
||||
}()
|
||||
func() {
|
||||
if s.TodayGame != nil {
|
||||
text += "8️⃣游戏数据:\n"
|
||||
text += fmt.Sprintf("┣游戏充值: %d\n", s.TodayGame.RchgAmount)
|
||||
text += fmt.Sprintf("┣代充充值: %d\n", s.TodayGame.DcRchgAmount)
|
||||
text += fmt.Sprintf("┣有效投注: %d\n", s.TodayGame.ValidBet)
|
||||
text += fmt.Sprintf("┣系统盈利: %d\n", s.TodayGame.Profit)
|
||||
text += fmt.Sprintf("┣提现金额: %d\n", s.TodayGame.WtdrRealAmount)
|
||||
text += fmt.Sprintf("┣游戏上分: %d\n", s.TodayGame.IncAmount)
|
||||
text += fmt.Sprintf("┗游戏下分: %d\n", s.TodayGame.DecAmount)
|
||||
}
|
||||
}()
|
||||
text += fmt.Sprintf("🆚%s同比数据:当日的昨天%d点\n", appName, compare.SumDate.Hour())
|
||||
} else {
|
||||
func() {
|
||||
reCurr := &s.TodayStat.Recharge
|
||||
text += "1️⃣当日充值:\n"
|
||||
text += LineMoneyOne("┣充值合计: %s", reCurr.Value())
|
||||
text += LineMoneyOne("┃┏安卓充值: %s", reCurr.Android.Value())
|
||||
text += LineMoneyOne("┣╋苹果充值: %s", reCurr.Ios.Value())
|
||||
text += LineMoneyOne("┃┣轻量充值: %s", reCurr.Light.Value())
|
||||
text += LineMoneyOne("┃┗H5充值: %s", reCurr.H5.Value())
|
||||
text += LineMoneyOne("┃┏渠道充值: %s", reCurr.Total.District.Value)
|
||||
text += LineMoneyOne("┣╋官网充值: %s", reCurr.Total.Web.Value)
|
||||
text += LineMoneyOne("┃┣自来充值: %s", reCurr.Total.Normal.Value)
|
||||
text += LineMoneyOne("┃┗分享充值: %s", reCurr.Total.Share.Value)
|
||||
|
||||
oldCurr := &s.TodayStat.RechargeOld
|
||||
text += LineMoneyOne("┃┏老用户充: %s", oldCurr.Value())
|
||||
newCurr := &s.TodayStat.RechargeNew
|
||||
text += LineMoneyOne("┣╋新用户充: %s", newCurr.Value())
|
||||
v0 := newCurr.Percentage(reCurr)
|
||||
text += LineCountOne("┃┗新充占比: %s%%", v0.Value())
|
||||
|
||||
memCurr := &s.TodayStat.RechargeVip
|
||||
text += LineMoneyOne("┃┏会员充值: %s", memCurr.Value())
|
||||
coinCurr := &s.TodayStat.RechargeGold
|
||||
text += LineMoneyOne("┣╋金币充值: %s", coinCurr.Value())
|
||||
v1 := memCurr.Percentage(reCurr)
|
||||
text += LineCountOne("┃┗会员占比: %s%%", v1.Value())
|
||||
|
||||
orderCurr := &s.TodayStat.Order
|
||||
text += LineCountOne("┃┏订单拉起: %s", orderCurr.Count())
|
||||
succCurr := &s.TodayStat.OrderSucc
|
||||
text += LineCountOne("┣╋订单成功: %s", succCurr.Count())
|
||||
v2 := succCurr.Percentage(orderCurr)
|
||||
text += LineCountOne("┃┗成功占比: %s%%", v2.Count())
|
||||
text += "2️⃣当日新增:\n"
|
||||
regCurr := &s.TodayStat.Register
|
||||
text += LineCountOne("┣新增用户: %s", regCurr.Count())
|
||||
text += LineCountOne("┃┏安卓新增: %s", regCurr.Android.Count())
|
||||
text += LineCountOne("┣╋苹果新增: %s", regCurr.Ios.Count())
|
||||
text += LineCountOne("┃┣轻量新增: %s", regCurr.Light.Count())
|
||||
text += LineCountOne("┃┗H5新增: %s", regCurr.H5.Count())
|
||||
text += LineCountOne("┃┏渠道新增: %s", regCurr.Total.District.Count)
|
||||
text += LineCountOne("┣╋官网新增: %s", regCurr.Total.Web.Count)
|
||||
text += LineCountOne("┃┣自来新增: %s", regCurr.Total.Normal.Count)
|
||||
text += LineCountOne("┃┗分享新增: %s", regCurr.Total.Share.Count)
|
||||
text += "3️⃣当日日活:\n"
|
||||
visitCurr := &s.TodayStat.Visit
|
||||
text += LineCountOne("┣日活总数: %s", visitCurr.Count())
|
||||
text += LineCountOne("┃┏安卓日活: %s", visitCurr.Android.Count())
|
||||
text += LineCountOne("┣╋苹果日活: %s", visitCurr.Ios.Count())
|
||||
text += LineCountOne("┃┣轻量日活: %s", visitCurr.Light.Count())
|
||||
text += LineCountOne("┃┗H5日活: %s", visitCurr.H5.Count())
|
||||
text += LineCountOne("┃┏渠道日活: %s", visitCurr.Total.District.Count)
|
||||
text += LineCountOne("┣╋官网日活: %s", visitCurr.Total.Web.Count)
|
||||
text += LineCountOne("┃┣自来日活: %s", visitCurr.Total.Normal.Count)
|
||||
text += LineCountOne("┃┗分享日活: %s", visitCurr.Total.Share.Count)
|
||||
}()
|
||||
func() {
|
||||
reCurr := &s.HourStat.Recharge
|
||||
text += "4️⃣小时充值:\n"
|
||||
text += LineMoneyOne(" ┣充值合计: %s", reCurr.Value())
|
||||
text += LineMoneyOne(" ┣安卓充值: %s", reCurr.Android.Value())
|
||||
text += LineMoneyOne(" ┣苹果充值: %s", reCurr.Ios.Value())
|
||||
text += LineMoneyOne(" ┣轻量充值: %s", reCurr.Light.Value())
|
||||
text += LineMoneyOne(" ┣H5充值: %s", reCurr.H5.Value())
|
||||
text += LineMoneyOne(" ┣渠道充值: %s", reCurr.Total.District.Value)
|
||||
text += LineMoneyOne(" ┣官网充值: %s", reCurr.Total.Web.Value)
|
||||
text += LineMoneyOne(" ┣自来充值: %s", reCurr.Total.Normal.Value)
|
||||
oldCurr := &s.HourStat.RechargeOld
|
||||
text += LineMoneyOne(" ┣老用户充: %s", oldCurr.Value())
|
||||
newCurr := &s.HourStat.RechargeNew
|
||||
text += LineMoneyOne(" ┣新用户充: %s", newCurr.Value())
|
||||
memCurr := &s.HourStat.RechargeVip
|
||||
text += LineMoneyOne(" ┣会员充值: %s", memCurr.Value())
|
||||
coinCurr := &s.HourStat.RechargeGold
|
||||
text += LineMoneyOne(" ┣金币充值: %s", coinCurr.Value())
|
||||
orderCurr := &s.HourStat.Order
|
||||
text += LineCountOne(" ┣订单拉起: %s", orderCurr.Count())
|
||||
succCurr := &s.HourStat.OrderSucc
|
||||
text += LineCountOne(" ┣订单成功: %s", succCurr.Count())
|
||||
v1 := succCurr.Percentage(orderCurr)
|
||||
text += LineCountOne(" ┗订单成功率: %s%%", v1.Count())
|
||||
text += "5️⃣小时新增:\n"
|
||||
regCurr := &s.HourStat.Register
|
||||
text += LineCountOne(" ┣新增用户: %s", regCurr.Count())
|
||||
text += LineCountOne(" ┣安卓新增: %s", regCurr.Android.Count())
|
||||
text += LineCountOne(" ┣苹果新增: %s", regCurr.Ios.Count())
|
||||
text += LineCountOne(" ┣轻量新增: %s", regCurr.Light.Count())
|
||||
text += LineCountOne(" ┣H5新增: %s", regCurr.H5.Count())
|
||||
text += LineCountOne(" ┣渠道新增: %s", regCurr.Total.District.Count)
|
||||
text += LineCountOne(" ┣官网新增: %s", regCurr.Total.Web.Count)
|
||||
text += LineCountOne(" ┗自来新增: %s", regCurr.Total.Normal.Count)
|
||||
}()
|
||||
func() {
|
||||
if s.TodayGame != nil {
|
||||
text += "5️⃣游戏数据:\n"
|
||||
text += fmt.Sprintf(" ┣游戏充值: %d\n", s.TodayGame.RchgAmount)
|
||||
text += fmt.Sprintf(" ┣代充充值: %d\n", s.TodayGame.DcRchgAmount)
|
||||
text += fmt.Sprintf(" ┣有效投注: %d\n", s.TodayGame.ValidBet)
|
||||
text += fmt.Sprintf(" ┣系统盈利: %d\n", s.TodayGame.Profit)
|
||||
text += fmt.Sprintf(" ┣提现金额: %d\n", s.TodayGame.WtdrRealAmount)
|
||||
text += fmt.Sprintf(" ┣游戏上分: %d\n", s.TodayGame.IncAmount)
|
||||
text += fmt.Sprintf(" ┗游戏下分: %d\n", s.TodayGame.DecAmount)
|
||||
}
|
||||
}()
|
||||
text += fmt.Sprintf("🆚【%s】同比数据未找到\n", appName)
|
||||
}
|
||||
return text
|
||||
}
|
||||
|
||||
func (s *BotHourStat) DisplaySummaryText(title string) string {
|
||||
var text string
|
||||
text += fmt.Sprintf("统计标题:%s\n", title) //
|
||||
func() {
|
||||
reCurr := &s.TodayStat.Recharge
|
||||
text += "1️⃣充值合计:\n"
|
||||
text += LineMoneyOne("┣充值合计: %s元", reCurr.Value())
|
||||
text += LineMoneyOne("┃┏安卓充值: %s元", reCurr.Android.Value())
|
||||
text += LineMoneyOne("┣╋苹果充值: %s元", reCurr.Ios.Value())
|
||||
text += LineMoneyOne("┃┣轻量充值: %s元", reCurr.Light.Value())
|
||||
text += LineMoneyOne("┃┗H5充值: %s元", reCurr.H5.Value())
|
||||
text += LineMoneyOne("┃┏渠道充值: %s元", reCurr.Total.District.Value)
|
||||
text += LineMoneyOne("┣╋官网充值: %s元", reCurr.Total.Web.Value)
|
||||
text += LineMoneyOne("┃┣自来充值: %s元", reCurr.Total.Normal.Value)
|
||||
text += LineMoneyOne("┃┗分享充值: %s元", reCurr.Total.Share.Value)
|
||||
|
||||
oldCurr := &s.TodayStat.RechargeOld
|
||||
text += LineMoneyOne("┃┏老用户充: %s元", oldCurr.Value())
|
||||
newCurr := &s.TodayStat.RechargeNew
|
||||
text += LineMoneyOne("┣╋新用户充: %s元", newCurr.Value())
|
||||
v0 := newCurr.Percentage(reCurr)
|
||||
text += LineCountOne("┃┗新充占比: %s%%", v0.Value())
|
||||
|
||||
memCurr := &s.TodayStat.RechargeVip
|
||||
text += LineMoneyOne("┃┏会员充值: %s元", memCurr.Value())
|
||||
coinCurr := &s.TodayStat.RechargeGold
|
||||
text += LineMoneyOne("┣╋金币充值: %s元", coinCurr.Value())
|
||||
v1 := memCurr.Percentage(reCurr)
|
||||
text += LineCountOne("┃┗会员占比: %s%%", v1.Value())
|
||||
|
||||
orderCurr := &s.TodayStat.Order
|
||||
text += LineCountOne("┃┏订单拉起: %s", orderCurr.Count())
|
||||
succCurr := &s.TodayStat.OrderSucc
|
||||
text += LineCountOne("┣╋订单成功: %s", succCurr.Count())
|
||||
v2 := succCurr.Percentage(orderCurr)
|
||||
text += LineCountOne("┃┗成功占比: %s%%", v2.Count())
|
||||
text += "2️⃣新增合计:\n"
|
||||
regCurr := &s.TodayStat.Register
|
||||
text += LineCountOne("┣新增用户: %s", regCurr.Count())
|
||||
text += LineCountOne("┃┏安卓新增: %s", regCurr.Android.Count())
|
||||
text += LineCountOne("┣╋苹果新增: %s", regCurr.Ios.Count())
|
||||
text += LineCountOne("┃┣轻量新增: %s", regCurr.Light.Count())
|
||||
text += LineCountOne("┃┗H5新增: %s", regCurr.H5.Count())
|
||||
text += LineCountOne("┃┏渠道新增: %s", regCurr.Total.District.Count)
|
||||
text += LineCountOne("┣╋官网新增: %s", regCurr.Total.Web.Count)
|
||||
text += LineCountOne("┃┣自来新增: %s", regCurr.Total.Normal.Count)
|
||||
text += LineCountOne("┃┗分享新增: %s", regCurr.Total.Share.Count)
|
||||
text += "3️⃣日活合计:\n"
|
||||
visitCurr := &s.TodayStat.Visit
|
||||
text += LineCountOne("┣日活总数: %s", visitCurr.Count())
|
||||
text += LineCountOne("┃┏安卓日活: %s", visitCurr.Android.Count())
|
||||
text += LineCountOne("┣╋苹果日活: %s", visitCurr.Ios.Count())
|
||||
text += LineCountOne("┃┣轻量日活: %s", visitCurr.Light.Count())
|
||||
text += LineCountOne("┃┗H5日活: %s", visitCurr.H5.Count())
|
||||
text += LineCountOne("┃┏渠道日活: %s", visitCurr.Total.District.Count)
|
||||
text += LineCountOne("┣╋官网日活: %s", visitCurr.Total.Web.Count)
|
||||
text += LineCountOne("┃┣自来日活: %s", visitCurr.Total.Normal.Count)
|
||||
text += LineCountOne("┃┗分享日活: %s", visitCurr.Total.Share.Count)
|
||||
}()
|
||||
func() {
|
||||
if s.AppId == 888 && s.TodayGame != nil {
|
||||
text += "5️⃣游戏合计:\n"
|
||||
text += fmt.Sprintf("┃┏游戏充值: %d\n", s.TodayGame.RchgAmount)
|
||||
text += fmt.Sprintf("┃┣代充充值: %d\n", s.TodayGame.DcRchgAmount)
|
||||
text += fmt.Sprintf("┃┣有效投注: %d\n", s.TodayGame.ValidBet)
|
||||
text += fmt.Sprintf("┣╋系统盈利: %d\n", s.TodayGame.Profit)
|
||||
text += fmt.Sprintf("┃┣提现金额: %d\n", s.TodayGame.WtdrRealAmount)
|
||||
text += fmt.Sprintf("┃┣游戏上分: %d\n", s.TodayGame.IncAmount)
|
||||
text += fmt.Sprintf("┃┗游戏下分: %d\n", s.TodayGame.DecAmount)
|
||||
}
|
||||
}()
|
||||
|
||||
return text
|
||||
}
|
||||
|
||||
func (s *BotHourStat) GenerateTodayTable(title string, statName string, filepath string, compare *BotHourStat) (string, error) {
|
||||
var text string
|
||||
text += fmt.Sprintf("报告时间:%s\n", s.SumDate.Format("2006-01-02T15:04:05"))
|
||||
if _, exists := statutils.StatProjectNameDict[statName]; exists {
|
||||
if compare != nil {
|
||||
switch statName {
|
||||
case statutils.StatProjectRecharge:
|
||||
return text, s.TodayStat.Recharge.Table(title, 100, &compare.TodayStat.Recharge, filepath)
|
||||
case statutils.StatProjectRechargeOld:
|
||||
return text, s.TodayStat.RechargeOld.Table(title, 100, &compare.TodayStat.RechargeOld, filepath)
|
||||
case statutils.StatProjectRechargeNew:
|
||||
return text, s.TodayStat.RechargeNew.Table(title, 100, &compare.TodayStat.RechargeNew, filepath)
|
||||
case statutils.StatProjectRechargeGold:
|
||||
return text, s.TodayStat.RechargeGold.Table(title, 100, &compare.TodayStat.RechargeGold, filepath)
|
||||
case statutils.StatProjectRechargeVip:
|
||||
return text, s.TodayStat.RechargeVip.Table(title, 100, &compare.TodayStat.RechargeVip, filepath)
|
||||
case statutils.StatProjectOrder:
|
||||
return text, s.TodayStat.Order.Table(title, 1, &compare.TodayStat.Order, filepath)
|
||||
case statutils.StatProjectRegister:
|
||||
return text, s.TodayStat.Register.Table(title, 1, &compare.TodayStat.Register, filepath)
|
||||
case statutils.StatProjectVisit:
|
||||
return text, s.TodayStat.Visit.Table(title, 1, &compare.TodayStat.Visit, filepath)
|
||||
default:
|
||||
return "", errors.New("没有指定统计项目")
|
||||
}
|
||||
} else {
|
||||
switch statName {
|
||||
case statutils.StatProjectRecharge:
|
||||
return text, s.TodayStat.Recharge.Table(title, 100, nil, filepath)
|
||||
case statutils.StatProjectRechargeOld:
|
||||
return text, s.TodayStat.RechargeOld.Table(title, 100, nil, filepath)
|
||||
case statutils.StatProjectRechargeNew:
|
||||
return text, s.TodayStat.RechargeNew.Table(title, 100, nil, filepath)
|
||||
case statutils.StatProjectRechargeGold:
|
||||
return text, s.TodayStat.RechargeGold.Table(title, 100, nil, filepath)
|
||||
case statutils.StatProjectRechargeVip:
|
||||
return text, s.TodayStat.RechargeVip.Table(title, 100, nil, filepath)
|
||||
case statutils.StatProjectOrder:
|
||||
return text, s.TodayStat.Order.Table(title, 1, nil, filepath)
|
||||
case statutils.StatProjectRegister:
|
||||
return text, s.TodayStat.Register.Table(title, 1, nil, filepath)
|
||||
case statutils.StatProjectVisit:
|
||||
return text, s.TodayStat.Visit.Table(title, 1, nil, filepath)
|
||||
default:
|
||||
return "", errors.New("没有指定统计项目")
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return "", errors.New("没有指定统计项目")
|
||||
}
|
||||
}
|
||||
|
||||
func (s *BotHourStat) DisplayDayHourTextWithTitle(appName string, compare *BotHourStat) (text string, title string, descript string) {
|
||||
calc := func(curr, hist *statutils.Stat) (*statutils.Stat, *statutils.Stat) {
|
||||
diff := curr.Sub(hist)
|
||||
rate := diff.Permil(hist)
|
||||
return curr, rate
|
||||
}
|
||||
rate := func(currValue, histValue int64) int64 {
|
||||
if histValue != 0 {
|
||||
return (currValue - histValue) * 1000 / histValue
|
||||
} else {
|
||||
return 0
|
||||
}
|
||||
}
|
||||
title = fmt.Sprintf("%s", appName)
|
||||
descript = fmt.Sprintf("统计时间: %s\n", s.SumDate.Format("2006-01-02T15"))
|
||||
if compare != nil {
|
||||
func() {
|
||||
reCurr, reRate := calc(&s.TodayStat.Recharge, &compare.TodayStat.Recharge)
|
||||
text += "1️⃣当日充值:\n"
|
||||
text += LineMoney("┣充值合计:%s", reCurr.Value(), reRate.Value())
|
||||
descript += LineMoney(" 今日充值:%s", reCurr.Value(), reRate.Value())
|
||||
text += LineMoney("┃┏安卓充值:%s", reCurr.Android.Value(), reRate.Android.Value())
|
||||
text += LineMoney("┣╋苹果充值:%s", reCurr.Ios.Value(), reRate.Ios.Value())
|
||||
text += LineMoney("┃┣轻量充值:%s", reCurr.Light.Value(), reRate.Light.Value())
|
||||
text += LineMoney("┃┗H5充值 :%s", reCurr.H5.Value(), reRate.H5.Value())
|
||||
text += LineMoney("┃┏渠道充值:%s", reCurr.Total.District.Value, reRate.Total.District.Value)
|
||||
text += LineMoney("┣╋官网充值:%s", reCurr.Total.Web.Value, reRate.Total.Web.Value)
|
||||
text += LineMoney("┃┣自来充值:%s", reCurr.Total.Normal.Value, reRate.Total.Normal.Value)
|
||||
text += LineMoney("┃┗分享充值:%s", reCurr.Total.Share.Value, reRate.Total.Share.Value)
|
||||
oldCurr, oldRate := calc(&s.TodayStat.RechargeOld, &compare.TodayStat.RechargeOld)
|
||||
text += LineMoney("┃┏老用户充:%s", oldCurr.Value(), oldRate.Value())
|
||||
newCurr, newRate := calc(&s.TodayStat.RechargeNew, &compare.TodayStat.RechargeNew)
|
||||
text += LineMoney("┣╋新用户充:%s", newCurr.Value(), newRate.Value())
|
||||
v0, v00 := calc(newCurr.Percentage(reCurr), compare.TodayStat.RechargeNew.Percentage(&compare.TodayStat.Recharge))
|
||||
text += LineCount("┃┗新充占比:%s%%", v0.Value(), v00.Value())
|
||||
memCurr, memRate := calc(&s.TodayStat.RechargeVip, &compare.TodayStat.RechargeVip)
|
||||
text += LineMoney("┃┏会员充值:%s", memCurr.Value(), memRate.Value())
|
||||
coinCurr, coinRate := calc(&s.TodayStat.RechargeGold, &compare.TodayStat.RechargeGold)
|
||||
text += LineMoney("┣╋金币充值:%s", coinCurr.Value(), coinRate.Value())
|
||||
v2, v22 := calc(memCurr.Percentage(reCurr), compare.TodayStat.RechargeVip.Percentage(&compare.TodayStat.Recharge))
|
||||
text += LineCount("┃┗会员占比:%s%%", v2.Value(), v22.Value())
|
||||
orderCurr, orderRate := calc(&s.TodayStat.Order, &compare.TodayStat.Order)
|
||||
text += LineCount("┃┏订单拉起:%s", orderCurr.Count(), orderRate.Count())
|
||||
succCurr, succRate := calc(&s.TodayStat.OrderSucc, &compare.TodayStat.OrderSucc)
|
||||
text += LineCount("┣╋订单成功:%s", succCurr.Count(), succRate.Count())
|
||||
v1, v11 := calc(succCurr.Percentage(orderCurr), compare.TodayStat.OrderSucc.Percentage(&compare.TodayStat.Order))
|
||||
text += LineCount("┃┗成功比率:%s%%", v1.Count(), v11.Count())
|
||||
text += "2️⃣当日新增:\n"
|
||||
|
||||
regCurr, regRate := calc(&s.TodayStat.Register, &compare.TodayStat.Register)
|
||||
text += LineCount("┣新增用户:%s", regCurr.Count(), regRate.Count())
|
||||
descript += LineCount(" 今日新增:%s", regCurr.Count(), regRate.Count())
|
||||
text += LineCount("┃┏安卓新增:%s", regCurr.Android.Count(), regRate.Android.Count())
|
||||
text += LineCount("┣╋苹果新增:%s", regCurr.Ios.Count(), regRate.Ios.Count())
|
||||
text += LineCount("┃┣轻量新增:%s", regCurr.Light.Count(), regRate.Light.Count())
|
||||
text += LineCount("┃┗H5新增 :%s", regCurr.H5.Count(), regRate.H5.Count())
|
||||
text += LineCount("┃┏渠道新增:%s", regCurr.Total.District.Count, regRate.Total.District.Count)
|
||||
text += LineCount("┣╋有效新增:%s", regCurr.Total.Direct.Value()-regCurr.Total.Direct.Natural.Value,
|
||||
regRate.Total.Direct.Value()-regRate.Total.Direct.Natural.Value)
|
||||
text += LineCount("┣╋官网新增:%s", regCurr.Total.Web.Count, regRate.Total.Web.Count)
|
||||
text += LineCount("┃┣自来新增:%s", regCurr.Total.Normal.Count, regRate.Total.Normal.Count)
|
||||
text += LineCount("┃┗分享新增:%s", regCurr.Total.Share.Count, regRate.Total.Share.Count)
|
||||
text += "3️⃣当日日活:\n"
|
||||
visitCurr, visitRate := calc(&s.TodayStat.Visit, &compare.TodayStat.Visit)
|
||||
text += LineCount("┣日活总数:%s", visitCurr.Count(), visitRate.Count())
|
||||
text += LineCount("┃┏安卓日活:%s", visitCurr.Android.Count(), visitRate.Android.Count())
|
||||
text += LineCount("┣╋苹果日活:%s", visitCurr.Ios.Count(), visitRate.Ios.Count())
|
||||
text += LineCount("┃┣轻量日活:%s", visitCurr.Light.Count(), visitRate.Light.Count())
|
||||
text += LineCount("┃┗H5日活 :%s", visitCurr.H5.Count(), visitRate.H5.Count())
|
||||
text += LineCount("┃┏渠道日活:%s", visitCurr.Total.District.Count, visitRate.Total.District.Count)
|
||||
text += LineCount("┣╋官网日活:%s", visitCurr.Total.Web.Count, visitRate.Total.Web.Count)
|
||||
text += LineCount("┃┣自来日活:%s", visitCurr.Total.Normal.Count, visitRate.Total.Normal.Count)
|
||||
text += LineCount("┃┗分享日活:%s", visitCurr.Total.Share.Count, visitRate.Total.Share.Count)
|
||||
text += "4️⃣落地页点击:\n"
|
||||
text += LineCount("┣总数:%s", s.TodayLandPage.LandPageTotalClick, rate(s.TodayLandPage.LandPageTotalClick, compare.TodayLandPage.LandPageTotalClick))
|
||||
text += LineCount("┃┏安卓:%s", s.TodayLandPage.LandPageAndroidClick, rate(s.TodayLandPage.LandPageAndroidClick, compare.TodayLandPage.LandPageAndroidClick))
|
||||
text += LineCount("┣╋商店:%s", s.TodayLandPage.LandPageIosAppstoreClick, rate(s.TodayLandPage.LandPageIosAppstoreClick, compare.TodayLandPage.LandPageIosAppstoreClick))
|
||||
text += LineCount("┃┣企业:%s", s.TodayLandPage.LandPageIosFirmClick, rate(s.TodayLandPage.LandPageIosFirmClick, compare.TodayLandPage.LandPageIosFirmClick))
|
||||
text += LineCount("┃┗轻量:%s", s.TodayLandPage.LandPageIosLightClick, rate(s.TodayLandPage.LandPageIosLightClick, compare.TodayLandPage.LandPageIosLightClick))
|
||||
}()
|
||||
func() {
|
||||
reCurr, reRate := calc(&s.HourStat.Recharge, &compare.HourStat.Recharge)
|
||||
text += "5️⃣小时充值:\n"
|
||||
text += LineMoney("┣充值合计:%s", reCurr.Value(), reRate.Value())
|
||||
descript += LineMoney(" 小时充值:%s", reCurr.Value(), reRate.Value())
|
||||
text += LineMoney("┃┏安卓充值:%s", reCurr.Android.Value(), reRate.Android.Value())
|
||||
text += LineMoney("┣╋苹果充值:%s", reCurr.Ios.Value(), reRate.Ios.Value())
|
||||
text += LineMoney("┃┣轻量充值:%s", reCurr.Light.Value(), reRate.Light.Value())
|
||||
text += LineMoney("┃┗H5充值 :%s", reCurr.H5.Value(), reRate.H5.Value())
|
||||
text += LineMoney("┃┏渠道充值:%s", reCurr.Total.District.Value, reRate.Total.District.Value)
|
||||
text += LineMoney("┣╋官网充值:%s", reCurr.Total.Web.Value, reRate.Total.Web.Value)
|
||||
text += LineMoney("┃┣自来充值:%s", reCurr.Total.Normal.Value, reRate.Total.Normal.Value)
|
||||
text += LineMoney("┃┗分享充值:%s", reCurr.Total.Share.Value, reRate.Total.Share.Value)
|
||||
oldCurr, oldRate := calc(&s.HourStat.RechargeOld, &compare.HourStat.RechargeOld)
|
||||
text += LineMoney("┃┏老用户充:%s", oldCurr.Value(), oldRate.Value())
|
||||
newCurr, newRate := calc(&s.HourStat.RechargeNew, &compare.HourStat.RechargeNew)
|
||||
text += LineMoney("┣╋新用户充:%s", newCurr.Value(), newRate.Value())
|
||||
v0, v00 := calc(newCurr.Percentage(reCurr), compare.HourStat.RechargeNew.Percentage(&compare.HourStat.Recharge))
|
||||
text += LineCount("┃┗新充占比:%s%%", v0.Value(), v00.Value())
|
||||
memCurr, memRate := calc(&s.HourStat.RechargeVip, &compare.HourStat.RechargeVip)
|
||||
text += LineMoney("┃┏会员充值:%s", memCurr.Value(), memRate.Value())
|
||||
coinCurr, coinRate := calc(&s.HourStat.RechargeGold, &compare.HourStat.RechargeGold)
|
||||
text += LineMoney("┣╋金币充值:%s", coinCurr.Value(), coinRate.Value())
|
||||
v2, v22 := calc(memCurr.Percentage(reCurr), compare.HourStat.RechargeVip.Percentage(&compare.HourStat.Recharge))
|
||||
text += LineCount("┃┗会员占比:%s%%", v2.Value(), v22.Value())
|
||||
orderCurr, orderRate := calc(&s.HourStat.Order, &compare.HourStat.Order)
|
||||
text += LineCount("┃┏订单拉起:%s", orderCurr.Count(), orderRate.Count())
|
||||
succCurr, succRate := calc(&s.HourStat.OrderSucc, &compare.HourStat.OrderSucc)
|
||||
text += LineCount("┣╋订单成功:%s", succCurr.Count(), succRate.Count())
|
||||
v1, v11 := calc(succCurr.Percentage(orderCurr), compare.HourStat.OrderSucc.Percentage(&compare.HourStat.Order))
|
||||
text += LineCount("┃┗订单成功率:%s%%", v1.Count(), v11.Count())
|
||||
text += "6️⃣小时新增:\n"
|
||||
regCurr, regRate := calc(&s.HourStat.Register, &compare.HourStat.Register)
|
||||
text += LineCount("┣新增用户:%s", regCurr.Count(), regRate.Count())
|
||||
descript += LineCount(" 小时新增:%s", regCurr.Count(), regRate.Count())
|
||||
text += LineCount("┃┏安卓新增:%s", regCurr.Android.Count(), regRate.Android.Count())
|
||||
text += LineCount("┣╋苹果新增:%s", regCurr.Ios.Count(), regRate.Ios.Count())
|
||||
text += LineCount("┃┣轻量新增:%s", regCurr.Light.Count(), regRate.Light.Count())
|
||||
text += LineCount("┃┗H5新增 :%s", regCurr.H5.Count(), regRate.H5.Count())
|
||||
text += LineCount("┃┏渠道新增:%s", regCurr.Total.District.Count, regRate.Total.District.Count)
|
||||
text += LineCount("┣╋有效新增:%s", regCurr.Total.Direct.Value()-regCurr.Total.Direct.Natural.Value,
|
||||
regRate.Total.Direct.Value()-regRate.Total.Direct.Natural.Value)
|
||||
text += LineCount("┣╋官网新增:%s", regCurr.Total.Web.Count, regRate.Total.Web.Count)
|
||||
text += LineCount("┃┣自来新增:%s", regCurr.Total.Normal.Count, regRate.Total.Normal.Count)
|
||||
text += LineCount("┃┗分享新增:%s", regCurr.Total.Share.Count, regRate.Total.Share.Count)
|
||||
text += "7️⃣小时落地页点击:\n"
|
||||
text += LineCount("┣总数:%s", s.HourLandPage.LandPageTotalClick, rate(s.HourLandPage.LandPageTotalClick, compare.HourLandPage.LandPageTotalClick))
|
||||
text += LineCount("┃┏安卓:%s", s.HourLandPage.LandPageAndroidClick, rate(s.HourLandPage.LandPageAndroidClick, compare.HourLandPage.LandPageAndroidClick))
|
||||
text += LineCount("┣╋商店:%s", s.HourLandPage.LandPageIosAppstoreClick, rate(s.HourLandPage.LandPageIosAppstoreClick, compare.HourLandPage.LandPageIosAppstoreClick))
|
||||
text += LineCount("┃┣企业:%s", s.HourLandPage.LandPageIosFirmClick, rate(s.HourLandPage.LandPageIosFirmClick, compare.HourLandPage.LandPageIosFirmClick))
|
||||
text += LineCount("┃┗轻量:%s", s.HourLandPage.LandPageIosLightClick, rate(s.HourLandPage.LandPageIosLightClick, compare.HourLandPage.LandPageIosLightClick))
|
||||
|
||||
}()
|
||||
func() {
|
||||
if s.TodayGame != nil {
|
||||
text += "8️⃣游戏数据:\n"
|
||||
text += fmt.Sprintf("┣游戏充值: %d\n", s.TodayGame.RchgAmount)
|
||||
text += fmt.Sprintf("┣代充充值: %d\n", s.TodayGame.DcRchgAmount)
|
||||
text += fmt.Sprintf("┣有效投注: %d\n", s.TodayGame.ValidBet)
|
||||
text += fmt.Sprintf("┣系统盈利: %d\n", s.TodayGame.Profit)
|
||||
text += fmt.Sprintf("┣提现金额: %d\n", s.TodayGame.WtdrRealAmount)
|
||||
text += fmt.Sprintf("┣游戏上分: %d\n", s.TodayGame.IncAmount)
|
||||
text += fmt.Sprintf("┗游戏下分: %d\n", s.TodayGame.DecAmount)
|
||||
}
|
||||
}()
|
||||
text += fmt.Sprintf("🆚%s同比数据:当日的昨天%d点\n", appName, compare.SumDate.Hour())
|
||||
} else {
|
||||
func() {
|
||||
reCurr := &s.TodayStat.Recharge
|
||||
text += "1️⃣当日充值:\n"
|
||||
text += LineMoneyOne("┣充值合计: %s", reCurr.Value())
|
||||
text += LineMoneyOne("┃┏安卓充值: %s", reCurr.Android.Value())
|
||||
text += LineMoneyOne("┣╋苹果充值: %s", reCurr.Ios.Value())
|
||||
text += LineMoneyOne("┃┣轻量充值: %s", reCurr.Light.Value())
|
||||
text += LineMoneyOne("┃┗H5充值: %s", reCurr.H5.Value())
|
||||
text += LineMoneyOne("┃┏渠道充值: %s", reCurr.Total.District.Value)
|
||||
text += LineMoneyOne("┣╋官网充值: %s", reCurr.Total.Web.Value)
|
||||
text += LineMoneyOne("┃┣自来充值: %s", reCurr.Total.Normal.Value)
|
||||
text += LineMoneyOne("┃┗分享充值: %s", reCurr.Total.Share.Value)
|
||||
|
||||
oldCurr := &s.TodayStat.RechargeOld
|
||||
text += LineMoneyOne("┃┏老用户充: %s", oldCurr.Value())
|
||||
newCurr := &s.TodayStat.RechargeNew
|
||||
text += LineMoneyOne("┣╋新用户充: %s", newCurr.Value())
|
||||
v0 := newCurr.Percentage(reCurr)
|
||||
text += LineCountOne("┃┗新充占比: %s%%", v0.Value())
|
||||
|
||||
memCurr := &s.TodayStat.RechargeVip
|
||||
text += LineMoneyOne("┃┏会员充值: %s", memCurr.Value())
|
||||
coinCurr := &s.TodayStat.RechargeGold
|
||||
text += LineMoneyOne("┣╋金币充值: %s", coinCurr.Value())
|
||||
v1 := memCurr.Percentage(reCurr)
|
||||
text += LineCountOne("┃┗会员占比: %s%%", v1.Value())
|
||||
|
||||
orderCurr := &s.TodayStat.Order
|
||||
text += LineCountOne("┃┏订单拉起: %s", orderCurr.Count())
|
||||
succCurr := &s.TodayStat.OrderSucc
|
||||
text += LineCountOne("┣╋订单成功: %s", succCurr.Count())
|
||||
v2 := succCurr.Percentage(orderCurr)
|
||||
text += LineCountOne("┃┗成功占比: %s%%", v2.Count())
|
||||
text += "2️⃣当日新增:\n"
|
||||
regCurr := &s.TodayStat.Register
|
||||
text += LineCountOne("┣新增用户: %s", regCurr.Count())
|
||||
text += LineCountOne("┃┏安卓新增: %s", regCurr.Android.Count())
|
||||
text += LineCountOne("┣╋苹果新增: %s", regCurr.Ios.Count())
|
||||
text += LineCountOne("┃┣轻量新增: %s", regCurr.Light.Count())
|
||||
text += LineCountOne("┃┗H5新增: %s", regCurr.H5.Count())
|
||||
text += LineCountOne("┃┏渠道新增: %s", regCurr.Total.District.Count)
|
||||
text += LineCountOne("┣╋官网新增: %s", regCurr.Total.Web.Count)
|
||||
text += LineCountOne("┃┣自来新增: %s", regCurr.Total.Normal.Count)
|
||||
text += LineCountOne("┃┗分享新增: %s", regCurr.Total.Share.Count)
|
||||
text += "3️⃣当日日活:\n"
|
||||
visitCurr := &s.TodayStat.Visit
|
||||
text += LineCountOne("┣日活总数: %s", visitCurr.Count())
|
||||
text += LineCountOne("┃┏安卓日活: %s", visitCurr.Android.Count())
|
||||
text += LineCountOne("┣╋苹果日活: %s", visitCurr.Ios.Count())
|
||||
text += LineCountOne("┃┣轻量日活: %s", visitCurr.Light.Count())
|
||||
text += LineCountOne("┃┗H5日活: %s", visitCurr.H5.Count())
|
||||
text += LineCountOne("┃┏渠道日活: %s", visitCurr.Total.District.Count)
|
||||
text += LineCountOne("┣╋官网日活: %s", visitCurr.Total.Web.Count)
|
||||
text += LineCountOne("┃┣自来日活: %s", visitCurr.Total.Normal.Count)
|
||||
text += LineCountOne("┃┗分享日活: %s", visitCurr.Total.Share.Count)
|
||||
}()
|
||||
func() {
|
||||
reCurr := &s.HourStat.Recharge
|
||||
text += "4️⃣小时充值:\n"
|
||||
text += LineMoneyOne(" ┣充值合计: %s", reCurr.Value())
|
||||
text += LineMoneyOne(" ┣安卓充值: %s", reCurr.Android.Value())
|
||||
text += LineMoneyOne(" ┣苹果充值: %s", reCurr.Ios.Value())
|
||||
text += LineMoneyOne(" ┣轻量充值: %s", reCurr.Light.Value())
|
||||
text += LineMoneyOne(" ┣H5充值: %s", reCurr.H5.Value())
|
||||
text += LineMoneyOne(" ┣渠道充值: %s", reCurr.Total.District.Value)
|
||||
text += LineMoneyOne(" ┣官网充值: %s", reCurr.Total.Web.Value)
|
||||
text += LineMoneyOne(" ┣自来充值: %s", reCurr.Total.Normal.Value)
|
||||
oldCurr := &s.HourStat.RechargeOld
|
||||
text += LineMoneyOne(" ┣老用户充: %s", oldCurr.Value())
|
||||
newCurr := &s.HourStat.RechargeNew
|
||||
text += LineMoneyOne(" ┣新用户充: %s", newCurr.Value())
|
||||
memCurr := &s.HourStat.RechargeVip
|
||||
text += LineMoneyOne(" ┣会员充值: %s", memCurr.Value())
|
||||
coinCurr := &s.HourStat.RechargeGold
|
||||
text += LineMoneyOne(" ┣金币充值: %s", coinCurr.Value())
|
||||
orderCurr := &s.HourStat.Order
|
||||
text += LineCountOne(" ┣订单拉起: %s", orderCurr.Count())
|
||||
succCurr := &s.HourStat.OrderSucc
|
||||
text += LineCountOne(" ┣订单成功: %s", succCurr.Count())
|
||||
v1 := succCurr.Percentage(orderCurr)
|
||||
text += LineCountOne(" ┗订单成功率: %s%%", v1.Count())
|
||||
text += "5️⃣小时新增:\n"
|
||||
regCurr := &s.HourStat.Register
|
||||
text += LineCountOne(" ┣新增用户: %s", regCurr.Count())
|
||||
text += LineCountOne(" ┣安卓新增: %s", regCurr.Android.Count())
|
||||
text += LineCountOne(" ┣苹果新增: %s", regCurr.Ios.Count())
|
||||
text += LineCountOne(" ┣轻量新增: %s", regCurr.Light.Count())
|
||||
text += LineCountOne(" ┣H5新增: %s", regCurr.H5.Count())
|
||||
text += LineCountOne(" ┣渠道新增: %s", regCurr.Total.District.Count)
|
||||
text += LineCountOne(" ┣官网新增: %s", regCurr.Total.Web.Count)
|
||||
text += LineCountOne(" ┗自来新增: %s", regCurr.Total.Normal.Count)
|
||||
}()
|
||||
func() {
|
||||
if s.TodayGame != nil {
|
||||
text += "5️⃣游戏数据:\n"
|
||||
text += fmt.Sprintf(" ┣游戏充值: %d\n", s.TodayGame.RchgAmount)
|
||||
text += fmt.Sprintf(" ┣代充充值: %d\n", s.TodayGame.DcRchgAmount)
|
||||
text += fmt.Sprintf(" ┣有效投注: %d\n", s.TodayGame.ValidBet)
|
||||
text += fmt.Sprintf(" ┣系统盈利: %d\n", s.TodayGame.Profit)
|
||||
text += fmt.Sprintf(" ┣提现金额: %d\n", s.TodayGame.WtdrRealAmount)
|
||||
text += fmt.Sprintf(" ┣游戏上分: %d\n", s.TodayGame.IncAmount)
|
||||
text += fmt.Sprintf(" ┗游戏下分: %d\n", s.TodayGame.DecAmount)
|
||||
}
|
||||
}()
|
||||
text += fmt.Sprintf("🆚【%s】同比数据未找到\n", appName)
|
||||
}
|
||||
return text, title, descript
|
||||
}
|
||||
Reference in New Issue
Block a user