签到分为发布与签到两个部分
发布需要由飞讯注册用户发布
发布的实体的属性
private Integer Id;
public String userid;
public String signLeader;
public String signEvent;
public String signWord;
public String createTime;
public String expire;
签到不需要是飞讯用户,而是扫码签到,需要输入自己的名字进行数据录入
签到实体的属性
private Integer id;
private int signId;
private String name;
private String word;
private String signTime;
前端数据展示部分需要展示:总发布数、总签到人数.
public int[] getSignNum(){//0-launch,1-do
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select count(*) count from signlaunchn" +
"union alln" +
"select count(*) count from signdo";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
rs.next();
int nums[]={0,0};
nums[0]=rs.getInt("count");
rs.next();
nums[1]=rs.getInt("count");
return nums;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
需要最近七天发布数与签到人数
//发布签到数七个长度的一维数组,0-最近第一天,6-最近第七天
public int[] GetSevenDaysSignLaunchNumber(){
Timestamp nowTime=new Timestamp(System.currentTimeMillis());
long sevenDaysAgo= nowTime.getTime()-7*24*62*62*1000;
Timestamp sevenDaysAgoTime=new Timestamp(sevenDaysAgo);
String time=(sevenDaysAgoTime.getYear()+1900)+"-"+(sevenDaysAgoTime.getMonth()+1)+"-"+(sevenDaysAgoTime.getDate());
Connection c=null;
try {
c=DBConnection.getConnection();
PreparedStatement ps = null;
String sql = "select * from signlaunchn" +
"where createTime>'"+time+"'";
ps = c.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
int[] msgNums= {0,0,0,0,0,0,0};
while (rs.next()){
Timestamp curTime=Timestamp.valueOf(rs.getString("createTime"));
long timeMinus=nowTime.getTime()-curTime.getTime();
if(timeMinus>0&&timeMinus<1*24*62*62*1000){
msgNums[0]++;
}else if(timeMinus<2*24*62*62*1000){
msgNums[1]++;
}else if(timeMinus<3*24*62*62*1000){
msgNums[2]++;
}else if(timeMinus<4*24*62*62*1000){
msgNums[3]++;
}else if(timeMinus<5*24*62*62*1000){
msgNums[4]++;
}else if(timeMinus<6*24*62*62*1000){
msgNums[5]++;
}else if(timeMinus<7*24*62*62*1000){
msgNums[6]++;
}
}
return msgNums;
} catch (Exception e) {
e.printStackTrace();
} finally {
DBConnection.closeConnection(c);
}
return null;
}
//签到人数七个长度的一维数组,0-最近第一天,6-最近第七天
public int[] GetSevenDaysSignDoNumber(){
Timestamp nowTime=new Timestamp(System.currentTimeMillis());
long sevenDaysAgo= nowTime.getTime()-7*24*62*62*1000;
Timestamp sevenDaysAgoTime=new Timestamp(sevenDaysAgo);
String time=(sevenDaysAgoTime.getYear()+1900)+"-"+(sevenDaysAgoTime.getMonth()+1)+"-"+(sevenDaysAgoTime.getDate());
Connection c=null;
try {
c=DBConnection.getConnection();
PreparedStatement ps = null;
String sql = "select * from signDon" +
"where signTime>'"+time+"'";
ps = c.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
int[] msgNums= {0,0,0,0,0,0,0};
while (rs.next()){
Timestamp curTime=Timestamp.valueOf(rs.getString("signTime"));
long timeMinus=nowTime.getTime()-curTime.getTime();
if(timeMinus>0&&timeMinus<1*24*62*62*1000){
msgNums[0]++;
}else if(timeMinus<2*24*62*62*1000){
msgNums[1]++;
}else if(timeMinus<3*24*62*62*1000){
msgNums[2]++;
}else if(timeMinus<4*24*62*62*1000){
msgNums[3]++;
}else if(timeMinus<5*24*62*62*1000){
msgNums[4]++;
}else if(timeMinus<6*24*62*62*1000){
msgNums[5]++;
}else if(timeMinus<7*24*62*62*1000){
msgNums[6]++;
}
}
return msgNums;
} catch (Exception e) {
e.printStackTrace();
} finally {
DBConnection.closeConnection(c);
}
return null;
}
传送到前端
int signNums[]=signDao.getSignNum();
int recentSignNums[]=signDao.GetSevenDaysSignLaunchNumber();
int recentSignDoNums[]=signDao.GetSevenDaysSignDoNumber();
request.setAttribute("signNums",signNums);
request.setAttribute("recentSignNums",recentSignNums);
request.setAttribute("recentSignDoNums",recentSignDoNums);
Timestamp nowTime=new Timestamp(System.currentTimeMillis());
int days[]={0,0,0,0,0,0,0};//日期
for(int i=0;i<7;i++){
days[i]=new Timestamp(nowTime.getTime()-i*24*60*60*1000).getDate();
}
request.setAttribute("days",days);
request.getRequestDispatcher("/main/SignBrief.jsp").forward(request, response);
前端的数据展示
共发布了${signNums[0]}个签到
共签到了${signNums[1]}人
效果
签到发布的数据列表查询,使用List存储Sign对象
public ListgetSignList(){ Connection c=null; List list =new ArrayList<>(); try{ c=DBConnection.getConnection(); String sql= ""; sql="select * from signlaunch"; PreparedStatement pst=c.prepareStatement(sql); ResultSet rs=pst.executeQuery(); while(rs.next()){ Sign sign=new Sign(); sign.setId(rs.getInt("signId")); sign.setUserid(rs.getString("userid")); sign.setSignLeader(rs.getString("signLeader")); sign.setSignEvent(rs.getString("signEvent")); sign.setSignWord(rs.getString("signWord")); sign.setCreateTime(rs.getTimestamp("createTime").toString()); sign.setExpire(rs.getString("expire")); list.add(sign); } return list; }catch(Exception e){ e.printStackTrace(); return null; }finally{ DBConnection.closeConnection(c); } }
传输到前端
ListsignList=signDao.getSignList(); request.setAttribute("signList",signList); request.getRequestDispatcher("/main/SignList.jsp").forward(request, response);
前端的数据呈现
| 发起人 | 领导人 | 事件 | 关键词 | 创建时间 | expire | 操作 |
|---|---|---|---|---|---|---|
| ${sign.userid} | ${sign.signLeader} | ${sign.signEvent} | ${sign.signWord} | ${sign.createTime} | ${sign.expire} |
前端对表格内容进行搜索
function find(){
var find=document.getElementsByName("type");
var data=document.getElementById("demoReload").value;
var list=-1;
for (var i=0;i
后端接收到信息,调用对应的查询方法
String find=request.getParameter("find");
String data=request.getParameter("data");
System.out.println(find);
System.out.println(data);
switch (find){
case "user":slist= dao.getSignByUserid(data);break;
case "leader":slist=dao.getSignByLeader(data);break;
case "event":slist=dao.getSignByEvent(data);break;
default:break;
}
public List getSignByUserid(String userid){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signlaunch where userid like'%"+userid+"%'";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
Sign sign=new Sign();
sign.setId(rs.getInt("signId"));
sign.setUserid(rs.getString("userid"));
sign.setSignLeader(rs.getString("signLeader"));
sign.setSignWord(rs.getString("signWord"));
sign.setSignEvent(rs.getString("signEvent"));
sign.setCreateTime(rs.getTimestamp("createTime").toString());
sign.setExpire(rs.getString("expire"));
list.add(sign);
}
return list;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
public List getSignByLeader(String leader){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signlaunch where signLeader like'%"+leader+"%'";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
Sign sign=new Sign();
sign.setId(rs.getInt("signId"));
sign.setUserid(rs.getString("userid"));
sign.setSignLeader(rs.getString("signLeader"));
sign.setSignWord(rs.getString("signWord"));
sign.setSignEvent(rs.getString("signEvent"));
sign.setCreateTime(rs.getTimestamp("createTime").toString());
sign.setExpire(rs.getString("expire"));
list.add(sign);
}
return list;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
public List getSignByEvent(String event){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signlaunch where signEvent like'%"+event+"%'";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
Sign sign=new Sign();
sign.setId(rs.getInt("signId"));
sign.setUserid(rs.getString("userid"));
sign.setSignLeader(rs.getString("signLeader"));
sign.setSignWord(rs.getString("signWord"));
sign.setSignEvent(rs.getString("signEvent"));
sign.setCreateTime(rs.getTimestamp("createTime").toString());
sign.setExpire(rs.getString("expire"));
list.add(sign);
}
return list;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
之后重定向到原界面
request.getRequestDispatcher("/main/SignList.jsp").forward(request, response);
搜索前
搜索后
对某个签到进行详细的查看,点击查看进入,需要展现签到主题,所有的签到人,签到时间,以及最早和最近的签到人
获取所有签到人列表,使用List存储SignDo对象
public List getSignDoList(String signId){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signdo where signId='"+signId+"'";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
SignDo signDo=new SignDo();
signDo.setSignId(rs.getInt("SignDoId"));
signDo.setName(rs.getString("name"));
signDo.setWord(rs.getString("signWord"));
signDo.setSignTime(rs.getTimestamp("signTime").toString());
list.add(signDo);
}
return list;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
获取最早与最近签到信息
public String[] GetRecentSignDoMsg(String signId){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signdo where signId='"+signId+"' order by signTime ";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
rs.next();
String [] data={"","","",""};
data[0]=rs.getString("name");//第一个签到人
data[1]=rs.getTimestamp("signTime").toString();//第一个签到时间
while(rs.next()){
data[2]=rs.getString("name");//最后一个签到人
data[3]=rs.getTimestamp("signTime").toString();//最后一个签到时间
}
return data;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
前端传查看的签到id到后端,后端查询到对应Sign
public List getSignById(int id){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signlaunch where signId='"+id+"'";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
Sign sign=new Sign();
sign.setId(rs.getInt("signId"));
sign.setUserid(rs.getString("userid"));
sign.setSignLeader(rs.getString("signLeader"));
sign.setSignWord(rs.getString("signWord"));
sign.setSignEvent(rs.getString("signEvent"));
sign.setCreateTime(rs.getTimestamp("createTime").toString());
sign.setExpire(rs.getString("expire"));
list.add(sign);
}
return list;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
传回到前端并重定向
String signId=request.getParameter("signId");
SignDao signDao=new SignDao();
List signDoList= signDao.getSignDoList(signId);
String[] data=signDao.GetRecentSignDoMsg(signId);
List signList= signDao.getSignById(Integer.parseInt(signId));
request.setAttribute("signDoList",signDoList);
request.setAttribute("data",data);
request.setAttribute("Sign",signList.get(0));
request.getRequestDispatcher("/main/SignDetail.jsp").forward(request, response);
对签到人的搜索
需要传输签到id与搜索内容
function find(){
var find=document.getElementsByName("type");
var data=document.getElementById("demoReload").value;
var list=-1;
var groupid='${groupId}';
for (var i=0;i
后端进行搜索
public List getSignDoListByUserid(String signId,String userid){
Connection c=null;
List list =new ArrayList<>();
try{
c=DBConnection.getConnection();
String sql= "";
sql="select * from signdo where signId='"+signId+"'and name='"+userid+"'";
PreparedStatement pst=c.prepareStatement(sql);
ResultSet rs=pst.executeQuery();
while(rs.next()){
SignDo signDo=new SignDo();
signDo.setSignId(rs.getInt("SignDoId"));
signDo.setName(rs.getString("name"));
signDo.setWord(rs.getString("signWord"));
signDo.setSignTime(rs.getTimestamp("signTime").toString());
list.add(signDo);
}
return list;
}catch(Exception e){
e.printStackTrace();
return null;
}finally{
DBConnection.closeConnection(c);
}
}
传回前端并重定向
List signDoList= signDao.getSignDoListByUserid(signId,udata);
request.setAttribute("signDoList",signDoList);
request.getRequestDispatcher("/main/SignDetail.jsp").forward(request, response);
搜索前
搜索后



