chore: 初始开源发布

iotlcm-admin-svr:管理后台服务。

- Go module:iotlcm → git.5iot.com/iotlcm-public/iotlcm-admin-svr(729 文件)
- 凭据与地址脱敏:JWT signingKey(含代码里的 MustGet 默认值)、
  MySQL DSN、Redis 口令、告警邮件发件人邮箱全部改为占位;
  私网 IP → 文档地址段;库名 xiujie_admin → iotlcm
- 真实手机号/邮箱 → 合法 11 位编造号 / example.com
- 移除内部资产:CI 触发器、过时 DDL(sql/db_iotlcm.sql)、
  私有依赖 go get 行、明文 registry 登录口令
- 启动 banner 统一 IOTLCM 方块字 + 社区惯例署名
- Dockerfile 改用公共基础镜像
- 拼错的 RADEME.md → README.md,README 重写
- 需要真实数据库的用例改为可用 IOTLCM_TEST_WITH_DB=1 显式启用
- 补 Apache-2.0 LICENSE,LF 行尾 + .gitattributes

数据库 schema 不随本仓发布(生产 DDL 已过时),README 已说明。
This commit is contained in:
MiFaZhan
2026-10-23 14:46:05 +08:00
commit 59eb34976a
1132 changed files with 138197 additions and 0 deletions
+221
View File
@@ -0,0 +1,221 @@
package model
import "github.com/gogf/gf/v2/os/gtime"
type TSimCardRenewBatchPrepareParam struct {
SourceBatchNo string `json:"sourceBatchNo" v:"required#来源批次号不能为空" dc:"来源出库批次号"`
}
type TSimCardRenewBatchPrepareAllParam struct {
SourceBatchNo string `json:"sourceBatchNo" v:"required#来源批次号不能为空" dc:"来源出库批次号"`
}
type TSimCardRenewInputPrepareParam struct {
Input string `json:"input" v:"required#批量输入内容不能为空" dc:"批量输入卡号(支持ICCID/MSISDN/IMSI)"`
}
type TSimCardRenewExcelSubmitParam struct{}
type TSimCardRenewExcelSubmitRes struct {
BatchNo string `json:"batchNo" dc:"batch no"`
BatchType int `json:"batchType" dc:"batch type"`
TargetBatchType int `json:"targetBatchType" dc:"target batch type"`
Status string `json:"status" dc:"batch status"`
BatchAsyncStatus int `json:"batchAsyncStatus" dc:"batch async status"`
RunResult int `json:"runResult" dc:"run result"`
Total int `json:"total" dc:"total rows"`
ResultDownloadId int64 `json:"resultDownloadId" dc:"result download id"`
ResultFileOssId int64 `json:"resultFileOssId" dc:"result file oss id"`
FailReason string `json:"failReason" dc:"fail reason"`
}
type TSimCardRenewBatchPrepareRes struct {
BatchNo string `json:"batchNo" dc:"批次号"`
BatchType int `json:"batchType" dc:"批次类型"`
TargetBatchType int `json:"targetBatchType" dc:"目标批次类型"`
Status string `json:"status" dc:"批处理状态"`
BatchAsyncStatus int `json:"batchAsyncStatus" dc:"异步处理状态"`
RunResult int `json:"runResult" dc:"运行结果"`
Total int `json:"total" dc:"提交总数"`
ValidCount int `json:"validCount" dc:"校验通过数量"`
FailCount int `json:"failCount" dc:"失败数量"`
CustomerAgentId int64 `json:"customerAgentId" dc:"客户代理ID"`
PackageCode string `json:"packageCode" dc:"套餐编码"`
PackageName string `json:"packageName" dc:"套餐名称"`
BillingMethod int `json:"billingMethod" dc:"计费方式:1月,2年"`
RenewDurationUnit string `json:"renewDurationUnit" dc:"续费时长单位:固定year"`
RenewDurationUnitText string `json:"renewDurationUnitText" dc:"续费时长单位文本"`
DurationValue int `json:"durationValue" dc:"续费时长显示值(年)"`
DurationYears int `json:"durationYears" dc:"续费时长(年)"`
Quantity int `json:"quantity" dc:"续费数量"`
PriceSource string `json:"priceSource" dc:"价格来源"`
PriceOwnerDeptId int64 `json:"priceOwnerDeptId" dc:"价格所属上级部门ID"`
AgentDefaultPriceId int64 `json:"agentDefaultPriceId" dc:"代理默认价格ID"`
TargetPriceId int64 `json:"targetPriceId" dc:"目标价格ID"`
RenewUnitPrice float64 `json:"renewUnitPrice" dc:"续费单价"`
RenewableDurationOptions []int `json:"renewableDurationOptions" dc:"可续费时长"`
RenewablePackageCodes []string `json:"renewablePackageCodes" dc:"可续费套餐编码列表"`
RenewablePackages []TSimCardRenewPackageOption `json:"renewablePackages" dc:"可续费套餐列表"`
RenewBeginDate string `json:"renewBeginDate" dc:"续费开始日期;同批到期日一致时有值"`
RenewBeginDateMin string `json:"renewBeginDateMin" dc:"续费开始日期最小值"`
RenewBeginDateMax string `json:"renewBeginDateMax" dc:"续费开始日期最大值"`
SameRenewBeginDate bool `json:"sameRenewBeginDate" dc:"同批卡续费开始日期是否一致"`
ResultDownloadId int64 `json:"resultDownloadId" dc:"结果下载任务ID"`
ResultFileOssId int64 `json:"resultFileOssId" dc:"结果文件OSS ID"`
IsTopDept bool `json:"isTopDept" dc:"当前组织是否顶级组织"`
DefaultPaymentMode string `json:"defaultPaymentMode" dc:"默认付款方式:offline线下,balance余额"`
AvailableBalance float64 `json:"availableBalance" dc:"当前账户可用余额"`
}
type TSimCardRenewPackageOption struct {
PackageCode string `json:"packageCode" dc:"套餐编码"`
PackageName string `json:"packageName" dc:"套餐名称"`
RenewUnitPrice float64 `json:"renewUnitPrice" dc:"续费单价"`
RenewableDurationOptions []int `json:"renewableDurationOptions" dc:"可续费时长"`
}
type TSimCardRenewBatchConfirmParam struct {
BatchNo string `json:"batchNo" v:"required#批次号不能为空" dc:"预处理批次号"`
PackageCode string `json:"packageCode" dc:"续费目标套餐编码"`
DurationYears int `json:"durationYears" dc:"续费购买时长(年);新字段"`
DurationMonths int `json:"durationMonths" dc:"续费购买年限(兼容旧字段名)"`
GiftDurationMonths int `json:"giftDurationMonths" v:"min:0#赠送时长不能小于0" dc:"赠送时长(月)"`
PaymentMode string `json:"paymentMode" dc:"付款方式:offline线下,balance余额;为空按组织类型默认"`
OfflineContractCompleted bool `json:"offlineContractCompleted" dc:"线下合同/销售/走账已完成"`
RenewDate string `json:"renewDate" dc:"续费办理日期"`
PackageBeginTime string `json:"packageBeginTime" dc:"续费开始日期;顶级组织可覆盖"`
PackageEndTime string `json:"packageEndTime" dc:"续费结束日期快照"`
BuyerNote string `json:"buyerNote" dc:"买家备注"`
AdminNote string `json:"adminNote" dc:"后台备注"`
Remark string `json:"remark" dc:"续费批次备注"`
}
type TSimCardRenewBatchConfirmRes struct {
BatchNo string `json:"batchNo" dc:"批次号"`
BatchType int `json:"batchType" dc:"批次类型"`
BatchAsyncStatus int `json:"batchAsyncStatus" dc:"异步处理状态"`
SourceBatchNo string `json:"sourceBatchNo" dc:"来源批次号"`
PackageCode string `json:"packageCode" dc:"续费目标套餐编码"`
PackageName string `json:"packageName" dc:"续费目标套餐名称"`
DurationYears int `json:"durationYears" dc:"续费购买时长(年);新字段"`
DurationMonths int `json:"durationMonths" dc:"续费购买年限(兼容旧字段名)"`
GiftDurationMonths int `json:"giftDurationMonths" dc:"赠送时长(月)"`
Status string `json:"status" dc:"批处理状态"`
PaymentMode string `json:"paymentMode" dc:"付款方式"`
PayType int `json:"payType" dc:"支付类型"`
PayAmount float64 `json:"payAmount" dc:"付款金额"`
AvailableBalance float64 `json:"availableBalance" dc:"付款后或当前余额"`
BalanceDetailSerialNo string `json:"balanceDetailSerialNo" dc:"余额流水号"`
PackageBeginTime string `json:"packageBeginTime" dc:"续费开始日期"`
PackageEndTime string `json:"packageEndTime" dc:"续费结束日期"`
PrepareChanged bool `json:"prepareChanged" dc:"续费预处理结果是否已刷新"`
PriceChanged bool `json:"priceChanged" dc:"续费定价是否已更新"`
Message string `json:"message" dc:"确认结果提示"`
}
type TSimCardRenewPriceSnapshot struct {
CustomerAgentId int64 `json:"customerAgentId"`
PriceOwnerDeptId int64 `json:"priceOwnerDeptId"`
PackageCode string `json:"packageCode"`
PackageName string `json:"packageName"`
BillingMethod int `json:"billingMethod"`
RenewDurationUnit string `json:"renewDurationUnit"`
RenewDurationUnitText string `json:"renewDurationUnitText"`
PriceSource string `json:"priceSource"`
AgentDefaultPriceId int64 `json:"agentDefaultPriceId"`
TargetPriceId int64 `json:"targetPriceId"`
RenewUnitPrice float64 `json:"renewUnitPrice"`
RenewableDurationOptions []int `json:"renewableDurationOptions"`
RenewablePackageCodes []string `json:"renewablePackageCodes"`
RenewablePackages []TSimCardRenewPackageOption `json:"renewablePackages"`
RenewBeginDate string `json:"renewBeginDate"`
RenewBeginDateMin string `json:"renewBeginDateMin"`
RenewBeginDateMax string `json:"renewBeginDateMax"`
SameRenewBeginDate bool `json:"sameRenewBeginDate"`
}
type TSimCardRenewPaymentSnapshot struct {
PaymentMode string `json:"paymentMode"`
PayType int `json:"payType"`
PayStatus int `json:"payStatus"`
PayAmount float64 `json:"payAmount"`
BalanceAmount float64 `json:"balanceAmount"`
OfflinePaidAmount float64 `json:"offlinePaidAmount"`
BalanceBefore float64 `json:"balanceBefore"`
BalanceAfter float64 `json:"balanceAfter"`
BalanceDetailSerialNo string `json:"balanceDetailSerialNo"`
PaymentTime *gtime.Time `json:"paymentTime"`
PayerDeptId int64 `json:"payerDeptId"`
PayerUserId int64 `json:"payerUserId"`
IsTopDept bool `json:"isTopDept"`
}
type TSimCardRenewBatchSubmitParam struct {
SourceBatchNo string `json:"sourceBatchNo" dc:"来源出库批次号"`
PackageCode string `json:"packageCode" dc:"续费目标套餐编码"`
DurationYears int `json:"durationYears" dc:"续费购买时长(年);新字段"`
DurationMonths int `json:"durationMonths" dc:"续费购买年限(兼容旧字段名)"`
GiftDurationMonths int `json:"giftDurationMonths" v:"min:0#赠送时长不能小于0" dc:"赠送时长(月)"`
Amount string `json:"amount" dc:"订单金额"`
PaymentMode string `json:"paymentMode" dc:"付款方式:offline线下,balance余额"`
PaymentSnapshot *TSimCardRenewPaymentSnapshot `json:"-" dc:"付款快照"`
PackageBeginTime string `json:"packageBeginTime" dc:"续费开始日期快照"`
PackageEndTime string `json:"packageEndTime" dc:"续费结束日期快照"`
OfflineContractCompleted bool `json:"offlineContractCompleted" dc:"线下合同/销售/走账已完成"`
BuyerNote string `json:"buyerNote" dc:"买家备注"`
AdminNote string `json:"adminNote" dc:"后台备注"`
Remark string `json:"remark" dc:"续费批次备注"`
}
type TSimCardRenewPrepareResultRes struct {
BatchNo string `json:"batchNo" dc:"批次号"`
BatchType int `json:"batchType" dc:"当前批次类型"`
TargetBatchType int `json:"targetBatchType" dc:"目标批次类型"`
Status string `json:"status" dc:"处理状态: pending/processing/success/failed"`
BatchAsyncStatus int `json:"batchAsyncStatus" dc:"异步处理状态"`
RunResult int `json:"runResult" dc:"运行结果"`
Total int `json:"total" dc:"提交总数"`
SuccessCount int `json:"successCount" dc:"成功数量"`
FailCount int `json:"failCount" dc:"失败数量"`
FailReason string `json:"failReason" dc:"失败原因"`
FailedItems []TSimCardRenewPrepareFailedItem `json:"failedItems" dc:"失败卡明细"`
FailedItemsTruncated bool `json:"failedItemsTruncated" dc:"失败卡明细是否仅展示部分"`
StartTime *gtime.Time `json:"startTime" dc:"开始时间"`
EndTime *gtime.Time `json:"endTime" dc:"结束时间"`
CustomerAgentId int64 `json:"customerAgentId" dc:"客户代理ID"`
CustomerName string `json:"customerName" dc:"客户名称"`
PackageCode string `json:"packageCode" dc:"套餐编码"`
PackageName string `json:"packageName" dc:"套餐名称"`
BillingMethod int `json:"billingMethod" dc:"计费方式:1月,2年"`
RenewDurationUnit string `json:"renewDurationUnit" dc:"续费时长单位:固定year"`
RenewDurationUnitText string `json:"renewDurationUnitText" dc:"续费时长单位文本"`
DurationValue int `json:"durationValue" dc:"续费时长显示值(年)"`
DurationYears int `json:"durationYears" dc:"续费时长(年)"`
OldPackageCode string `json:"oldPackageCode" dc:"原套餐编码"`
OldPackageName string `json:"oldPackageName" dc:"原套餐名称"`
OldPackageType int `json:"oldPackageType" dc:"原套餐类型"`
OldPackageFlowMb float64 `json:"oldPackageFlowMb" dc:"原套餐流量"`
Quantity int `json:"quantity" dc:"数量"`
PriceSource string `json:"priceSource" dc:"价格来源"`
PriceOwnerDeptId int64 `json:"priceOwnerDeptId" dc:"价格所属上级部门ID"`
AgentDefaultPriceId int64 `json:"agentDefaultPriceId" dc:"代理默认价格ID"`
TargetPriceId int64 `json:"targetPriceId" dc:"目标价格ID"`
RenewUnitPrice float64 `json:"renewUnitPrice" dc:"续费单价"`
ChangeUnitPrice float64 `json:"changeUnitPrice" dc:"变更单价"`
RenewableDurationOptions []int `json:"renewableDurationOptions" dc:"可续费时长"`
RenewablePackageCodes []string `json:"renewablePackageCodes" dc:"可续费套餐编码列表"`
RenewablePackages []TSimCardRenewPackageOption `json:"renewablePackages" dc:"可续费套餐列表"`
RenewBeginDate string `json:"renewBeginDate" dc:"续费开始日期;同批到期日一致时有值"`
RenewBeginDateMin string `json:"renewBeginDateMin" dc:"续费开始日期最小值"`
RenewBeginDateMax string `json:"renewBeginDateMax" dc:"续费开始日期最大值"`
SameRenewBeginDate bool `json:"sameRenewBeginDate" dc:"同批卡续费开始日期是否一致"`
IsTopDept bool `json:"isTopDept" dc:"当前组织是否顶级组织"`
DefaultPaymentMode string `json:"defaultPaymentMode" dc:"默认付款方式"`
AvailableBalance float64 `json:"availableBalance" dc:"当前账户可用余额"`
Snapshot any `json:"snapshot" dc:"批次完整快照"`
}
type TSimCardRenewPrepareFailedItem struct {
Iccid string `json:"iccid" dc:"ICCID"`
Reason string `json:"reason" dc:"失败原因"`
}