diff --git a/app/main/api/internal/logic/query/queryservicelogic.go b/app/main/api/internal/logic/query/queryservicelogic.go index b7fbee1..9d9e892 100644 --- a/app/main/api/internal/logic/query/queryservicelogic.go +++ b/app/main/api/internal/logic/query/queryservicelogic.go @@ -268,6 +268,7 @@ var productProcessors = map[string]func(*QueryServiceLogic, *types.QueryServiceR "toc_DebtRepayStress": (*QueryServiceLogic).ProcessTocDebtRepayStressLogic, // 偿贷压力 "toc_EducationInfo": (*QueryServiceLogic).ProcessTocEducationInfoLogic, // 学历信息查询 "toc_PersonEnterprisePro": (*QueryServiceLogic).ProcessTocPersonEnterpriseProLogic, // 企业法人 + "toc_EducationInfoName": (*QueryServiceLogic).ProcessTocEducationInfoNameLogic, // 学历信息查询(学校名称版) } func (l *QueryServiceLogic) PreprocessLogic(req *types.QueryServiceReq, product string) (*types.QueryServiceResp, error) { @@ -2094,6 +2095,46 @@ func (l *QueryServiceLogic) ProcessTocEducationInfoLogic(req *types.QueryService return &types.QueryServiceResp{Id: cacheNo}, nil } +// ProcessTocEducationInfoNameLogic 学历信息查询 +func (l *QueryServiceLogic) ProcessTocEducationInfoNameLogic(req *types.QueryServiceReq) (*types.QueryServiceResp, error) { + userID, getUidErr := ctxdata.GetUidFromCtx(l.ctx) + if getUidErr != nil { + return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 获取用户信息失败, %+v", getUidErr) + } + + // AES解密 + decryptData, DecryptDataErr := l.DecryptData(req.Data) + if DecryptDataErr != nil { + return nil, DecryptDataErr + } + + // 校验参数 + var data types.TocEducationInfo + if unmarshalErr := json.Unmarshal(decryptData, &data); unmarshalErr != nil { + return nil, errors.Wrapf(xerr.NewErrCode(xerr.SERVER_COMMON_ERROR), "查询服务, 解密后的数据格式不正确: %+v", unmarshalErr) + } + + if validatorErr := validator.Validate(data); validatorErr != nil { + return nil, errors.Wrapf(xerr.NewErrCodeMsg(xerr.PARAM_VERIFICATION_ERROR, validatorErr.Error()), "查询服务, 参数不正确: %+v", validatorErr) + } + + // 验证二要素 + if verifyErr := l.VerifyTwoFactors(data.Name, data.IDCard); verifyErr != nil { + return nil, verifyErr + } + + params := map[string]interface{}{ + "name": data.Name, + "id_card": data.IDCard, + } + cacheNo, cacheDataErr := l.CacheData(params, "toc_EducationInfoName", userID) + if cacheDataErr != nil { + return nil, cacheDataErr + } + + return &types.QueryServiceResp{Id: cacheNo}, nil +} + // ProcessTocPersonEnterpriseProLogic 人企关系加强版 func (l *QueryServiceLogic) ProcessTocPersonEnterpriseProLogic(req *types.QueryServiceReq) (*types.QueryServiceResp, error) { userID, getUidErr := ctxdata.GetUidFromCtx(l.ctx)