use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.
the class BasicInformationController method show.
/**
* 查看详情
*
* @param id
* @param uiModel
* @return
*/
@RequestMapping(value = "/{id}", produces = "text/html")
public String show(@PathVariable("id") Long id, Model uiModel) {
Date time = new Date();
// 得到方法开始的时间
log.error("---------------------------" + time);
basid = id;
int coutn = 0;
int size = 0;
int cousize = 0;
EvidenceBasicInformation basicinfor = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", id);
List<EvidenceMainInformation> mlist = new ArrayList<EvidenceMainInformation>();
Map<Long, EvidenceCompaniesSubmit> companiesSubmit = new HashMap<Long, EvidenceCompaniesSubmit>();
Map<Long, List<RealNameRecord>> realnameRecor = new HashMap<Long, List<RealNameRecord>>();
Map<Long, List<PersonalName>> personalName = new HashMap<Long, List<PersonalName>>();
Map<Long, EvidenceIndividual> denceid = new HashMap<Long, EvidenceIndividual>();
Map<Long, EvidenceRealName> realName = new HashMap<Long, EvidenceRealName>();
// 事件对象认证
Map<Long, EvidenceTrustedIdentity> trustedidentit = new HashMap<Long, EvidenceTrustedIdentity>();
// 事件时间认证
Map<Long, EvidenceEventTime> meventime = new HashMap<Long, EvidenceEventTime>();
// 事件行为认证
Map<Long, EvidenceEventBehavior> eventbehacior = new HashMap<Long, EvidenceEventBehavior>();
// 无主体 事件对象认证
Map<Integer, EvidenceTrustedIdentity> maintrustedidentit = new HashMap<Integer, EvidenceTrustedIdentity>();
// 无主体事件时间认证
Map<Integer, EvidenceEventTime> mainmeventime = new HashMap<Integer, EvidenceEventTime>();
// 无主体事件行为认证
Map<Integer, EvidenceEventBehavior> maineventbehacior = new HashMap<Integer, EvidenceEventBehavior>();
// 事件意愿认证
Map<Long, EvidenceEventDesire> meventdesire = new HashMap<Long, EvidenceEventDesire>();
// 事件网络地址
Map<Long, EvidenceEventNetworkAddress> networkaddress = new HashMap<Long, EvidenceEventNetworkAddress>();
// 得到主体身份信息
EvidenceSubjectIdentityExample subjectExample = new EvidenceSubjectIdentityExample();
EvidenceSubjectIdentityExample.Criteria identity = subjectExample.createCriteria();
// subjectExample.isDistinct();
identity.andBasicInformationEqualTo(basicinfor.getEvidenceSn());
List<EvidenceSubjectIdentity> subjectIdentity = sqlSession.selectList("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectExample);
for (int i = 0; i < subjectIdentity.size(); i++) {
// 得到主体信息
EvidenceMainInformationExample infomationE = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria tionE = infomationE.createCriteria();
tionE.andIdentificationEqualTo(subjectIdentity.get(i).getMainInformation());
// infomationE.isDistinct();
if (subjectIdentity.get(i).getMainName() != null) {
tionE.andSubjectNameEqualTo(subjectIdentity.get(i).getMainName());
}
List<EvidenceMainInformation> mainInfo = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", infomationE);
if (mainInfo.size() != 0) {
mlist.add(mainInfo.get(0));
}
}
for (int i = 0; i < mlist.size() - 1; i++) {
for (int j = mlist.size() - 1; j > i; j--) {
if (mlist.get(j).getIdentification().equals(mlist.get(i).getIdentification()) && mlist.get(j).getSubjectName().equals(mlist.get(i).getSubjectName())) {
mlist.remove(j);
}
}
}
log.error("主题数量**********" + mlist.size());
// 得到主题的时间
Date time1 = new Date();
Long Ltime = time1.getTime() - time.getTime();
log.error("得到主题身份的毫秒数,Ltime" + Ltime);
// 得到身份可信标识
EvidenceTrustedIdentityExample trusten = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identityex = trusten.createCriteria();
identityex.andBasicInformationEqualTo(basicinfor.getEvidenceSn());
identityex.andEventContentIsNull();
Map<Long, EvidenceTrustedIdentity> trustedidentity = sqlSession.selectMap("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trusten, "mainInformation");
// 得到主题的时间
Date time2 = new Date();
Long Ltime1 = time2.getTime() - time.getTime();
log.error("得到身份可信标识的毫秒数,Ltime1=" + Ltime1);
// 身份意愿map
Map<Long, EvidenceDesireIdentify> desire = new HashMap<Long, EvidenceDesireIdentify>();
// 证据基本信息map
Map<Long, EvidenceBasicInformation> basi = new HashMap<Long, EvidenceBasicInformation>();
EvidenceRealName erealname = new EvidenceRealName();
// 循环主题信息
for (EvidenceMainInformation m : mlist) {
// 判断可信身份标识是否为空
if (/*trustedidentity!=null && trustedidentity.size()!=0&&*/
trustedidentity.get(m.getId()) != null && trustedidentity.get(m.getId()).getEvidenceSn() != null) {
// 得到可信身份标识关联的身份证据编号
String evidenceSn = trustedidentity.get(m.getId()).getEvidenceSn().toString();
if (StringUtils.isNotEmpty(evidenceSn)) {
EvidenceBasicInformationExample basicinforE = new EvidenceBasicInformationExample();
EvidenceBasicInformationExample.Criteria critbasic = basicinforE.createCriteria();
critbasic.andEvidenceSnEqualTo(evidenceSn);
EvidenceBasicInformation basicinfor1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByExample", basicinforE);
// 得到身份意愿信息
EvidenceDesireIdentifyExample desireIdentify = new EvidenceDesireIdentifyExample();
EvidenceDesireIdentifyExample.Criteria desireExample = desireIdentify.createCriteria();
desireExample.andEvidenceSnEqualTo(basicinfor1.getEvidenceSn());
EvidenceDesireIdentify desire1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceDesireIdentifyMapper.selectByExample", desireIdentify);
desire.put(m.getId(), desire1);
// 将身份认证信息放入map
basi.put(m.getId(), basicinfor1);
// 得到实名认证信息
EvidenceRealNameExample realnameE = new EvidenceRealNameExample();
EvidenceRealNameExample.Criteria realnameEx = realnameE.createCriteria();
realnameEx.andMainInformationEqualTo(m.getSubjectName() + ";" + m.getIdentification());
// realnameEx.andBasicInformationEqualTo(basicinfor1.getId());
realnameEx.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
erealname = sqlSession.selectOne("com.itrus.portal.db.EvidenceRealNameMapper.selectByExample", realnameE);
realName.put(m.getId(), erealname);
}
if (erealname != null) {
if ("2".equals(erealname.getEventVerifierType()) || "3".equals(erealname.getEventVerifierType())) {
if ("1".equals(erealname.getType())) {
EvidenceCompaniesSubmitExample evidenceCompanies = new EvidenceCompaniesSubmitExample();
EvidenceCompaniesSubmitExample.Criteria submit = evidenceCompanies.createCriteria();
submit.andIdCodeEqualTo(erealname.getCompaniesSubmit());
EvidenceCompaniesSubmit companiesSubmit1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceCompaniesSubmitMapper.selectByExample", evidenceCompanies);
companiesSubmit.put(m.getId(), companiesSubmit1);
} else {
// 天威
EvidenceIndividualExample evidenceIndividual = new EvidenceIndividualExample();
EvidenceIndividualExample.Criteria individual = evidenceIndividual.createCriteria();
individual.andIdCodeEqualTo(erealname.getIndividual());
EvidenceIndividual dic = sqlSession.selectOne("com.itrus.portal.db.EvidenceIndividualMapper.selectByExample", evidenceIndividual);
denceid.put(m.getId(), dic);
}
} else if ("1".equals(erealname.getEventVerifierType())) {
// 天威
if ("1".equals(erealname.getType())) {
// 获取流水号
String serialnamber = erealname.getSerialnumber();
// 将多个流水号以逗号分隔成一个数组
String[] namber = serialnamber.split(",");
// 声明一个list存储流水号
List<String> listString = new ArrayList<String>();
for (int i = 0; i < namber.length; i++) {
// 将数组中的流水号放入list中
listString.add(namber[i]);
}
// 查询实名认证信息
RealNameRecordExample realname = new RealNameRecordExample();
RealNameRecordExample.Criteria recor = realname.createCriteria();
recor.andSerialnumberIn(listString);
realname.setOrderByClause("returntime");
listReal = sqlSession.selectList("com.itrus.portal.db.RealNameRecordMapper.selectByExample", realname);
realnameRecor.put(m.getId(), listReal);
} else {
String serialnamber = erealname.getSerialnumber();
String[] namber = serialnamber.split(",");
List<String> listString = new ArrayList<String>();
for (int i = 0; i < namber.length; i++) {
listString.add(namber[i]);
// listReal.add(realnameRecor1);
}
PersonalNameExample personal = new PersonalNameExample();
PersonalNameExample.Criteria personalname = personal.createCriteria();
personalname.andSerialnumberIn(listString);
personal.setOrderByClause("returntime");
listPersonal = sqlSession.selectList("com.itrus.portal.db.PersonalNameMapper.selectByExample", personal);
personalName.put(m.getId(), listPersonal);
}
}
}
}
}
// 得到身份的时间
Date time3 = new Date();
Long Ltime2 = time3.getTime() - time.getTime();
log.error("得到身份信息的毫秒数,Ltime2=" + Ltime2);
// 事件内容
/*EvidenceEventContentExample evencontent = new EvidenceEventContentExample();
EvidenceEventContentExample.Criteria countent = evencontent.createCriteria();
//countent.andBasicInformationEqualTo(id);
countent.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
EvidenceEventContent mevencontent = sqlSession
.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", evencontent);*/
EvidenceEventContent mevencontent = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selecttId", basicinfor.getEvidenceSn());
// 得到事件内容的时间
Date time4 = new Date();
Long Ltime3 = time4.getTime() - time.getTime();
log.error("得到事件内容的毫秒数,Ltime3=" + Ltime3);
if (mevencontent != null && mevencontent.getIdCode() != null) {
// 事件对象认证
EvidenceTrustedIdentityExample trustenid = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identitye = trustenid.createCriteria();
identitye.andEventContentEqualTo(mevencontent.getIdCode());
trustedidentit = sqlSession.selectMap("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustenid, "mainInformation");
// 事件时间认证
EvidenceEventTimeExample eventime = new EvidenceEventTimeExample();
EvidenceEventTimeExample.Criteria eventimeEx = eventime.createCriteria();
eventimeEx.andEventContentEqualTo(mevencontent.getIdCode());
meventime = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", eventime, "mainInformation");
// 事件行为认证
EvidenceEventBehaviorExample eventbehaciorEx = new EvidenceEventBehaviorExample();
EvidenceEventBehaviorExample.Criteria eventbe = eventbehaciorEx.createCriteria();
eventbe.andEventContentEqualTo(mevencontent.getIdCode());
eventbehacior = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", eventbehaciorEx, "mainInformation");
// 事件意愿认证
EvidenceEventDesireExample desireEx = new EvidenceEventDesireExample();
EvidenceEventDesireExample.Criteria eventdesire = desireEx.createCriteria();
eventdesire.andEventContenteEqualTo(mevencontent.getIdCode());
meventdesire = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", desireEx, "mainInformation");
// 事件网络地址
EvidenceEventNetworkAddressExample network = new EvidenceEventNetworkAddressExample();
EvidenceEventNetworkAddressExample.Criteria address = network.createCriteria();
address.andEventContentEqualTo(mevencontent.getIdCode());
networkaddress = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.selectByExample", network, "mainInformation");
// 得到证据附件表,用于获取信息
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByPrimaryKey", mevencontent.getEvidenceEnclosure());
uiModel.addAttribute("enclosure", envlosure);
}
// 得到事件的时间
Date time5 = new Date();
Long Ltime4 = time5.getTime() - time.getTime();
log.error("得到事件详情的毫秒数,Ltime4=" + Ltime4);
// 得到证据附件信息,用于查询服务委托人等信息
EvidenceEnclosureExample enclou = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria sure = enclou.createCriteria();
sure.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
;
sure.andPdfTypeEqualTo("1");
List<EvidenceEnclosure> enclosure = sqlSession.selectList("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", enclou);
// 得到事件的时间
Date qtime = new Date();
Long qLtime = qtime.getTime() - time5.getTime();
log.error("***得到证据附件信息1的毫秒数,qLtime=" + qLtime);
EvidenceEnclosureExample enclouE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria sureEX = enclouE.createCriteria();
sureEX.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
;
sureEX.andPdfTypeEqualTo("3");
EvidenceEnclosure enclosurepdf = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", enclouE);
// 得到事件的时间
Date wtime = new Date();
Long wLtime = wtime.getTime() - qtime.getTime();
log.error("---得到证据附件信息2的毫秒数,wLtime=" + wLtime);
// 得到无主题信息的数量
int evencount = 0;
if (trustedidentit.size() > 0) {
evencount = trustedidentit.size();
} else if (meventime.size() > 0) {
evencount = meventime.size();
} else if (maineventbehacior.size() > 0) {
evencount = maineventbehacior.size();
}
Map<Integer, Integer> mapcoune = new HashMap<Integer, Integer>();
// 用于得到无主题信息和数量
for (int g = 0; g < evencount; g++) {
int intsize = 0;
// 得到无主题信息的key
long z = g - evencount;
String s = String.valueOf(z);
// 将long类型转换为int类型,作为map的key进行重组
int f = Integer.parseInt(s);
if (trustedidentit.get(z) != null) {
// System.out.println(trustedidentit.get(z).getMainInformation());
// if(trustedidentit.get(z).getMainInformation()<0){
maintrustedidentit.put(f, trustedidentit.get(z));
cousize++;
intsize++;
// }
}
if (meventime.get(z) != null) {
// if(meventime.get(z).getMainInformation()<0){
mainmeventime.put(f, meventime.get(z));
cousize++;
intsize++;
// }
}
if (eventbehacior.get(z) != null) {
// if(eventbehacior.get(z).getMainInformation()<0){
maineventbehacior.put(f, eventbehacior.get(z));
cousize++;
intsize++;
// }
}
mapcoune.put(f, intsize);
}
uiModel.addAttribute("mapcoune", mapcoune);
uiModel.addAttribute("enclosurepdf", enclosurepdf);
uiModel.addAttribute("maintrustedidentit", maintrustedidentit);
uiModel.addAttribute("mainmeventime", mainmeventime);
uiModel.addAttribute("maineventbehacior", maineventbehacior);
// 得到事件的时间
Date time6 = new Date();
Long Ltime5 = time6.getTime() - time.getTime();
log.error("得到无主题信息的毫秒数,Ltime5=" + Ltime5);
// 服务委托人签名信息
Map<Long, EvidenceClientSignature> cilentsignat = new HashMap<Long, EvidenceClientSignature>();
// 天威签名信息
Map<Long, EvidenceClientSignature> cilentsignature = new HashMap<Long, EvidenceClientSignature>();
// 服务委托人时间戳信息
Map<Long, EvidenceClientTimeStamp> clientTimestamp = new HashMap<Long, EvidenceClientTimeStamp>();
// 天威时间戳信息
Map<Long, EvidenceClientTimeStamp> tclientTimestamp = new HashMap<Long, EvidenceClientTimeStamp>();
// 服务委托人证书信息
Map<Long, List<EvidenceCert>> listcert = new HashMap<Long, List<EvidenceCert>>();
// 服务委托人核验信息
Map<Long, EvidenceCheck> check = new HashMap<Long, EvidenceCheck>();
// 天威核验信息
Map<Long, EvidenceCheck> tcheck = new HashMap<Long, EvidenceCheck>();
int ensize = 0;
Map<Long, Integer> mint = new HashMap<Long, Integer>();
// 循环附件信息取得服务委托人和天威签名时间戳信息
for (EvidenceEnclosure en : enclosure) {
Date time11 = new Date();
int encount = 0;
// 服务委托人签名信息
/*EvidenceClientSignatureExample cilent = new EvidenceClientSignatureExample();
EvidenceClientSignatureExample.Criteria signat = cilent.createCriteria();
signat.andEvidenceSnEqualTo(en.getEvidenceSn());*/
// signat.andNameEqualTo("0");
List<EvidenceClientSignature> listclient = sqlSession.selectList("com.itrus.portal.db.EvidenceClientSignatureMapper.selectcertId", en.getEvidenceSn());
EvidenceClientSignature clien1 = new EvidenceClientSignature();
EvidenceClientSignature clien2 = new EvidenceClientSignature();
for (int i = 0; i < listclient.size(); i++) {
if ("0".equals(listclient.get(i).getName())) {
clien1 = listclient.get(i);
}
if ("1".equals(listclient.get(i).getName())) {
clien2 = listclient.get(i);
}
}
cilentsignat.put(en.getId(), clien1);
if (clien1.getId() != null) {
ensize++;
encount++;
// 服务委托人证书信息
/*EvidenceCertExample certEx = new EvidenceCertExample();
EvidenceCertExample.Criteria evidenceCert = certEx.createCriteria();
evidenceCert.andClientSignatureEqualTo(listclient.getId());*/
List<EvidenceCert> listCert = sqlSession.selectList("com.itrus.portal.db.EvidenceCertMapper.selectByPrimaryKey", clien1.getCertId());
listcert.put(en.getId(), listCert);
// 服务委托人核验信息
EvidenceCheckExample checkEx = new EvidenceCheckExample();
EvidenceCheckExample.Criteria evidenceCheck = checkEx.createCriteria();
evidenceCheck.andClientSignatureEqualTo(clien1.getId());
EvidenceCheck listCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", checkEx);
check.put(en.getId(), listCheck);
}
Date time12 = new Date();
Long gettime = time12.getTime() - time11.getTime();
log.error("-----------gettime0--------------" + gettime);
// 天威签名信息
/*EvidenceClientSignatureExample cilentsign = new EvidenceClientSignatureExample();
EvidenceClientSignatureExample.Criteria signature = cilentsign.createCriteria();
signature.andEvidenceSnEqualTo(en.getEvidenceSn());
signature.andNameEqualTo("1");
EvidenceClientSignature clientlist = sqlSession
.selectOne("com.itrus.portal.db.EvidenceClientSignatureMapper.selectByExample", cilentsign);*/
cilentsignature.put(en.getId(), clien2);
if (clien2.getId() != null) {
ensize++;
encount++;
// 服务委托人核验信息
EvidenceCheckExample checkEx = new EvidenceCheckExample();
EvidenceCheckExample.Criteria evidenceCheck = checkEx.createCriteria();
evidenceCheck.andClientSignatureEqualTo(clien2.getId());
EvidenceCheck listCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", checkEx);
tcheck.put(en.getId(), listCheck);
}
Date time13 = new Date();
Long gettime1 = time13.getTime() - time12.getTime();
log.error("-----------gettime1--------------" + gettime1);
// 服务委托人时间戳信息
/*EvidenceClientTimeStampExample clientTime = new EvidenceClientTimeStampExample();
EvidenceClientTimeStampExample.Criteria stamp = clientTime.createCriteria();
stamp.andEvidenceSnEqualTo(en.getEvidenceSn());*/
// stamp.andNameEqualTo("0");
log.error("证据编号=======" + en.getEvidenceSn());
List<EvidenceClientTimeStamp> listtime = sqlSession.selectList("com.itrus.portal.db.EvidenceClientTimeStampMapper.selectTimeStamp", en.getEvidenceSn());
EvidenceClientTimeStamp timestamp1 = new EvidenceClientTimeStamp();
EvidenceClientTimeStamp timestamp2 = new EvidenceClientTimeStamp();
log.error("时间戳listtime==--**" + listtime);
for (int j = 0; j < listtime.size(); j++) {
if ("0".equals(listtime.get(j).getName())) {
timestamp1 = listtime.get(j);
log.error("服务委托人时间-----------" + timestamp1);
}
/*else if("1".equals(listtime.get(j).getName())){
timestamp2 = listtime.get(j);
}*/
log.error("服务委托人时间***********" + listtime.get(j).getName());
if ("1".equals(listtime.get(j).getName())) {
timestamp2 = listtime.get(j);
log.error("服务委托人时间-----------" + timestamp2);
}
/*else if("0".equals(listtime.get(j).getName())){
timestamp1 = listtime.get(j);
}*/
}
clientTimestamp.put(en.getId(), timestamp1);
if (timestamp1 != null) {
ensize++;
encount++;
}
Date time14 = new Date();
Long gettime2 = time14.getTime() - time13.getTime();
log.error("-----------gettime2--------------" + gettime2);
// 天威时间戳信息
/*EvidenceClientTimeStampExample tclientTime = new EvidenceClientTimeStampExample();
EvidenceClientTimeStampExample.Criteria tstamp = tclientTime.createCriteria();
tstamp.andEvidenceSnEqualTo(en.getEvidenceSn());
tstamp.andNameEqualTo("1");
EvidenceClientTimeStamp timelist = sqlSession
.selectOne("com.itrus.portal.db.EvidenceClientTimeStampMapper.selectByExample", tclientTime);*/
tclientTimestamp.put(en.getId(), timestamp2);
if (timestamp2 != null) {
ensize++;
encount++;
}
mint.put(en.getId(), encount);
Date time15 = new Date();
Long gettime3 = time15.getTime() - time14.getTime();
log.error("-----------gettime3--------------" + gettime3);
}
// 得到事件的时间
Date time7 = new Date();
Long Ltime6 = time7.getTime() - time.getTime();
log.error("得到证据申请信息和申请时间戳的毫秒数,Ltime6=" + Ltime6);
Long Ltime10 = time7.getTime() - time6.getTime();
log.error("+++++++++++*********---------,Ltime10++++++++++++++=" + Ltime10);
uiModel.addAttribute("ensize", ensize);
uiModel.addAttribute("mint", mint);
List<EvidenceHisCertificate> hisCertificete = new ArrayList<EvidenceHisCertificate>();
EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
hisreation.andBasicInformationEqualTo(id);
List<EvidenceHisRelationship> hisRelation = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
for (int g = 0; g < hisRelation.size(); g++) {
// 得到证据基本信息
/*EvidenceBasicInformation basic = sqlSession.selectOne(
"com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
hisRelation.get(g).getBasicInformation());*/
EvidenceHisCertificate eh = sqlSession.selectOne("com.itrus.portal.db.EvidenceHisCertificateMapper.selectByPrimaryKey", hisRelation.get(g).getHisCertificate());
hisCertificete.add(eh);
}
// 出证信息
// List<Map<String, Object>> hisCertificete = hiscertificate.selectHisCertificateEnt();
Map<Long, EvidenceOutTemplate> mout = new HashMap<Long, EvidenceOutTemplate>();
Map<Long, EvidenceEnclosure> closure = new HashMap<Long, EvidenceEnclosure>();
Map<Long, List<EvidenceBasicInformation>> mbasilist = new HashMap<Long, List<EvidenceBasicInformation>>();
// ArrayList<EvidenceBasicInformation>();
for (int j = 0; j < hisCertificete.size(); j++) {
List<EvidenceBasicInformation> blist = new ArrayList<EvidenceBasicInformation>();
Long hidId = hisCertificete.get(j).getId();
String serialnumber = hisCertificete.get(j).getSerialnumber();
if (hisCertificete.get(j).getHisAppService() != null && hisCertificete.get(j).getHisAppService() > 0) {
Long appServiceId = hisCertificete.get(j).getHisAppService();
// 得到服务编码
AppService happservice = appService.selectById(appServiceId);
// 得到出证服务配置
EvidenceOutServiceConfigExample outsaveService = new EvidenceOutServiceConfigExample();
EvidenceOutServiceConfigExample.Criteria saveServiceEx = outsaveService.createCriteria();
saveServiceEx.andAppServiceEqualTo(happservice.getId());
EvidenceOutServiceConfig outService = sqlSession.selectOne("com.itrus.portal.db.EvidenceOutServiceConfigMapper.selectByExample", outsaveService);
// 得到出证模板信息
EvidenceOutTemplate outtemp = sqlSession.selectOne("com.itrus.portal.db.EvidenceOutTemplateMapper.selectByPrimaryKey", outService.getSaveRetTemplate());
mout.put(hidId, outtemp);
// 获取证据附件表
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andSerialnumberEqualTo(serialnumber);
envlosureEx.andPdfTypeEqualTo("4");
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
closure.put(hidId, envlosure);
}
uiModel.addAttribute("closure", closure);
/*long hid = Long.parseLong(hisCertificete.get(j).get("id").toString());
EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
hisreation.andHisCertificateEqualTo(hid);
List<EvidenceHisRelationship> hisRelation = sqlSession
.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
for (int g = 0; g < hisRelation.size(); g++) {
// 得到证据基本信息
EvidenceBasicInformation basic = sqlSession.selectOne(
"com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
hisRelation.get(g).getBasicInformation());
blist.add(basic);
}
mbasilist.put(hidId, blist);*/
}
uiModel.addAttribute("basi", basi);
uiModel.addAttribute("check", check);
uiModel.addAttribute("listcert", listcert);
uiModel.addAttribute("realName", realName);
uiModel.addAttribute("mbasilist", mbasilist);
uiModel.addAttribute("mout", mout);
uiModel.addAttribute("envlosure", enclosure);
uiModel.addAttribute("hisCertificete", hisCertificete);
uiModel.addAttribute("basicinfor", basicinfor);
uiModel.addAttribute("tclientTimestamp", tclientTimestamp);
uiModel.addAttribute("clientTimestamp", clientTimestamp);
uiModel.addAttribute("cilentsignature", cilentsignature);
uiModel.addAttribute("cilentsignat", cilentsignat);
uiModel.addAttribute("networkaddress", networkaddress);
uiModel.addAttribute("meventdesire", meventdesire);
uiModel.addAttribute("eventbehacior", eventbehacior);
uiModel.addAttribute("meventime", meventime);
uiModel.addAttribute("trustedidentit", trustedidentit);
uiModel.addAttribute("mevencontent", mevencontent);
uiModel.addAttribute("trustedidentity", trustedidentity);
uiModel.addAttribute("companiesSubmit", companiesSubmit);
uiModel.addAttribute("realnameRecor", realnameRecor);
uiModel.addAttribute("denceid", denceid);
uiModel.addAttribute("personalName", personalName);
uiModel.addAttribute("mainInfo", mlist);
uiModel.addAttribute("milist", mlist);
Map<Long, Integer> msize = new HashMap<Long, Integer>();
// 得到认证数量
for (EvidenceMainInformation m : mlist) {
int showsize = 0;
// 身份认证
if (companiesSubmit.get(m.getId()) != null) {
coutn++;
}
if (realnameRecor.get(m.getId()) != null) {
coutn++;
}
if (personalName.get(m.getId()) != null) {
coutn++;
}
if (desire.get(m.getId()) != null) {
coutn++;
}
if (trustedidentity.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
coutn++;
}
if (denceid.get(m.getId()) != null) {
coutn++;
}
// 事件认证
if (trustedidentit.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
size++;
showsize++;
}
if (meventime.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
size++;
showsize++;
}
if (eventbehacior.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
size++;
showsize++;
}
if (meventdesire.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
size++;
showsize++;
}
if (networkaddress.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
size++;
showsize++;
}
msize.put(m.getId(), showsize);
}
uiModel.addAttribute("cousize", cousize);
uiModel.addAttribute("rowsize", size + 1 + cousize);
uiModel.addAttribute("showsize", msize);
uiModel.addAttribute("rowcoutn", coutn);
uiModel.addAttribute("desire", desire);
// 得到事件的时间
Date time8 = new Date();
// 方法结束时间
log.error("******************time8=" + time8);
Long Ltime7 = time8.getTime() - time.getTime();
log.error("方法结束的毫秒数,Ltime7=" + Ltime7);
return "basicinformation/show";
}
use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.
the class BasicInformationController method logImg.
/**
* 得到合同图片
*
* @param id
* @param response
* @return
*/
@RequestMapping(value = "/img/{id}/{count}")
public String logImg(@PathVariable("id") Long id, @PathVariable("count") int count, HttpServletResponse response) {
String img = null;
OutputStream os = null;
FileInputStream fis = null;
File file = null;
// 得到证据内容信息
EvidenceEventContent mevencontent = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selectByPrimaryKey", id);
/*EvidenceBasicInformation basic = sqlSession.selectOne(
"com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
mevencontent.getBasicInformation());*/
// 得到证据附件信息
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andEvidenceSnEqualTo(mevencontent.getEvidenceSn());
envlosureEx.andPdfTypeEqualTo("1");
EvidenceEnclosure enclosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
try {
// 生成图片
if (enclosure != null) {
if ("1".equals(enclosure.getPdfType())) {
// 得到图片
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
int size = count - 1;
img = enclosure.getEvidenceSn() + ".pdf.1.0." + size + ".png";
file = new File(systemConfigService.getpdfurl() + File.separator + enclosure.getBucketName());
// filePathUtils
// .getBillFile(systemConfigService.getpdfurl() + File.separator + enclosure.getBucketName());
log.error("图片路径file===" + file);
log.error("图片名称img===" + img + "********size=" + size);
}
}
if (img == null) {
return "status403";
}
if (!file.exists()) {
file.mkdir();
}
File imgFile = new File(file, img);
fis = new FileInputStream(imgFile);
byte[] bb = IOUtils.toByteArray(fis);
os = response.getOutputStream();
os.write(bb);
os.flush();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
// 关闭流!
try {
if (null != fis) {
fis.close();
}
if (null != os) {
os.close();
}
} catch (IOException e) {
}
}
return null;
}
use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.
the class EvidenceSaveContractService method saveFactor.
// 核验要素
private Map<String, Object> saveFactor(Map<String, Object> result, EvidenceSaveService evidenceSaveService, String evidenceSn, JSONObject jsonEvidenceContent, EvidenceBasicInformation basicInformation, RealNameAuthentication realNameAuthentication, RealNameAuthentication realNameAuthenticationOss, EvidenceServiceConfiguration serviceConfiguration, Boolean bl, Long sbtTime) throws Exception {
List<Object> objs = new ArrayList<Object>();
// 定义证据要素字段
String saveFactor = null;
// 证据存证的业务类型
String type = null;
// 得到业务基本信息要素配置
String factorBusinessInfo = evidenceSaveService.getFactorBusinessInfo();
JSONArray jsonBiArray = JSONArray.parseArray(factorBusinessInfo);
try {
// TODO : 核验身份认证
if (jsonEvidenceContent.get("authId") != null && bl) {
basicInformation.setEvidenceType(1);
// 得到数据包身份认证数据
JSONObject jsonAuthId = jsonEvidenceContent.getJSONObject("authId");
for (int i = 0; i < jsonBiArray.size(); i++) {
JSONObject object = jsonBiArray.getJSONObject(i);
JSONObject jsonContent;
// 事件发生平台
if (i == 0) {
jsonContent = jsonAuthId.getJSONObject("eventHapPlatform");
// 判断是否接收
if (object.getBooleanValue("b_isReception")) {
// 判断是否必填
if (object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(jsonContent.getString("hapPlatformDomain"))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件发生平台必要参数值");
return result;
}
basicInformation.setEventPlatformName(jsonContent.getString("hapPlatformName"));
basicInformation.setDomainName(jsonContent.getString("hapPlatformDomain"));
if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
}
}
}
EvidenceMainInformation mainInformation = null;
// 得到身份认证要素配置
String factorIdVerify = evidenceSaveService.getFactorIdVerify();
JSONArray jsonIdArray = JSONArray.parseArray(factorIdVerify);
// 得到证据包中的身份认证数据
for (int i = 0; i < jsonIdArray.size(); i++) {
// 得到对应认证配置
JSONObject object = jsonIdArray.getJSONObject(i);
JSONObject jsonContent = null;
switch(i) {
// 主体身份
case 0:
jsonContent = jsonAuthId.getJSONObject("principalId");
// 判断是否接收
if (object.getBooleanValue("i_isReception")) {
// 判断是否必填
if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContent.getString("name")) || StringUtils.isEmpty(jsonContent.getString("dataId")) || StringUtils.isEmpty(jsonContent.getString("type")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少主体身份参数值");
return result;
}
// 判断主体是否存在
String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
if (cacheMainMap.get(idCacheKey) != null) {
mainInformation = cacheMainMap.get(idCacheKey);
} else {
EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name").trim());
mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId").trim());
mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
mainInformationExample.setOrderByClause("create_time DESC");
List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
if (!mainInformationList.isEmpty()) {
mainInformation = mainInformationList.get(0);
}
// 当主体为空时 添加主体信息
if (mainInformation == null) {
mainInformation = new EvidenceMainInformation();
mainInformation.setSubjectName(jsonContent.getString("name").trim());
mainInformation.setIdentification(jsonContent.getString("dataId").trim());
mainInformation.setMainType(jsonContent.getString("type"));
mainInformation.setCreateTime(new Date());
objs.add(mainInformation);
}
cacheMainMap.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
}
// 添加证据和主体关系表
EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
subjectIdentity1.setBasicInformation(evidenceSn);
subjectIdentity1.setMainInformation(jsonContent.getString("dataId").trim());
subjectIdentity1.setMainName(jsonContent.getString("name").trim());
subjectIdentity1.setMainType(jsonContent.getShort("type"));
subjectIdentity1.setCreateTime(new Date());
objs.add(subjectIdentity1);
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
}
break;
// 身份意愿鉴别
case 1:
jsonContent = jsonAuthId.getJSONObject("authIdWillSms");
// 判断是否接收
if (object.getBooleanValue("i_isReception")) {
// 判断是否必填
if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContent.getString("phone")) || StringUtils.isEmpty(jsonContent.getString("sendTime")) || StringUtils.isEmpty(jsonContent.getString("content")) || StringUtils.isEmpty(jsonContent.getString("verifyCode")) || StringUtils.isEmpty(jsonContent.getString("verifySmsTime")) || StringUtils.isEmpty(jsonContent.getString("verifierType")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份意愿鉴别参数值");
return result;
}
// 获取验证方
String eventVerifier = getAuthenticator(Integer.parseInt(jsonContent.getString("verifierType")), basicInformation.getEventPlatformName());
// 存储身份意愿鉴别信息
EvidenceDesireIdentify desireIdentify = new EvidenceDesireIdentify();
desireIdentify.setVerifier(eventVerifier);
desireIdentify.setVerifierType(jsonContent.getString("verifierType"));
desireIdentify.setPhone(jsonContent.getString("phone"));
desireIdentify.setSendOutTime(jsonContent.getDate("sendTime"));
desireIdentify.setSmsContent(jsonContent.getString("content"));
desireIdentify.setVerificationCode(jsonContent.getString("verifyCode"));
desireIdentify.setVerificationTime(jsonContent.getDate("verifySmsTime"));
desireIdentify.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
desireIdentify.setCreateTime(new Date());
desireIdentify.setEvidenceSn(evidenceSn);
objs.add(desireIdentify);
// 整合提交要素
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
}
break;
// 身份实名认证
case 2:
JSONObject jsonContentPerson = jsonAuthId.getJSONObject("authIdInfoPerson");
JSONObject jsonContentBusiness = jsonAuthId.getJSONObject("authIdInfoBusiness");
// 判断是否接收
if (object.getBooleanValue("i_isReception")) {
// 核验个人身份认证和企业身份认证是否提交其一
if ((jsonContentPerson == null && jsonContentBusiness == null) || (jsonContentPerson != null && jsonContentBusiness != null)) {
result.put("status", 0);
result.put("message", "提交的参数信息错误,个人身份认证和企业身份认证只能提交其一");
return result;
}
// true 代表个人身份认证 false 代表企业身份认证
if (jsonContentPerson != null) {
// 判断是否必填
if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContentPerson.getString("authenticatorType")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
return result;
}
String eventVerifier = getAuthenticator(Integer.parseInt(jsonContentPerson.getString("authenticatorType")), basicInformation.getEventPlatformName());
// 身份实名认证表
EvidenceRealName realName = new EvidenceRealName();
realName.setEventVerifierType(jsonContentPerson.getString("authenticatorType"));
realName.setEventVerifier(eventVerifier);
realName.setCertificationTime(jsonContentPerson.getDate("time"));
realName.setType(mainInformation.getMainType());
realName.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
realName.setEvidenceSn(evidenceSn);
String orderNumber = jsonContentPerson.getString("orderNumber");
if (jsonContentPerson.getInteger("authenticatorType") == 1) {
// 认证方 为 1 时,orderNumber 为必填项
if (StringUtils.isEmpty(orderNumber)) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
return result;
}
realName.setSerialnumber(orderNumber);
// 判断企业实名认证信息是否为可靠信息
for (String o : orderNumber.split(",")) {
PersonalNameExample personalNameExample = new PersonalNameExample();
PersonalNameExample.Criteria pec = personalNameExample.createCriteria();
pec.andSerialnumberEqualTo(o);
PersonalName personalName = sqlSession.selectOne("com.itrus.portal.db.PersonalNameMapper.selectByExample", personalNameExample);
if (personalName == null || personalName.getAuthenticationstatus() != 0) {
result.put("status", 0);
result.put("message", "流水号为:" + o + "的个人信息验证未通过");
return result;
}
}
} else if (jsonContentPerson.getInteger("authenticatorType") == 2) {
EvidenceIndividual individual = new EvidenceIndividual();
individual.setName(mainInformation.getSubjectName());
individual.setCreateTime(new Date());
individual.setIdCode(UniqueIDUtils.getUID());
// 必填判断
if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContentPerson.getString("idType")) || StringUtils.isEmpty(jsonContentPerson.getString("idCode")) || StringUtils.isEmpty(jsonContentPerson.getString("idImg1")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
return result;
}
individual.setType(jsonContentPerson.getString("idType"));
individual.setCertificateid(jsonContentPerson.getString("idCode"));
// 1.身份证 2.其他
if (jsonContentPerson.getIntValue("idType") == 1) {
if (StringUtils.isNotEmpty(jsonContentPerson.getString("idImg1")) && StringUtils.isNotEmpty(jsonContentPerson.getString("idImg2"))) {
// 存储图片
File frontImg = saveImg(evidenceSn, jsonContentPerson.getString("idImg1"), IMG_ID_IMG_FRONT);
individual.setPhotoCodeImg(frontImg.getName());
individual.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
File frontImg2 = saveImg(evidenceSn, jsonContentPerson.getString("idImg2"), IMG_ID_IMG_BACK);
individual.setInformationImg(frontImg2.getName());
individual.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg2));
} else {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,个人身份认证证据为身份证时 idImg2 为必选参数。");
return result;
}
} else {
// 存储图片
File frontImg = saveImg(evidenceSn, jsonContentPerson.getString("idImg1"), IMG_ID_IMG_BACK);
individual.setPhotoCodeImg(frontImg.getName());
individual.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
objs.add(individual);
realName.setIndividual(individual.getIdCode());
}
objs.add(realName);
} else {
// 判断是否必填
if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContentBusiness.getString("authenticatorType")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
return result;
}
String eventVerifier = getAuthenticator(Integer.parseInt(jsonContentBusiness.getString("authenticatorType")), basicInformation.getEventPlatformName());
// 身份实名认证表
EvidenceRealName realName = new EvidenceRealName();
realName.setEventVerifierType(jsonContentBusiness.getString("authenticatorType"));
realName.setEventVerifier(eventVerifier);
realName.setCertificationTime(jsonContentBusiness.getDate("time"));
realName.setType(mainInformation.getMainType());
realName.setMainInformation(mainInformation.getSubjectName() + ":" + mainInformation.getIdentification());
realName.setEvidenceSn(evidenceSn);
String orderNumber = jsonContentBusiness.getString("orderNumber");
if (jsonContentBusiness.getInteger("authenticatorType") == 1) {
// 认证方 为 1 时,orderNumber 为必填项
if (StringUtils.isEmpty(orderNumber)) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
return result;
}
realName.setSerialnumber(orderNumber);
// 判断企业实名认证信息是否为可靠信息
for (String o : orderNumber.split(",")) {
RealNameRecordExample recordExample = new RealNameRecordExample();
RealNameRecordExample.Criteria rec = recordExample.createCriteria();
rec.andSerialnumberEqualTo(o);
RealNameRecord realNameRecord = sqlSession.selectOne("com.itrus.portal.db.RealNameRecordMapper.selectByExample", recordExample);
if (realNameRecord == null || realNameRecord.getAuthenticationstatus() != 0) {
result.put("status", 0);
result.put("message", "流水号为:" + o + "的企业信息验证未通过");
return result;
}
}
} else if (jsonContentBusiness.getInteger("authenticatorType") == 2) {
if (object.getBooleanValue("i_isRequired") && ((StringUtils.isEmpty(jsonContentBusiness.getString("blCode")) && StringUtils.isEmpty(jsonContentBusiness.getString("blImg"))) && (StringUtils.isEmpty(jsonContentBusiness.getString("orgCode")) && StringUtils.isEmpty(jsonContentBusiness.getString("orgImg"))))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
return result;
}
// 法人
EvidenceRepresentative representative = null;
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("legalIdName")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("legalIdType")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("legalIdCode"))) {
representative = new EvidenceRepresentative();
representative.setName(jsonContentBusiness.getString("legalIdName"));
representative.setType(jsonContentBusiness.getString("legalIdType"));
representative.setCertificateid(jsonContentBusiness.getString("legalIdCode"));
representative.setCreateTime(new Date());
representative.setIdCode(UniqueIDUtils.getUID());
// 存储图片
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("idImg1"))) {
File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("idImg1"), IMG_ID_IMG_FRONT);
representative.setPhotoCodeImg(frontImg.getName());
representative.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("idImg2"))) {
File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("idImg2"), IMG_ID_IMG_BACK);
representative.setInformationImg(frontImg.getName());
representative.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
// 存储法人信息
objs.add(representative);
}
// 代理人
EvidenceTheAgent theAgent = null;
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdName")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdType")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdCode"))) {
theAgent = new EvidenceTheAgent();
theAgent.setName(jsonContentBusiness.getString("agentIdName"));
theAgent.setType(jsonContentBusiness.getString("agentIdType"));
theAgent.setCertificateid(jsonContentBusiness.getString("agentIdCode"));
theAgent.setCreateTime(new Date());
theAgent.setIdCode(UniqueIDUtils.getUID());
// 存储图片
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdImg1"))) {
File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("agentIdImg1"), IMG_ID_IMG_FRONT);
theAgent.setPhotoCodeImg(frontImg.getName());
theAgent.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdImg2"))) {
File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("agentIdImg2"), IMG_ID_IMG_BACK);
theAgent.setInformationImg(frontImg.getName());
theAgent.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
// // 存储代理人信息
objs.add(theAgent);
// 营业执照
EvidenceCompaniesSubmit companiesSubmit = new EvidenceCompaniesSubmit();
companiesSubmit.setBusCertificateid(jsonContentBusiness.getString("blCode"));
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("blImg"))) {
// 存储图片
File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("blImg"), IMG_BL);
companiesSubmit.setPhotoCodeImg(frontImg.getName());
companiesSubmit.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
// 组织机构代码
companiesSubmit.setOrgCertificateid(jsonContentBusiness.getString("orgCode"));
if (StringUtils.isNotEmpty(jsonContentBusiness.getString("orgImg"))) {
// 存储图片
File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("orgImg"), IMG_ORG);
companiesSubmit.setInformationImg(frontImg.getName());
companiesSubmit.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
}
if (theAgent != null)
companiesSubmit.setTheAgent(theAgent.getIdCode());
if (representative != null)
companiesSubmit.setRepresentative(representative.getIdCode());
companiesSubmit.setBusinessName(mainInformation.getSubjectName());
companiesSubmit.setCreateTime(new Date());
companiesSubmit.setIdCode(UniqueIDUtils.getUID());
objs.add(companiesSubmit);
realName.setCompaniesSubmit(companiesSubmit.getIdCode());
}
}
objs.add(realName);
}
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
}
break;
default:
break;
}
}
}
// TODO : 核验事件认证
if (jsonEvidenceContent.get("authEvent") != null) {
basicInformation.setEvidenceType(2);
JSONObject jsonAuthEvent = jsonEvidenceContent.getJSONObject("authEvent");
// 可信身份缓存信息
List<EvidenceTrustedIdentity> tiCacheList = new ArrayList<>();
// 核验基础信息
for (int i = 0; i < jsonBiArray.size(); i++) {
JSONObject object = jsonBiArray.getJSONObject(i);
JSONObject jsonContent;
switch(i) {
// 事件发生平台
case 0:
jsonContent = jsonAuthEvent.getJSONObject("eventHapPlatform");
// 判断是否接收
if (object.getBooleanValue("b_isReception")) {
// 判断是否必填
if (object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(jsonContent.getString("hapPlatformDomain"))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件发生平台必要参数值");
return result;
}
basicInformation.setEventPlatformName(jsonContent.getString("hapPlatformName"));
basicInformation.setDomainName(jsonContent.getString("hapPlatformDomain"));
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
}
break;
// 业务类型
case 1:
String eventType = jsonAuthEvent.getString("eventType");
// 判断是否接收
if (object.getBooleanValue("b_isReception")) {
// 判断是否必填
if (object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(eventType)) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少业务类型参数值");
return result;
}
basicInformation.setType(eventType);
type = object.getString("b_category");
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
}
break;
// 业务单号
case 3:
String eventSn = jsonAuthEvent.getString("eventSn");
// 判断是否接收
if (object.getBooleanValue("b_isReception")) {
basicInformation.setServiceNumber(eventSn);
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
}
break;
default:
break;
}
}
// 得到身份认证要素配置
JSONArray jsonIdArray = JSONArray.parseArray(evidenceSaveService.getFactorIdVerify());
for (int i = 0; i < jsonIdArray.size(); i++) {
JSONObject object = jsonIdArray.getJSONObject(i);
if (i == 3 && object.getBooleanValue("i_isReception")) {
// 得到事件包信息数据
JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
for (int j = 0; j < jsonContentArray.size(); j++) {
JSONObject jsonContent = jsonContentArray.getJSONObject(j).getJSONObject("principalId");
// 判断是否必填
if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonContent.getString("type")) || StringUtils.isEmpty(jsonContent.getString("certSn")) || StringUtils.isEmpty(jsonContent.getString("name")) || StringUtils.isEmpty(jsonContent.getString("dataId")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少可信身份标识参数值");
return result;
}
// 判断主体是否存在
String idCacheKey = jsonContent.getString("name").trim() + jsonContent.getString("dataId").trim();
EvidenceMainInformation mainInformation = cacheMainMap.get(idCacheKey);
EvidenceBasicInformation basicInformation2 = null;
if (mainInformation == null) {
EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name").trim());
mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId").trim());
mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
mainInformationExample.setOrderByClause("create_time DESC");
List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
if (!mainInformationList.isEmpty()) {
mainInformation = mainInformationList.get(0);
}
}
// 当主体为空时 添加主体信息
if (mainInformation == null) {
mainInformation = new EvidenceMainInformation();
mainInformation.setSubjectName(jsonContent.getString("name").trim());
mainInformation.setIdentification(jsonContent.getString("dataId").trim());
mainInformation.setMainType(jsonContent.getString("type"));
mainInformation.setCreateTime(new Date());
objs.add(mainInformation);
}
// 遍历 mapIdCache 的key值 判断是否存在 不存在则添加
// for(String key:mapIdCache.keySet()) {
// if(!idCacheKey.equals(key)) {
cacheMainMap.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
// }
// }
// 判断基础信息表 和 主体表是否存在关联
// EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
// iece.andBasicInformationEqualTo(evidenceSn);
// iece.andMainInformationEqualTo(mainInformation.getIdentification());
// EvidenceSubjectIdentity subjectIdentityExist = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
// if(subjectIdentityExist == null) {
//
// }
// 基础信息表 和 主体表添加关联
EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
subjectIdentity1.setBasicInformation(evidenceSn);
subjectIdentity1.setMainInformation(mainInformation.getIdentification());
subjectIdentity1.setCreateTime(new Date());
subjectIdentity1.setMainName(mainInformation.getSubjectName());
subjectIdentity1.setMainType(Short.parseShort(mainInformation.getMainType()));
objs.add(subjectIdentity1);
// 判断是否需要关联身份证据
if (StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
basicInformation2 = basicInformationService.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
if (basicInformation2 != null) {
EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
iec.andBasicInformationEqualTo(jsonContent.getString("evidenceSn"));
iec.andMainInformationEqualTo(mainInformation.getIdentification());
EvidenceSubjectIdentity subjectIdentity = sqlSession.selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
if (subjectIdentity == null) {
result.put("status", 0);
result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:" + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
return result;
}
} else {
result.put("status", 0);
result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:" + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
return result;
}
}
EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
trustedIdentity.setCertSerialnumber(jsonContent.getString("certSn"));
trustedIdentity.setIdentiType(jsonContent.getString("type"));
trustedIdentity.setBasicInformation(basicInformation.getEvidenceSn());
// trustedIdentity.setEvidenceEnclosure(enclosure.getId());
if (StringUtils.isNotEmpty(jsonContent.getString("evidenceSn")))
trustedIdentity.setEvidenceSn(jsonContent.getString("evidenceSn"));
trustedIdentity.setCreateTime(new Date());
if (mainInformation != null && !"".equals(mainInformation))
trustedIdentity.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
// sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
// sqlSession.flushStatements();
tiCacheList.add(trustedIdentity);
}
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
}
}
// 得到事件认证要素配置
JSONArray jsonEvArray = JSONArray.parseArray(evidenceSaveService.getFactorEventVerify());
EvidenceEventContent eventContent = new EvidenceEventContent();
// 得到证据包中的事件数据
for (int i = 0; i < jsonEvArray.size(); i++) {
JSONObject object = jsonEvArray.getJSONObject(i);
switch(i) {
// 事件认证
case 0:
log.equals("type is " + "电子合同PDF".equals(type));
// 判断合同类型
if ("电子合同PDF".equals(type)) {
// 电子合同
log.error("e_isReception is " + object.getBooleanValue("e_isReception"));
// 判断是否接收
if (object.getBooleanValue("e_isReception")) {
// 得到事件内容中的信息
JSONObject jsonEventContent = jsonAuthEvent.getJSONObject("eventContent");
// 判断必填
if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonEventContent.getString("contCode")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件内容认证参数值");
return result;
}
String urlPdfVerify = realNameAuthentication.getRealNameddress() + PDF_VERIFY;
Map<String, Object> mapPdfVerify = new HashMap<String, Object>();
mapPdfVerify.put("pdfContent", jsonEventContent.get("contCode"));
eventContent.setIsPdf(true);
eventContent.setContractTitle(jsonEventContent.getString("title"));
eventContent.setValidStartTime(jsonEventContent.getDate("validStartTime"));
eventContent.setValidEndTime(jsonEventContent.getDate("validEndTime"));
eventContent.setCreateTime(new Date());
eventContent.setEvidenceSn(evidenceSn);
eventContent.setIdCode(UniqueIDUtils.getUID());
log.error("e_isVerify is " + object.getBooleanValue("e_isVerify"));
if (object.getBooleanValue("e_isVerify")) {
Long pdfVerifyTimeAsync = System.currentTimeMillis();
// 异步处理pdf验章
// HttpAsyncClientUtil.getInstance().execute(
// urlPdfVerify,
// AuthService.getHeader(),
// mapPdfVerify,
// new EvidencePdfVerifyService(
// urlPdfVerify,
// jsonEventContent.getString("contCode"),
// eventContent,
// tiCacheList));
OkHttpClientManagerPdfVerify.postAsyn(urlPdfVerify, AuthService.getHeader().get("Authorization").toString(), mapPdfVerify, new EvidencePdfVerifyService(urlPdfVerify, jsonEventContent.getString("contCode"), eventContent, tiCacheList));
log.error("pdfVerifyTimeAsync time is [" + (System.currentTimeMillis() - pdfVerifyTimeAsync) + "]");
// 调用pdf验章接口
// Long pdfVerifyTime = System.currentTimeMillis();
// String rep_pdf_verify = OkHttpClientManagerPdfVerify.post(urlPdfVerify, AuthService.getHeader().get("Authorization").toString(), mapPdfVerify);
// log.error("pdfVerifyTime time is [" + (System.currentTimeMillis() - pdfVerifyTime) + "]");
//
// JSONObject jsonPdfVerify = JSONObject.parseObject(rep_pdf_verify);
// if(jsonPdfVerify.getInteger("code") == 0){
// eventContent.setEventStatus(1);
// } else {
// eventContent.setEventStatus(0);
// eventContent.setFailureReason(jsonPdfVerify.getString("message"));
// basicInformation.setEvidenceStatus(0);
// if(StringUtils.isEmpty(basicInformation.getFailureReason())) {
// basicInformation.setFailureReason(jsonPdfVerify.getString("message"));
// } else {
// basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + jsonPdfVerify.getString("message"));
// }
// }
// String retVerifyTi = null;
// String retVerifyBehavior = null;
// String retVerifyTime = null;
// if(StringUtils.isNotEmpty(rep_pdf_verify)
// && StringUtils.isNotEmpty(jsonPdfVerify.getString("signInfos"))) {
// // 解析pdf验章返回信息
// JSONArray jsonArraySignInfos = jsonPdfVerify.getJSONArray("signInfos");
// List<String> listStr = new ArrayList<>();
// int noId = 0;
// for(int k=0;k<jsonArraySignInfos.size();k++) {
// // 循环得到pdf验章返回数据
// JSONObject json = jsonArraySignInfos.getJSONObject(k);
// // 对应可信身份
// EvidenceTrustedIdentity trustedIdentity1 = null;
//
// // 判断验章是否包含证书
// if(StringUtils.isNotEmpty(json.getString("signerCert"))) {
// // 解析签名者证书base64编码
// UserCert userCert1 = CertUtil.getCertFromBase64(json.getString("signerCert"));
// EvidenceCertUser certUser = certUserService.getCertBySn(userCert1.getCertSn());
// if(certUser == null) {
// certUser = new EvidenceCertUser();
// certUser.setCertBase64(json.getString("signerCert"));
// certUser.setCertSerialnumber(userCert1.getCertSn());
// certUser.setSubjectdn(userCert1.getCertDn());
// certUser.setIssuerdn(userCert1.getIssuerDn());
// certUser.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert1.getIssuerDn()));
// if(userCert1.getCertBuf() != null){
// certUser.setEvidenceBuf(userCert1.getCertBuf().toString());
// }
// certUser.setStartTime(userCert1.getCertStartTime());
// certUser.setEndTime(userCert1.getCertEndTime());
// certUser.setCreateTime(new Date());
// certUser.setIdCode(UniqueIDUtils.getUID());
// objs.add(certUser);
// }
//
// boolean blt = true;
// // 循环已经存在的证书序列号 判断证书序列号是否存在
// for(String strCertSn:listStr){
// if(userCert1 != null && strCertSn.equals(userCert1.getCertSn())){
// blt = false;
// }
// }
// // 循环可信身份list缓存 判断证书序列号是否相同
// if(!tiCacheList.isEmpty() && tiCacheList != null){
// for(EvidenceTrustedIdentity identity:tiCacheList) {
// if(identity.getCertSerialnumber().equals(userCert1.getCertSn())){
// trustedIdentity1 = identity;
// }
// }
// }
// if(trustedIdentity1 == null) {
// noId--;
// }
// if(blt) {
// // 事件对象定义
// EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
// trustedIdentity.setBasicInformation(basicInformation.getEvidenceSn());
// trustedIdentity.setEventContent(eventContent.getIdCode());
// if(trustedIdentity1 != null){
// trustedIdentity.setMainInformation(trustedIdentity1.getMainInformation());
// // 整合证书信息存储到对应可信身份表
// trustedIdentity1.setCertBase64(certUser.getIdCode());
// // sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey",
// // trustedIdentity1);
// objs.add(trustedIdentity1);
// } else {
// trustedIdentity.setMainInformation(noId+"");
// }
// trustedIdentity.setCertBase64(certUser.getIdCode());
// trustedIdentity.setCreateTime(new Date());
// trustedIdentity.setIdentiType("1");
// if(userCert1.getCertBuf() != null){
// trustedIdentity.setEvidenceBuf(userCert1.getCertBuf().toString());
// }
// trustedIdentity.setStartTime(userCert1.getCertStartTime());
// trustedIdentity.setEndTime(userCert1.getCertEndTime());
//
// // 事件对象核验结果
// trustedIdentity.setCheckTime(new Date());
// if(json.getIntValue("vcResult") == 0) {
// trustedIdentity.setCheckStatus("1");
// trustedIdentity.setCheckSuccessTime(new Date());
// } else {
// if(StringUtils.isEmpty(retVerifyTi))
// retVerifyTi = "事件对象核验失败";
// trustedIdentity.setCheckStatus("0");
// if(json.getIntValue("vcResult") == 30006)
// trustedIdentity.setUnreason("未找到对应的受信任CA证书");
// else if(json.getIntValue("vcResult") == 30007)
// trustedIdentity.setUnreason("证书已吊销");
// else if(json.getIntValue("vcResult") == 30008)
// trustedIdentity.setUnreason("证书不在有效期内");
// else if(json.getIntValue("vcResult") == 30009)
// trustedIdentity.setUnreason("无效的证书签名");
// else if(json.getIntValue("vcResult") == 300010)
// trustedIdentity.setUnreason("其他证书验证错误");
// else
// trustedIdentity.setUnreason("非正常其他证书验证错误");
// }
// trustedIdentity.setVewestCheckTime(new Date());
// // trustedIdentity.setCheckContent("1.验证证书有效期/n2.验证证书颁发者签名/n3.验证证书是否吊销");
// // sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
// objs.add(trustedIdentity);
// }
// listStr.add(userCert1.getCertSn());
// } else {
// retVerifyTi = "事件对象核验失败";
// }
// // 事件行为定义
// EvidenceEventBehavior eventBehavior = new EvidenceEventBehavior();
// // 判断时间戳是否存在
// if(StringUtils.isNotEmpty(json.getString("timeStamp"))
// && !json.getString("timeStamp").equals("{}")) {
// // 验证时间戳
// EvidenceEventTime eventTime = new EvidenceEventTime();
// if(trustedIdentity1 != null){
// eventTime.setMainInformation(trustedIdentity1.getMainInformation());
// } else {
// eventTime.setMainInformation(noId+"");
// }
// eventTime.setIdentiType("1");
// eventTime.setEventContent(eventContent.getIdCode());
// eventTime.setCertificate(json.getJSONObject("timeStamp").getString("signature"));
// eventTime.setHashAlgorithm(json.getJSONObject("timeStamp").getString("hashAlg"));
// eventTime.setHashvalue(json.getJSONObject("timeStamp").getString("hashData"));
// eventTime.setCertBase64(json.getJSONObject("timeStamp").getString("tsCert"));
// if(StringUtils.isNotEmpty(json.getJSONObject("timeStamp").getString("time"))) {
// eventTime.setSignatureTime(json.getJSONObject("timeStamp").getDate("time"));
// } else {
// eventTime.setSignatureTime(json.getDate("stampTime"));
// }
// eventTime.setCreateTime(new Date());
// // 解析时间戳证书 Base64
// if(json.getJSONObject("timeStamp").getString("tsCert") != null) {
// UserCert userCert = CertUtil.getCertFromBase64(json.getJSONObject("timeStamp").getString("tsCert"));
// eventTime.setCertificateDn(userCert.getCertDn());
// eventTime.setIssuerdn(userCert.getIssuerDn());
// }
// // 时间核验结果
// eventTime.setCheckTime(new Date());
// if(json.getIntValue("vtsResult") == 0) {
// eventTime.setCheckStatus("1");
// eventTime.setCheckSuccessTime(new Date());
// } else {
// if(StringUtils.isEmpty(retVerifyTime)) {
// retVerifyTime = "事件时间核验失败";
// }
// eventTime.setCheckStatus("0");
// if(json.getIntValue("vtsResult") == 60002) {
// eventTime.setUnreason("验证时戳失败");
// } else {
// eventTime.setUnreason("其他验证时戳错误");
// }
// }
// eventTime.setVewestCheckTime(new Date());
// // eventTime.setCheckContent("签名原文完整、真实、是否被篡改");
// objs.add(eventTime);
// } else {
// eventBehavior.setVerificationTime(json.getDate("stampTime"));
// }
// // 判断事件行为是否返回为空
// if(StringUtils.isNotEmpty(json.getString("signature"))) {
// eventBehavior.setHashAlgorithm(json.getString("hashAlg"));
// eventBehavior.setSignaturevalue(json.getString("signature"));
// eventBehavior.setHashBackSigning(json.getString("msgDigest"));
// eventBehavior.setEventContent(eventContent.getIdCode());
// eventBehavior.setIdentiType("1");
// eventBehavior.setCreateTime(new Date());
// if(trustedIdentity1 != null){
// eventBehavior.setMainInformation(trustedIdentity1.getMainInformation());
// } else {
// eventBehavior.setMainInformation(noId+"");
// }
// // 事件行为核验结果
// eventBehavior.setCheckTime(new Date());
// if(json.getIntValue("vdsResult") == 0) {
// eventBehavior.setCheckStatus("1");
// eventBehavior.setCheckSuccessTime(new Date());
// } else {
// if(StringUtils.isEmpty(retVerifyBehavior)) {
// retVerifyBehavior = "事件行为核验失败";
// }
// eventBehavior.setCheckStatus("0");
// if(json.getIntValue("vdsResult") == 40002) {
// eventBehavior.setUnreason("验证签名失败");
// } else {
// eventBehavior.setUnreason("其他验证签名错误");
// }
// }
// eventBehavior.setVewestCheckTime(new Date());
// // eventBehavior.setCheckContent("签名原文完整、真实、是否被篡改");
// objs.add(eventBehavior);
// } else {
// retVerifyBehavior = "事件行为核验失败";
// }
// }
// if(jsonArraySignInfos.size() == 0) {
// // eventContent.setEventStatus(0);
// // if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
// // eventContent.setFailureReason(eventContent.getFailureReason() + ",pdf签章失败:返回集合为空。");
// // } else {
// // eventContent.setFailureReason("pdf签章失败:返回集合为空。");
// // }
//
// result.put("status", 0);
// result.put("message", "pdf签章失败:返回集合为空。");
// return result;
// }
// // 整合错误信息
// // if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
// // eventContent.setFailureReason(eventContent.getFailureReason());
// // }
// if(StringUtils.isNotEmpty(retVerifyTi)) {
// if(StringUtils.isNotEmpty(eventContent.getFailureReason()))
// eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyTi);
// else
// eventContent.setFailureReason(retVerifyTi);
// }
// if(StringUtils.isNotEmpty(retVerifyBehavior)) {
// if(StringUtils.isNotEmpty(eventContent.getFailureReason()))
// eventContent.setFailureReason(retVerifyBehavior);
// else
// eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyBehavior);
// }
// if(StringUtils.isNotEmpty(retVerifyTime)) {
// if(StringUtils.isNotEmpty(eventContent.getFailureReason()))
// eventContent.setFailureReason(retVerifyTime);
// else
// eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyTime);
// }
// if(eventContent.getEventStatus() == 0) {
// if(StringUtils.isNotEmpty(basicInformation.getFailureReason())) {
// basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + eventContent.getFailureReason());
// } else {
// basicInformation.setEvidenceStatus(0);
// basicInformation.setFailureReason(eventContent.getFailureReason());
// }
// result.put("status", 0);
// result.put("message", eventContent.getFailureReason());
// return result;
// }
// }
} else {
objs.add(eventContent);
for (EvidenceTrustedIdentity identity : tiCacheList) {
objs.add(identity);
}
}
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
/**
*********************************************** 《电子合同PDF》 获取事件内容 end *******************************************
*/
}
break;
default:
break;
}
}
JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
for (int i = 0; i < jsonContentArray.size(); i++) {
// 得到对应的主体信息
JSONObject jsonContent = jsonContentArray.getJSONObject(i);
JSONObject jsonIdIdentify = jsonContent.getJSONObject("principalId");
// 判断主体是否存在
String idCacheKey = jsonIdIdentify.getString("name") + jsonIdIdentify.getString("dataId");
EvidenceMainInformation mainInformation = null;
if (cacheMainMap.get(idCacheKey) == null || "".equals(cacheMainMap.get(idCacheKey))) {
EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
mainExampleCriteria.andSubjectNameEqualTo(jsonIdIdentify.getString("name"));
mainExampleCriteria.andIdentificationEqualTo(jsonIdIdentify.getString("dataId"));
List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
if (!mainInformationList.isEmpty()) {
mainInformation = mainInformationList.get(0);
cacheMainMap.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
}
} else {
mainInformation = cacheMainMap.get(idCacheKey);
}
if (mainInformation == null || "".equals(mainInformation)) {
result.put("status", 0);
result.put("message", "判断主体为空");
return result;
}
// 得到证据包中的事件数据
for (int j = 0; j < jsonEvArray.size(); j++) {
JSONObject object = jsonEvArray.getJSONObject(j);
switch(j) {
// 事件意愿认证
case 2:
// <--------------------- 提交证书授权 start ------------------------->
JSONObject jsonWillCert = jsonContent.getJSONObject("authEventWillCert");
JSONObject jsonWillSms = jsonContent.getJSONObject("authEventWillSms");
if (jsonWillSms != null && jsonWillCert != null) {
result.put("status", 0);
result.put("message", "提交的参数信息错误,证据及短信授权信息只能填写其一");
return result;
}
if (jsonWillCert != null) {
// 判断是否接收
if (object.getJSONObject("e_isReception").getBooleanValue("e_isReception_1")) {
EvidenceEventDesire eventDesire = new EvidenceEventDesire();
if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonWillCert.getString("certBase64")) || StringUtils.isEmpty(jsonWillCert.getString("challengeCode")) || StringUtils.isEmpty(jsonWillCert.getString("answerCode")) || StringUtils.isEmpty(jsonWillCert.getString("verifyTime")) || StringUtils.isEmpty(jsonWillCert.getString("authenticatorThenType")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
return result;
}
// 验证证书
String urlCertVerify = realNameAuthentication.getRealNameddress() + CERT_VERIFY;
Map<String, Object> mapCertVerify = new HashMap<String, Object>();
mapCertVerify.put("cert", jsonWillCert.getString("certBase64"));
mapCertVerify.put("verifyFlag", "7");
String rep_cert_verify = HttpClientUtil.postForm(urlCertVerify, AuthService.getHeader(), mapCertVerify);
JSONObject jsonCertVerify = JSONObject.parseObject(rep_cert_verify);
if (StringUtils.isNotEmpty(rep_cert_verify) && jsonCertVerify.getIntValue("code") == 0) {
// 解析证书Base64
UserCert userCert = CertUtil.getCertFromBase64(jsonWillCert.getString("certBase64"));
eventDesire.setCertSerialnumber(userCert.getCertSn());
eventDesire.setSubjectdn(userCert.getCertDn());
eventDesire.setIssuerdn(userCert.getIssuerDn());
if (userCert.getCertBuf() != null) {
eventDesire.setEvidenceBuf(userCert.getCertBuf().toString());
}
eventDesire.setStartTime(userCert.getCertStartTime());
eventDesire.setEndTime(userCert.getCertEndTime());
} else {
result.put("status", 0);
result.put("message", "验证证书失败");
return result;
}
eventDesire.setChallengeCode(jsonWillCert.getString("challengeCode"));
eventDesire.setAnswerCode(jsonWillCert.getString("answerCode"));
eventDesire.setClientDevice(jsonWillCert.getString("clientFacility"));
eventDesire.setVerificationTime(jsonWillCert.getDate("verifyTime"));
eventDesire.setWaysExpression("1");
String eventVerifier = getAuthenticator(Integer.parseInt(jsonWillCert.getString("authenticatorThenType")), basicInformation.getEventPlatformName());
eventDesire.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
eventDesire.setEventContente(eventContent.getIdCode());
eventDesire.setCreateTime(new Date());
eventDesire.setEventVerifierType(jsonWillCert.getString("authenticatorThenType"));
eventDesire.setEventVerifier(eventVerifier);
objs.add(eventDesire);
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
}
// <--------------------- 提交短信授权 start ------------------------->
if (jsonWillSms != null) {
// 判断是否接收
if (object.getJSONObject("e_isReception").getBooleanValue("e_isReception_2")) {
EvidenceEventDesire eventDesire = new EvidenceEventDesire();
if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonWillSms.getString("phone")) || StringUtils.isEmpty(jsonWillSms.getString("sendTime")) || StringUtils.isEmpty(jsonWillSms.getString("smsContent")) || StringUtils.isEmpty(jsonWillSms.getString("verifyCode")) || StringUtils.isEmpty(jsonWillSms.getString("verifyTime")) || StringUtils.isEmpty(jsonWillSms.getString("authenticatorThenType")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
return result;
}
eventDesire.setPhone(jsonWillSms.getString("phone"));
eventDesire.setSmsContent(jsonWillSms.getString("smsContent"));
eventDesire.setVerificationCode(jsonWillSms.getString("verifyCode"));
eventDesire.setSendOutTime(jsonWillSms.getDate("sendTime"));
eventDesire.setVerificationTime(jsonWillSms.getDate("verifyTime"));
eventDesire.setWaysExpression("2");
String eventVerifier = getAuthenticator(Integer.parseInt(jsonWillSms.getString("authenticatorThenType")), basicInformation.getEventPlatformName());
eventDesire.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
eventDesire.setEventContente(eventContent.getIdCode());
eventDesire.setCreateTime(new Date());
eventDesire.setEventVerifierType(jsonWillSms.getString("authenticatorThenType"));
eventDesire.setEventVerifier(eventVerifier);
objs.add(eventDesire);
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
}
break;
// 事件地点认证
case 4:
// 判断是否接收
if (object.getBooleanValue("e_isReception")) {
JSONObject jsonAddress = jsonContent.getJSONObject("netAddress");
if (jsonAddress != null && !(jsonAddress.getString("appUid") == null && jsonAddress.getString("timeReg") == null && jsonAddress.getString("ipAddressReg") == null && jsonAddress.getString("ipAddressSign") == null)) {
// 定义事件网络地址对象
EvidenceEventNetworkAddress eventNetworkAddress = new EvidenceEventNetworkAddress();
// 整合数据 存储
eventNetworkAddress.setEventContent(eventContent.getIdCode());
eventNetworkAddress.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
eventNetworkAddress.setCreateTime(new Date());
eventNetworkAddress.setAccountNumber(jsonAddress.getString("appUid"));
eventNetworkAddress.setIpAddress(jsonAddress.getString("ipAddressReg"));
eventNetworkAddress.setSigninTime(jsonAddress.getDate("timeReg"));
eventNetworkAddress.setSigninNumber(jsonAddress.getString("appUid"));
eventNetworkAddress.setSigninipAddress(jsonAddress.getString("ipAddressReg"));
eventNetworkAddress.setSendOutTime(jsonAddress.getDate("timeReg"));
objs.add(eventNetworkAddress);
}
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
break;
}
}
}
}
log.error("saveFactor content is [" + saveFactor + "]");
result.put("saveFactor", saveFactor);
result.put("basicInformation", basicInformation);
result.put("objs", objs);
return result;
} catch (Exception e) {
e.printStackTrace();
StackTraceElement stackTraceElement = e.getStackTrace()[e.getStackTrace().length - 5];
String info = stackTraceElement.getClassName() + stackTraceElement.getLineNumber() + e.toString();
LogUtil.evidencelog(sqlSession, evidenceSn, "存证接口", "存证失败,证据编号:" + evidenceSn + ", 失败原因:" + info);
result.put("status", -5);
result.put("message", "系统服务错误,请联系管理员");
return result;
}
}
use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.
the class EvidenceSaveTask method saveFactor.
// 核验要素
private Map<String, Object> saveFactor(Map<String, Object> result, EvidenceSaveService evidenceSaveService, String evidenceSn, JSONObject jsonEvidenceContent, EvidenceBasicInformation basicInformation, RealNameAuthentication realNameAuthentication, RealNameAuthentication realNameAuthenticationOss, EvidenceServiceConfiguration serviceConfiguration, Boolean bl) throws Exception {
try {
List<Object> objs = new ArrayList<Object>();
// 定义证据要素字段
String saveFactor = null;
// 证据存证的业务类型
String type = null;
String hapPrincipalName = null;
// 定义主体身份
// Map<String, EvidenceMainInformation> mapIdCache = new HashMap<String, EvidenceMainInformation>();
// 得到业务基本信息要素配置
String factorBusinessInfo = evidenceSaveService.getFactorBusinessInfo();
JSONArray jsonBiArray = JSONArray.parseArray(factorBusinessInfo);
// TODO : 核验事件认证
if (jsonEvidenceContent.get("authEvent") != null) {
// 可信身份缓存信息
// List<EvidenceTrustedIdentity> tiCacheList = new ArrayList<>();
JSONObject jsonAuthEvent = jsonEvidenceContent.getJSONObject("authEvent");
// 判断是否为补交信息
if (bl) {
basicInformation.setEvidenceType(2);
// 核验基础信息
for (int i = 0; i < jsonBiArray.size(); i++) {
JSONObject object = jsonBiArray.getJSONObject(i);
String name = object.getString("name");
String content = jsonAuthEvent.getString(name);
JSONObject jsonContent;
switch(i) {
// 事件发生平台
case 0:
jsonContent = JSONObject.parseObject(content);
hapPrincipalName = jsonContent.getString("hapPrincipalName");
// 判断是否接收
if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getCompanyName())) {
// 判断是否必填
if (bl && object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(jsonContent.getString("hapPlatformDomain"))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件发生平台必要参数值");
return result;
}
if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
basicInformation.setCompanyName(hapPrincipalName);
basicInformation.setEventPlatformName(jsonContent.getString("hapPlatformName"));
basicInformation.setDomainName(jsonContent.getString("hapPlatformDomain"));
}
break;
// 业务类型
case 1:
// 判断是否接收
if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getType())) {
// 判断是否必填
if (bl && object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(content)) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少业务类型参数值");
return result;
}
if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
basicInformation.setType(content);
type = object.getString("b_category");
}
break;
// 业务描述
case 2:
// 判断是否接收
if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getDescription())) {
if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
basicInformation.setDescription(content);
}
break;
// 业务单号
case 3:
// 判断是否接收
if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getServiceNumber())) {
if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
basicInformation.setServiceNumber(content);
}
break;
}
}
// if(basicInformation.getId() == null) {
// // 存储证据基本信息
// long beginTime = System.currentTimeMillis();//1、开始时间
// sqlSession.insert("com.itrus.portal.db.EvidenceBasicInformationMapper.insert", basicInformation);
// sqlSession.flushStatements();
// log.error("证据表耗时:{}", System.currentTimeMillis() - beginTime);
// } else {
// sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
// sqlSession.flushStatements();
// log.debug("Size : " + basicInformation.getEvidenceSize());
// }
} else {
sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
sqlSession.flushStatements();
// 核验基础信息
for (int i = 0; i < jsonBiArray.size(); i++) {
JSONObject object = jsonBiArray.getJSONObject(i);
if (i == 1) {
type = object.getString("b_category");
}
}
}
// 得到身份认证要素配置
String factorIdVerify = evidenceSaveService.getFactorIdVerify();
JSONArray jsonIdArray = JSONArray.parseArray(factorIdVerify);
Map<String, Object> cacheSubjectIdentity = new HashMap<String, Object>();
// 得到证据包中的事件认证数据中的事件对象认证
for (int i = 0; i < jsonIdArray.size(); i++) {
JSONObject object = jsonIdArray.getJSONObject(i);
/**
*********************************************** 《合同摘要数据》和《图片摘要数据》, 《信息摘要数据》获取主体 start *******************************************
*/
if ("合同摘要数据".equals(type) || "图片摘要数据".equals(type) || "信息摘要数据".equals(type)) {
// 得到事件包信息数据
JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("principalId");
if (i == 0 && object.getBooleanValue("i_isReception")) {
// 循环主体
for (int j = 0; j < jsonContentArray.size(); j++) {
JSONObject jsonContent = jsonContentArray.getJSONObject(j);
// 判断是否必填
if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContent.getString("type")) || StringUtils.isEmpty(jsonContent.getString("name")) || StringUtils.isEmpty(jsonContent.getString("dataId")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少主体身份参数值");
return result;
}
// 判断主体是否存在
// String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
EvidenceMainInformation mainInformation = null;
// EvidenceBasicInformation basicInformation2 = null;
EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name").trim());
mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId").trim());
mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
if (!mainInformationList.isEmpty()) {
mainInformation = mainInformationList.get(0);
}
// 当主体为空时 添加主体信息
if (mainInformation == null) {
mainInformation = new EvidenceMainInformation();
mainInformation.setSubjectName(jsonContent.getString("name").trim());
mainInformation.setIdentification(jsonContent.getString("dataId").trim());
mainInformation.setMainType(jsonContent.getString("type"));
mainInformation.setCreateTime(new Date());
mainInformation.setId(basicInformation.getId());
// queueThread.putObjectQueue(mainInformation);
objs.add(mainInformation);
// queueThread.putMap(mainInformation.getSubjectName() + mainInformation.getIdentification());
}
// else {
// // 判断基础信息表 和 主体表是否存在关联
// EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
// iece.andBasicInformationEqualTo(evidenceSn!=null?evidenceSn:genSn);
// iece.andMainInformationEqualTo(mainInformation.getIdentification());
// EvidenceSubjectIdentity subjectIdentityExist = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
// if(subjectIdentityExist == null) {
// EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
// subjectIdentity1.setBasicInformation(evidenceSn!=null?evidenceSn:genSn);
// subjectIdentity1.setMainInformation(mainInformation.getIdentification());
// queueThread.putObjectQueue(subjectIdentity1);
// // sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insert", subjectIdentity1);
// }
// }
String key = evidenceSn + jsonContent.getString("name").trim() + jsonContent.getString("dataId").trim();
if (cacheSubjectIdentity.get(key) == null) {
EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
subjectIdentity1.setBasicInformation(evidenceSn);
subjectIdentity1.setMainInformation(jsonContent.getString("dataId").trim());
subjectIdentity1.setMainName(jsonContent.getString("name").trim());
subjectIdentity1.setMainType(jsonContent.getShort("type"));
subjectIdentity1.setCreateTime(new Date());
// queueThread.putObjectQueue(subjectIdentity1);
objs.add(subjectIdentity1);
cacheSubjectIdentity.put(key, subjectIdentity1);
}
// 遍历 mapIdCache 的key值 判断是否存在 不存在则添加
// for(String key:mapIdCache.keySet()) {
// if(!idCacheKey.equals(key)) {
// mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
// }
// }
mainInformation = null;
mainInformationExample = null;
}
}
}
/**
*********************************************** 《合同摘要数据》和《图片摘要数据》 , 《信息摘要数据》获取主体 end *******************************************
*/
}
// 得到事件认证要素配置
String factorEventVerify = evidenceSaveService.getFactorEventVerify();
JSONArray jsonEvArray = JSONArray.parseArray(factorEventVerify);
// 得到证据包中的事件认证数据中的事件对象认证
// for(int i=0;i<jsonEvArray.size();i++) {
// JSONObject object = jsonEvArray.getJSONObject(i);
// // 可信身份标识
// // 判断是否接收
// if(i == 3 && object.getBooleanValue("e_isReception")) {
// if("电子合同PDF".equals(type)) {
// /************************************************* 《电子合同PDF》 获取事件发生主体 start ********************************************/
// // 得到事件包信息数据
// JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
// for(int j=0;j<jsonContentArray.size();j++) {
// JSONObject jsonContent = jsonContentArray.getJSONObject(j).getJSONObject("idIdentify");
// // 判断是否必填
// if(object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonContent.getString("type"))
// || StringUtils.isEmpty(jsonContent.getString("certSn"))
// || StringUtils.isEmpty(jsonContent.getString("name"))
// || StringUtils.isEmpty(jsonContent.getString("dataId")))
// ) {
// result.put("status", 0);
// result.put("message", "提交的参数信息不完整,缺少可信身份标识参数值");
// return;
// }
// // 判断主体是否存在
// String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
// EvidenceMainInformation mainInformation = null;
// EvidenceBasicInformation basicInformation2 = null;
// EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
// EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
// mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name"));
// mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId"));
// mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
// List<EvidenceMainInformation> mainInformationList = sqlSession
// .selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
// if(!mainInformationList.isEmpty()) {
// mainInformation = mainInformationList.get(0);
// }
// // 当主体为空时 添加主体信息
// if(mainInformation == null) {
// mainInformation = new EvidenceMainInformation();
// mainInformation.setSubjectName(jsonContent.getString("name"));
// mainInformation.setIdentification(jsonContent.getString("dataId"));
// mainInformation.setMainType(jsonContent.getString("type"));
// mainInformation.setCreateTime(new Date());
// sqlSession.insert("com.itrus.portal.db.EvidenceMainInformationMapper.insert", mainInformation);
// sqlSession.flushStatements();
// }
// // 遍历 mapIdCache 的key值 判断是否存在 不存在则添加
// for(String key:mapIdCache.keySet()) {
// if(!idCacheKey.equals(key)) {
// mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
// }
// }
// // 判断基础信息表 和 主体表是否存在关联
// EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
// iece.andBasicInformationEqualTo(evidenceSn!=null?evidenceSn:genSn);
// iece.andMainInformationEqualTo(mainInformation.getIdentification());
// EvidenceSubjectIdentity subjectIdentityExist = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
// if(subjectIdentityExist == null) {
// EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
// subjectIdentity1.setBasicInformation(evidenceSn!=null?evidenceSn:genSn);
// subjectIdentity1.setMainInformation(mainInformation.getIdentification());
// sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insert", subjectIdentity1);
// }
// // 判断是否需要关联身份证据
// if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
// basicInformation2 = informationServiceImpl.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
// if(basicInformation2 != null) {
// EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
// iec.andBasicInformationEqualTo(evidenceSn!=null?evidenceSn:genSn);
// iec.andMainInformationEqualTo(mainInformation.getIdentification());
// EvidenceSubjectIdentity subjectIdentity = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
// if(subjectIdentity == null) {
// result.put("status", 0);
// result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
// + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
// return;
// }
// } else {
// result.put("status", 0);
// result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
// + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
// return;
// }
// }
// EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
// // 判断是否为补交信息
// if(!bl && jsonContent.getString("certSn") != null) {
// EvidenceTrustedIdentityExample trustedIdentityExample = new EvidenceTrustedIdentityExample();
// EvidenceTrustedIdentityExample.Criteria tec = trustedIdentityExample.createCriteria();
// tec.andBasicInformationEqualTo(basicInformation.getId());
// tec.andCertSerialnumberEqualTo(jsonContent.getString("certSn"));
// List<EvidenceTrustedIdentity> trustedIdentities = sqlSession
// .selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustedIdentityExample);
// // 补交主体后判断 事件对象不为空则修改事件对象关联的主体
// if(!trustedIdentities.isEmpty()) {
// EvidenceTrustedIdentity ti = trustedIdentities.get(0);
// Long oldMainId = ti.getMainInformation();
// ti.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey", ti);
// // 给可信身份赋值
// trustedIdentity.setCertSerialnumber(ti.getCertSerialnumber());
// trustedIdentity.setSubjectdn(ti.getSubjectdn());
// trustedIdentity.setIssuerdn(ti.getIssuerdn());
// trustedIdentity.setIssuer(ti.getIssuer());
// trustedIdentity.setEvidenceBuf(ti.getEvidenceBuf());
// trustedIdentity.setStartTime(ti.getStartTime());
// trustedIdentity.setEndTime(ti.getEndTime());
// // 修改事件时间关联的主体信息
// EvidenceEventTimeExample timeExample = new EvidenceEventTimeExample();
// EvidenceEventTimeExample.Criteria timeEc = timeExample.createCriteria();
// timeEc.andMainInformationEqualTo(oldMainId);
// timeEc.andEventContentEqualTo(ti.getEventContent());
// List<EvidenceEventTime> times = sqlSession
// .selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", timeExample);
// for(EvidenceEventTime time:times) {
// time.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceEventTimeMapper.updateByPrimaryKey", time);
// }
// // 修改事件行为关联的主体信息
// EvidenceEventBehaviorExample behaviorExample = new EvidenceEventBehaviorExample();
// EvidenceEventBehaviorExample.Criteria behaviorEc = behaviorExample.createCriteria();
// behaviorEc.andMainInformationEqualTo(oldMainId);
// behaviorEc.andEventContentEqualTo(ti.getEventContent());
// List<EvidenceEventBehavior> behaviors = sqlSession
// .selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", behaviorExample);
// for(EvidenceEventBehavior behavior:behaviors) {
// behavior.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceEventBehaviorMapper.updateByPrimaryKey", behavior);
// }
// sqlSession.flushStatements();
// } else {
// continue;
// }
// }
// // 判断证据base64 字段是否为空
// // if(StringUtils.isNotEmpty(jsonContent.getString("certBase64"))) {
// // trustedIdentity.setCertBase64(jsonContent.getString("certBase64"));
// // // 解析证书Base64
// // UserCert userCert = CertUtil.getCertFromBase64(jsonContent.getString("certBase64"));
// // trustedIdentity.setCertSerialnumber(userCert.getCertSn());
// // trustedIdentity.setSubjectdn(userCert.getCertDn());
// // trustedIdentity.setIssuerdn(userCert.getIssuerDn());
// // trustedIdentity.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert.getIssuerDn()));
// // if(userCert.getCertBuf() != null) {
// // trustedIdentity.setEvidenceBuf(userCert.getCertBuf().toString());
// // }
// // trustedIdentity.setStartTime(userCert.getCertStartTime());
// // trustedIdentity.setEndTime(userCert.getCertEndTime());
// // }
// //// trustedIdentity.setCertSerialnumber(jsonContent.getString("certSn"));
// // trustedIdentity.setIdentiType(jsonContent.getString("type"));
// // trustedIdentity.setBasicInformation(basicInformation.getId());
// // trustedIdentity.setEvidenceEnclosure(enclosure.getId());
// // if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn")))
// // trustedIdentity.setEvidenceSn(jsonContent.getString("evidenceSn"));
// // trustedIdentity.setCreateTime(new Date());
// // if(mainInformation != null && !"".equals(mainInformation))
// // trustedIdentity.setMainInformation(mainInformation.getId());
// // sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
// // sqlSession.flushStatements();
// tiCacheList.add(trustedIdentity);
// }
// if(jsonContentArray.size() != 0) {
// saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
// }
// }
// /************************************************* 《电子合同PDF》 获取事件发生主体 end ********************************************/
// }
// }
// 得到事件包信息数据
// JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
// for(int j=0;j<jsonContentArray.size();j++) {
// JSONObject jsonContent = jsonContentArray.getJSONObject(j).getJSONObject("idIdentify");
// // 判断是否必填
// if(object.getBooleanValue("i_isRequired") && ( StringUtils.isEmpty(jsonContent.getString("type"))
// || (("1".equals(type) && StringUtils.isEmpty(jsonContent.getString("certSn")))
// || (!"1".equals(type) && StringUtils.isEmpty(jsonContent.getString("certBase64")))))) {
// result.put("status", 0);
// result.put("message", "提交的参数信息不完整,缺少可信身份标识参数值");
// return;
// }
// // 判断主体是否存在
// String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
// EvidenceMainInformation mainInformation = null;
// EvidenceBasicInformation basicInformation2 = null;
// EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
// EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
// mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name"));
// mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId"));
// mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
// List<EvidenceMainInformation> mainInformationList = sqlSession
// .selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
// if(!mainInformationList.isEmpty()) {
// mainInformation = mainInformationList.get(0);
// }
// // 当主体为空时 添加主体信息
// if(mainInformation == null) {
// mainInformation = new EvidenceMainInformation();
// mainInformation.setSubjectName(jsonContent.getString("name"));
// mainInformation.setIdentification(jsonContent.getString("dataId"));
// mainInformation.setMainType(jsonContent.getString("type"));
// mainInformation.setCreateTime(new Date());
// sqlSession.insert("com.itrus.portal.db.EvidenceMainInformationMapper.insert", mainInformation);
// sqlSession.flushStatements();
// }
// // 遍历 mapIdCache 的key值 判断是否存在 不存在则添加
// for(String key:mapIdCache.keySet()) {
// if(!idCacheKey.equals(key)) {
// mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
// }
// }
// // 判断基础信息表 和 主体表是否存在关联
// EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
// iece.andBasicInformationEqualTo(basicInformation.getId());
// iece.andMainInformationEqualTo(mainInformation.getId());
// EvidenceSubjectIdentity subjectIdentityExist = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
// if(subjectIdentityExist == null) {
// EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
// subjectIdentity1.setBasicInformation(basicInformation.getId());
// subjectIdentity1.setMainInformation(mainInformation.getId());
// sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insert", subjectIdentity1);
// }
// // 判断是否需要关联身份证据
// if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
// basicInformation2 = informationServiceImpl.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
// if(basicInformation2 != null) {
// EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
// iec.andBasicInformationEqualTo(basicInformation2.getId());
// iec.andMainInformationEqualTo(mainInformation.getId());
// EvidenceSubjectIdentity subjectIdentity = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
// if(subjectIdentity == null) {
// result.put("status", 0);
// result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
// + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
// return;
// }
// } else {
// result.put("status", 0);
// result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
// + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
// return;
// }
// }
// EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
// // 判断是否为补交信息
// if(!bl && jsonContent.getString("certSn") != null) {
// EvidenceTrustedIdentityExample trustedIdentityExample = new EvidenceTrustedIdentityExample();
// EvidenceTrustedIdentityExample.Criteria tec = trustedIdentityExample.createCriteria();
// tec.andBasicInformationEqualTo(basicInformation.getId());
// tec.andCertSerialnumberEqualTo(jsonContent.getString("certSn"));
// List<EvidenceTrustedIdentity> trustedIdentities = sqlSession
// .selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustedIdentityExample);
// // 补交主体后判断 事件对象不为空则修改事件对象关联的主体
// if(!trustedIdentities.isEmpty()) {
// EvidenceTrustedIdentity ti = trustedIdentities.get(0);
// Long oldMainId = ti.getMainInformation();
// ti.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey", ti);
// // 给可信身份赋值
// trustedIdentity.setCertSerialnumber(ti.getCertSerialnumber());
// trustedIdentity.setSubjectdn(ti.getSubjectdn());
// trustedIdentity.setIssuerdn(ti.getIssuerdn());
// trustedIdentity.setIssuer(ti.getIssuer());
// trustedIdentity.setEvidenceBuf(ti.getEvidenceBuf());
// trustedIdentity.setStartTime(ti.getStartTime());
// trustedIdentity.setEndTime(ti.getEndTime());
// // 修改事件时间关联的主体信息
// EvidenceEventTimeExample timeExample = new EvidenceEventTimeExample();
// EvidenceEventTimeExample.Criteria timeEc = timeExample.createCriteria();
// timeEc.andMainInformationEqualTo(oldMainId);
// timeEc.andEventContentEqualTo(ti.getEventContent());
// List<EvidenceEventTime> times = sqlSession
// .selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", timeExample);
// for(EvidenceEventTime time:times) {
// time.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceEventTimeMapper.updateByPrimaryKey", time);
// }
// // 修改事件行为关联的主体信息
// EvidenceEventBehaviorExample behaviorExample = new EvidenceEventBehaviorExample();
// EvidenceEventBehaviorExample.Criteria behaviorEc = behaviorExample.createCriteria();
// behaviorEc.andMainInformationEqualTo(oldMainId);
// behaviorEc.andEventContentEqualTo(ti.getEventContent());
// List<EvidenceEventBehavior> behaviors = sqlSession
// .selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", behaviorExample);
// for(EvidenceEventBehavior behavior:behaviors) {
// behavior.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceEventBehaviorMapper.updateByPrimaryKey", behavior);
// }
// sqlSession.flushStatements();
// } else {
// continue;
// }
// }
//
// // 判断是否为电子合同
// if("1".equals(type)) {
// // 判断是否需要关联身份证据
// if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
// basicInformation2 = informationServiceImpl.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
// if(basicInformation2 != null) {
// EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
// EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
// iec.andBasicInformationEqualTo(basicInformation2.getId());
// iec.andMainInformationEqualTo(mainInformation.getId());
// EvidenceSubjectIdentity subjectIdentity = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
// if(subjectIdentity == null) {
// result.put("status", 0);
// result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
// + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
// return;
// }
// } else {
// result.put("status", 0);
// result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
// + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
// return;
// }
// }
// EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
// // 判断是否为补交信息
// if(!bl && jsonContent.getString("certSn") != null) {
// EvidenceTrustedIdentityExample trustedIdentityExample = new EvidenceTrustedIdentityExample();
// EvidenceTrustedIdentityExample.Criteria tec = trustedIdentityExample.createCriteria();
// tec.andBasicInformationEqualTo(basicInformation.getId());
// tec.andCertSerialnumberEqualTo(jsonContent.getString("certSn"));
// List<EvidenceTrustedIdentity> trustedIdentities = sqlSession
// .selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustedIdentityExample);
// // 补交主体后判断 事件对象不为空则修改事件对象关联的主体
// if(!trustedIdentities.isEmpty()) {
// EvidenceTrustedIdentity ti = trustedIdentities.get(0);
// Long oldMainId = ti.getMainInformation();
// ti.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey", ti);
// // 给可信身份赋值
// trustedIdentity.setCertSerialnumber(ti.getCertSerialnumber());
// trustedIdentity.setSubjectdn(ti.getSubjectdn());
// trustedIdentity.setIssuerdn(ti.getIssuerdn());
// trustedIdentity.setIssuer(ti.getIssuer());
// trustedIdentity.setEvidenceBuf(ti.getEvidenceBuf());
// trustedIdentity.setStartTime(ti.getStartTime());
// trustedIdentity.setEndTime(ti.getEndTime());
// // 修改事件时间关联的主体信息
// EvidenceEventTimeExample timeExample = new EvidenceEventTimeExample();
// EvidenceEventTimeExample.Criteria timeEc = timeExample.createCriteria();
// timeEc.andMainInformationEqualTo(oldMainId);
// timeEc.andEventContentEqualTo(ti.getEventContent());
// List<EvidenceEventTime> times = sqlSession
// .selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", timeExample);
// for(EvidenceEventTime time:times) {
// time.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceEventTimeMapper.updateByPrimaryKey", time);
// }
// // 修改事件行为关联的主体信息
// EvidenceEventBehaviorExample behaviorExample = new EvidenceEventBehaviorExample();
// EvidenceEventBehaviorExample.Criteria behaviorEc = behaviorExample.createCriteria();
// behaviorEc.andMainInformationEqualTo(oldMainId);
// behaviorEc.andEventContentEqualTo(ti.getEventContent());
// List<EvidenceEventBehavior> behaviors = sqlSession
// .selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", behaviorExample);
// for(EvidenceEventBehavior behavior:behaviors) {
// behavior.setMainInformation(mainInformation.getId());
// sqlSession.update("com.itrus.portal.db.EvidenceEventBehaviorMapper.updateByPrimaryKey", behavior);
// }
// sqlSession.flushStatements();
// } else {
// continue;
// }
// }
// // 判断证据base64 字段是否为空
// if(StringUtils.isNotEmpty(jsonContent.getString("certBase64"))) {
// trustedIdentity.setCertBase64(jsonContent.getString("certBase64"));
// // 解析证书Base64
// UserCert userCert = CertUtil.getCertFromBase64(jsonContent.getString("certBase64"));
// trustedIdentity.setCertSerialnumber(userCert.getCertSn());
// trustedIdentity.setSubjectdn(userCert.getCertDn());
// trustedIdentity.setIssuerdn(userCert.getIssuerDn());
// trustedIdentity.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert.getIssuerDn()));
// if(userCert.getCertBuf() != null) {
// trustedIdentity.setEvidenceBuf(userCert.getCertBuf().toString());
// }
// trustedIdentity.setStartTime(userCert.getCertStartTime());
// trustedIdentity.setEndTime(userCert.getCertEndTime());
// }
// trustedIdentity.setCertSerialnumber(jsonContent.getString("certSn"));
// trustedIdentity.setIdentiType(jsonContent.getString("type"));
// trustedIdentity.setBasicInformation(basicInformation.getId());
// trustedIdentity.setEvidenceEnclosure(enclosure.getId());
// if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn")))
// trustedIdentity.setEvidenceSn(jsonContent.getString("evidenceSn"));
// trustedIdentity.setCreateTime(new Date());
// if(mainInformation != null && !"".equals(mainInformation))
// trustedIdentity.setMainInformation(mainInformation.getId());
// sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
// sqlSession.flushStatements();
// tiCacheList.add(trustedIdentity);
// }
// if(jsonContentArray.size() != 0) {
// saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
// }
// }
EvidenceEventContent eventContent = new EvidenceEventContent();
// 判断 补交不接收
if (bl) {
// 得到证据包中的事件数据
for (int i = 0; i < jsonEvArray.size(); i++) {
JSONObject object = jsonEvArray.getJSONObject(i);
String name = object.getString("name");
switch(i) {
// 事件认证
case 0:
// 判断合同类型
if ("电子合同PDF".equals(type)) {
// 电子合同
// // 判断是否接收
// if(object.getBooleanValue("e_isReception")) {
// // 得到事件内容中的信息
// JSONObject jsonEventContent = jsonAuthEvent.getJSONObject(name);
// // 判断必填
// if(object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonEventContent.getString("contCode"))
// || StringUtils.isEmpty(jsonEventContent.getString("title"))
// || StringUtils.isEmpty(jsonEventContent.getString("size"))
// || StringUtils.isEmpty(jsonEventContent.getString("page"))
// || StringUtils.isEmpty(jsonEventContent.getString("eventVerifierType")))) {
// result.put("status", 0);
// result.put("message", "提交的参数信息不完整,缺少事件内容认证参数值");
// return;
// }
// String eventVerifier = getAuthenticator(Integer.parseInt(jsonEventContent.getString("eventVerifierType")),
// hapPrincipalName, jsonEventContent.getString("eventVerifier"));
// if(StringUtils.isEmpty(eventVerifier)) {
// result.put("status", 0);
// result.put("message", "提交的参数信息不完整,缺少事件认证参数值");
// return;
// }
// // 存储事件内容信息
// eventContent.setEventVerifierType(jsonEventContent.getString("eventVerifierType"));
// eventContent.setEventVerifier(eventVerifier);
// eventContent.setIsPdf(true);
// eventContent.setContractTitle(jsonEventContent.getString("title"));
// eventContent.setContractNumber(jsonEventContent.getString("code"));
// eventContent.setValidStartTime(jsonEventContent.getDate("validStartTime"));
// eventContent.setValidEndTime(jsonEventContent.getDate("validEndTime"));
// eventContent.setDataFormat(jsonEventContent.getString("dataFormat"));
// eventContent.setEventSize(jsonEventContent.getString("size"));
// eventContent.setThePages(jsonEventContent.getInteger("page"));
// eventContent.setCreateTime(new Date());
// eventContent.setBasicInformation(basicInformation.getId());
// // eventContent.setEvidenceEnclosure(enclosure.getId());
// if (StringUtils.isNotEmpty(evidenceSn))
// eventContent.setEvidenceSn(evidenceSn);
// else
// eventContent.setEvidenceSn(genSn);
// sqlSession.insert("com.itrus.portal.db.EvidenceEventContentMapper.insert", eventContent);
//
// // 定义存储路径和存储名称
// // String bucketName = realNameAuthenticationOss.getKeyCode();
// String pdfName = evidenceSn + "UserUp.pdf";
// // 得到加密证书别名
// // String encryptionAlias = secretKeyService.getAliasByCertId((long)serviceConfiguration.getEncryptionCertificate());
// // 存储contCode 到原子服务
// // String retSave = EvidenceSaveServiceApi.storageSave("ST_O", bucketName, pdfName, "CT_MESSAGE",
// // jsonEventContent.get("contCode").toString(), null, null, null, null, null, false, null,
// // realNameAuthentication.getRealNameddress());
// // JSONObject jsonRetSave = JSONObject.parseObject(retSave);
// // if(jsonRetSave.getIntValue("code") != 0) {
// // result.put("status", 0);
// // result.put("message", "存储用户contCode失败");
// //// throw new Exception("存储用户contCode失败");
// // return;
// // } else {
// // String pdfSaveFile = systemConfigService.getpdfurl()+ File.separator + bucketName + File.separator + evidenceSn;
// // pdf存储到本地
// String pdfSaveFile = systemConfigService.getpdfurl()+ File.separator + evidenceSn;
// File filePathStr = new File(pdfSaveFile, pdfName);
// // 判断目录是否存在
// File fileUrl = new File(pdfSaveFile);
// if(!fileUrl.exists()) {
// fileUrl.mkdir();
// }
// // 用户contCode转pdf存储到本地
// boolean pdfSaveBl = Base64Util.genFileFromBase64(jsonEventContent.getString("contCode"), filePathStr.getPath());
// // boolean blStr = false;
// // if(StringUtils.isNotEmpty(jsonEventContent.getString("contCode"))) {
// // blStr = true;
// // }
// // if(pdfSaveBl) {
// // EvidenceEnclosure evidenceEnclosure = new EvidenceEnclosure();
// // evidenceEnclosure.setEvidenceSn(evidenceSn);
// // evidenceEnclosure.setBuid(jsonRetSave.getString("buid"));
// // evidenceEnclosure.setPdfType("2");
// // evidenceEnclosure.setType("ST_O");
// // evidenceEnclosure.setContentType("CT_MESSAGE");
// // evidenceEnclosure.setBucketName(bucketName);
// // evidenceEnclosure.setObjectName(pdfName);
// //// evidenceEnclosure.setAlias(encryptionAlias);
// // evidenceEnclosure.setApplicationTime(new Date());
// // evidenceEnclosure.setFixationTime(new Date());
// // evidenceEnclosure.setCreateTime(new Date());
// // evidenceEnclosure.setBasicInformation(basicInformation.getId());
// // sqlSession.insert("com.itrus.portal.db.EvidenceEnclosureMapper.insert", evidenceEnclosure);
// // }
// // }
// // 调用pdf验章接口
// Map<String, Object> mapPdfVerify = new HashMap<String, Object>();
// String urlPdfVerify = realNameAuthentication.getRealNameddress() + PDF_VERIFY;
// mapPdfVerify.put("pdfContent", jsonEventContent.get("contCode"));
// String rep_pdf_verify = HttpClientUtil.postForm(urlPdfVerify, AuthService.getHeader(), mapPdfVerify);
// JSONObject jsonPdfVerify = JSONObject.parseObject(rep_pdf_verify);
// if(jsonPdfVerify.getInteger("code") == 0){
// eventContent.setEventStatus(1);
// } else {
// eventContent.setEventStatus(0);
// eventContent.setFailureReason(jsonPdfVerify.getString("message"));
// basicInformation.setEvidenceStatus(0);
// if(StringUtils.isEmpty(basicInformation.getFailureReason())) {
// basicInformation.setFailureReason(jsonPdfVerify.getString("message"));
// } else {
// basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + jsonPdfVerify.getString("message"));
// }
// sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
// }
// String retVerifyTi = null;
// String retVerifyBehavior = null;
// String retVerifyTime = null;
// if(StringUtils.isNotEmpty(rep_pdf_verify)
// && StringUtils.isNotEmpty(jsonPdfVerify.getString("signInfos"))) {
// // 解析pdf验章返回信息
// JSONArray jsonArraySignInfos = jsonPdfVerify.getJSONArray("signInfos");
// List<String> listStr = new ArrayList<>();
// int noId = 0;
// for(int k=0;k<jsonArraySignInfos.size();k++) {
// // 循环得到pdf验章返回数据
// JSONObject json = jsonArraySignInfos.getJSONObject(k);
// // 对应可信身份
// EvidenceTrustedIdentity trustedIdentity1 = null;
//
// // 判断验章是否包含证书
// if(StringUtils.isNotEmpty(json.getString("signerCert"))) {
// // 解析签名者证书base64编码
// UserCert userCert1 = CertUtil.getCertFromBase64(json.getString("signerCert"));
// boolean blt = true;
// // 循环已经存在的证书序列号 判断证书序列号是否存在
// for(String strCertSn:listStr){
// if(userCert1 != null && strCertSn.equals(userCert1.getCertSn())){
// blt = false;
// }
// }
// // 循环可信身份list缓存 判断证书序列号是否相同
// if(!tiCacheList.isEmpty() && tiCacheList != null){
// for(EvidenceTrustedIdentity identity:tiCacheList) {
// if(identity.getCertSerialnumber().equals(userCert1.getCertSn())){
// trustedIdentity1 = identity;
// }
// }
// }
// if(trustedIdentity1 == null) {
// noId--;
// }
// if(blt) {
// // 事件对象定义
// EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
// trustedIdentity.setBasicInformation(basicInformation.getId());
// trustedIdentity.setEventContent(eventContent.getId());
// trustedIdentity.setEvidenceSn(evidenceSn);
// if(trustedIdentity1 != null){
// trustedIdentity.setMainInformation(trustedIdentity1.getMainInformation());
// // 整合证书信息存储到对应可信身份表
// trustedIdentity1.setCertBase64(json.getString("signerCert"));
// trustedIdentity1.setSubjectdn(userCert1.getCertDn());
// trustedIdentity1.setIssuerdn(userCert1.getIssuerDn());
// trustedIdentity1.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert1.getIssuerDn()));
// if(userCert1.getCertBuf() != null){
// trustedIdentity1.setEvidenceBuf(userCert1.getCertBuf().toString());
// }
// trustedIdentity1.setStartTime(userCert1.getCertStartTime());
// trustedIdentity1.setEndTime(userCert1.getCertEndTime());
// sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey",
// trustedIdentity1);
// } else {
// trustedIdentity.setMainInformation((long)noId);
// }
// trustedIdentity.setCertBase64(json.getString("signerCert"));
// trustedIdentity.setCreateTime(new Date());
// trustedIdentity.setCertSerialnumber(userCert1.getCertSn());
// trustedIdentity.setSubjectdn(userCert1.getCertDn());
// trustedIdentity.setIssuerdn(userCert1.getIssuerDn());
// trustedIdentity.setIdentiType("1");
// trustedIdentity.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert1.getIssuerDn()));
// if(userCert1.getCertBuf() != null){
// trustedIdentity.setEvidenceBuf(userCert1.getCertBuf().toString());
// }
// trustedIdentity.setStartTime(userCert1.getCertStartTime());
// trustedIdentity.setEndTime(userCert1.getCertEndTime());
//
// // 事件对象核验结果
// trustedIdentity.setCheckTime(new Date());
// if(json.getIntValue("vcResult") == 0) {
// trustedIdentity.setCheckStatus("1");
// trustedIdentity.setCheckSuccessTime(new Date());
// } else {
// if(StringUtils.isEmpty(retVerifyTi))
// retVerifyTi = "事件对象核验失败";
// trustedIdentity.setCheckStatus("0");
// if(json.getIntValue("vcResult") == 30006)
// trustedIdentity.setUnreason("未找到对应的受信任CA证书");
// else if(json.getIntValue("vcResult") == 30007)
// trustedIdentity.setUnreason("证书已吊销");
// else if(json.getIntValue("vcResult") == 30008)
// trustedIdentity.setUnreason("证书不在有效期内");
// else if(json.getIntValue("vcResult") == 30009)
// trustedIdentity.setUnreason("无效的证书签名");
// else if(json.getIntValue("vcResult") == 300010)
// trustedIdentity.setUnreason("其他证书验证错误");
// else
// trustedIdentity.setUnreason("非正常其他证书验证错误");
// }
// trustedIdentity.setVewestCheckTime(new Date());
// trustedIdentity.setCheckContent("1.验证证书有效期/n2.验证证书颁发者签名/n3.验证证书是否吊销");
// sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
// }
// listStr.add(userCert1.getCertSn());
// } else {
// retVerifyTi = "事件对象核验失败";
// }
// // 事件行为定义
// EvidenceEventBehavior eventBehavior = new EvidenceEventBehavior();
// // 判断时间戳是否存在
// if(StringUtils.isNotEmpty(json.getString("timeStamp"))
// && !json.getString("timeStamp").equals("{}")) {
// // 验证时间戳
// EvidenceEventTime eventTime = new EvidenceEventTime();
// if(trustedIdentity1 != null){
// eventTime.setMainInformation(trustedIdentity1.getMainInformation());
// } else {
// eventTime.setMainInformation((long)noId);
// }
// eventTime.setIdentiType("1");
// eventTime.setEventContent(eventContent.getId());
// eventTime.setCertificate(json.getJSONObject("timeStamp").getString("signature"));
// eventTime.setHashAlgorithm(json.getJSONObject("timeStamp").getString("hashAlg"));
// eventTime.setHashvalue(json.getJSONObject("timeStamp").getString("hashData"));
// eventTime.setCertBase64(json.getJSONObject("timeStamp").getString("tsCert"));
// if(StringUtils.isNotEmpty(json.getJSONObject("timeStamp").getString("time"))) {
// eventTime.setSignatureTime(json.getJSONObject("timeStamp").getDate("time"));
// } else {
// eventTime.setSignatureTime(json.getDate("stampTime"));
// }
// eventTime.setCreateTime(new Date());
// // 解析时间戳证书 Base64
// if(json.getJSONObject("timeStamp").getString("tsCert") != null) {
// UserCert userCert = CertUtil.getCertFromBase64(json.getJSONObject("timeStamp").getString("tsCert"));
// eventTime.setCertificateDn(userCert.getCertDn());
// eventTime.setIssuerdn(userCert.getIssuerDn());
// }
// // 时间核验结果
// eventTime.setCheckTime(new Date());
// if(json.getIntValue("vtsResult") == 0) {
// eventTime.setCheckStatus("1");
// eventTime.setCheckSuccessTime(new Date());
// } else {
// if(StringUtils.isEmpty(retVerifyTime)) {
// retVerifyTime = "事件时间核验失败";
// }
// eventTime.setCheckStatus("0");
// if(json.getIntValue("vtsResult") == 60002) {
// eventTime.setUnreason("验证时戳失败");
// } else {
// eventTime.setUnreason("其他验证时戳错误");
// }
// }
// eventTime.setVewestCheckTime(new Date());
// eventTime.setCheckContent("签名原文完整、真实、是否被篡改");
// sqlSession.insert("com.itrus.portal.db.EvidenceEventTimeMapper.insert", eventTime);
// } else {
// eventBehavior.setVerificationTime(json.getDate("stampTime"));
// }
// // 判断事件行为是否返回为空
// if(StringUtils.isNotEmpty(json.getString("signature"))) {
// eventBehavior.setHashAlgorithm(json.getString("hashAlg"));
// eventBehavior.setSignaturevalue(json.getString("signature"));
// eventBehavior.setHashBackSigning(json.getString("msgDigest"));
// eventBehavior.setEventContent(eventContent.getId());
// eventBehavior.setIdentiType("1");
// if(trustedIdentity1 != null){
// eventBehavior.setMainInformation(trustedIdentity1.getMainInformation());
// } else {
// eventBehavior.setMainInformation((long)noId);
// }
// // 事件行为核验结果
// eventBehavior.setCheckTime(new Date());
// if(json.getIntValue("vdsResult") == 0) {
// eventBehavior.setCheckStatus("1");
// eventBehavior.setCheckSuccessTime(new Date());
// } else {
// if(StringUtils.isEmpty(retVerifyBehavior)) {
// retVerifyBehavior = "事件行为核验失败";
// }
// eventBehavior.setCheckStatus("0");
// if(json.getIntValue("vdsResult") == 40002) {
// eventBehavior.setUnreason("验证签名失败");
// } else {
// eventBehavior.setUnreason("其他验证签名错误");
// }
// }
// eventBehavior.setVewestCheckTime(new Date());
// eventBehavior.setCheckContent("签名原文完整、真实、是否被篡改");
// sqlSession.insert("com.itrus.portal.db.EvidenceEventBehaviorMapper.insert", eventBehavior);
// } else {
// retVerifyBehavior = "事件行为核验失败";
// }
// }
// if(jsonArraySignInfos.size() == 0) {
// eventContent.setEventStatus(0);
// if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
// eventContent.setFailureReason(eventContent.getFailureReason() + ",pdf签章失败:返回集合为空。");
// } else {
// eventContent.setFailureReason("pdf签章失败:返回集合为空。");
// }
// }
// // 整合错误信息
// // if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
// // eventContent.setFailureReason(eventContent.getFailureReason());
// // }
// if(StringUtils.isNotEmpty(retVerifyTi)) {
// if(StringUtils.isNotEmpty(eventContent.getFailureReason()))
// eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyTi);
// else
// eventContent.setFailureReason(retVerifyTi);
// }
// if(StringUtils.isNotEmpty(retVerifyBehavior)) {
// if(StringUtils.isNotEmpty(eventContent.getFailureReason()))
// eventContent.setFailureReason(retVerifyBehavior);
// else
// eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyBehavior);
// }
// if(StringUtils.isNotEmpty(retVerifyTime)) {
// if(StringUtils.isNotEmpty(eventContent.getFailureReason()))
// eventContent.setFailureReason(retVerifyTime);
// else
// eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyTime);
// }
// sqlSession.update("com.itrus.portal.db.EvidenceEventContentMapper.updateByPrimaryKey", eventContent);
// if(eventContent.getEventStatus() == 0) {
// if(StringUtils.isNotEmpty(basicInformation.getFailureReason())) {
// basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + eventContent.getFailureReason());
// } else {
// basicInformation.setEvidenceStatus(0);
// basicInformation.setFailureReason(eventContent.getFailureReason());
// }
// sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
// }
// }
// saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
// }
/**
*********************************************** 《电子合同PDF》 获取事件内容 end *******************************************
*/
} else if ("合同摘要数据".equals(type) || "图片摘要数据".equals(type) || "信息摘要数据".equals(type)) {
// 判断是否接收
if (object.getBooleanValue("e_isReception")) {
// 得到事件内容中的信息
JSONObject jsonEventContent = jsonAuthEvent.getJSONObject(name);
// 判断必填
if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonEventContent.getString("contCode")) || StringUtils.isEmpty(jsonEventContent.getString("dataFormat")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件内容认证参数值");
return result;
}
// 存储事件内容信息
eventContent.setIsPdf(false);
eventContent.setContractTitle(jsonEventContent.getString("title"));
eventContent.setCreateTime(new Date());
eventContent.setBasicInformation(basicInformation.getId());
eventContent.setEvidenceSn(evidenceSn);
eventContent.setContCode(jsonEventContent.getString("contCode"));
if ("合同摘要数据".equals(type) || "信息摘要数据".equals(type)) {
eventContent.setValidStartTime(jsonEventContent.getDate("validStartTime"));
eventContent.setValidEndTime(jsonEventContent.getDate("validEndTime"));
eventContent.setDataFormat(jsonEventContent.getString("dataFormat"));
} else {
eventContent.setDataFormatImg(jsonEventContent.getString("dataFormat"));
}
// queueThread.putObjectQueue(eventContent);
objs.add(eventContent);
eventContent = null;
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
/**
*********************************************** 《合同摘要数据》 和 《图片摘要数据》 获取事件内容 end *******************************************
*/
}
break;
}
}
} else {
// 补交信息得到事件内容
EvidenceEventContentExample contentExample = new EvidenceEventContentExample();
EvidenceEventContentExample.Criteria cec = contentExample.createCriteria();
cec.andBasicInformationEqualTo(basicInformation.getId());
List<EvidenceEventContent> eventContents = sqlSession.selectList("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", contentExample);
if (!eventContents.isEmpty()) {
eventContent = eventContents.get(0);
}
}
/*if(StringUtils.isNotEmpty(jsonAuthEvent.getString("event"))) {
JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
for(int i=0;i<jsonContentArray.size();i++) {
// 得到对应的主体信息
JSONObject jsonContent = jsonContentArray.getJSONObject(i);
JSONObject jsonIdIdentify = jsonContentArray.getJSONObject(i).getJSONObject("idIdentify");
// 判断主体是否存在
String idCacheKey = jsonIdIdentify.getString("name") + jsonIdIdentify.getString("dataId");
EvidenceMainInformation mainInformation = null;
if(mapIdCache.get(idCacheKey) == null || "".equals(mapIdCache.get(idCacheKey))) {
EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
mainExampleCriteria.andSubjectNameEqualTo(jsonIdIdentify.getString("name"));
mainExampleCriteria.andIdentificationEqualTo(jsonIdIdentify.getString("dataId"));
List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
if(!mainInformationList.isEmpty()) {
mainInformation = mainInformationList.get(0);
mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
}
} else {
mainInformation = mapIdCache.get(idCacheKey);
}
if(mainInformation == null || "".equals(mainInformation)) {
result.put("status", 0);
result.put("message", "判断主体为空");
return;
}
// 核验事件认证
// 得到证据包中的事件数据
for(int j=0;j<jsonEvArray.size();j++) {
JSONObject object = jsonEvArray.getJSONObject(j);
String name = object.getString("name");
switch (j) {
// 事件意愿认证
case 2:
if(!bl) {
// 查询信息是否已经存证
EvidenceEventDesireExample ede = new EvidenceEventDesireExample();
EvidenceEventDesireExample.Criteria edec = ede.createCriteria();
edec.andEventContenteEqualTo(eventContent.getId());
edec.andMainInformationEqualTo(mainInformation.getId());
List<EvidenceEventDesire> eventDesires = sqlSession
.selectList("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", ede);
if(!eventDesires.isEmpty()) {
break;
}
}
// 判断是否接收
if(object.getJSONObject("e_isReception").getBooleanValue("e_isReception_1")
|| object.getJSONObject("e_isReception").getBooleanValue("e_isReception_2")) {
JSONObject jsonWill = jsonContent.getJSONObject(name);
if(bl && object.getBooleanValue("e_isRequired") && (
StringUtils.isEmpty(jsonWill.getString("authenticatorThenType"))
|| (jsonWill.getString("authenticatorThenType").equals("3")
&& StringUtils.isEmpty(jsonWill.getString("authenticatorThen")))
|| StringUtils.isEmpty(jsonWill.getString("way")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
return;
}
EvidenceEventDesire eventDesire = new EvidenceEventDesire();
// 1.证书授权 2.短信验证
if(jsonWill.getIntValue("way") == 1) {
JSONObject jsonCertContent = jsonWill.getJSONObject("certAccreditContent");
if(bl && object.getBooleanValue("e_isRequired") && (
StringUtils.isEmpty(jsonCertContent.getString("certBase64"))
|| StringUtils.isEmpty(jsonCertContent.getString("challengeCode"))
|| StringUtils.isEmpty(jsonCertContent.getString("answerCode"))
|| StringUtils.isEmpty(jsonCertContent.getString("verifyTime")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
return;
}
// 验证证书
String urlCertVerify = realNameAuthentication.getRealNameddress() + CERT_VERIFY;
Map<String, Object> mapCertVerify = new HashMap<String, Object>();
mapCertVerify.put("cert", jsonCertContent.getString("certBase64"));
mapCertVerify.put("verifyFlag", "7");
String rep_cert_verify = HttpClientUtil.postForm(urlCertVerify, AuthService.getHeader(), mapCertVerify);
JSONObject jsonCertVerify = JSONObject.parseObject(rep_cert_verify);
if(StringUtils.isNotEmpty(rep_cert_verify) && jsonCertVerify.getIntValue("code") == 0) {
// 解析证书Base64
UserCert userCert = CertUtil.getCertFromBase64(jsonCertVerify.getString("certBase64"));
eventDesire.setCertSerialnumber(userCert.getCertSn());
eventDesire.setSubjectdn(userCert.getCertDn());
eventDesire.setIssuerdn(userCert.getIssuerDn());
eventDesire.setEvidenceBuf(userCert.getCertBuf().toString());
eventDesire.setStartTime(userCert.getCertStartTime());
eventDesire.setEndTime(userCert.getCertEndTime());
} else {
result.put("status", 0);
result.put("message", "验证证书失败");
return;
}
eventDesire.setChallengeCode(jsonCertContent.getString("challengeCode"));
eventDesire.setAnswerCode(jsonCertContent.getString("answerCode"));
eventDesire.setClientDevice(jsonCertContent.getString("clientFacility"));
eventDesire.setVerificationTime(jsonCertContent.getDate("verifyTime"));
eventDesire.setWaysExpression(jsonWill.getString("way"));
} else if(jsonWill.getIntValue("way") == 2) {
JSONObject jsonSmsContent = jsonWill.getJSONObject("verifySmsContent");
if(bl && object.getBooleanValue("e_isRequired") && (
StringUtils.isEmpty(jsonSmsContent.getString("phone"))
|| StringUtils.isEmpty(jsonSmsContent.getString("sendTime"))
|| StringUtils.isEmpty(jsonSmsContent.getString("smsContent"))
|| StringUtils.isEmpty(jsonSmsContent.getString("verifyCode"))
|| StringUtils.isEmpty(jsonSmsContent.getString("verifyTime")))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
return;
}
eventDesire.setPhone(jsonSmsContent.getString("phone"));
eventDesire.setSmsContent(jsonSmsContent.getString("smsContent"));
eventDesire.setVerificationCode(jsonSmsContent.getString("verifyCode"));
eventDesire.setSendOutTime(jsonSmsContent.getDate("sendTime"));
eventDesire.setVerificationTime(jsonSmsContent.getDate("verifyTime"));
eventDesire.setWaysExpression(jsonWill.getString("way"));
}
String eventVerifier = getAuthenticator(Integer.parseInt(jsonWill.getString("authenticatorThenType")),
hapPrincipalName, jsonWill.getString("authenticatorThen"));
if(StringUtils.isEmpty(eventVerifier)) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整,缺少身份意愿鉴别参数值");
return;
}
eventDesire.setMainInformation(mainInformation.getId());
eventDesire.setEventContente(eventContent.getId());
eventDesire.setCreateTime(new Date());
eventDesire.setEventVerifierType(jsonWill.getString("authenticatorThenType"));
eventDesire.setEventVerifier(eventVerifier);
eventDesire.setVerificationResult(jsonWill.getString("verifyResult"));
sqlSession.insert("com.itrus.portal.db.EvidenceEventDesireMapper.insert", eventDesire);
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
break;
// 事件地点认证
case 4:
if(!bl) {
// 查询信息是否已经存证
EvidenceEventNetworkAddressExample nae = new EvidenceEventNetworkAddressExample();
EvidenceEventNetworkAddressExample.Criteria naec = nae.createCriteria();
naec.andEventContentEqualTo(eventContent.getId());
naec.andMainInformationEqualTo(mainInformation.getId());
List<EvidenceEventNetworkAddress> eventNetworkAddresses = sqlSession
.selectList("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.selectByExample", nae);
if(!eventNetworkAddresses.isEmpty()) {
break;
}
}
// 判断是否接收
if(object.getBooleanValue("e_isReception")) {
JSONObject jsonAddress = jsonContent.getJSONObject("netAddress");
// 定义事件网络地址对象
EvidenceEventNetworkAddress eventNetworkAddress = new EvidenceEventNetworkAddress();
// 整合数据 存储
eventNetworkAddress.setEventContent(eventContent.getId());
eventNetworkAddress.setMainInformation(mainInformation.getId());
eventNetworkAddress.setCreateTime(new Date());
if(jsonAddress.getBooleanValue("typeReg")) {
JSONObject jsonContentReg = jsonAddress.getJSONObject("content");
eventNetworkAddress.setType("1");
eventNetworkAddress.setAccountNumber(jsonContentReg.getString("code"));
eventNetworkAddress.setIpAddress(jsonContentReg.getString("ipAddress"));
eventNetworkAddress.setSigninTime(jsonContentReg.getDate("time"));
} else {
eventNetworkAddress.setType("0");
}
if(jsonAddress.getBooleanValue("typeSign")) {
JSONObject jsonContentSign = jsonAddress.getJSONObject("content1");
eventNetworkAddress.setSigninNumber(jsonContentSign.getString("code"));
eventNetworkAddress.setSigninipAddress(jsonContentSign.getString("ipAddress"));
eventNetworkAddress.setSendOutTime(jsonContentSign.getDate("time"));
eventNetworkAddress.setSigninType("1");
} else {
eventNetworkAddress.setSigninType("0");
}
sqlSession.insert("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.insert", eventNetworkAddress);
saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
}
break;
}
}
}
}*/
}
result.put("saveFactor", saveFactor);
result.put("basicInformation", basicInformation);
result.put("objs", objs);
return result;
} catch (Exception e) {
e.printStackTrace();
StackTraceElement stackTraceElement = e.getStackTrace()[e.getStackTrace().length - 5];
String info = stackTraceElement.getClassName() + stackTraceElement.getLineNumber() + e.toString();
LogUtil.evidencelog(sqlSession, evidenceSn, "存证接口", "存证失败,证据编号:" + evidenceSn + ", 失败原因:" + info);
result.put("status", -5);
result.put("message", "系统服务错误,请联系管理员");
return result;
}
}
use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.
the class HisCertificateController method preview.
/**
* 预览出证信息
*
* @param serialnumber
* @param type
* @param uiModel
* @return
*/
@RequestMapping(value = "/outhis/{serialnumber}", produces = "text/html")
public String preview(@PathVariable("serialnumber") String serialnumber, Model uiModel) {
// 得到证据基本信息表
List<EvidenceBasicInformation> blist = new ArrayList<EvidenceBasicInformation>();
// 得到企业平台信息
Map<Long, EvidenceCompaniesSubmit> companiesSubmit = new HashMap<Long, EvidenceCompaniesSubmit>();
// 得到天威企业信息
Map<Long, List<RealNameRecord>> realnameRecor = new HashMap<Long, List<RealNameRecord>>();
// 得到天威个人信息
Map<Long, PersonalName> personalName = new HashMap<Long, PersonalName>();
// 得到个人平台信息
Map<Long, EvidenceIndividual> denceid = new HashMap<Long, EvidenceIndividual>();
// 得到得到身份意愿信息
Map<Long, EvidenceDesireIdentify> mdesire = new HashMap<Long, EvidenceDesireIdentify>();
// 得到事件内容信息
Map<Long, EvidenceEventContent> eventcontent = new HashMap<Long, EvidenceEventContent>();
// 得到时间对象
Map<Long, List<EvidenceTrustedIdentity>> trusid = new HashMap<Long, List<EvidenceTrustedIdentity>>();
// 得到身份标识信息
Map<Long, List<EvidenceTrustedIdentity>> trusted = new HashMap<Long, List<EvidenceTrustedIdentity>>();
// 得到事件时间信息
Map<Long, List<EvidenceEventTime>> enenttime = new HashMap<Long, List<EvidenceEventTime>>();
// 得到事件行为认证信息
Map<Long, List<EvidenceEventBehavior>> enenbehavior = new HashMap<Long, List<EvidenceEventBehavior>>();
// 得到事件意愿认证信息
Map<Long, List<EvidenceEventDesire>> evendesire = new HashMap<Long, List<EvidenceEventDesire>>();
// 得到平台提交信息代表人
Map<Long, EvidenceRepresentative> erepresetative = new HashMap<Long, EvidenceRepresentative>();
// 得到平台提交信息代理人
Map<Long, EvidenceTheAgent> etheagent = new HashMap<Long, EvidenceTheAgent>();
// 得到营业执照
Map<Long, Licenseinformation> licensein = new HashMap<Long, Licenseinformation>();
// 得到企业银行信息
Map<Long, Enterprisebank> enterpris = new HashMap<Long, Enterprisebank>();
// 得到组织机构代码
Map<Long, Organization> organiza = new HashMap<Long, Organization>();
// 得到法定代表人信息
Map<Long, Corporateinformation> corporat = new HashMap<Long, Corporateinformation>();
// 得到代理人信息
Map<Long, Agentinformation> agemtom = new HashMap<Long, Agentinformation>();
// 得到银行三四要素信息
Map<Long, Bankcardelements> bankcardele = new HashMap<Long, Bankcardelements>();
// 证据基本信息,放入多个基本信息
List<EvidenceBasicInformation> basicinfos = new ArrayList<EvidenceBasicInformation>();
// 得到出证信息
EvidenceHisCertificateExample hiscer = new EvidenceHisCertificateExample();
EvidenceHisCertificateExample.Criteria tificate = hiscer.createCriteria();
tificate.andSerialnumberEqualTo(serialnumber);
EvidenceHisCertificate hisCertificate = sqlSession.selectOne("com.itrus.portal.db.EvidenceHisCertificateMapper.selectByExample", hiscer);
// 出征流水号
contractNumber = hisCertificate.getSerialnumber();
// 得到出证存证中间表
EvidenceHisRelationshipExample hisrelation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria shipEx = hisrelation.createCriteria();
shipEx.andHisCertificateEqualTo(hisCertificate.getId());
List<EvidenceHisRelationship> hisrelationship = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", hisrelation);
for (EvidenceHisRelationship h : hisrelationship) {
// 得到基本信息表
EvidenceBasicInformation basic = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", h.getBasicInformation());
basicinfos.add(basic);
// 得到身份意愿信息
EvidenceDesireIdentifyExample desireIdentify = new EvidenceDesireIdentifyExample();
EvidenceDesireIdentifyExample.Criteria desireExample = desireIdentify.createCriteria();
desireExample.andEvidenceSnEqualTo(basic.getEvidenceSn());
EvidenceDesireIdentify desire = sqlSession.selectOne("com.itrus.portal.db.EvidenceDesireIdentifyMapper.selectByExample", desireIdentify);
mdesire.put(basic.getId(), desire);
// 得到身份信息表
EvidenceRealNameExample realnameE = new EvidenceRealNameExample();
EvidenceRealNameExample.Criteria realnameEx = realnameE.createCriteria();
realnameEx.andBasicInformationEqualTo(basic.getId());
EvidenceRealName erealname = sqlSession.selectOne("com.itrus.portal.db.EvidenceRealNameMapper.selectByExample", realnameE);
if (erealname != null) {
// 判断身份信息是否为空
if (!"1".equals(erealname.getEventVerifierType())) {
// 判断平台认证
if ("1".equals(erealname.getType())) {
// 判断平台企业认证
EvidenceCompaniesSubmit companiesSubmit1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceCompaniesSubmitMapper.selectByPrimaryKey", erealname.getCompaniesSubmit());
companiesSubmit.put(basic.getId(), companiesSubmit1);
// 得到法定代表人
EvidenceRepresentative representative = sqlSession.selectOne("com.itrus.portal.db.EvidenceRepresentativeMapper.selectByPrimaryKey", companiesSubmit1.getRepresentative());
erepresetative.put(basic.getId(), representative);
// 得到代理人
EvidenceTheAgent theAgen = sqlSession.selectOne("com.itrus.portal.db.EvidenceTheAgentMapper.selectByPrimaryKey", companiesSubmit1.getTheAgent());
etheagent.put(basic.getId(), theAgen);
uiModel.addAttribute("companiesSubmit", companiesSubmit);
uiModel.addAttribute("realname", companiesSubmit);
} else {
// 平台个人认证
EvidenceIndividual dic = sqlSession.selectOne("com.itrus.portal.db.EvidenceIndividualMapper.selectByPrimaryKey", erealname.getIndividual());
denceid.put(basic.getId(), dic);
uiModel.addAttribute("denceid", denceid);
uiModel.addAttribute("realname", denceid);
}
} else {
// 天威认证
if ("1".equals(erealname.getType())) {
// 天威企业认证
String serialnamber = erealname.getSerialnumber();
String[] namber = serialnamber.split(",");
// List<RealNameRecord> listReal = new
// ArrayList<RealNameRecord>();
List<String> listString = new ArrayList<String>();
for (int i = 0; i < namber.length; i++) {
listString.add(namber[i]);
}
RealNameRecordExample realname = new RealNameRecordExample();
RealNameRecordExample.Criteria recor = realname.createCriteria();
// recor.andSerialnumberEqualTo(erealname.getSerialnumber());
recor.andSerialnumberIn(listString);
List<RealNameRecord> realnameRecor1 = sqlSession.selectList("com.itrus.portal.db.RealNameRecordMapper.selectByExample", realname);
realnameRecor.put(basic.getId(), realnameRecor1);
for (RealNameRecord real : realnameRecor1) {
// 得到营业执照
if (real.getLicenseinformation() != null) {
Licenseinformation information = sqlSession.selectOne("com.itrus.portal.db.LicenseinformationMapper.selectByPrimaryKey", real.getLicenseinformation());
licensein.put(basic.getId(), information);
}
// 得到企业银行信息
if (real.getEnterprisebank() != null) {
Enterprisebank enterprise = sqlSession.selectOne("com.itrus.portal.db.EnterprisebankMapper.selectByPrimaryKey", real.getEnterprisebank());
enterpris.put(basic.getId(), enterprise);
}
// 得到组织机构代码信息
if (real.getOrganization() != null) {
Organization organization = sqlSession.selectOne("com.itrus.portal.db.OrganizationMapper.selectByPrimaryKey", real.getOrganization());
organiza.put(basic.getId(), organization);
}
// 得到法定代表人信息
if (real.getCorporateinformation() != null) {
Corporateinformation enterprise = sqlSession.selectOne("com.itrus.portal.db.CorporateinformationMapper.selectByPrimaryKey", real.getCorporateinformation());
corporat.put(basic.getId(), enterprise);
}
// 得到代理人信息
if (real.getAgentinformation() != null) {
Agentinformation enterprise = sqlSession.selectOne("com.itrus.portal.db.AgentinformationMapper.selectByPrimaryKey", real.getAgentinformation());
agemtom.put(basic.getId(), enterprise);
}
}
uiModel.addAttribute("realname", realnameRecor);
} else {
// 天威个人认证
PersonalNameExample personal = new PersonalNameExample();
PersonalNameExample.Criteria personalname = personal.createCriteria();
personalname.andSerialnumberEqualTo(erealname.getSerialnumber());
PersonalName personalName1 = sqlSession.selectOne("com.itrus.portal.db.PersonalNameMapper.selectByExample", personal);
personalName.put(basic.getId(), personalName1);
// 得到银行三四要素信息
Bankcardelements bank = sqlSession.selectOne("com.itrus.portal.db.BankcardelementsMapper.selectByPrimaryKey", personalName1.getBankcardelements());
bankcardele.put(basic.getId(), bank);
uiModel.addAttribute("personalName", personalName);
uiModel.addAttribute("realname", personalName);
}
}
}
// 事件内容
EvidenceEventContentExample evencontent = new EvidenceEventContentExample();
EvidenceEventContentExample.Criteria countent = evencontent.createCriteria();
// countent.andBasicInformationEqualTo(basic.getEvidenceSn());
countent.andEvidenceSnEqualTo(basic.getEvidenceSn());
List<EvidenceEventContent> mevencontent = sqlSession.selectList("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", evencontent);
eventcontent.put(basic.getId(), mevencontent.get(0));
// 得到身份可信标识
EvidenceTrustedIdentityExample trusten = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identityex = trusten.createCriteria();
identityex.andBasicInformationEqualTo(basic.getEvidenceSn());
identityex.andEventContentIsNull();
List<EvidenceTrustedIdentity> trustedidentity = sqlSession.selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trusten);
trusted.put(basic.getId(), trustedidentity);
// 事件对象认证
EvidenceTrustedIdentityExample trustenid = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identitye = trustenid.createCriteria();
identitye.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceTrustedIdentity> trustedidentit = sqlSession.selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustenid);
trusid.put(basic.getId(), trustedidentit);
// 事件时间认证
EvidenceEventTimeExample eventime = new EvidenceEventTimeExample();
EvidenceEventTimeExample.Criteria eventimeEx = eventime.createCriteria();
eventimeEx.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventTime> meventime = sqlSession.selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", eventime);
enenttime.put(basic.getId(), meventime);
// 事件行为认证
EvidenceEventBehaviorExample eventbehaciorEx = new EvidenceEventBehaviorExample();
EvidenceEventBehaviorExample.Criteria eventbe = eventbehaciorEx.createCriteria();
eventbe.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventBehavior> eventbehacior = sqlSession.selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", eventbehaciorEx);
enenbehavior.put(basic.getId(), eventbehacior);
// 事件意愿认证
EvidenceEventDesireExample desireEx = new EvidenceEventDesireExample();
EvidenceEventDesireExample.Criteria eventdesire = desireEx.createCriteria();
// eventdesire.andMainInformationEqualTo(basic.getId());
eventdesire.andEventContenteEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventDesire> meventdesire = sqlSession.selectList("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", desireEx);
evendesire.put(basic.getId(), meventdesire);
blist.add(basic);
// 判断图片是否存在
if (mevencontent.get(0).getIsimg() == null) {
// 得到证据附件表,用于获取信息
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andEvidenceSnEqualTo(basic.getEvidenceSn());
envlosureEx.andPdfTypeEqualTo("2");
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
// 判断是否为用户上传pdf
if (envlosure != null) {
String urlFile = systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName() + File.separator + envlosure.getEvidenceSn();
File filePathStr = new File(urlFile, envlosure.getObjectName());
int pdfToPng = 0;
if (filePathStr != null && filePathStr.getPath() != null) {
try {
// 调用生成图片方法生成图片
pdfToPng = Pdf.pdf2png(filePathStr.getPath());
} catch (Exception e) {
e.printStackTrace();
}
}
// 判断生成图片是否成功
if (pdfToPng > 0) {
// 修改内容表信息,表示生成图片
log.error("pdfToPng=" + pdfToPng);
mevencontent.get(0).setIsimg(1);
mevencontent.get(0).setImgCount(pdfToPng);
sqlSession.update("com.itrus.portal.db.EvidenceEventContentMapper.updateByPrimaryKey", mevencontent);
String oper = "原文图片生成成功";
String info = "图片地址:" + urlFile;
LogUtil.evidencelog(sqlSession, null, oper, info);
} else {
String oper = "原文图片生成失败";
String info = "失败原因:" + systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName();
LogUtil.evidencelog(sqlSession, null, oper, info);
}
}
}
}
uiModel.addAttribute("basicinfos", basicinfos);
// 平台代表人
uiModel.addAttribute("erepresetative", erepresetative);
// 平台代理人
uiModel.addAttribute("etheagent", etheagent);
// 营业执照信息
uiModel.addAttribute("licensein", licensein);
// 企业银行信息
uiModel.addAttribute("enterpris", enterpris);
// 住址机构代码
uiModel.addAttribute("organiza", organiza);
// 法定代表人
uiModel.addAttribute("corporat", corporat);
// 法定代理人
uiModel.addAttribute("agemtom", agemtom);
// 银行卡三四要素
uiModel.addAttribute("bankcardele", bankcardele);
// 得到得到身份意愿信息
uiModel.addAttribute("mdesire", mdesire);
// 得到事件时间信息
uiModel.addAttribute("enenttime", enenttime);
// 得到事件行为认证信息
uiModel.addAttribute("enenbehavior", enenbehavior);
// 得到时间对象
uiModel.addAttribute("trusid", trusid);
// 得到身份标识信息
uiModel.addAttribute("trusted", trusted);
// 得到证据基本信息表
uiModel.addAttribute("blist", blist);
// 得到事件内容信息
uiModel.addAttribute("eventcontent", eventcontent);
// 得到出证信息
uiModel.addAttribute("hisCertificate", hisCertificate);
// 出证时间
uiModel.addAttribute("datetime", new Date());
return "reporttemplate/certificationReport";
}
Aggregations