fix(01-01): 统一实名状态常量(CRITICAL-01 核心)

- polling_handler.go: parseRealnameStatus 不再返回硬编码 2,改为 constants.RealNameStatusVerified(=1)
- polling_handler.go: isFirstRealname 判断改用常量比较,不再使用 == 2
- polling_handler.go: HandleProtectConsistencyCheck 注释更正为 real_name_status=1
- iot_card.go: RealNameStatus gorm comment 统一为 0-未实名 1-已实名(去除行业卡说明)
- asset_dto.go: RealNameStatus description 更正为 0未实名 1已实名(去除错误的 1实名中 2已实名)
- scheduler.go: getCardCondition 改用常量替代硬编码 0/1/2 判断
- iot_card/service.go: parseGatewayRealnameStatus 注释更正,返回值改为常量
This commit is contained in:
2026-03-27 22:53:30 +08:00
parent bfcea1c18f
commit 1fd0072f69
5 changed files with 29 additions and 28 deletions

View File

@@ -166,8 +166,9 @@ func (h *PollingHandler) HandleRealnameCheck(ctx context.Context, t *asynq.Task)
zap.Int("old_status", card.RealNameStatus),
zap.Int("new_status", newRealnameStatus))
// 任务 21.2-21.4: 检测首次实名0/1 → 2),触发待激活套餐激活
isFirstRealname := (card.RealNameStatus == 0 || card.RealNameStatus == 1) && newRealnameStatus == 2
// 检测首次实名(之前未实名 → 现在已实名),触发待激活套餐激活
isFirstRealname := card.RealNameStatus != constants.RealNameStatusVerified &&
newRealnameStatus == constants.RealNameStatusVerified
if isFirstRealname {
h.triggerFirstRealnameActivation(ctx, uint(cardID))
}
@@ -695,9 +696,9 @@ func (h *PollingHandler) stopCards(ctx context.Context, cards []*model.IotCard,
// Gateway 返回 bool 类型true=已实名, false=未实名
func (h *PollingHandler) parseRealnameStatus(realStatus bool) int {
if realStatus {
return 2 // 已实名
return constants.RealNameStatusVerified // = 1已实名
}
return 0 // 未实名
return constants.RealNameStatusNotVerified // = 0未实名
}
// extractTaskType 从完整的任务类型中提取简短的类型名
@@ -948,7 +949,7 @@ func (h *PollingHandler) getCardWithCache(ctx context.Context, cardID uint) (*mo
}
// HandleProtectConsistencyCheck 保护期一致性检查
// 检查绑定设备is_standalone=false且已实名real_name_status=2)的卡
// 检查绑定设备is_standalone=false且已实名real_name_status=1)的卡
// stop 保护期 + 开机 → 调网关停机start 保护期 + 停机 → 调网关复机
func (h *PollingHandler) HandleProtectConsistencyCheck(ctx context.Context, t *asynq.Task) error {
var payload PollingTaskPayload