feat: 后台管理新增 UpdateRealnameMode 接口并注册路由 PATCH /api/admin/assets/:identifier/realname-mode
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -19,6 +19,7 @@ import (
|
||||
type AssetHandler struct {
|
||||
assetService *assetService.Service
|
||||
deviceService *deviceService.Service
|
||||
iotCardService *iotCardService.Service
|
||||
iotCardStopResume *iotCardService.StopResumeService
|
||||
assetPolling *pollingSvc.AssetPollingService
|
||||
assetLifecycleService AssetLifecycleService
|
||||
@@ -28,12 +29,14 @@ type AssetHandler struct {
|
||||
func NewAssetHandler(
|
||||
assetSvc *assetService.Service,
|
||||
deviceSvc *deviceService.Service,
|
||||
iotCardSvc *iotCardService.Service,
|
||||
iotCardStopResume *iotCardService.StopResumeService,
|
||||
assetPolling *pollingSvc.AssetPollingService,
|
||||
) *AssetHandler {
|
||||
return &AssetHandler{
|
||||
assetService: assetSvc,
|
||||
deviceService: deviceSvc,
|
||||
iotCardService: iotCardSvc,
|
||||
iotCardStopResume: iotCardStopResume,
|
||||
assetPolling: assetPolling,
|
||||
}
|
||||
@@ -283,3 +286,47 @@ func (h *AssetHandler) UpdatePollingStatus(c *fiber.Ctx) error {
|
||||
EnablePolling: req.EnablePolling,
|
||||
})
|
||||
}
|
||||
|
||||
// UpdateRealnamePolicy 更新资产实名认证策略
|
||||
// PATCH /api/admin/assets/:identifier/realname-mode
|
||||
func (h *AssetHandler) UpdateRealnamePolicy(c *fiber.Ctx) error {
|
||||
identifier := c.Params("identifier")
|
||||
if identifier == "" {
|
||||
return errors.New(errors.CodeInvalidParam)
|
||||
}
|
||||
|
||||
var req dto.UpdateAssetRealnamePolicyRequest
|
||||
if err := c.BodyParser(&req); err != nil {
|
||||
return errors.New(errors.CodeInvalidParam)
|
||||
}
|
||||
|
||||
if req.RealnamePolicy != constants.RealnamePolicyNone &&
|
||||
req.RealnamePolicy != constants.RealnamePolicyBeforeOrder &&
|
||||
req.RealnamePolicy != constants.RealnamePolicyAfterOrder {
|
||||
return errors.New(errors.CodeInvalidParam, "无效的实名认证策略")
|
||||
}
|
||||
|
||||
asset, err := h.assetService.Resolve(c.UserContext(), identifier)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
switch asset.AssetType {
|
||||
case "card":
|
||||
if err := h.iotCardService.UpdateRealnamePolicy(c.UserContext(), asset.AssetID, req.RealnamePolicy); err != nil {
|
||||
return err
|
||||
}
|
||||
case "device":
|
||||
if err := h.deviceService.UpdateRealnamePolicy(c.UserContext(), asset.AssetID, req.RealnamePolicy); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return errors.New(errors.CodeInvalidParam, "不支持的资产类型")
|
||||
}
|
||||
|
||||
return response.Success(c, &dto.UpdateAssetRealnamePolicyResponse{
|
||||
AssetType: asset.AssetType,
|
||||
AssetID: asset.AssetID,
|
||||
RealnamePolicy: req.RealnamePolicy,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user