|
@@ -1,12 +1,12 @@
|
|
package crontask
|
|
package crontask
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
+ "math"
|
|
"strconv"
|
|
"strconv"
|
|
"strings"
|
|
"strings"
|
|
"time"
|
|
"time"
|
|
"wechat-api/ent"
|
|
"wechat-api/ent"
|
|
"wechat-api/ent/contact"
|
|
"wechat-api/ent/contact"
|
|
- "wechat-api/ent/creditusage"
|
|
|
|
"wechat-api/ent/custom_types"
|
|
"wechat-api/ent/custom_types"
|
|
"wechat-api/ent/labelrelationship"
|
|
"wechat-api/ent/labelrelationship"
|
|
"wechat-api/ent/messagerecords"
|
|
"wechat-api/ent/messagerecords"
|
|
@@ -56,16 +56,16 @@ func (l *CronTask) computeStatistic() {
|
|
lc := []custom_types.LabelDist{}
|
|
lc := []custom_types.LabelDist{}
|
|
|
|
|
|
var allHourAiResponseInt, allHourSopRunInt, allHourFriendCountInt, allHourGroupCountInt, allHourAccountBalanceInt, allHourConsumeTokenInt, allHourActiveUserInt, allHourNewUserInt int
|
|
var allHourAiResponseInt, allHourSopRunInt, allHourFriendCountInt, allHourGroupCountInt, allHourAccountBalanceInt, allHourConsumeTokenInt, allHourActiveUserInt, allHourNewUserInt int
|
|
- var allHourConsumeCoinInt int
|
|
|
|
|
|
+ var allHourConsumeCoinFloat float64
|
|
for orgID, wxinfos := range wxbotsSet {
|
|
for orgID, wxinfos := range wxbotsSet {
|
|
var orgAiResponseInt, orgSopRunInt, orgFriendCountInt, orgGroupCountInt, orgAccountBalanceInt, orgConsumeTokenInt, orgActiveUserInt, orgNewUserInt int
|
|
var orgAiResponseInt, orgSopRunInt, orgFriendCountInt, orgGroupCountInt, orgAccountBalanceInt, orgConsumeTokenInt, orgActiveUserInt, orgNewUserInt int
|
|
- var orgHourConsumeCoinInt int
|
|
|
|
|
|
+ var orgHourConsumeCoinFloat float64
|
|
for _, wxinfo := range wxinfos {
|
|
for _, wxinfo := range wxinfos {
|
|
l.Logger.Infof("开始计算小时数据:%d\n", lastHourInt)
|
|
l.Logger.Infof("开始计算小时数据:%d\n", lastHourInt)
|
|
|
|
|
|
// 先判断该账号是否已经统计了小时数据,如果已经统计了,就不需要再统计了
|
|
// 先判断该账号是否已经统计了小时数据,如果已经统计了,就不需要再统计了
|
|
var aiResponseInt, sopRunInt, friendCountInt, groupCountInt, accountBalanceInt, consumeTokenInt, activeUserInt, newUserInt int
|
|
var aiResponseInt, sopRunInt, friendCountInt, groupCountInt, accountBalanceInt, consumeTokenInt, activeUserInt, newUserInt int
|
|
- var consumeCoinInt int
|
|
|
|
|
|
+ var consumeCoinFloat float64
|
|
hourDataCount, _ := l.svcCtx.DB.UsageStatisticHour.Query().Where(
|
|
hourDataCount, _ := l.svcCtx.DB.UsageStatisticHour.Query().Where(
|
|
usagestatistichour.Type(1),
|
|
usagestatistichour.Type(1),
|
|
usagestatistichour.BotID(wxinfo.Wxid),
|
|
usagestatistichour.BotID(wxinfo.Wxid),
|
|
@@ -136,15 +136,14 @@ func (l *CronTask) computeStatistic() {
|
|
allHourConsumeTokenInt += consumeTokenInt
|
|
allHourConsumeTokenInt += consumeTokenInt
|
|
|
|
|
|
// 计算积分消耗
|
|
// 计算积分消耗
|
|
- consumeCoinInt, _ = l.svcCtx.DB.CreditUsage.Query().Where(
|
|
|
|
- creditusage.UserID(wxinfo.Wxid),
|
|
|
|
- creditusage.OrganizationID(orgID),
|
|
|
|
- creditusage.Ntype(2),
|
|
|
|
- creditusage.CreatedAtGTE(lastHour),
|
|
|
|
- creditusage.CreatedAtLT(currentHour),
|
|
|
|
- ).Aggregate(ent.Sum("number")).Int(l.ctx)
|
|
|
|
- allHourConsumeCoinInt += consumeCoinInt
|
|
|
|
- orgHourConsumeCoinInt += consumeCoinInt
|
|
|
|
|
|
+ consumeCoinFloat, _ = l.svcCtx.DB.UsageDetail.Query().Where(
|
|
|
|
+ usagedetail.BotID(wxinfo.Wxid),
|
|
|
|
+ usagedetail.OrganizationID(orgID),
|
|
|
|
+ usagedetail.CreatedAtGTE(lastHour),
|
|
|
|
+ usagedetail.CreatedAtLT(currentHour),
|
|
|
|
+ ).Aggregate(ent.Sum("credits")).Float64(l.ctx)
|
|
|
|
+ allHourConsumeCoinFloat += consumeCoinFloat
|
|
|
|
+ orgHourConsumeCoinFloat += consumeCoinFloat
|
|
|
|
|
|
// 账户余额
|
|
// 账户余额
|
|
accountBalanceInt = 0
|
|
accountBalanceInt = 0
|
|
@@ -186,7 +185,7 @@ func (l *CronTask) computeStatistic() {
|
|
SetTotalGroup(uint64(groupCountInt)).
|
|
SetTotalGroup(uint64(groupCountInt)).
|
|
SetAccountBalance(uint64(accountBalanceInt)).
|
|
SetAccountBalance(uint64(accountBalanceInt)).
|
|
SetConsumeToken(uint64(consumeTokenInt)).
|
|
SetConsumeToken(uint64(consumeTokenInt)).
|
|
- SetConsumeCoin(uint64(consumeCoinInt)).
|
|
|
|
|
|
+ SetConsumeCoin(uint64(math.Ceil(consumeCoinFloat))).
|
|
SetActiveUser(uint64(activeUserInt)).
|
|
SetActiveUser(uint64(activeUserInt)).
|
|
SetNewUser(int64(newUserInt)).
|
|
SetNewUser(int64(newUserInt)).
|
|
SetAddtime(uint64(lastHourInt)).
|
|
SetAddtime(uint64(lastHourInt)).
|
|
@@ -221,7 +220,7 @@ func (l *CronTask) computeStatistic() {
|
|
SetTotalGroup(uint64(orgGroupCountInt)).
|
|
SetTotalGroup(uint64(orgGroupCountInt)).
|
|
SetAccountBalance(uint64(orgAccountBalanceInt)).
|
|
SetAccountBalance(uint64(orgAccountBalanceInt)).
|
|
SetConsumeToken(uint64(orgConsumeTokenInt)).
|
|
SetConsumeToken(uint64(orgConsumeTokenInt)).
|
|
- SetConsumeCoin(uint64(orgHourConsumeCoinInt)).
|
|
|
|
|
|
+ SetConsumeCoin(uint64(math.Ceil(orgHourConsumeCoinFloat))).
|
|
SetActiveUser(uint64(orgActiveUserInt)).
|
|
SetActiveUser(uint64(orgActiveUserInt)).
|
|
SetNewUser(int64(orgNewUserInt)).
|
|
SetNewUser(int64(orgNewUserInt)).
|
|
SetAddtime(uint64(lastHourInt)).
|
|
SetAddtime(uint64(lastHourInt)).
|
|
@@ -247,7 +246,7 @@ func (l *CronTask) computeStatistic() {
|
|
SetTotalGroup(uint64(allHourGroupCountInt)).
|
|
SetTotalGroup(uint64(allHourGroupCountInt)).
|
|
SetAccountBalance(uint64(allHourAccountBalanceInt)).
|
|
SetAccountBalance(uint64(allHourAccountBalanceInt)).
|
|
SetConsumeToken(uint64(allHourConsumeTokenInt)).
|
|
SetConsumeToken(uint64(allHourConsumeTokenInt)).
|
|
- SetConsumeCoin(uint64(allHourConsumeCoinInt)).
|
|
|
|
|
|
+ SetConsumeCoin(uint64(math.Ceil(allHourConsumeCoinFloat))).
|
|
SetActiveUser(uint64(allHourActiveUserInt)).
|
|
SetActiveUser(uint64(allHourActiveUserInt)).
|
|
SetNewUser(int64(allHourNewUserInt)).
|
|
SetNewUser(int64(allHourNewUserInt)).
|
|
SetAddtime(uint64(lastHourInt)).
|
|
SetAddtime(uint64(lastHourInt)).
|