具体功能为获取考试姓名和证件号后更新考生健康码信息,并在前台以dialog悬浮框的形式显示出来
控制层代码
@RequestMapping("/updatejkm")
@ResponseBody
public List updatejkm(HttpServletRequest request) throws Exception, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException {
String zjhm = request.getParameter("zjhm");
String ksxm = request.getParameter("ksxm");
String examId = (String) request.getSession().getAttribute("currentExamId");
Map returnMap = null;
returnMap = this.checkYKM(zjhm,ksxm);
String sfhm = (String) returnMap.get("SFHM");
String zy = (String) returnMap.get("ZY");
String hmyy = (String) returnMap.get("HMYY");
String xxhmyy = (String) returnMap.get("XXHMYY");
String jkmys = (String) returnMap.get("JKMYS");
String hsjcsj = (String) returnMap.get("hsjcsj");
String hsjcjg = (String) returnMap.get("hsjcjg");
// System.out.println("获取的健康码信息"+ xxhmyy+"1");
String tjrq = "";
DESPlus desPlus;
desPlus = new DESPlus(0);
String jmzjhm=desPlus.encrypt(zjhm.toUpperCase());
// System.out.println("获取的码信息"+ jmzjhm+"");
int shu = updateKsSfzt(examId, sfhm, zy, hmyy, xxhmyy, jkmys, hsjcsj, hsjcjg, tjrq, jmzjhm);
//System.out.println("获取的123"+ returnMap);
List params = new ArrayList();
params.add(sfhm);
params.add(hmyy);
params.add(xxhmyy);
params.add(jkmys);
params.add(hsjcjg);
params.add(hsjcsj);
params.add(zy);
// System.out.println("获取的PAR"+ params);
return params;
}
// @RequestMapping("/updatejkm2")
// public List updatejkm2(HttpServletRequest request) throws Exception, IllegalBlockSizeException, BadPaddingException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException {
// String zjhm = request.getParameter("zjhm");
// DESPlus desPlus;
// desPlus = new DESPlus(0);
// DESPlus des = new DESPlus(0);
// String jmzjhm1=desPlus.encrypt(zjhm.toUpperCase());
// List params1 = new ArrayList();
// params1.add(jmzjhm1);
// String sql="select ksxm from exam_" + examid + "_adm_change where zjhm=? " ;
// List<Object> listData = commonJdbcdao.qeryList(sql, params1, null);
// String xm1=listData.toString();
// System.out.println(xm1);
// String ksxm = new String(des.decrypt(DESPlus.hexStr2ByteArr(xm1)),"UTF-8");
//
// String examId = (String) request.getSession().getAttribute("currentExamId");
// Map returnMap = null;
// returnMap = this.checkYKM(zjhm,ksxm);
// String sfhm = (String) returnMap.get("SFHM");
// String zy = (String) returnMap.get("ZY");
// String hmyy = (String) returnMap.get("HMYY");
// String xxhmyy = (String) returnMap.get("XXHMYY");
// String jkmys = (String) returnMap.get("JKMYS");
// String hsjcsj = (String) returnMap.get("hsjcsj");
// String hsjcjg = (String) returnMap.get("hsjcjg");
// // System.out.println("获取的健康码信息"+ xxhmyy+"1");
// String tjrq = "";
//
// String jmzjhm=desPlus.encrypt(zjhm.toUpperCase());
// // System.out.println("获取的码信息"+ jmzjhm+"");
// int shu = updateKsSfzt(examId, sfhm, zy, hmyy, xxhmyy, jkmys, hsjcsj, hsjcjg, tjrq, jmzjhm);
// System.out.println("获取的"+ returnMap);
// List params = new ArrayList();
// params.add(sfhm);
// params.add(hmyy);
// params.add(xxhmyy);
// params.add(jkmys);
// params.add(hsjcjg);
// params.add(hsjcsj);
// System.out.println("获取的"+ params);
// return params;
// }
//
/**
* 更新粤康码验证状态
*/
public int updateKsSfzt(String examid, String sfhm, String zy, String hmyy, String xxhmyy, String jkmys, String hsjcsj, String hsjcjg, String tjrq, String zjbh) {
String sql = "update exam_" + examid + "_adm_change set SFHM = ?, ZY=?, HMYY=?, XXHMYY=?, JKMYS=?, jcjgtbsj=?,jcjg=? where ZJHM = ? ";
int i = this.commonJdbcdao.update1(sql, new Object[]{sfhm, zy, hmyy, xxhmyy, jkmys,hsjcsj,hsjcjg, zjbh});
return i;
}
/**
* 接口调用进行粤康码核验
*/
public Map checkYKM(String zjhm,String ksxm) {
Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("xm", ksxm);
paramMap.put("zjhm", zjhm);
AesUtil aes = AesUtil.getInstance();
String aesKey = "a739711e7104504c0322ce432387689b";
//传输信息加密
String msg1 = JSONObject.toJSONString(paramMap);
byte[] bytes = aes.encrypt(msg1, aesKey);
// 服务地址 本机测试地址
// String address = "http://127.0.0.1:8080/CTYService/ctyservice/getsf.htm";
//生产服务器地址
String address = "http://157.122.48.141:82/GDService/gdservice/getykm.htm";
// String address = "http://183.95.190.170:9003/CTYQueryService/ctyQuery/ctyquery/getSf";
Map returnMap = new HashMap();
OutputStreamWriter out = null;
BufferedReader in = null;
String resultZjhm="";
String resultKsxm="";
try {
HttpPost httpPost = new HttpPost(address);
TrustStrategy acceptingTrustStrategy = new TrustSelfSignedStrategy();
SSLContext sslContext = org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();
SSLConnectionSocketFactory csf = new SSLConnectionSocketFactory(sslContext, NoopHostnameVerifier.INSTANCE);
CloseableHttpClient m_HttpClient = HttpClients.custom().setSSLSocketFactory(csf).build();
httpPost.setEntity(new ByteArrayEntity(bytes));
httpPost.setHeader("Content-type", "application/xml; charset=UTF-8");
CloseableHttpResponse httpResponse = m_HttpClient.execute(httpPost);
// System.out.println("200 ---- "+httpResponse.getStatusLine().getStatusCode());
//返回成功
if (httpResponse.getStatusLine().getStatusCode() == 200) {
//System.out.println(1);
HttpEntity entity = httpResponse.getEntity();
//System.out.println(2);
byte[] respBuffer = EntityUtils.toByteArray(entity);//拿到返回结果字节流
String sfstr = aes.decrypt(respBuffer, aesKey);
// System.out.println("respBuffer:-----"+sfstr);
// System.out.println("-----------end-----------");
// System.out.println(sfstr);
// {"SFHM":"否", "HMYY":"", "JCZY":""}
if("0".equals(sfstr)){
//异常
returnMap.put("msg", "异常");
return returnMap;
}
if("1".equals(sfstr)){
//未注册
returnMap.put("SFHM", "未注册");
returnMap.put("msg", "成功");
returnMap.put("ZY", " ");
returnMap.put("HMYY", " ");
returnMap.put("TJRQ", " ");
returnMap.put("SFZH", zjhm);
returnMap.put("XM", ksxm);
return returnMap;
}
if("[]".equals(sfstr)){
//异常
returnMap.put("msg", "异常");
return returnMap;
}
JSONObject degree = (JSONObject) JSONObject.parse(sfstr);
String SFHM = degree.getString("SFHM");
// String ZY = degree.getString("JCZY");
String HMYY = degree.getString("HMYY");
String XXHMYY = degree.getString("XXHMYY");
String JKMYS = degree.getString("JKMYS");
String hsjg = degree.getString("HSJG");
if("{}".equals(hsjg)){
returnMap.put("hsjcsj", " ");
returnMap.put("hsjcjg", " ");
}else{
JSONObject hsjgjs = (JSONObject) JSONObject.parse(hsjg);
String hsjcsj = hsjgjs.getString("hsjcsj");
String hsjcjg = hsjgjs.getString("hsjcjg");
returnMap.put("hsjcsj", hsjcsj);
returnMap.put("hsjcjg", hsjcjg);
}
returnMap.put("SFHM", SFHM);
returnMap.put("ZY", " ");
returnMap.put("HMYY", HMYY);
returnMap.put("XXHMYY", XXHMYY);
returnMap.put("JKMYS", JKMYS);
returnMap.put("msg", "成功");
return returnMap;
}else{
//接口异常
returnMap.put("msg", "异常");
return returnMap;
}
} catch (Exception e) {
e.printStackTrace();
//不匹配
returnMap.put("msg", "异常");
return returnMap;
} finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
} catch (Exception e) {
e.printStackTrace();
//不匹配 查询报错失败不匹配
returnMap.put("msg", "异常");
return returnMap;
}
}
}
前端页面
首先初始化dialog悬浮框,使其隐藏
<script type="text/javascript">
$(document).ready(function() {
$("#dialog-user").dialog({
hide:true, //点击关闭是隐藏,如果不加这项,关闭弹窗后再点就会出错.
autoOpen: false,
height: 450,
width: 400,
modal: true,
buttons: {
"更 新": function() {
var ksxm =$("#jkm_ksxm").val().toString();
var zjhm = $("#jkm_zjhm").val().toString();
var sfhm = $("#jkm_sfhm").val().toString();
var ys = $("#jkm_ys").val().toString();
var hmyy = $("#jkm_hmyy").val().toString();
var xxhmyy = $("#jkm_xxhmyy").val().toString();
var hsjcjg = $("#jkm_hsjcjg").val().toString();
var hsjcjgsj = $("#jkm_hsjcjgsj").val().toString();
jQuery.ajax({
type: "POST",
data: {
'condition': '',
'pageNo': '1',
'totalCount': '-1',
'ksxm': ksxm,
'zjhm': zjhm,
},
url: "<%=request.getContextPath()%>/statisticykm/updatejkm.htm",
contentType: "application/x-www-form-urlencoded",
dataType: "json",
});
alert("更新完成");
jQuery("#dialog-user").dialog('close');
},
'关闭': function() {
findBmsjcxByCondition();
jQuery("#dialog-user").dialog('close');
},
}
});
});
</script>
下面是关于悬浮框的设置
<!--详细信息-->
<div id="dialog-user" title="详细信息" >
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" class="table">
<tr>
<td width="27%" height="22" align="right" class="tdNormal">考生姓名:</td>
<td width="73%" height="22" class="tdNormal">
<input id="jkm_ksxm" name="jkm_ksxm" style="border-style: none;" readonly>
</td>
</tr>
<tr>
<td width="27%" height="22" align="right" class="tdNormal">证件号码:</td>
<td width="73%" height="22" class="tdNormal">
<input id="jkm_zjhm" name=jkm_zjhm" style="border-style: none;"readonly>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">是否为红码:</td>
<td height="22" class="tdNormal">
<input id="jkm_sfhm" name="jkm_sfhm"style="border-style: none;" maxlength="20" readonly>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">健康码颜色:</td>
<td height="22" class="tdNormal">
<input type="text" id="jkm_ys" name="jkm_ys" maxlength="25" style="border-style: none;"readonly>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">红码原因:</td>
<td height="22" class="tdNormal">
<input type="text" id="jkm_hmyy" name="jkm_hmyy"style="border-style: none;" maxlength="50" readonly>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">详细红码原因:</td>
<td height="22" class="tdNormal">
<input rows="2" cols="17" id="jkm_xxhmyy" name="jkm_xxhmyy" maxlength="50"style="border-style: none;" readonly></input>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">核酸检测结果:</td>
<td height="22" class="tdNormal">
<input type="text" id="jkm_hsjcjg" name="jkm_hsjcjg" style="border-style: none;" maxlength="50" readonly>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">核酸检测结果填报时间:</td>
<td height="22" class="tdNormal">
<input type="text" id="jkm_hsjcjgsj" maxlength="50" style="border-style: none;" readonly>
</td>
</tr>
<tr>
<td height="22" align="right" class="tdNormal">自愿:</td>
<td height="22" class="tdNormal">
<input type="text" id="jkm_zy" maxlength="50" style="border-style: none;" readonly>
</td>
</tr>
</table>
</div>
然后再在js中设置点击按钮,,获取需要的考生姓名和证件号码,并将更新内容显示在悬浮框中
//显示考生详细信息
function openDetails(ksxm,zjhm) {
jQuery.ajax({
type: "POST",
data: {
'ksxm': ksxm,
'zjhm': zjhm,
},
url: "<%=request.getContextPath()%>/statisticykm/updatejkm.htm",
contentType: "application/x-www-form-urlencoded",
dataType: "json",
success: function (data) {
jQuery("#jkm_ksxm").val(ksxm);
jQuery("#jkm_zjhm").val(zjhm);
jQuery("#jkm_sfhm").val(data[0]);
jQuery("#jkm_ys").val(data[3]);
jQuery("#jkm_hmyy").val(data[1]);
jQuery("#jkm_xxhmyy").val(data[2]);
jQuery("#jkm_hsjcjg").val(data[4]);
jQuery("#jkm_hsjcjgsj").val(data[5]);
jQuery("#jkm_zy").val(data[6])
findBmsjcxByCondition();
}
});
$("#dialog-user").dialog('open');
}
下面是所点击按钮的设置
strTd += "<td align='center'><input type='button'
class='form-buttun' value='详细信息'
onclick=\"openDetails(\'"+bmsjcxList[i][0]+"\',\'"+bmsjcxList[i][1]+"\')\"
/> </td>"