KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > geinuke > module > survey > VoteSurvey


1
2 package com.geinuke.module.survey;
3
4
5
6 import javax.servlet.http.HttpServletRequest JavaDoc;
7 import javax.servlet.http.HttpServletResponse JavaDoc;
8
9 import org.apache.velocity.context.Context;
10
11 import com.geinuke.bizlogic.BLException;
12 import com.geinuke.common.GlobalConfigurationI;
13 import com.geinuke.common.NukeModuleI;
14 import com.geinuke.common.UserI;
15 import com.geinuke.middle.ISurveyBL;
16 import com.geinuke.module.StaticModule;
17 import com.geinuke.servlet.GeiServlet;
18 import com.geinuke.util.CookieHandler;
19 import com.geinuke.util.MathUtil;
20
21 import com.geinuke.vo.ModuleDBVO;
22 import com.geinuke.vo.SurveyAnswerVO;
23 import com.geinuke.vo.SurveyVO;
24 import com.geinuke.vo.SurveyVoteVO;
25
26 public class VoteSurvey extends StaticModule{
27     
28     
29     protected int getID(HttpServletRequest JavaDoc req){
30         
31         //TODO: ricacvare l'aid dal radiobutton
32
return Integer.parseInt(req.getParameter("item"));
33     }
34     
35     public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest JavaDoc req, HttpServletResponse JavaDoc res, UserI user, GlobalConfigurationI gConf) throws Exception JavaDoc {
36         ISurveyBL sbl=(ISurveyBL)GeiServlet.getBL("ISurveyBL");
37         String JavaDoc sidS=req.getParameter("sid");
38         int sid=Integer.parseInt(sidS);
39         SurveyVO su=sbl.getSurveyBySID(sid);
40         String JavaDoc ip=req.getRemoteAddr();
41         GeiServlet.intLog("VoteSurvey.handleAction(...), ip="+ip);
42         if(su.getSStatus()==0)
43             throw new BLException("Forbidden");
44         SurveyUtil sUtil=new SurveyUtil(user,new CookieHandler(req,res));
45         boolean mayV=false;
46         
47         if(su.getCheckType()==SurveyVO.CHECK_TYPE_IP)
48             mayV=sbl.checkVote(su.getSid(),ip);
49         else
50             mayV=sbl.checkVote(su.getSid(),user.getId());
51         GeiServlet.intLog("VoteSurvey.handleAction(...), mayV="+mayV);
52         GeiServlet.intLog("VoteSurvey.handleAction(...), sUtil.hasVoted(su)="+sUtil.hasVoted(su));
53         if(!sUtil.hasVoted(su) && mayV){
54             try{
55                 sUtil.storeVote(su);
56                 int id=this.getID(req);
57                 SurveyAnswerVO sa=SurveyUtil.getSurveyAnswerByAID(su,id);
58                 sa.setSaCount(sa.getSaCount()+1);
59                 sbl.updateSurveyAnswerVO(sa);
60                 SurveyVoteVO sv=null;
61                 sv=new SurveyVoteVO();
62                 sv.setIp(ip);
63                 sv.setSid(su.getSid());
64                 sv.setUid(user.getId());
65                 sv.setUsDate(System.currentTimeMillis());
66                 sbl.insertVote(sv);
67                 
68             }catch(Exception JavaDoc nop){}
69         }else{
70             ctx.put("errors",ctx);
71             ctx.put("error","ALREADY_VOTE");
72         }
73         ctx.put("survey",su);
74         ctx.put("math",new MathUtil());
75         return super.handleAction(module,ctx,req,res,user,gConf);
76     }
77     
78     
79
80 }
Popular Tags