Commit 3def0918 by yangliang

海南新增万里红虹膜采集和消息提醒功能

parent 13180030
......@@ -231,6 +231,12 @@
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
<!--socketio-->
<dependency>
<groupId>com.corundumstudio.socketio</groupId>
<artifactId>netty-socketio</artifactId>
<version>1.7.7</version>
</dependency>
</dependencies>
<build>
......
......@@ -100,7 +100,12 @@ public class RyfkController {
List<TbZwbzxx> lzwbzxx = new ArrayList<>();
for(AutoTbStRy stry : lryxx){
//根据人员编号查询比中任务和比中信息
rwbh = this.getZwrwxx(stry.getRybh(),user);
String zwbh = stry.getSzzwbh();
if(!zwbh.equals("")&&zwbh!=null){
rwbh = this.getZwrwxx(zwbh,user);
}else{
rwbh = "";
}
if (!rwbh.equals("")&&rwbh!=null){
tbZwbzxx = this.getZwbzxx(rwbh);
if(tbZwbzxx!=null&&tbZwbzxx.getRwbh().equals("")){
......
......@@ -629,7 +629,7 @@ public class TbXwRycjController {
}
}
User user = (User)request.getSession().getAttribute("User");
String rybhString = sequenceService.getNextSerialNo("TB_ST_RY",user.getUnitcode(), user);
String rybhString = sequenceService.getNextSerialNo("TB_YTHCJ_RY",user.getUnitcode(), user);
zbfzxyr.setRybh(rybhString);
boolean photoflag = true;
......
......@@ -796,6 +796,10 @@ public class ZjCjController {
if(samplingDate!=null&&samplingDate.length()>=10){
samplingDate = samplingDate.substring(0, 10);
}
String zjhm = newryxx.getGmsfhm();
if(zjhm==null||"".equals(zjhm)){
zjhm = newryxx.getZjhm();
}
StringBuffer xml = new StringBuffer();
//xml.append("<?xml version=\"1.0\" encoding=\"utf-8\" ?>");
......@@ -805,7 +809,7 @@ public class ZjCjController {
.append("<genderCode>").append(newryxx.getXbdm()).append("</genderCode>") //性别代码
.append("<genderName>").append(xb_name).append("</genderName>") //性别名称
.append("<birthday>").append(csrqDate).append("</birthday>") //出生日期
.append("<certificateCardNo>").append(newryxx.getZjhm()).append("</certificateCardNo>") //身份证号码
.append("<certificateCardNo>").append(zjhm).append("</certificateCardNo>") //身份证号码
.append("<hjd>").append(hjd_name).append("</hjd>") //户籍地名称
.append("<hjddm>").append(newryxx.getHjdzXzqhdm()).append("</hjddm>") //户籍地代码
.append("<xzz>").append(newryxx.getXzzDzmc()).append("</xzz>") //现住地详细地址
......
package com.founder.domain;
import com.founder.model.BaseModel;
import java.util.Date;
/**
*采比反反馈信息
* @author wangyang
* @date 2019/4/28
*/
public class Cbffk extends BaseModel {
private String xxbh;//消息编号
private String asjbh;//消息对应的案事件编号
private String fksj;//消息反馈数据(json格式字符串)
private String sjlx;//数据类型(案件、人员、物品等)
private String xxczdw_gajgjgdm;//信息操作单位_公安机关机构代码/采用GA 380《全国公安机关机构代码编码规则》统一编制的代码/CODE_GXS
private String xxczdw_gajgmc;//信息操作单位_公安机关名称
private String xxczry_gmsfhm;//信息操作人员_公民身份号码/符合GB 11643《公民身份号码》
private String xxczry_xm;//信息操作人员_姓名
private String xxdjdw_gajgjgdm;//信息登记单位_公安机关机构代码/采用GA 380《全国公安机关机构代码编码规则》统一编制的代码/CODE_GXS
private String xxdjdw_gajgmc;//信息登记单位_公安机关名称
private String xxdjry_gmsfhm;//信息登记人员_公民身份号码/符合GB 11643《公民身份号码》
private String xxdjry_lxdh;//信息登记人员_联系电话
private String xxdjry_xm;//信息登记人员_姓名
private String xxlyms;//信息来源描述
private String xxsc_pdbz;//信息删除_判断标识
private Date djsj;//登记时间
private Date gxsj;//更新时间
private String xxzjbh;//信息主键编号
private String asjxgrybh;//案事件相关人员编号
private String sawpbh;//涉案物品编号
private String fwbzh_fwbzh;//服务标志号
private String fksjsl;//反馈数据数量
public String getXxbh() {
return xxbh;
}
public void setXxbh(String xxbh) {
this.xxbh = xxbh;
}
public String getAsjbh() {
return asjbh;
}
public void setAsjbh(String asjbh) {
this.asjbh = asjbh;
}
public String getFksj() {
return fksj;
}
public void setFksj(String fksj) {
this.fksj = fksj;
}
public String getSjlx() {
return sjlx;
}
public void setSjlx(String sjlx) {
this.sjlx = sjlx;
}
public String getXxczdw_gajgjgdm() {
return xxczdw_gajgjgdm;
}
public void setXxczdw_gajgjgdm(String xxczdw_gajgjgdm) {
this.xxczdw_gajgjgdm = xxczdw_gajgjgdm;
}
public String getXxczdw_gajgmc() {
return xxczdw_gajgmc;
}
public void setXxczdw_gajgmc(String xxczdw_gajgmc) {
this.xxczdw_gajgmc = xxczdw_gajgmc;
}
public String getXxczry_gmsfhm() {
return xxczry_gmsfhm;
}
public void setXxczry_gmsfhm(String xxczry_gmsfhm) {
this.xxczry_gmsfhm = xxczry_gmsfhm;
}
public String getXxczry_xm() {
return xxczry_xm;
}
public void setXxczry_xm(String xxczry_xm) {
this.xxczry_xm = xxczry_xm;
}
public String getXxdjdw_gajgjgdm() {
return xxdjdw_gajgjgdm;
}
public void setXxdjdw_gajgjgdm(String xxdjdw_gajgjgdm) {
this.xxdjdw_gajgjgdm = xxdjdw_gajgjgdm;
}
public String getXxdjdw_gajgmc() {
return xxdjdw_gajgmc;
}
public void setXxdjdw_gajgmc(String xxdjdw_gajgmc) {
this.xxdjdw_gajgmc = xxdjdw_gajgmc;
}
public String getXxdjry_gmsfhm() {
return xxdjry_gmsfhm;
}
public void setXxdjry_gmsfhm(String xxdjry_gmsfhm) {
this.xxdjry_gmsfhm = xxdjry_gmsfhm;
}
public String getXxdjry_lxdh() {
return xxdjry_lxdh;
}
public void setXxdjry_lxdh(String xxdjry_lxdh) {
this.xxdjry_lxdh = xxdjry_lxdh;
}
public String getXxdjry_xm() {
return xxdjry_xm;
}
public void setXxdjry_xm(String xxdjry_xm) {
this.xxdjry_xm = xxdjry_xm;
}
public String getXxlyms() {
return xxlyms;
}
public void setXxlyms(String xxlyms) {
this.xxlyms = xxlyms;
}
public String getXxsc_pdbz() {
return xxsc_pdbz;
}
public void setXxsc_pdbz(String xxsc_pdbz) {
this.xxsc_pdbz = xxsc_pdbz;
}
public Date getDjsj() {
return djsj;
}
public void setDjsj(Date djsj) {
this.djsj = djsj;
}
public Date getGxsj() {
return gxsj;
}
public void setGxsj(Date gxsj) {
this.gxsj = gxsj;
}
public String getXxzjbh() {
return xxzjbh;
}
public void setXxzjbh(String xxzjbh) {
this.xxzjbh = xxzjbh;
}
public String getAsjxgrybh() {
return asjxgrybh;
}
public void setAsjxgrybh(String asjxgrybh) {
this.asjxgrybh = asjxgrybh;
}
public String getSawpbh() {
return sawpbh;
}
public void setSawpbh(String sawpbh) {
this.sawpbh = sawpbh;
}
public String getFwbzh_fwbzh() {
return fwbzh_fwbzh;
}
public void setFwbzh_fwbzh(String fwbzh_fwbzh) {
this.fwbzh_fwbzh = fwbzh_fwbzh;
}
public String getFksjsl() {
return fksjsl;
}
public void setFksjsl(String fksjsl) {
this.fksjsl = fksjsl;
}
}
package com.founder.domain;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* easyui分页类
* Created by wangyang on 2018/11/16.
*/
public class EasyUIPage implements Serializable {
private static final long serialVersionUID = 1L;
public EasyUIPage() {
}
private int page = 1;
private int begin;
private int end;
private int total = 0;
private String sort;
private String order;
private int rownum = 20;
private List<?> rows = new ArrayList();
private String flag ;
private String pagePara;
private String state;
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public void setRows(List<?> rows) {
this.rows = rows;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getBegin() {
return begin;
}
public int getEnd() {
return end;
}
public List<?> getRows() {
return rows;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public String getOrder() {
return order;
}
public void setOrder(String order) {
this.order = order;
}
public void setPagePara(Integer rows) {
if (rows != null) {
this.begin = (this.page - 1) * rows;
this.end = this.page * rows;
}else{
this.begin = (this.page - 1) * rownum;
this.end = this.page * rownum;
}
}
public int getRownum() {
return rownum;
}
public void setRownum(int rownum) {
this.rownum = rownum;
}
/**
* @return the pagePara
*/
public String getPagePara() {
return pagePara;
}
/**
* @param pagePara the pagePara to set
*/
public void setPagePara(String pagePara) {
this.pagePara = pagePara;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
}
package com.founder.domain;
import com.founder.model.BaseModel;
import java.util.Date;
/**
* Created by wind10 on 2019/4/17.
*/
public class SysDictitem extends BaseModel {
private String code = null;
private String name = null;
private String groupid = null;
private String pid = null;
private String spell = null;
private String wbzx = null;
private String simple = null;
private String groupname = null;
private Date lrsj = null;
private Date lrsj1 = null;
private int xxdlNum = 0;
public int getXxdlNum() {
return xxdlNum;
}
public void setXxdlNum(int xxdlNum) {
this.xxdlNum = xxdlNum;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGroupid() {
return groupid;
}
public void setGroupid(String groupid) {
this.groupid = groupid;
}
public String getPid() {
return pid;
}
public void setPid(String pid) {
this.pid = pid;
}
public String getSpell() {
return spell;
}
public void setSpell(String spell) {
this.spell = spell;
}
public String getWbzx() {
return wbzx;
}
public void setWbzx(String wbzx) {
this.wbzx = wbzx;
}
public String getSimple() {
return simple;
}
public void setSimple(String simple) {
this.simple = simple;
}
public String getGroupname() {
return groupname;
}
public void setGroupname(String groupname) {
this.groupname = groupname;
}
public Date getLrsj() {
return lrsj;
}
public void setLrsj(Date lrsj) {
this.lrsj = lrsj;
}
public Date getLrsj1() {
return lrsj1;
}
public void setLrsj1(Date lrsj1) {
this.lrsj1 = lrsj1;
}
}
package com.founder.domain;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
/**
*消息队列类
* @author wangyang
* @date 2019/4/16
*/
public class TbFwXxdl {
//消息ID
private String xxid;
//业务对象(案事件编号、人员编号、线索对象)
private String ywdx;
//消息标题
private String xxbt;
//消息内容
private String xxnr;
//消息类型
private String xxlx;
//接收人证件号码
private String jsrZjhm;
//发送人证件号码
private String fsrZjhm;
//发送人姓名
private String fsrName;
//发送时间
private Date fssj;
//是否以读判断标志
private String sfydPdbz;
//已读时间
private String ydsj;
//删除时间
private Date scsj;
//删除标志
private String xxscPdbz;
//消息编号
private String xxbh;
//消息类型名称
private String xxname;
//分页查询开始行数
private int begin;
//分页查询取多少行
private int end;
//接收单位
private String jsdwDm;
public String getXxid() {
return xxid;
}
public void setXxid(String xxid) {
this.xxid = xxid;
}
public String getYwdx() {
return ywdx;
}
public void setYwdx(String ywdx) {
this.ywdx = ywdx;
}
public String getXxbt() {
return xxbt;
}
public void setXxbt(String xxbt) {
this.xxbt = xxbt;
}
public String getXxnr() {
return xxnr;
}
public void setXxnr(String xxnr) {
this.xxnr = xxnr;
}
public String getXxlx() {
return xxlx;
}
public void setXxlx(String xxlx) {
this.xxlx = xxlx;
}
public String getJsrZjhm() {
return jsrZjhm;
}
public void setJsrZjhm(String jsrZjhm) {
this.jsrZjhm = jsrZjhm;
}
public String getFsrZjhm() {
return fsrZjhm;
}
public void setFsrZjhm(String fsrZjhm) {
this.fsrZjhm = fsrZjhm;
}
public String getFsrName() {
return fsrName;
}
public void setFsrName(String fsrName) {
this.fsrName = fsrName;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
public Date getFssj() {
return fssj;
}
public void setFssj(Date fssj) {
this.fssj = fssj;
}
public String getSfydPdbz() {
return sfydPdbz;
}
public void setSfydPdbz(String sfydPdbz) {
this.sfydPdbz = sfydPdbz;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
public String getYdsj() {
return ydsj;
}
public void setYdsj(String ydsj) {
this.ydsj = ydsj;
}
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
public Date getScsj() {
return scsj;
}
public void setScsj(Date scsj) {
this.scsj = scsj;
}
public String getXxscPdbz() {
return xxscPdbz;
}
public void setXxscPdbz(String xxscPdbz) {
this.xxscPdbz = xxscPdbz;
}
public String getXxbh() {
return xxbh;
}
public void setXxbh(String xxbh) {
this.xxbh = xxbh;
}
public String getXxname() {
return xxname;
}
public void setXxname(String xxname) {
this.xxname = xxname;
}
public int getBegin() {
return begin;
}
public void setBegin(int begin) {
this.begin = begin;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
public String getJsdwDm() {
return jsdwDm;
}
public void setJsdwDm(String jsdwDm) {
this.jsdwDm = jsdwDm;
}
}
package com.founder.domain;
import com.alibaba.fastjson.annotation.JSONField;
import com.founder.utils.Utils;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.util.StringUtils;
import java.util.Date;
/**
* Created by libin on 2018/4/12.
* 系统用户
*/
public class User {
//("序列号")
private String id;
//("用户单位")
private String unitcode;
//("用户帐号")
private String username;
//("用户密码")
private String password;
//("用户姓名")
private String trueName;
//("激活标志(0是未激活、1是激活)")
private String open_flag;
//("null")
private String default_model;
//("null")
private String remark;
//("录入人")
private String lrr;
private String perUrl;
//("录入时间")
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date lrsj;
//("改写人")
private String gxr;
//("改写时间")
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date gxsj;
//("录入单位代码")
private String lrdwdm;
//("录入单位名称")
private String lrdwmc;
//("用户身份证号")
private String identitycard;
//("用户性别")
private String sex;
//("用户出生日期")
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date birthday;
//("用户联系电话")
private String telephone;
//("单位名称")
private String unitname;
//("删除标志")
private Double scbz;
//("ip地址")
private String ip;
//("用户级别")
private String grade;
//("用户警号")
private String policemanid;
//("null")
private Double default_desktop;
//("个人主题图片")
private String theme;
//("null")
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date lastlogintime;
//("null")
@JSONField(format = "yyyy-MM-dd")
@DateTimeFormat(pattern = "yyyy-MM-dd")
private Date lastchecktime;
//("海南信息资源授权字符串")
private String xxzyurl;
//("工作桌面指挥员模块要显示的模块id")
private String gzzm_zhy;
//("工作桌面研判员模块")
private String gzzm_ypy;
//("工作桌面侦查员模块")
private String gzzm_zcy;
//("用户角色")
private String gzzm_play;
//("管理员判断标志 00:否 01:是")
private String glybz;
//("特权用户判断标志 00:否 01:是")
private String tqyhbz;
private String countryCode;
//警官证照片 正面
private byte[] jgzPhotoZm;
private String jgzPhotoZmStr;
private String grdf;
//警官证照片 反面
private byte[] jgzPhotoFm;
private String jgzPhotoFmStr;
private String gzzmplay;
public String getGzzmplay() {
return gzzmplay;
}
public void setGzzmplay(String gzzmplay) {
this.gzzmplay = gzzmplay;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUnitcode() {
return unitcode;
}
public void setUnitcode(String unitcode) {
this.unitcode = unitcode;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getTrueName() {
return trueName;
}
public void setTrueName(String trueName) {
this.trueName = trueName;
}
public String getOpen_flag() {
return open_flag;
}
public void setOpen_flag(String open_flag) {
this.open_flag = open_flag;
}
public String getDefault_model() {
return default_model;
}
public void setDefault_model(String default_model) {
this.default_model = default_model;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getLrr() {
return lrr;
}
public void setLrr(String lrr) {
this.lrr = lrr;
}
public Date getLrsj() {
return lrsj;
}
public void setLrsj(Date lrsj) {
this.lrsj = lrsj;
}
public String getGxr() {
return gxr;
}
public void setGxr(String gxr) {
this.gxr = gxr;
}
public Date getGxsj() {
return gxsj;
}
public void setGxsj(Date gxsj) {
this.gxsj = gxsj;
}
public String getLrdwdm() {
return lrdwdm;
}
public void setLrdwdm(String lrdwdm) {
this.lrdwdm = lrdwdm;
}
public String getLrdwmc() {
return lrdwmc;
}
public void setLrdwmc(String lrdwmc) {
this.lrdwmc = lrdwmc;
}
public String getIdentitycard() {
return identitycard;
}
public void setIdentitycard(String identitycard) {
this.identitycard = identitycard;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
public String getUnitname() {
return unitname;
}
public void setUnitname(String unitname) {
this.unitname = unitname;
}
public Double getScbz() {
return scbz;
}
public void setScbz(Double scbz) {
this.scbz = scbz;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getPolicemanid() {
return policemanid;
}
public void setPolicemanid(String policemanid) {
this.policemanid = policemanid;
}
public Double getDefault_desktop() {
return default_desktop;
}
public void setDefault_desktop(Double default_desktop) {
this.default_desktop = default_desktop;
}
public String getTheme() {
return theme;
}
public void setTheme(String theme) {
this.theme = theme;
}
public Date getLastlogintime() {
return lastlogintime;
}
public void setLastlogintime(Date lastlogintime) {
this.lastlogintime = lastlogintime;
}
public Date getLastchecktime() {
return lastchecktime;
}
public void setLastchecktime(Date lastchecktime) {
this.lastchecktime = lastchecktime;
}
public String getXxzyurl() {
return xxzyurl;
}
public void setXxzyurl(String xxzyurl) {
this.xxzyurl = xxzyurl;
}
public String getGzzm_zhy() {
return gzzm_zhy;
}
public void setGzzm_zhy(String gzzm_zhy) {
this.gzzm_zhy = gzzm_zhy;
}
public String getGzzm_ypy() {
return gzzm_ypy;
}
public void setGzzm_ypy(String gzzm_ypy) {
this.gzzm_ypy = gzzm_ypy;
}
public String getGzzm_zcy() {
return gzzm_zcy;
}
public void setGzzm_zcy(String gzzm_zcy) {
this.gzzm_zcy = gzzm_zcy;
}
public String getGzzm_play() {
return gzzm_play;
}
public void setGzzm_play(String gzzm_play) {
this.gzzm_play = gzzm_play;
}
public String getGlybz() {
return glybz;
}
public void setGlybz(String glybz) {
this.glybz = glybz;
}
public String getTqyhbz() {
return tqyhbz;
}
public void setTqyhbz(String tqyhbz) {
this.tqyhbz = tqyhbz;
}
public String getCountryCode() {
String unitcode = getUnitcode();
String grade = getGrade();
if( !StringUtils.isEmpty(unitcode) && !StringUtils.isEmpty(grade)){
countryCode = Utils.countryCode(unitcode,grade);
}else{
countryCode = null;
}
return countryCode;
}
public String getPerUrl() {
return perUrl;
}
public void setPerUrl(String perUrl) {
this.perUrl = perUrl;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public byte[] getJgzPhotoZm() {
return jgzPhotoZm;
}
public void setJgzPhotoZm(byte[] jgzPhotoZm) {
this.jgzPhotoZm = jgzPhotoZm;
}
public String getJgzPhotoZmStr() {
return jgzPhotoZmStr;
}
public void setJgzPhotoZmStr(String jgzPhotoZmStr) {
this.jgzPhotoZmStr = jgzPhotoZmStr;
}
public byte[] getJgzPhotoFm() {
return jgzPhotoFm;
}
public void setJgzPhotoFm(byte[] jgzPhotoFm) {
this.jgzPhotoFm = jgzPhotoFm;
}
public String getJgzPhotoFmStr() {
return jgzPhotoFmStr;
}
public void setJgzPhotoFmStr(String jgzPhotoFmStr) {
this.jgzPhotoFmStr = jgzPhotoFmStr;
}
public String getGrdf() {
return grdf;
}
public void setGrdf(String grdf) {
this.grdf = grdf;
}
@Override
public String toString() {
return "User{" +
"id='" + id + '\'' +
", unitcode='" + unitcode + '\'' +
", username='" + username + '\'' +
", password='" + password + '\'' +
", true_name='" + trueName + '\'' +
", open_flag='" + open_flag + '\'' +
", default_model='" + default_model + '\'' +
", remark='" + remark + '\'' +
", lrr='" + lrr + '\'' +
", lrsj=" + lrsj +
", gxr='" + gxr + '\'' +
", gxsj=" + gxsj +
", lrdwdm='" + lrdwdm + '\'' +
", lrdwmc='" + lrdwmc + '\'' +
", identitycard='" + identitycard + '\'' +
", sex='" + sex + '\'' +
", birthday=" + birthday +
", telephone='" + telephone + '\'' +
", unitname='" + unitname + '\'' +
", scbz=" + scbz +
", ip='" + ip + '\'' +
", grade='" + grade + '\'' +
", policemanid='" + policemanid + '\'' +
", default_desktop=" + default_desktop +
", theme='" + theme + '\'' +
", lastlogintime=" + lastlogintime +
", lastchecktime=" + lastchecktime +
", xxzyurl='" + xxzyurl + '\'' +
", gzzm_zhy='" + gzzm_zhy + '\'' +
", gzzm_ypy='" + gzzm_ypy + '\'' +
", gzzm_zcy='" + gzzm_zcy + '\'' +
", gzzm_play='" + gzzm_play + '\'' +
", glybz='" + glybz + '\'' +
", tqyhbz='" + tqyhbz + '\'' +
'}';
}
}
package com.founder.model;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;
import java.util.Date;
/**
* 模型对象,系统中所有域对象都继承此类
* Created by wangyang on 2018/11/21.
*/
public class BaseModel extends BaseObject implements QueryFilter {
protected String modelName;
protected String id = null;
protected String lrr = null;
protected String lrrLxdh = null;
protected Date lrsj = null;
protected String gxr = null;
protected String gxrLxdh = null;
protected Date gxsj = null;
protected String lrdwdm = null;
protected String lrdwmc = null;
private String scbz = "0";
protected String deleteFlag = "0";
protected String secrecy = null;
protected int functionLevel;
protected int startNum = 0;
protected int endNum = 0;
protected String conditionString = null;
protected String orderString = null;
//辅助变量,用作系统中常用的判断标记
protected String flag = null;
protected String ip = null;
//时间上下限
protected String starttime = "";
protected String endtime = "";
//改写单位代码
protected String gxdwdm = null;
//改写单位名称
protected String gxdwmc = null;
private String gxdwdm_text = null;
//新库的十三个公共字段(更新时间在上面)
//信息删除_判断标识
protected String xxscPdbz = null;
//信息登记单位_公安机关机构代码
protected String xxdjdwGajgjgdm = null;
//信息登记单位_公安机关名称
protected String xxdjdwGajgmc = null;
//信息登记人员_姓名
protected String xxdjryXm = null;
//信息登记人员_公民身份号码
protected String xxdjryGmsfhm = null;
//信息登记人员_联系电话
protected String xxdjryLxdh = null;
//登记时间(去掉,有实体类用了djsj,定义为String,导致报错)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone="GMT+8" )
protected Date djsj = null;
//信息操作单位_公安机关机构代码
protected String xxczdwGajgjgdm = null;
//信息操作单位_公安机关名称
protected String xxczdwGajgmc = null;
//信息操作人员_姓名
protected String xxczryXm = null;
//信息操作人员_公民身份号码
protected String xxczryGmsfhm = null;
//信息来源描述
protected String xxlyms = "邢侦信息专业应用系统";
//信息入省库时间
protected Date xxrsksj = null;
//信息入部库时间
protected Date xxrbksj = null;
//信息入省库_判断标识/1-是,0-否/CODE_IF
protected String xxrskPdbz = null;
//信息入部库_判断标识/1-是,0-否/CODE_IF
protected String xxrbkPdbz = null;
public Date getXxrsksj() {
return xxrsksj;
}
public void setXxrsksj(Date xxrsksj) {
this.xxrsksj = xxrsksj;
}
public Date getXxrbksj() {
return xxrbksj;
}
public void setXxrbksj(Date xxrbksj) {
this.xxrbksj = xxrbksj;
}
public String getXxrskPdbz() {
return xxrskPdbz;
}
public void setXxrskPdbz(String xxrskPdbz) {
this.xxrskPdbz = xxrskPdbz;
}
public String getXxrbkPdbz() {
return xxrbkPdbz;
}
public void setXxrbkPdbz(String xxrbkPdbz) {
this.xxrbkPdbz = xxrbkPdbz;
}
public String getModelName() {
return modelName;
}
public void setModelName(String modelName) {
this.modelName = modelName;
}
public String getOrderString() {
return orderString;
}
public void setOrderString(String orderString) {
this.orderString = orderString;
}
public String getConditionString() {
return conditionString;
}
public void setConditionString(String conditionString) {
this.conditionString = conditionString;
}
public String getId() {
if(id != null && !"".equals(id)){
id = id.trim();
}
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLrr() {
return lrr;
}
public void setLrr(String lrr) {
this.lrr = lrr;
}
public Date getLrsj() {
return lrsj;
}
public void setLrsj(Date lrsj) {
this.lrsj = lrsj;
}
public String getGxr() {
return gxr;
}
public void setGxr(String gxr) {
this.gxr = gxr;
}
public Date getGxsj() {
return gxsj;
}
public void setGxsj(Date gxsj) {
this.gxsj = gxsj;
}
public String toString() {
return ToStringBuilder.reflectionToString(this,
ToStringStyle.MULTI_LINE_STYLE);
}
public boolean equals(Object o) {
return EqualsBuilder.reflectionEquals(this, o);
}
public int hashCode() {
return HashCodeBuilder.reflectionHashCode(this);
}
public String toXML() {
String temp = toString();
temp = temp.substring(temp.indexOf("[") + 1, temp.length());
temp = temp.substring(0, temp.lastIndexOf("]"));
temp = temp.replaceAll("<null>", "");
temp = temp.replaceAll("=", "\" value=\"");
temp = temp.replaceAll("\r\n ", "\" />\r\n<Folder id=\"");
temp = temp.replaceFirst("\" />\r\n", "");
temp = temp.substring(0, temp.lastIndexOf("\r\n")) + "\" />";
temp = "<XMLDataSet>\r\n" + temp;
temp = temp + "\r\n</XMLDataSet>";
temp = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n" + temp;
return temp;
}
public String getDeleteFlag() {
return deleteFlag;
}
public void setDeleteFlag(String deleteFlag) {
this.deleteFlag = deleteFlag;
}
public String getSecrecy() {
return secrecy;
}
public void setSecrecy(String secrecy) {
this.secrecy = secrecy;
}
public int getFunctionLevel() {
return functionLevel;
}
public void setFunctionLevel(int functionLevel) {
this.functionLevel = functionLevel;
}
public int getStartNum() {
return startNum;
}
public void setStartNum(int startNum) {
this.startNum = startNum;
}
public int getEndNum() {
return endNum;
}
public void setEndNum(int endNum) {
this.endNum = endNum;
}
public String getLrdwdm() {
return lrdwdm;
}
public void setLrdwdm(String lrdwdm) {
this.lrdwdm = lrdwdm;
}
public String getLrdwmc() {
return lrdwmc;
}
public void setLrdwmc(String lrdwmc) {
this.lrdwmc = lrdwmc;
}
public String getScbz() {
return scbz;
}
public void setScbz(String scbz) {
this.scbz = scbz;
}
public String getFlag() {
return flag;
}
public void setFlag(String flag) {
this.flag = flag;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getStarttime() {
return starttime;
}
public void setStarttime(String starttime) {
this.starttime = starttime;
}
public String getEndtime() {
return endtime;
}
public void setEndtime(String endtime) {
this.endtime = endtime;
}
public String getGxdwdm() {
return gxdwdm;
}
public void setGxdwdm(String gxdwdm) {
this.gxdwdm = gxdwdm;
}
public String getGxdwmc() {
return gxdwmc;
}
public void setGxdwmc(String gxdwmc) {
this.gxdwmc = gxdwmc;
}
public String getLrrLxdh() {
return lrrLxdh;
}
public void setLrrLxdh(String lrrLxdh) {
this.lrrLxdh = lrrLxdh;
}
public String getGxrLxdh() {
return gxrLxdh;
}
public void setGxrLxdh(String gxrLxdh) {
this.gxrLxdh = gxrLxdh;
}
public String getGxdwdm_text() {
return gxdwdm_text;
}
/**
* @param gxdwdm_text
*/
public void setGxdwdm_text(String gxdwdm_text) {
this.gxdwdm_text = gxdwdm_text;
}
public String getXxscPdbz() {
return xxscPdbz;
}
public void setXxscPdbz(String xxscPdbz) {
this.xxscPdbz = xxscPdbz;
}
public String getXxdjdwGajgjgdm() {
return xxdjdwGajgjgdm;
}
public void setXxdjdwGajgjgdm(String xxdjdwGajgjgdm) {
this.xxdjdwGajgjgdm = xxdjdwGajgjgdm;
}
public String getXxdjdwGajgmc() {
return xxdjdwGajgmc;
}
public void setXxdjdwGajgmc(String xxdjdwGajgmc) {
this.xxdjdwGajgmc = xxdjdwGajgmc;
}
public String getXxdjryXm() {
return xxdjryXm;
}
public void setXxdjryXm(String xxdjryXm) {
this.xxdjryXm = xxdjryXm;
}
public String getXxdjryGmsfhm() {
return xxdjryGmsfhm;
}
public void setXxdjryGmsfhm(String xxdjryGmsfhm) {
this.xxdjryGmsfhm = xxdjryGmsfhm;
}
public String getXxdjryLxdh() {
return xxdjryLxdh;
}
public void setXxdjryLxdh(String xxdjryLxdh) {
this.xxdjryLxdh = xxdjryLxdh;
}
public Date getDjsj() {
return djsj;
}
public void setDjsj(Date djsj) {
this.djsj = djsj;
}
public String getXxczdwGajgjgdm() {
return xxczdwGajgjgdm;
}
public void setXxczdwGajgjgdm(String xxczdwGajgjgdm) {
this.xxczdwGajgjgdm = xxczdwGajgjgdm;
}
public String getXxczdwGajgmc() {
return xxczdwGajgmc;
}
public void setXxczdwGajgmc(String xxczdwGajgmc) {
this.xxczdwGajgmc = xxczdwGajgmc;
}
public String getXxczryXm() {
return xxczryXm;
}
public void setXxczryXm(String xxczryXm) {
this.xxczryXm = xxczryXm;
}
public String getXxczryGmsfhm() {
return xxczryGmsfhm;
}
public void setXxczryGmsfhm(String xxczryGmsfhm) {
this.xxczryGmsfhm = xxczryGmsfhm;
}
public String getXxlyms() {
return xxlyms;
}
public void setXxlyms(String xxlyms) {
this.xxlyms = xxlyms;
}
}
package com.founder.model;
import java.io.Serializable;
/**
* 基类对象,系统中所有域对象都继承此类
* Created by wangyang on 2018/11/21.
*/
public abstract class BaseObject implements Serializable {
public abstract String toString();
public abstract String toXML();
public abstract boolean equals(Object paramObject);
public abstract int hashCode();
}
package com.founder.model;
/**
* 查询信息封装类
* Created by wangyang on 2018/11/21.
*/
public interface QueryFilter {
public void setOrderString(String orderByString);
public String getOrderString();
public String getDeleteFlag();
public void setDeleteFlag(String deleteFlag);
public String getSecrecy() ;
public void setSecrecy(String secrecy);
public int getFunctionLevel() ;
public void setFunctionLevel(int functionLevel);
public int getEndNum();
public void setEndNum(int endNum);
public int getStartNum();
public void setStartNum(int startNum);
public String getConditionString();
public void setConditionString(String whereFrom) ;
}
package com.founder.news.controller;
import com.founder.domain.Cbffk;
import com.founder.domain.EasyUIPage;
import com.founder.domain.SysDictitem;
import com.founder.domain.TbFwXxdl;
import com.founder.model.User;
import com.founder.news.service.INewsService;
import com.founder.utils.CodeUnits;
import com.founder.utils.Qgckzp;
import com.founder.utils.Utils;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 消息中心管理Controller
*
* @author wangyang
* @date 2019/4/17
*/
@Controller
public class NewsController {
@Autowired
private INewsService newsService;
/**
* 查询消息导航列表和消息内容
*/
@RequestMapping("/queryNews")
public ModelAndView queryNews(HttpServletRequest request, ModelAndView model) {
User user = (User) request.getSession().getAttribute("User");
// 获取一级消息类型
List<SysDictitem> YjXxlxList = newsService.findYjXxlxList();
// 获取所有的二级消息类型
List<SysDictitem> RjXxlxList = newsService.findRjXxlxList();
// 获取所有的三级级消息类型
List<SysDictitem> SjXxlxList = newsService.findSjXxlxList();
// 获取所有二级三级的消息标题列表
// 所有消息类型
List<SysDictitem> allXxlxList = new ArrayList<SysDictitem>();
allXxlxList.addAll(YjXxlxList);
allXxlxList.addAll(RjXxlxList);
allXxlxList.addAll(SjXxlxList);
if (allXxlxList != null && allXxlxList.size() > 0) {
for (SysDictitem sysDictitem : allXxlxList) {
String xxlx = sysDictitem.getCode();
// 根据消息类型和用户身份证号码,获取每种消息类型获取的消息总数
if (xxlx != null && !"".equals(xxlx)) {
if (xxlx.substring(2, 6).equals("0000")) {
xxlx = xxlx.substring(0, 2);
} else if (xxlx.substring(4, 6).equals("00") && !xxlx.substring(2, 6).equals("0000")) {
xxlx = xxlx.substring(0, 4);
}
// 获取本类消息的总数
int xxdlNum = newsService.queryXxlxCount(xxlx, user.getIdentitycard());
sysDictitem.setXxdlNum(xxdlNum);
}
}
}
// 最新消息未读数
int zxxxWds = newsService.queryZxxxCount(user.getIdentitycard());
model.setViewName("news/news");
//一级消息标题
model.addObject("YjXxlxList", YjXxlxList);
//二级消息标题
model.addObject("RjXxlxList", RjXxlxList);
//三级消息标题
model.addObject("SjXxlxList", SjXxlxList);
model.addObject("zxxxWds", zxxxWds);
return model;
}
/**
* 获取消息
*/
@RequestMapping("/getNewXxdl")
@ResponseBody
public EasyUIPage getNewXxdl(HttpServletRequest request) {
EasyUIPage easyUIPage = new EasyUIPage();
List<TbFwXxdl> tbFwXxdls =null;
try {
User user = (User) request.getSession().getAttribute("User");
String page = request.getParameter("page");
String rows = request.getParameter("rows");
// 开始行数
int begin = Integer.parseInt(rows) * (Integer.parseInt(page) - 1);
// 取几行
int end = Integer.parseInt(rows) * Integer.parseInt(page);
// 消息类型
String xxlx = request.getParameter("xxlx");
if (xxlx != null && !"".equals(xxlx)) {
// 一级标题
if (xxlx.substring(2, 6).equals("0000")) {
xxlx = xxlx.substring(0, 2);
} else if (xxlx.substring(4, 6).equals("00") && !xxlx.substring(2, 6).equals("0000")) {
xxlx = xxlx.substring(0, 4);
}
}
// 获取最新消息30天内容
tbFwXxdls = newsService.findTbXxfwXxdlList(xxlx, user, begin, end);
if (tbFwXxdls != null && tbFwXxdls.size() > 0) {
for (TbFwXxdl tbFwXxdl : tbFwXxdls) {
String fsrName = tbFwXxdl.getFsrName();
if (StringUtils.isNotBlank(fsrName)) {
//当发送人姓名不存在时,根据身份证号查询发送人姓名
String name = newsService.getFsrNamebyZjhm(tbFwXxdl.getFsrZjhm());
tbFwXxdl.setFsrName(name);
}
}
}
easyUIPage.setPagePara(page);
easyUIPage.setRows(tbFwXxdls);
easyUIPage.setTotal(newsService.findTbXxfwXxdlListCount(xxlx, user));
easyUIPage.setState(CodeUnits.CODE_SUCCESS);
}catch (Exception e){
easyUIPage.setState(CodeUnits.CODE_ERROR);
}
return easyUIPage;
}
/**
* 新版查看消息详情
*/
@RequestMapping("/checkZxXxdlYdNew")
public ModelAndView checkZxXxdlYdNew(HttpServletRequest request, ModelAndView modelAndView) {
String xxid = request.getParameter("xxid");
//获取消息详情以及三级标题Name
Map<String,Object> map = newsService.getXxXq(xxid);
modelAndView.addObject("tbFwXxdl", map.get("tbFwXxdl"));
modelAndView.addObject("yjName", map.get("yjName"));
modelAndView.addObject("ejName", map.get("ejName"));
modelAndView.addObject("sjName", map.get("sjName"));
modelAndView.setViewName("/news/newInfoMessager");
return modelAndView;
}
/**
* 批量删除消息
* @param request
* @return
*/
@RequestMapping("/deleteNews")
@ResponseBody
public String deleteNews(HttpServletRequest request){
String[] ids = request.getParameterValues("array[]");
//循环前台获取到的信息id并删除
try {
if (ids !=null){
for (int i = 0;i<ids.length;i++){
newsService.deleteNews(ids[i]);
}
}else {
return "fail";
}
}catch (Exception e){
return "fail";
}
return "success";
}
/**
* 获取最新未读消息总数及前十条信息
* @param request
* @return
*/
@RequestMapping("/getZxXxWd")
@ResponseBody
public EasyUIPage getZxXxWd(HttpServletRequest request){
User user = (User) request.getSession().getAttribute("User");
String page = request.getParameter("page");
String rows = request.getParameter("rows");
EasyUIPage easyUIPage = new EasyUIPage();
// 开始行数
int begin = Integer.parseInt(rows) * (Integer.parseInt(page) - 1);
// 取几行
int end = Integer.parseInt(rows) * Integer.parseInt(page);
// 获取最新消息30天内容 未读
List<TbFwXxdl> tbFwXxdls = newsService.findZxXxWdlList("", user, begin, end);
easyUIPage.setRows(tbFwXxdls);
easyUIPage.setTotal(newsService.queryZxxxCount(user.getIdentitycard()));
return easyUIPage;
}
/**
* 安卓端获取消息详情
* @param request
* @return
*/
@RequestMapping("/checkZxXxAnd")
@ResponseBody
public Map<String,Object> checkZxXxAnd(HttpServletRequest request){
Map<String,Object> result = new HashMap<String,Object>();
try {
String xxid = request.getParameter("xxid");
//获取消息详情以及三级标题Name
Map<String,Object> map = newsService.getXxXq(xxid);
result.put("rows",map);
result.put("state",CodeUnits.CODE_SUCCESS);
}catch (Exception e){
result.put("state",CodeUnits.CODE_ERROR);
}
return result;
}
/**
* 安卓端删除消息
* @param xxid
* @return
*/
@RequestMapping("/deleteNewsAnd")
@ResponseBody
public Map<String,String> deleteNewsAnd(String xxid) {
Map<String,String> map = new HashMap<String,String>();
try {
if (xxid != null) {
newsService.deleteNews(xxid);
} else {
map.put("state",CodeUnits.CODE_ERROR);
return map;
}
} catch (Exception e) {
map.put("state",CodeUnits.CODE_ERROR);
return map;
}
map.put("state",CodeUnits.CODE_SUCCESS);
return map;
}
/**
* 查看录比反反馈详细信息
*/
@RequestMapping("/getCbffkXx")
public ModelAndView getCbffkXx(HttpServletRequest request,ModelAndView model) {
// 采比反反馈信息
List<Map<String, Object>> cbffkListMap = null;
String result = "asjxx";
// 消息编号
String xxbh = request.getParameter("xxbh");
// 数据类型
String sjlx = request.getParameter("sjlx");
//根据消息编号和类型获取采比反消息详情
Cbffk cbffk = newsService.getCbffkByXxbh(xxbh, sjlx);
if (cbffk != null && cbffk.getFksj()!=null) {
String fksj = cbffk.getFksj();
cbffkListMap = Utils.parseJSON2List(fksj);
Qgckzp getzp = new Qgckzp();
// 反馈数据
// 实体案件信息
if ("ASJ".equals(sjlx)) {
result = "asjxx";
// 全部的同类前科人员
} else if ("TLQKRY_ALL".equals(sjlx) || "TLQKRY_YGJ".equals(sjlx)) {
result = "tlqkryxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//物品持有人
}else if("WPCYR".equals(sjlx)){
result = "wpcyrxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("cyr_zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//物品所有人
}else if("WPSYR".equals(sjlx)){
result = "wpsyrxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("soyr_zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//机动车布控信息
}else if("JDCBKXX".equals(sjlx)){
result = "jdcbkxx";
//系列团伙案件线索
}else if("XLTHXSXX".equals(sjlx)){
result = "xlthxsxx";
//案件人员综合信息
}else if("ASJRYZHXX".equals(sjlx) || "ASJ_WPSYR".equals(sjlx) || "ASJ_WPCYR".equals(sjlx)){
result = "asjryzhxx";
//实体人员 and同案人员(结构等同于实体人员)
}else if("RY".equals(sjlx) || "RY_TARY".equals(sjlx)){
result = "ryxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("cyzj_zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//内蒙机动车卡口信息
}else if("JDCKKXX_NM".equals(sjlx)){
result = "jdckkxx";
//人员活动轨迹_网吧
}else if("RYHDGJ_WB".equals(sjlx)){
result = "ryhdgjwbxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("ZJHM");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//人员活动轨迹_旅馆住宿
}else if("RYHDGJ_LGZS".equals(sjlx)){
result = "ryhdgjlgzsxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("ZJHM");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//人员活动轨迹_航班
}else if("RYHDGJ_HB".equals(sjlx)){
result = "ryhdgjhbxx";
//获取照片
for(Map map : cbffkListMap){
String zjhm = (String)map.get("zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//人员活动轨迹_铁路订票
}else if("RYHDGJ_TLDP".equals(sjlx)){
result = "ryhdgjtldpxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("ZJHM");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
//实体物品
}else if("WP".equals(sjlx)){
result = "wpxx";
//实体单位
}else if("DW".equals(sjlx)){
result = "dwxx";
//犯罪团伙登记信息
}else if("FZTHDJXX".equals(sjlx)){
result = "fzthdjxx";
//犯罪团伙成员信息
}else if("FZTHCYXX".equals(sjlx)){
result = "fzthcyxx";
}else if("RY_GXR".equals(sjlx)){
//关系人
result = "rygxr";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("gxr_cyzj_zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
}else if("RY_JHR".equals(sjlx)){//被解救人员监护人
result = "ryjhr";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("cyzj_zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
}else if("RY_THRY".equals(sjlx)){
//系列团伙人员
result = "rythry";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("jhr_zjhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
}else if("RY_FWCZ".equals(sjlx)){
//房屋承租信息
result = "ryfwcz";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("gmsfhm");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
}else if("RY_ZYXX".equals(sjlx)){
result = "ryzyxx";
for(Map map : cbffkListMap){
String zjhm = (String)map.get("zjh");
if(zjhm != null && !"".equals(zjhm)){
//获取照片
String ryzp = getzp.getQgckZpXml(zjhm);
map.put("ryzp", ryzp);
}
}
}
}
switch (result){
case "asjxx":
//案事件
model.setViewName("news/cbf/cbfAsjxx");
break;
case "tlqkryxx":
//同类前科人员
model.setViewName("news/cbf/cbfTlqkryxx");
break;
case "wpcyrxx":
//物品持有人
model.setViewName("news/cbf/cbfWpcyrxx");
break;
case "wpsyrxx":
//物品所有人 ----3.0页面没有循环
model.setViewName("news/cbf/cbfWpsyrxx");
break;
case "jdcbkxx":
//机动车布控信息
model.setViewName("news/cbf/cbfJdcbkxx");
break;
case "xlthxsxx":
//系列团伙案件线索 ----3.0页面没有循环
model.setViewName("news/cbf/cbfXlthxsxx");
break;
case "asjryzhxx":
//案件人员综合信息
model.setViewName("news/cbf/cbfAsjryzhxx");
break;
case "ryxx":
// 实体人员
model.setViewName("news/cbf/cbfRyxx");
break;
case "jdckkxx":
// 机动车卡口信息
model.setViewName("news/cbf/cbfJdckkxx");
break;
case "ryhdgjwbxx":
// 人员活动轨迹_网吧
model.setViewName("news/cbf/cbfRyhdgjwbxx");
break;
case "ryhdgjlgzsxx":
// 人员活动轨迹_旅馆住宿
model.setViewName("news/cbf/cbfRyhdgjlgzsxx");
break;
case "ryhdgjhbxx":
// 人员活动轨迹_航班
model.setViewName("news/cbf/cbfRyhdgjhbxx");
break;
case "ryhdgjtldpxx":
// 人员活动轨迹_铁路订票
model.setViewName("news/cbf/cbfRyhdgjtldpxx");
break;
case "wpxx":
// 实体物品
model.setViewName("news/cbf/cbfwpxx");
break;
case "dwxx":
// 实体单位
model.setViewName("news/cbf/cbfdwxx");
break;
case "fzthdjxx":
// 犯罪团伙登记信息
model.setViewName("news/cbf/cbffzthdjxx");
break;
case "fzthcyxx":
// 犯罪团伙成员信息
model.setViewName("news/cbf/cbffzthdjxx");
break;
case "rygxr":
// 关系人
model.setViewName("news/cbf/cbfrygxrxx");
break;
case "ryjhr":
// 被解救人员监护人
model.setViewName("news/cbf/cbfryjhrxx");
break;
case "rythry":
// 系列团伙人员
model.setViewName("news/cbf/cbfrythryxx");
break;
case "ryfwcz":
// 房屋承租信息
model.setViewName("news/cbf/cbfryfwczxx");
break;
case "ryzyxx":
// 在押人员信息
model.setViewName("news/cbf/cbfryzyxx");
break;
default:
model.setViewName("news/cbf/cbffzthcyxx");
break;
}
model.addObject("cbffkListMap",cbffkListMap);
return model;
}
}
package com.founder.news.dao;
import com.founder.domain.Cbffk;
import com.founder.domain.SysDictitem;
import com.founder.domain.TbFwXxdl;
import com.founder.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
*
* @author wangyang
* @date 2019/4/17
*/
@Component
@Mapper
public interface NewsDao {
List<SysDictitem> getYjXxlx();
List<SysDictitem> getRjXxAlllx();
List<SysDictitem> getSjXxAlllx();
int getCountbyXxlx(TbFwXxdl tbFwXxdl);
int getZxxxCount(TbFwXxdl tbFwXxdl);
String getXxnameByXxlx(String xxlx);
List<TbFwXxdl> getXxdlByXXlx(TbFwXxdl tbFwXxdl);
List<TbFwXxdl> gettbXxfwXxdl(TbFwXxdl tbFwXxdl);
int getXxdlByXXlxCount(TbFwXxdl tbFwXxdl);
int gettbXxfwXxdlCount(TbFwXxdl tbFwXxdl);
String getFsrNamebyZjhm(String fsrZjhm);
TbFwXxdl gettbXxfwXxdlSqlByxxid(String xxid);
void updateYdById(String xxid);
void deleteNews(String id);
//根据单位代码获取单位用户列表
List<User> getUserListByUnitCode(String receiveUnitCode);
//消息入库
int insertNews(TbFwXxdl tbFwXxdl);
List<TbFwXxdl> getXxWdlList(TbFwXxdl tbFwXxdl);
List<TbFwXxdl> getZxXxWdlList(TbFwXxdl tbFwXxdl);
Cbffk getCbffkByXxbh(Map<String, String> filteMap);
}
package com.founder.news.service;
import com.founder.domain.Cbffk;
import com.founder.domain.SysDictitem;
import com.founder.domain.TbFwXxdl;
import com.founder.model.User;
import java.util.List;
import java.util.Map;
/**
*
* @author wangyang
* @date 2019/4/17
*/
public interface INewsService {
//消息队列信息消息类型(一級) 1、不含参数获取全部的一级消息类型 2、根据消息id获取消息类型
List<SysDictitem> findYjXxlxList();
//消息队列信息消息类型(二級) 1、含参数的获取指定code下的二级消息类型 2、不含参数获取全部二级消息类型
List<SysDictitem> findRjXxlxList();
//消息队列信息消息类型(三級) 含参数获取指定code下的三级消息类型
List<SysDictitem> findSjXxlxList();
//消息队列信息消息类型未读数
int queryXxlxCount(String xxlx, String identitycard);
//消息队列信息最新消息未读数 1、查询最新消息未读数 2、查询最新消息未读数(案件编号)
int queryZxxxCount(String identitycard);
//消息类型对应的消息名称
String getXxnameByXxlx(String xxlx);
//消息队列信息最新消息=(可 根据案件编号查找) 2、获取推送的最新消息列表(根据用户)
List<TbFwXxdl> findTbXxfwXxdlList(String xxlx, User user, int begin, int end);
//消息队列信息最新消息总数
int findTbXxfwXxdlListCount(String xxlx, User user);
//根据身份证号查询发送人姓名
String getFsrNamebyZjhm(String fsrZjhm);
//根据消息id获取消息的列表
TbFwXxdl findTbXxfwXxdlListByXxid(String xxid);
//已读后更新表状态信息
void updateXxdlYd(String xxid);
//批量删除消息
void deleteNews(String id);
//获取最新未读消息前十条
List<TbFwXxdl> findZxXxWdlList(String xxlx, User user, int begin, int end);
//获取消息详情以及三级标题Name
Map<String,Object> getXxXq(String xxid);
//根据消息编号和类型获取采比反消息详情
Cbffk getCbffkByXxbh(String xxbh, String sjlx);
}
package com.founder.news.service.impl;
import com.founder.domain.Cbffk;
import com.founder.domain.SysDictitem;
import com.founder.domain.TbFwXxdl;
import com.founder.model.User;
import com.founder.news.dao.NewsDao;
import com.founder.news.service.INewsService;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author wangyang
* @date 2019/4/17
*/
@Service
public class NewsServiceImpl implements INewsService {
@Autowired
private NewsDao newsDao;
@Override
public List<SysDictitem> findYjXxlxList() {
List<SysDictitem> list = null;
try {
list = newsDao.getYjXxlx();
} catch (Exception e) {
System.out.println("查询一级消息队列类型信息失败:" + e);
}
return list;
}
@Override
public List<SysDictitem> findRjXxlxList() {
List<SysDictitem> list = null;
try {
list = newsDao.getRjXxAlllx();
} catch (Exception e) {
System.out.println("查询二级消息队列类型信息失败:" + e);
}
return list;
}
@Override
public List<SysDictitem> findSjXxlxList() {
List<SysDictitem> list = null;
try {
list = newsDao.getSjXxAlllx();
} catch (Exception e) {
System.out.println("查询三级消息队列类型信息失败:" + e);
}
return list;
}
@Override
public int queryXxlxCount(String xxlx, String identitycard) {
TbFwXxdl tbFwXxdl = new TbFwXxdl();
tbFwXxdl.setXxlx(xxlx);
tbFwXxdl.setJsrZjhm(identitycard);
int a = 0;
try {
a = newsDao.getCountbyXxlx(tbFwXxdl);
} catch (Exception e) {
System.out.println("查询消息类型未读数失败:" + e);
}
return a;
}
@Override
public int queryZxxxCount(String identitycard) {
TbFwXxdl tbFwXxdl = new TbFwXxdl();
tbFwXxdl.setJsrZjhm(identitycard);
int a = 0;
try {
a = newsDao.getZxxxCount(tbFwXxdl);
} catch (Exception e) {
System.out.println("查询最新消息未读数失败:" + e);
}
return a;
}
@Override
public String getXxnameByXxlx(String xxlx) {
String xxName = null;
if (xxlx != null && !"".equals(xxlx)) {
try {
xxName = newsDao.getXxnameByXxlx(xxlx);
} catch (Exception e) {
System.out.println("查询消息类型对应的消息名称失败:" + e);
}
}
return xxName;
}
@Override
public List<TbFwXxdl> findTbXxfwXxdlList(String xxlx, User user,int begin,int end) {
TbFwXxdl tbFwXxdl = new TbFwXxdl();
List<TbFwXxdl> TbFwXxdls = null;
if (user != null) {
tbFwXxdl.setXxlx(xxlx);
tbFwXxdl.setJsrZjhm(user.getIdentitycard());
tbFwXxdl.setBegin(begin);
tbFwXxdl.setEnd(end);
try {
if (xxlx != null && !"".equals(xxlx)) {
// 根据消息类型获取消息
TbFwXxdls = newsDao.getXxdlByXXlx(tbFwXxdl);
} else {
// 最新消息30天
TbFwXxdls = newsDao.gettbXxfwXxdl(tbFwXxdl);
}
} catch (Exception e) {
System.out.println("查询消息队列信息最新消息失败:" + e);
}
}
return TbFwXxdls;
}
@Override
public int findTbXxfwXxdlListCount(String xxlx, User user) {
TbFwXxdl tbFwXxdl = new TbFwXxdl();
int a = 0;
if (user != null) {
tbFwXxdl.setXxlx(xxlx);
tbFwXxdl.setJsrZjhm(user.getIdentitycard());
try {
if (xxlx != null && !"".equals(xxlx)) {
// 根据消息类型获取消息
a = newsDao.getXxdlByXXlxCount(tbFwXxdl);
} else {
// 最新消息30天
a = newsDao.gettbXxfwXxdlCount(tbFwXxdl);
}
} catch (Exception e) {
System.out.println("查询消息队列信息最新消息总数失败:" + e);
}
}
return a;
}
@Override
public String getFsrNamebyZjhm(String fsrZjhm) {
String name = "";
try {
name = newsDao.getFsrNamebyZjhm(fsrZjhm);
} catch (Exception e) {
System.out.println("查询姓名失败:" + e);
}
return name;
}
/**
* 根据消息id获取消息的列表
* @param xxid
* @return
*/
@Override
public TbFwXxdl findTbXxfwXxdlListByXxid(String xxid) {
TbFwXxdl tbFwXxdl = null;
try {
if (xxid != null && !"".equals(xxid)) {
tbFwXxdl = newsDao.gettbXxfwXxdlSqlByxxid(xxid);
}
} catch (Exception e) {
System.out.println("根据消息id获取消息的列表失败:" + e);
}
return tbFwXxdl;
}
/**
* 已读后更新表状态信息
* @param xxid
*/
@Override
public void updateXxdlYd(String xxid) {
try {
if (xxid != null && !"".equals(xxid)) {
newsDao.updateYdById(xxid);
}
} catch (Exception e) {
System.out.println("已读后更新表状态信息失败:" + e);
}
}
@Override
public void deleteNews(String id) {
newsDao.deleteNews(id);
}
@Override
public List<TbFwXxdl> findZxXxWdlList(String xxlx, User user, int begin, int end) {
TbFwXxdl tbFwXxdl = new TbFwXxdl();
List<TbFwXxdl> TbFwXxdls = null;
if (user != null) {
tbFwXxdl.setXxlx(xxlx);
tbFwXxdl.setJsrZjhm(user.getIdentitycard());
tbFwXxdl.setBegin(begin);
tbFwXxdl.setEnd(end);
try {
if (xxlx != null && !"".equals(xxlx)) {
// 根据消息类型获取未读消息
TbFwXxdls = newsDao.getXxWdlList(tbFwXxdl);
} else {
// 最新消息未读30天
TbFwXxdls = newsDao.getZxXxWdlList(tbFwXxdl);
}
} catch (Exception e) {
System.out.println("查询未读消息失败:" + e);
}
}
return TbFwXxdls;
}
@Override
public Map<String, Object> getXxXq(String xxid) {
TbFwXxdl tbFwXxdl = findTbXxfwXxdlListByXxid(xxid);
String yjName = "";
String ejName = "";
String sjName = "";
if (tbFwXxdl != null) {
// 未读
if ("0".equals(tbFwXxdl.getSfydPdbz())) {
//未读消息更新消息状态
updateXxdlYd(tbFwXxdl.getXxid());
// 已读
}
// 消息类型
String xxlx = tbFwXxdl.getXxlx();
if (xxlx != null && !"".equals(xxlx)) {
// 一级标题
if (xxlx.substring(2, 6).equals("0000")) {
// 一级消息类型名称
yjName = getXxnameByXxlx(xxlx);
// 二级标题
} else if (xxlx.substring(4, 6).equals("00") && !xxlx.substring(2, 6).equals("0000")) {
// 一级消息类型名称
yjName = getXxnameByXxlx(xxlx.substring(0, 2) + "0000");
// 二级消息类型名称
ejName = getXxnameByXxlx(xxlx);
// 三级标题
} else {
// 一级消息类型名称
yjName = getXxnameByXxlx(xxlx.substring(0, 2) + "0000");
// 二级消息类型名称
ejName = getXxnameByXxlx(xxlx.substring(0, 4) + "00");
// 三级标题
sjName = getXxnameByXxlx(xxlx);
}
}
}
if (tbFwXxdl !=null){
String fsrName = tbFwXxdl.getFsrName();
if (StringUtils.isNotBlank(fsrName)) {
//当发送人姓名不存在时,根据身份证号查询发送人姓名
String name = getFsrNamebyZjhm(tbFwXxdl.getFsrZjhm());
tbFwXxdl.setFsrName(name);
}
}
Map<String,Object> map = new HashMap<String,Object>();
map.put("tbFwXxdl", tbFwXxdl);
map.put("yjName", yjName);
map.put("ejName", ejName);
map.put("sjName", sjName);
return map;
}
@Override
public Cbffk getCbffkByXxbh(String xxbh, String sjlx) {
Cbffk cbffk = null;
if (xxbh != null && !"".equals(xxbh) && sjlx != null && !"".equals(sjlx)) {
Map<String, String> filteMap = new HashMap<String, String>();
filteMap.put("xxbh", xxbh);
filteMap.put("sjlx", sjlx);
try {
cbffk = newsDao.getCbffkByXxbh(filteMap);
}catch (Exception e){
System.out.println("据消息编号和类型获取采比反消息详情失败:"+e);
}
}
return cbffk;
}
}
package com.founder.socketio.controller;
import com.alibaba.druid.util.StringUtils;
import com.founder.domain.TbFwXxdl;
import com.founder.socketio.service.IMessageService;
import com.founder.socketio.socketserver.Socketio;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
/**
*消息管理
* @author wangyang
* @date 2019/4/16
*/
@Controller
public class MessageController {
@Autowired
private IMessageService messageService;
@RequestMapping("/sendMessage")
@ResponseBody
public String sendMessage(TbFwXxdl tbFwXxdl,HttpServletRequest request){
if (StringUtils.isEmpty(tbFwXxdl.getJsdwDm())){
tbFwXxdl.setJsdwDm(request.getParameter("jsdwDm"));
}
if (StringUtils.isEmpty(tbFwXxdl.getJsrZjhm())){
tbFwXxdl.setJsrZjhm(request.getParameter("jsrZjhm"));
}
if (StringUtils.isEmpty(tbFwXxdl.getFsrName())){
tbFwXxdl.setFsrName(request.getParameter("fsrName"));
}
if (StringUtils.isEmpty(tbFwXxdl.getXxbt())){
tbFwXxdl.setXxbt(request.getParameter("xxbt"));
}
if (StringUtils.isEmpty(tbFwXxdl.getXxlx())){
tbFwXxdl.setXxlx(request.getParameter("xxlx"));
}
if (StringUtils.isEmpty(tbFwXxdl.getXxnr())){
tbFwXxdl.setXxnr(request.getParameter("xxnr"));
}
String Message = messageService.sendMessage(tbFwXxdl);
return Message;
}
@RequestMapping("/sendMessageNew")
@ResponseBody
public String sendMessageNew(TbFwXxdl tbFwXxdl){
Socketio.sendMessage(tbFwXxdl);
return "发送成功";
}
}
package com.founder.socketio.domain;
import com.corundumstudio.socketio.SocketIOClient;
/**
* Created by wind10 on 2019/4/16.
*/
public class ClientUser {
private String identitycard;
private SocketIOClient client;
public ClientUser(String identitycard, SocketIOClient client){
this.identitycard = identitycard;
this.client = client;
}
public String getIdentitycard() {
return identitycard;
}
public void setIdentitycard(String identitycard) {
this.identitycard = identitycard;
}
public SocketIOClient getClient() {
return client;
}
public void setClient(SocketIOClient client) {
this.client = client;
}
}
package com.founder.socketio.listener;
import com.founder.socketio.socketserver.Socketio;
import org.springframework.context.annotation.Configuration;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
/**
* Created by wind10 on 2019/4/16.
*/
@Configuration
public class SocketioLisener implements ServletContextListener {
Socketio socketio = null;
@Override
public void contextInitialized(ServletContextEvent sce) {
//启动Socketio服务
if (socketio == null) {
socketio = new Socketio();
}
socketio.startServer();
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
//关闭Socketio服务
if (socketio != null) {
System.out.println("socketid已关闭....");
socketio.stopSocketio();
}
}
}
package com.founder.socketio.service;
import com.founder.domain.TbFwXxdl;
/**
*消息中心Service
* @author wangyang
* @date 2019/4/20
*/
public interface IMessageService {
String sendMessage(TbFwXxdl tbFwXxdl);
}
package com.founder.socketio.service.impl;
import com.alibaba.druid.util.StringUtils;
import com.founder.domain.TbFwXxdl;
import com.founder.model.User;
import com.founder.login.dao.LoginDao;
import com.founder.news.dao.NewsDao;
import com.founder.socketio.service.IMessageService;
import com.founder.socketio.socketserver.Socketio;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.UUID;
/**
*
* @author wangyang
* @date 2019/4/20
*/
@Service
public class MessageServiceImpl implements IMessageService{
@Autowired
private NewsDao newsDao;
@Autowired
private LoginDao loginDao;
@Override
public String sendMessage(TbFwXxdl tbFwXxdl) {
if (!StringUtils.isEmpty(tbFwXxdl.getJsdwDm()) && !StringUtils.isEmpty(tbFwXxdl.getJsrZjhm()) ){
return "发送消息失败,接收人、接收单位不能同时存在!";
}
if (StringUtils.isEmpty(tbFwXxdl.getFsrZjhm()) && StringUtils.isEmpty(tbFwXxdl.getFsrName())){
return "发送消息失败,发送人信息不能为空!";
}
if (StringUtils.isEmpty(tbFwXxdl.getXxbt())){
return "发送消息失败,消息标题不能为空!";
}
if (StringUtils.isEmpty(tbFwXxdl.getXxlx())){
return "发送消息失败,消息类型不能为空!";
}
if (StringUtils.isEmpty(tbFwXxdl.getXxnr())){
return "发送消息失败,消息内容不能为空!";
}
if (StringUtils.isEmpty(tbFwXxdl.getJsrZjhm())&& StringUtils.isEmpty(tbFwXxdl.getJsdwDm())){
return "发送消息失败,接收者信息不能为空!";
}
//以及消息编号 以及发送时间
Date date = new Date();
tbFwXxdl.setXxbh(UUID.randomUUID().toString().replace("-", ""));
// 存放接收者身份证号
HashSet<String> idCadeList = new HashSet<String>();
if (tbFwXxdl.getJsrZjhm() != null){
idCadeList.add(tbFwXxdl.getJsrZjhm());
}
// 接收单位
String receiveUnitCode = tbFwXxdl.getJsdwDm();
// 消息发送给指定单位 接收单位处理start
if (!"".equals(receiveUnitCode) && receiveUnitCode != null) {
// 根据单位代码获取单位用户列表
List<User> unitUsers = newsDao.getUserListByUnitCode(receiveUnitCode);
if (unitUsers != null && unitUsers.size() > 0) {
for (User u : unitUsers) {
if (!idCadeList.contains(u.getIdentitycard())) {
// 指定单位下所有用户也放入list
idCadeList.add(u.getIdentitycard());
}
}
}
}
// 消息接收单位处理end
User user = null;
String fsrZjhm = tbFwXxdl.getFsrZjhm();
String fsrName = tbFwXxdl.getFsrName();
// 通过消息发送人身份证号码获取发送人信息
if (fsrName == null && !"".equals(fsrName)) {
user = loginDao.queryUserById(fsrZjhm);
if (user == null) {
return "发送消息失败,发送人信息不存在!";
}
//发送人姓名
fsrName = user.getTrueName() == null ? user.getTrueName() : user.getTrueName().trim();
}
String result = "";
if (idCadeList != null && idCadeList.size() > 0) {
for (String idCade : idCadeList) {
TbFwXxdl insertNews = new TbFwXxdl();
insertNews.setFssj(date);
insertNews.setJsrZjhm(idCade);
//消息编号
insertNews.setXxbh(tbFwXxdl.getXxbh());
//发送人姓名
insertNews.setFsrName(fsrName);
//接收单位代码
if (tbFwXxdl.getJsdwDm()!=null){
insertNews.setJsdwDm(tbFwXxdl.getJsdwDm());
}
//发送人证件号码
insertNews.setFsrZjhm(tbFwXxdl.getFsrZjhm());
insertNews.setXxbt(tbFwXxdl.getXxbt());
insertNews.setXxlx(tbFwXxdl.getXxlx());
insertNews.setXxname(tbFwXxdl.getXxname());
insertNews.setXxnr(tbFwXxdl.getXxnr());
insertNews.setYwdx(tbFwXxdl.getYwdx());
insertNews.setSfydPdbz("0");
//设置消息ID
insertNews.setXxid(UUID.randomUUID().toString().replace("-", ""));
// 根据身份证号码获取用户信息
User jsr = loginDao.queryUserById(insertNews.getJsrZjhm());
if (jsr != null) {
int flag = newsDao.insertNews(insertNews);
if (flag == 1) {
insertNews.setXxbt("您有一条新消息!");
// 推送消息
Socketio.sendMessage(insertNews);
} else {
return "发送消息失败,消息队列信息新增出错";
}
} else {
return "发送消息失败,接收人信息不存在!";
}
}
result = tbFwXxdl.getXxbh();
}
return result;
}
}
package com.founder.socketio.socketserver;
import com.corundumstudio.socketio.AckRequest;
import com.corundumstudio.socketio.Configuration;
import com.corundumstudio.socketio.SocketIOClient;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.listener.ConnectListener;
import com.corundumstudio.socketio.listener.DataListener;
import com.corundumstudio.socketio.listener.DisconnectListener;
import com.founder.domain.TbFwXxdl;
import com.founder.socketio.domain.ClientUser;
import com.founder.utils.PropertiesUtils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
/**
* Created by wind10 on 2019/4/16.
*/
public class Socketio {
private static SocketIOServer socketIOServer;
private final static List<ClientUser> cus = new ArrayList<ClientUser>();
/**
* @Title: startSocketio
* @Description: 创建服务添加客户端
*/
public void startSocketio() {
// 配置
Configuration conf = new Configuration();
// 指定要主机ip地址,这个和页面请求ip地址一致
conf.setHostname( PropertiesUtils.getProperty("socketAddress"));
// 指定端口号
conf.setPort(Integer.parseInt(PropertiesUtils.getProperty("socketProd")));
socketIOServer = new SocketIOServer( conf );
ConnectListener connect = new ConnectListener() {
@Override
public void onConnect( SocketIOClient client ) {
System.out.println("===================");
}
};
//监听用户“charvent”消息
socketIOServer.addEventListener("chatevent", String.class, new DataListener<String>() {
@Override
public void onData(SocketIOClient client, String identitycard, AckRequest ackRequest) {
System.out.println("chatevent -> onData in");
//用户连接服务成功,保存用户信息到用户列表中
cus.add(new ClientUser(identitycard, client));
}
});
//客户端连接服务
socketIOServer.addConnectListener(new ConnectListener() {
@Override
public void onConnect(SocketIOClient client) {
System.out.println("A client connected.");
}
});
//客户端断开服务
socketIOServer.addDisconnectListener(new DisconnectListener() {
@Override
public void onDisconnect(SocketIOClient client) {
System.out.println("A client disconnected.");
System.out.println(client.getRemoteAddress());
//用户断开服务,在客户列表中移除用户信息
for (ClientUser cu : cus) {
if (cu.getClient() != null && cu.getClient().equals(client)) {
if (cus.remove(cu)) {
System.out.println("client disconnected : " + cu.getIdentitycard());
break;
}
}
}
}
});
socketIOServer.start();
}
/**
* @Title: pushArr
* @Description: 全体消息推送
* @param type
* 前台根据类型接收消息,所以接收的消息类型不同,收到的通知就不同 推送的事件类型
* @param content
* 推送的内容
*/
public void pushArr( String type, Object content ) {
// 获取全部客户端
Collection<SocketIOClient> allClients = socketIOServer.getAllClients();
for( SocketIOClient socket : allClients ) {
socket.sendEvent( type, content );
}
}
/**
* @Title: startServer
* @Description: 启动服务
*/
public void startServer() {
if( socketIOServer == null ) {
new Thread( new Runnable() {
@Override
public void run() {
startSocketio();
}
} ).start();
}
}
/**
* @Title: stopSocketio
* @Description: 停止服务
*/
public void stopSocketio() {
if( socketIOServer != null ) {
socketIOServer.stop();
socketIOServer = null;
}
}
// 参数是一条消息体
public static void sendMessage(TbFwXxdl tbFwXxdl) {
if (tbFwXxdl != null) {
for (ClientUser cu : cus) {
if (cu.getIdentitycard() != null && cu.getIdentitycard().equals(tbFwXxdl.getJsrZjhm())) {
cu.getClient().sendEvent("chatevent", tbFwXxdl);
}
}
}
}
}
package com.founder.utils;
/**
* 状态码
*
* @author wind10
* @date 2019/4/22
*/
public class CodeUnits {
//查询高危入境人员查询类型 0:发案当天入境
public static final String QUERY_GWRJRY_TYPE_ZERO = "0";
//查询高危入境人员查询类型 1:发案前1天入境
public static final String QUERY_GWRJRY_TYPE_ONE = "1";
//查询高危入境人员查询类型 2:发案前2天 入境
public static final String QUERY_GWRJRY_TYPE_TWO = "2";
//查询高危入境人员查询类型 3:发案前三天入境
public static final String QUERY_GWRJRY_TYPE_THREE = "3";
//获取案发前进入本市的高危人员 0:只查数量
public static final String QUERY_GWRJRY_QUERYTYPE_ZERO = "0";
/**
* @Description 私有化构造方法
*/
private CodeUnits(){};
public static final String STRING_BLACK = "";
//手机号开始数据
public static final String DHHM_STARTS_WITH = "1";
//map返回对象 name total
public static final String RESULT_MAP_TOTAL = "total";
//map返回对象 name rows
public static final String RESULT_MAP_ROWS = "rows";
public static final String MESSAGE_ERROR = "error";
public static final String MESSAGE_SUCCESS = "success";
//查询湖南全省手机资源时,对返回list进行过滤 调用过滤方法type
public static final String FILTER_LIST_TYPE_ONE = "1";
public static final String FILTER_LIST_TYPE_TWO = "2";
//查询12306接口状态 ---查询中
public static final String QUERY_12306_STATE_QUERYING = "查询中";
//悬赏审核---同意
public static final String XSSH_TY = "ok";
//悬赏审核意见--同意完成
public static final String XSSH_TY_MESSAGE = "同意完成";
public static final String XSSH_SUCCESS = "ok";
public static final String XSSH_SUCCESS_MESSAGE = "审批成功";
public static final String XSSH_ERROR = "fail";
public static final String XSSH_ERROR_MESSAGE = "审批失败";
//获取案事件信息失败标志
public static final String GET_ASJXX_FAIL = "fail";
//积分流水--积分来源
public static final String JFLS_JFLY_ONE = "1";
public static final String JFLS_XXQK = "完成悬赏任务,获得积分";
//完成悬赏任务,归还悬赏发布人未完成项目积分
public static final String JFLS_XXQK_WWCJF = "完成悬赏任务,归还悬赏发布人未完成项目积分";
//领取悬赏后,发布人撤销悬赏,归还领取人抵押悬赏积分和补偿积分
public static final String JFLS_XXQK_ONE = "领取悬赏后,发布人撤销悬赏,归还领取人抵押悬赏积分和补偿积分";
//领取人领取悬赏后,发布人撤销悬赏,归还发布人悬赏积分
public static final String JFLS_XXQK_TWO = "领取人领取悬赏后,发布人撤销悬赏,归还发布人悬赏积分";
//领取人领取悬赏后、领取人规定时间外撤销悬赏,扣除悬赏人积分,交给领取人获得的积分
public static final String JFLS_XXQK_THREE = "领取人领取悬赏后、领取人规定时间外撤销悬赏,扣除悬赏人积分,交给领取人获得的积分";
//悬赏被领取后,领取人撤销悬赏,归还领取人扣除违约积分后返还抵押悬赏积分
public static final String JFLS_XXQK_FOUR = "悬赏被领取后,领取人撤销悬赏,归还领取人扣除违约积分后返还抵押悬赏积分";
//未领取前,用户撤销悬赏,归还发布人悬赏积分
public static final String JFLS_XXQK_FIVE = "未领取前,用户撤销悬赏,归还发布人悬赏积分";
//发布人提交悬赏任务,扣除悬赏积分
public static final String JFLS_XXQK_SIX = "发布人提交悬赏任务,扣除悬赏积分";
//用户领取悬赏任务扣除抵押积分
public static final String JFLS_XXQK_SEVEN = "用户领取悬赏任务扣除抵押积分";
//Session域中cookiename
public static final String ES_COOKIE_NAME = "EsCookie";
//同违章查询type---
public static final String TWZ_QUERY_TYPE_BY_ZJHM_ONE = "1";
public static final String TWZ_QUERY_TYPE_BY_ZJHM_TWO = "2";
public static final String LOGIN_USER = "User";
public static final String CODE_SUCCESS = "0";
public static final String CODE_ERROR = "-1";
public static final String CODE_FAILD = "-2";
public static final String STATE = "state";
public static final String MESSAGE = "msg";
public static final String MESSAGE_DYJFBZ = "抵押积分不足!";
public static final String MESSAGE_XSFBCG = "悬赏发布成功!";
public static final String MESSAGE_XSFBSB = "悬赏发布失败,请重新提交!";
public static final String MESSAGE_XSCXCG = "悬赏撤销成功!";
public static final String MESSAGE_XSCXSB = "悬赏撤销失败,请刷新列表重试!";
//悬赏类型 aj
public static final String XSLX_AJ = "aj";
//悬赏类型 ry
public static final String XSLX_RY = "ry";
//悬赏提交成功
public static final String STATE_XSTJCG = "ok";
//悬赏撤销成功
public static final String STATE_XSCXCG = "ok";
//悬赏状态 1
public static final String XSZT_ONE = "1";
public static final String XSZT_FIVE = "5";
public static final String XSZT_SIX = "6";
//悬赏附件type
public static final String XSFJ_TYPE_ONE = "1";
//文件上传格式验证
public static final String LOW_JPG = ".jpg";
public static final String LOW_PNG = ".png";
public static final String LOW_GIF = ".gif";
public static final String LOW_BMP = ".bmp";
public static final String LOW_PDF = ".pdf";
public static final String UP_JPG = ".JPG";
public static final String UP_PNG = ".PNG";
public static final String UP_GIF = ".GIF";
public static final String UP_BMP = ".BMP";
public static final String UP_PDF = ".PDF";
public static final String DOC = ".doc";
public static final String DOCX = ".docx";
//悬赏文件上传失败state
public static final String XS_UPLOAD_FAIL_STATE = "uploadFail";
//悬赏文件上传失败message----文件格式不正确
public static final String XS_UPLOAD_FAIL_MESSAGE = "上传悬赏反馈附件失败,请选择正确的照片或pdf或word格式!";
//悬赏文件上传失败message---其他原因
public static final String XS_UPLOAD_FAIL_MESSAGE_QT = "上传反馈悬赏附件失败!";
//保存反馈信息失败
public static final String XS_SAVE_FAIL_MESSAGE = "保存反馈信息失败!";
//悬赏反馈成功
public static final String XS_SAVE_SUCCESS_MESSAGE = "悬赏反馈成功!";
//悬赏消息------悬赏审核相关
public static final String XS_SH_SEND_MESSAGE_ONE = "您的领取的悬赏编号为:";
public static final String XS_SH_SEND_MESSAGE_TWO = "的悬赏悬赏人已审核完毕,悬赏已完成,本次获取积分:";
public static final String XS_SH_SEND_MESSAGE_THREE = "分。";
public static final String XS_SH_SEND_MESSAGE_FOUR = "您的领取的悬赏编号为:";
public static final String XS_SH_SEND_MESSAGE_FIVE = "的悬赏悬赏人已审核完毕,审核未通过,请重新反馈。";
public static final String XS_SH_SEND_MESSAGE_SIX = "您有一条悬赏审核已完成,请尽快查看";
//悬赏消息------反馈相关
public static final String XS_FK_SEND_MESSAGE_ONE = "您的悬赏编号为:";
public static final String XS_FK_SEND_MESSAGE_TWO = "的悬赏领取人已反馈,请尽快审核";
public static final String XS_FK_SEND_MESSAGE_THREE = "您有一条悬赏已反馈,请尽快审核";
//悬赏消息类型
public static final String XS_XXLX_DM = "020806";
public static final String XS_XXLX_NAME = "悬赏";
//悬赏完成情况--1 已完成
public static final String XS_WCQK = "1";
//所属单位---15
public static final String SSDWDM_15 = "15";
//我侦办的案件
public static final String WZBDAJ = "1";
//排序map 的类型
public static final String SOLR_LIST_TYPE_ZERO = "0";
}
package com.founder.utils;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
import org.springframework.stereotype.Component;
import java.io.IOException;
import java.util.Properties;
/**
* 配置文件读取工具类
*
* @author wangyang
* @date 2019/4/22
*/
@Component
public class PropertiesUtils {
private static Properties props ;
public PropertiesUtils(){
try {
Resource resource = new ClassPathResource("/interfaceUrl.properties");
props = PropertiesLoaderUtils.loadProperties(resource);
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取属性
* @param key
* @return
*/
public static String getProperty(String key){
return props == null ? null : props.getProperty(key);
}
/**
* 获取属性
* @param key 属性key
* @param defaultValue 属性value
* @return
*/
public static String getProperty(String key,String defaultValue){
return props == null ? null : props.getProperty(key, defaultValue);
}
/**
* 获取properyies属性
* @return
*/
public static Properties getProperties(){
return props;
}
}
......@@ -104,4 +104,15 @@ public class Utils {
return map;
}
public static List<Map<String, Object>> parseJSON2List(String jsonStr) {
JSONArray jsonArr = JSONArray.fromObject(jsonStr);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Iterator<JSONObject> it = jsonArr.iterator();
while (it.hasNext()) {
JSONObject json2 = it.next();
list.add(parseJSON2Map(json2.toString()));
}
return list;
}
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.founder.news.dao.NewsDao">
<!-- 获取信息类型的列表一级类别 -->
<select id="getYjXxlx" resultType="com.founder.domain.SysDictitem">
select code,name,pid from SYS_DICTITEM where GROUPID='CODE_XXLXXL' AND SCBZ = '0' and pid is null and length(code)=6 ORDER BY code
</select>
<!-- 获取信息类型的列表所有二级类别 -->
<select id="getRjXxAlllx" resultType="com.founder.domain.SysDictitem">
select code,name,pid from SYS_DICTITEM s where GROUPID='CODE_XXLXXL' AND SCBZ = '0' and substr(code, 5)='00' and substr(code, 3)!='0000' ORDER BY code
</select>
<!-- 获取信息类型的列表所有三级类别 -->
<select id="getSjXxAlllx" resultType="com.founder.domain.SysDictitem">
select code,name,pid from SYS_DICTITEM s where GROUPID='CODE_XXLXXL' AND SCBZ = '0' and substr(code, 5)!='00' and substr(code, 3)!='0000' ORDER BY code
</select>
<!-- 获取信息类型未读数 -->
<select id="getCountbyXxlx" parameterType="com.founder.domain.TbFwXxdl"
resultType="java.lang.Integer">
SELECT COUNT(*)
FROM TB_FW_XXDL t
WHERE xxsc_pdbz='0' AND sfyd_pdbz='0' AND
LENGTH(xxlx)=6
<if test="jsrZjhm != null and jsrZjhm != ''">
AND jsr_zjhm = #{jsrZjhm}
</if>
<if test="xxlx != null and xxlx != ''">
AND xxlx LIKE '${xxlx}%'
</if>
</select>
<!-- 获取最新消息未读数 -->
<select id="getZxxxCount" parameterType="com.founder.domain.TbFwXxdl"
resultType="java.lang.Integer">
select count(*)
from TB_FW_XXDL t
where sfyd_pdbz='0' and xxsc_pdbz = '0' and
length(xxlx)=6
AND to_char(fssj,'YY/MM/DD') <![CDATA[>=]]> to_char(SYSDATE - 30,'YY/MM/DD')
<if test="jsrZjhm != null and jsrZjhm != ''">
AND jsr_zjhm = #{jsrZjhm}
</if>
</select>
<!-- 根据消息类型获取消息名称 -->
<select id="getXxnameByXxlx" parameterType="java.lang.String" resultType="java.lang.String">
select name from SYS_DICTITEM where GROUPID='CODE_XXLXXL' and scbz = '0' and length(code)=6 and code=#{value,jdbcType=VARCHAR}
</select>
<!-- 获取最新消息的列表 ,根据消息类型 -->
<select id="getXxdlByXXlx" parameterType="com.founder.domain.TbFwXxdl"
resultType="com.founder.domain.TbFwXxdl">
SELECT
*
FROM
(
SELECT
news.*, ROWNUM rn
FROM
(
select
XXID as xxid,
ywdx as ywdx,
xxbt as xxbt,
xxnr as xxnr,
xxlx as xxlx,
jsr_zjhm as jsrZjhm,
(select name from SYS_DICTITEM where GROUPID='CODE_XXLXXL' and scbz = '0' and length(code)=6 and code=xxlx) as xxname,
fsr_zjhm as fsrZjhm,
fsr_name as fsrName,
fssj as fssj,
sfyd_pdbz as sfydPdbz,
ydsj as ydsj,
xxbh as xxbh
from TB_FW_XXDL
where xxsc_pdbz = '0' and length(xxlx)=6
<if test="xxlx != null and xxlx != ''">
AND xxlx LIKE '${xxlx}%'
</if>
<if test="jsrZjhm != null and jsrZjhm != ''">
and jsr_zjhm = #{jsrZjhm}
</if>
ORDER BY sfyd_pdbz ASC, fssj DESC
) news
where ROWNUM <![CDATA[<=]]>
#{end}
) where rn > #{begin}
</select>
<!-- 获取最新消息的列表(30天内消息) -->
<select id="gettbXxfwXxdl" parameterType="com.founder.domain.TbFwXxdl"
resultType="com.founder.domain.TbFwXxdl">
SELECT
*
FROM
(
SELECT
news.*, ROWNUM rn
FROM
(
SELECT
XXID as xxid,
ywdx as ywdx,
xxbt as xxbt,
xxnr as xxnr,
xxlx as xxlx,
(select name from SYS_DICTITEM where GROUPID='CODE_XXLXXL' and scbz = '0' and length(code)=6 and code=xxlx) as xxname,
jsr_zjhm as jsrZjhm,
fsr_zjhm as fsrZjhm,
fsr_name as fsrName,
fssj as fssj,
sfyd_pdbz as sfydPdbz,
ydsj as ydsj,
xxbh as xxbh
from TB_FW_XXDL
where xxsc_pdbz = '0' and length(xxlx)=6
AND to_char(fssj,'YY/MM/DD') <![CDATA[>=]]> to_char(SYSDATE - 30,'YY/MM/DD')
<if test="jsrZjhm != null and jsrZjhm != ''">
and jsr_zjhm = #{jsrZjhm}
</if>
ORDER BY sfyd_pdbz ASC, fssj DESC
) news
where ROWNUM <![CDATA[<=]]>
#{end}
) where rn > #{begin}
</select>
<!-- 获取最新消息的总数 ,根据消息类型 -->
<select id="getXxdlByXXlxCount" parameterType="com.founder.domain.TbFwXxdl"
resultType="java.lang.Integer">
select
COUNT(*)
from TB_FW_XXDL
where xxsc_pdbz = '0' and length(xxlx)=6
<if test="xxlx != null and xxlx != ''">
AND xxlx LIKE '${xxlx}%'
</if>
<if test="jsrZjhm != null and jsrZjhm != ''">
and jsr_zjhm = #{jsrZjhm}
</if>
ORDER BY sfyd_pdbz ASC, fssj DESC
</select>
<!-- 获取最新消息的总数(30天内未读消息) -->
<select id="gettbXxfwXxdlCount" parameterType="com.founder.domain.TbFwXxdl"
resultType="java.lang.Integer">
SELECT
COUNT(*)
from TB_FW_XXDL
where xxsc_pdbz = '0' and length(xxlx)=6
AND to_char(fssj,'YY/MM/DD') <![CDATA[>=]]> to_char(SYSDATE - 30,'YY/MM/DD')
<if test="jsrZjhm != null and jsrZjhm != ''">
and jsr_zjhm = #{jsrZjhm}
</if>
ORDER BY sfyd_pdbz ASC, fssj DESC
</select>
<!-- 根据消息类型获取消息名称 -->
<select id="getFsrNamebyZjhm" parameterType="java.lang.String" resultType="java.lang.String">
SELECT TRUE_NAME FROM SYS_USER WHERE SCBZ = '0' AND IDENTITYCARD = #{value,jdbcType=VARCHAR}
</select>
<!--根据消息id获取消息的列表-->
<select id="gettbXxfwXxdlSqlByxxid" parameterType="java.lang.String"
resultType="com.founder.domain.TbFwXxdl">
SELECT
XXID as xxid,
ywdx as ywdx,
xxbt as xxbt,
xxnr as xxnr,
xxlx as xxlx,
(select name from SYS_DICTITEM where GROUPID='CODE_XXLXXL' and scbz = '0' and length(code)=6 and code=xxlx) as xxname,
jsr_zjhm as jsrZjhm,
fsr_zjhm as fsrZjhm,
fsr_name as fsrName,
fssj as fssj,
sfyd_pdbz as sfydPdbz,
ydsj as ydsj,
xxbh as xxbh
from TB_FW_XXDL where xxsc_pdbz = '0' and xxid=#{value,jdbcType=VARCHAR}
</select>
<!-- 已读后更新表状态信息 -->
<update id="updateYdById" parameterType="java.lang.String">
update TB_FW_XXDL set
sfyd_pdbz='1',ydsj=sysdate where xxid = #{value,jdbcType=VARCHAR}
</update>
<!-- 删除消息 -->
<update id="deleteNews" parameterType="java.lang.String">
update TB_FW_XXDL set
XXSC_PDBZ='1',SCSJ=sysdate where xxid = #{value,jdbcType=VARCHAR}
</update>
<!-- 根据单位代码查询本单位用户列表 -->
<select id="getUserListByUnitCode" parameterType="java.lang.String" resultType="com.founder.model.User">
SELECT * FROM sys_user WHERE unitcode=#{value} AND SCBZ='0' AND IDENTITYCARD IS NOT NULL
</select>
<!-- 新增 -->
<insert id="insertNews" parameterType="com.founder.domain.TbFwXxdl">
insert into TB_FW_XXDL
(
xxid,
ywdx,
xxbt,
xxnr,
xxlx,
jsr_zjhm,
fsr_zjhm,
fsr_name,
fssj,
sfyd_pdbz,
ydsj,
scsj,
xxsc_pdbz,
xxbh,
jsdw_Dm
) values (
<if test="xxid != null">
#{xxid},
</if>
<if test="xxid == null">
NULL ,
</if>
<if test="ywdx != null">
#{ywdx},
</if>
<if test="ywdx == null">
NULL ,
</if>
<if test="xxbt != null">
#{xxbt},
</if>
<if test="xxbt == null">
NULL ,
</if>
<if test="xxnr != null">
#{xxnr},
</if>
<if test="xxnr == null">
NULL ,
</if>
<if test="xxlx != null">
#{xxlx},
</if>
<if test="xxlx == null">
NULL ,
</if>
<if test="jsrZjhm != null">
#{jsrZjhm},
</if>
<if test="jsrZjhm == null">
NULL ,
</if>
<if test="fsrZjhm != null">
#{fsrZjhm},
</if>
<if test="fsrZjhm == null">
NULL ,
</if>
<if test="fsrName != null">
#{fsrName},
</if>
<if test="fsrName == null">
NULL ,
</if>
<if test="fssj != null">
#{fssj, jdbcType=TIMESTAMP},
</if>
<if test="fssj == null">
NULL ,
</if>
'0',
NULL,
NULL,
'0',
<if test="xxbh == null">
NULL ,
</if>
<if test="xxbh != null">
#{xxbh},
</if>
<if test="jsdwDm == null">
NULL
</if>
<if test="jsdwDm != null">
#{jsdwDm}
</if>
)
</insert>
<!-- 获取最新消息的列表(30天内未读消息) -->
<select id="getZxXxWdlList" parameterType="com.founder.domain.TbFwXxdl"
resultType="com.founder.domain.TbFwXxdl">
SELECT
*
FROM
(
SELECT
news.*, ROWNUM rn
FROM
(
SELECT
XXID as xxid,
ywdx as ywdx,
xxbt as xxbt,
xxnr as xxnr,
xxlx as xxlx,
(select name from SYS_DICTITEM where GROUPID='CODE_XXLXXL' and scbz = '0' and length(code)=6 and code=xxlx) as xxname,
jsr_zjhm as jsrZjhm,
fsr_zjhm as fsrZjhm,
fsr_name as fsrName,
fssj as fssj,
sfyd_pdbz as sfydPdbz,
ydsj as ydsj,
xxbh as xxbh
from TB_FW_XXDL
where xxsc_pdbz = '0' and length(xxlx)=6
AND to_char(fssj,'YY/MM/DD') <![CDATA[>=]]> to_char(SYSDATE - 30,'YY/MM/DD')
AND sfyd_pdbz = '0'
<if test="jsrZjhm != null and jsrZjhm != ''">
and jsr_zjhm = #{jsrZjhm}
</if>
ORDER BY sfyd_pdbz ASC, fssj DESC
) news
where ROWNUM <![CDATA[<=]]>
#{end}
) where rn > #{begin}
</select>
<!-- 获取最新消息的列表 ,根据消息类型 -->
<select id="getXxWdlList" parameterType="com.founder.domain.TbFwXxdl"
resultType="com.founder.domain.TbFwXxdl">
SELECT
*
FROM
(
SELECT
news.*, ROWNUM rn
FROM
(
select
XXID as xxid,
ywdx as ywdx,
xxbt as xxbt,
xxnr as xxnr,
xxlx as xxlx,
jsr_zjhm as jsrZjhm,
(select name from SYS_DICTITEM where GROUPID='CODE_XXLXXL' and scbz = '0' and length(code)=6 and code=xxlx) as xxname,
fsr_zjhm as fsrZjhm,
fsr_name as fsrName,
fssj as fssj,
sfyd_pdbz as sfydPdbz,
ydsj as ydsj,
xxbh as xxbh
from TB_FW_XXDL
where xxsc_pdbz = '0' and length(xxlx)=6
AND sfyd_pdbz = '0'
<if test="xxlx != null and xxlx != ''">
AND xxlx LIKE '${xxlx}%'
</if>
<if test="jsrZjhm != null and jsrZjhm != ''">
and jsr_zjhm = #{jsrZjhm}
</if>
ORDER BY sfyd_pdbz ASC, fssj DESC
) news
where ROWNUM <![CDATA[<=]]>
#{end}
) where rn > #{begin}
</select>
<!-- 根据消息编号获取采比反反馈信息 -->
<select id="getCbffkByXxbh" parameterType="java.util.Map" resultType="com.founder.domain.Cbffk">
SELECT * FROM tb_yw_cbffksj WHERE xxbh=#{xxbh} and sjlx=#{sjlx}
</select>
</mapper>
\ No newline at end of file
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.io=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(_dereq_,module,exports){module.exports=_dereq_("./lib/")},{"./lib/":2}],2:[function(_dereq_,module,exports){var url=_dereq_("./url");var parser=_dereq_("socket.io-parser");var Manager=_dereq_("./manager");var debug=_dereq_("debug")("socket.io-client");module.exports=exports=lookup;var cache=exports.managers={};function lookup(uri,opts){if(typeof uri=="object"){opts=uri;uri=undefined}opts=opts||{};var parsed=url(uri);var source=parsed.source;var id=parsed.id;var io;if(opts.forceNew||opts["force new connection"]||false===opts.multiplex){debug("ignoring socket cache for %s",source);io=Manager(source,opts)}else{if(!cache[id]){debug("new io instance for %s",source);cache[id]=Manager(source,opts)}io=cache[id]}return io.socket(parsed.path)}exports.protocol=parser.protocol;exports.connect=lookup;exports.Manager=_dereq_("./manager");exports.Socket=_dereq_("./socket")},{"./manager":3,"./socket":5,"./url":6,debug:10,"socket.io-parser":46}],3:[function(_dereq_,module,exports){var url=_dereq_("./url");var eio=_dereq_("engine.io-client");var Socket=_dereq_("./socket");var Emitter=_dereq_("component-emitter");var parser=_dereq_("socket.io-parser");var on=_dereq_("./on");var bind=_dereq_("component-bind");var object=_dereq_("object-component");var debug=_dereq_("debug")("socket.io-client:manager");var indexOf=_dereq_("indexof");var Backoff=_dereq_("backo2");module.exports=Manager;function Manager(uri,opts){if(!(this instanceof Manager))return new Manager(uri,opts);if(uri&&"object"==typeof uri){opts=uri;uri=undefined}opts=opts||{};opts.path=opts.path||"/socket.io";this.nsps={};this.subs=[];this.opts=opts;this.reconnection(opts.reconnection!==false);this.reconnectionAttempts(opts.reconnectionAttempts||Infinity);this.reconnectionDelay(opts.reconnectionDelay||1e3);this.reconnectionDelayMax(opts.reconnectionDelayMax||5e3);this.randomizationFactor(opts.randomizationFactor||.5);this.backoff=new Backoff({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()});this.timeout(null==opts.timeout?2e4:opts.timeout);this.readyState="closed";this.uri=uri;this.connected=[];this.encoding=false;this.packetBuffer=[];this.encoder=new parser.Encoder;this.decoder=new parser.Decoder;this.autoConnect=opts.autoConnect!==false;if(this.autoConnect)this.open()}Manager.prototype.emitAll=function(){this.emit.apply(this,arguments);for(var nsp in this.nsps){this.nsps[nsp].emit.apply(this.nsps[nsp],arguments)}};Manager.prototype.updateSocketIds=function(){for(var nsp in this.nsps){this.nsps[nsp].id=this.engine.id}};Emitter(Manager.prototype);Manager.prototype.reconnection=function(v){if(!arguments.length)return this._reconnection;this._reconnection=!!v;return this};Manager.prototype.reconnectionAttempts=function(v){if(!arguments.length)return this._reconnectionAttempts;this._reconnectionAttempts=v;return this};Manager.prototype.reconnectionDelay=function(v){if(!arguments.length)return this._reconnectionDelay;this._reconnectionDelay=v;this.backoff&&this.backoff.setMin(v);return this};Manager.prototype.randomizationFactor=function(v){if(!arguments.length)return this._randomizationFactor;this._randomizationFactor=v;this.backoff&&this.backoff.setJitter(v);return this};Manager.prototype.reconnectionDelayMax=function(v){if(!arguments.length)return this._reconnectionDelayMax;this._reconnectionDelayMax=v;this.backoff&&this.backoff.setMax(v);return this};Manager.prototype.timeout=function(v){if(!arguments.length)return this._timeout;this._timeout=v;return this};Manager.prototype.maybeReconnectOnOpen=function(){if(!this.reconnecting&&this._reconnection&&this.backoff.attempts===0){this.reconnect()}};Manager.prototype.open=Manager.prototype.connect=function(fn){debug("readyState %s",this.readyState);if(~this.readyState.indexOf("open"))return this;debug("opening %s",this.uri);this.engine=eio(this.uri,this.opts);var socket=this.engine;var self=this;this.readyState="opening";this.skipReconnect=false;var openSub=on(socket,"open",function(){self.onopen();fn&&fn()});var errorSub=on(socket,"error",function(data){debug("connect_error");self.cleanup();self.readyState="closed";self.emitAll("connect_error",data);if(fn){var err=new Error("Connection error");err.data=data;fn(err)}else{self.maybeReconnectOnOpen()}});if(false!==this._timeout){var timeout=this._timeout;debug("connect attempt will timeout after %d",timeout);var timer=setTimeout(function(){debug("connect attempt timed out after %d",timeout);openSub.destroy();socket.close();socket.emit("error","timeout");self.emitAll("connect_timeout",timeout)},timeout);this.subs.push({destroy:function(){clearTimeout(timer)}})}this.subs.push(openSub);this.subs.push(errorSub);return this};Manager.prototype.onopen=function(){debug("open");this.cleanup();this.readyState="open";this.emit("open");var socket=this.engine;this.subs.push(on(socket,"data",bind(this,"ondata")));this.subs.push(on(this.decoder,"decoded",bind(this,"ondecoded")));this.subs.push(on(socket,"error",bind(this,"onerror")));this.subs.push(on(socket,"close",bind(this,"onclose")))};Manager.prototype.ondata=function(data){this.decoder.add(data)};Manager.prototype.ondecoded=function(packet){this.emit("packet",packet)};Manager.prototype.onerror=function(err){debug("error",err);this.emitAll("error",err)};Manager.prototype.socket=function(nsp){var socket=this.nsps[nsp];if(!socket){socket=new Socket(this,nsp);this.nsps[nsp]=socket;var self=this;socket.on("connect",function(){socket.id=self.engine.id;if(!~indexOf(self.connected,socket)){self.connected.push(socket)}})}return socket};Manager.prototype.destroy=function(socket){var index=indexOf(this.connected,socket);if(~index)this.connected.splice(index,1);if(this.connected.length)return;this.close()};Manager.prototype.packet=function(packet){debug("writing packet %j",packet);var self=this;if(!self.encoding){self.encoding=true;this.encoder.encode(packet,function(encodedPackets){for(var i=0;i<encodedPackets.length;i++){self.engine.write(encodedPackets[i])}self.encoding=false;self.processPacketQueue()})}else{self.packetBuffer.push(packet)}};Manager.prototype.processPacketQueue=function(){if(this.packetBuffer.length>0&&!this.encoding){var pack=this.packetBuffer.shift();this.packet(pack)}};Manager.prototype.cleanup=function(){var sub;while(sub=this.subs.shift())sub.destroy();this.packetBuffer=[];this.encoding=false;this.decoder.destroy()};Manager.prototype.close=Manager.prototype.disconnect=function(){this.skipReconnect=true;this.backoff.reset();this.readyState="closed";this.engine&&this.engine.close()};Manager.prototype.onclose=function(reason){debug("close");this.cleanup();this.backoff.reset();this.readyState="closed";this.emit("close",reason);if(this._reconnection&&!this.skipReconnect){this.reconnect()}};Manager.prototype.reconnect=function(){if(this.reconnecting||this.skipReconnect)return this;var self=this;if(this.backoff.attempts>=this._reconnectionAttempts){debug("reconnect failed");this.backoff.reset();this.emitAll("reconnect_failed");this.reconnecting=false}else{var delay=this.backoff.duration();debug("will wait %dms before reconnect attempt",delay);this.reconnecting=true;var timer=setTimeout(function(){if(self.skipReconnect)return;debug("attempting reconnect");self.emitAll("reconnect_attempt",self.backoff.attempts);self.emitAll("reconnecting",self.backoff.attempts);if(self.skipReconnect)return;self.open(function(err){if(err){debug("reconnect attempt error");self.reconnecting=false;self.reconnect();self.emitAll("reconnect_error",err.data)}else{debug("reconnect success");self.onreconnect()}})},delay);this.subs.push({destroy:function(){clearTimeout(timer)}})}};Manager.prototype.onreconnect=function(){var attempt=this.backoff.attempts;this.reconnecting=false;this.backoff.reset();this.updateSocketIds();this.emitAll("reconnect",attempt)}},{"./on":4,"./socket":5,"./url":6,backo2:7,"component-bind":8,"component-emitter":9,debug:10,"engine.io-client":11,indexof:42,"object-component":43,"socket.io-parser":46}],4:[function(_dereq_,module,exports){module.exports=on;function on(obj,ev,fn){obj.on(ev,fn);return{destroy:function(){obj.removeListener(ev,fn)}}}},{}],5:[function(_dereq_,module,exports){var parser=_dereq_("socket.io-parser");var Emitter=_dereq_("component-emitter");var toArray=_dereq_("to-array");var on=_dereq_("./on");var bind=_dereq_("component-bind");var debug=_dereq_("debug")("socket.io-client:socket");var hasBin=_dereq_("has-binary");module.exports=exports=Socket;var events={connect:1,connect_error:1,connect_timeout:1,disconnect:1,error:1,reconnect:1,reconnect_attempt:1,reconnect_failed:1,reconnect_error:1,reconnecting:1};var emit=Emitter.prototype.emit;function Socket(io,nsp){this.io=io;this.nsp=nsp;this.json=this;this.ids=0;this.acks={};if(this.io.autoConnect)this.open();this.receiveBuffer=[];this.sendBuffer=[];this.connected=false;this.disconnected=true}Emitter(Socket.prototype);Socket.prototype.subEvents=function(){if(this.subs)return;var io=this.io;this.subs=[on(io,"open",bind(this,"onopen")),on(io,"packet",bind(this,"onpacket")),on(io,"close",bind(this,"onclose"))]};Socket.prototype.open=Socket.prototype.connect=function(){if(this.connected)return this;this.subEvents();this.io.open();if("open"==this.io.readyState)this.onopen();return this};Socket.prototype.send=function(){var args=toArray(arguments);args.unshift("message");this.emit.apply(this,args);return this};Socket.prototype.emit=function(ev){if(events.hasOwnProperty(ev)){emit.apply(this,arguments);return this}var args=toArray(arguments);var parserType=parser.EVENT;if(hasBin(args)){parserType=parser.BINARY_EVENT}var packet={type:parserType,data:args};if("function"==typeof args[args.length-1]){debug("emitting packet with ack id %d",this.ids);this.acks[this.ids]=args.pop();packet.id=this.ids++}if(this.connected){this.packet(packet)}else{this.sendBuffer.push(packet)}return this};Socket.prototype.packet=function(packet){packet.nsp=this.nsp;this.io.packet(packet)};Socket.prototype.onopen=function(){debug("transport is open - connecting");if("/"!=this.nsp){this.packet({type:parser.CONNECT})}};Socket.prototype.onclose=function(reason){debug("close (%s)",reason);this.connected=false;this.disconnected=true;delete this.id;this.emit("disconnect",reason)};Socket.prototype.onpacket=function(packet){if(packet.nsp!=this.nsp)return;switch(packet.type){case parser.CONNECT:this.onconnect();break;case parser.EVENT:this.onevent(packet);break;case parser.BINARY_EVENT:this.onevent(packet);break;case parser.ACK:this.onack(packet);break;case parser.BINARY_ACK:this.onack(packet);break;case parser.DISCONNECT:this.ondisconnect();break;case parser.ERROR:this.emit("error",packet.data);break}};Socket.prototype.onevent=function(packet){var args=packet.data||[];debug("emitting event %j",args);if(null!=packet.id){debug("attaching ack callback to event");args.push(this.ack(packet.id))}if(this.connected){emit.apply(this,args)}else{this.receiveBuffer.push(args)}};Socket.prototype.ack=function(id){var self=this;var sent=false;return function(){if(sent)return;sent=true;var args=toArray(arguments);debug("sending ack %j",args);var type=hasBin(args)?parser.BINARY_ACK:parser.ACK;self.packet({type:type,id:id,data:args})}};Socket.prototype.onack=function(packet){debug("calling ack %s with %j",packet.id,packet.data);var fn=this.acks[packet.id];fn.apply(this,packet.data);delete this.acks[packet.id]};Socket.prototype.onconnect=function(){this.connected=true;this.disconnected=false;this.emit("connect");this.emitBuffered()};Socket.prototype.emitBuffered=function(){var i;for(i=0;i<this.receiveBuffer.length;i++){emit.apply(this,this.receiveBuffer[i])}this.receiveBuffer=[];for(i=0;i<this.sendBuffer.length;i++){this.packet(this.sendBuffer[i])}this.sendBuffer=[]};Socket.prototype.ondisconnect=function(){debug("server disconnect (%s)",this.nsp);this.destroy();this.onclose("io server disconnect")};Socket.prototype.destroy=function(){if(this.subs){for(var i=0;i<this.subs.length;i++){this.subs[i].destroy()}this.subs=null}this.io.destroy(this)};Socket.prototype.close=Socket.prototype.disconnect=function(){if(this.connected){debug("performing disconnect (%s)",this.nsp);this.packet({type:parser.DISCONNECT})}this.destroy();if(this.connected){this.onclose("io client disconnect")}return this}},{"./on":4,"component-bind":8,"component-emitter":9,debug:10,"has-binary":38,"socket.io-parser":46,"to-array":50}],6:[function(_dereq_,module,exports){(function(global){var parseuri=_dereq_("parseuri");var debug=_dereq_("debug")("socket.io-client:url");module.exports=url;function url(uri,loc){var obj=uri;var loc=loc||global.location;if(null==uri)uri=loc.protocol+"//"+loc.host;if("string"==typeof uri){if("/"==uri.charAt(0)){if("/"==uri.charAt(1)){uri=loc.protocol+uri}else{uri=loc.hostname+uri}}if(!/^(https?|wss?):\/\//.test(uri)){debug("protocol-less url %s",uri);if("undefined"!=typeof loc){uri=loc.protocol+"//"+uri}else{uri="https://"+uri}}debug("parse %s",uri);obj=parseuri(uri)}if(!obj.port){if(/^(http|ws)$/.test(obj.protocol)){obj.port="80"}else if(/^(http|ws)s$/.test(obj.protocol)){obj.port="443"}}obj.path=obj.path||"/";obj.id=obj.protocol+"://"+obj.host+":"+obj.port;obj.href=obj.protocol+"://"+obj.host+(loc&&loc.port==obj.port?"":":"+obj.port);return obj}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{debug:10,parseuri:44}],7:[function(_dereq_,module,exports){module.exports=Backoff;function Backoff(opts){opts=opts||{};this.ms=opts.min||100;this.max=opts.max||1e4;this.factor=opts.factor||2;this.jitter=opts.jitter>0&&opts.jitter<=1?opts.jitter:0;this.attempts=0}Backoff.prototype.duration=function(){var ms=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var rand=Math.random();var deviation=Math.floor(rand*this.jitter*ms);ms=(Math.floor(rand*10)&1)==0?ms-deviation:ms+deviation}return Math.min(ms,this.max)|0};Backoff.prototype.reset=function(){this.attempts=0};Backoff.prototype.setMin=function(min){this.ms=min};Backoff.prototype.setMax=function(max){this.max=max};Backoff.prototype.setJitter=function(jitter){this.jitter=jitter}},{}],8:[function(_dereq_,module,exports){var slice=[].slice;module.exports=function(obj,fn){if("string"==typeof fn)fn=obj[fn];if("function"!=typeof fn)throw new Error("bind() requires a function");var args=slice.call(arguments,2);return function(){return fn.apply(obj,args.concat(slice.call(arguments)))}}},{}],9:[function(_dereq_,module,exports){module.exports=Emitter;function Emitter(obj){if(obj)return mixin(obj)}function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.prototype[key]}return obj}Emitter.prototype.on=Emitter.prototype.addEventListener=function(event,fn){this._callbacks=this._callbacks||{};(this._callbacks[event]=this._callbacks[event]||[]).push(fn);return this};Emitter.prototype.once=function(event,fn){var self=this;this._callbacks=this._callbacks||{};function on(){self.off(event,on);fn.apply(this,arguments)}on.fn=fn;this.on(event,on);return this};Emitter.prototype.off=Emitter.prototype.removeListener=Emitter.prototype.removeAllListeners=Emitter.prototype.removeEventListener=function(event,fn){this._callbacks=this._callbacks||{};if(0==arguments.length){this._callbacks={};return this}var callbacks=this._callbacks[event];if(!callbacks)return this;if(1==arguments.length){delete this._callbacks[event];return this}var cb;for(var i=0;i<callbacks.length;i++){cb=callbacks[i];if(cb===fn||cb.fn===fn){callbacks.splice(i,1);break}}return this};Emitter.prototype.emit=function(event){this._callbacks=this._callbacks||{};var args=[].slice.call(arguments,1),callbacks=this._callbacks[event];if(callbacks){callbacks=callbacks.slice(0);for(var i=0,len=callbacks.length;i<len;++i){callbacks[i].apply(this,args)}}return this};Emitter.prototype.listeners=function(event){this._callbacks=this._callbacks||{};return this._callbacks[event]||[]};Emitter.prototype.hasListeners=function(event){return!!this.listeners(event).length}},{}],10:[function(_dereq_,module,exports){module.exports=debug;function debug(name){if(!debug.enabled(name))return function(){};return function(fmt){fmt=coerce(fmt);var curr=new Date;var ms=curr-(debug[name]||curr);debug[name]=curr;fmt=name+" "+fmt+" +"+debug.humanize(ms);window.console&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}}debug.names=[];debug.skips=[];debug.enable=function(name){try{localStorage.debug=name}catch(e){}var split=(name||"").split(/[\s,]+/),len=split.length;for(var i=0;i<len;i++){name=split[i].replace("*",".*?");if(name[0]==="-"){debug.skips.push(new RegExp("^"+name.substr(1)+"$"))}else{debug.names.push(new RegExp("^"+name+"$"))}}};debug.disable=function(){debug.enable("")};debug.humanize=function(ms){var sec=1e3,min=60*1e3,hour=60*min;if(ms>=hour)return(ms/hour).toFixed(1)+"h";if(ms>=min)return(ms/min).toFixed(1)+"m";if(ms>=sec)return(ms/sec|0)+"s";return ms+"ms"};debug.enabled=function(name){for(var i=0,len=debug.skips.length;i<len;i++){if(debug.skips[i].test(name)){return false}}for(var i=0,len=debug.names.length;i<len;i++){if(debug.names[i].test(name)){return true}}return false};function coerce(val){if(val instanceof Error)return val.stack||val.message;return val}try{if(window.localStorage)debug.enable(localStorage.debug)}catch(e){}},{}],11:[function(_dereq_,module,exports){module.exports=_dereq_("./lib/")},{"./lib/":12}],12:[function(_dereq_,module,exports){module.exports=_dereq_("./socket");module.exports.parser=_dereq_("engine.io-parser")},{"./socket":13,"engine.io-parser":25}],13:[function(_dereq_,module,exports){(function(global){var transports=_dereq_("./transports");var Emitter=_dereq_("component-emitter");var debug=_dereq_("debug")("engine.io-client:socket");var index=_dereq_("indexof");var parser=_dereq_("engine.io-parser");var parseuri=_dereq_("parseuri");var parsejson=_dereq_("parsejson");var parseqs=_dereq_("parseqs");module.exports=Socket;function noop(){}function Socket(uri,opts){if(!(this instanceof Socket))return new Socket(uri,opts);opts=opts||{};if(uri&&"object"==typeof uri){opts=uri;uri=null}if(uri){uri=parseuri(uri);opts.host=uri.host;opts.secure=uri.protocol=="https"||uri.protocol=="wss";opts.port=uri.port;if(uri.query)opts.query=uri.query}this.secure=null!=opts.secure?opts.secure:global.location&&"https:"==location.protocol;if(opts.host){var pieces=opts.host.split(":");opts.hostname=pieces.shift();if(pieces.length){opts.port=pieces.pop()}else if(!opts.port){opts.port=this.secure?"443":"80"}}this.agent=opts.agent||false;this.hostname=opts.hostname||(global.location?location.hostname:"localhost");this.port=opts.port||(global.location&&location.port?location.port:this.secure?443:80);this.query=opts.query||{};if("string"==typeof this.query)this.query=parseqs.decode(this.query);this.upgrade=false!==opts.upgrade;this.path=(opts.path||"/engine.io").replace(/\/$/,"")+"/";this.forceJSONP=!!opts.forceJSONP;this.jsonp=false!==opts.jsonp;this.forceBase64=!!opts.forceBase64;this.enablesXDR=!!opts.enablesXDR;this.timestampParam=opts.timestampParam||"t";this.timestampRequests=opts.timestampRequests;this.transports=opts.transports||["polling","websocket"];this.readyState="";this.writeBuffer=[];this.callbackBuffer=[];this.policyPort=opts.policyPort||843;this.rememberUpgrade=opts.rememberUpgrade||false;this.binaryType=null;this.onlyBinaryUpgrades=opts.onlyBinaryUpgrades;this.perMessageDeflate=false!==opts.perMessageDeflate?opts.perMessageDeflate||true:false;this.pfx=opts.pfx||null;this.key=opts.key||null;this.passphrase=opts.passphrase||null;this.cert=opts.cert||null;this.ca=opts.ca||null;this.ciphers=opts.ciphers||null;this.rejectUnauthorized=opts.rejectUnauthorized||null;this.open()}Socket.priorWebsocketSuccess=false;Emitter(Socket.prototype);Socket.protocol=parser.protocol;Socket.Socket=Socket;Socket.Transport=_dereq_("./transport");Socket.transports=_dereq_("./transports");Socket.parser=_dereq_("engine.io-parser");Socket.prototype.createTransport=function(name){debug('creating transport "%s"',name);var query=clone(this.query);query.EIO=parser.protocol;query.transport=name;if(this.id)query.sid=this.id;var transport=new transports[name]({agent:this.agent,hostname:this.hostname,port:this.port,secure:this.secure,path:this.path,query:query,forceJSONP:this.forceJSONP,jsonp:this.jsonp,forceBase64:this.forceBase64,enablesXDR:this.enablesXDR,timestampRequests:this.timestampRequests,timestampParam:this.timestampParam,policyPort:this.policyPort,socket:this,pfx:this.pfx,key:this.key,passphrase:this.passphrase,cert:this.cert,ca:this.ca,ciphers:this.ciphers,rejectUnauthorized:this.rejectUnauthorized,perMessageDeflate:this.perMessageDeflate});return transport};function clone(obj){var o={};for(var i in obj){if(obj.hasOwnProperty(i)){o[i]=obj[i]}}return o}Socket.prototype.open=function(){var transport;if(this.rememberUpgrade&&Socket.priorWebsocketSuccess&&this.transports.indexOf("websocket")!=-1){transport="websocket"}else if(0==this.transports.length){var self=this;setTimeout(function(){self.emit("error","No transports available")},0);return}else{transport=this.transports[0]}this.readyState="opening";var transport;try{transport=this.createTransport(transport)}catch(e){this.transports.shift();this.open();return}transport.open();this.setTransport(transport)};Socket.prototype.setTransport=function(transport){debug("setting transport %s",transport.name);var self=this;if(this.transport){debug("clearing existing transport %s",this.transport.name);this.transport.removeAllListeners()}this.transport=transport;transport.on("drain",function(){self.onDrain()}).on("packet",function(packet){self.onPacket(packet)}).on("error",function(e){self.onError(e)}).on("close",function(){self.onClose("transport close")})};Socket.prototype.probe=function(name){debug('probing transport "%s"',name);var transport=this.createTransport(name,{probe:1}),failed=false,self=this;Socket.priorWebsocketSuccess=false;function onTransportOpen(){if(self.onlyBinaryUpgrades){var upgradeLosesBinary=!this.supportsBinary&&self.transport.supportsBinary;failed=failed||upgradeLosesBinary}if(failed)return;debug('probe transport "%s" opened',name);transport.send([{type:"ping",data:"probe",options:{compress:true}}]);transport.once("packet",function(msg){if(failed)return;if("pong"==msg.type&&"probe"==msg.data){debug('probe transport "%s" pong',name);self.upgrading=true;self.emit("upgrading",transport);if(!transport)return;Socket.priorWebsocketSuccess="websocket"==transport.name;debug('pausing current transport "%s"',self.transport.name);self.transport.pause(function(){if(failed)return;if("closed"==self.readyState)return;debug("changing transport and sending upgrade packet");cleanup();self.setTransport(transport);transport.send([{type:"upgrade",options:{compress:true}}]);self.emit("upgrade",transport);transport=null;self.upgrading=false;self.flush()})}else{debug('probe transport "%s" failed',name);var err=new Error("probe error");err.transport=transport.name;self.emit("upgradeError",err)}})}function freezeTransport(){if(failed)return;failed=true;cleanup();transport.close();transport=null}function onerror(err){var error=new Error("probe error: "+err);error.transport=transport.name;freezeTransport();debug('probe transport "%s" failed because of error: %s',name,err);self.emit("upgradeError",error)}function onTransportClose(){onerror("transport closed")}function onclose(){onerror("socket closed")}function onupgrade(to){if(transport&&to.name!=transport.name){debug('"%s" works - aborting "%s"',to.name,transport.name);freezeTransport()}}function cleanup(){transport.removeListener("open",onTransportOpen);transport.removeListener("error",onerror);transport.removeListener("close",onTransportClose);self.removeListener("close",onclose);self.removeListener("upgrading",onupgrade)}transport.once("open",onTransportOpen);transport.once("error",onerror);transport.once("close",onTransportClose);this.once("close",onclose);this.once("upgrading",onupgrade);transport.open()};Socket.prototype.onOpen=function(){debug("socket open");this.readyState="open";Socket.priorWebsocketSuccess="websocket"==this.transport.name;this.emit("open");this.flush();if("open"==this.readyState&&this.upgrade&&this.transport.pause){debug("starting upgrade probes");for(var i=0,l=this.upgrades.length;i<l;i++){this.probe(this.upgrades[i])}}};Socket.prototype.onPacket=function(packet){if("opening"==this.readyState||"open"==this.readyState){debug('socket receive: type "%s", data "%s"',packet.type,packet.data);this.emit("packet",packet);this.emit("heartbeat");switch(packet.type){case"open":this.onHandshake(parsejson(packet.data));break;case"pong":this.setPing();break;case"error":var err=new Error("server error");err.code=packet.data;this.emit("error",err);break;case"message":this.emit("data",packet.data);this.emit("message",packet.data);break}}else{debug('packet received with socket readyState "%s"',this.readyState)}};Socket.prototype.onHandshake=function(data){this.emit("handshake",data);this.id=data.sid;this.transport.query.sid=data.sid;this.upgrades=this.filterUpgrades(data.upgrades);this.pingInterval=data.pingInterval;this.pingTimeout=data.pingTimeout;this.onOpen();if("closed"==this.readyState)return;this.setPing();this.removeListener("heartbeat",this.onHeartbeat);this.on("heartbeat",this.onHeartbeat)};Socket.prototype.onHeartbeat=function(timeout){clearTimeout(this.pingTimeoutTimer);var self=this;self.pingTimeoutTimer=setTimeout(function(){if("closed"==self.readyState)return;self.onClose("ping timeout")},timeout||self.pingInterval+self.pingTimeout)};Socket.prototype.setPing=function(){var self=this;clearTimeout(self.pingIntervalTimer);self.pingIntervalTimer=setTimeout(function(){debug("writing ping packet - expecting pong within %sms",self.pingTimeout);self.ping();self.onHeartbeat(self.pingTimeout)},self.pingInterval)};Socket.prototype.ping=function(){this.sendPacket("ping")};Socket.prototype.onDrain=function(){for(var i=0;i<this.prevBufferLen;i++){if(this.callbackBuffer[i]){this.callbackBuffer[i]()}}this.writeBuffer.splice(0,this.prevBufferLen);this.callbackBuffer.splice(0,this.prevBufferLen);this.prevBufferLen=0;if(this.writeBuffer.length==0){this.emit("drain")}else{this.flush()}};Socket.prototype.flush=function(){if("closed"!=this.readyState&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){debug("flushing %d packets in socket",this.writeBuffer.length);this.transport.send(this.writeBuffer);this.prevBufferLen=this.writeBuffer.length;this.emit("flush")}};Socket.prototype.write=Socket.prototype.send=function(msg,options,fn){this.sendPacket("message",msg,options,fn);return this};Socket.prototype.sendPacket=function(type,data,options,fn){if("function"==typeof options){fn=options;options=null}if("closing"==this.readyState||"closed"==this.readyState){return}options=options||{};options.compress=false!==options.compress;var packet={type:type,data:data,options:options};this.emit("packetCreate",packet);this.writeBuffer.push(packet);this.callbackBuffer.push(fn);this.flush()};Socket.prototype.close=function(){if("opening"==this.readyState||"open"==this.readyState){this.readyState="closing";var self=this;function close(){self.onClose("forced close");debug("socket closing - telling transport to close");self.transport.close()}function cleanupAndClose(){self.removeListener("upgrade",cleanupAndClose);self.removeListener("upgradeError",cleanupAndClose);close()}function waitForUpgrade(){self.once("upgrade",cleanupAndClose);self.once("upgradeError",cleanupAndClose)}if(this.writeBuffer.length){this.once("drain",function(){if(this.upgrading){waitForUpgrade()}else{close()}})}else if(this.upgrading){waitForUpgrade()}else{close()}}return this};Socket.prototype.onError=function(err){debug("socket error %j",err);Socket.priorWebsocketSuccess=false;this.emit("error",err);this.onClose("transport error",err)};Socket.prototype.onClose=function(reason,desc){if("opening"==this.readyState||"open"==this.readyState||"closing"==this.readyState){debug('socket close with reason: "%s"',reason);var self=this;clearTimeout(this.pingIntervalTimer);clearTimeout(this.pingTimeoutTimer);setTimeout(function(){self.writeBuffer=[];self.callbackBuffer=[];self.prevBufferLen=0},0);this.transport.removeAllListeners("close");this.transport.close();this.transport.removeAllListeners();this.readyState="closed";this.id=null;this.emit("close",reason,desc)}};Socket.prototype.filterUpgrades=function(upgrades){var filteredUpgrades=[];for(var i=0,j=upgrades.length;i<j;i++){if(~index(this.transports,upgrades[i]))filteredUpgrades.push(upgrades[i])}return filteredUpgrades}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./transport":14,"./transports":15,"component-emitter":9,debug:22,"engine.io-parser":25,indexof:42,parsejson:34,parseqs:35,parseuri:36}],14:[function(_dereq_,module,exports){var parser=_dereq_("engine.io-parser");var Emitter=_dereq_("component-emitter");module.exports=Transport;function Transport(opts){this.path=opts.path;this.hostname=opts.hostname;this.port=opts.port;this.secure=opts.secure;this.query=opts.query;this.timestampParam=opts.timestampParam;this.timestampRequests=opts.timestampRequests;this.readyState="";this.agent=opts.agent||false;this.socket=opts.socket;this.enablesXDR=opts.enablesXDR;this.pfx=opts.pfx;this.key=opts.key;this.passphrase=opts.passphrase;this.cert=opts.cert;this.ca=opts.ca;this.ciphers=opts.ciphers;this.rejectUnauthorized=opts.rejectUnauthorized}Emitter(Transport.prototype);Transport.timestamps=0;Transport.prototype.onError=function(msg,desc){var err=new Error(msg);err.type="TransportError";err.description=desc;this.emit("error",err);return this};Transport.prototype.open=function(){if("closed"==this.readyState||""==this.readyState){this.readyState="opening";this.doOpen()}return this};Transport.prototype.close=function(){if("opening"==this.readyState||"open"==this.readyState){this.doClose();this.onClose()}return this};Transport.prototype.send=function(packets){if("open"==this.readyState){this.write(packets)}else{throw new Error("Transport not open")}};Transport.prototype.onOpen=function(){this.readyState="open";this.writable=true;this.emit("open")};Transport.prototype.onData=function(data){var packet=parser.decodePacket(data,this.socket.binaryType);this.onPacket(packet)};Transport.prototype.onPacket=function(packet){this.emit("packet",packet)};Transport.prototype.onClose=function(){this.readyState="closed";this.emit("close")}},{"component-emitter":9,"engine.io-parser":25}],15:[function(_dereq_,module,exports){(function(global){var XMLHttpRequest=_dereq_("xmlhttprequest");var XHR=_dereq_("./polling-xhr");var JSONP=_dereq_("./polling-jsonp");var websocket=_dereq_("./websocket");exports.polling=polling;exports.websocket=websocket;function polling(opts){var xhr;var xd=false;var xs=false;var jsonp=false!==opts.jsonp;if(global.location){var isSSL="https:"==location.protocol;var port=location.port;if(!port){port=isSSL?443:80}xd=opts.hostname!=location.hostname||port!=opts.port;xs=opts.secure!=isSSL}opts.xdomain=xd;opts.xscheme=xs;xhr=new XMLHttpRequest(opts);if("open"in xhr&&!opts.forceJSONP){return new XHR(opts)}else{if(!jsonp)throw new Error("JSONP disabled");return new JSONP(opts)}}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./polling-jsonp":16,"./polling-xhr":17,"./websocket":19,xmlhttprequest:20}],16:[function(_dereq_,module,exports){(function(global){var Polling=_dereq_("./polling");
var inherit=_dereq_("component-inherit");module.exports=JSONPPolling;var rNewline=/\n/g;var rEscapedNewline=/\\n/g;var callbacks;var index=0;function empty(){}function JSONPPolling(opts){Polling.call(this,opts);this.query=this.query||{};if(!callbacks){if(!global.___eio)global.___eio=[];callbacks=global.___eio}this.index=callbacks.length;var self=this;callbacks.push(function(msg){self.onData(msg)});this.query.j=this.index;if(global.document&&global.addEventListener){global.addEventListener("beforeunload",function(){if(self.script)self.script.onerror=empty},false)}}inherit(JSONPPolling,Polling);JSONPPolling.prototype.supportsBinary=false;JSONPPolling.prototype.doClose=function(){if(this.script){this.script.parentNode.removeChild(this.script);this.script=null}if(this.form){this.form.parentNode.removeChild(this.form);this.form=null;this.iframe=null}Polling.prototype.doClose.call(this)};JSONPPolling.prototype.doPoll=function(){var self=this;var script=document.createElement("script");if(this.script){this.script.parentNode.removeChild(this.script);this.script=null}script.async=true;script.src=this.uri();script.onerror=function(e){self.onError("jsonp poll error",e)};var insertAt=document.getElementsByTagName("script")[0];insertAt.parentNode.insertBefore(script,insertAt);this.script=script;var isUAgecko="undefined"!=typeof navigator&&/gecko/i.test(navigator.userAgent);if(isUAgecko){setTimeout(function(){var iframe=document.createElement("iframe");document.body.appendChild(iframe);document.body.removeChild(iframe)},100)}};JSONPPolling.prototype.doWrite=function(data,fn){var self=this;if(!this.form){var form=document.createElement("form");var area=document.createElement("textarea");var id=this.iframeId="eio_iframe_"+this.index;var iframe;form.className="socketio";form.style.position="absolute";form.style.top="-1000px";form.style.left="-1000px";form.target=id;form.method="POST";form.setAttribute("accept-charset","utf-8");area.name="d";form.appendChild(area);document.body.appendChild(form);this.form=form;this.area=area}this.form.action=this.uri();function complete(){initIframe();fn()}function initIframe(){if(self.iframe){try{self.form.removeChild(self.iframe)}catch(e){self.onError("jsonp polling iframe removal error",e)}}try{var html='<iframe src="javascript:0" name="'+self.iframeId+'">';iframe=document.createElement(html)}catch(e){iframe=document.createElement("iframe");iframe.name=self.iframeId;iframe.src="javascript:0"}iframe.id=self.iframeId;self.form.appendChild(iframe);self.iframe=iframe}initIframe();data=data.replace(rEscapedNewline,"\\\n");this.area.value=data.replace(rNewline,"\\n");try{this.form.submit()}catch(e){}if(this.iframe.attachEvent){this.iframe.onreadystatechange=function(){if(self.iframe.readyState=="complete"){complete()}}}else{this.iframe.onload=complete}}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./polling":18,"component-inherit":21}],17:[function(_dereq_,module,exports){(function(global){var XMLHttpRequest=_dereq_("xmlhttprequest");var Polling=_dereq_("./polling");var Emitter=_dereq_("component-emitter");var inherit=_dereq_("component-inherit");var debug=_dereq_("debug")("engine.io-client:polling-xhr");module.exports=XHR;module.exports.Request=Request;function empty(){}function XHR(opts){Polling.call(this,opts);if(global.location){var isSSL="https:"==location.protocol;var port=location.port;if(!port){port=isSSL?443:80}this.xd=opts.hostname!=global.location.hostname||port!=opts.port;this.xs=opts.secure!=isSSL}}inherit(XHR,Polling);XHR.prototype.supportsBinary=true;XHR.prototype.request=function(opts){opts=opts||{};opts.uri=this.uri();opts.xd=this.xd;opts.xs=this.xs;opts.agent=this.agent||false;opts.supportsBinary=this.supportsBinary;opts.enablesXDR=this.enablesXDR;opts.pfx=this.pfx;opts.key=this.key;opts.passphrase=this.passphrase;opts.cert=this.cert;opts.ca=this.ca;opts.ciphers=this.ciphers;opts.rejectUnauthorized=this.rejectUnauthorized;return new Request(opts)};XHR.prototype.doWrite=function(data,fn){var isBinary=typeof data!=="string"&&data!==undefined;var req=this.request({method:"POST",data:data,isBinary:isBinary});var self=this;req.on("success",fn);req.on("error",function(err){self.onError("xhr post error",err)});this.sendXhr=req};XHR.prototype.doPoll=function(){debug("xhr poll");var req=this.request();var self=this;req.on("data",function(data){self.onData(data)});req.on("error",function(err){self.onError("xhr poll error",err)});this.pollXhr=req};function Request(opts){this.method=opts.method||"GET";this.uri=opts.uri;this.xd=!!opts.xd;this.xs=!!opts.xs;this.async=false!==opts.async;this.data=undefined!=opts.data?opts.data:null;this.agent=opts.agent;this.isBinary=opts.isBinary;this.supportsBinary=opts.supportsBinary;this.enablesXDR=opts.enablesXDR;this.pfx=opts.pfx;this.key=opts.key;this.passphrase=opts.passphrase;this.cert=opts.cert;this.ca=opts.ca;this.ciphers=opts.ciphers;this.rejectUnauthorized=opts.rejectUnauthorized;this.create()}Emitter(Request.prototype);Request.prototype.create=function(){var opts={agent:this.agent,xdomain:this.xd,xscheme:this.xs,enablesXDR:this.enablesXDR};opts.pfx=this.pfx;opts.key=this.key;opts.passphrase=this.passphrase;opts.cert=this.cert;opts.ca=this.ca;opts.ciphers=this.ciphers;opts.rejectUnauthorized=this.rejectUnauthorized;var xhr=this.xhr=new XMLHttpRequest(opts);var self=this;try{debug("xhr open %s: %s",this.method,this.uri);xhr.open(this.method,this.uri,this.async);if(this.supportsBinary){xhr.responseType="arraybuffer"}if("POST"==this.method){try{if(this.isBinary){xhr.setRequestHeader("Content-type","application/octet-stream")}else{xhr.setRequestHeader("Content-type","text/plain;charset=UTF-8")}}catch(e){}}if("withCredentials"in xhr){xhr.withCredentials=true}if(this.hasXDR()){xhr.onload=function(){self.onLoad()};xhr.onerror=function(){self.onError(xhr.responseText)}}else{xhr.onreadystatechange=function(){if(4!=xhr.readyState)return;if(200==xhr.status||1223==xhr.status){self.onLoad()}else{setTimeout(function(){self.onError(xhr.status)},0)}}}debug("xhr data %s",this.data);xhr.send(this.data)}catch(e){setTimeout(function(){self.onError(e)},0);return}if(global.document){this.index=Request.requestsCount++;Request.requests[this.index]=this}};Request.prototype.onSuccess=function(){this.emit("success");this.cleanup()};Request.prototype.onData=function(data){this.emit("data",data);this.onSuccess()};Request.prototype.onError=function(err){this.emit("error",err);this.cleanup(true)};Request.prototype.cleanup=function(fromError){if("undefined"==typeof this.xhr||null===this.xhr){return}if(this.hasXDR()){this.xhr.onload=this.xhr.onerror=empty}else{this.xhr.onreadystatechange=empty}if(fromError){try{this.xhr.abort()}catch(e){}}if(global.document){delete Request.requests[this.index]}this.xhr=null};Request.prototype.onLoad=function(){var data;try{var contentType;try{contentType=this.xhr.getResponseHeader("Content-Type").split(";")[0]}catch(e){}if(contentType==="application/octet-stream"){data=this.xhr.response}else{if(!this.supportsBinary){data=this.xhr.responseText}else{data="ok"}}}catch(e){this.onError(e)}if(null!=data){this.onData(data)}};Request.prototype.hasXDR=function(){return"undefined"!==typeof global.XDomainRequest&&!this.xs&&this.enablesXDR};Request.prototype.abort=function(){this.cleanup()};if(global.document){Request.requestsCount=0;Request.requests={};if(global.attachEvent){global.attachEvent("onunload",unloadHandler)}else if(global.addEventListener){global.addEventListener("beforeunload",unloadHandler,false)}}function unloadHandler(){for(var i in Request.requests){if(Request.requests.hasOwnProperty(i)){Request.requests[i].abort()}}}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./polling":18,"component-emitter":9,"component-inherit":21,debug:22,xmlhttprequest:20}],18:[function(_dereq_,module,exports){var Transport=_dereq_("../transport");var parseqs=_dereq_("parseqs");var parser=_dereq_("engine.io-parser");var inherit=_dereq_("component-inherit");var debug=_dereq_("debug")("engine.io-client:polling");module.exports=Polling;var hasXHR2=function(){var XMLHttpRequest=_dereq_("xmlhttprequest");var xhr=new XMLHttpRequest({xdomain:false});return null!=xhr.responseType}();function Polling(opts){var forceBase64=opts&&opts.forceBase64;if(!hasXHR2||forceBase64){this.supportsBinary=false}Transport.call(this,opts)}inherit(Polling,Transport);Polling.prototype.name="polling";Polling.prototype.doOpen=function(){this.poll()};Polling.prototype.pause=function(onPause){var pending=0;var self=this;this.readyState="pausing";function pause(){debug("paused");self.readyState="paused";onPause()}if(this.polling||!this.writable){var total=0;if(this.polling){debug("we are currently polling - waiting to pause");total++;this.once("pollComplete",function(){debug("pre-pause polling complete");--total||pause()})}if(!this.writable){debug("we are currently writing - waiting to pause");total++;this.once("drain",function(){debug("pre-pause writing complete");--total||pause()})}}else{pause()}};Polling.prototype.poll=function(){debug("polling");this.polling=true;this.doPoll();this.emit("poll")};Polling.prototype.onData=function(data){var self=this;debug("polling got data %s",data);var callback=function(packet,index,total){if("opening"==self.readyState){self.onOpen()}if("close"==packet.type){self.onClose();return false}self.onPacket(packet)};parser.decodePayload(data,this.socket.binaryType,callback);if("closed"!=this.readyState){this.polling=false;this.emit("pollComplete");if("open"==this.readyState){this.poll()}else{debug('ignoring poll - transport state "%s"',this.readyState)}}};Polling.prototype.doClose=function(){var self=this;function close(){debug("writing close packet");self.write([{type:"close"}])}if("open"==this.readyState){debug("transport open - closing");close()}else{debug("transport not open - deferring close");this.once("open",close)}};Polling.prototype.write=function(packets){var self=this;this.writable=false;var callbackfn=function(){self.writable=true;self.emit("drain")};var self=this;parser.encodePayload(packets,this.supportsBinary,function(data){self.doWrite(data,callbackfn)})};Polling.prototype.uri=function(){var query=this.query||{};var schema=this.secure?"https":"http";var port="";if(false!==this.timestampRequests){query[this.timestampParam]=+new Date+"-"+Transport.timestamps++}if(!this.supportsBinary&&!query.sid){query.b64=1}query=parseqs.encode(query);if(this.port&&("https"==schema&&this.port!=443||"http"==schema&&this.port!=80)){port=":"+this.port}if(query.length){query="?"+query}return schema+"://"+this.hostname+port+this.path+query}},{"../transport":14,"component-inherit":21,debug:22,"engine.io-parser":25,parseqs:35,xmlhttprequest:20}],19:[function(_dereq_,module,exports){var Transport=_dereq_("../transport");var parser=_dereq_("engine.io-parser");var parseqs=_dereq_("parseqs");var inherit=_dereq_("component-inherit");var debug=_dereq_("debug")("engine.io-client:websocket");var WebSocket=_dereq_("ws");module.exports=WS;function WS(opts){var forceBase64=opts&&opts.forceBase64;if(forceBase64){this.supportsBinary=false}this.perMessageDeflate=opts.perMessageDeflate;Transport.call(this,opts)}inherit(WS,Transport);WS.prototype.name="websocket";WS.prototype.supportsBinary=true;WS.prototype.doOpen=function(){if(!this.check()){return}var self=this;var uri=this.uri();var protocols=void 0;var opts={agent:this.agent,perMessageDeflate:this.perMessageDeflate};opts.pfx=this.pfx;opts.key=this.key;opts.passphrase=this.passphrase;opts.cert=this.cert;opts.ca=this.ca;opts.ciphers=this.ciphers;opts.rejectUnauthorized=this.rejectUnauthorized;this.ws=new WebSocket(uri,protocols,opts);if(this.ws.binaryType===undefined){this.supportsBinary=false}this.ws.binaryType="arraybuffer";this.addEventListeners()};WS.prototype.addEventListeners=function(){var self=this;this.ws.onopen=function(){self.onOpen()};this.ws.onclose=function(){self.onClose()};this.ws.onmessage=function(ev){self.onData(ev.data)};this.ws.onerror=function(e){self.onError("websocket error",e)}};if("undefined"!=typeof navigator&&/iPad|iPhone|iPod/i.test(navigator.userAgent)){WS.prototype.onData=function(data){var self=this;setTimeout(function(){Transport.prototype.onData.call(self,data)},0)}}WS.prototype.write=function(packets){var self=this;this.writable=false;for(var i=0,l=packets.length;i<l;i++){var packet=packets[i];parser.encodePacket(packet,this.supportsBinary,function(data){try{self.ws.send(data,packet.options)}catch(e){debug("websocket closed before onclose event")}})}function ondrain(){self.writable=true;self.emit("drain")}setTimeout(ondrain,0)};WS.prototype.onClose=function(){Transport.prototype.onClose.call(this)};WS.prototype.doClose=function(){if(typeof this.ws!=="undefined"){this.ws.close()}};WS.prototype.uri=function(){var query=this.query||{};var schema=this.secure?"wss":"ws";var port="";if(this.port&&("wss"==schema&&this.port!=443||"ws"==schema&&this.port!=80)){port=":"+this.port}if(this.timestampRequests){query[this.timestampParam]=+new Date}if(!this.supportsBinary){query.b64=1}query=parseqs.encode(query);if(query.length){query="?"+query}return schema+"://"+this.hostname+port+this.path+query};WS.prototype.check=function(){return!!WebSocket&&!("__initialize"in WebSocket&&this.name===WS.prototype.name)}},{"../transport":14,"component-inherit":21,debug:22,"engine.io-parser":25,parseqs:35,ws:37}],20:[function(_dereq_,module,exports){var hasCORS=_dereq_("has-cors");module.exports=function(opts){var xdomain=opts.xdomain;var xscheme=opts.xscheme;var enablesXDR=opts.enablesXDR;try{if("undefined"!=typeof XMLHttpRequest&&(!xdomain||hasCORS)){return new XMLHttpRequest}}catch(e){}try{if("undefined"!=typeof XDomainRequest&&!xscheme&&enablesXDR){return new XDomainRequest}}catch(e){}if(!xdomain){try{return new ActiveXObject("Microsoft.XMLHTTP")}catch(e){}}}},{"has-cors":40}],21:[function(_dereq_,module,exports){module.exports=function(a,b){var fn=function(){};fn.prototype=b.prototype;a.prototype=new fn;a.prototype.constructor=a}},{}],22:[function(_dereq_,module,exports){exports=module.exports=_dereq_("./debug");exports.log=log;exports.formatArgs=formatArgs;exports.save=save;exports.load=load;exports.useColors=useColors;exports.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function useColors(){return"WebkitAppearance"in document.documentElement.style||window.console&&(console.firebug||console.exception&&console.table)||navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31}exports.formatters.j=function(v){return JSON.stringify(v)};function formatArgs(){var args=arguments;var useColors=this.useColors;args[0]=(useColors?"%c":"")+this.namespace+(useColors?" %c":" ")+args[0]+(useColors?"%c ":" ")+"+"+exports.humanize(this.diff);if(!useColors)return args;var c="color: "+this.color;args=[args[0],c,"color: inherit"].concat(Array.prototype.slice.call(args,1));var index=0;var lastC=0;args[0].replace(/%[a-z%]/g,function(match){if("%"===match)return;index++;if("%c"===match){lastC=index}});args.splice(lastC,0,c);return args}function log(){return"object"==typeof console&&"function"==typeof console.log&&Function.prototype.apply.call(console.log,console,arguments)}function save(namespaces){try{if(null==namespaces){localStorage.removeItem("debug")}else{localStorage.debug=namespaces}}catch(e){}}function load(){var r;try{r=localStorage.debug}catch(e){}return r}exports.enable(load())},{"./debug":23}],23:[function(_dereq_,module,exports){exports=module.exports=debug;exports.coerce=coerce;exports.disable=disable;exports.enable=enable;exports.enabled=enabled;exports.humanize=_dereq_("ms");exports.names=[];exports.skips=[];exports.formatters={};var prevColor=0;var prevTime;function selectColor(){return exports.colors[prevColor++%exports.colors.length]}function debug(namespace){function disabled(){}disabled.enabled=false;function enabled(){var self=enabled;var curr=+new Date;var ms=curr-(prevTime||curr);self.diff=ms;self.prev=prevTime;self.curr=curr;prevTime=curr;if(null==self.useColors)self.useColors=exports.useColors();if(null==self.color&&self.useColors)self.color=selectColor();var args=Array.prototype.slice.call(arguments);args[0]=exports.coerce(args[0]);if("string"!==typeof args[0]){args=["%o"].concat(args)}var index=0;args[0]=args[0].replace(/%([a-z%])/g,function(match,format){if(match==="%")return match;index++;var formatter=exports.formatters[format];if("function"===typeof formatter){var val=args[index];match=formatter.call(self,val);args.splice(index,1);index--}return match});if("function"===typeof exports.formatArgs){args=exports.formatArgs.apply(self,args)}var logFn=enabled.log||exports.log||console.log.bind(console);logFn.apply(self,args)}enabled.enabled=true;var fn=exports.enabled(namespace)?enabled:disabled;fn.namespace=namespace;return fn}function enable(namespaces){exports.save(namespaces);var split=(namespaces||"").split(/[\s,]+/);var len=split.length;for(var i=0;i<len;i++){if(!split[i])continue;namespaces=split[i].replace(/\*/g,".*?");if(namespaces[0]==="-"){exports.skips.push(new RegExp("^"+namespaces.substr(1)+"$"))}else{exports.names.push(new RegExp("^"+namespaces+"$"))}}}function disable(){exports.enable("")}function enabled(name){var i,len;for(i=0,len=exports.skips.length;i<len;i++){if(exports.skips[i].test(name)){return false}}for(i=0,len=exports.names.length;i<len;i++){if(exports.names[i].test(name)){return true}}return false}function coerce(val){if(val instanceof Error)return val.stack||val.message;return val}},{ms:24}],24:[function(_dereq_,module,exports){var s=1e3;var m=s*60;var h=m*60;var d=h*24;var y=d*365.25;module.exports=function(val,options){options=options||{};if("string"==typeof val)return parse(val);return options.long?long(val):short(val)};function parse(str){var match=/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes?|m|hours?|h|days?|d|years?|y)?$/i.exec(str);if(!match)return;var n=parseFloat(match[1]);var type=(match[2]||"ms").toLowerCase();switch(type){case"years":case"year":case"y":return n*y;case"days":case"day":case"d":return n*d;case"hours":case"hour":case"h":return n*h;case"minutes":case"minute":case"m":return n*m;case"seconds":case"second":case"s":return n*s;case"ms":return n}}function short(ms){if(ms>=d)return Math.round(ms/d)+"d";if(ms>=h)return Math.round(ms/h)+"h";if(ms>=m)return Math.round(ms/m)+"m";if(ms>=s)return Math.round(ms/s)+"s";return ms+"ms"}function long(ms){return plural(ms,d,"day")||plural(ms,h,"hour")||plural(ms,m,"minute")||plural(ms,s,"second")||ms+" ms"}function plural(ms,n,name){if(ms<n)return;if(ms<n*1.5)return Math.floor(ms/n)+" "+name;return Math.ceil(ms/n)+" "+name+"s"}},{}],25:[function(_dereq_,module,exports){(function(global){var keys=_dereq_("./keys");var hasBinary=_dereq_("has-binary");var sliceBuffer=_dereq_("arraybuffer.slice");var base64encoder=_dereq_("base64-arraybuffer");var after=_dereq_("after");var utf8=_dereq_("utf8");var isAndroid=navigator.userAgent.match(/Android/i);var isPhantomJS=/PhantomJS/i.test(navigator.userAgent);var dontSendBlobs=isAndroid||isPhantomJS;exports.protocol=3;var packets=exports.packets={open:0,close:1,ping:2,pong:3,message:4,upgrade:5,noop:6};var packetslist=keys(packets);var err={type:"error",data:"parser error"};var Blob=_dereq_("blob");exports.encodePacket=function(packet,supportsBinary,utf8encode,callback){if("function"==typeof supportsBinary){callback=supportsBinary;supportsBinary=false}if("function"==typeof utf8encode){callback=utf8encode;utf8encode=null}var data=packet.data===undefined?undefined:packet.data.buffer||packet.data;if(global.ArrayBuffer&&data instanceof ArrayBuffer){return encodeArrayBuffer(packet,supportsBinary,callback)}else if(Blob&&data instanceof global.Blob){return encodeBlob(packet,supportsBinary,callback)}if(data&&data.base64){return encodeBase64Object(packet,callback)}var encoded=packets[packet.type];if(undefined!==packet.data){encoded+=utf8encode?utf8.encode(String(packet.data)):String(packet.data)}return callback(""+encoded)};function encodeBase64Object(packet,callback){var message="b"+exports.packets[packet.type]+packet.data.data;return callback(message)}function encodeArrayBuffer(packet,supportsBinary,callback){if(!supportsBinary){return exports.encodeBase64Packet(packet,callback)}var data=packet.data;var contentArray=new Uint8Array(data);var resultBuffer=new Uint8Array(1+data.byteLength);resultBuffer[0]=packets[packet.type];for(var i=0;i<contentArray.length;i++){resultBuffer[i+1]=contentArray[i]}return callback(resultBuffer.buffer)}function encodeBlobAsArrayBuffer(packet,supportsBinary,callback){if(!supportsBinary){return exports.encodeBase64Packet(packet,callback)}var fr=new FileReader;fr.onload=function(){packet.data=fr.result;exports.encodePacket(packet,supportsBinary,true,callback)};return fr.readAsArrayBuffer(packet.data)}function encodeBlob(packet,supportsBinary,callback){if(!supportsBinary){return exports.encodeBase64Packet(packet,callback)}if(dontSendBlobs){return encodeBlobAsArrayBuffer(packet,supportsBinary,callback)}var length=new Uint8Array(1);length[0]=packets[packet.type];var blob=new Blob([length.buffer,packet.data]);return callback(blob)}exports.encodeBase64Packet=function(packet,callback){var message="b"+exports.packets[packet.type];if(Blob&&packet.data instanceof Blob){var fr=new FileReader;fr.onload=function(){var b64=fr.result.split(",")[1];callback(message+b64)};return fr.readAsDataURL(packet.data)}var b64data;try{b64data=String.fromCharCode.apply(null,new Uint8Array(packet.data))}catch(e){var typed=new Uint8Array(packet.data);var basic=new Array(typed.length);for(var i=0;i<typed.length;i++){basic[i]=typed[i]}b64data=String.fromCharCode.apply(null,basic)}message+=global.btoa(b64data);return callback(message)};exports.decodePacket=function(data,binaryType,utf8decode){if(typeof data=="string"||data===undefined){if(data.charAt(0)=="b"){return exports.decodeBase64Packet(data.substr(1),binaryType)}if(utf8decode){try{data=utf8.decode(data)}catch(e){return err}}var type=data.charAt(0);if(Number(type)!=type||!packetslist[type]){return err}if(data.length>1){return{type:packetslist[type],data:data.substring(1)}}else{return{type:packetslist[type]}}}var asArray=new Uint8Array(data);var type=asArray[0];var rest=sliceBuffer(data,1);if(Blob&&binaryType==="blob"){rest=new Blob([rest])}return{type:packetslist[type],data:rest}};exports.decodeBase64Packet=function(msg,binaryType){var type=packetslist[msg.charAt(0)];if(!global.ArrayBuffer){return{type:type,data:{base64:true,data:msg.substr(1)}}}var data=base64encoder.decode(msg.substr(1));if(binaryType==="blob"&&Blob){data=new Blob([data])}return{type:type,data:data}};exports.encodePayload=function(packets,supportsBinary,callback){if(typeof supportsBinary=="function"){callback=supportsBinary;supportsBinary=null}var isBinary=hasBinary(packets);if(supportsBinary&&isBinary){if(Blob&&!dontSendBlobs){return exports.encodePayloadAsBlob(packets,callback)}return exports.encodePayloadAsArrayBuffer(packets,callback)}if(!packets.length){return callback("0:")}function setLengthHeader(message){return message.length+":"+message}function encodeOne(packet,doneCallback){exports.encodePacket(packet,!isBinary?false:supportsBinary,true,function(message){doneCallback(null,setLengthHeader(message))})}map(packets,encodeOne,function(err,results){return callback(results.join(""))})};function map(ary,each,done){var result=new Array(ary.length);var next=after(ary.length,done);var eachWithIndex=function(i,el,cb){each(el,function(error,msg){result[i]=msg;cb(error,result)})};for(var i=0;i<ary.length;i++){eachWithIndex(i,ary[i],next)}}exports.decodePayload=function(data,binaryType,callback){if(typeof data!="string"){return exports.decodePayloadAsBinary(data,binaryType,callback)}if(typeof binaryType==="function"){callback=binaryType;binaryType=null}var packet;if(data==""){return callback(err,0,1)}var length="",n,msg;for(var i=0,l=data.length;i<l;i++){var chr=data.charAt(i);if(":"!=chr){length+=chr}else{if(""==length||length!=(n=Number(length))){return callback(err,0,1)}msg=data.substr(i+1,n);if(length!=msg.length){return callback(err,0,1)}if(msg.length){packet=exports.decodePacket(msg,binaryType,true);if(err.type==packet.type&&err.data==packet.data){return callback(err,0,1)}var ret=callback(packet,i+n,l);if(false===ret)return}i+=n;length=""}}if(length!=""){return callback(err,0,1)}};exports.encodePayloadAsArrayBuffer=function(packets,callback){if(!packets.length){return callback(new ArrayBuffer(0))}function encodeOne(packet,doneCallback){exports.encodePacket(packet,true,true,function(data){return doneCallback(null,data)})}map(packets,encodeOne,function(err,encodedPackets){var totalLength=encodedPackets.reduce(function(acc,p){var len;if(typeof p==="string"){len=p.length}else{len=p.byteLength}return acc+len.toString().length+len+2},0);var resultArray=new Uint8Array(totalLength);var bufferIndex=0;encodedPackets.forEach(function(p){var isString=typeof p==="string";var ab=p;if(isString){var view=new Uint8Array(p.length);for(var i=0;i<p.length;i++){view[i]=p.charCodeAt(i)}ab=view.buffer}if(isString){resultArray[bufferIndex++]=0}else{resultArray[bufferIndex++]=1}var lenStr=ab.byteLength.toString();for(var i=0;i<lenStr.length;i++){resultArray[bufferIndex++]=parseInt(lenStr[i])}resultArray[bufferIndex++]=255;var view=new Uint8Array(ab);for(var i=0;i<view.length;i++){resultArray[bufferIndex++]=view[i]}});return callback(resultArray.buffer)})};exports.encodePayloadAsBlob=function(packets,callback){function encodeOne(packet,doneCallback){exports.encodePacket(packet,true,true,function(encoded){var binaryIdentifier=new Uint8Array(1);binaryIdentifier[0]=1;if(typeof encoded==="string"){var view=new Uint8Array(encoded.length);for(var i=0;i<encoded.length;i++){view[i]=encoded.charCodeAt(i)}encoded=view.buffer;binaryIdentifier[0]=0}var len=encoded instanceof ArrayBuffer?encoded.byteLength:encoded.size;var lenStr=len.toString();var lengthAry=new Uint8Array(lenStr.length+1);for(var i=0;i<lenStr.length;i++){lengthAry[i]=parseInt(lenStr[i])}lengthAry[lenStr.length]=255;if(Blob){var blob=new Blob([binaryIdentifier.buffer,lengthAry.buffer,encoded]);doneCallback(null,blob)}})}map(packets,encodeOne,function(err,results){return callback(new Blob(results))})};exports.decodePayloadAsBinary=function(data,binaryType,callback){if(typeof binaryType==="function"){callback=binaryType;binaryType=null}var bufferTail=data;var buffers=[];var numberTooLong=false;while(bufferTail.byteLength>0){var tailArray=new Uint8Array(bufferTail);var isString=tailArray[0]===0;var msgLength="";for(var i=1;;i++){if(tailArray[i]==255)break;if(msgLength.length>310){numberTooLong=true;break}msgLength+=tailArray[i]}if(numberTooLong)return callback(err,0,1);bufferTail=sliceBuffer(bufferTail,2+msgLength.length);msgLength=parseInt(msgLength);var msg=sliceBuffer(bufferTail,0,msgLength);if(isString){try{msg=String.fromCharCode.apply(null,new Uint8Array(msg))}catch(e){var typed=new Uint8Array(msg);msg="";for(var i=0;i<typed.length;i++){msg+=String.fromCharCode(typed[i])}}}buffers.push(msg);bufferTail=sliceBuffer(bufferTail,msgLength)}var total=buffers.length;buffers.forEach(function(buffer,i){callback(exports.decodePacket(buffer,binaryType,true),i,total)})}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./keys":26,after:27,"arraybuffer.slice":28,"base64-arraybuffer":29,blob:30,"has-binary":31,utf8:33}],26:[function(_dereq_,module,exports){module.exports=Object.keys||function keys(obj){var arr=[];var has=Object.prototype.hasOwnProperty;for(var i in obj){if(has.call(obj,i)){arr.push(i)}}return arr}},{}],27:[function(_dereq_,module,exports){module.exports=after;function after(count,callback,err_cb){var bail=false;err_cb=err_cb||noop;proxy.count=count;return count===0?callback():proxy;function proxy(err,result){if(proxy.count<=0){throw new Error("after called too many times")}--proxy.count;if(err){bail=true;callback(err);callback=err_cb}else if(proxy.count===0&&!bail){callback(null,result)}}}function noop(){}},{}],28:[function(_dereq_,module,exports){module.exports=function(arraybuffer,start,end){var bytes=arraybuffer.byteLength;start=start||0;end=end||bytes;if(arraybuffer.slice){return arraybuffer.slice(start,end)}if(start<0){start+=bytes}if(end<0){end+=bytes}if(end>bytes){end=bytes}if(start>=bytes||start>=end||bytes===0){return new ArrayBuffer(0)}var abv=new Uint8Array(arraybuffer);var result=new Uint8Array(end-start);for(var i=start,ii=0;i<end;i++,ii++){result[ii]=abv[i]}return result.buffer}},{}],29:[function(_dereq_,module,exports){(function(chars){"use strict";exports.encode=function(arraybuffer){var bytes=new Uint8Array(arraybuffer),i,len=bytes.length,base64="";for(i=0;i<len;i+=3){base64+=chars[bytes[i]>>2];base64+=chars[(bytes[i]&3)<<4|bytes[i+1]>>4];base64+=chars[(bytes[i+1]&15)<<2|bytes[i+2]>>6];base64+=chars[bytes[i+2]&63]}if(len%3===2){base64=base64.substring(0,base64.length-1)+"="}else if(len%3===1){base64=base64.substring(0,base64.length-2)+"=="}return base64};exports.decode=function(base64){var bufferLength=base64.length*.75,len=base64.length,i,p=0,encoded1,encoded2,encoded3,encoded4;if(base64[base64.length-1]==="="){bufferLength--;if(base64[base64.length-2]==="="){bufferLength--}}var arraybuffer=new ArrayBuffer(bufferLength),bytes=new Uint8Array(arraybuffer);for(i=0;i<len;i+=4){encoded1=chars.indexOf(base64[i]);encoded2=chars.indexOf(base64[i+1]);encoded3=chars.indexOf(base64[i+2]);encoded4=chars.indexOf(base64[i+3]);bytes[p++]=encoded1<<2|encoded2>>4;bytes[p++]=(encoded2&15)<<4|encoded3>>2;bytes[p++]=(encoded3&3)<<6|encoded4&63}return arraybuffer}})("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")},{}],30:[function(_dereq_,module,exports){(function(global){var BlobBuilder=global.BlobBuilder||global.WebKitBlobBuilder||global.MSBlobBuilder||global.MozBlobBuilder;var blobSupported=function(){try{var b=new Blob(["hi"]);return b.size==2}catch(e){return false}}();var blobBuilderSupported=BlobBuilder&&BlobBuilder.prototype.append&&BlobBuilder.prototype.getBlob;function BlobBuilderConstructor(ary,options){options=options||{};var bb=new BlobBuilder;for(var i=0;i<ary.length;i++){bb.append(ary[i])}return options.type?bb.getBlob(options.type):bb.getBlob()}module.exports=function(){if(blobSupported){return global.Blob}else if(blobBuilderSupported){return BlobBuilderConstructor}else{return undefined}}()}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],31:[function(_dereq_,module,exports){(function(global){var isArray=_dereq_("isarray");module.exports=hasBinary;function hasBinary(data){function _hasBinary(obj){if(!obj)return false;if(global.Buffer&&global.Buffer.isBuffer(obj)||global.ArrayBuffer&&obj instanceof ArrayBuffer||global.Blob&&obj instanceof Blob||global.File&&obj instanceof File){return true}if(isArray(obj)){for(var i=0;i<obj.length;i++){if(_hasBinary(obj[i])){return true}}}else if(obj&&"object"==typeof obj){if(obj.toJSON){obj=obj.toJSON()}for(var key in obj){if(obj.hasOwnProperty(key)&&_hasBinary(obj[key])){return true}}}return false}return _hasBinary(data)}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{isarray:32}],32:[function(_dereq_,module,exports){module.exports=Array.isArray||function(arr){return Object.prototype.toString.call(arr)=="[object Array]"}},{}],33:[function(_dereq_,module,exports){(function(global){(function(root){var freeExports=typeof exports=="object"&&exports;var freeModule=typeof module=="object"&&module&&module.exports==freeExports&&module;var freeGlobal=typeof global=="object"&&global;if(freeGlobal.global===freeGlobal||freeGlobal.window===freeGlobal){root=freeGlobal}var stringFromCharCode=String.fromCharCode;function ucs2decode(string){var output=[];var counter=0;var length=string.length;var value;var extra;while(counter<length){value=string.charCodeAt(counter++);if(value>=55296&&value<=56319&&counter<length){extra=string.charCodeAt(counter++);
if((extra&64512)==56320){output.push(((value&1023)<<10)+(extra&1023)+65536)}else{output.push(value);counter--}}else{output.push(value)}}return output}function ucs2encode(array){var length=array.length;var index=-1;var value;var output="";while(++index<length){value=array[index];if(value>65535){value-=65536;output+=stringFromCharCode(value>>>10&1023|55296);value=56320|value&1023}output+=stringFromCharCode(value)}return output}function createByte(codePoint,shift){return stringFromCharCode(codePoint>>shift&63|128)}function encodeCodePoint(codePoint){if((codePoint&4294967168)==0){return stringFromCharCode(codePoint)}var symbol="";if((codePoint&4294965248)==0){symbol=stringFromCharCode(codePoint>>6&31|192)}else if((codePoint&4294901760)==0){symbol=stringFromCharCode(codePoint>>12&15|224);symbol+=createByte(codePoint,6)}else if((codePoint&4292870144)==0){symbol=stringFromCharCode(codePoint>>18&7|240);symbol+=createByte(codePoint,12);symbol+=createByte(codePoint,6)}symbol+=stringFromCharCode(codePoint&63|128);return symbol}function utf8encode(string){var codePoints=ucs2decode(string);var length=codePoints.length;var index=-1;var codePoint;var byteString="";while(++index<length){codePoint=codePoints[index];byteString+=encodeCodePoint(codePoint)}return byteString}function readContinuationByte(){if(byteIndex>=byteCount){throw Error("Invalid byte index")}var continuationByte=byteArray[byteIndex]&255;byteIndex++;if((continuationByte&192)==128){return continuationByte&63}throw Error("Invalid continuation byte")}function decodeSymbol(){var byte1;var byte2;var byte3;var byte4;var codePoint;if(byteIndex>byteCount){throw Error("Invalid byte index")}if(byteIndex==byteCount){return false}byte1=byteArray[byteIndex]&255;byteIndex++;if((byte1&128)==0){return byte1}if((byte1&224)==192){var byte2=readContinuationByte();codePoint=(byte1&31)<<6|byte2;if(codePoint>=128){return codePoint}else{throw Error("Invalid continuation byte")}}if((byte1&240)==224){byte2=readContinuationByte();byte3=readContinuationByte();codePoint=(byte1&15)<<12|byte2<<6|byte3;if(codePoint>=2048){return codePoint}else{throw Error("Invalid continuation byte")}}if((byte1&248)==240){byte2=readContinuationByte();byte3=readContinuationByte();byte4=readContinuationByte();codePoint=(byte1&15)<<18|byte2<<12|byte3<<6|byte4;if(codePoint>=65536&&codePoint<=1114111){return codePoint}}throw Error("Invalid UTF-8 detected")}var byteArray;var byteCount;var byteIndex;function utf8decode(byteString){byteArray=ucs2decode(byteString);byteCount=byteArray.length;byteIndex=0;var codePoints=[];var tmp;while((tmp=decodeSymbol())!==false){codePoints.push(tmp)}return ucs2encode(codePoints)}var utf8={version:"2.0.0",encode:utf8encode,decode:utf8decode};if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){define(function(){return utf8})}else if(freeExports&&!freeExports.nodeType){if(freeModule){freeModule.exports=utf8}else{var object={};var hasOwnProperty=object.hasOwnProperty;for(var key in utf8){hasOwnProperty.call(utf8,key)&&(freeExports[key]=utf8[key])}}}else{root.utf8=utf8}})(this)}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],34:[function(_dereq_,module,exports){(function(global){var rvalidchars=/^[\],:{}\s]*$/;var rvalidescape=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g;var rvalidtokens=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;var rvalidbraces=/(?:^|:|,)(?:\s*\[)+/g;var rtrimLeft=/^\s+/;var rtrimRight=/\s+$/;module.exports=function parsejson(data){if("string"!=typeof data||!data){return null}data=data.replace(rtrimLeft,"").replace(rtrimRight,"");if(global.JSON&&JSON.parse){return JSON.parse(data)}if(rvalidchars.test(data.replace(rvalidescape,"@").replace(rvalidtokens,"]").replace(rvalidbraces,""))){return new Function("return "+data)()}}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],35:[function(_dereq_,module,exports){exports.encode=function(obj){var str="";for(var i in obj){if(obj.hasOwnProperty(i)){if(str.length)str+="&";str+=encodeURIComponent(i)+"="+encodeURIComponent(obj[i])}}return str};exports.decode=function(qs){var qry={};var pairs=qs.split("&");for(var i=0,l=pairs.length;i<l;i++){var pair=pairs[i].split("=");qry[decodeURIComponent(pair[0])]=decodeURIComponent(pair[1])}return qry}},{}],36:[function(_dereq_,module,exports){var re=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;var parts=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];module.exports=function parseuri(str){var src=str,b=str.indexOf("["),e=str.indexOf("]");if(b!=-1&&e!=-1){str=str.substring(0,b)+str.substring(b,e).replace(/:/g,";")+str.substring(e,str.length)}var m=re.exec(str||""),uri={},i=14;while(i--){uri[parts[i]]=m[i]||""}if(b!=-1&&e!=-1){uri.source=src;uri.host=uri.host.substring(1,uri.host.length-1).replace(/;/g,":");uri.authority=uri.authority.replace("[","").replace("]","").replace(/;/g,":");uri.ipv6uri=true}return uri}},{}],37:[function(_dereq_,module,exports){var global=function(){return this}();var WebSocket=global.WebSocket||global.MozWebSocket;module.exports=WebSocket?ws:null;function ws(uri,protocols,opts){var instance;if(protocols){instance=new WebSocket(uri,protocols)}else{instance=new WebSocket(uri)}return instance}if(WebSocket)ws.prototype=WebSocket.prototype},{}],38:[function(_dereq_,module,exports){(function(global){var isArray=_dereq_("isarray");module.exports=hasBinary;function hasBinary(data){function _hasBinary(obj){if(!obj)return false;if(global.Buffer&&global.Buffer.isBuffer(obj)||global.ArrayBuffer&&obj instanceof ArrayBuffer||global.Blob&&obj instanceof Blob||global.File&&obj instanceof File){return true}if(isArray(obj)){for(var i=0;i<obj.length;i++){if(_hasBinary(obj[i])){return true}}}else if(obj&&"object"==typeof obj){if(obj.toJSON){obj=obj.toJSON()}for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)&&_hasBinary(obj[key])){return true}}}return false}return _hasBinary(data)}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{isarray:39}],39:[function(_dereq_,module,exports){module.exports=_dereq_(32)},{}],40:[function(_dereq_,module,exports){var global=_dereq_("global");try{module.exports="XMLHttpRequest"in global&&"withCredentials"in new global.XMLHttpRequest}catch(err){module.exports=false}},{global:41}],41:[function(_dereq_,module,exports){module.exports=function(){return this}()},{}],42:[function(_dereq_,module,exports){var indexOf=[].indexOf;module.exports=function(arr,obj){if(indexOf)return arr.indexOf(obj);for(var i=0;i<arr.length;++i){if(arr[i]===obj)return i}return-1}},{}],43:[function(_dereq_,module,exports){var has=Object.prototype.hasOwnProperty;exports.keys=Object.keys||function(obj){var keys=[];for(var key in obj){if(has.call(obj,key)){keys.push(key)}}return keys};exports.values=function(obj){var vals=[];for(var key in obj){if(has.call(obj,key)){vals.push(obj[key])}}return vals};exports.merge=function(a,b){for(var key in b){if(has.call(b,key)){a[key]=b[key]}}return a};exports.length=function(obj){return exports.keys(obj).length};exports.isEmpty=function(obj){return 0==exports.length(obj)}},{}],44:[function(_dereq_,module,exports){var re=/^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/;var parts=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];module.exports=function parseuri(str){var m=re.exec(str||""),uri={},i=14;while(i--){uri[parts[i]]=m[i]||""}return uri}},{}],45:[function(_dereq_,module,exports){(function(global){var isArray=_dereq_("isarray");var isBuf=_dereq_("./is-buffer");exports.deconstructPacket=function(packet){var buffers=[];var packetData=packet.data;function _deconstructPacket(data){if(!data)return data;if(isBuf(data)){var placeholder={_placeholder:true,num:buffers.length};buffers.push(data);return placeholder}else if(isArray(data)){var newData=new Array(data.length);for(var i=0;i<data.length;i++){newData[i]=_deconstructPacket(data[i])}return newData}else if("object"==typeof data&&!(data instanceof Date)){var newData={};for(var key in data){newData[key]=_deconstructPacket(data[key])}return newData}return data}var pack=packet;pack.data=_deconstructPacket(packetData);pack.attachments=buffers.length;return{packet:pack,buffers:buffers}};exports.reconstructPacket=function(packet,buffers){var curPlaceHolder=0;function _reconstructPacket(data){if(data&&data._placeholder){var buf=buffers[data.num];return buf}else if(isArray(data)){for(var i=0;i<data.length;i++){data[i]=_reconstructPacket(data[i])}return data}else if(data&&"object"==typeof data){for(var key in data){data[key]=_reconstructPacket(data[key])}return data}return data}packet.data=_reconstructPacket(packet.data);packet.attachments=undefined;return packet};exports.removeBlobs=function(data,callback){function _removeBlobs(obj,curKey,containingObject){if(!obj)return obj;if(global.Blob&&obj instanceof Blob||global.File&&obj instanceof File){pendingBlobs++;var fileReader=new FileReader;fileReader.onload=function(){if(containingObject){containingObject[curKey]=this.result}else{bloblessData=this.result}if(!--pendingBlobs){callback(bloblessData)}};fileReader.readAsArrayBuffer(obj)}else if(isArray(obj)){for(var i=0;i<obj.length;i++){_removeBlobs(obj[i],i,obj)}}else if(obj&&"object"==typeof obj&&!isBuf(obj)){for(var key in obj){_removeBlobs(obj[key],key,obj)}}}var pendingBlobs=0;var bloblessData=data;_removeBlobs(bloblessData);if(!pendingBlobs){callback(bloblessData)}}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"./is-buffer":47,isarray:48}],46:[function(_dereq_,module,exports){var debug=_dereq_("debug")("socket.io-parser");var json=_dereq_("json3");var isArray=_dereq_("isarray");var Emitter=_dereq_("component-emitter");var binary=_dereq_("./binary");var isBuf=_dereq_("./is-buffer");exports.protocol=4;exports.types=["CONNECT","DISCONNECT","EVENT","BINARY_EVENT","ACK","BINARY_ACK","ERROR"];exports.CONNECT=0;exports.DISCONNECT=1;exports.EVENT=2;exports.ACK=3;exports.ERROR=4;exports.BINARY_EVENT=5;exports.BINARY_ACK=6;exports.Encoder=Encoder;exports.Decoder=Decoder;function Encoder(){}Encoder.prototype.encode=function(obj,callback){debug("encoding packet %j",obj);if(exports.BINARY_EVENT==obj.type||exports.BINARY_ACK==obj.type){encodeAsBinary(obj,callback)}else{var encoding=encodeAsString(obj);callback([encoding])}};function encodeAsString(obj){var str="";var nsp=false;str+=obj.type;if(exports.BINARY_EVENT==obj.type||exports.BINARY_ACK==obj.type){str+=obj.attachments;str+="-"}if(obj.nsp&&"/"!=obj.nsp){nsp=true;str+=obj.nsp}if(null!=obj.id){if(nsp){str+=",";nsp=false}str+=obj.id}if(null!=obj.data){if(nsp)str+=",";str+=json.stringify(obj.data)}debug("encoded %j as %s",obj,str);return str}function encodeAsBinary(obj,callback){function writeEncoding(bloblessData){var deconstruction=binary.deconstructPacket(bloblessData);var pack=encodeAsString(deconstruction.packet);var buffers=deconstruction.buffers;buffers.unshift(pack);callback(buffers)}binary.removeBlobs(obj,writeEncoding)}function Decoder(){this.reconstructor=null}Emitter(Decoder.prototype);Decoder.prototype.add=function(obj){var packet;if("string"==typeof obj){packet=decodeString(obj);if(exports.BINARY_EVENT==packet.type||exports.BINARY_ACK==packet.type){this.reconstructor=new BinaryReconstructor(packet);if(this.reconstructor.reconPack.attachments===0){this.emit("decoded",packet)}}else{this.emit("decoded",packet)}}else if(isBuf(obj)||obj.base64){if(!this.reconstructor){throw new Error("got binary data when not reconstructing a packet")}else{packet=this.reconstructor.takeBinaryData(obj);if(packet){this.reconstructor=null;this.emit("decoded",packet)}}}else{throw new Error("Unknown type: "+obj)}};function decodeString(str){var p={};var i=0;p.type=Number(str.charAt(0));if(null==exports.types[p.type])return error();if(exports.BINARY_EVENT==p.type||exports.BINARY_ACK==p.type){var buf="";while(str.charAt(++i)!="-"){buf+=str.charAt(i);if(i+1==str.length)break}if(buf!=Number(buf)||str.charAt(i)!="-"){throw new Error("Illegal attachments")}p.attachments=Number(buf)}if("/"==str.charAt(i+1)){p.nsp="";while(++i){var c=str.charAt(i);if(","==c)break;p.nsp+=c;if(i+1==str.length)break}}else{p.nsp="/"}var next=str.charAt(i+1);if(""!==next&&Number(next)==next){p.id="";while(++i){var c=str.charAt(i);if(null==c||Number(c)!=c){--i;break}p.id+=str.charAt(i);if(i+1==str.length)break}p.id=Number(p.id)}if(str.charAt(++i)){try{p.data=json.parse(str.substr(i))}catch(e){return error()}}debug("decoded %s as %j",str,p);return p}Decoder.prototype.destroy=function(){if(this.reconstructor){this.reconstructor.finishedReconstruction()}};function BinaryReconstructor(packet){this.reconPack=packet;this.buffers=[]}BinaryReconstructor.prototype.takeBinaryData=function(binData){this.buffers.push(binData);if(this.buffers.length==this.reconPack.attachments){var packet=binary.reconstructPacket(this.reconPack,this.buffers);this.finishedReconstruction();return packet}return null};BinaryReconstructor.prototype.finishedReconstruction=function(){this.reconPack=null;this.buffers=[]};function error(data){return{type:exports.ERROR,data:"parser error"}}},{"./binary":45,"./is-buffer":47,"component-emitter":9,debug:10,isarray:48,json3:49}],47:[function(_dereq_,module,exports){(function(global){module.exports=isBuf;function isBuf(obj){return global.Buffer&&global.Buffer.isBuffer(obj)||global.ArrayBuffer&&obj instanceof ArrayBuffer}}).call(this,typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],48:[function(_dereq_,module,exports){module.exports=_dereq_(32)},{}],49:[function(_dereq_,module,exports){(function(window){var getClass={}.toString,isProperty,forEach,undef;var isLoader=typeof define==="function"&&define.amd;var nativeJSON=typeof JSON=="object"&&JSON;var JSON3=typeof exports=="object"&&exports&&!exports.nodeType&&exports;if(JSON3&&nativeJSON){JSON3.stringify=nativeJSON.stringify;JSON3.parse=nativeJSON.parse}else{JSON3=window.JSON=nativeJSON||{}}var isExtended=new Date(-0xc782b5b800cec);try{isExtended=isExtended.getUTCFullYear()==-109252&&isExtended.getUTCMonth()===0&&isExtended.getUTCDate()===1&&isExtended.getUTCHours()==10&&isExtended.getUTCMinutes()==37&&isExtended.getUTCSeconds()==6&&isExtended.getUTCMilliseconds()==708}catch(exception){}function has(name){if(has[name]!==undef){return has[name]}var isSupported;if(name=="bug-string-char-index"){isSupported="a"[0]!="a"}else if(name=="json"){isSupported=has("json-stringify")&&has("json-parse")}else{var value,serialized='{"a":[1,true,false,null,"\\u0000\\b\\n\\f\\r\\t"]}';if(name=="json-stringify"){var stringify=JSON3.stringify,stringifySupported=typeof stringify=="function"&&isExtended;if(stringifySupported){(value=function(){return 1}).toJSON=value;try{stringifySupported=stringify(0)==="0"&&stringify(new Number)==="0"&&stringify(new String)=='""'&&stringify(getClass)===undef&&stringify(undef)===undef&&stringify()===undef&&stringify(value)==="1"&&stringify([value])=="[1]"&&stringify([undef])=="[null]"&&stringify(null)=="null"&&stringify([undef,getClass,null])=="[null,null,null]"&&stringify({a:[value,true,false,null,"\x00\b\n\f\r "]})==serialized&&stringify(null,value)==="1"&&stringify([1,2],null,1)=="[\n 1,\n 2\n]"&&stringify(new Date(-864e13))=='"-271821-04-20T00:00:00.000Z"'&&stringify(new Date(864e13))=='"+275760-09-13T00:00:00.000Z"'&&stringify(new Date(-621987552e5))=='"-000001-01-01T00:00:00.000Z"'&&stringify(new Date(-1))=='"1969-12-31T23:59:59.999Z"'}catch(exception){stringifySupported=false}}isSupported=stringifySupported}if(name=="json-parse"){var parse=JSON3.parse;if(typeof parse=="function"){try{if(parse("0")===0&&!parse(false)){value=parse(serialized);var parseSupported=value["a"].length==5&&value["a"][0]===1;if(parseSupported){try{parseSupported=!parse('" "')}catch(exception){}if(parseSupported){try{parseSupported=parse("01")!==1}catch(exception){}}if(parseSupported){try{parseSupported=parse("1.")!==1}catch(exception){}}}}}catch(exception){parseSupported=false}}isSupported=parseSupported}}return has[name]=!!isSupported}if(!has("json")){var functionClass="[object Function]";var dateClass="[object Date]";var numberClass="[object Number]";var stringClass="[object String]";var arrayClass="[object Array]";var booleanClass="[object Boolean]";var charIndexBuggy=has("bug-string-char-index");if(!isExtended){var floor=Math.floor;var Months=[0,31,59,90,120,151,181,212,243,273,304,334];var getDay=function(year,month){return Months[month]+365*(year-1970)+floor((year-1969+(month=+(month>1)))/4)-floor((year-1901+month)/100)+floor((year-1601+month)/400)}}if(!(isProperty={}.hasOwnProperty)){isProperty=function(property){var members={},constructor;if((members.__proto__=null,members.__proto__={toString:1},members).toString!=getClass){isProperty=function(property){var original=this.__proto__,result=property in(this.__proto__=null,this);this.__proto__=original;return result}}else{constructor=members.constructor;isProperty=function(property){var parent=(this.constructor||constructor).prototype;return property in this&&!(property in parent&&this[property]===parent[property])}}members=null;return isProperty.call(this,property)}}var PrimitiveTypes={"boolean":1,number:1,string:1,undefined:1};var isHostType=function(object,property){var type=typeof object[property];return type=="object"?!!object[property]:!PrimitiveTypes[type]};forEach=function(object,callback){var size=0,Properties,members,property;(Properties=function(){this.valueOf=0}).prototype.valueOf=0;members=new Properties;for(property in members){if(isProperty.call(members,property)){size++}}Properties=members=null;if(!size){members=["valueOf","toString","toLocaleString","propertyIsEnumerable","isPrototypeOf","hasOwnProperty","constructor"];forEach=function(object,callback){var isFunction=getClass.call(object)==functionClass,property,length;var hasProperty=!isFunction&&typeof object.constructor!="function"&&isHostType(object,"hasOwnProperty")?object.hasOwnProperty:isProperty;for(property in object){if(!(isFunction&&property=="prototype")&&hasProperty.call(object,property)){callback(property)}}for(length=members.length;property=members[--length];hasProperty.call(object,property)&&callback(property));}}else if(size==2){forEach=function(object,callback){var members={},isFunction=getClass.call(object)==functionClass,property;for(property in object){if(!(isFunction&&property=="prototype")&&!isProperty.call(members,property)&&(members[property]=1)&&isProperty.call(object,property)){callback(property)}}}}else{forEach=function(object,callback){var isFunction=getClass.call(object)==functionClass,property,isConstructor;for(property in object){if(!(isFunction&&property=="prototype")&&isProperty.call(object,property)&&!(isConstructor=property==="constructor")){callback(property)}}if(isConstructor||isProperty.call(object,property="constructor")){callback(property)}}}return forEach(object,callback)};if(!has("json-stringify")){var Escapes={92:"\\\\",34:'\\"',8:"\\b",12:"\\f",10:"\\n",13:"\\r",9:"\\t"};var leadingZeroes="000000";var toPaddedString=function(width,value){return(leadingZeroes+(value||0)).slice(-width)};var unicodePrefix="\\u00";var quote=function(value){var result='"',index=0,length=value.length,isLarge=length>10&&charIndexBuggy,symbols;if(isLarge){symbols=value.split("")}for(;index<length;index++){var charCode=value.charCodeAt(index);switch(charCode){case 8:case 9:case 10:case 12:case 13:case 34:case 92:result+=Escapes[charCode];break;default:if(charCode<32){result+=unicodePrefix+toPaddedString(2,charCode.toString(16));break}result+=isLarge?symbols[index]:charIndexBuggy?value.charAt(index):value[index]}}return result+'"'};var serialize=function(property,object,callback,properties,whitespace,indentation,stack){var value,className,year,month,date,time,hours,minutes,seconds,milliseconds,results,element,index,length,prefix,result;try{value=object[property]}catch(exception){}if(typeof value=="object"&&value){className=getClass.call(value);if(className==dateClass&&!isProperty.call(value,"toJSON")){if(value>-1/0&&value<1/0){if(getDay){date=floor(value/864e5);for(year=floor(date/365.2425)+1970-1;getDay(year+1,0)<=date;year++);for(month=floor((date-getDay(year,0))/30.42);getDay(year,month+1)<=date;month++);date=1+date-getDay(year,month);time=(value%864e5+864e5)%864e5;hours=floor(time/36e5)%24;minutes=floor(time/6e4)%60;seconds=floor(time/1e3)%60;milliseconds=time%1e3}else{year=value.getUTCFullYear();month=value.getUTCMonth();date=value.getUTCDate();hours=value.getUTCHours();minutes=value.getUTCMinutes();seconds=value.getUTCSeconds();milliseconds=value.getUTCMilliseconds()}value=(year<=0||year>=1e4?(year<0?"-":"+")+toPaddedString(6,year<0?-year:year):toPaddedString(4,year))+"-"+toPaddedString(2,month+1)+"-"+toPaddedString(2,date)+"T"+toPaddedString(2,hours)+":"+toPaddedString(2,minutes)+":"+toPaddedString(2,seconds)+"."+toPaddedString(3,milliseconds)+"Z"}else{value=null}}else if(typeof value.toJSON=="function"&&(className!=numberClass&&className!=stringClass&&className!=arrayClass||isProperty.call(value,"toJSON"))){value=value.toJSON(property)}}if(callback){value=callback.call(object,property,value)}if(value===null){return"null"}className=getClass.call(value);if(className==booleanClass){return""+value}else if(className==numberClass){return value>-1/0&&value<1/0?""+value:"null"}else if(className==stringClass){return quote(""+value)}if(typeof value=="object"){for(length=stack.length;length--;){if(stack[length]===value){throw TypeError()}}stack.push(value);results=[];prefix=indentation;indentation+=whitespace;if(className==arrayClass){for(index=0,length=value.length;index<length;index++){element=serialize(index,value,callback,properties,whitespace,indentation,stack);results.push(element===undef?"null":element)}result=results.length?whitespace?"[\n"+indentation+results.join(",\n"+indentation)+"\n"+prefix+"]":"["+results.join(",")+"]":"[]"}else{forEach(properties||value,function(property){var element=serialize(property,value,callback,properties,whitespace,indentation,stack);if(element!==undef){results.push(quote(property)+":"+(whitespace?" ":"")+element)}});result=results.length?whitespace?"{\n"+indentation+results.join(",\n"+indentation)+"\n"+prefix+"}":"{"+results.join(",")+"}":"{}"}stack.pop();return result}};JSON3.stringify=function(source,filter,width){var whitespace,callback,properties,className;if(typeof filter=="function"||typeof filter=="object"&&filter){if((className=getClass.call(filter))==functionClass){callback=filter}else if(className==arrayClass){properties={};for(var index=0,length=filter.length,value;index<length;value=filter[index++],(className=getClass.call(value),className==stringClass||className==numberClass)&&(properties[value]=1));}}if(width){if((className=getClass.call(width))==numberClass){if((width-=width%1)>0){for(whitespace="",width>10&&(width=10);whitespace.length<width;whitespace+=" ");}}else if(className==stringClass){whitespace=width.length<=10?width:width.slice(0,10)}}return serialize("",(value={},value[""]=source,value),callback,properties,whitespace,"",[])}}if(!has("json-parse")){var fromCharCode=String.fromCharCode;var Unescapes={92:"\\",34:'"',47:"/",98:"\b",116:" ",110:"\n",102:"\f",114:"\r"};var Index,Source;var abort=function(){Index=Source=null;throw SyntaxError()};var lex=function(){var source=Source,length=source.length,value,begin,position,isSigned,charCode;while(Index<length){charCode=source.charCodeAt(Index);switch(charCode){case 9:case 10:case 13:case 32:Index++;break;case 123:case 125:case 91:case 93:case 58:case 44:value=charIndexBuggy?source.charAt(Index):source[Index];Index++;return value;case 34:for(value="@",Index++;Index<length;){charCode=source.charCodeAt(Index);if(charCode<32){abort()}else if(charCode==92){charCode=source.charCodeAt(++Index);switch(charCode){case 92:case 34:case 47:case 98:case 116:case 110:case 102:case 114:value+=Unescapes[charCode];Index++;break;case 117:begin=++Index;for(position=Index+4;Index<position;Index++){charCode=source.charCodeAt(Index);if(!(charCode>=48&&charCode<=57||charCode>=97&&charCode<=102||charCode>=65&&charCode<=70)){abort()}}value+=fromCharCode("0x"+source.slice(begin,Index));break;default:abort()}}else{if(charCode==34){break}charCode=source.charCodeAt(Index);begin=Index;while(charCode>=32&&charCode!=92&&charCode!=34){charCode=source.charCodeAt(++Index)}value+=source.slice(begin,Index)}}if(source.charCodeAt(Index)==34){Index++;return value}abort();default:begin=Index;if(charCode==45){isSigned=true;charCode=source.charCodeAt(++Index)}if(charCode>=48&&charCode<=57){if(charCode==48&&(charCode=source.charCodeAt(Index+1),charCode>=48&&charCode<=57)){abort()}isSigned=false;for(;Index<length&&(charCode=source.charCodeAt(Index),charCode>=48&&charCode<=57);Index++);if(source.charCodeAt(Index)==46){position=++Index;for(;position<length&&(charCode=source.charCodeAt(position),charCode>=48&&charCode<=57);position++);if(position==Index){abort()}Index=position}charCode=source.charCodeAt(Index);if(charCode==101||charCode==69){charCode=source.charCodeAt(++Index);if(charCode==43||charCode==45){Index++}for(position=Index;position<length&&(charCode=source.charCodeAt(position),charCode>=48&&charCode<=57);position++);if(position==Index){abort()}Index=position}return+source.slice(begin,Index)}if(isSigned){abort()}if(source.slice(Index,Index+4)=="true"){Index+=4;return true}else if(source.slice(Index,Index+5)=="false"){Index+=5;return false}else if(source.slice(Index,Index+4)=="null"){Index+=4;return null}abort()}}return"$"};var get=function(value){var results,hasMembers;if(value=="$"){abort()}if(typeof value=="string"){if((charIndexBuggy?value.charAt(0):value[0])=="@"){return value.slice(1)}if(value=="["){results=[];for(;;hasMembers||(hasMembers=true)){value=lex();if(value=="]"){break}if(hasMembers){if(value==","){value=lex();if(value=="]"){abort()}}else{abort()}}if(value==","){abort()}results.push(get(value))}return results}else if(value=="{"){results={};for(;;hasMembers||(hasMembers=true)){value=lex();if(value=="}"){break}if(hasMembers){if(value==","){value=lex();if(value=="}"){abort()}}else{abort()}}if(value==","||typeof value!="string"||(charIndexBuggy?value.charAt(0):value[0])!="@"||lex()!=":"){abort()}results[value.slice(1)]=get(lex())}return results}abort()}return value};var update=function(source,property,callback){var element=walk(source,property,callback);if(element===undef){delete source[property]}else{source[property]=element}};var walk=function(source,property,callback){var value=source[property],length;if(typeof value=="object"&&value){if(getClass.call(value)==arrayClass){for(length=value.length;length--;){update(value,length,callback)}}else{forEach(value,function(property){update(value,property,callback)})}}return callback.call(source,property,value)};JSON3.parse=function(source,callback){var result,value;Index=0;Source=""+source;result=get(lex());if(lex()!="$"){abort()}Index=Source=null;return callback&&getClass.call(callback)==functionClass?walk((value={},value[""]=result,value),"",callback):result}}}if(isLoader){define(function(){return JSON3})}})(this)},{}],50:[function(_dereq_,module,exports){module.exports=toArray;function toArray(list,index){var array=[];index=index||0;for(var i=index||0;i<list.length;i++){array[i-index]=list[i]}return array}},{}]},{},[1])(1)});
\ No newline at end of file
......@@ -11,6 +11,9 @@
<link rel="stylesheet" type="text/css" href="static/xtba/login/css/login.css">
<link rel="stylesheet" type="text/css" href="static/xtba/login/css/animate.min.css">
<link rel="stylesheet" type="text/css" href="static/xtba/login/css/font-awesome.css">
<link rel="stylesheet" type="text/css" href="static/ajgl/css/easyui.css">
<link rel="stylesheet" type="text/css" href="static/ajgl/css/icon.css">
</head>
<body onload="pop();" style="background: url(static/xtba/login/images/1.jpg);background-size: cover;">
......@@ -36,7 +39,7 @@
<li onclick=""><img src="static/xtba/login/images/qg_logo.png">全国刑侦信息专业应用系统</li>
</ul>
</a>
<a onclick=""><span class="message" title="我的消息"><i class="fa fa-bell fa-2x fa-fw"></i><span class="mess_num">3</span></span></a>
<a onclick="toXxZx()" ><span class="message" title="我的消息"><i class="fa fa-bell fa-2x fa-fw"></i><span class="mess_num" id="dbrwNum">0</span></span></a>
<a onclick=""><span class="message" title="时尚桌面"><i class="fa fa-at fa-2x fa-fw"></i></span></a>
<a onclick="closeWwindow()"><span class="out" title="退出"><i class="fa fa-power-off fa-2x fa-fw"></i></span></a>
</div>
......@@ -261,6 +264,11 @@
<script type="text/javascript" src="static/xtba/login/js/swiper-3.4.2.jquery.min.js"></script>
<script type="text/javascript" src="static/xtba/login/js/goods.js" ></script>
<script type="text/javascript" src="static/xtba/login/js/swiper.animate.min.js" ></script>
<script type="text/javascript" src="static/ajgl/js/jquery.min.js"></script>
<script src="static/xtba/zljc/layer/layer.js"></script>
<script src="static/xtba/login/js/socket.io.js"></script>
<script type="text/javascript" src="static/xtba/zljc/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="static/xtba/zljc/js/easyui-lang-zh_CN.js"></script>
<script>
window.onload = function () {
setInterval(function () {
......@@ -434,6 +442,57 @@
}
}
//webSocket消息推送
var socket = io.connect("${proConfig.socketUrl}");
socket.on('connect', function () {
console.log("Client has connected to the server!");
sendMessage();
});
socket.on('chatevent', function (data) {
console.log("消息标题=" + data.xxbt);
var xxbt = data.xxbt
if (data != null) {
var fssj = data.fssj
/*右上角消息中心数量添加*/
if ($("#dbrwNum").text() == '') {
$("#dbrwNum").text(1)
} else {
$("#dbrwNum").text(parseInt($("#dbrwNum").text()) + 1);
}
var newsHtml = "<li id='sc_" + data.xxid + "' data-xxid='" + data.xxid + "' onclick='checkZx(this)'><span class='msg-lis'>" + xxbt + "</span> <span class='msg-time'>" + fssj + "</span></li>"
/*右下角弹出最新消息提示*/
$.messager.show({
title: '我的消息',
height: '20%',
msg: newsHtml,
timeout: 5000,
showType: 'slide'
});
}
});
socket.on('disconnect', function () {
console.log("The client has disconnected!");
});
function sendDisconnect() {
socket.disconnect();
}
function sendMessage() {
var identitycard = '${USER.identitycard}';
socket.emit('chatevent', identitycard);
}
/*打开消息中心*/
function toXxZx() {
var url = "/queryNews";
window.open(url, '_blank');
}
</script>
<!-- 权限机制
<div style="display: none" id="perurl" th:text="${session.perurl}"></div>
......
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="18%">
案件编号:
</th>
<td width="32%">
${cbffkMap.asjbh}
</td>
<th width="18%">
人员编号:
</th>
<td width="32%">
${cbffkMap.asjxgrybh}
</td>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.cyzj_zjhm}</td>
<th>死亡人数:</th>
<td>${cbffkMap.asjswry_rs}</td>
</tr>
<tr>
<th>受伤人数:</th>
<td>${cbffkMap.asjssry_rs}</td>
<th>损失财物:</th>
<td>${cbffkMap.asjsscw_jyqk}</td>
</tr>
<tr>
<th>立案时间:</th>
<td>${cbffkMap.larq}</td>
<th>立案单位:</th>
<td>${cbffkMap.ladw_gajgmc}</td>
</tr>
<tr>
<th>简要案情:</th>
<td colspan="3">${cbffkMap.jyaq}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib prefix="hlxt" uri="/WEB-INF/tld/hlxt.tld" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="22%">案件编号:</th>
<td width="30%">${cbffkMap.asjbh}</td>
<th width="22%">案件类别:</th>
<td width="26%">
<hlxt:ShowName codeType="CODE_AJLB" code_val="${cbffkMap.ajlbdm}" />
</td>
</tr>
<tr>
<th>案件名称:</th>
<td>${cbffkMap.ajmc}</td>
<th>案发地点:</th>
<td>${cbffkMap.asjfsdd_dzmc}</td>
</tr>
<tr>
<th>案发开始时间:</th>
<td>${cbffkMap.asjfssj_asjfskssj}</td>
<th>案发结束时间:</th>
<td>${cbffkMap.asjfssj_asjfsjssj}</td>
</tr>
<tr>
<th>立案时间:</th>
<td>${cbffkMap.larq}</td>
<th>立案单位:</th>
<td>${cbffkMap.ladw_gajgmc}</td>
</tr>
<tr>
<th>简要案情:</th>
<td colspan="3">${cbffkMap.jyaq}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="26%">机动车发动机号:</th>
<td width="24%">${cbffkMap.jdcfdjddjh}</td>
<th width="26%">机动车号牌号码:</th>
<td width="24%">${cbffkMap.jdchphm}</td>
</tr>
<tr>
<th>品牌型号:</th>
<td>${cbffkMap.ppxh}</td>
<th>物品特征描述:</th>
<td>${cbffkMap.wptzms}</td>
</tr>
<tr>
<th>布控开始时间:</th>
<td>${cbffkMap.buk_kssj}</td>
<th>布控结束时间:</th>
<td>${cbffkMap.buk_jssj}</td>
</tr>
<tr>
<th>申请日期:</th>
<td>${cbffkMap.sqrq}</td>
<th>申请人姓名:</th>
<td>${cbffkMap.sqr_xm}</td>
</tr>
<tr>
<th>布控期限:</th>
<td>${cbffkMap.buk_qx}</td>
<th>申请单位:</th>
<td>${cbffkMap.sqdw_gajgmc}</td>
</tr>
<tr>
<th>布控要求_简要情况:</th>
<td colspan="3">${cbffkMap.bkyq_jyqk}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">/W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="26%">卡口名称:</th>
<td width="24%">${cbffkMap.KKMC}</td>
<th width="26%">通过时间:</th>
<td width="24%">${cbffkMap.TGSJ}</td>
</tr>
<tr>
<th>号牌号码:</th>
<td>${cbffkMap.CPH}</td>
<th>车辆类型:</th>
<td>${cbffkMap.CLLX}</td>
</tr>
<tr>
<th>车辆品牌:</th>
<td>${cbffkMap.CLPP}</td>
<th>通过方向:</th>
<td>${cbffkMap.TGFX}</td>
</tr>
<tr>
<th>卡口地址:</th>
<td colspan="3">${cbffkMap.KKDZ}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="22%">姓名:</th>
<td width="28%">${cbffkMap.xm}</td>
<th width="22%"></th>
<td width="28%" colspan="2" rowspan="4" class="zp">
<img src="data:image/gif;base64,${cbffkMap.ryzp}"/>
</td>
</tr>
<tr>
<th>性别:</th>
<td>${cbffkMap.xb}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.zjhm}</td>
<th>出事日期</th>
<td>${cbffkMap.csrq}</td>
</tr>
<tr>
<th>出发地:</th>
<td>${cbffkMap.cfd_dwmc}</td>
<th>目的地:</th>
<td>${cbffkMap.mdd_dwmc}</td>
</tr>
<tr>
<th>起飞时间:</th>
<td>${cbffkMap.cjsj}</td>
<th>起飞机场:</th>
<td>${cbffkMap.cfd_dwmc}</td>
</tr>
<tr>
<th>降落时间:</th>
<td>${cbffkMap.ddsj}</td>
<th>降落机场:</th>
<td>${cbffkMap.mdd_dwmc}</td>
</tr>
<tr>
<th>航班号:</th>
<td>${cbffkMap.hbh}</td>
<th>座位号:</th>
<td>${cbffkMap.zwh}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="18%">姓名:</th>
<td width="32%">${cbffkMap.XM}</td>
<th width="18%"></th>
<td width="32%" colspan="2" rowspan="4" class="zp">
<img src="data:image/gif;base64,${cbffkMap.ryzp}"/>
</td>
</tr>
<tr>
<th>性别:</th>
<td>${cbffkMap.XB}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.ZJHM}</td>
<th></th>
</tr>
<tr>
<th>入住时间:</th>
<td>${cbffkMap.RZSJ}</td>
<th>退房时间:</th>
<td>${cbffkMap.TFSJ}</td>
</tr>
<tr>
<th>旅馆名:</th>
<td>${cbffkMap.LDMC}</td>
<th>旅馆祥址:</th>
<td>${cbffkMap.LDDZ}</td>
</tr>
<tr>
<th>入住房号:</th>
<td>${cbffkMap.FJH}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">姓名:</th>
<td width="26%">${cbffkMap.XM}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>性别:</th>
<td>${cbffkMap.XB}</td>
<th></th>
</tr>
<tr>
<th>身份证号码:</th>
<td>${cbffkMap.ZJHM}</td>
<th></th>
</tr>
<tr>
<th>出发地:</th>
<td>${cbffkMap.CFD}</td>
<th>出发地车站:</th>
<td>${cbffkMap.CFDCZ}</td>
</tr>
<tr>
<th>目的地:</th>
<td>${cbffkMap.MDD}</td>
<th>目的地车站:</th>
<td>${cbffkMap.MDDCZ}</td>
</tr>
<tr>
<th>出发时间:</th>
<td>${cbffkMap.CFSJ}</td>
<th>到达时间:</th>
<td>${cbffkMap.DDSJ}</td>
</tr>
<tr>
<th>车次:</th>
<td>${cbffkMap.CC}</td>
<th>车厢号:</th>
<td>${cbffkMap.CXH}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">上网人员姓名:</th>
<td width="26%">${cbffkMap.XM}</td>
<th width="26%"></th>
<td width="24%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.ZJHM}</td>
<th></th>
</tr>
<tr>
<th>网吧营业场所名称:</th>
<td>${cbffkMap.WBMC}</td>
<th>网吧营业场所地址:</th>
<td>${cbffkMap.WBDZ}</td>
</tr>
<tr>
<th>上网时间:</th>
<td>${cbffkMap.SWSJ}</td>
<th>下网时间:</th>
<td>${cbffkMap.XWSJ}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!-- 引进c标签 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">人员编号:</th>
<td width="26%">${cbffkMap.asjxgrybh}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>人员姓名:</th>
<td>${cbffkMap.xm}</td>
<th></th>
</tr>
<tr>
<th>曾用名:</th>
<td>${cbffkMap.bmch}</td>
<th></th>
</tr>
<tr>
<th>别名/绰号:</th>
<td>${cbffkMap.jyaq}</td>
<th></th>
</tr>
<tr>
<th>性别:</th>
<td>
<c:if test="${cbffkMap.xbdm == 1}">
</c:if>
<c:if test="${cbffkMap.xbdm == 2}">
</c:if>
</td>
<th>体貌特征描述:</th>
<td>${cbffkMap.tmtzms}</td>
</tr>
<tr>
<th>出生日期上限:</th>
<td>${cbffkMap.csrq_rqgzsx}</td>
<th>出生日期下限:</th>
<td>${cbffkMap.csrq_rqgzxx}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td colspan="3">${cbffkMap.hjdz_dzmc}</td>
</tr>
<tr>
<th>现居住址:</th>
<td colspan="3">${cbffkMap.xzz_dzmc}</td>
</tr>
<tr>
<th>简历:</th>
<td colspan="3">${cbffkMap.jl}</td>
</tr>
<tr>
<th>犯罪经历描述:</th>
<td colspan="3">${cbffkMap.wffzjlms}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!-- 引进c标签 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">案件名称:</th>
<td width="26%">${cbffkMap.ajmc}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>姓名:</th>
<td>${cbffkMap.xm}</td>
<th></th>
</tr>
<tr>
<th>性别:</th>
<td><c:if test="${cbffkMap.xb == 1}">
</c:if>
<c:if test="${cbffkMap.xb == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>身份证号码:</th>
<td>${cbffkMap.zjhm}</td>
<th></th>
</tr>
<tr>
<th>人员编号:</th>
<td>${cbffkMap.asjxgrybh}</td>
<th>立案时间:</th>
<td>${cbffkMap.lrsj}</td>
</tr>
<tr>
<th>立案单位:</th>
<td colspan="3">${cbffkMap.lrdw}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">持有人编号:</th>
<td width="26%">${cbffkMap.cyr_asjxgrybh}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>持有人姓名:</th>
<td>${cbffkMap.cyr_xm}</td>
<th></th>
</tr>
<tr>
<th>持有人性别:</th>
<td><c:if test="${cbffkMap.cyr_xbdm == 1}">
</c:if>
<c:if test="${cbffkMap.cyr_xbdm == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.cyr_csrq}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.cyr_zjhm}</td>
<th>联系方式:</th>
<td>${cbffkMap.cyr_lxdh}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td>${cbffkMap.cyr_hjdz_dzmc}</td>
<th>现居住地址:</th>
<td>${cbffkMap.cyr_xzz_dzmc}</td>
</tr>
<tr>
<th>涉案物品编号:</th>
<td>${cbffkMap.sawpbh}</td>
<th>信息来源:</th>
<td>${cbffkMap.xxlyms}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java"pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">所有人编号:</th>
<td width="26%">${cbffkMap.soyr_asjxgrybh}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>所有人姓名:</th>
<td>${cbffkMap.soyr_xm}</td>
<th></th>
</tr>
<tr>
<th>所有人性别:</th>
<td><c:if test="${cbffkMap.soyr_xbdm == 1}">
</c:if>
<c:if test="${cbffkMap.soyr_xbdm == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.soyr_csrq}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.soyr_zjhm}</td>
<th>联系方式:</th>
<td>${cbffkMap.soyr_lxdh}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td colspan="3">${cbffkMap.soyr_hjdz_dzmc}</td>
</tr>
<tr>
<th>现居住地址:</th>
<td colspan="3">${cbffkMap.soyr_xzz_dzmc}</td>
</tr>
<tr>
<th>登记时间:</th>
<td>${cbffkMap.djsj}</td>
<th>涉案物品编号:</th>
<td>${cbffkMap.sawpbh}</td>
</tr>
<tr>
<th>信息来源:</th>
<td colspan="3">${cbffkMap.xxlyms}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="30%">线索编号:</th>
<td width="20%">${cbffkMap.xsbh}</td>
<th width="24%">犯罪嫌疑人_人数:</th>
<td width="26%">${cbffkMap.fzxyr_rs}</td>
</tr>
<tr>
<th>线索名称:</th>
<td>${cbffkMap.xsmc}</td>
<th>个人爱好及活动:</th>
<td colspan="3">${cbffkMap.bhrfx_grahjhdtd_jyqk}</td>
</tr>
<tr>
<th>线索正文:</th>
<td colspan="3">${cbffkMap.xxzw}</td>
</tr>
<tr>
<th>跨界分析_简要情况:</th>
<td colspan="3">${cbffkMap.kjfx_jyqk}</td>
</tr>
<tr>
<th>作案特征_简要情况:</th>
<td colspan="3">${cbffkMap.cbaj_zatzbcms_jyqk}</td>
</tr>
<tr>
<th>损失物品简要情况:</th>
<td colspan="3">${cbffkMap.sswpqx_jyqk}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" t:uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib prefix="hlxt" uri="/WEB-INF/tld/hlxt.tld" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="26%">案件相关单位:</th>
<td width="24%">${cbffkMap.dwmc}</td>
<th width="26%">单位注册地址:</th>
<td width="24%">${cbffkMap.dwzcdz_dzmc}</td>
</tr>
<tr>
<th>单位办公地址:</th>
<td>${cbffkMap.dwbgdz_dzmc}</td>
<th>经营范围:</th>
<td>${cbffkMap.jyfwzy}</td>
</tr>
<tr>
<th>单位注册时间:</th>
<td>${cbffkMap.dwzc_djsj}</td>
<th>单位注册有效期日期:</th>
<td>${cbffkMap.dwzc_yxqjzrq}</td>
</tr>
<tr>
<th>法定代表人姓名:</th>
<td>${cbffkMap.fddbr_xm}</td>
<th>法定代表人证件号码:</th>
<td>${cbffkMap.fddbr_zjhm}</td>
</tr>
<tr>
<th>组织机构代码:</th>
<td>${cbffkMap.zzjgdm}</td>
<th>行业类别:</th>
<td><hlxt:ShowName codeType="CODE_HYLB" code_val="${cbffkMap.hylbdm}" /></td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="26%">案事件编号:</th>
<td width="24%">${cbffkMap.asjbh}</td>
<th width="26%">犯罪团伙编号:</th>
<td width="24%">${cbffkMap.fzthbh}</td>
</tr>
<tr>
<th>相关人员编号:</th>
<td>${cbffkMap.fzthcy_asjxgrybh}</td>
<th>团伙成员姓名:</th>
<td>${cbffkMap.fzthcy_xm}</td>
</tr>
<tr>
<th>绰号:</th>
<td>${cbffkMap.fzthcy_ch}</td>
<th>户籍地址名称:</th>
<td>${cbffkMap.fzthcy_hjdz_dzmc}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="26%">犯罪团伙编号:</th>
<td width="24%">${cbffkMap.fzthbh}</td>
<th width="26%">案事件编号:</th>
<td width="24%">${cbffkMap.asjbh}</td>
</tr>
<tr>
<th>犯罪团伙名称:</th>
<td>${cbffkMap.fzthmc}</td>
<th>团伙成员数量:</th>
<td>${cbffkMap.fzthcy_rs}</td>
</tr>
<tr>
<th>黑社会性质组织形成时间:</th>
<td>${cbffkMap.hshxzzzxcsj}</td>
</tr>
<tr>
<th>组织简介:</th>
<td colspan="3">${cbffkMap.zjjj}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">姓名:</th>
<td width="26%">${cbffkMap.xm}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>关系人性别:</th>
<td><c:if test="${cbffkMap.xb == 1}">
</c:if>
<c:if test="${cbffkMap.xb == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.csrq}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.gmsfhm}</td>
<th>联系方式:</th>
<td>${cbffkMap.lxdh}</td>
</tr>
<tr>
<th>房主姓名:</th>
<td>${cbffkMap.fzxm}</td>
<th>出租时间:</th>
<td>${cbffkMap.czsj}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">相关人员编号:</th>
<td width="26%">${cbffkMap.gxr_asjxgrybh}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>关系人姓名:</th>
<td>${cbffkMap.gxr_rmc_rmc}</td>
<th></th>
</tr>
<tr>
<th>关系人性别:</th>
<td><c:if test="${cbffkMap.gxr_xbdm == 1}">
</c:if>
<c:if test="${cbffkMap.gxr_xbdm == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.gxr_csrq_rqgzsx}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.gxr_cyzj_zjhm}</td>
<th>联系方式:</th>
<td>${cbffkMap.gxr_lxdh}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td>${cbffkMap.gxr_hjdz_dzmc}</td>
<th>现居住地址:</th>
<td>${cbffkMap.gxr_xzz_dzmc}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">案事件编号:</th>
<td width="26%">${cbffkMap.asjbh}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>相关人员编号:</th>
<td>${cbffkMap.jhr_asjxgrybh}</td>
<th>关系人姓名:</th>
<td>${cbffkMap.jhr_xm}</td>
</tr>
<tr>
<th>关系人性别:</th>
<td><c:if test="${cbffkMap.jhr_xbdm == 1}">
</c:if>
<c:if test="${cbffkMap.jhr_xbdm == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.jhr_csrq}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.jhr_zjhm}</td>
<th>联系方式:</th>
<td>${cbffkMap.jhr_lxdh}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td>${cbffkMap.jhr_hjdz_dzmc}</td>
<th>现居住地址:</th>
<td>${cbffkMap.jhr_xzz_dzmc}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">相关人员编号:</th>
<td width="26%">${cbffkMap.asjxgrybh}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>团伙编号:</th>
<td>${cbffkMap.fzthbh}</td>
</tr>
<tr>
<th>姓名:</th>
<td>${cbffkMap.xm}</td>
<th>曾用名:</th>
<td>${cbffkMap.cym}</td>
</tr>
<tr>
<th>关系人性别:</th>
<td><c:if test="${cbffkMap.xbdm == 1}">
</c:if>
<c:if test="${cbffkMap.xbdm == 2}">
</c:if></td>
<th></th>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.csrq_rqgzxx}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.cyzj_zjhm}</td>
<th>联系方式:</th>
<td>${cbffkMap.lxdh}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td>${cbffkMap.hjdz_dzmc}</td>
<th>现居住地址:</th>
<td>${cbffkMap.xzz_dzmc}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<!-- 引进c标签 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="24%">人员姓名:</th>
<td width="26%">${cbffkMap.xm}</td>
<th width="24%"></th>
<td width="26%" rowspan="4"><img src="data:image/gif;base64,${cbffkMap.ryzp}"/></td>
</tr>
<tr>
<th>性别:</th>
<td>${cbffkMap.xb}</td>
<th></th>
</tr>
<tr>
<th>证件号码:</th>
<td>${cbffkMap.zjh}</td>
<th></th>
</tr>
<tr>
<th>婚姻状况:</th>
<td>${cbffkMap.hyzk}</td>
<th></th>
</tr>
<tr>
<th>民族:</th>
<td>${cbffkMap.mz }</td>
<th>入所日期:</th>
<td>${cbffkMap.rsrq}</td>
</tr>
<tr>
<th>出生日期:</th>
<td>${cbffkMap.csrq}</td>
<th>文化程度:</th>
<td>${cbffkMap.whcd}</td>
</tr>
<tr>
<th>户籍地址:</th>
<td colspan="3">${cbffkMap.hjd}</td>
</tr>
<tr>
<th>羁押看守所:</th>
<td colspan="3">${cbffkMap.kss}</td>
</tr>
<tr>
<th>犯罪简介:</th>
<td colspan="3">${cbffkMap.fzjj}</td>
</tr>
<tr>
<th>办案单位:</th>
<td colspan="3">${cbffkMap.badw}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="/static/ajda/css/cbstyle.css">
</head>
<body>
<div class="sc_box">
<div class="c_box" style="">
<c:forEach items="${cbffkListMap}" var="cbffkMap">
<div class="form_list">
<table width="100%">
<tr>
<th width="26%">警综物品编号:</th>
<td width="24%">${cbffkMap.jzwpbh}</td>
<th width="26%">涉案物品编号:</th>
<td width="24%">${cbffkMap.sawpbh}</td>
</tr>
<tr>
<th>物品名称:</th>
<td>${cbffkMap.wpmc}</td>
<th>品牌型号CN:</th>
<td>${cbffkMap.ppxh}</td>
</tr>
<tr>
<th>物品价值(人民币元):</th>
<td>${cbffkMap.wpjzrmby}</td>
<th>物品数量:</th>
<td>${cbffkMap.wpsl}</td>
</tr>
<tr>
<th>物品重量:</th>
<td>${cbffkMap.wpzl}</td>
</tr>
<tr>
<th>物品特征描述:</th>
<td colspan="3">${cbffkMap.wptzms}</td>
</tr>
<tr>
<th>物品来源描述:</th>
<td colspan="3">${cbffkMap.wplyms}</td>
</tr>
</table>
</div>
</c:forEach>
</div>
</div>
</body>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
</html>
<!DOCTYPE html>
<html>
<%
String webapp = request.getContextPath();
%>
<%@ page language="java" import="java.util.*,java.net.*" pageEncoding="UTF-8"%>
<!-- 引进c标签 -->
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0"/>
<!-- 是否启动webapp功能,会删除默认的苹果工具栏和菜单栏。 -->
<meta name="apple-mobile-web-app-capable" content="yes" />
<!-- 这个主要是根据实际的页面设计的主体色为搭配来进行设置。 -->
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
<!-- 忽略页面中的数字识别为电话号码,email识别 -->
<meta name="format-detection"content="telephone=no, email=no" />
<!-- 启用360浏览器的极速模式(webkit) -->
<meta name="renderer" content="webkit"/>
<!-- 避免IE使用兼容模式 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
<meta name="HandheldFriendly" content="true"/>
<!-- 微软的老式浏览器 -->
<meta name="MobileOptimized" content="320"/>
<!-- uc强制竖屏 -->
<meta name="screen-orientation" content="portrait"/>
<!-- QQ强制竖屏 -->
<meta name="x5-orientation" content="portrait"/>
<!-- UC强制全屏 -->
<meta name="full-screen" content="yes"/>
<!-- QQ强制全屏 -->
<meta name="x5-fullscreen" content="true"/>
<!-- UC应用模式 -->
<meta name="browsermode" content="application"/>
<!-- QQ应用模式 -->
<meta name="x5-page-mode" content="app"/>
<!-- windows phone 点击无高光 -->
<title>信息服务</title>
<link rel="stylesheet" href="<%=webapp%>/static/ajda/css/bootstrap.min.css" media="all"/>
<link rel="stylesheet" href="<%=webapp%>/static/ajda/css/base.css" media="all"/>
<link rel="stylesheet" href="<%=webapp%>/static/ajda/css/informationservice.css" media="all"/>
</head>
<body>
<div class="xxnr_box" >
<c:if test="${tbFwXxdl != null}">
<div class="mess-wrap" >
<h4 class="xxnr_title">
<span class="fangk"></span>
<span class="zbt">${tbFwXxdl.xxbt}</span>
<span class="lx">${yjName} -> ${ejName} -> ${sjName}</span>
</h4>
<div class="asjbh_wrap">消息类型:<span class="asjbh">${sjName}</span></div>
<p class="xxnr" style="min-height:160px!important;" data-xxbh="${tbFwXxdl.xxbh}">${tbFwXxdl.xxnr}</p>
<p class="fsdw">
<span>发送人:${tbFwXxdl.fsrName}</span>
<span>发送时间:<fmt:formatDate value="${tbFwXxdl.fssj}" pattern="yyyy-MM-dd HH:mm:ss" /></span>
</p>
</div>
</c:if>
<c:if test="${tbFwXxdl == null}">
数据为空
</c:if>
</div>
</body>
<script type="text/javascript" src="<%=webapp%>/static/ajda/js/jquery-1.11.1.min.js"></script>
<script type="text/javascript" src="<%=webapp%>/static/ajda/js/informationservice.js"></script>
<script type="text/javascript" src="<%=webapp%>/static/ajda/layer/layer.js"></script>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript" src="/static/common/js/ajax.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
<script type="text/javascript">
function toDetail(sjlx,num,obj){
if(num > 0){
var xxbh = $(obj).parent().data("xxbh");
var url ="getCbffkXx?sjlx="+ sjlx+"&xxbh="+xxbh;
top.layer.open({
type: 2,
title: '采比反结果查看',
maxmin: false,
scrollbar: false,
moveOut: true,
closeBtn: 2,
shadeClose: true, //点击遮罩关闭层
area: ['850px', '600px'],
tipsMore: true,
content: url
});
}else{
return;
}
}
</script>
</html>
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="ie-stand">
<title>消息中心</title>
<link href="/static/news/images/new2.png" rel="shortcut icon">
<link rel="stylesheet" type="text/css" href="/static/news/css/news.css">
<script type="text/javascript" src="/static/news/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="/static/news/js/news.js"></script>
<script type="text/javascript" src="/static/news/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="/static/news/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/static/asjxxzb/js/theme/default/layer.css">
<!--<script type="text/javascript" src="js/prefixfree.min.js"></script>-->
<!--[if lt IE 8]>
<script src="/static/news/js/css3-mediaqueries.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="/static/easyui-window/css/easyui.css">
<link rel="stylesheet" type="text/css" href="/static/easyui-window/css/icon.css">
<script type="text/javascript" src="/static/easyui-window/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/easyui-window/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/static/asjxxzb/js/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="/static/ajda/layer/layer.js"></script>
<style type="text/css">
a {
text-decoration: none;
color: #333;
}
a:hover {
text-decoration: none;
color: #333;
}
.c_table tbody td:nth-child(1) {
cursor: pointer;
padding-left: 10px;
*padding-left: 9px;
}
.c_table > tbody td:first-child {
cursor: pointer;
padding-left: 28px;
*padding-left: 27px;
background: url(/static/news/images/icon1.png) no-repeat 10px 14px;
}
/*浏览器*/
.IE8-maxWidth600 {
max-width: 600px;
margin: 50px auto;
}
/*
</style>
</head>
<body>
<div class="wrap">
<!--左侧菜单-->
<div id="menu" class="left_m">
<!--1.标题消息中心-->
<div class="title">消息中心</div>
<!--2.菜单列表-->
<ul id="list">
<li id="dropdown">
<a class="link">
<span class="develop1"></span>站内消息</a>
</li>
<ul class="ComboBox" style="display:block;">
<li id="menu_1" value="100"><a class="link">最新消息30天
<c:if test="${zxxxWds > 0 }">
<u>
${zxxxWds}
</u>
</c:if>
</a></li>
<c:forEach items="${YjXxlxList}" var="items" varStatus="status">
<li id="${items.code}" value="${status.index}">
<a>${items.name}
<c:if test="${items.xxdlNum > 0 }">
<u>
${items.xxdlNum}
</u> </c:if>
</a></li>
</c:forEach>
</ul>
<%--<li id="menu_7" value="101"><a class="link">消息订阅</a></li>--%>
</ul>
<!--3.定位点击图标-->
<div id="click1" class="clo"><img src="/static/news/images/click.png"/></div>
</div>
<!--3.定位点击图标-->
<div id="click2" class="close1" style="display:none"><img src="/static/news/images/click2.png"/></div>
<!--右侧内容-->
<div id="content" class="right_c">
<div id="content_news">
<!--刷新成功显示 start-->
<!--1.最新消息30天-->
<div id="100">
<div class="c_title">
<span class="line"></span>
<span>最新消息30天</span>
</div>
</div>
<c:forEach items="${YjXxlxList}" var="items" varStatus="status">
<!--2.收藏提醒-->
<div id="${status.index}" style="">
<!--1.标题-->
<div class="c_title">
<span class="line"></span>
<span>${items.name}</span>
</div>
<!--2.具体内容-->
<div class="measures" id="content_1">
<ul id="tab">
<c:forEach items="${RjXxlxList}" var="ejitems">
<c:if test="${items.code == ejitems.pid}">
<li id="${ejitems.code}">
<a class="common current" onclick="getZxXx('${ejitems.code}')">${ejitems.name}
<c:if test="${ejitems.xxdlNum > 0 }">
<u>
${ejitems.xxdlNum}
</u>
</c:if></a>
<ul class="tab_list" style="display:none;">
<c:forEach items="${SjXxlxList}" var="sjitems">
<c:if test="${ejitems.code == sjitems.pid}">
<li id="${sjitems.code}" class="test">
${sjitems.name}
<c:if test="${sjitems.xxdlNum > 0 }">
<u>
${sjitems.xxdlNum}
</u>
</c:if>
</li>
</c:if>
</c:forEach>
</ul>
</li>
</c:if>
</c:forEach>
</ul>
</div>
</div>
</c:forEach>
</div>
<div class="tr"><a onclick="shanchu()" class="btn_a btn_empty">删除消息</a></div>
<!--最新主题 end-->
<table id="newsDetails" class="easyui-datagrid" width="100%">
</table>
</div>
</div>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript" src="/static/common/js/ajax.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
<script type="text/javascript">
$(function () {
$("#tab1").click();
$("#menu_1").click();
$(".ComboBox").click(function () {
var id = $(this).val();
$("#" + id).find("#tab1").click();
});
var height1 = document.body.clientHeight - 360;
$("#t_content1").css("height", height1);
$("#t1").click();
$("#zxzt").click();
});
getZxXx()
function getZxXx(obj) {
var url = "/getNewXxdl";
var table_title = [
{field: 'cz', title: '操作', checkbox: true, align: 'center'},
{field: 'xxid', title: '',align: 'center',hidden:true,formatter:function (val, row, index) {
return "<span id='Sc_"+row.xxid+"' ></span>"
}},
{
field: 'xxnr', title: '消息内容', width: 320, align: 'center', formatter: function (val, row, index) {
var xxnr = row.xxnr;
xxnr = '<a style=" cursor:pointer;" title="点击查看详情" onclick=checkZxXxDetail("' + row.xxid + '","' + row.sfydPdbz + '","' + row.xxlx + '")>' + xxnr + '</a>';
return xxnr;
}
},
{field: 'xxbt', title: '消息标题', width: 200, align: 'center'},
{field: 'fsrName', title: '发送人姓名', width: 160, align: 'center'},
{field: 'xxname', title: '类别', width: 120, align: 'center'},
{field: 'fssj', title: '发送时间', width: 99, align: 'center'},
{
field: 'sfydPdbz', title: '阅读状态', width: 100, align: 'center', formatter: function (val, row, index) {
var sfydPdbz = row.sfydPdbz;
var xxid = row.xxid;
if (sfydPdbz == '1') {
return "<span style='color: #5FB878' id='sfyd-" + xxid + "'>已读</span>";
} else {
return "<span style='color:#f00' id='sfyd-" + xxid + "'>未读</span>";
}
}
}
];
if (obj == 'menu_1') {
obj = ''
}
var parameters = {"xxlx": obj}
$('#newsDetails').datagrid({
idField:"xxid",
url: url,
columns: [table_title],
striped: true,
queryParams: parameters,
singleSelect: false,
nowrap: false, //设置是否换行,false换行,true不换行
fitColumns: true,
scrollbarSize: 0,
selectOnCheck: true,
checkOnSelect: true,
fit: false,
pagination: true,
pageSize: 10,
pageList: [5, 10], //rows
pageNumber: 1,
loadFilter: function (data) {
return data;
},
//加载完毕后获取所有的checkbox遍历
onLoadSuccess: function(data){
},
onClickRow: function (rowIndex, rowData) {
$(this).datagrid('unselectRow', rowIndex);
},
});
}
function checkZxXxDetail(xxid, sfydPdbz, xxlx) {
if (sfydPdbz == "0") {
if ($("#sfyd-" + xxid).text() != null && $("#sfyd-" + xxid).text() == '未读') {
$("#sfyd-" + xxid).text("已读")
$("#sfyd-" + xxid).css("color"," #5FB878");
//最新消息 30天未读数目
var menu = $("#menu_1 a u").text();
if (menu == 1){
$("#menu_1 a").empty();
}else {
$("#menu_1 a u").text(menu - 1)
}
var yjId = xxlx.substring(0, 2) + "0000";
var ejId = xxlx.substring(0, 4) + "00";
var yjNum = $("#" + yjId + " a u").text();
if (yjNum == 1){
$("#" + yjId + " a").empty();
}else {
$("#" + yjId + " a u").text(yjNum - 1)
}
var ejNum = $("#" + ejId + " a u").text();
if (yjNum == 1){
$("#" + ejId + " a").empty();
}else {
$("#" + ejId + " a u").text(ejNum - 1)
}
var sjNum = $("#" + xxlx + " u").text();
if (yjNum == 1){
$("#" + xxlx + "").empty();
}else {
$("#" + xxlx + " u").text(sjNum - 1)
}
}
}
var url = "/checkZxXxdlYdNew?xxid=" + xxid;
layer.open({
type: 2,
title: '信息详情',
scrollbar: false,
maxmin: false,
closeBtn: 2,
shadeClose: true, //点击遮罩关闭层
area: ['650px', '450px'],
tipsMore: true,
moveOut: true,
content: url
});
}
function closeDetail() {
layer.closeAll()
}
//批量删除
function shanchu() {
// 得到选中的行
//var selRow = otGrid.datagrid("getSelected");//返回选中一行 这个是注释过的 就是取一个
var selRow = $('#newsDetails').datagrid("getSelections");//返回选中多行
if(selRow.length==0){
layer.alert("请至少选择一行数据!");
return false;
}
var ids=[];
for (var i = 0; i < selRow.length; i++) {
//获取自定义table 的中的checkbox值
var id=selRow[i].xxid;
//获取阅读状态
var scVlue = $("#Sc_"+id+"").parent().parent().parent().children("td").eq(7).children().text();
if (scVlue == '未读'){
layer.alert("未读消息不能删除")
return ;
}
ids.push(id); //然后把单个id循环放到ids的数组中
}
layer.confirm("确定要删除选中的消息吗?",{btn: ['确定', '取消'], title: "提示"},function () {
$.ajax({
url:"/deleteNews",
data:{"array[]" : ids},
async: false,
success:function(data){
ids = [];
if(data == 'success'){
layer.alert("删除成功"); //这个是后台返回过来的msg值,提醒
// 检修任务grid 执行load
$('#newsDetails').datagrid("load"); //重新加载
$("#newsDetails").datagrid("clearSelections");
}else {
layer.alert("删除失败"); //这个是后台返回过来的msg值,提醒
}
}
});
});
}
</script>
</body>
</html>
<!DOCTYPE html>
<%@ page language="java" pageEncoding="utf-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="renderer" content="ie-stand">
<title>消息中心</title>
<link href="/static/news/images/new2.png" rel="shortcut icon">
<link rel="stylesheet" type="text/css" href="/static/news/css/news.css">
<script type="text/javascript" src="/static/news/js/jquery-1.11.3.js"></script>
<script type="text/javascript" src="/static/news/js/news.js"></script>
<script type="text/javascript" src="/static/news/js/bootstrap.min.js"></script>
<link rel="stylesheet" type="text/css" href="/static/news/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="/static/asjxxzb/js/theme/default/layer.css">
<!--<script type="text/javascript" src="js/prefixfree.min.js"></script>-->
<!--[if lt IE 8]>
<script src="/static/news/js/css3-mediaqueries.js"></script>
<![endif]-->
<link rel="stylesheet" type="text/css" href="/static/easyui-window/css/easyui.css">
<link rel="stylesheet" type="text/css" href="/static/easyui-window/css/icon.css">
<script type="text/javascript" src="/static/easyui-window/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/easyui-window/js/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/static/asjxxzb/js/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="/static/ajda/layer/layer.js"></script>
<style type="text/css">
a {
text-decoration: none;
color: #333;
}
a:hover {
text-decoration: none;
color: #333;
}
.c_table tbody td:nth-child(1) {
cursor: pointer;
padding-left: 10px;
*padding-left: 9px;
}
.c_table > tbody td:first-child {
cursor: pointer;
padding-left: 28px;
*padding-left: 27px;
background: url(/static/news/images/icon1.png) no-repeat 10px 14px;
}
/*浏览器*/
.IE8-maxWidth600 {
max-width: 600px;
margin: 50px auto;
}
/*
</style>
</head>
<body>
<div class="wrap">
<!--左侧菜单-->
<div id="menu" class="left_m">
<!--1.标题消息中心-->
<div class="title">消息中心</div>
<!--2.菜单列表-->
<ul id="list">
<li id="dropdown">
<a class="link">
<span class="develop1"></span>站内消息</a>
</li>
<ul class="ComboBox" style="display:block;">
<li id="menu_1" value="100"><a class="link">最新消息30天
<c:if test="${zxxxWds > 0 }">
<u>
${zxxxWds}
</u>
</c:if>
</a></li>
<c:forEach items="${YjXxlxList}" var="items" varStatus="status">
<li id="${items.code}" value="${status.index}">
<a>${items.name}
<c:if test="${items.xxdlNum > 0 }">
<u>
${items.xxdlNum}
</u> </c:if>
</a></li>
</c:forEach>
</ul>
<%--<li id="menu_7" value="101"><a class="link">消息订阅</a></li>--%>
</ul>
<!--3.定位点击图标-->
<div id="click1" class="clo"><img src="/static/news/images/click.png"/></div>
</div>
<!--3.定位点击图标-->
<div id="click2" class="close1" style="display:none"><img src="/static/news/images/click2.png"/></div>
<!--右侧内容-->
<div id="content" class="right_c">
<div id="content_news">
<!--刷新成功显示 start-->
<!--1.最新消息30天-->
<div id="100">
<div class="c_title">
<span class="line"></span>
<span>最新消息30天</span>
</div>
</div>
<c:forEach items="${YjXxlxList}" var="items" varStatus="status">
<!--2.收藏提醒-->
<div id="${status.index}" style="">
<!--1.标题-->
<div class="c_title">
<span class="line"></span>
<span>${items.name}</span>
</div>
<!--2.具体内容-->
<div class="measures" id="content_1">
<ul id="tab">
<c:forEach items="${RjXxlxList}" var="ejitems">
<c:if test="${items.code == ejitems.pid}">
<li id="${ejitems.code}">
<a class="common current" onclick="getZxXx('${ejitems.code}')">${ejitems.name}
<c:if test="${ejitems.xxdlNum > 0 }">
<u>
${ejitems.xxdlNum}
</u>
</c:if></a>
<ul class="tab_list" style="display:none;">
<c:forEach items="${SjXxlxList}" var="sjitems">
<c:if test="${ejitems.code == sjitems.pid}">
<li id="${sjitems.code}" class="test">
${sjitems.name}
<c:if test="${sjitems.xxdlNum > 0 }">
<u>
${sjitems.xxdlNum}
</u>
</c:if>
</li>
</c:if>
</c:forEach>
</ul>
</li>
</c:if>
</c:forEach>
</ul>
</div>
</div>
</c:forEach>
</div>
<div class="tr"><a onclick="shanchu()" class="btn_a btn_empty">删除消息</a></div>
<!--最新主题 end-->
<table id="newsDetails" class="easyui-datagrid" width="100%">
</table>
</div>
</div>
<script type="text/javascript" src="/static/common/js/watermark.js"></script>
<script type="text/javascript" src="/static/common/js/ajax.js"></script>
<script type="text/javascript">
$(function() {
getSy();
});
/**
* 获取登录信息水印
*/
function getSy() {
var sy="${User.trueName}"+" "+"${User.identitycard}"+" "+"${User.unitname}"
+" "+"${User.policemanid}";
watermark({ watermark_txt:sy});
}
</script>
<script type="text/javascript">
$(function () {
$("#tab1").click();
$("#menu_1").click();
$(".ComboBox").click(function () {
var id = $(this).val();
$("#" + id).find("#tab1").click();
});
var height1 = document.body.clientHeight - 360;
$("#t_content1").css("height", height1);
$("#t1").click();
$("#zxzt").click();
});
getZxXx()
function getZxXx(obj) {
var url = "/getNewXxdl";
var table_title = [
{field: 'cz', title: '操作', checkbox: true, align: 'center'},
{field: 'xxid', title: '',align: 'center',hidden:true,formatter:function (val, row, index) {
return "<span id='Sc_"+row.xxid+"' ></span>"
}},
{
field: 'xxnr', title: '消息内容', width: 320, align: 'center', formatter: function (val, row, index) {
var xxnr = row.xxnr;
xxnr = '<a style=" cursor:pointer;" title="点击查看详情" onclick=checkZxXxDetail("' + row.xxid + '","' + row.sfydPdbz + '","' + row.xxlx + '")>' + xxnr + '</a>';
return xxnr;
}
},
{field: 'xxbt', title: '消息标题', width: 200, align: 'center'},
{field: 'fsrName', title: '发送人姓名', width: 160, align: 'center'},
{field: 'xxname', title: '类别', width: 120, align: 'center'},
{field: 'fssj', title: '发送时间', width: 99, align: 'center'},
{
field: 'sfydPdbz', title: '阅读状态', width: 100, align: 'center', formatter: function (val, row, index) {
var sfydPdbz = row.sfydPdbz;
var xxid = row.xxid;
if (sfydPdbz == '1') {
return "<span style='color: #5FB878' id='sfyd-" + xxid + "'>已读</span>";
} else {
return "<span style='color:#f00' id='sfyd-" + xxid + "'>未读</span>";
}
}
}
];
if (obj == 'menu_1') {
obj = ''
}
var parameters = {"xxlx": obj}
$('#newsDetails').datagrid({
idField:"xxid",
url: url,
columns: [table_title],
striped: true,
queryParams: parameters,
singleSelect: false,
nowrap: false, //设置是否换行,false换行,true不换行
fitColumns: true,
scrollbarSize: 0,
selectOnCheck: true,
checkOnSelect: true,
fit: false,
pagination: true,
pageSize: 10,
pageList: [5, 10], //rows
pageNumber: 1,
loadFilter: function (data) {
return data;
},
//加载完毕后获取所有的checkbox遍历
onLoadSuccess: function(data){
},
onClickRow: function (rowIndex, rowData) {
$(this).datagrid('unselectRow', rowIndex);
},
});
}
function checkZxXxDetail(xxid, sfydPdbz, xxlx) {
if (sfydPdbz == "0") {
if ($("#sfyd-" + xxid).text() != null && $("#sfyd-" + xxid).text() == '未读') {
$("#sfyd-" + xxid).text("已读")
$("#sfyd-" + xxid).css("color"," #5FB878");
//最新消息 30天未读数目
var menu = $("#menu_1 a u").text();
if (menu == 1){
$("#menu_1 a").empty();
}else {
$("#menu_1 a u").text(menu - 1)
}
var yjId = xxlx.substring(0, 2) + "0000";
var ejId = xxlx.substring(0, 4) + "00";
var yjNum = $("#" + yjId + " a u").text();
if (yjNum == 1){
$("#" + yjId + " a").empty();
}else {
$("#" + yjId + " a u").text(yjNum - 1)
}
var ejNum = $("#" + ejId + " a u").text();
if (yjNum == 1){
$("#" + ejId + " a").empty();
}else {
$("#" + ejId + " a u").text(ejNum - 1)
}
var sjNum = $("#" + xxlx + " u").text();
if (yjNum == 1){
$("#" + xxlx + "").empty();
}else {
$("#" + xxlx + " u").text(sjNum - 1)
}
}
}
var url = "/checkZxXxdlYdNew?xxid=" + xxid;
layer.open({
type: 2,
title: '信息详情',
scrollbar: false,
maxmin: false,
closeBtn: 2,
shadeClose: true, //点击遮罩关闭层
area: ['650px', '450px'],
tipsMore: true,
moveOut: true,
content: url
});
}
function closeDetail() {
layer.closeAll()
}
//批量删除
function shanchu() {
// 得到选中的行
//var selRow = otGrid.datagrid("getSelected");//返回选中一行 这个是注释过的 就是取一个
var selRow = $('#newsDetails').datagrid("getSelections");//返回选中多行
if(selRow.length==0){
layer.alert("请至少选择一行数据!");
return false;
}
var ids=[];
for (var i = 0; i < selRow.length; i++) {
//获取自定义table 的中的checkbox值
var id=selRow[i].xxid;
//获取阅读状态
var scVlue = $("#Sc_"+id+"").parent().parent().parent().children("td").eq(7).children().text();
if (scVlue == '未读'){
layer.alert("未读消息不能删除")
return ;
}
ids.push(id); //然后把单个id循环放到ids的数组中
}
layer.confirm("确定要删除选中的消息吗?",{btn: ['确定', '取消'], title: "提示"},function () {
$.ajax({
url:"/deleteNews",
data:{"array[]" : ids},
async: false,
success:function(data){
ids = [];
if(data == 'success'){
layer.alert("删除成功"); //这个是后台返回过来的msg值,提醒
// 检修任务grid 执行load
$('#newsDetails').datagrid("load"); //重新加载
$("#newsDetails").datagrid("clearSelections");
}else {
layer.alert("删除失败"); //这个是后台返回过来的msg值,提醒
}
}
});
});
}
</script>
</body>
</html>
......@@ -438,19 +438,23 @@
function editData(){//初始化数据
debugger;
var saveflag = $("#saveflag").val();
var zjleftStr64 = $("#r_zjLeftBase64").val();
var zjrightStr64 = $("#r_zjRightBase64").val();
if(saveflag=="1"){
$.messager.alert( '提示',"保存成功!");
$.ajax({
url:"/doRyxxToZj?rybh="+$("#rybh").val(),
type:"POST",
success:function(data){
if(data==1){
$.messager.alert( '提示',"数据推送足迹系统成功!");
}else{
$.messager.alert( '提示',"数据推送足迹系统失败!");
if((zjleftStr64!=null&&zjleftStr64!="")||(zjrightStr64!=null&&zjrightStr64!="")){
$.ajax({
url:"/doRyxxToZj?rybh="+$("#rybh").val(),
type:"POST",
success:function(data){
if(data==1){
$.messager.alert( '提示',"数据推送足迹系统成功!");
}else{
$.messager.alert( '提示',"数据推送足迹系统失败!");
}
}
}
});
});
}
}
if(($("#cyzjdmStr").val()=="111"||$("#cyzjdmStr").val()=="")&&$("#zjhm").val()!=""&&$("#gmsfhm").val()==""){
$("#gmsfhm").val($("#zjhm").val());
......@@ -1764,14 +1768,44 @@
obj["cjr_gmsfhm"]="372925199302023332";
var json = JSON.stringify(obj);//JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串。
//alert(json);
getIrisPage(800,460, json, "http://124.192.224.46:9999/irisck/getIrisPage");
//getIrisPage(800,460, json, "http://124.192.224.46:9999/irisck/getIrisPage");
getIrisPage(800,460, json, "http://74.0.6.28 /irisck/getIrisPage");//海南
*/
window.open("/toHmCj?rybh="+$("#rybh").val()+"&xm="+$("#xm").val()+"&gmsfhm="+$("#gmsfhm").val()+"&sbcs="+ifhm);
//jAlert("功能维护升级中,请耐心等待!","提示");
}
window.onmessage=function (e) {
e=e||event;
alert("足迹采集返回值:"+e.data)
alert("返回值:"+e.data)
$("#hmqsqkRight").val("");
$("#hmqsqkLeft").val("");
$("#sbxh").val("");
$.ajax({
url:"/saveHmSjXxHb",
data:$('#hmForm').serialize(),
async:false,
type:"post",
dataType:"json",
success:function(data){
layer.closeAll();
var code = data.code
if(code == "0"){
layer.alert(data.msg, {
skin: 'layui-layer-molv' //样式类名
,closeBtn: 0
}, function(){
window.close()
});
} else {
layer.alert(data.msg);
}
},
error:function(e){
//console.log("error="+JSON.stringify(e));
}
});
//此处编写自己的处理代码
}
......@@ -2433,6 +2467,17 @@
-->
</ul>
</div>
<form action="" id="hmForm" name="frminput" method="post" enctype="multipart/form-data">
<input type="hidden" id="hmrybh" name="rybh" th:value="${ryxx.rybh}"/>
<input type="hidden" id="hmxm" name="xm" th:value="${ryxx.xm}"/>
<input type="hidden" id="hmgmsfhm" name="gmsfhm" th:value="${ryxx.gmsfhm}"/>
<input type="hidden" id="hmywdm" name="hmywdm" value="">
<input type="hidden" id="hmsjLeft" name="hmsjLeft" value="">
<input type="hidden" id="hmsjRight" name="hmsjRight" value="">
<input type="hidden" id="hmqsqkLeft" name="hmqsqkLeft" value="">
<input type="hidden" id="hmqsqkRight" name="hmqsqkRight" value="">
<input type="hidden" id="sbxh" name="sbxh" value="">
</form>
<!-- 指纹客户端采集限制start -->
<form name="sysClientLimitForm" action="" method="get">
<input type="hidden" id="sysclientip" name="sysclientip" value="${applicationScope.sysClientIp}" />
......
......@@ -220,10 +220,10 @@
pageList : [10,20,50,100,200], //rows
pageNumber : 1,
loadFilter: function(data){
if(data!=null&&data.total>0){
window.opener.document.getElementById("swifcj").src="/static/rygl/img/yes.png";
window.opener.document.getElementById("swzt").value = "1";
}
//if(data!=null&&data.total>0){
// window.opener.document.getElementById("swifcj").src="/static/rygl/img/yes.png";
// window.opener.document.getElementById("swzt").value = "1";
//}
return data;
}
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment