This commit is contained in:
2026-07-05 01:42:00 +08:00
parent e4751067e3
commit 642ce2eb25
2 changed files with 36 additions and 17 deletions

View File

@@ -4,16 +4,6 @@ import "strings"
const defaultPlateType = "02"
// plateTypeToPlateColor 将车牌类型编码转换为 ETC 人车关系核验所需的车牌颜色。
func plateTypeToPlateColor(plateType string) string {
code := normalizePlateType(plateType)
if color, ok := plateTypePlateColorMap[code]; ok {
return color
}
return "0"
}
// normalizePlateType 归一化车牌类型空值默认小型汽车02
func normalizePlateType(plateType string) string {
code := strings.TrimSpace(plateType)
if code == "" {
@@ -22,8 +12,18 @@ func normalizePlateType(plateType string) string {
return code
}
// plateTypePlateColorMap 车牌类型 -> ETC 车牌颜色
// 0蓝 1黄 2黑 3白 4渐变绿 5黄绿双拼 6蓝白渐变 7临时 11绿 12红
func etcPlateColorParam(plateType string) (color string, include bool) {
code := strings.TrimSpace(plateType)
if code == "" || code == "02" {
return "", false
}
color, ok := plateTypePlateColorMap[code]
if !ok || color == "0" {
return "", false
}
return color, true
}
var plateTypePlateColorMap = map[string]string{
"01": "1",
"02": "0",
@@ -51,3 +51,26 @@ var plateTypePlateColorMap = map[string]string{
"51": "5",
"52": "11",
}
func buildETCShujubaoParams(plateNo, name, plateType string) map[string]interface{} {
params := map[string]interface{}{
"key": "a2f32fc54b44ebc85b97a2aaff1734ec",
"carNo": plateNo,
"name": name,
}
if color, include := etcPlateColorParam(plateType); include {
params["plateColor"] = color
}
return params
}
func buildETCTianyuanParams(plateNo, name, plateType string) map[string]string {
params := map[string]string{
"plate_no": plateNo,
"name": name,
}
if color, include := etcPlateColorParam(plateType); include {
params["plate_color"] = color
}
return params
}

View File

@@ -23,11 +23,7 @@ func ProcessQCXG7K2NRequest(ctx context.Context, params []byte, deps *processors
plateType := normalizePlateType(paramsDto.PlateType)
etcParams, err := json.Marshal(map[string]string{
"plate_no": paramsDto.PlateNo,
"name": paramsDto.Name,
"plate_color": plateTypeToPlateColor(paramsDto.PlateType),
})
etcParams, err := json.Marshal(buildETCTianyuanParams(paramsDto.PlateNo, paramsDto.Name, paramsDto.PlateType))
if err != nil {
return nil, errors.Join(processors.ErrSystem, err)
}