chore: 初始开源发布

iotlcm-app:小程序端 + 用户端服务。

- app/:uni-app 小程序前端(基于 unibest,MIT)
  - 微信 AppID → YOUR_WX_APPID,uni-app AppID → __UNI__YOURAPPID
  - 内网后端地址 → admin.iotlcm.example.com
  - 应用标题与 unibest 模板 README 重写(保留上游致谢与 MIT 声明)
- server/:GoFrame 用户端服务(基于 XiuAdmin,Apache-2.0)
  - module xiuadmin → git.5iot.com/iotlcm-public/iotlcm-app(360 文件)
  - 支付回调地址 → app.iotlcm.example.com,商户名与应用名泛化
  - 真实手机号 → 合法 11 位编造号(保留号段前 3 位 + 后 4 位)
  - 依赖号码尾部的断言同步更新
  - 补 server/LICENSE(Apache-2.0)
- 移除内部资产:CI 触发器
- 补根 README,LF 行尾 + .gitattributes

已知:TestSysDept_RefreshDeptAncestors 在源仓同一提交上同样失败,属既有缺陷。
This commit is contained in:
MiFaZhan
2026-10-26 14:01:25 +08:00
commit 2ed5dfa6a1
1013 changed files with 138466 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
// =================================================================================
// Code generated and maintained by GoFrame CLI tool. DO NOT EDIT.
// =================================================================================
package app
import (
"context"
"git.5iot.com/iotlcm-public/iotlcm-app/api/app/v1"
)
type IAppV1 interface {
Captcha(ctx context.Context, req *v1.CaptchaReq) (res *v1.CaptchaRes, err error)
SideCaptcha(ctx context.Context, req *v1.SideCaptchaReq) (res *v1.SideCaptchaRes, err error)
CheckSideCaptcha(ctx context.Context, req *v1.CheckSideCaptchaReq) (res *v1.CheckSideCaptchaRes, err error)
SendSms(ctx context.Context, req *v1.SendSmsReq) (res *v1.SendSmsRes, err error)
PhoneRegister(ctx context.Context, req *v1.PhoneRegisterReq) (res *v1.PhoneRegisterRes, err error)
PhoneLogin(ctx context.Context, req *v1.PhoneLoginReq) (res *v1.PhoneLoginRes, err error)
WechatLogin(ctx context.Context, req *v1.WechatLoginReq) (res *v1.WechatLoginRes, err error)
WechatBindPhone(ctx context.Context, req *v1.WechatBindPhoneReq) (res *v1.WechatBindPhoneRes, err error)
ForgotPassword(ctx context.Context, req *v1.ForgotPasswordReq) (res *v1.ForgotPasswordRes, err error)
BalanceRechargeSubmit(ctx context.Context, req *v1.BalanceRechargeSubmitReq) (res *v1.BalanceRechargeSubmitRes, err error)
BalanceRechargeStatus(ctx context.Context, req *v1.BalanceRechargeStatusReq) (res *v1.BalanceRechargeStatusRes, err error)
BalanceRechargeMockPay(ctx context.Context, req *v1.BalanceRechargeMockPayReq) (res *v1.BalanceRechargeMockPayRes, err error)
BalanceRechargeRefund(ctx context.Context, req *v1.BalanceRechargeRefundReq) (res *v1.BalanceRechargeRefundRes, err error)
BalanceRechargeWechatNotify(ctx context.Context, req *v1.BalanceRechargeWechatNotifyReq) (res *v1.BalanceRechargeWechatNotifyRes, err error)
BalanceRechargeWechatRefundNotify(ctx context.Context, req *v1.BalanceRechargeWechatRefundNotifyReq) (res *v1.BalanceRechargeWechatRefundNotifyRes, err error)
PublicQueryCard(ctx context.Context, req *v1.PublicQueryCardReq) (res *v1.PublicQueryCardRes, err error)
RecognizeCard(ctx context.Context, req *v1.RecognizeCardReq) (res *v1.RecognizeCardRes, err error)
CardList(ctx context.Context, req *v1.CardListReq) (res *v1.CardListRes, err error)
PackageList(ctx context.Context, req *v1.PackageListReq) (res *v1.PackageListRes, err error)
PublicPackageDetail(ctx context.Context, req *v1.PublicPackageDetailReq) (res *v1.PublicPackageDetailRes, err error)
CardDetail(ctx context.Context, req *v1.CardDetailReq) (res *v1.CardDetailRes, err error)
BindCard(ctx context.Context, req *v1.BindCardReq) (res *v1.BindCardRes, err error)
RestartCard(ctx context.Context, req *v1.RestartCardReq) (res *v1.RestartCardRes, err error)
StopCard(ctx context.Context, req *v1.StopCardReq) (res *v1.StopCardRes, err error)
StartCard(ctx context.Context, req *v1.StartCardReq) (res *v1.StartCardRes, err error)
LifecycleBatchSubmit(ctx context.Context, req *v1.LifecycleBatchSubmitReq) (res *v1.LifecycleBatchSubmitRes, err error)
LifecycleBatchStatus(ctx context.Context, req *v1.LifecycleBatchStatusReq) (res *v1.LifecycleBatchStatusRes, err error)
RenewPrepare(ctx context.Context, req *v1.RenewPrepareReq) (res *v1.RenewPrepareRes, err error)
RenewBatchPrepare(ctx context.Context, req *v1.RenewBatchPrepareReq) (res *v1.RenewBatchPrepareRes, err error)
RenewSubmit(ctx context.Context, req *v1.RenewSubmitReq) (res *v1.RenewSubmitRes, err error)
RenewBatchSubmit(ctx context.Context, req *v1.RenewBatchSubmitReq) (res *v1.RenewBatchSubmitRes, err error)
AllocateTargets(ctx context.Context, req *v1.AllocateTargetsReq) (res *v1.AllocateTargetsRes, err error)
AllocateBatchPrepare(ctx context.Context, req *v1.AllocateBatchPrepareReq) (res *v1.AllocateBatchPrepareRes, err error)
AllocateBatchSubmit(ctx context.Context, req *v1.AllocateBatchSubmitReq) (res *v1.AllocateBatchSubmitRes, err error)
ChangePrepare(ctx context.Context, req *v1.ChangePrepareReq) (res *v1.ChangePrepareRes, err error)
ChangeSubmit(ctx context.Context, req *v1.ChangeSubmitReq) (res *v1.ChangeSubmitRes, err error)
DiagnosisInfo(ctx context.Context, req *v1.DiagnosisInfoReq) (res *v1.DiagnosisInfoRes, err error)
DiagnosisFlow(ctx context.Context, req *v1.DiagnosisFlowReq) (res *v1.DiagnosisFlowRes, err error)
OpenDiagnosisInfo(ctx context.Context, req *v1.OpenDiagnosisInfoReq) (res *v1.OpenDiagnosisInfoRes, err error)
OpenDiagnosisFlow(ctx context.Context, req *v1.OpenDiagnosisFlowReq) (res *v1.OpenDiagnosisFlowRes, err error)
CustomerList(ctx context.Context, req *v1.CustomerListReq) (res *v1.CustomerListRes, err error)
CustomerDetail(ctx context.Context, req *v1.CustomerDetailReq) (res *v1.CustomerDetailRes, err error)
MessageList(ctx context.Context, req *v1.MessageListReq) (res *v1.MessageListRes, err error)
MessageDetail(ctx context.Context, req *v1.MessageDetailReq) (res *v1.MessageDetailRes, err error)
MessageRead(ctx context.Context, req *v1.MessageReadReq) (res *v1.MessageReadRes, err error)
OrderList(ctx context.Context, req *v1.OrderListReq) (res *v1.OrderListRes, err error)
OrderDetail(ctx context.Context, req *v1.OrderDetailReq) (res *v1.OrderDetailRes, err error)
UserInfo(ctx context.Context, req *v1.UserInfoReq) (res *v1.UserInfoRes, err error)
UpdateUserInfo(ctx context.Context, req *v1.UpdateUserInfoReq) (res *v1.UpdateUserInfoRes, err error)
BindWechat(ctx context.Context, req *v1.BindWechatReq) (res *v1.BindWechatRes, err error)
WarningConfigList(ctx context.Context, req *v1.WarningConfigListReq) (res *v1.WarningConfigListRes, err error)
WarningConfigSave(ctx context.Context, req *v1.WarningConfigSaveReq) (res *v1.WarningConfigSaveRes, err error)
WarningConfigNotify(ctx context.Context, req *v1.WarningConfigNotifyReq) (res *v1.WarningConfigNotifyRes, err error)
WarningConfigMeta(ctx context.Context, req *v1.WarningConfigMetaReq) (res *v1.WarningConfigMetaRes, err error)
WarningConfigBatchSave(ctx context.Context, req *v1.WarningConfigBatchSaveReq) (res *v1.WarningConfigBatchSaveRes, err error)
WarningConfigBatchNotify(ctx context.Context, req *v1.WarningConfigBatchNotifyReq) (res *v1.WarningConfigBatchNotifyRes, err error)
WorkOrderList(ctx context.Context, req *v1.WorkOrderListReq) (res *v1.WorkOrderListRes, err error)
WorkOrderDetail(ctx context.Context, req *v1.WorkOrderDetailReq) (res *v1.WorkOrderDetailRes, err error)
WorkOrderCreate(ctx context.Context, req *v1.WorkOrderCreateReq) (res *v1.WorkOrderCreateRes, err error)
WorkOrderUpload(ctx context.Context, req *v1.WorkOrderUploadReq) (res *v1.WorkOrderUploadRes, err error)
}
+87
View File
@@ -0,0 +1,87 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type CaptchaReq struct {
g.Meta `path:"/auth/captcha" method:"get" tags:"APP-授权" summary:"获取图形验证码"`
}
type CaptchaRes struct {
CaptchaID string `json:"captchaID" dc:"验证码ID"`
CaptchaImage string `json:"captchaImage" dc:"验证码图片Base64"`
}
type SideCaptchaReq struct {
g.Meta `path:"/auth/side-captcha" method:"post" tags:"APP-授权" summary:"获取滑块验证码"`
}
type SideCaptchaRes struct {
model.AppSideCaptchaModel
}
type CheckSideCaptchaReq struct {
g.Meta `path:"/auth/check-side-captcha" method:"post" tags:"APP-授权" summary:"验证滑块验证码"`
model.AppCheckSideCaptchaParam
}
type CheckSideCaptchaRes struct {
Success bool `json:"success" dc:"是否成功"`
}
type SendSmsReq struct {
g.Meta `path:"/auth/sms" method:"post" tags:"APP-授权" summary:"发送短信验证码"`
model.AppSendSmsParam
}
type SendSmsRes struct {
model.AppSendSmsModel
}
type PhoneRegisterReq struct {
g.Meta `path:"/auth/register" method:"post" tags:"APP-授权" summary:"手机号注册"`
model.AppPhoneRegisterParam
}
type PhoneRegisterRes struct {
model.AppAuthTokenModel
}
type PhoneLoginReq struct {
g.Meta `path:"/auth/login" method:"post" tags:"APP-授权" summary:"账号登录"`
model.AppPhoneLoginParam
}
type PhoneLoginRes struct {
model.AppAuthTokenModel
}
type WechatLoginReq struct {
g.Meta `path:"/auth/wechat-login" method:"post" tags:"APP-授权" summary:"微信一键登录"`
model.AppWechatLoginParam
}
type WechatLoginRes struct {
model.AppWechatLoginModel
}
type WechatBindPhoneReq struct {
g.Meta `path:"/auth/wechat-bind-phone" method:"post" tags:"APP-授权" summary:"微信登录绑定手机号"`
model.AppWechatBindPhoneParam
}
type WechatBindPhoneRes struct {
model.AppWechatBindPhoneModel
}
type ForgotPasswordReq struct {
g.Meta `path:"/auth/forgot-password" method:"post" tags:"APP-授权" summary:"手机号找回密码"`
model.AppForgotPasswordParam
}
type ForgotPasswordRes struct {
Success bool `json:"success" dc:"是否成功"`
}
+55
View File
@@ -0,0 +1,55 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type BalanceRechargeSubmitReq struct {
g.Meta `path:"/balance/recharge-submit" method:"post" tags:"APP-余额" summary:"提交余额充值订单"`
model.AppBalanceRechargeSubmitParam
}
type BalanceRechargeSubmitRes struct {
*model.AppBalanceRechargeSubmitModel
}
type BalanceRechargeStatusReq struct {
g.Meta `path:"/balance/recharge-status" method:"get" tags:"APP-余额" summary:"查询余额充值订单支付状态"`
model.AppBalanceRechargeStatusParam
}
type BalanceRechargeStatusRes struct {
*model.AppBalanceRechargeStatusModel
}
type BalanceRechargeMockPayReq struct {
g.Meta `path:"/balance/recharge-mock-pay" method:"post" tags:"APP-余额" summary:"模拟余额充值支付成功"`
model.AppBalanceRechargeMockPayParam
}
type BalanceRechargeMockPayRes struct {
*model.AppBalanceRechargeStatusModel
}
type BalanceRechargeRefundReq struct {
g.Meta `path:"/balance/recharge-refund" method:"post" tags:"APP-余额" summary:"发起余额充值退款申请"`
model.AppBalanceRechargeRefundParam
}
type BalanceRechargeRefundRes struct {
*model.AppOrderModel
}
type BalanceRechargeWechatNotifyReq struct {
g.Meta `path:"/payment/wechat/notify" method:"post" tags:"APP-余额" summary:"微信支付余额充值异步通知"`
}
type BalanceRechargeWechatNotifyRes struct{}
type BalanceRechargeWechatRefundNotifyReq struct {
g.Meta `path:"/payment/wechat/refund-notify" method:"post" tags:"APP-余额" summary:"微信支付余额充值退款异步通知"`
}
type BalanceRechargeWechatRefundNotifyRes struct{}
+199
View File
@@ -0,0 +1,199 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type PublicQueryCardReq struct {
g.Meta `path:"/card/public-query" method:"post" tags:"APP-卡片" summary:"未登录公开查询卡信息"`
model.AppCardQueryParam
}
type PublicQueryCardRes struct {
Card *model.AppCardModel `json:"card" dc:"卡信息"`
}
type RecognizeCardReq struct {
g.Meta `path:"/card/recognize" method:"post" tags:"APP-卡片" summary:"拍照识别ICCID并公开查卡"`
}
type RecognizeCardRes struct {
*model.AppCardRecognitionModel
}
type CardListReq struct {
g.Meta `path:"/card/list" method:"get" tags:"APP-卡片" summary:"登录用户查询持有卡列表" x-check-permission:"cpa:terminal:user,cpm:iot:tSimCardInfo:list"`
model.AppCardListParam
}
type CardListRes struct {
Items []*model.AppCardModel `json:"items" dc:"卡列表"`
Total int `json:"total" dc:"总数"`
HasMore bool `json:"hasMore" dc:"是否还有下一页"`
}
type PackageListReq struct {
g.Meta `path:"/card/package-list" method:"get" tags:"APP-卡片" summary:"登录用户查询持有卡套餐列表" x-check-permission:"cpm:iot:tSimCardBindPkg:list,cpm:iot:tSimFlowPackageInfo:list,cpm:iot:tSimCardInfo:list"`
model.AppPackageListParam
}
type PackageListRes struct {
Items []*model.AppPackageModel `json:"items" dc:"套餐列表"`
Total int `json:"total" dc:"总数"`
}
type PublicPackageDetailReq struct {
g.Meta `path:"/card/public-package-detail" method:"post" tags:"APP-卡片" summary:"未登录公开查询当前套餐详情"`
model.AppPackagePublicDetailParam
}
type PublicPackageDetailRes struct {
Package *model.AppPackageModel `json:"package" dc:"套餐详情"`
}
type CardDetailReq struct {
g.Meta `path:"/card/detail" method:"get" tags:"APP-卡片" summary:"登录用户查询卡详情,非持有卡按公共查询返回" x-check-permission:"cpm:iot:tSimCardInfo:view,cpm:iot:tSimCardInfo:list"`
model.AppCardDetailParam
}
type CardDetailRes struct {
Card *model.AppCardModel `json:"card" dc:"卡信息"`
}
type BindCardReq struct {
g.Meta `path:"/card/bind" method:"post" tags:"APP-卡片" summary:"终端用户绑定卡" x-check-permission:"cpc:current:user"`
model.AppCardBindParam
}
type BindCardRes struct {
Card *model.AppCardModel `json:"card" dc:"卡信息"`
}
type RestartCardReq struct {
g.Meta `path:"/card/restart" method:"post" tags:"APP-卡片" summary:"登录用户重启卡" x-check-permission:"cpm:iot:tSimCardRestart:input:submit"`
model.AppCardRestartParam
}
type RestartCardRes struct {
*model.AppCardRestartModel
}
type StopCardReq struct {
g.Meta `path:"/card/stop" method:"post" tags:"APP-卡片" summary:"企业用户停机卡片" x-check-permission:"cpm:iot:tSimCardStop:input:submit"`
model.AppCardRestartParam
}
type StopCardRes struct {
*model.AppCardLifecycleModel
}
type StartCardReq struct {
g.Meta `path:"/card/start" method:"post" tags:"APP-卡片" summary:"企业用户复机卡片" x-check-permission:"cpm:iot:tSimCardStart:input:submit"`
model.AppCardRestartParam
}
type StartCardRes struct {
*model.AppCardLifecycleModel
}
type LifecycleBatchSubmitReq struct {
g.Meta `path:"/card/lifecycle-batch-submit" method:"post" tags:"APP-卡片" summary:"企业用户批量提交停机复机重启" x-check-permission:"cpm:iot:tSimCardStop:input:submit,cpm:iot:tSimCardStart:input:submit,cpm:iot:tSimCardRestart:input:submit"`
model.AppCardLifecycleParam
}
type LifecycleBatchSubmitRes struct {
*model.AppCardLifecycleModel
}
type LifecycleBatchStatusReq struct {
g.Meta `path:"/card/lifecycle-batch-status" method:"get" tags:"APP-卡片" summary:"查询卡片停机复机重启批次状态" x-check-permission:"cpm:iot:tSimCardStop:input:submit,cpm:iot:tSimCardStart:input:submit,cpm:iot:tSimCardRestart:input:submit"`
model.AppCardLifecycleStatusParam
}
type LifecycleBatchStatusRes struct {
*model.AppCardLifecycleModel
}
type RenewPrepareReq struct {
g.Meta `path:"/card/renew-prepare" method:"post" tags:"APP-卡片" summary:"登录用户查询套餐续费档位和价格" x-check-permission:"cpm:iot:tSimCardRenew:input:prepare,cpm:iot:tSimCardRenew:batch:confirm"`
model.AppCardRenewPrepareParam
}
type RenewPrepareRes struct {
*model.AppCardRenewPrepareModel
}
type RenewBatchPrepareReq struct {
g.Meta `path:"/card/renew-batch-prepare" method:"post" tags:"APP-卡片" summary:"登录用户批量查询套餐续费档位和价格" x-check-permission:"cpm:iot:tSimCardRenew:input:prepare,cpm:iot:tSimCardRenew:batch:confirm"`
model.AppCardRenewBatchPrepareParam
}
type RenewBatchPrepareRes struct {
*model.AppCardRenewPrepareModel
}
type RenewSubmitReq struct {
g.Meta `path:"/card/renew-submit" method:"post" tags:"APP-卡片" summary:"登录用户提交套餐续费订单" x-check-permission:"cpm:iot:tSimCardRenew:batch:confirm"`
model.AppCardRenewSubmitParam
}
type RenewSubmitRes struct {
*model.AppCardRenewSubmitModel
}
type RenewBatchSubmitReq struct {
g.Meta `path:"/card/renew-batch-submit" method:"post" tags:"APP-卡片" summary:"登录用户提交批量套餐续费订单" x-check-permission:"cpm:iot:tSimCardRenew:batch:confirm"`
model.AppCardRenewBatchSubmitParam
}
type RenewBatchSubmitRes struct {
*model.AppCardRenewSubmitModel
}
type AllocateTargetsReq struct {
g.Meta `path:"/card/allocate-targets" method:"get" tags:"APP-卡片" summary:"企业用户查询可划拨目标客户" x-check-permission:"cpm:iot:tSimCardAllocate:targets"`
model.AppCardAllocateTargetListParam
}
type AllocateTargetsRes struct {
Items []*model.AppCardAllocateTargetModel `json:"items" dc:"目标客户列表"`
Total int `json:"total" dc:"总数"`
}
type AllocateBatchPrepareReq struct {
g.Meta `path:"/card/allocate-batch-prepare" method:"post" tags:"APP-卡片" summary:"企业用户批量划拨预校验" x-check-permission:"cpm:iot:tSimCardAllocate:input:prepare"`
model.AppCardAllocateBatchPrepareParam
}
type AllocateBatchPrepareRes struct {
*model.AppCardAllocateBatchModel
}
type AllocateBatchSubmitReq struct {
g.Meta `path:"/card/allocate-batch-submit" method:"post" tags:"APP-卡片" summary:"企业用户提交批量划拨" x-check-permission:"cpm:iot:tSimCardAllocate:batch:submit"`
model.AppCardAllocateBatchSubmitParam
}
type AllocateBatchSubmitRes struct {
*model.AppCardAllocateBatchModel
}
type ChangePrepareReq struct {
g.Meta `path:"/card/change-prepare" method:"post" tags:"APP-卡片" summary:"企业用户套餐变更预校验" x-check-permission:"cpm:iot:tSimCardChange:input:prepare,cpm:iot:tSimCardChange:range:prepare,cpm:iot:tSimCardBindPkg:getChangePkg"`
model.AppCardChangePrepareParam
}
type ChangePrepareRes struct {
*model.AppCardChangePrepareModel
}
type ChangeSubmitReq struct {
g.Meta `path:"/card/change-submit" method:"post" tags:"APP-卡片" summary:"企业用户提交套餐变更" x-check-permission:"cpm:iot:tSimCardChange:batch:submit"`
model.AppCardChangeSubmitParam
}
type ChangeSubmitRes struct {
*model.AppCardChangeSubmitModel
}
+26
View File
@@ -0,0 +1,26 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type CustomerListReq struct {
g.Meta `path:"/customer/list" method:"get" tags:"APP-客户" summary:"企业用户查询下级客户列表" x-check-permission:"cpm:agent:dept:list,cpm:agent:tAgentEnterprise:list"`
model.AppCustomerListParam
}
type CustomerListRes struct {
Items []*model.AppCustomerModel `json:"items" dc:"客户列表"`
Total int `json:"total" dc:"总数"`
}
type CustomerDetailReq struct {
g.Meta `path:"/customer/detail" method:"get" tags:"APP-客户" summary:"企业用户查询客户详情" x-check-permission:"cpm:agent:tAgentEnterprise:view,cpm:agent:tAgentEnterprise:list"`
model.AppCustomerDetailParam
}
type CustomerDetailRes struct {
Customer *model.AppCustomerDetailModel `json:"customer" dc:"客户详情"`
}
+25
View File
@@ -0,0 +1,25 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type DiagnosisInfoReq struct {
g.Meta `path:"/diagnosis/info" method:"post" tags:"APP-智能诊断" summary:"查询SIM卡诊断信息"`
model.AppDiagnosisInfoParam
}
type DiagnosisInfoRes struct {
*model.AppDiagnosisInfoModel
}
type DiagnosisFlowReq struct {
g.Meta `path:"/diagnosis/flow" method:"post" tags:"APP-智能诊断" summary:"查询SIM卡流量趋势"`
model.AppDiagnosisFlowParam
}
type DiagnosisFlowRes struct {
*model.AppDiagnosisFlowModel
}
+33
View File
@@ -0,0 +1,33 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type MessageListReq struct {
g.Meta `path:"/message/list" method:"get" tags:"APP-消息中心" summary:"当前登录用户消息列表"`
model.AppMessageListParam
}
type MessageListRes struct {
Items []*model.AppMessageModel `json:"items" dc:"消息列表"`
Total int `json:"total" dc:"总数"`
}
type MessageDetailReq struct {
g.Meta `path:"/message/detail" method:"get" tags:"APP-消息中心" summary:"当前登录用户消息详情"`
model.AppMessageDetailParam
}
type MessageDetailRes struct {
Message *model.AppMessageModel `json:"message" dc:"消息详情"`
}
type MessageReadReq struct {
g.Meta `path:"/message/read" method:"post" tags:"APP-消息中心" summary:"标记当前登录用户消息为已读"`
model.AppMessageReadParam
}
type MessageReadRes struct{}
+25
View File
@@ -0,0 +1,25 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type OpenDiagnosisInfoReq struct {
g.Meta `path:"/open/diagnosis/info" method:"post" tags:"APP-开放诊断" summary:"免登录查询SIM卡诊断信息"`
model.AppOpenDiagnosisInfoParam
}
type OpenDiagnosisInfoRes struct {
*model.AppDiagnosisInfoModel
}
type OpenDiagnosisFlowReq struct {
g.Meta `path:"/open/diagnosis/flow" method:"post" tags:"APP-开放诊断" summary:"免登录查询SIM卡流量趋势"`
model.AppOpenDiagnosisFlowParam
}
type OpenDiagnosisFlowRes struct {
*model.AppDiagnosisFlowModel
}
+26
View File
@@ -0,0 +1,26 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type OrderListReq struct {
g.Meta `path:"/order/list" method:"get" tags:"APP-订单" summary:"登录用户查询自己的支付订单"`
model.AppOrderListParam
}
type OrderListRes struct {
Items []*model.AppOrderModel `json:"items" dc:"订单列表"`
Total int `json:"total" dc:"总数"`
}
type OrderDetailReq struct {
g.Meta `path:"/order/detail" method:"get" tags:"APP-订单" summary:"登录用户查询自己的支付订单详情"`
model.AppOrderDetailParam
}
type OrderDetailRes struct {
Order *model.AppOrderModel `json:"order" dc:"订单详情"`
}
+33
View File
@@ -0,0 +1,33 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type UserInfoReq struct {
g.Meta `path:"/user/info" method:"get" tags:"APP-用户" summary:"当前用户信息"`
}
type UserInfoRes struct {
model.AppUserInfoModel
}
type UpdateUserInfoReq struct {
g.Meta `path:"/user/info" method:"post" tags:"APP-用户" summary:"修改当前用户信息"`
model.AppUpdateUserInfoParam
}
type UpdateUserInfoRes struct {
model.AppUserInfoModel
}
type BindWechatReq struct {
g.Meta `path:"/user/wechat/bind" method:"post" tags:"APP-用户" summary:"绑定或更换微信用户"`
model.AppWechatBindParam
}
type BindWechatRes struct {
model.AppWechatBindModel
}
+60
View File
@@ -0,0 +1,60 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type WarningConfigListReq struct {
g.Meta `path:"/warning/config/list" method:"get" tags:"APP-预警" summary:"查询单卡预警配置" x-check-permission:"cpm:iot:simWarningConfig:list,cpm:iot:simWarningConfig:view,cpm:iot:tSimWarningConfig:input:submit"`
model.AppWarningConfigListParam
}
type WarningConfigListRes struct {
model.AppWarningConfigListModel
}
type WarningConfigSaveReq struct {
g.Meta `path:"/warning/config/save" method:"post" tags:"APP-预警" summary:"保存单卡预警配置" x-check-permission:"cpm:iot:simWarningConfig:save,cpm:iot:tSimWarningConfig:input:submit"`
model.AppWarningConfigSaveParam
}
type WarningConfigSaveRes struct {
model.AppWarningConfigSaveModel
}
type WarningConfigNotifyReq struct {
g.Meta `path:"/warning/config/notify" method:"post" tags:"APP-预警" summary:"设置单卡小程序预警通知" x-check-permission:"cpm:iot:simWarningConfig:save,cpm:iot:tSimWarningConfig:input:submit"`
model.AppWarningConfigNotifyParam
}
type WarningConfigNotifyRes struct {
model.AppWarningConfigNotifyModel
}
type WarningConfigMetaReq struct {
g.Meta `path:"/warning/config/meta" method:"get" tags:"APP-预警" summary:"查询预警订阅配置元信息" x-check-permission:"cpm:iot:simWarningConfig:list,cpm:iot:simWarningConfig:view,cpm:iot:tSimWarningConfig:input:submit"`
}
type WarningConfigMetaRes struct {
model.AppWarningConfigMetaModel
}
type WarningConfigBatchSaveReq struct {
g.Meta `path:"/warning/config/batch-save" method:"post" tags:"APP-预警" summary:"批量保存单卡预警配置" x-check-permission:"cpm:iot:simWarningConfig:save,cpm:iot:tSimWarningConfig:input:submit,cpm:iot:tSimWarningConfig:range:submit"`
model.AppWarningConfigBatchSaveParam
}
type WarningConfigBatchSaveRes struct {
model.AppWarningConfigBatchSaveModel
}
type WarningConfigBatchNotifyReq struct {
g.Meta `path:"/warning/config/batch-notify" method:"post" tags:"APP-预警" summary:"批量设置单卡小程序预警通知" x-check-permission:"cpm:iot:simWarningConfig:save,cpm:iot:tSimWarningConfig:input:submit,cpm:iot:tSimWarningConfig:range:submit"`
model.AppWarningConfigBatchNotifyParam
}
type WarningConfigBatchNotifyRes struct {
model.AppWarningConfigBatchNotifyModel
}
+44
View File
@@ -0,0 +1,44 @@
package v1
import (
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
"github.com/gogf/gf/v2/frame/g"
)
type WorkOrderListReq struct {
g.Meta `path:"/work-order/list" method:"get" tags:"APP-工单" summary:"当前登录用户工单列表" x-check-permission:"cpm:gen:tWoMain:list"`
model.AppWorkOrderListParam
}
type WorkOrderListRes struct {
Items []*model.AppWorkOrderModel `json:"items" dc:"工单列表"`
Total int `json:"total" dc:"总数"`
}
type WorkOrderDetailReq struct {
g.Meta `path:"/work-order/detail" method:"get" tags:"APP-工单" summary:"当前登录用户工单详情" x-check-permission:"cpm:gen:tWoMain:view,cpm:gen:tWoMain:list"`
model.AppWorkOrderDetailParam
}
type WorkOrderDetailRes struct {
WorkOrder *model.AppWorkOrderModel `json:"workOrder" dc:"工单详情"`
}
type WorkOrderCreateReq struct {
g.Meta `path:"/work-order/create" method:"post" tags:"APP-工单" summary:"提交工单" x-check-permission:"cpm:gen:tWoMain:edit"`
model.AppWorkOrderCreateParam
}
type WorkOrderCreateRes struct {
WorkOrder *model.AppWorkOrderModel `json:"workOrder" dc:"工单详情"`
}
type WorkOrderUploadReq struct {
g.Meta `path:"/work-order/upload" method:"post" tags:"APP-工单" summary:"上传工单附件"`
*model.SysOssUploadParam
}
type WorkOrderUploadRes struct {
*model.SysOssUploadModel
}