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
+185
View File
@@ -0,0 +1,185 @@
package model
import "github.com/gogf/gf/v2/os/gtime"
type TSimCardChangeBatchPrepareParam struct {
SourceBatchNo string `json:"sourceBatchNo" dc:"source order batch no"`
}
type TSimCardChangeInputPrepareParam struct {
Input string `json:"input" v:"required#batch input cannot be empty" dc:"batch input ICCID text"`
NewPackageCode string `json:"newPackageCode" v:"required#newPackageCode cannot be empty" dc:"target new package code"`
DurationMonths int `json:"durationMonths" v:"required|min:1#durationMonths cannot be empty|durationMonths must be greater than 0" dc:"package duration months"`
GiftDurationMonths int `json:"giftDurationMonths" v:"min:0#giftDurationMonths cannot be negative" dc:"gift duration months"`
EffectiveMode string `json:"effectiveMode" v:"required#effectiveMode cannot be empty" dc:"effective mode"`
OfflineContractCompleted bool `json:"offlineContractCompleted" v:"required#please confirm offline contract is completed" dc:"offline contract completed"`
}
type TSimCardChangeRangePrepareParam struct {
StartIccid string `json:"startIccid" v:"required#startIccid cannot be empty" dc:"start ICCID"`
EndIccid string `json:"endIccid" v:"required#endIccid cannot be empty" dc:"end ICCID"`
StartMsisdn string `json:"startMsisdn" v:"required#startMsisdn cannot be empty" dc:"start MSISDN"`
EndMsisdn string `json:"endMsisdn" v:"required#endMsisdn cannot be empty" dc:"end MSISDN"`
StartImsi string `json:"startImsi" v:"required#startImsi cannot be empty" dc:"start IMSI"`
EndImsi string `json:"endImsi" v:"required#endImsi cannot be empty" dc:"end IMSI"`
NewPackageCode string `json:"newPackageCode" v:"required#newPackageCode cannot be empty" dc:"target new package code"`
DurationMonths int `json:"durationMonths" v:"required|min:1#durationMonths cannot be empty|durationMonths must be greater than 0" dc:"package duration months"`
GiftDurationMonths int `json:"giftDurationMonths" v:"min:0#giftDurationMonths cannot be negative" dc:"gift duration months"`
EffectiveMode string `json:"effectiveMode" v:"required#effectiveMode cannot be empty" dc:"effective mode"`
OfflineContractCompleted bool `json:"offlineContractCompleted" v:"required#please confirm offline contract is completed" dc:"offline contract completed"`
}
type TSimCardChangeInputOptionsParam struct {
Input string `json:"input" v:"required#batch input cannot be empty" dc:"batch input ICCID text"`
}
type TSimCardChangeRangeOptionsParam struct {
StartIccid string `json:"startIccid" v:"required#startIccid cannot be empty" dc:"start ICCID"`
EndIccid string `json:"endIccid" v:"required#endIccid cannot be empty" dc:"end ICCID"`
StartMsisdn string `json:"startMsisdn" v:"required#startMsisdn cannot be empty" dc:"start MSISDN"`
EndMsisdn string `json:"endMsisdn" v:"required#endMsisdn cannot be empty" dc:"end MSISDN"`
StartImsi string `json:"startImsi" v:"required#startImsi cannot be empty" dc:"start IMSI"`
EndImsi string `json:"endImsi" v:"required#endImsi cannot be empty" dc:"end IMSI"`
}
type TSimCardChangeExcelSubmitParam struct{}
type TSimCardChangeExcelSubmitRes 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:"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 TSimCardChangeBatchPrepareRes struct {
BatchNo string `json:"batchNo" dc:"change batch no"`
BatchType int `json:"batchType" dc:"current batch type"`
TargetBatchType int `json:"targetBatchType" dc:"target batch type"`
Status string `json:"status" dc:"status"`
BatchAsyncStatus int `json:"batchAsyncStatus" dc:"batch async status"`
RunResult int `json:"runResult" dc:"run result"`
Total int `json:"total" dc:"total rows"`
ValidCount int `json:"validCount" dc:"valid rows"`
FailCount int `json:"failCount" dc:"failed rows"`
SourceBatchNo string `json:"sourceBatchNo" dc:"source order batch no"`
CustomerAgentId int64 `json:"customerAgentId" dc:"customer agent id"`
CustomerName string `json:"customerName" dc:"customer name"`
OldPackageCode string `json:"oldPackageCode" dc:"old package code"`
OldPackageName string `json:"oldPackageName" dc:"old package name"`
OldPackageType int `json:"oldPackageType" dc:"old package type"`
OldPackageFlowMb float64 `json:"oldPackageFlowMb" dc:"old package flow mb"`
ResultDownloadId int64 `json:"resultDownloadId" dc:"result download id"`
ResultFileOssId int64 `json:"resultFileOssId" dc:"result file oss id"`
}
type TSimCardChangePackageOption struct {
PackageCode string `json:"packageCode" dc:"package code"`
PackageName string `json:"packageName" dc:"package name"`
PackageType int `json:"packageType" dc:"package type"`
FlowMb float64 `json:"flowMb" dc:"package flow mb"`
ChangeUnitPrice float64 `json:"changeUnitPrice" dc:"change unit price"`
RenewableDurationOptions []int `json:"renewableDurationOptions" dc:"allowed change duration months"`
}
type TSimCardChangeOptionsRes struct {
CustomerAgentId int64 `json:"customerAgentId" dc:"customer agent id"`
CustomerName string `json:"customerName" dc:"customer name"`
OldPackageCode string `json:"oldPackageCode" dc:"old package code"`
OldPackageName string `json:"oldPackageName" dc:"old package name"`
OldPackageType int `json:"oldPackageType" dc:"old package type"`
Quantity int `json:"quantity" dc:"card quantity"`
Packages []TSimCardChangePackageOption `json:"packages" dc:"changeable packages"`
}
type TSimCardChangeBatchSubmitParam struct {
BatchNo string `json:"batchNo" dc:"change batch no"`
NewPackageCode string `json:"newPackageCode" dc:"target new package code"`
DurationMonths int `json:"durationMonths" dc:"package duration months"`
GiftDurationMonths int `json:"giftDurationMonths" dc:"gift duration months"`
EffectiveMode string `json:"effectiveMode" dc:"effective mode"`
OfflineContractCompleted bool `json:"offlineContractCompleted" dc:"offline contract completed"`
BuyerNote string `json:"buyerNote" dc:"buyer note"`
AdminNote string `json:"adminNote" dc:"admin note"`
Remark string `json:"remark" dc:"batch remark"`
}
type TSimCardChangeBatchSubmitRes struct {
BatchNo string `json:"batchNo" dc:"change batch no"`
BatchType int `json:"batchType" dc:"batch type"`
BatchAsyncStatus int `json:"batchAsyncStatus" dc:"batch async status"`
SourceBatchNo string `json:"sourceBatchNo" dc:"source order batch no"`
Status string `json:"status" dc:"status"`
NewPackageCode string `json:"newPackageCode" dc:"new package code"`
NewPackageName string `json:"newPackageName" dc:"new package name"`
OldPackageCode string `json:"oldPackageCode" dc:"old package code"`
OldPackageName string `json:"oldPackageName" dc:"old package name"`
DurationMonths int `json:"durationMonths" dc:"duration months"`
GiftDurationMonths int `json:"giftDurationMonths" dc:"gift duration months"`
EffectiveMode string `json:"effectiveMode" dc:"effective mode"`
PackageBeginTime *gtime.Time `json:"packageBeginTime" dc:"package begin time"`
PackageEndTime *gtime.Time `json:"packageEndTime" dc:"package end time"`
}
type TSimCardChangePrepareSnapshot struct {
SourceBatchNo string `json:"sourceBatchNo"`
CustomerAgentId int64 `json:"customerAgentId"`
CustomerName string `json:"customerName"`
OldPackageCode string `json:"oldPackageCode"`
OldPackageName string `json:"oldPackageName"`
OldPackageType int `json:"oldPackageType"`
OldPackageFlowMb float64 `json:"oldPackageFlowMb"`
Quantity int `json:"quantity"`
}
type TSimCardChangePriceSnapshot struct {
CustomerAgentId int64 `json:"customerAgentId"`
NewPackageCode string `json:"newPackageCode"`
NewPackageName string `json:"newPackageName"`
NewPackageType int `json:"newPackageType"`
NewPackageFlowMb float64 `json:"newPackageFlowMb"`
PriceSource string `json:"priceSource"`
AgentDefaultPriceId int64 `json:"agentDefaultPriceId"`
TargetPriceId int64 `json:"targetPriceId"`
ChangeUnitPrice float64 `json:"changeUnitPrice"`
RenewableDurationOptions []int `json:"renewableDurationOptions"`
}
type TSimCardChangeInputPrepareRes = TSimCardChangeBatchPrepareRes
type TSimCardChangeRangePrepareRes = TSimCardChangeBatchPrepareRes
type TSimCardChangePrepareResultRes 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/partial_success"`
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:"失败原因"`
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:"套餐名称"`
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:"价格来源"`
AgentDefaultPriceId int64 `json:"agentDefaultPriceId" dc:"代理默认价格ID"`
TargetPriceId int64 `json:"targetPriceId" dc:"目标价格ID"`
ChangeUnitPrice float64 `json:"changeUnitPrice" dc:"变更单价"`
RenewableDurationOptions []int `json:"renewableDurationOptions" dc:"可续费时长"`
Snapshot any `json:"snapshot" dc:"批次完整快照"`
}