@@ -59,41 +59,41 @@ var productProcessors = map[string]func(*QueryServiceLogic, *types.QueryServiceR
func ( l * QueryServiceLogic ) PreprocessLogic ( req * types . QueryServiceReq , product string ) ( * types . QueryServiceResp , error ) {
if processor , exists := productProcessors [ product ] ; exists {
return processor ( l , req ) // 璋冪敤瀵瑰簲鐨勫鐞嗗嚱鏁?
return processor ( l , req ) // 调用相应的处理函数
}
return nil , errors . New ( "鏈壘鍒扮浉搴旂殑澶勭悊绋嬪簭 " )
return nil , errors . New ( "未找到相应的处理程序 " )
}
func ( l * QueryServiceLogic ) ProcessMarriageLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . MarriageReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -101,7 +101,7 @@ func (l *QueryServiceLogic) ProcessMarriageLogic(req *types.QueryServiceReq) (*t
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "marriage" , userID )
if cacheDataErr != nil {
@@ -109,10 +109,10 @@ func (l *QueryServiceLogic) ProcessMarriageLogic(req *types.QueryServiceReq) (*t
}
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %v" , err )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -122,38 +122,38 @@ func (l *QueryServiceLogic) ProcessMarriageLogic(req *types.QueryServiceReq) (*t
} , nil
}
// 澶勭悊瀹舵斂鏈嶅姟鐩稿叧閫昏緫
// 处理家政服务相关逻辑
func ( l * QueryServiceLogic ) ProcessHomeServiceLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . HomeServiceReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -161,7 +161,7 @@ func (l *QueryServiceLogic) ProcessHomeServiceLogic(req *types.QueryServiceReq)
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "homeservice" , userID )
if cacheDataErr != nil {
@@ -170,10 +170,10 @@ func (l *QueryServiceLogic) ProcessHomeServiceLogic(req *types.QueryServiceReq)
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -183,38 +183,38 @@ func (l *QueryServiceLogic) ProcessHomeServiceLogic(req *types.QueryServiceReq)
} , nil
}
// 澶勭悊椋庨櫓璇勪及鐩稿叧閫昏緫
// 处理风险评估相关逻辑
func ( l * QueryServiceLogic ) ProcessRiskAssessmentLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . RiskAssessmentReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -222,7 +222,7 @@ func (l *QueryServiceLogic) ProcessRiskAssessmentLogic(req *types.QueryServiceRe
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "riskassessment" , userID )
if cacheDataErr != nil {
@@ -231,10 +231,10 @@ func (l *QueryServiceLogic) ProcessRiskAssessmentLogic(req *types.QueryServiceRe
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -244,37 +244,37 @@ func (l *QueryServiceLogic) ProcessRiskAssessmentLogic(req *types.QueryServiceRe
} , nil
}
// 澶勭悊鍏徃淇℃伅鏌ヨ鐩稿叧閫昏緫
// 处理公司信息查询相关逻辑
func ( l * QueryServiceLogic ) ProcessCompanyInfoLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . CompanyInfoReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -282,7 +282,7 @@ func (l *QueryServiceLogic) ProcessCompanyInfoLogic(req *types.QueryServiceReq)
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "companyinfo" , userID )
if cacheDataErr != nil {
@@ -291,10 +291,10 @@ func (l *QueryServiceLogic) ProcessCompanyInfoLogic(req *types.QueryServiceReq)
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -304,38 +304,38 @@ func (l *QueryServiceLogic) ProcessCompanyInfoLogic(req *types.QueryServiceReq)
} , nil
}
// 澶勭悊绉熻祦淇℃伅鏌ヨ鐩稿叧閫昏緫
// 处理租赁信息查询相关逻辑
func ( l * QueryServiceLogic ) ProcessRentalInfoLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . RentalInfoReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -343,7 +343,7 @@ func (l *QueryServiceLogic) ProcessRentalInfoLogic(req *types.QueryServiceReq) (
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "rentalinfo" , userID )
if cacheDataErr != nil {
@@ -352,10 +352,10 @@ func (l *QueryServiceLogic) ProcessRentalInfoLogic(req *types.QueryServiceReq) (
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -365,38 +365,38 @@ func (l *QueryServiceLogic) ProcessRentalInfoLogic(req *types.QueryServiceReq) (
} , nil
}
// 澶勭悊璐峰墠鑳屾櫙妫€鏌ョ浉鍏抽€昏緫
// 处理贷前背景检查相关逻辑
func ( l * QueryServiceLogic ) ProcessPreLoanBackgroundCheckLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . PreLoanBackgroundCheckReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -404,7 +404,7 @@ func (l *QueryServiceLogic) ProcessPreLoanBackgroundCheckLogic(req *types.QueryS
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "preloanbackgroundcheck" , userID )
if cacheDataErr != nil {
@@ -413,10 +413,10 @@ func (l *QueryServiceLogic) ProcessPreLoanBackgroundCheckLogic(req *types.QueryS
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -426,37 +426,37 @@ func (l *QueryServiceLogic) ProcessPreLoanBackgroundCheckLogic(req *types.QueryS
} , nil
}
// 澶勭悊浜轰簨鑳岃皟鐩稿叧閫昏緫
// 处理人事背调相关逻辑
func ( l * QueryServiceLogic ) ProcessBackgroundCheckLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . BackgroundCheckReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -464,7 +464,7 @@ func (l *QueryServiceLogic) ProcessBackgroundCheckLogic(req *types.QueryServiceR
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "backgroundcheck" , userID )
if cacheDataErr != nil {
@@ -473,10 +473,10 @@ func (l *QueryServiceLogic) ProcessBackgroundCheckLogic(req *types.QueryServiceR
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -486,35 +486,35 @@ func (l *QueryServiceLogic) ProcessBackgroundCheckLogic(req *types.QueryServiceR
} , nil
}
func ( l * QueryServiceLogic ) ProcessPersonalDataLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . PersonalDataReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -522,7 +522,7 @@ func (l *QueryServiceLogic) ProcessPersonalDataLogic(req *types.QueryServiceReq)
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "personalData" , userID )
if cacheDataErr != nil {
@@ -531,10 +531,10 @@ func (l *QueryServiceLogic) ProcessPersonalDataLogic(req *types.QueryServiceReq)
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -544,35 +544,35 @@ func (l *QueryServiceLogic) ProcessPersonalDataLogic(req *types.QueryServiceReq)
} , nil
}
func ( l * QueryServiceLogic ) ProcessConsumerFinanceReportLogic ( req * types . QueryServiceReq ) ( * types . QueryServiceResp , error ) {
// AES瑙e瘑
// AES解密
decryptData , DecryptDataErr := l . DecryptData ( req . Data )
if DecryptDataErr != nil {
return nil , DecryptDataErr
}
// 鏍¢獙鍙傛暟
// 校验参数
var data types . ConsumerFinanceReportReq
if unmarshalErr := json . Unmarshal ( decryptData , & data ) ; unmarshalErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 瑙e瘑鍚庣殑鏁版嵁鏍煎紡涓嶆纭? %+v" , unmarshalErr )
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 )
return nil , errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . PARAM_VERIFICATION_ERROR , validatorErr . Error ( ) ) , "查询服务, 参数不正确: %+v" , validatorErr )
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
verifyCodeErr := l . VerifyCode ( data . Mobile , data . Code )
if verifyCodeErr != nil {
return nil , verifyCodeErr
}
// 鏍¢獙涓夎绱?
// 校验三要素
verifyErr := l . Verify ( data . Name , data . IDCard , data . Mobile )
if verifyErr != nil {
return nil , verifyErr
}
// 缂撳瓨
// 缓存
params := map [ string ] interface { } {
"name" : data . Name ,
"id_card" : data . IDCard ,
@@ -580,7 +580,7 @@ func (l *QueryServiceLogic) ProcessConsumerFinanceReportLogic(req *types.QuerySe
}
userID , err := l . GetOrCreateUser ( )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 澶勭悊鐢ㄦ埛澶辫触 : %v" , err )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 处理用户失败 : %v" , err )
}
cacheNo , cacheDataErr := l . CacheData ( params , "consumerFinanceReport" , userID )
if cacheDataErr != nil {
@@ -589,10 +589,10 @@ func (l *QueryServiceLogic) ProcessConsumerFinanceReportLogic(req *types.QuerySe
token , err := l . svcCtx . UserService . GeneralUserToken ( l . ctx , userID )
if err != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鐢熸垚 token澶辫触 : %d" , userID )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 生成 token失败 : %d" , userID )
}
// 鑾峰彇褰撳墠鏃堕棿鎴?
// 获取当前时间戳
now := time . Now ( ) . Unix ( )
return & types . QueryServiceResp {
Id : cacheNo ,
@@ -605,43 +605,43 @@ func (l *QueryServiceLogic) DecryptData(data string) ([]byte, error) {
secretKey := l . svcCtx . Config . Encrypt . SecretKey
key , decodeErr := hex . DecodeString ( secretKey )
if decodeErr != nil {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "瀵嗛挜鑾峰彇澶辫触 : %+v" , decodeErr )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "秘钥获取失败 : %+v" , decodeErr )
}
decryptData , aesDecryptErr := crypto . AesDecrypt ( data , key )
if aesDecryptErr != nil || len ( decryptData ) == 0 {
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "瑙e瘑澶辫触 : %+v" , aesDecryptErr )
return nil , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "解密失败 : %+v" , aesDecryptErr )
}
return decryptData , nil
}
// 鏍¢獙楠岃瘉鐮?
// 校验验证码
func ( l * QueryServiceLogic ) VerifyCode ( mobile string , code string ) error {
// 寮€鍙戠幆澧冧笅璺宠繃楠岃瘉鐮佹牎楠?
// 开发环境下跳过验证码校验
if os . Getenv ( "ENV" ) == "development" {
return nil
}
secretKey := l . svcCtx . Config . Encrypt . SecretKey
encryptedMobile , err := crypto . EncryptMobile ( mobile , secretKey )
if err != nil {
return errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鍔犲瘑鎵嬫満鍙峰け璐? %+v" , err )
return errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "加密手机号失败: %+v" , err )
}
codeRedisKey := fmt . Sprintf ( "%s:%s" , "query" , encryptedMobile )
cacheCode , err := l . svcCtx . Redis . Get ( codeRedisKey )
if err != nil {
if errors . Is ( err , redis . Nil ) {
return errors . Wrapf ( xerr . NewErrMsg ( "楠岃瘉鐮佸凡杩囨湡 " ) , "楠岃瘉鐮佽繃鏈? %s" , mobile )
return errors . Wrapf ( xerr . NewErrMsg ( "验证码已过期 " ) , "验证码过期: %s" , mobile )
}
return errors . Wrapf ( xerr . NewErrCode ( xerr . DB_ERROR ) , "璇诲彇楠岃瘉鐮乺edis缂撳瓨澶辫触 , mobile: %s, err: %+v" , mobile , err )
return errors . Wrapf ( xerr . NewErrCode ( xerr . DB_ERROR ) , "读取验证码redis缓存失败 , mobile: %s, err: %+v" , mobile , err )
}
if cacheCode != code {
return errors . Wrapf ( xerr . NewErrMsg ( "楠岃瘉鐮佷笉姝g‘ " ) , "楠岃瘉鐮佷笉姝g‘ : %s" , mobile )
return errors . Wrapf ( xerr . NewErrMsg ( "验证码不正确 " ) , "验证码不正确 : %s" , mobile )
}
return nil
}
// 浜屻€佷笁瑕佺礌楠岃瘉
// 二、三要素验证
func ( l * QueryServiceLogic ) Verify ( Name string , IDCard string , Mobile string ) error {
// 寮€鍙戠幆澧冧笅璺宠繃浜?涓夎绱犻獙璇?
// 开发环境下跳过二、三要素验证
if os . Getenv ( "ENV" ) == "development" {
return nil
}
@@ -652,13 +652,13 @@ func (l *QueryServiceLogic) Verify(Name string, IDCard string, Mobile string) er
}
verification , err := l . svcCtx . VerificationService . TwoFactorVerification ( twoVerification )
if err != nil {
return errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "浜岃绱犻獙璇佸け璐? %v" , err )
return errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "二要素验证失败: %v" , err )
}
if ! verification . Passed {
return errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . SERVER_COMMON_ERROR , verification . Err . Error ( ) ) , "浜岃绱犻獙璇佷笉閫氳繃 : %v" , err )
return errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . SERVER_COMMON_ERROR , verification . Err . Error ( ) ) , "二要素验证不通过 : %v" , err )
}
} else {
// 涓夎绱犻獙璇?
// 三要素验证
threeVerification := service . ThreeFactorVerificationRequest {
Name : Name ,
IDCard : IDCard ,
@@ -666,30 +666,30 @@ func (l *QueryServiceLogic) Verify(Name string, IDCard string, Mobile string) er
}
verification , err := l . svcCtx . VerificationService . ThreeFactorVerification ( threeVerification )
if err != nil {
return errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "涓夎绱犻獙璇佸け璐? %v" , err )
return errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "三要素验证失败: %v" , err )
}
if ! verification . Passed {
return errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . SERVER_COMMON_ERROR , verification . Err . Error ( ) ) , "涓夎绱犻獙璇佷笉閫氳繃 : %v" , err )
return errors . Wrapf ( xerr . NewErrCodeMsg ( xerr . SERVER_COMMON_ERROR , verification . Err . Error ( ) ) , "三要素验证不通过 : %v" , err )
}
}
return nil
}
// 缂撳瓨
// 缓存
func ( l * QueryServiceLogic ) CacheData ( params map [ string ] interface { } , Product string , userID string ) ( string , error ) {
agentIdentifier , _ := l . ctx . Value ( "agentIdentifier" ) . ( string )
secretKey := l . svcCtx . Config . Encrypt . SecretKey
key , decodeErr := hex . DecodeString ( secretKey )
if decodeErr != nil {
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鑾峰彇AES瀵嗛挜澶辫触 : %+v" , decodeErr )
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 获取AES秘钥失败 : %+v" , decodeErr )
}
paramsMarshal , marshalErr := json . Marshal ( params )
if marshalErr != nil {
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 搴忓垪鍖栧弬鏁板け璐? %+v" , marshalErr )
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 序列化参数失败: %+v" , marshalErr )
}
encryptParams , aesEncryptErr := crypto . AesEncrypt ( paramsMarshal , key )
if aesEncryptErr != nil {
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 鍔犲瘑鍙傛暟澶辫触 : %+v" , aesEncryptErr )
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 加密参数失败 : %+v" , aesEncryptErr )
}
queryCache := types . QueryCacheLoad {
Params : encryptParams ,
@@ -698,7 +698,7 @@ func (l *QueryServiceLogic) CacheData(params map[string]interface{}, Product str
}
jsonData , marshalErr := json . Marshal ( queryCache )
if marshalErr != nil {
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "鏌ヨ鏈嶅姟, 搴忓垪鍖栧弬鏁板け璐? %+v" , marshalErr )
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "查询服务, 序列化参数失败: %+v" , marshalErr )
}
outTradeNo := "Q_" + l . svcCtx . AlipayService . GenerateOutTradeNo ( )
redisKey := fmt . Sprintf ( types . QueryCacheKey , userID , outTradeNo )
@@ -710,9 +710,9 @@ func (l *QueryServiceLogic) CacheData(params map[string]interface{}, Product str
}
// GetOrCreateUser 获取或创建用户
// 1. 如果已登录, 使用当前登录用户
// 2. 如果未登录, 创建临时用户( UUID用户)
// 注意: 查询服务不负责手机号绑定, 手机号绑定由用户在其他地方自主选择
// 1. 如果已登录, 使用当前登录用户
// 2. 如果未登录, 创建临时用户( UUID用户)
// 注意: 查询服务不负责手机号绑定, 手机号绑定由用户在其他地方自主选择
func ( l * QueryServiceLogic ) GetOrCreateUser ( ) ( string , error ) {
// 获取当前登录态
claims , err := ctxdata . GetClaimsFromCtx ( l . ctx )
@@ -721,12 +721,12 @@ func (l *QueryServiceLogic) GetOrCreateUser() (string, error) {
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "获取用户信息失败: %v" , err )
}
// 如果已登录, 使用当前登录用户
// 如果已登录, 使用当前登录用户
if claims != nil {
return claims . UserId , nil
}
// 未登录: 创建临时用户( UUID用户)
// 未登录: 创建临时用户( UUID用户)
userID , err := l . svcCtx . UserService . RegisterUUIDUser ( l . ctx )
if err != nil {
return "" , errors . Wrapf ( xerr . NewErrCode ( xerr . SERVER_COMMON_ERROR ) , "创建临时用户失败: %v" , err )