55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# 需求01:行业卡后台手动复机允许未实名
|
||
|
||
---
|
||
|
||
## 背景
|
||
|
||
**当前代码**:`internal/service/iot_card/stop_resume_service.go:938`
|
||
|
||
```go
|
||
// ManualStartCard - 当前写法(错误)
|
||
if card.RealNameStatus != constants.RealNameStatusVerified {
|
||
return errors.New(errors.CodeForbidden, "卡未实名,无法操作")
|
||
}
|
||
```
|
||
|
||
`isRealnameOK()` 已经正确处理行业卡豁免:
|
||
|
||
```go
|
||
// 第234行:行业卡无需实名
|
||
func (s *StopResumeService) isRealnameOK(card *model.IotCard) bool {
|
||
return card.CardCategory == constants.CardCategoryIndustry ||
|
||
card.RealNameStatus == constants.RealNameStatusVerified
|
||
}
|
||
```
|
||
|
||
但 `ManualStartCard` 没有走这个函数,直接判断了 `RealNameStatus`,导致行业卡手动复机也被拦截。
|
||
|
||
---
|
||
|
||
## 修改范围
|
||
|
||
**只改一行**,影响范围极小。
|
||
|
||
**文件**:`internal/service/iot_card/stop_resume_service.go`
|
||
|
||
```go
|
||
// 修改前(第938行)
|
||
if card.RealNameStatus != constants.RealNameStatusVerified {
|
||
denyErr := errors.New(errors.CodeForbidden, "卡未实名,无法操作")
|
||
...
|
||
}
|
||
|
||
// 修改后
|
||
if !s.isRealnameOK(card) {
|
||
denyErr := errors.New(errors.CodeForbidden, "卡未实名,无法操作")
|
||
...
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 前端对接
|
||
|
||
无需前端改动。复机操作界面不变,行业卡原先会报错"卡未实名,无法操作",修复后直接成功。
|