1 2 package com.geinuke.module.survey; 3 4 5 6 import javax.servlet.http.HttpServletRequest ; 7 import javax.servlet.http.HttpServletResponse ; 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 req){ 30 31 return Integer.parseInt(req.getParameter("item")); 33 } 34 35 public NukeModuleI handleAction(ModuleDBVO module, Context ctx,HttpServletRequest req, HttpServletResponse res, UserI user, GlobalConfigurationI gConf) throws Exception { 36 ISurveyBL sbl=(ISurveyBL)GeiServlet.getBL("ISurveyBL"); 37 String sidS=req.getParameter("sid"); 38 int sid=Integer.parseInt(sidS); 39 SurveyVO su=sbl.getSurveyBySID(sid); 40 String 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 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 |