Files
iotlcm/admin-svr/server/internal/model/t_agent_balance.go
T

272 lines
13 KiB
Go

// Package genin
// @Link https://github.com/xiujiecn/xiu-admin
// @Copyright Copyright (c) 2026 LiXiujie
// @Author Lxj <xxx@example.com>
// @License https://github.com/xiujiecn/xiu-admin/blob/master/LICENSE
// @AutoGenerate Version
package model
import (
"context"
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/consts"
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/library/xgorm/hook"
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model/entity"
"git.5iot.com/iotlcm-public/iotlcm-admin-svr/internal/model/request"
"slices"
"time"
"github.com/gogf/gf/v2/errors/gerror"
"github.com/gogf/gf/v2/os/gtime"
)
// TAgentBalanceUpdateFields 修改企业客户财务信息字段过滤
type TAgentBalanceUpdateFields struct {
DeptId int64 `json:"deptId" dc:"机构ID"`
Balance float64 `json:"balance" dc:"账户余额"`
WithdrawAmount float64 `json:"withdrawAmount" dc:"可提现金额"`
WithdrawAmountStatus int `json:"withdrawAmountStatus" dc:"可提现金额状态: 1-正常, 0-冻结"`
InvoiceAmount float64 `json:"invoiceAmount" dc:"已开票金额"`
CanInvoiceAmount float64 `json:"canInvoiceAmount" dc:"可开票金额"`
CreditLimit float64 `json:"creditLimit" dc:"信用额度"`
UsedCredit float64 `json:"usedCredit" dc:"已使用信用额度"`
PendingRepayment float64 `json:"pendingRepayment" dc:"待还款金额"`
Status int `json:"status" dc:"状态: 0-正常, 1-禁用"`
TenantId string `json:"tenantId" dc:"租户ID"`
UpdatedBy int64 `json:"updatedBy" dc:"更新者"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// TAgentBalanceInsertFields 新增企业客户财务信息字段过滤
type TAgentBalanceInsertFields struct {
DeptId int64 `json:"deptId" dc:"机构ID"`
Balance float64 `json:"balance" dc:"账户余额"`
WithdrawAmount float64 `json:"withdrawAmount" dc:"可提现金额"`
WithdrawAmountStatus int `json:"withdrawAmountStatus" dc:"可提现金额状态: 1-正常, 0-冻结"`
InvoiceAmount float64 `json:"invoiceAmount" dc:"已开票金额"`
CanInvoiceAmount float64 `json:"canInvoiceAmount" dc:"可开票金额"`
CreditLimit float64 `json:"creditLimit" dc:"信用额度"`
UsedCredit float64 `json:"usedCredit" dc:"已使用信用额度"`
PendingRepayment float64 `json:"pendingRepayment" dc:"待还款金额"`
Status int `json:"status" dc:"状态: 0-正常, 1-禁用"`
TenantId string `json:"tenantId" dc:"租户ID"`
CreatedDept int64 `json:"createdDept" dc:"创建部门"`
CreatedBy int64 `json:"createdBy" dc:"创建者"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
}
// TAgentBalanceEditParam 修改/新增企业客户财务信息
type TAgentBalanceEditParam struct {
//entity.TAgentBalance
Id int64 `json:"id" dc:"账户ID"`
DeptId *int64 `json:"deptId" dc:"机构ID"`
Balance *float64 `json:"balance" dc:"账户余额"`
WithdrawAmount *float64 `json:"withdrawAmount" dc:"可提现金额"`
WithdrawAmountStatus *int `json:"withdrawAmountStatus" dc:"可提现金额状态: 1-正常, 0-冻结"`
InvoiceAmount *float64 `json:"invoiceAmount" dc:"已开票金额"`
CanInvoiceAmount *float64 `json:"canInvoiceAmount" dc:"可开票金额"`
CreditLimit *float64 `json:"creditLimit" dc:"信用额度"`
UsedCredit *float64 `json:"usedCredit" dc:"已使用信用额度"`
PendingRepayment *float64 `json:"pendingRepayment" dc:"待还款金额"`
Status *int `json:"status" dc:"状态: 0-正常, 1-禁用"`
TenantId *string `json:"tenantId" dc:"租户ID"`
CreatedDept *int64 `json:"createdDept" dc:"创建部门"`
CreatedBy *int64 `json:"createdBy" dc:"创建者"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedBy *int64 `json:"updatedBy" dc:"更新者"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
func (in *TAgentBalanceEditParam) Filter(ctx context.Context) (err error) {
return
}
type TAgentBalanceEditModel struct{}
// TAgentBalanceDeleteParam 删除企业客户财务信息
type TAgentBalanceDeleteParam struct {
Id interface{} `json:"id" v:"required#账户ID不能为空" dc:"账户ID"`
}
func (in *TAgentBalanceDeleteParam) Filter(ctx context.Context) (err error) {
return
}
type TAgentBalanceDeleteModel struct{}
// TAgentBalanceViewParam 获取指定企业客户财务信息信息
type TAgentBalanceViewParam struct {
Id int64 `json:"id" v:"required#账户ID不能为空" dc:"账户ID"`
}
func (in *TAgentBalanceViewParam) Filter(ctx context.Context) (err error) {
return
}
type TAgentBalanceViewModel struct {
entity.TAgentBalance
CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建者摘要信息"`
UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新者摘要信息"`
}
// TAgentBalanceListParam 获取企业客户财务信息列表
type TAgentBalanceListParam struct {
request.PageInfo
Id int64 `json:"id" dc:"账户ID"`
WithdrawAmountStatus int `json:"withdrawAmountStatus" dc:"可提现金额状态: 1-正常, 0-冻结"`
Status int `json:"status" dc:"状态: 0-正常, 1-禁用"`
CreatedAt []*gtime.Time `json:"createdAt" dc:"创建时间"`
}
func (in *TAgentBalanceListParam) Filter(ctx context.Context) (err error) {
return
}
type TAgentBalanceListModel struct {
Id int64 `json:"id" dc:"账户ID"`
DeptId int64 `json:"deptId" dc:"机构ID"`
Balance float64 `json:"balance" dc:"账户余额"`
WithdrawAmount float64 `json:"withdrawAmount" dc:"可提现金额"`
WithdrawAmountStatus int `json:"withdrawAmountStatus" dc:"可提现金额状态: 1-正常, 0-冻结"`
InvoiceAmount float64 `json:"invoiceAmount" dc:"已开票金额"`
CanInvoiceAmount float64 `json:"canInvoiceAmount" dc:"可开票金额"`
CreditLimit float64 `json:"creditLimit" dc:"信用额度"`
UsedCredit float64 `json:"usedCredit" dc:"已使用信用额度"`
PendingRepayment float64 `json:"pendingRepayment" dc:"待还款金额"`
Status int `json:"status" dc:"状态: 0-正常, 1-禁用"`
TenantId string `json:"tenantId" dc:"租户ID"`
CreatedDept int64 `json:"createdDept" dc:"创建部门"`
CreatedBy int64 `json:"createdBy" dc:"创建者"`
CreatedBySumma *hook.MemberSumma `json:"createdBySumma" dc:"创建者摘要信息"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedBy int64 `json:"updatedBy" dc:"更新者"`
UpdatedBySumma *hook.MemberSumma `json:"updatedBySumma" dc:"更新者摘要信息"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// TAgentBalanceExportModel 导出企业客户财务信息
type TAgentBalanceExportModel struct {
Id int64 `json:"id" dc:"账户ID"`
DeptId int64 `json:"deptId" dc:"机构ID"`
Balance float64 `json:"balance" dc:"账户余额"`
WithdrawAmount float64 `json:"withdrawAmount" dc:"可提现金额"`
WithdrawAmountStatus int `json:"withdrawAmountStatus" dc:"可提现金额状态: 1-正常, 0-冻结"`
InvoiceAmount float64 `json:"invoiceAmount" dc:"已开票金额"`
CanInvoiceAmount float64 `json:"canInvoiceAmount" dc:"可开票金额"`
CreditLimit float64 `json:"creditLimit" dc:"信用额度"`
UsedCredit float64 `json:"usedCredit" dc:"已使用信用额度"`
PendingRepayment float64 `json:"pendingRepayment" dc:"待还款金额"`
Status int `json:"status" dc:"状态: 0-正常, 1-禁用"`
TenantId string `json:"tenantId" dc:"租户ID"`
CreatedDept int64 `json:"createdDept" dc:"创建部门"`
CreatedBy int64 `json:"createdBy" dc:"创建者"`
CreatedAt *gtime.Time `json:"createdAt" dc:"创建时间"`
UpdatedBy int64 `json:"updatedBy" dc:"更新者"`
UpdatedAt *gtime.Time `json:"updatedAt" dc:"更新时间"`
}
// TAgentBalanceStatusParam 更新企业客户财务信息状态
type TAgentBalanceStatusParam struct {
Id int64 `json:"id" v:"required#账户ID不能为空" dc:"账户ID"`
Status int `json:"status" dc:"状态"`
}
func (in *TAgentBalanceStatusParam) Filter(ctx context.Context) (err error) {
if in.Id <= 0 {
err = gerror.New("账户ID不能为空")
return
}
if in.Status <= 0 {
err = gerror.New("状态不能为空")
return
}
if !slices.Contains(consts.StatusSlice, in.Status) {
err = gerror.New("状态不正确")
return
}
return
}
type TAgentBalanceStatusModel struct{}
type TAgentBalanceTrendParam struct {
StartMonth string `json:"startMonth" dc:"开始月份,格式YYYY-MM"`
EndMonth string `json:"endMonth" dc:"结束月份,格式YYYY-MM"`
AccountType string `json:"accountType" dc:"账户类型:1 盈利账户,2消费账户 默认1"`
}
func (in *TAgentBalanceTrendParam) Filter(ctx context.Context) (err error) {
return
}
type TAgentBalanceChartSeries struct {
Name string `json:"name" dc:"折线名称"`
Values []float64 `json:"values" dc:"折线数据"`
}
type TAgentBalanceChartData struct {
Labels []string `json:"labels" dc:"月份标签"`
Series []*TAgentBalanceChartSeries `json:"series" dc:"折线数据"`
}
// TAgentBalanceCommissionSettlementParam 分润结算参数。
type TAgentBalanceCommissionSettlementParam struct {
StartPeriod string `json:"startPeriod" dc:"开始账期,格式YYYY-MM"`
EndPeriod string `json:"endPeriod" dc:"结束账期,格式YYYY-MM"`
}
func (in *TAgentBalanceCommissionSettlementParam) Filter(ctx context.Context) (err error) {
if in == nil {
return gerror.New("参数不能为空")
}
if in.StartPeriod == "" {
return gerror.New("开始账期不能为空")
}
if in.EndPeriod == "" {
return gerror.New("结束账期不能为空")
}
startTime, err := time.Parse("2006-01", in.StartPeriod)
if err != nil {
return gerror.New("开始账期格式不正确,应为YYYY-MM")
}
endTime, err := time.Parse("2006-01", in.EndPeriod)
if err != nil {
return gerror.New("结束账期格式不正确,应为YYYY-MM")
}
if startTime.After(endTime) {
return gerror.New("开始账期不能大于结束账期")
}
return nil
}
// TAgentBalanceCommissionSettlementResult 分润结算结果。
type TAgentBalanceCommissionSettlementResult struct {
StartPeriod string `json:"startPeriod" dc:"开始账期"`
EndPeriod string `json:"endPeriod" dc:"结束账期"`
ScanCount int `json:"scanCount" dc:"扫描数量"`
SuccessGroupCount int `json:"successGroupCount" dc:"成功分组数"`
FailGroupCount int `json:"failGroupCount" dc:"失败分组数"`
SettledCount int `json:"settledCount" dc:"已结算明细数"`
SettledAmount float64 `json:"settledAmount" dc:"已结算金额"`
}
// TAgentBalanceCommissionSettlementGroup 分润结算分组数据。
type TAgentBalanceCommissionSettlementGroup struct {
DeptId int64
AccountPeriod string
TenantId string
CreatedDept int64
Ids []int64
Amount float64
}
// TAgentBalanceCommissionSettlementGroupKey 分润结算分组键。
type TAgentBalanceCommissionSettlementGroupKey struct {
DeptId int64
AccountPeriod string
TenantId string
}