Merge branch 'dev-lzh-0905' into dev

This commit is contained in:
lzh 2025-10-17 13:29:58 +08:00
commit 3dc530db91
5 changed files with 1722 additions and 1495 deletions

View File

@ -84,7 +84,7 @@ func GetBundleBalanceList(req *bundle.GetBundleBalanceListReq) (data []model.Bun
GROUP BY customer_id
) bor2 ON bor1.customer_id = bor2.customer_id AND bor1.created_at = bor2.max_created_time`)
session := app.ModuleClients.BundleDB.Table("`micro-account`.`user` AS u").Unscoped().
Select(`bb.*, bor.bundle_name, bor.status,
Select(`bb.*, bor.bundle_name, bor.status,bor.created_at as pay_time,bor.customer_num,
bor.uuid as order_uuid, rn.name as user_name,bc.activate,
u.tel_num as user_phone_number, u.id as user_id`).
Joins("LEFT JOIN `micro-account`.real_name rn ON u.real_name_id = rn.id").
@ -140,8 +140,8 @@ func GetBundleBalanceByUserId(req *bundle.GetBundleBalanceByUserIdReq) (data mod
GROUP BY customer_id
) bor2 ON bor1.customer_id = bor2.customer_id AND bor1.created_at = bor2.max_created_time`)
session := app.ModuleClients.BundleDB.Table("`micro-account`.`user` AS u").Unscoped().
Select(`bb.*, bor.bundle_name, bor.status,bor.amount AS payment_amount,bor.amount_type AS payment_type,
bor.uuid as order_uuid, rn.name as user_name,bc.activate,
Select(`bb.*, bor.bundle_name, bor.status,bor.amount AS payment_amount,bor.amount_type AS payment_type,bor.customer_num,
bor.uuid as order_uuid, rn.name as user_name,bc.activate,bor.created_at as pay_time,
u.tel_num as user_phone_number, u.id as user_id`).
Joins("LEFT JOIN `micro-account`.real_name rn ON u.real_name_id = rn.id").
Joins("LEFT JOIN (?) as bor ON bor.customer_id = u.id", subQuery).

View File

