Commit b2eded42 authored by kang.nie@inzymeits.com's avatar kang.nie@inzymeits.com
Browse files

初始化代码

parent 12156d65
Pipeline #3109 failed with stages
in 0 seconds
package com.cusc.nirvana.user.rnr.common.config;
import com.cusc.nirvana.common.result.PageResult;
import com.cusc.nirvana.user.rnr.mg.constants.RnrMgMqConstant;
import com.cusc.nirvana.user.rnr.mg.service.TimingSendService;
import com.cusc.nirvana.user.rnr.notice.dto.RnrNoticeContentDTO;
import com.cusc.nirvana.user.rnr.notice.kafka.KafkaProduct;
import com.cusc.nirvana.user.rnr.notice.service.IRnrNoticeContentService;
import com.cusc.nirvana.user.util.CuscStringUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.CommonClientConfigs;
import org.apache.kafka.clients.producer.ProducerConfig;
import org.apache.kafka.common.config.SaslConfigs;
import org.apache.kafka.common.serialization.StringSerializer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.support.SendResult;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.util.concurrent.ListenableFuture;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
/**
* @className: TimingSendKafka
* @description: 用于检测有没有发送kafka,最多20次
* @author: jk
* @date: 2022/7/22 11:39
* @version: 1.0
**/
@Component
@Slf4j
public class TimingSendKafka {
@Autowired
private KafkaProduct kafkaProduct;
@Resource
private IRnrNoticeContentService iRnrNoticeContentService;
private int pageSize =50;
@Autowired
private TimingSendService timingSendService;
//五分钟执行一次
@Scheduled(fixedDelayString = "300000")
public void scanningT1uploadstatus(){
log.info("重试通知开始");
RnrNoticeContentDTO rnrNoticeConfigDTO = new RnrNoticeContentDTO();
rnrNoticeConfigDTO.setPageSize(pageSize);
rnrNoticeConfigDTO.setCurrPage(1);
PageResult<RnrNoticeContentDTO> queryByList = iRnrNoticeContentService.queryByPage(rnrNoticeConfigDTO);
double size =Math.ceil(queryByList.getTotalCount()*1.0/queryByList.getPageSize());
for(int i = 1 ;i<=size; i++){
RnrNoticeContentDTO rnrNoticeConfigPage = new RnrNoticeContentDTO();
rnrNoticeConfigPage.setPageSize(pageSize);
rnrNoticeConfigPage.setCurrPage(i);
PageResult<RnrNoticeContentDTO> result = iRnrNoticeContentService.queryByPage(rnrNoticeConfigPage);
timingSendService.sendKafka(result.getList());
}
}
// public static void main(String[] args) {
// Map<String, Object> props = new HashMap<>();
// props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "10.166.2.7:9092");
// props.put(ProducerConfig.RETRIES_CONFIG, 0);
// props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
// props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
// props.put(CommonClientConfigs.SECURITY_PROTOCOL_CONFIG, "SASL_PLAINTEXT");
// props.put(SaslConfigs.SASL_MECHANISM, "PLAIN");
// props.put("sasl.jaas.config", "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"admin\" password=\"dH2!kE2)nD\"");
// KafkaTemplate<String, String> kafkaTemplate = new KafkaTemplate<>(new DefaultKafkaProducerFactory<>(props));
//
// ListenableFuture<SendResult<String, String>> send =
// kafkaTemplate.send("cusc-rnr-card-operation-topic", "MgCardNoticeDTO(vin=VINCX000001000001, iccid=89860200013000000001, oldIccid=null, orderId=7217293d62424ff9a06c95e3238dc798, orgId=null, manufacturerOrgId=aab1ae4c00d049e99d144d52b945ec5d, tenantNo=1, rnrBizzType=4, resultCode=3, operator=)");
//
// send.addCallback(success -> log.info("KafkaMessageProducer 发送消息成功!topic:{}, message:{}", "cusc-rnr-card-operation-topic", "MgCardNoticeDTO(vin=VINCX000001000001, iccid=89860200013000000001, oldIccid=null, orderId=7217293d62424ff9a06c95e3238dc798, orgId=null, manufacturerOrgId=aab1ae4c00d049e99d144d52b945ec5d, tenantNo=1, rnrBizzType=4, resultCode=3, operator=)"),
// fail -> log.error("KafkaMessageProducer 发送消息失败topic:{}, message:{}", "cusc-rnr-card-operation-topic", "MgCardNoticeDTO(vin=VINCX000001000001, iccid=89860200013000000001, oldIccid=null, orderId=7217293d62424ff9a06c95e3238dc798, orgId=null, manufacturerOrgId=aab1ae4c00d049e99d144d52b945ec5d, tenantNo=1, rnrBizzType=4, resultCode=3, operator=)"));
// }
}
package com.cusc.nirvana.user.rnr.common.config;
import com.alibaba.fastjson.JSON;
import com.cusc.nirvana.user.rnr.mg.common.MgLogOutputJsonSerializeFilter;
import com.cusc.nirvana.user.util.CuscStringUtils;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* Description: mvc日志输出
* <br />
* CreateDate 2021-11-12 10:26
*
* @author yuyi
**/
@Aspect
@Component
public class WebLogAspect {
private final static Logger LOGGER = LoggerFactory.getLogger(WebLogAspect.class);
/**
* 以 controller 包下定义的所有请求为切入点
*/
@Pointcut("execution(* com.cusc.nirvana.user.rnr.mg.controller.*.*(..))")
public void webLog() {
}
/**
* 环绕
*
* @param proceedingJoinPoint
* @return
* @throws Throwable
*/
@Around("webLog()")
public Object doAround(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
long startTime = System.currentTimeMillis();
String requestId = CuscStringUtils.generateUuid();
ServletRequestAttributes sra = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
HttpServletRequest request = sra.getRequest();
String url = request.getRequestURL().toString();
String method = request.getMethod();
String params = "";
//获取请求参数集合并进行遍历拼接
if ("POST".equals(method)) {
Object[] args = proceedingJoinPoint.getArgs();
params = JSON.toJSONString(args, new MgLogOutputJsonSerializeFilter());
} else if ("GET".equals(method)) {
params = request.getQueryString();
}
LOGGER.info("requestId:{} , request url:{} , method:{} , params:{}", requestId, url, method, params);
// result的值就是被拦截方法的返回值
Object result = proceedingJoinPoint.proceed();
LOGGER.info("requestId:{} , response url:{} , result:{} , cost:{} ms", requestId, url,
JSON.toJSONString(result, new MgLogOutputJsonSerializeFilter()),
System.currentTimeMillis() - startTime);
return result;
}
}
package com.cusc.nirvana.user.rnr.common.constants;
/**
* Description: redis相关常量类
* <br />
* CreateDate 2021-11-03 20:36
*
* @author yuyi
**/
public class RedisConstant {
//认证方式前缀key
public static final String AUTHENTICATION_WAY = "CT:RNR:AUTHENTICATION:WAY:";
//实名公共配置前缀key
public static final String RNR_COMMON_CONFIG = "CT:RNR:COMMON:CONFIG:";
//实名路由键前缀key
public static final String RNR_ROUTING_KEY = "CT:RNR:ROUTING:KEY:";
//实名uid前缀key
public static final String RNR_UID_KEY = "CT:RNR:UID:ROUTING_KEY";
//实名业务锁前缀key
public static final String RNR_LOCK = "CT:RNR:LOCK:";
public static final String RNR_CARD_NOTICE_LOCK = "CT:RNR:CARD:NOTICE:";
//实名业务锁时长(秒)
public static final Integer RNR_LOCK_TIME = 3;
//实名通知配置前缀key
public static final String RNR_NOTICE_CONFIG = "CT:RNR:NOTICE:CONFIG:";
//实名工单配置前缀key
public static final String RNR_WORK_ORDER_CONFIG = "CT:RNR:WORK_ORDER:CONFIG";
//工单分派前缀key
public static final String RNR_WORK_ORDER_ASSIGN_CONFIG = "CT:RNR:WOR_ORDER_ASSIGN:CONFIG:";
//实名统计Key
public static final String RNR_CARD_STATISTICS_KEY = "CT:RNR:CARD_STATISTICS:KEY:";
public static final String RNR_MG_ASYNCORDER_LOCK = "CT:RNR:LOCK:MG:ASYNCORDER:";
public static final int RNR_MG_ASYNCORDER_LOCK_EXPIRE = 90000;
}
package com.cusc.nirvana.user.rnr.common.constants;
public enum ResponseCode {
AUTHENTICATION_WAY_NOT_FOUND(1801,"认证方式未配置"),
TENCENT_LIVENESS_EXCEPTION(1802,"腾讯活检测车异常"),
TENCENT_LIVENESS_FAIL(1803,"腾讯活体检车失败"),
OCR_PARAMTER_INVALID(1804,"集团OCR请求参数无效"),
OCR_FRONT_BACK_ERROR(1805,"在正面照字段传入证件背面照!"),
OCR_FRONT_NAME_ERROR(1806,"姓名不同!"),
OCR_FRONT_CERTID_ERROR(1807,"证件号不同!"),
OCR_BACK_FRONT_ERROR(1808,"在背面照字段传入证件正面照!"),
OCR_BACK_DATE_ERROR(1809,"证件有效期读取失败!"),
OCR_BACK_EFFECTVE_ERROR(1810,"证件生效日期读取失败!"),
OCR_BACK_EXPIRE_ERROR(1811,"证件失效日期读取失败!"),
OCR_BACK_EXPIRE_LESS_THAN_EFFECTVE(1812,"失效日期小于生效日期!"),
OCR_BACK_EXPIRE_LESS_THAN_TODAY(1813,"证件已失效!"),
FMP_SERVER_NOT_AVAILABLE(1814,"自然人活体校验服务不可用"),
FMP_NOT_LIVING_IMG(1815,"不是活体照片"),
CERT_CHECK_NOT_LIVING_IMG(1816,"自然人身份认证服务不可用"),
TENCENT_LIVENESS_NUMBER_ERROR(1817,"活体唇语数字获取失败!"),
CU_NP_FACE_COMPARE_BUSY(1818,"自然人人脸比对服务不可用!"),
AOP_FACE_COMPARE_INVALID(1819,"AOP人脸比对请求参数无效!"),
AUTH_WAY_CONFIG_INVALID(1820,"认证方式配置无效!"),
AUTH_WAY_SERVICE_INSTANCE_INVALID(1821,"认证方式执行实例无效!"),
AUTH_WAY_NOT_CONFIG_INVALID(1822,"未配置可执行的认证方式!"),
OCR_CERT_FRONT_EXEC_FAIL(1823,"身份证正面(国徽面)识别失败!"),
OCR_CERT_BACK_EXEC_FAIL(1823,"身份证反面(人像面)识别失败!"),
FMP_SYNC_EXEC_FAIL(1824,"执行FMP失败!"),
ICCID_NOT_NULL(1825,"iccid不能为空"),
UID_GET_ERROR(1826,"UID获取失败"),
RNR_IMAGE_UPLOAD_FAIL(1827,"文件上传失败"),
CERT_CHECK_SYNC_EXEC_FAIL(1828,"执行身份信息核验(CERT_CHECK)失败!"),
FACE_COMPARE_SYNC_EXEC_FAIL(1829,"执行人脸比对(FACE_COMPARE)失败!"),
ICCID_RNR_INFO_NOT_MATCHED(1830,"没有需要解绑的卡"),
CAR_SUB_ORGAN_NOT_FOUND(1831,"查询车企信息失败"),
INVALID_DATA(1001, "数据校验不通过"),
SYS_BUSY(1002, "服务调用失败"),
SERVICE_NOT_FOUND(1003, "服务不存在"),
TP_SYS_BUSY(1004, "第三方服务调用失败"),
JSON_FORMAT_ERROR(1005, "参数格式错误"),
REQ_TOO_MANY_TIMES(1007, "请求过于频繁,请稍后再试!"),
INTERNAL_ERROR(1008, "内部错误,请联系管理员!"),
PARAMETER_NOT_NULL(1009, "必填参数不能为空!"),
SYSTEM_ERROR(-1,"系统错误")
;
private Integer code;
private String msg;
ResponseCode(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
package com.cusc.nirvana.user.rnr.common.constants;
/**
* Description: 实名常量
* <br />
* CreateDate 2022-03-03 10:16:26
*
* @author yuyi
**/
public final class RnrConstants {
/**
* 本系统编码
*/
public static final String LOCAL_CODE = "RNR_NOTIFIER";
/**
* 第三方服务类型
*/
public static final String NOTIFI_OPTYP_RNR_SUCC = "RNR_SUCC";
public static final String NOTIFI_OPTYP_RNR_FAIL = "RNR_FAIL";
public static final String NOTIFI_OPTYP_RNR_BATCH_SUCC = "RNR_BATCH_SUCC";
public static final String NOTIFI_OPTYP_RNR_BATCH_FAIL = "RNR_BATCH_FAIL";
public static final String NOTIFI_OPTYP_CH_TBOX_SUCC = "CH_TBOX_SUCC";
public static final String NOTIFI_OPTYP_CH_TBOX_FAIL = "CH_TBOX_FAIL";
public static final String NOTIFI_OPTYP_UNBIND_SUCC = "UNBIND_SUCC";
public static final String NOTIFI_OPTYP_UNBIND_FAIL = "UNBIND_FAIL";
public static final String NOTIFI_OPTYP_UNBIND_BATCH_SUCC = "UNBIND_BATCH_SUCC";
public static final String NOTIFI_OPTYP_REBIND_SUCC = "REBIND_SUCC";
public static final String NOTIFI_OPTYP_REBIND_FAIL = "REBIND_FAIL";
public static final String NOTIFI_OPTYP_BIND_SUCC = "BIND_SUCC";
public static final String NOTIFI_OPTYP_BIND_FAIL = "BIND_FAIL";
public static final String NOTIFI_OPTYP_RESALE_SUCC = "RESALE_SUCC";
public static final String NOTIFI_OPTYP_RESALE_FAIL = "RESALE_FAIL";
public static final String NOTIFI_OPTYP_RNR_OPER_SUCC = "RNR_OPER_SUCC";
public static final String NOTIFI_OPTYP_RNR_OPER_FAIL = "RNR_OPER_FAIL";
public static final String NOTIFI_OPTYP_RNR_WAIT_AUDIT = "RNR_WAIT_AUDIT";
public static final String NOTIFI_OPTYP_RNR_AUDIT_SUCC = "RNR_AUDIT_SUCC";
public static final String NOTIFI_OPTYP_RNR_AUDIT_FAIL = "RNR_AUDIT_FAIL";
public static final String NOTIFI_OPTYP_RNR_TIME_OUT_FAIL = "RNR_TIME_OUT_FAIL";
public static final String NOTIFI_OPTYP_RNR_ABOX_SUCC = "RNR_ABOX_SUCC";
public static final String NOTIFI_OPTYP_RNR_TBOX_SUCC = "RNR_TBOX_SUCC";
public static final String NOTIFI_OPTYP_RNR_ABOX_FAIL = "RNR_ABOX_FAIL";
public static final String NOTIFI_OPTYP_RNR_TBOX_FAIL = "RNR_TBOX_FAIL";
public static final String NOTIFI_OPTYP_RNR_WAIT_CHECK = "RNR_WAIT_CHECK";
public static final String NOTIFI_OPTYP_RNR_CH_CUSTOMERINFO_SUCC = "CH_CUSTOMERINFO_SUCC";
public static final String NOTIFI_ADMIN_ORDER_WARN = "ADMIN_ORDER_WARN";
public static final String NOTIFI_ORDER_TIMEOUT_WARN = "ORDER_TIMEOUT_WARN";
public static final String NOTIFI_OPTYP_BATCH_SYNC_ECS = "RNR_BATCH_SYNC_ECS";
public static final String VEHICLE_CARD_BATCH_SUCC = "VEHICLE_CARD_BATCH_SUCC";
public static final String AUTHENTICATION_AUTO = "V0001";
public static final String AUTHENTICATION_PERSON = "V0002";
/**
* 认证状态
*/
public static final int RNR_STATUS_NOT_EXIST = -1;
public static final int RNR_STATUS_NO_APPLICATION = 0;// 未申请
public static final int RNR_STATUS_WAIT_CHECK = 1;// 认证中
public static final int RNR_STATUS_CHECK_ACCESS = 2;// 审核通过、绑定状态
public static final int RNR_STATUS_CHECK_FAIL = 3;// 未通过
public static final int RNR_STATUS_UNBINDING = 4;// 解绑状态
public static final int RNR_STATUS_NOT_BINDING = 5;// 未绑定状态,预先载入数据库时的状态
public static final int RNR_STATUS_WAIT_MANUAL_CHECK = 6;// 人工审核状态
/**
* ICCID匹配状态
*/
public static final int ICCID_NOT_EXIST = 9;// 未查到该iccid信息
public static final int ICCID_MSISDN_NOT_MATCH = 10;// iccid与msisdn不匹配
public static final int ICCID_OR_MSISDN_NULL = 11;// 参数不合法
/**
* 解绑理由
*/
public static final int UNBIND_REASON_SCRAP = 1;// 报废
public static final int UNBIND_REASON_TRANSFER = 2;// 过户
public static final int UNBIND_REASON_SECOND_HAND_SALE = 3;// 二手车交易
public static final int UNBIND_REASON_OTHER = 9;// 其他
/**
* 品牌类型
*/
public static final String BRAND_TYPE_VEHICLE = "BRANDCAR";
public static final String BRAND_TYPE_DEVICE = "BRANDDEVICE";
/**
* 个人实名认证状态
*/
public static final int PERSON_RNR_STATUS_FAIL = 0;
public static final int PERSON_RNR_STATUS_ACCESS = 1;
/**
* 实名认证人的类型
*/
public static final int RNR_TYPE_PERSONAL = 0;
public static final int RNR_TYPE_ENTERPRISE = 1;
/**
* AOP 调用响应结果码
*/
public static final int AOP_CODE_NOT_SIMILAR = 1;
public static final int AOP_CODE_SIMILAR = 0;
public static final int AOP_CODE_ERROR = 2;
public static final int AOP_CODE_IMG_ERROR = 4;
/**
* 国政通 调用响应结果码
*/
public static final String GZT_CODE_SUCCESS = "0";
public static final String GZT_CODE_COMP_SUCCESS = "3";
/**
* 工单认证类型
*/
public static final int ORDER_AUDIT_TYPE_AUTO = 0;
public static final int ORDER_AUDIT_TYPE_MANUL = 1;
/**
* 工单是否属于批量工单
*/
public static final int ORDER_SINGLE = 0;
public static final int ORDER_BATCH = 1;
/**
* 批量接口一次最多接受条数
*/
public static final int BATCH_MAX_NUM = 200;
public static final int BATCH_ICCID_MAX_NUM = 50;
/**
* 失败重试次数
*/
public static final int FAIL_RETRY_NUM = 3;
/**
* 参数长度
*/
public static final int PARAM_LENGTH_VIN = 17;
public static final int PARAM_LENGTH_OLD_VIN = 7;
public static final int PARAM_LENGTH_ICCID = 20;
public static final int PARAM_LENGTH_IMSI = 15;
public static final int PARAM_LENGTH_MSISDN = 15;
public static final int PARAM_LENGTH_IMEI_MIN = 15;
public static final int PARAM_LENGTH_IMEI_MAX = 17;
public static final int PARAM_LENGTH_DEVICEID = 48;// 设备号长度
public static final int PARAM_LENGTH_PHONENUM = 11;// 手机号长度
public static final int PARAM_LENGTH_EMAIL = 40;// 邮箱长度
public static final int PARAM_LENGTH_CERTTYPE = 15;// 证件类型长度
public static final int PARAM_LENGTH_USERNAME = 30;// 用户名长度
public static final int PARAM_LENGTH_OWNERCONTACT = 100;// 联系地址长度
public static final int PARAM_LENGTH_LICENSECODE = 18;// 企业证件号长度
public static final int PARAM_LENGTH_COMNAME = 50;// 企业名称长度
public static final int PARAM_LENGTH_COMTYPE = 1;// 企业类型
public static final int PARAM_LENGTH_COMADDRESS = 100;// 企业地址长度
public static final int PARAM_LENGTH_INDUSTRY_TYPE = 5;// 行业类型长度
/**
* 性别
*/
public static final String GENDER_FEMALE = "0";
public static final String GENDER_MALE = "1";
public static final String GENDER_FEMALE_STR = "F";
public static final String GENDER_MALE_STR = "M";
/**
* 字典code
*/
public static final String DICTIONARY_CODE_UNIVERSAL_CAPTCHA = "UniversalCaptcha";// 万能验证码手机号
public static final String DICTIONARY_CODE_SHOW_ENTERPRISE = "ShowEnterprise";// 是否展示企业注册
public static final String DICTIONARY_CODE_CARM_NO = "CarmNo";// 是否展示企业注册
public static final String DICTIONARY_CODE_NO_RETRY_SYS = "NoRetrySys";
/**
* 配置项路径
*/
public static final String CONFIG_PATH_TESLA_LICENSECODE = "cusc.rnr.tesla.licenseCode";
public static final String CONFIG_PATH_TESLA_CUSTOM_SWITCH = "cusc.rnr.tesla.customeTaskSwitch";
public static final String CONFIG_PATH_TESLA_NEW_TASK_SWITCH = "cusc.rnr.tesla.newTaskSwitch";
public static final String CONFIG_PATH_IS_VERIFY_ICCID = "cusc.rnr.h5.isVerifyIccid";
public static final String CONFIG_PATH_IS_VERIFY_GENERIC_ICCID = "cusc.rnr.h5.isVerifyGenericIccid";
public static final String CONFIG_PATH_TENCENT_WH5_LIVE = "cusc.rnr.h5.tencentLive.wh5";
public static final String CONFIG_PATH_TENCENT_H5_LIVE_SIGN_CHECK = "cusc.rnr.h5.tencentLive.liveResultCheckSign";
public static final String CONFIG_PATH_IS_CHECK_DAIMLER_VIN = "cusc.rnr.portal.isVerifyVin";
public static final String CONFIG_PATH_MAIL_RETRY_BASE_URL = "cusc.rnr.notify.retryUrl";
public static final String CONFIG_PATH_TENCENT_H5_LIVE_KEY_TIME = "cusc.rnr.h5.tencentLive.liveKeyOverTime";
/**
* 模拟配置项路径
*/
public static final String CONFIG_PATH_SERVICE_MOCK_OCR = "cusc.rnr.service.mock.OCR";
public static final String CONFIG_PATH_SERVICE_MOCK_FMP = "cusc.rnr.service.mock.FMP";
public static final String CONFIG_PATH_SERVICE_MOCK_IDC = "cusc.rnr.service.mock.IDC";
public static final String CONFIG_PATH_SERVICE_PHONE_CHECK = "cusc.rnr.service.isVerifyPhone";
public static final String CONFIG_PATH_SERVICE_PHONE_LIMIT_NUM = "cusc.rnr.service.phoneLimitNum";
public static final String CONFIG_PATH_SERVICE_PHONE_REG_PATTERN = "cusc.rnr.service.regPatternPhone";
public static final String CONFIG_PATH_SERVICE_VEDIO_MAXSIZE = "cusc.rnr.service.vedio.maxsize";
public static final String CONFIG_PATH_SERVICE_ENCRYPTION = "cusc.rnr.service.encryption";
public static final String CONFIG_PATH_SERVICE_ENCRYPTION_RSP = "cusc.rnr.service.encryptionRsp";
public static final String CONFIG_PATH_SERVICE_SMS = "cusc.rnr.service.sendSmsChoose";
public static final String CONFIG_PATH_SERVICE_SIM_NUM = "cusc.rnr.service.simNum";
public static final String CONFIG_PATH_SERVICE_H5_TOKEN = "cusc.rnr.service.h5.token";
/**
* 自动审核相关服务的配置项父类路径
*/
public static final String CONFIG_PATH_EXECUTOR = "cusc.rnr.executor";
public static final String CONFIG_PATH_ID_CMPR_SIMILAR = "cusc.rnr.thirdparty.compareSimilar";
/**
* 自动审核相关服务的特殊错误码配置项父类路径
*/
public static final String CONFIG_PATH_EXECUTOR_ERRORCODE = "cusc.rnr.errorcode";
public static final String MAIL_USERNAME_PATH = "cusc.rnr.mail.username";
/**
* 邮件密码
*/
public static final String MAIL_PASSWORD_PATH = "cusc.rnr.mail.password";
/**
* 邮件主机地址
*/
public static final String MAIL_HOST_PATH = "cusc.rnr.mail.host";
/**
* 邮件主机端口
*/
public static final String MAIL_PORT_PATH = "cusc.rnr.mail.port";
/**
* 邮件主题
*/
public static final String MAIL_PORT_SUBJECT = "cusc.rnr.mail.subject";
/**
* 特斯拉配置
*/
public static final String TESLA_CFG_PATH = "cusc.rnr.import.tesla";
/**
* 推送物联网时间路径
*/
public static final String CONFIG_PATH_IOT_FSTP_TIME = "cusc.rnr.iot.fstptime";
/**
* 推送物联网忽略的省份卡品牌
*/
public static final String CONFIG_PATH_IOT_PROVINCE_SIM = "cusc.rnr.iot.provinceSim";
/**
* 推送物联网多线程数批量查询数据
*/
public static final String CONFIG_PATH_SERVICE_LIMIT_NUM_NJWLW = "cusc.rnr.iot.limitNum";
/**
* save rnr_customer_info 到rnr_customer_addr_extra limit size
*/
public static final String CONFIG_PATH_SERVICE_LIMIT_SIZE_TO_ADDR_EXTRA = "cusc.rnr.idcard.saveLimitSize";
/**
* save rnr_customer_info 到rnr_customer_addr_extra limit size
*/
public static final String CONFIG_PATH_SERVICE_LIMIT_SIZE_OCR_IDENTIFY = "cusc.rnr.idcard.ocrLimitSize";
/**
* nr_customer_addr_extra 处理线程
*/
public static final String CONFIG_PATH_SERVIE_IDCARD_OCR_IDENTIFY_THREAD_NUM = "cusc.rnr.idcard.processThreadNum";
/**
* 推送物联网多线程数批量查询数据
*/
public static final String CONFIG_PATH_SERVICE_LIMIT_NUM_EXIST_LIMIT = "cusc.rnr.iot.existLimitNum";
/**
* 推送物联网默认用户照片信息ID
*/
public static final String CONFIG_PATH_SERVICE_CUSTOMER_INFO_ID = "cusc.rnr.iot.userId";
/**
* 推送物联网多线程数
*/
public static final String CONFIG_PATH_IOT_THREAD_NUM = "cusc.rnr.iot.threadNum";
/**
* 推送物联网多线程数(存量)
*/
public static final String CONFIG_PATH_IOT_EXIST_THREAD_NUM = "cusc.rnr.iot.existThreadNum";
/**
* 推送物联网失败次数配置
*/
public static final String CONFIG_PATH_IOT_FAIL_COUNT = "cusc.rnr.iot.failCount";
/**
* 短信发送状态 成功
*/
public static final int SMS_SEND_SUCCESS = 0;
/**
* 国政通信息头
*/
public static final String GZT_PREFIX = "国政通:";
/**
* 名下手机卡限制数
*/
public static final int SIM_NUM = 5;
/**
* (新)名下手机卡限制数
*/
public static final int SIM_NUM_NEW = 10;
/**
* 南京物联网定时任务获取实时数据limit数量
*/
public static final int LIMIT_NUM_NJWLW = 1000;
/**
* 南京物联网定时任务获取实时数据limit数量
*/
public static final int CUSTOMER_ADDR_LIMIT_SIZE = 1000;
/**
* 推送南京物联网默认用户ID
*/
public static final long DEFAULT_USER_ID = 27480991L;
/**
* 南京物联网定时任务获取线程数
*/
public static final int LIMIT_NUM_THREAD = 5;
/**
* 使用mock
*/
public static final String USER_MOCK = "1";
/**
* 不使用token检查
*/
public static final String H5_NOT_TOKEN_CHECK = "0";
/**
* 使用加密
*/
public static final String IS_ENCRYPTION = "1";
/**
* 不使用加密
*/
public static final String IS_NOT_ENCRYPTIONRSP = "0";
/**
* 是否检查手机号
*/
public static final String IS_CHECK_PHONE = "1";
/**
* 腾讯H5活体签名不验证
*/
public static final String NOT_SIGN_CHECK = "0";
/**
* 身份证
*/
public static final String IDCARD = "IDCARD";
/**
* 同步失败原因
*/
public static final String SYNC_ERROR_VIN_ILLEGALITY = "VIN不合法";
public static final String SYNC_ERROR_ICCID_ILLEGALITY = "ICCID不合法";
public static final String SYNC_ERROR_BRAND_ILLEGALITY = "品牌不合法";
public static final String SYNC_ERROR_HCJT_MODEL_NOT_NULL = "车型不能为空";
public static final String SYNC_ERROR_HCJT_CARDTYPE_NOT_NULL = "卡类型不能为空";
public static final String SYNC_ERROR_REPEAT_DATA = "重复数据";
public static final String SYNC_ERROR_VIN_EXIST = "该VIN已存在";
public static final String SYNC_ERROR_ICCID_EXIST = "该ICCID已存在";
public static final String SYNC_ERROR_ICCID_HAS_REGISTER = "该ICCID已实名认证过,无法更新车卡关系";
public static final String SYNC_ERROR_VIN_HAS_REGISTER = "该VIN已实名认证过,无法更新车卡关系";
public static final String SYNC_ERROR_VIN_BIND_OTHER_ICCID = "该VIN已绑定其他卡";
public static final String SYNC_ERROR_ICCID_BIND_OTHER_VIN = "该ICCID已绑定其他车";
public static final String SYNC_UNSUPPORTED_CHANGETBOX = "车卡同步不支持车机更换";
public static final String SYNC_ERROR_CHANGANAUCHANXNY_SERIES_NOT_NULL = "车系不能为空";
public static final String SYNC_ERROR_CHANGANAUCHANXNY_SERIES_ILLEGALITY = "车系数据不合法";
public static final String SYNC_ERROR_CHANGANAUCHANXNY_MODEL_NOT_NULL = "车型不能为空";
public static final String SYNC_ERROR_CHANGANAUCHANXNY_MODEL_ILLEGALITY = "车型数据不合法";
/**
* 戴姆勒全量报表压缩包名
*/
public static final String BENZ_FULL_REPORT_NAME = "fullReport.zip";
public static final String BENZ_FULL_REPORT_LOCK = "BENZ_FULL_REPORT_LOCK";
public static final String BENZ_FULL_REPORT_URL_KEY = "BENZ_FULL_REPORT_URL_KEY";
/**
* 卡类型
*/
public static final String CARD_TYPE_ABOX = "A-box";
public static final String CARD_TYPE_TBOX = "T-box";
public static final String CARD_TYPE_BAIDU = "baidu-card";
public static final String CARD_TYPE_FORD = "ford-card";
/**
* 默认工单审核时间
*/
public static final String DEFAULT_AUDIT_TIME = "4";
/**
* 30天毫秒
*/
public static final long ONE_MONTH = 2592000000L;
/**
* 工单自动分配配置路径
*/
public static final String AUTO_ALLOCATE_CONFIG_PATH = "cusc.rnr.admin.autoAllocateConfig";
/**
* 工单超时预警基础信息配置路径
*/
public static final String TIMEOUT_WARNING_BASE_CONFIG_PATH = "cusc.rnr.admin.timeoutWarning.base";
/**
* 工单超时预警配置父路径
*/
public static final String TIMEOUT_WARNING_PARENT_PATH = "cusc.rnr.admin.timeoutWarning";
/**
* 工单超时预警配置路径
*/
public static final String TIMEOUT_WARNING_CONFIG_PATH = "cusc.rnr.admin.timeoutWarning.brand";
/**
* 操作员队列redis key
*/
public static final String OPERATOR_QUEEU_REDIS_KEY = "cusc-rnr:ORDER_AUTO_ALLOCATE:OPERATOR_QUEUE";
/**
* 操作员队列索引redis key
*/
public static final String OPERATOR_INDEX_REDIS_KEY = "cusc-rnr:ORDER_AUTO_ALLOCATE:OPERATOR_INDEX";
/**
* 通过URL重试日志的redis key
*/
public static final String URL_RETRY_LOG_NAMESPACE = "RETRY_LOG:";
/**
* 第三方信息,remark字段中jasper信息所需字段名
*/
public static final String TP_REMARK_JASPER_EVENTPLAN_ACTIVE = "activeEventPlan";
public static final String TP_REMARK_JASPER_EVENTPLAN_DEACTIVE = "deactiveEventPlan";
public static final String TP_REMARK_JASPER_NETWORKACCESS_ACTIVE = "activeNetworkAccess";
public static final String TP_REMARK_JASPER_NETWORKACCESS_DEACTIVE = "deactiveNetworkAccess";
public static final String TP_REMARK_JASPER_NETWORKACCESS_ACTIVE_UNBIND = "activeNetworkAccessUnBind";
public static final String TP_REMARK_JASPER_NETWORKACCESS_DEACTIVE_UNBIND = "deactiveNetworkAccessUnBind";
public static final String TP_REMARK_JASPER_CHANGETYPE_ACTIVE = "activeChangeType";
public static final String TP_REMARK_JASPER_CHANGETYPE_DEACTIVE = "deactiveChangeType";
public static final String TP_REMARK_JASPER_TARGETVALUE_ACTIVE = "activeTargetValue";
public static final String TP_REMARK_JASPER_TARGETVALUE_DEACTIVE = "deactiveTargetValue";
/**
* 第三方日志表名
*/
public static final String TABLE_NAME_GZT = "rnr_thirdparty_gzt_log";
public static final String TABLE_NAME_AOP = "rnr_thirdparty_aop_log";
public static final String TABLE_NAME_OCR = "rnr_thirdparty_ocr_log";
public static final String TABLE_NAME_ALL = "rnr_thirdparty_log";
/**
* 车机更换时的特殊key值
*/
public static final String SPECIALKEY_BIND = "CH_TBOX_BIND";
public static final String SPECIALKEY_UNBIND = "CH_TBOX_UNBIND";
/**
* 实名制平台对应的接口编码
*/
public static final String IF_00 = "IF00";
public static final String IF_01 = "IF01";
public static final String IF_02 = "IF02";
public static final String IF_03 = "IF03";
public static final String IF_04 = "IF04";
public static final String IF_05 = "IF05";
public static final String IF_06 = "IF06";
public static final String IF_07 = "IF07";
public static final String IF_08 = "IF08";
public static final String IF_09 = "IF09";
public static final String IF_10 = "IF10";
public static final String IF_11 = "IF11";
public static final String IF_12 = "IF12";
public static final String IF_13 = "IF13";
public static final String IF_14 = "IF14";
public static final String IF_15 = "IF15";
public static final String IF_16 = "IF16";
public static final String IF_17 = "IF17";
/*
*戴姆勒卡激活去激活标识
*/
public static final String DAIMLER_ACTIVE = "active";
public static final String DAIMLER_DEACTIVE = "deactice";
public static final int DAIMLER_JASPER_FAIL_TIMES = 44;
public static final String DAIMLER_RTM = "RTM";
/*
*活体检测证件类型
*/
public static final String V_LIVE_IDENTITY_CARD = "3";
/**
* 品牌迁移校验
*/
public static final String BRAND_CHANGE_CONFIG_PATH = "cusc.rnr.admin.datatranser";
public static final String BRANDCHECK_SUCCESS = "校验通过";
public static final String BRANDCHECK_FINAL_SUCCESS = "迁移成功";
public static final String BRANDCHECK_FINAL_FAIL = "迁移失败";
public static final String BRANDCHECK_ERROR_VIN = "VIN不合法";
public static final String BRANDCHECK_ERROR_OLDICCID = "原始ICCID不合法";
public static final String BRANDCHECK_ERROR_OLDBRADN = "原始品牌不合法";
public static final String BRANDCHECK_ERROR_NOMATE = "数据不匹配";
public static final String BRANDCHECK_ERROR_BRAND = "品牌更换规则不存在";
public static final String BRANDCHECK_ERROR_NEWBRADN = "新品牌不合法";
public static final String BRANDCHECK_ERROR_VEHICLE = "重复数据";
public static final String BRANDCHECK_ERROR_NEWICCID = "新ICCID存在车卡关系";
public static final String BRANDCHECK_ERROR_NEWICCID_RULES = "新ICCID不合法";
public static final String BRANDCHECK_ERROR_NOT_EXIST = "数据不存在";
public static final String BRANDCHECK_ERROR_WAIT_CHECK = "数据认证中";
/**
* 腾讯活体认证类型
*/
public static final String RNR_WAIT_CHECK = "0";//活体认证中
public static final String RNR_SUCC = "1";//活体认证成功
public static final String RNR_FAIL = "2";//活体认证失败
/**
* 腾讯活体类型
*/
public static final String RNR_TX_LIVE_TYPE_H5 = "H5";
public static final String RNR_TX_LIVE_TYPE_WXH5 = "WH5";
/**
* 实名制平台对应的V数据同步字典数据类型
*/
public static final String VENUS_LOOKUP_DATA_LIVETYPE = "VenusDataSyncLiveType";
public static final String VENUS_LOOKUP_DATA_CHANNELTYPE = "VenusDataSyncChananelType";
/**
* token有效时长(单位:秒)
*/
public static final int TOKEN_EXPIRED_TIME = 60 * 60 * 24 * 7;
/**
* token失效时长(单位:毫秒)
*/
public static final long TOKEN_EXPIRED_TIME_MILL = TOKEN_EXPIRED_TIME * 1000L;
public static final int CONFIG_IOT_FAIL_COUNT = 5;
private static final String REDIS_NAMESPACE = "cusc-rnr-h5:";
public static final String USER_TOKEN = REDIS_NAMESPACE + "user-token:";
public static final String TOKEN_USER = REDIS_NAMESPACE + "token-user:";
/**
* 主键策略 用户信息KEY模式
*/
public static final String USER_INFO = REDIS_NAMESPACE + "USERINFO:";
public static final String TENCENT_SDK_LIVE_SUCCESS_CODE="0";
/**
* 远程服务路径
*/
public static final String COUNT_USER_BY_MOBILE = "http://cusc-rbac-api/userInfo/countUserByMobile?mobile=";
/**
* AES解密k-v
*/
public static final String AES_DECRYPT_KEY = "Qls$19Tsl9132Rsl";
public static final String AES_DECRYPT_VALUE = "sldeR737&oshfE1w";
}
package com.cusc.nirvana.user.rnr.common.constants;
/**
* <p>
* rnr es常量类
* </p>
*
* @author yuy336
* @since 2021-10-14
*/
public class RnrEsConstant {
/**
* 实名信息索引名称
*/
public final static String INDEX_RNR_INFO = "rnr_info";
/**
* 实名公司信息索引名称
*/
public final static String INDEX_RNR_COMPANY_INFO = "rnr_company_info";
/**
* 实名卡信息索引名称
*/
public final static String INDEX_RNR_CARD_INFO = "rnr_card_info";
/**
* 实名图片信息索引名称
*/
public final static String INDEX_RNR_IMAGE = "rnr_image";
/**
* 实名卡信息索引名称
*/
public final static String INDEX_rnr_liaison_info = "rnr_liaison_info";
}
package com.cusc.nirvana.user.rnr.common.constants;
public enum SystemCode {
SYS_CODE_ALL("ALL", "全部"),
SYS_CODE_OTHER("OTHER", "其他"),
// 短信,邮件
SYS_CODE_ZJYSMS2("ZJYSMS2", "中聚元2"),
SYS_CODE_BFSMS("BFSMS", "北分短信中心"),
// 短信,邮件
SYS_CODE_MAIL("MAIL", "邮件"),
// 查询服务
SYS_CODE_BMW_OMC_QRY("BMW_OMC_QRY", "宝马OMC反查"),
SYS_CODE_CHERY_QRY("CHERY_QRY", "奇瑞反查"),
SYS_CODE_DAIVB("DAIVB", "戴姆勒"),
SYS_CODE_DAIVB_TOKEN("DAIVB_TOKEN", "戴姆勒Token"),
SYS_CODE_TSP_SIM_INFO("TSP_SIM_INFO", "TSP卡查询"),
// 实名相关服务
SYS_CODE_AOP("AOP", "人脸识别"),
SYS_CODE_AOP_NP("AOPNP", "自然人人脸识别"),
SYS_CODE_GZT("GZT", "国政通"),
SYS_CODE_GZT_NP("GZTNP", "自然人身份认证"),
SYS_CODE_GZT2("GZT2", "国政通2"),
SYS_CODE_OCR("OCR", "图像识别"),
SYS_CODE_OCR_NP("OCRNP", "自然人图像识别"),
SYS_CODE_FMP_NP("FMPNP", "自然人活体校验"),
SYS_CODE_IDENTITY_COMPARE_NP("IdCmprNP", "自然人人证比对"),
// 查询TOKEN服务
SYS_CODE_TBOSS_TOKEN("TBOSS_TOKEN", "T服营帐token"),
SYS_CODE_ONLINESTORE_TOKEN("ONLINESTORE_TOKEN", "在线商店token"),
SYS_CODE_FLOWCTRL_TOKEN("FLOWCTRL_TOKEN", "流控平台token"),
SYS_CODE_DPCA_TOKEN("DPCA_TOKEN", "神龙token"),
SYS_CODE_CHANGAN_TOKEN("CHANGAN_TOKEN", "长安token"),
SYS_CODE_JINKANGHW_TOKEN("JINKANGHW_TOKEN", "金康华为token"),
SYS_CODE_HCJT_TOKEN("HCJT_TOKEN", "华晨TBOXtoken"),
SYS_CODE_FAWMAZDA_TOKEN("FAWMAZDA_TOKEN", "一汽马自达token"),
SYS_CODE_FCA_TOKEN("FCA_TOKEN", "菲亚特克莱斯勒token"),
// 回调服务
SYS_CODE_JASPER("JASPER", "M2M"),
SYS_CODE_TBOSS("TBOSS", "T服营帐"),
SYS_CODE_ONLINESTORE("ONLINESTORE", "在线商店"),
SYS_CODE_FLOWCTRL("FLOWCTRL", "流控平台"),
// 奔驰的在线商店地址换为通用地址后,使用此系统code为好
SYS_CODE_ONLINESTORE_GENERIC("ONLINESTORE_GENERIC", "在线商店通用"),
SYS_CODE_DSSP("DSSP", "长安谛艾仕"),
SYS_CODE_DPCA("DPCA", "神龙(斑马)"),
SYS_CODE_CHANGAN("CHANGAN", "长安"),
SYS_CODE_JINKANGHW("JINKANGHW_BIND_NOTIFY", "金康华为"),
SYS_CODE_HCJT_ABOX("HCJT_ABOX", "华晨ABOX"),
SYS_CODE_HCJT_TBOX("HCJT_TBOX", "华晨TBOX"),
SYS_CODE_AMSP("AMSP", "后装平台"),
SYS_CODE_AMSP_ICCID("AMSP_ICCID", "后装校验ICCID"),
SYS_CODE_AMSP_TSP("AMSP_TSP", "车厂TSP"),
SYS_CODE_ZNA_TSP("ZNA_TSP", "郑州日产TSP"),
SYS_CODE_AMSP_OM_BIND("AMSPOM_BIND_NOTIFY", "AMSP运管绑定回调"),
SYS_CODE_AMSP_OM_UNBIND("AMSPOM_UNBIND_NOTIFY", "AMSP运管解绑回调"),
SYS_CODE_AMSP_OM_TBOXCHANGE("AMSPOM_TBOXCHANGE_NOTIFY", "AMSP运管车机更换回调"),
SYS_CODE_GENERIC_BIND("GENERIC_BIND_NOTIFY", "通用绑定回调"),
SYS_CODE_SIMPLE_BIND("SIMPLE_BIND_NOTIFY", "简单通用绑定回调"),
SYS_CODE_GENERIC_UNBIND("GENERIC_UNBIND_NOTIFY", "通用解绑回调"),
SYS_CODE_GENERIC_TBOXCHANGE("GENERIC_TBOXCHANGE_NOTIFY", "通用车机更换回调"),
SYS_CODE_VENUS_BIND("VENUS_BIND_NOTIFY", "VENUS绑定数据同步"),
SYS_CODE_VENUS_UNBIND("VENUS_UNBIND_NOTIFY", "VENUS解绑数据同步"),
SYS_CODE_VENUS_TBOXCHANGE("VENUS_TBOXCHANGE_NOTIFY", "VENUS车机更换数据同步"),
SYS_CODE_VENUS_CUSTOMERCHANGE("VENUS_CUSTOMERCHANGE_NOTIFY", "VENUS用户更换数据同步"),
SYS_CODE_PORSCHE("PORSCHE", "保时捷"),
SYS_CODE_FAWTSP("FAWTSP", "一汽"),
SYS_CODE_FAWJFTSP("FAWJFTSP", "一汽解放"),
SYS_CODE_LEOPAARD("LEOPAARD", "猎豹"),
SYS_CODE_BMW_OMC("BMW_OMC", "宝马OMC"),
SYS_CODE_BMW_OMC_BATCH("BMW_OMC_BATCH", "宝马OMC-BATCH"),
SYS_CODE_BJEVTSP("BJEVTSP", "北汽新能源"),
SYS_CODE_FORD_CARD("FORD_CARD", "福特卡"),
SYS_CODE_BAIDU_CARD("BAIDU_CARD", "百度卡"),
SYS_CODE_FORD_TOKEN("FORD_TOKEN", "福特token"),
SYS_CODE_SH_CBSS("SH_CBSS", "上海CBSS"),
SYS_CODE_ZJ_CBSS("ZJ_CBSS", "浙江CBSS"),
SYS_CODE_GEELYXNY("GEELY_XNY", "吉利新能源"),
SYS_CODE_GX_CBSS("GX_CBSS", "广西CBSS"),
SYS_CODE_TRAUM("TRAUM", "君马"),
SYS_CODE_CHERY("CHERY", "奇瑞"),
SYS_CODE_FCATSP("FCATSP", "菲亚特克莱斯勒"),
SYS_CODE_FAWMAZDA("FAWMAZDA", "一汽马自达"),
SYS_CODE_ECS("ECS", "奔驰"),
SYS_CODE_VENUS("VENUS", "VENUS"),
SYS_CODE_VENUS_LIVE("VENUSLIVE", "Venus活体检测"),
SYS_CODE_HONDA_BIND("HONDA_BIND_NOTIFY", "本田绑定回调"),
SYS_CODE_HONDA_UNBIND("HONDA_UNBIND_NOTIFY", "本田解绑回调"),
SYS_CODE_IOT("IOT", "IOT南京物联网"),
SYS_CODE_TENCENT_LIVE("TENCENTLIVE", "腾讯活体通用"),
SYS_CODE_TENCENT_LIVE_TOKEN("TENCENTLIVE_TOKEN", "腾讯活体TOKEN"),
SYS_CODE_TENCENT_LIVE_SIGN_TICKET("TENCENTLIVE_SIGN_TICKET", "腾讯活体SIGNTICKET"),
SYS_CODE_TENCENT_LIVE_NONCE_TICKET("TENCENTLIVE_NONCE_TICKET", "腾讯活体NONCETICKET"),
SYS_CODE_TENCENT_LIVE_H5LOGIN("TENCENTLIVE_H5LOGIN", "腾讯活体人脸核身H5登录"),
SYS_CODE_TENCENT_LIVE_CHECK_RESULT("TENCENTLIVEH5_CHECK_RESULT", "腾讯活体检测结果页"),
SYS_CODE_RNR_LIVE_H5LOGIN("RNR_H5_LIVELOGIN", "实名制启动H5活体"),
SYS_CODE_RNR_LIVE_WH5_DETECTAUTH("RNR_WH5_DETECTAUTH", "实名制活体微信普通H5"),
SYS_CODE_TENCENT_LIVE_API("TENCENTLIVEAPI", "腾讯活体API接口通用"),
SYS_CODE_TENCENT_SDK_LIVE("TENCENTSDKLIVE", "腾讯sdk活体通用"),
SYS_CODE_TENCENT_SDK_LIVE_TOKEN("TENCENTSDKLIVE_TOKEN", "腾讯SDK活体TOKEN"),
SYS_CODE_TENCENT_SDK_LIVE_SIGN_TICKET("TENCENTSDKLIVE_SIGN_TICKET", "腾讯SDK活体SIGNTICKET"),
SYS_CODE_TENCENT_SDK_LIVE_NONCE_TICKET("TENCENTSDKLIVE_NONCE_TICKET", "腾讯SDK活体NONCETICKET"),;
private String sysCode;
private String sysName;
private SystemCode(String sysCode, String sysName) {
this.sysCode = sysCode;
this.sysName = sysName;
}
public static SystemCode getEnumByCode(String sysCode) {
for (SystemCode sys : SystemCode.values()) {
if (sys.getSysCode().equals(sysCode)) {
return sys;
}
}
return null;
}
public String getSysCode() {
return sysCode;
}
public String getSysName() {
return sysName;
}
}
package com.cusc.nirvana.user.rnr.common.dto;
import lombok.Data;
import java.io.*;
/**
* Description: 基础认证请求DTO
* <br />
* CreateDate 2022-02-14 15:28
*
* @author yuy336
**/
@Data
public class BaseAuthenticationReqDTO implements Serializable{
private static final long serialVersionUID = 1L;
/**
* 业务id
*/
private String bizUuid;
/**
* 流水号
*/
private String serialNumber;
/**
* 认证方式编号
*/
private String authWayNo;
/**
* 操作人
*/
private String operator;
}
package com.cusc.nirvana.user.rnr.common.dto;
import lombok.Data;
import java.io.*;
/**
* Description: 实名消息队列DTO
* <br />
* CreateDate 2022-03-08 13:47
*
* @author yuy336
**/
@Data
public class RnrMqMessageDTO<T> implements Serializable {
/**
* 投递的消息内容
*/
private T data;
/**
* 延迟的总时间,秒
*/
private Integer delayTime;
/**
* 剩余延迟的时间,秒。初始化与delayTime一致
*/
private Integer surplusTime;
/**
* 当前投递的次数,第一次投递为1
*/
private Integer count;
/**
* 是否是延迟消息
*/
private boolean delayMsg;
/**
* 创建延迟消息
*
* @param delayTime
* @param data
* @param <T>
* @return
*/
public static <T> RnrMqMessageDTO<T> createDelayMsg(String delayTime, T data) {
return createDelayMsg(Integer.parseInt(delayTime), data);
}
/**
* 创建延迟消息
*
* @param delayTime
* @param data
* @param <T>
* @return
*/
public static <T> RnrMqMessageDTO<T> createDelayMsg(int delayTime, T data) {
RnrMqMessageDTO<T> ret = new RnrMqMessageDTO<>();
ret.setDelayMsg(true);
ret.setData(data);
ret.setCount(1);
ret.setDelayTime(delayTime);
ret.setSurplusTime(ret.getDelayTime());
return ret;
}
/**
* 创建正常消息
*
* @param data
* @param <T>
* @return
*/
public static <T> RnrMqMessageDTO<T> createMsg(T data) {
RnrMqMessageDTO<T> ret = new RnrMqMessageDTO<>();
ret.setDelayMsg(false);
ret.setData(data);
ret.setCount(1);
ret.setDelayTime(0);
ret.setSurplusTime(0);
return ret;
}
}
package com.cusc.nirvana.user.rnr.common.handler;
import com.cusc.nirvana.common.result.Response;
import com.cusc.nirvana.user.exception.CuscUserException;
import com.cusc.nirvana.user.rnr.common.constants.ResponseCode;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.http.HttpStatus;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindException;
import org.springframework.web.HttpRequestMethodNotSupportedException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.util.Set;
/**
* Description: 异常处理
* <br />
* CreateDate 2021-11-10 10:00
*
* @author yuyi
**/
@ControllerAdvice
@Order(0)
public class RnrMgExceptionHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(RnrMgExceptionHandler.class);
@ExceptionHandler(CuscUserException.class)
@ResponseBody
@ResponseStatus(HttpStatus.OK)
public Response<?> cuscUserHandler(CuscUserException e) {
LOGGER.warn("cuscRnrHandler Handler code: {}, msg: {}", e.getCode(), e.getMessage());
return Response.createError(e.getMessage(), StringUtils.isBlank(e.getCode()) ? ResponseCode.SYSTEM_ERROR.getCode() : Integer.parseInt(e.getCode()));
}
@ExceptionHandler(Exception.class)
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Response validExceptionHandle(Exception ex) {
String message;
if (ex instanceof BindException) {
BindException bingException = (BindException) ex;
message = bingException.getAllErrors().get(0).getDefaultMessage();
} else if (ex instanceof HttpMessageNotReadableException) {
HttpMessageNotReadableException notReadableException = (HttpMessageNotReadableException) ex;
message = notReadableException.getMessage();
} else if (ex instanceof ConstraintViolationException) {
//参数校验异常,controller层直接参数校验(单个字段校验)
ConstraintViolationException validationException = (ConstraintViolationException) ex;
Set<ConstraintViolation<?>> violationErrors = validationException.getConstraintViolations();
ConstraintViolation<?> error = violationErrors.iterator().next();
message = error.getMessage();
} else if (ex instanceof HttpRequestMethodNotSupportedException) {
HttpRequestMethodNotSupportedException methodNotSupportedException = (HttpRequestMethodNotSupportedException) ex;
message = methodNotSupportedException.getMessage();
} else {
message = "系统繁忙,请稍后重试!";
}
LOGGER.error(message, ex);
return Response.createError(message);
}
}
package com.cusc.nirvana.user.rnr.common.po;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import java.io.*;
import java.util.Date;
/**
* <p>
* rnr的PO基类
* </p>
*
* @author yuyi
* @since 2021-10-21
*/
@Data
public class BaseRnrPO implements Serializable {
private static final long serialVersionUID = 1L;
/**
* 主键
*/
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 逻辑删除(0-未删除,1-已删除)
*/
@TableField("is_delete")
private Integer isDelete;
/**
* 创建时间
*/
@TableField(value = "create_time", insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time", insertStrategy = FieldStrategy.NEVER, updateStrategy = FieldStrategy.NEVER)
private Date updateTime;
/**
* 创建人
*/
@TableField(value = "creator", updateStrategy = FieldStrategy.NEVER)
private String creator;
}
package com.cusc.nirvana.user.rnr.mg;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.ComponentScan;
/**
* Description: ciam启动
* <br />
* CreateDate 2021-11-09 13:38:16
*
* @author yuyi
**/
@Slf4j
@SpringBootApplication
@MapperScan({"com.cusc.nirvana.**.dao"})
@ComponentScan({"com.cusc", "com.cache.*"})
@EnableDiscoveryClient
public class LocalRnrMgApplication {
public static void main(String[] args) {
try {
ApplicationContext context = SpringApplication.run(LocalRnrMgApplication.class, args);
String serverPort = context.getEnvironment().getProperty("server.port");
log.info("启动成功! Swagger2: http://127.0.0.1:" + serverPort + "/swagger-ui.html");
} catch (Exception ex) {
log.error("", ex);
}
}
}
package com.cusc.nirvana.user.rnr.mg.constants;
import com.cusc.nirvana.user.util.crypt.DataCryptService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author stayAnd
* @date 2022/5/16
*/
@Component
public class CryptKeyHelper {
private static DataCryptService cryptService;
@Autowired
public void setDataCryptService(DataCryptService cryptService){
CryptKeyHelper.cryptService = cryptService;
}
public static List<String> encrypt(List<String> list){
if (CollectionUtils.isEmpty(list)) {
return Collections.emptyList();
}
List<String> collect = list.stream().map(CryptKeyHelper::encrypt).collect(Collectors.toList());
return collect;
}
public static String encrypt(String s){
return cryptService.encryptData(s);
}
public static String decrypt(String s){
return cryptService.decryptData(s);
}
}
package com.cusc.nirvana.user.rnr.mg.constants;
import com.cusc.nirvana.user.exception.CuscUserException;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.Arrays;
@AllArgsConstructor
@Getter
public enum FIleSystemType {
MINIO("minio", "MINIO"),
OSS("oss", "OSS"),
;
private String code;
private String descprition;
public static FIleSystemType getBytype(String code) {
return Arrays.stream(FIleSystemType.values())
.filter(businessDetail -> businessDetail.getCode().equals(code))
.findFirst()
.orElseThrow(() -> new CuscUserException("", "未查询到对应的文件系统类型:" + code));
}
}
package com.cusc.nirvana.user.rnr.mg.constants;
/**
* Description: 组织业务类型枚举
* <br />
* CreateDate 2022-05-19 19:43:58
*
* @author yuyi
**/
public enum OrganBizzTypeEnum {
/**
* 车厂
*/
CAR_FACTORY(1, "车厂"),
/**
* 经销商
*/
DISTRIBUTOR(2, "经销商"),
/**
* 车企子组织
*/
CAR_SUB_ORGAN(3, "车企子组织");
private int code;
private String name;
OrganBizzTypeEnum(int code, String name) {
this.code = code;
this.name = name;
}
public static OrganBizzTypeEnum getEnumByCode(int code) {
for (OrganBizzTypeEnum e : OrganBizzTypeEnum.values()) {
if (e.getCode() == code) {
return e;
}
}
return null;
}
public int getCode() {
return code;
}
public String getName() {
return name;
}
}
package com.cusc.nirvana.user.rnr.mg.constants;
public enum PassCodeEnum {
SUCCESS(0, "人工审核通过"),
AUTO_SUCC(0, "自动审核通过"),
INFO_INCOMPLETE(1, "证件信息不齐"),
INFO_ATYPISM(2, "证件信息不一致"),
INFO_NOT_FOUND(3, "查不到证件信息"),
PIC_FORMAT_ERROR(4, "照片格式不正确"),
PIC_BLURRING(5, "照片不清晰"),
OTHER_REASON(6, "其他原因"),
PIC_NOT_ACCESS(7, "照片识别未超过阈值!"),
TIME_OUT_FAIL(8, "超过24小时未审核"),
TIME_OUT_DEACTIVE_FAIL(8, "未审核通过,超过24小时去激活"),
HAS_FALLBACK(9, "已回退"),
CLOSED(10, "关闭审核"),
UNBIND_SUCC(11, "解绑成功"),
UNBIND_FAIL(12, "解绑失败"),
VENUS_FAIL_13(13,"身份证人面像识别失败"),
VENUS_FAIL_14(14,"身份证国徽像识别失败"),
VENUS_FAIL_15(15,"手持身份证照片识别错误"),
VENUS_FAIL_16(16,"身份证过期"),
VENUS_FAIL_17(17,"人脸比对未通过"),
VENUS_FAIL_18(18,"实名认证失败"),
VENUS_FAIL_19(19,"企业信息审核未通过"),
VENUS_FAIL_20(20,"授权书信息有误");
private Integer code;
private String comment;
PassCodeEnum(Integer code, String comment) {
this.code = code;
this.comment = comment;
}
public Integer getCode() {
return code;
}
public String getComment() {
return comment;
}
public static PassCodeEnum get(Integer code) {
if (code == 0) {
return SUCCESS;
}
PassCodeEnum[] reasons = PassCodeEnum.values();
for (int i = 0; i < reasons.length; i++) {
if (reasons[i].getCode().equals(code)) {
return reasons[i];
}
}
return null;
}
}
package com.cusc.nirvana.user.rnr.mg.constants;
/**
* @author stayAnd
* @date 2022/4/7
*/
public class ProjectConstant {
/**
* 项目业务 服务的url
*/
public static final String PROJECT_SERVICE_URL = "http://project-service";
}
package com.cusc.nirvana.user.rnr.mg.constants;
import java.util.Arrays;
import java.util.List;
/**
* Description: 实名常量类
* <br />
* CreateDate 2022-05-04 15:49:40
*
* @author yuyi
**/
public class RnrMgConstants {
//自然人证件正面文件常量
public final static List<Integer> CERT_FRONT_FILE_TYPE_LIST = Arrays.asList(1, 8, 10, 12, 14, 16, 18, 20, 22);
//自然人证件反面文件常量
public final static List<Integer> CERT_BACK_FILE_TYPE_LIST = Arrays.asList(2, 9, 11, 13, 15, 17, 19, 21, 23);
//租户和组织对应的密钥
public static final String MG_SECRET_KEY_TENANT_ORGAN = "CT:RNR:SECRET_KEY:";
//租户和组织对应的密钥 过期时间 秒
public static final int MG_SECRET_KEY_TENANT_ORGAN_EXPIRE = 28800;
}
package com.cusc.nirvana.user.rnr.mg.constants;
/**
* <p>
* rnr es常量类
* </p>
*
* @author yuy336
* @since 2021-10-14
*/
public class RnrMgEsConstant {
/**
* 用户实名信息索引名称
*/
public final static String INDEX_CIAM_USER_RNR_INFO = "";
}
package com.cusc.nirvana.user.rnr.mg.constants;
/**
* <p>
* rnr mq常量类
* </p>
*
* @author yuy336
* @since 2021-10-14
*/
public class RnrMgMqConstant {
/**
* 解绑、绑定、换绑
*/
public static final String RNR_CARD_OPERATION_TOPIC = "cusc-rnr-card-operation-topic";
/**
* 解绑、绑定、换绑group
*/
public static final String RNR_CARD_OPERATION_GROUP = "cusc-rnr-card-operation-group";
/**
* 一车多卡、车主解绑、换卡 topic
*/
public static final String RNR_CARD_OPERATION_DELAY_TOPIC = "cusc-rnr-card-operation-delay-topic";
/**
* 一车多卡、车主解绑、换卡 group
*/
public static final String RNR_CARD_OPERATION_DELAY_GROUP = "cusc-rnr-card-operation-delay-group";
/**
* rocketMq
*/
public static final String ROCKETMQ = "rocketMq";
/**
* kafka
*/
public static final String KAFKA = "kafka";
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment