记得上下班打卡 | git大法好,push需谨慎

Commit ffbdc6a2 authored by jiangxiulong's avatar jiangxiulong

正在 1.1 增加校验

parent b484cc29
......@@ -9,8 +9,12 @@ import com.liquidnet.client.admin.common.core.page.TableDataInfo;
import com.liquidnet.client.admin.common.enums.BannersTargetType;
import com.liquidnet.client.admin.common.enums.BusinessType;
import com.liquidnet.client.admin.common.utils.ShiroUtils;
import com.liquidnet.client.admin.zhengzai.adam.service.impl.AdamIdCodeService;
import com.liquidnet.client.admin.zhengzai.kylin.service.IToolService;
import com.liquidnet.commons.lang.constant.LnsRegex;
import com.liquidnet.commons.lang.util.IDGenerator;
import com.liquidnet.service.base.ErrorMapping;
import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.kylin.dao.OrderTicketsListDao;
import com.liquidnet.service.kylin.dao.PerformanceSponsorDao;
import com.liquidnet.service.kylin.dto.param.admin.EntitiesEditParam;
......@@ -31,6 +35,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.List;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
......@@ -59,6 +64,9 @@ public class KylinOrderTicketsController extends BaseController {
@Autowired
private IToolService toolService;
@Autowired
private AdamIdCodeService adamIdCodeService;
@Autowired
private KylinOrderTicketEntitiesMapper kylinOrderTicketEntitiesMapper;
......@@ -126,7 +134,47 @@ public class KylinOrderTicketsController extends BaseController {
String enterIdCode = param.getEnterIdCode();
Integer enterType = param.getEnterType();
String orderId = entities.getOrderId();
// 验证 todo
// 验证
switch (param.getEnterType()) {
case 1:
if (!Pattern.matches(LnsRegex.Valid.CN_HANZI, enterName)) {
return error("观演人姓名只能为中文");
}
if (!Pattern.matches(LnsRegex.Valid.CN_ID_CARD_REF, enterIdCode)) {
return error("身份证号码不合规");
}
try {
adamIdCodeService.identityHandler1(enterName, enterIdCode);
} catch (Exception e) {
return error(e.getMessage());
}
break;
case 2:
if (!Pattern.matches(LnsRegex.Valid.CN_ID_CARD_HM, enterIdCode)) {
return error("港澳居民来往内地通行证号码不合规");
}
break;
case 3:
if (!Pattern.matches(LnsRegex.Valid.CN_ID_CARD_TW, enterIdCode)) {
return error("台湾居民来往大陆通行证号码不合规");
}
break;
case 4:
if (Pattern.matches(LnsRegex.Valid.CN_ID_CARD_PP, enterIdCode)) {
return error("不支持中国大陆护照");
}
if (!Pattern.matches(LnsRegex.Valid.CN_ID_CARD_PP_NON, enterIdCode)) {
return error("护照号码不合规");
}
break;
case 5:
if (!Pattern.matches(LnsRegex.Valid.CN_ID_CARD_MO, enterIdCode)) {
return error("军官证号不合规");
}
break;
default:
return error("证件类型不正确");
}
// 修改
toolService.supplementEnter(orderTicketEntitiesId, enterName, enterMobile, enterIdCode, enterType, orderId);
// 记录
......
package com.liquidnet.client.admin.zhengzai.adam.service.impl;
import com.fasterxml.jackson.databind.JsonNode;
import com.liquidnet.common.cache.redis.util.RedisDataSourceUtil;
import com.liquidnet.common.exception.LiquidnetServiceException;
import com.liquidnet.commons.lang.util.IdentityUtils;
import com.liquidnet.commons.lang.util.JsonUtils;
import com.liquidnet.service.adam.constant.AdamRedisConst;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
@Slf4j
@Service
public class AdamIdCodeService {
@Autowired
RedisDataSourceUtil redisDataSourceUtil;
public boolean setCertificationJunk(int idType, String idNo, String idName) {
return redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.INFO_CERTIFICATION_JUNK + idType + idNo, idName, 604800);
}
public boolean isCertificationJunk(int idType, String idNo, String idName) {
String o = (String) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.INFO_CERTIFICATION_JUNK + idType + idNo);
return !StringUtils.isEmpty(o) && o.equals(idName);
}
/**
* 目前只针对身份证类型三方服务认证成功的标记
*
* @param idType
* @param idNo
* @param idName
* @return
*/
public boolean setCertification(int idType, String idNo, String idName) {
return redisDataSourceUtil.getRedisAdamUtil().set(AdamRedisConst.INFO_CERTIFICATION + idType + idNo, idName);
}
/**
* 目前只针对身份证类型三方服务认证成功的标记
*
* @param idType
* @param idNo
* @param idName
* @return
*/
public int isCertification(int idType, String idNo, String idName) {
String o = (String) redisDataSourceUtil.getRedisAdamUtil().get(AdamRedisConst.INFO_CERTIFICATION + idType + idNo);
if (StringUtils.isEmpty(o)) {
return -1;
}
return o.equals(idName) ? 1 : 0;
}
/**
* 身份证实名处理
*
* @param name
* @param idCard
*/
public void identityHandler1(String name, String idCard) {
String msg = "身份证号与姓名不符";
String code = "10102";
int rst = this.isCertification(1, idCard, name);
switch (rst) {
// 本地存在,验证不通过 改名字了重新验证
case 0:
// 本地不存在
case -1:
if (this.isCertificationJunk(1, idCard, name)) {
throw new LiquidnetServiceException(code, msg);
}
String respStr = IdentityUtils.aliThird(name, idCard), respErrorCode = null;
JsonNode respJNode = JsonUtils.fromJson(respStr, JsonNode.class);
if (null == respJNode || !"0".equals(respErrorCode = String.valueOf(respJNode.get("error_code")))) {
log.info("###实名认证失败[{}]", respStr);
if (!StringUtils.isEmpty(respErrorCode) && org.apache.commons.lang3.StringUtils.indexOf("3000290033", respErrorCode) < 0) {
// 认证服务商'30002'、'90033'为运营商导致的失败,这里不做缓存标记
this.setCertificationJunk(1, idCard, name);
}
throw new LiquidnetServiceException(code, msg);
}
this.setCertification(1, idCard, name);
break;
// 本地存在,验证通过
case 1:
break;
default:
throw new LiquidnetServiceException(code, "认证失败标记类型错误");
}
}
}
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