@ -1,6 +1,7 @@
package logic
import (
"encoding/json"
"errors"
"micro-bundle/internal/dao"
"micro-bundle/internal/model"
@ -70,8 +71,12 @@ func GetBundleBalanceList(req *bundle.GetBundleBalanceListReq) (*bundle.GetBundl
UserId: int32(m.UserId),
UserName: m.UserName,
UserPhoneNumber: m.UserPhoneNumber,
CustomerNum: m.CustomerNum,
PayTime: m.PayTime,
StartTime: m.StartAt.UnixMilli(),
Status: int32(m.Status),
BundleName: m.BundleName,
Month: req.Month,
ExpiredTime: m.ExpiredAt.UnixMilli(),
// 账号类
BundleAccountNumber: int32(m.BundleAccountNumber),
@ -79,38 +84,44 @@ func GetBundleBalanceList(req *bundle.GetBundleBalanceListReq) (*bundle.GetBundl
BundleAccountConsumptionNumber: int32(m.BundleAccountConsumptionNumber),
IncreaseAccountConsumptionNumber: int32(m.IncreaseAccountConsumptionNumber),
// 视频类
BundleVideoNumber: int32(m.BundleVideoNumber) + int32(m.BundleLimitVideoNumber) + int32(m.BundleLimitVideoExpiredNumber),
IncreaseVideoNumber: int32(m.IncreaseVideoNumber) + int32(m.IncreaseLimitVideoNumber) + int32(m.IncreaseLimitVideoExpiredNumber),
BundleVideoConsumptionNumber: int32(m.BundleVideoConsumptionNumber) + int32(m.BundleLimitVideoConsumptionNumber) + int32(m.BundleLimitVideoExpiredConsumptionNumber),
IncreaseVideoConsumptionNumber: int32(m.IncreaseVideoConsumptionNumber) + int32(m.IncreaseLimitVideoConsumptionNumber) + int32(m.IncreaseLimitVideoExpiredConsumptionNumber),
InvalidBundleVideoNumber: int32(m.InvalidBundleVideoNumber),
InvalidIncreaseVideoNumber: int32(m.InvalidIncreaseVideoNumber),
MonthlyNewBundleVideoNumber: int32(cal(m.BundleBalance, m.BundleLimitVideoNumber, m.MonthlyLimitVideoQuotaNumber, date) + cal(m.BundleBalance, m.BundleLimitVideoExpiredNumber, m.MonthlyLimitVideoQuotaNumber, date)),
MonthlyNewIncreaseVideoNumber: int32(cal(m.BundleBalance, m.IncreaseLimitVideoNumber, m.MonthlyLimitVideoQuotaNumber, date) + cal(m.BundleBalance, m.IncreaseLimitVideoExpiredNumber, m.MonthlyLimitVideoQuotaNumber, date)),
MonthlyInvalidBundleVideoNumber: int32(m.MonthlyInvalidBundleVideoNumber),
MonthlyInvalidIncreaseVideoNumber: int32(m.MonthlyInvalidIncreaseVideoNumber),
BundleVideoNumber: int32(m.BundleVideoNumber) + int32(m.BundleLimitVideoNumber) + int32(m.BundleLimitVideoExpiredNumber),
IncreaseVideoNumber: int32(m.IncreaseVideoNumber) + int32(m.IncreaseLimitVideoNumber) + int32(m.IncreaseLimitVideoExpiredNumber),
BundleVideoConsumptionNumber: int32(m.BundleVideoConsumptionNumber) + int32(m.BundleLimitVideoConsumptionNumber) + int32(m.BundleLimitVideoExpiredConsumptionNumber),
IncreaseVideoConsumptionNumber: int32(m.IncreaseVideoConsumptionNumber) + int32(m.IncreaseLimitVideoConsumptionNumber) + int32(m.IncreaseLimitVideoExpiredConsumptionNumber),
InvalidBundleVideoNumber: int32(m.InvalidBundleVideoNumber),
InvalidIncreaseVideoNumber: int32(m.InvalidIncreaseVideoNumber),
MonthlyNewBundleVideoNumber: int32(cal(m.BundleBalance, m.BundleLimitVideoNumber, m.MonthlyLimitVideoQuotaNumber, date) + cal(m.BundleBalance, m.BundleLimitVideoExpiredNumber, m.MonthlyLimitVideoQuotaNumber, date)),
MonthlyNewIncreaseVideoNumber: int32(cal(m.BundleBalance, m.IncreaseLimitVideoNumber, m.MonthlyLimitVideoQuotaNumber, date) + cal(m.BundleBalance, m.IncreaseLimitVideoExpiredNumber, m.MonthlyLimitVideoQuotaNumber, date)),
MonthBundleVideoConsumptionNumber: int32(m.MonthlyBundleVideoConsumptionNumber),
MonthIncreaseVideoConsumptionNumber: int32(m.MonthlyIncreaseVideoConsumptionNumber),
MonthlyInvalidBundleVideoNumber: int32(m.MonthlyInvalidBundleVideoNumber),
MonthlyInvalidIncreaseVideoNumber: int32(m.MonthlyInvalidIncreaseVideoNumber),
// 图文类
BundleImageNumber: int32(m.BundleImageNumber) + int32(m.BundleLimitImageNumber) + int32(m.BundleLimitImageExpiredNumber),
IncreaseImageNumber: int32(m.IncreaseImageNumber) + int32(m.IncreaseLimitImageNumber) + int32(m.IncreaseLimitImageExpiredNumber),
BundleImageConsumptionNumber: int32(m.BundleImageConsumptionNumber) + int32(m.BundleLimitImageConsumptionNumber) + int32(m.BundleLimitImageExpiredConsumptionNumber),
IncreaseImageConsumptionNumber: int32(m.IncreaseImageConsumptionNumber) + int32(m.IncreaseLimitImageConsumptionNumber) + int32(m.IncreaseLimitImageExpiredConsumptionNumber),
InvalidBundleImageNumber: int32(m.InvalidBundleImageNumber),
InvalidIncreaseImageNumber: int32(m.InvalidIncreaseImageNumber),
MonthlyNewBundleImageNumber: int32(cal(m.BundleBalance, m.BundleLimitImageNumber, m.MonthlyLimitImageQuotaNumber, date) + cal(m.BundleBalance, m.BundleLimitImageExpiredNumber, m.MonthlyLimitImageQuotaNumber, date)),
MonthlyNewIncreaseImageNumber: int32(cal(m.BundleBalance, m.IncreaseLimitImageNumber, m.MonthlyLimitImageQuotaNumber, date) + cal(m.BundleBalance, m.IncreaseLimitImageExpiredNumber, m.MonthlyLimitImageQuotaNumber, date)),
MonthlyInvalidBundleImageNumber: int32(m.MonthlyInvalidBundleImageNumber),
MonthlyInvalidIncreaseImageNumber: int32(m.MonthlyInvalidIncreaseImageNumber),
BundleImageNumber: int32(m.BundleImageNumber) + int32(m.BundleLimitImageNumber) + int32(m.BundleLimitImageExpiredNumber),
IncreaseImageNumber: int32(m.IncreaseImageNumber) + int32(m.IncreaseLimitImageNumber) + int32(m.IncreaseLimitImageExpiredNumber),
BundleImageConsumptionNumber: int32(m.BundleImageConsumptionNumber) + int32(m.BundleLimitImageConsumptionNumber) + int32(m.BundleLimitImageExpiredConsumptionNumber),
IncreaseImageConsumptionNumber: int32(m.IncreaseImageConsumptionNumber) + int32(m.IncreaseLimitImageConsumptionNumber) + int32(m.IncreaseLimitImageExpiredConsumptionNumber),
InvalidBundleImageNumber: int32(m.InvalidBundleImageNumber),
InvalidIncreaseImageNumber: int32(m.InvalidIncreaseImageNumber),
MonthlyNewBundleImageNumber: int32(cal(m.BundleBalance, m.BundleLimitImageNumber, m.MonthlyLimitImageQuotaNumber, date) + cal(m.BundleBalance, m.BundleLimitImageExpiredNumber, m.MonthlyLimitImageQuotaNumber, date)),
MonthlyNewIncreaseImageNumber: int32(cal(m.BundleBalance, m.IncreaseLimitImageNumber, m.MonthlyLimitImageQuotaNumber, date) + cal(m.BundleBalance, m.IncreaseLimitImageExpiredNumber, m.MonthlyLimitImageQuotaNumber, date)),
MonthBundleImageConsumptionNumber: int32(m.MonthlyBundleImageConsumptionNumber),
MonthIncreaseImageConsumptionNumber: int32(m.MonthlyIncreaseImageConsumptionNumber),
MonthlyInvalidBundleImageNumber: int32(m.MonthlyInvalidBundleImageNumber),
MonthlyInvalidIncreaseImageNumber: int32(m.MonthlyInvalidIncreaseImageNumber),
// 数据分析类
BundleDataAnalysisNumber: int32(m.BundleDataAnalysisNumber) + int32(m.BundleLimitDataAnalysisNumber) + int32(m.BundleLimitDataAnalysisExpiredNumber),
IncreaseDataAnalysisNumber: int32(m.IncreaseDataAnalysisNumber) + int32(m.IncreaseLimitDataAnalysisNumber) + int32(m.IncreaseLimitDataAnalysisExpiredNumber),
BundleDataAnalysisConsumptionNumber: int32(m.BundleDataAnalysisConsumptionNumber) + int32(m.BundleLimitDataAnalysisConsumptionNumber) + int32(m.BundleLimitDataAnalysisExpiredConsumptionNumber),
IncreaseDataAnalysisConsumptionNumber: int32(m.IncreaseDataAnalysisConsumptionNumber) + int32(m.IncreaseLimitDataAnalysisConsumptionNumber) + int32(m.IncreaseLimitDataAnalysisExpiredConsumptionNumber),
InvalidBundleDataAnalysisNumber: int32(m.InvalidBundleDataAnalysisNumber),
InvalidIncreaseDataAnalysisNumber: int32(m.InvalidIncreaseDataAnalysisNumber),
MonthlyNewBundleDataAnalysisNumber: int32(cal(m.BundleBalance, m.BundleLimitDataAnalysisNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date) + cal(m.BundleBalance, m.BundleLimitDataAnalysisExpiredNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date)),
MonthlyNewIncreaseDataAnalysisNumber: int32(cal(m.BundleBalance, m.IncreaseLimitDataAnalysisNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date) + cal(m.BundleBalance, m.IncreaseLimitDataAnalysisExpiredNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date)),
MonthlyInvalidBundleDataAnalysisNumber: int32(m.MonthlyInvalidBundleDataAnalysisNumber),
MonthlyInvalidIncreaseDataAnalysisNumber: int32(m.MonthlyInvalidIncreaseDataAnalysisNumber),
BundleDataAnalysisNumber: int32(m.BundleDataAnalysisNumber) + int32(m.BundleLimitDataAnalysisNumber) + int32(m.BundleLimitDataAnalysisExpiredNumber),
IncreaseDataAnalysisNumber: int32(m.IncreaseDataAnalysisNumber) + int32(m.IncreaseLimitDataAnalysisNumber) + int32(m.IncreaseLimitDataAnalysisExpiredNumber),
BundleDataAnalysisConsumptionNumber: int32(m.BundleDataAnalysisConsumptionNumber) + int32(m.BundleLimitDataAnalysisConsumptionNumber) + int32(m.BundleLimitDataAnalysisExpiredConsumptionNumber),
IncreaseDataAnalysisConsumptionNumber: int32(m.IncreaseDataAnalysisConsumptionNumber) + int32(m.IncreaseLimitDataAnalysisConsumptionNumber) + int32(m.IncreaseLimitDataAnalysisExpiredConsumptionNumber),
InvalidBundleDataAnalysisNumber: int32(m.InvalidBundleDataAnalysisNumber),
InvalidIncreaseDataAnalysisNumber: int32(m.InvalidIncreaseDataAnalysisNumber),
MonthlyNewBundleDataAnalysisNumber: int32(cal(m.BundleBalance, m.BundleLimitDataAnalysisNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date) + cal(m.BundleBalance, m.BundleLimitDataAnalysisExpiredNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date)),
MonthlyNewIncreaseDataAnalysisNumber: int32(cal(m.BundleBalance, m.IncreaseLimitDataAnalysisNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date) + cal(m.BundleBalance, m.IncreaseLimitDataAnalysisExpiredNumber, m.MonthlyLimitDataAnalysisQuotaNumber, date)),
MonthBundleDataAnalysisConsumptionNumber: int32(m.MonthlyBundleDataAnalysisConsumptionNumber),
MonthIncreaseDataAnalysisConsumptionNumber: int32(m.MonthlyIncreaseDataAnalysisConsumptionNumber),
MonthlyInvalidBundleDataAnalysisNumber: int32(m.MonthlyInvalidBundleDataAnalysisNumber),
MonthlyInvalidIncreaseDataAnalysisNumber: int32(m.MonthlyInvalidIncreaseDataAnalysisNumber),
// 手动扩展类
MonthlyNewManualAccountNumber: int32(m.MonthlyNewAccountNumber),
MonthlyNewManualVideoNumber: int32(m.MonthlyNewManualVideoNumber),
@ -436,11 +447,94 @@ func BundleBalanceExport(req *bundle.BundleBalanceExportReq) (*bundle.BundleBala
func GetBundleBalanceLayout(req *bundle.GetBundleBalanceLayoutReq) (*bundle.GetBundleBalanceLayoutResp, error) {
data, err := dao.GetBundleBalanceLayout(req)
if err != nil { // 返回默认值
return &bundle.GetBundleBalanceLayoutResp{
Data: buildDefaultBalanceLayout(),
}, nil
}
return &bundle.GetBundleBalanceLayoutResp{
Data: data,
}, err
}, nil
}
func SetBundleBalanceLayout(req *bundle.SetBundleBalanceLayoutReq) (*bundle.SetBundleBalanceLayoutResp, error) {
return nil, dao.SetBundleBalanceLayout(req)
}
func buildDefaultBalanceLayout() string {
m := map[string]string{
"是否激活": "activate",
"艺人": "userName",
"艺人手机号": "userPhoneNumber",
"用户编号": "customerNum",
"套餐状态": "status",
"最后购买的套餐": "bundleName",
"下单时间": "payTime",
"开始有效时间": "startTime",
"过期时间": "expiredTime",
"所属月份": "month",
"购买状态": "bought",
"当前可用套餐账号数": "bundleAccountNumber",
"当前可用增值账号数": "increaseAccountNumber",
"当前已用套餐账号数": "bundleAccountConsumptionNumber",
"当前已用增值账号数": "increaseAccountConsumptionNumber",
"当前可用套餐视频数": "bundleVideoNumber",
"当前可用增值视频数": "increaseVideoNumber",
"当前已用套餐视频数": "bundleVideoConsumptionNumber",
"当前已用增值视频数": "increaseVideoConsumptionNumber",
"当前作废套餐视频数": "invalidBundleVideoNumber",
"当前作废增值视频数": "invalidIncreaseVideoNumber",
"当月新增套餐视频数": "monthlyNewBundleVideoNumber",
"当月新增增值视频数": "monthlyNewIncreaseVideoNumber",
"当月使用套餐视频数": "monthBundleVideoConsumptionNumber",
"当月使用增值视频数": "monthIncreaseVideoConsumptionNumber",
"当月作废套餐视频数": "monthlyInvalidBundleVideoNumber",
"当月作废增值视频数": "monthlyInvalidIncreaseVideoNumber",
"当前可用套餐图文数": "bundleImageNumber",
"当前可用增值图文数": "increaseImageNumber",
"当前已用套餐图文数": "bundleImageConsumptionNumber",
"当前已用增值图文数": "increaseImageConsumptionNumber",
"当前作废套餐图文数": "invalidBundleImageNumber",
"当前作废增值图文数": "invalidIncreaseImageNumber",
"当月新增套餐图文数": "monthlyNewBundleImageNumber",
"当月新增增值图文数": "monthlyNewIncreaseImageNumber",
"当月使用套餐图文数": "monthBundleImageConsumptionNumber",
"当月使用增值图文数": "monthIncreaseImageConsumptionNumber",
"当月作废套餐图文数": "monthlyInvalidBundleImageNumber",
"当月作废增值图文数": "monthlyInvalidIncreaseImageNumber",
"当前可用套餐数据数": "bundleDataAnalysisNumber",
"当前可用增值数据数": "increaseDataAnalysisNumber",
"当前已用套餐数据数": "bundleDataAnalysisConsumptionNumber",
"当前已用增值数据数": "increaseDataAnalysisConsumptionNumber",
"当前作废套餐数据数": "invalidBundleDataAnalysisNumber",
"当前作废增值数据数": "invalidIncreaseDataAnalysisNumber",
"当月新增套餐数据数": "monthlyNewBundleDataAnalysisNumber",
"当月新增增值数据数": "monthlyNewIncreaseDataAnalysisNumber",
"当月使用套餐数据数": "monthBundleDataAnalysisConsumptionNumber",
"当月使用增值数据数": "monthIncreaseDataAnalysisConsumptionNumber",
"当月作废套餐数据数": "monthlyInvalidBundleDataAnalysisNumber",
"当月作废增值数据数": "monthlyInvalidIncreaseDataAnalysisNumber",
"当月新增手动扩展账号数": "monthlyNewManualAccountNumber",
"当月新增手动扩展视频数": "monthlyNewManualVideoNumber",
"当月新增手动扩展图文数": "monthlyNewManualImageNumber",
"当月新增手动扩展数据数": "monthlyNewManualDataAnalysisNumber",
"当月新增手动扩展时长(日)": "monthlyNewDurationNumber",
"当月已用手动扩展账号数": "monthlyManualAccountConsumptionNumber",
"当月已用手动扩展视频数": "monthlyManualVideoConsumptionNumber",
"当月已用手动扩展图文数": "monthlyManualImageConsumptionNumber",
"当月已用手动扩展数据数": "monthlyManualDataAnalysisConsumptionNumber",
}
jsonMap := []map[string]any{}
for k, v := range m {
jsonMap = append(jsonMap, map[string]any{
"sort": 1,
"fieldKey": v,
"fieldValue": k,
"sortOrNot": true,
"status": 1,
"width": 160,
})
}
b, _ := json.Marshal(jsonMap)
return string(b)
}

View File

@ -151,6 +151,8 @@ type BundleBalancePo struct {
Status int `gorm:"column:status"`
OrderUUID string `gorm:"column:order_uuid"`
Activate int `gorm:"column:activate"`
CustomerNum string `gorm:"column:customer_num"`
PayTime string `gorm:"column:pay_time"`
BundleBalance
}

View File

@ -695,70 +695,81 @@ message GetBundleBalanceReq{
}
message BundleBalanceItem {
//
int32 userId = 1;
string userName = 2;
string userPhoneNumber = 3;
int32 status = 4;
string bundleName = 5;
int64 expiredTime = 6;
int32 bought = 7;
int32 activate = 2; //
string userName = 3; //
string userPhoneNumber = 4; //
string customerNum = 5; //
int32 status = 6; //
string bundleName = 7; //
string payTime = 8; //
int64 startTime = 9; //
int64 expiredTime = 10; //
string month = 11; //
int32 bought = 12; //
//
int32 bundleAccountNumber = 8; //
int32 increaseAccountNumber = 9; //
int32 bundleAccountConsumptionNumber = 10; // 使
int32 increaseAccountConsumptionNumber = 11; // 使
//
int32 bundleAccountNumber = 13; //
int32 increaseAccountNumber = 14; //
int32 bundleAccountConsumptionNumber = 15; //
int32 increaseAccountConsumptionNumber = 16; //
//
int32 bundleVideoNumber = 12; //
int32 increaseVideoNumber = 13; //
int32 bundleVideoConsumptionNumber = 14; //
int32 increaseVideoConsumptionNumber = 15; //
int32 invalidBundleVideoNumber = 16; //
int32 invalidIncreaseVideoNumber = 17; //
int32 monthlyNewBundleVideoNumber = 18; //
int32 monthlyNewIncreaseVideoNumber = 19; //
int32 monthlyInvalidBundleVideoNumber = 20; //
int32 monthlyInvalidIncreaseVideoNumber = 21; //
//
int32 bundleVideoNumber = 17; //
int32 increaseVideoNumber = 18; //
int32 bundleVideoConsumptionNumber = 19; //
int32 increaseVideoConsumptionNumber = 20; //
int32 invalidBundleVideoNumber = 21; //
int32 invalidIncreaseVideoNumber = 22; //
int32 monthlyNewBundleVideoNumber = 23; //
int32 monthlyNewIncreaseVideoNumber = 24; //
int32 monthBundleVideoConsumptionNumber = 25; // 使
int32 monthIncreaseVideoConsumptionNumber = 26; // 使
int32 monthlyInvalidBundleVideoNumber = 27; //
int32 monthlyInvalidIncreaseVideoNumber = 28; //
//
int32 bundleImageNumber = 22; //
int32 increaseImageNumber = 23; //
int32 bundleImageConsumptionNumber = 24; //
int32 increaseImageConsumptionNumber = 25; //
int32 invalidBundleImageNumber = 26; //
int32 invalidIncreaseImageNumber = 27; //
int32 monthlyNewBundleImageNumber = 28; //
int32 monthlyNewIncreaseImageNumber = 29; //
int32 monthlyInvalidBundleImageNumber = 30; //
int32 monthlyInvalidIncreaseImageNumber = 31; //
//
int32 bundleImageNumber = 29; //
int32 increaseImageNumber = 30; //
int32 bundleImageConsumptionNumber = 31; //
int32 increaseImageConsumptionNumber = 32; //
int32 invalidBundleImageNumber = 33; //
int32 invalidIncreaseImageNumber = 34; //
int32 monthlyNewBundleImageNumber = 35; //
int32 monthlyNewIncreaseImageNumber = 36; //
int32 monthBundleImageConsumptionNumber = 37; // 使
int32 monthIncreaseImageConsumptionNumber = 38; // 使
int32 monthlyInvalidBundleImageNumber = 39; //
int32 monthlyInvalidIncreaseImageNumber = 40; //
//
int32 bundleDataAnalysisNumber = 32; //
int32 increaseDataAnalysisNumber = 33; //
int32 bundleDataAnalysisConsumptionNumber = 34; //
int32 increaseDataAnalysisConsumptionNumber = 35; //
int32 invalidBundleDataAnalysisNumber = 36; //
int32 invalidIncreaseDataAnalysisNumber = 37; //
int32 monthlyNewBundleDataAnalysisNumber = 38; //
int32 monthlyNewIncreaseDataAnalysisNumber = 39; //
int32 monthlyInvalidBundleDataAnalysisNumber = 40; //
int32 monthlyInvalidIncreaseDataAnalysisNumber = 41; //
//
int32 bundleDataAnalysisNumber = 41; //
int32 increaseDataAnalysisNumber = 42; //
int32 bundleDataAnalysisConsumptionNumber = 43; //
int32 increaseDataAnalysisConsumptionNumber = 44; //
int32 invalidBundleDataAnalysisNumber = 45; //
int32 invalidIncreaseDataAnalysisNumber = 46; //
int32 monthlyNewBundleDataAnalysisNumber = 47; //
int32 monthlyNewIncreaseDataAnalysisNumber = 48; //
int32 monthBundleDataAnalysisConsumptionNumber = 49; // 使
int32 monthIncreaseDataAnalysisConsumptionNumber = 50; // 使
int32 monthlyInvalidBundleDataAnalysisNumber = 51; //
int32 monthlyInvalidIncreaseDataAnalysisNumber = 52; //
//
int32 monthlyNewManualAccountNumber = 42; //
int32 monthlyNewManualVideoNumber = 43; //
int32 monthlyNewManualImageNumber = 44; //
int32 monthlyNewManualDataAnalysisNumber = 45; //
int32 monthlyNewDurationNumber = 46; //
int32 monthlyManualAccountConsumptionNumber = 47; // 使
int32 monthlyManualVideoConsumptionNumber = 48; // 使
int32 monthlyManualImageConsumptionNumber = 49; // 使
int32 monthlyManualDataAnalysisConsumptionNumber = 50; // 使
int32 activate = 51 ; //
//
int32 monthlyNewManualAccountNumber = 53; //
int32 monthlyNewManualVideoNumber = 54; //
int32 monthlyNewManualImageNumber = 55; //
int32 monthlyNewManualDataAnalysisNumber = 56; //
int32 monthlyNewDurationNumber = 57; // ()
int32 monthlyManualAccountConsumptionNumber = 58; //
int32 monthlyManualVideoConsumptionNumber = 59; //
int32 monthlyManualImageConsumptionNumber = 60; //
int32 monthlyManualDataAnalysisConsumptionNumber = 61; //
}
message BundleBalanceExportItem {
//
int32 month = 1; //

File diff suppressed because it is too large Load Diff