定时任务,每天23:50,每个服插入一条数据为0的第二天的充值数据

master
czx 2023-04-21 23:53:12 +08:00
parent d195a300ea
commit 513c2696d4
1 changed files with 44 additions and 17 deletions

View File

@ -48,6 +48,7 @@ func init() {
30
*/
// 统计充值人数、充值总额(刷新统计值)
gcron.AddSingleton("0 50 23 * * ?", initServerPayInfo)
gcron.AddSingleton("0 0,30 * * * ?", StatisticalRecharge)
gcron.AddSingleton("0 0,30 * * * ?", StatisticalRecharge_Server)
@ -641,7 +642,7 @@ func logCharge() {
}
// 拼接内容
bugType := ""
if (gconv.Int(pay.PayItem) >= 1 && gconv.Int(pay.PayItem) <= 6) {
if gconv.Int(pay.PayItem) >= 1 && gconv.Int(pay.PayItem) <= 6 {
bugType = "1"
} else {
bugType = "2"
@ -657,8 +658,8 @@ func logCharge() {
goodsId := strings.Split(baseReward, "#")[0]
goodsName, _ := itemConfig.Get(gconv.String(goodsId))
// 还差付款渠道
data := gconv.String(pay.Billno)+"\t"+gconv.String(pay.OpenId)+"\t"+gconv.String(goodsId)+"\t"+gconv.String(goodsName)+"\t"+bugType+"\t"+gconv.String(pay.Creattime)+"\t" +
""+gconv.String(serverInfo.Timezone)+"\t"+gconv.String(serverInfo.Currency)+"\t"+gconv.String(pay.PayWay)+"\t"+gconv.String(pay.Money)
data := gconv.String(pay.Billno) + "\t" + gconv.String(pay.OpenId) + "\t" + gconv.String(goodsId) + "\t" + gconv.String(goodsName) + "\t" + bugType + "\t" + gconv.String(pay.Creattime) + "\t" +
"" + gconv.String(serverInfo.Timezone) + "\t" + gconv.String(serverInfo.Currency) + "\t" + gconv.String(pay.PayWay) + "\t" + gconv.String(pay.Money)
w.Write([]string{data})
// 刷新缓冲
w.Flush()
@ -669,8 +670,8 @@ func logCharge() {
goodsId := strings.Split(gconv.String(baseRewards), "#")[0]
goodsName, _ := itemConfig.Get(gconv.String(goodsId))
// 还差付款渠道
data := gconv.String(pay.Billno)+"\t"+gconv.String(pay.OpenId)+"\t"+gconv.String(goodsId)+"\t"+gconv.String(goodsName)+"\t"+bugType+"\t"+gconv.String(pay.Creattime)+"\t" +
""+gconv.String(serverInfo.Timezone)+"\t"+gconv.String(serverInfo.Currency)+"\t"+gconv.String(pay.PayWay)+"\t"+gconv.String(pay.Money)
data := gconv.String(pay.Billno) + "\t" + gconv.String(pay.OpenId) + "\t" + gconv.String(goodsId) + "\t" + gconv.String(goodsName) + "\t" + bugType + "\t" + gconv.String(pay.Creattime) + "\t" +
"" + gconv.String(serverInfo.Timezone) + "\t" + gconv.String(serverInfo.Currency) + "\t" + gconv.String(pay.PayWay) + "\t" + gconv.String(pay.Money)
w.Write([]string{data})
// 刷新缓冲
w.Flush()
@ -742,7 +743,7 @@ func logThrow() {
}
openIdMap.Set(itemLog.Uid, openId)
}
data := openId+"\t"+gconv.String(itemLog.ItemId)+"\t"+gconv.String(gtime.NewFromTimeStamp(gconv.Int64(itemLog.Time)).Format("Y-m-d H:i:s"))+"\t"+gconv.String(serverInfo.Timezone)+"\t"+gconv.String(itemLog.ItemNum)
data := openId + "\t" + gconv.String(itemLog.ItemId) + "\t" + gconv.String(gtime.NewFromTimeStamp(gconv.Int64(itemLog.Time)).Format("Y-m-d H:i:s")) + "\t" + gconv.String(serverInfo.Timezone) + "\t" + gconv.String(itemLog.ItemNum)
w.Write([]string{data})
// 刷新缓冲
w.Flush()
@ -810,10 +811,10 @@ func logGoods() {
if len(split) == len(priceWeights) {
for i := 0; i < len(split); i++ {
percentage, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", gconv.Float64(priceWeights[i])/float64(totalWeight)), 64)
gainPrice, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", percentage * gconv.Float64(gconv.Map(rechargeCommodity)["Price"])), 64)
gainPrice, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", percentage*gconv.Float64(gconv.Map(rechargeCommodity)["Price"])), 64)
coinName := ""
data := pay.OpenId+"\t"+strings.Split(split[i], "#")[0]+"\t"+pay.Creattime+"\t"+
gconv.String(serverInfo.Timezone)+"\t"+gconv.String(strings.Split(split[i], "#")[1])+"\t0"+"\t"+gconv.String(gainPrice)+"\t"+coinName+"\t0"
data := pay.OpenId + "\t" + strings.Split(split[i], "#")[0] + "\t" + pay.Creattime + "\t" +
gconv.String(serverInfo.Timezone) + "\t" + gconv.String(strings.Split(split[i], "#")[1]) + "\t0" + "\t" + gconv.String(gainPrice) + "\t" + coinName + "\t0"
w.Write([]string{data})
w.Flush()
}
@ -822,8 +823,8 @@ func logGoods() {
// 只有一条奖励
if strings.Contains(gconv.String(baseRewards), "#") {
coinName := ""
data := pay.OpenId+"\t"+strings.Split(gconv.String(baseRewards), "#")[0]+"\t"+pay.Creattime+"\t"+
gconv.String(serverInfo.Timezone)+"\t"+gconv.String(strings.Split(gconv.String(baseRewards), "#")[1])+"\t0"+"\t"+gconv.String(gconv.Float64(gconv.Map(rechargeCommodity)["Price"]))+"\t"+coinName+"\t0"
data := pay.OpenId + "\t" + strings.Split(gconv.String(baseRewards), "#")[0] + "\t" + pay.Creattime + "\t" +
gconv.String(serverInfo.Timezone) + "\t" + gconv.String(strings.Split(gconv.String(baseRewards), "#")[1]) + "\t0" + "\t" + gconv.String(gconv.Float64(gconv.Map(rechargeCommodity)["Price"])) + "\t" + coinName + "\t0"
w.Write([]string{data})
w.Flush()
}
@ -866,8 +867,8 @@ func logGoods() {
coinName := "coinName"
// coin_cost 游戏币消耗数量,如果非游戏币购买获得,则传0
coinCost := "coinCost"
data := openId+"\t"+gconv.String(itemLog.ItemId)+"\t"+gconv.String(gtime.NewFromTimeStamp(gconv.Int64(itemLog.Time)).Format("Y-m-d H:i:s"))+"\t"+
gconv.String(serverInfo.Timezone)+"\t"+gconv.String(itemLog.ItemNum)+"\t"+gainSource+"\t"+gainPrice+"\t"+coinName+"\t"+coinCost
data := openId + "\t" + gconv.String(itemLog.ItemId) + "\t" + gconv.String(gtime.NewFromTimeStamp(gconv.Int64(itemLog.Time)).Format("Y-m-d H:i:s")) + "\t" +
gconv.String(serverInfo.Timezone) + "\t" + gconv.String(itemLog.ItemNum) + "\t" + gainSource + "\t" + gainPrice + "\t" + coinName + "\t" + coinCost
w.Write([]string{data})
// 刷新缓冲
w.Flush()
@ -886,7 +887,6 @@ func goodsInfo() {
fmt.Println("goodsInfo end")
}
// 用户账号与角色对应关系表: log_role_{游戏名}.txt (按照月度级别)
func logRole() {
// 取配置中的游戏名
@ -933,13 +933,40 @@ func logRole() {
if len(list) > 0 {
// 排序后 取第一条和最后一条分别为首充时间和最后一次充值时间
firstPayDay = gconv.String(gconv.Map(list[0])["creattime"])
lastPayDay = gconv.String(gconv.Map(list[len(list) - 1])["creattime"])
lastPayDay = gconv.String(gconv.Map(list[len(list)-1])["creattime"])
accountType = "1"
}
data := gconv.String(userInfo.OpenId)+"\t"+gconv.String(userInfo.OpenId)+"\t"+firstPayDay+"\t"+lastPayDay+"\t"+accountType
data := gconv.String(userInfo.OpenId) + "\t" + gconv.String(userInfo.OpenId) + "\t" + firstPayDay + "\t" + lastPayDay + "\t" + accountType
w.Write([]string{data})
// 刷新缓冲
w.Flush()
}
fmt.Println("logRole end")
}
func initServerPayInfo() {
bs := bson.D{}
serverInfoList := gameinfo.ModelServer.FindServerInfoList(bs)
for serverInfoList.Next(context.TODO()) {
var serverInfo gameinfo.ServerInfo
err := serverInfoList.Decode(&serverInfo)
if err != nil {
//log.Fatal(err)
log.Println(err)
continue
}
statisticalRecharge := gameinfo.StatisticalRecharge{}
tomorrow := time.Now().AddDate(0, 0, 1).Format("2006-01-02")
statisticalRecharge.CreatDay = tomorrow
//统计新增充值(当日注册且付费的人数和金额、付费次数)
statisticalRecharge.NewRechargeNum = gconv.Int(0)
statisticalRecharge.NewRechargeAmount = gconv.Float64(0)
statisticalRecharge.NewRechargeCount = gconv.Int(0)
//统计充值总数(人数和金额、付费次数)
statisticalRecharge.RechargeNum = gconv.Int(0)
statisticalRecharge.RechargeAmount = gconv.Float64(0)
statisticalRecharge.RechargeCount = gconv.Int(0)
gameinfo.ModelStatisticalRecharge.InsertAndUpdateStatisticalRecharge(statisticalRecharge.Id, statisticalRecharge, serverInfo.ServerId)
}
}