请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站

jeesite

 找回密码
 注册新会员
查看: 1027|回复: 2

[教程] [模版制作教程] 16.投票模块的使用方法。

[复制链接]
姚海陆 发表于 2016-11-24 09:06:36 | 显示全部楼层 |阅读模式
获取规则获取分类对象
  1. getWxVoteTypeListByWxVoteRuleID
  2. getOrderWxVoteTypeListByWxVoteRuleID
  3. public static List<WxVoteType> getWxVoteTypeListByWxVoteRuleID(String wxVoteRuleId);
  4. public static List<WxVoteType> getOrderWxVoteTypeListByWxVoteRuleID(String wxVoteRuleId, String orderBy);


  5. ${fns:getWxVoteTypeListByWxVoteRuleID(wxVoteRuleId)}
  6. ${fns:getOrderWxVoteTypeListByWxVoteRuleID(wxVoteRuleId,orderBy)}
复制代码


案例:
${fns:getWxVoteTypeListByWxVoteRuleID('1')}
${fns:getOrderWxVoteTypeListByWxVoteRuleID('1','id asc')}

模版命名规则:

列表:frontListVote
参数:listvote${urlSuffix}
前端调用:listvote.jsp
内涵对象:
  1. Site site = CmsUtils.getSite(Site.defaultSiteId());
  2.                 model.addAttribute("site", site);
  3.                 if ("false".equals(ComUtils.addWxSessionID(request, response,
  4.                                 wxUserService, model))) {
  5.                         return "redirect:" + ComUtils.authorWxURL(request);
  6.                 }
  7.                 ComUtils.addWxConfig(request, model);
  8.                 Page<WxVoteType> page = new Page<WxVoteType>(pageNo, pageSize);
  9.                 // System.out.println(page.getPageNo());
  10.                 page = wxVoteTypeService.findPage(page, new WxVoteType());
  11.                 model.addAttribute("page", page);
  12.                
  13.                 return "modules/cms/front/themes/" + site.getTheme() + "/frontListVote";
复制代码



内容页:frontViewVote

参数:viewvote-{voteId}${urlSuffix}
前端调用:viewvote-6086b6bbf34f4944a695518b9ba13bfe.html

  1. Site site = CmsUtils.getSite(Site.defaultSiteId());
  2.                 model.addAttribute("site", site);
  3.                 if ("false".equals(ComUtils.addWxSessionID(request, response,
  4.                                 wxUserService, model))) {
  5.                         return "redirect:" + ComUtils.authorWxURL(request);
  6.                 }
  7.                 ComUtils.addWxConfig(request, model);
  8.                 WxVoteType wxVoteType = wxVoteTypeService.get(voteId);
  9.                 WxVoteRule wxVoteRule = wxVoteRuleService.get(wxVoteType
  10.                                 .getWxVoteRuleId());
  11.                 model.addAttribute("wxVoteType", wxVoteType);
  12.                 model.addAttribute("wxVoteRule", wxVoteRule);
  13.                 return "modules/cms/front/themes/" + site.getTheme() + "/frontViewVote";
复制代码






(1)如何调用投票模块




获取投票分类对象
  1. ${fns:getWxVoteTypeByID(id)}
复制代码

获取投票分类列表
  1. ${fns:getWxVoteTypeList()}
复制代码

获取规则对象
  1. ${fns:getWxVoteRuleByID(id)}
复制代码

获取规则对象 列表
  1. ${fns:getWxVoteRuleList()}
复制代码

获取投票人
  1. ${fns:getWxVoteUserByID(id)}
复制代码

根据投票分类获取投票人 列表
  1. ${fns:getWxVoteUserListByWxVoteTypeID(id)}
复制代码

获取投票人 列表
  1. ${fns:getWxVoteUserList()}
复制代码


公用属性:
  1. protected String remarks; // 备注
  2.         protected User createBy; // 创建者
  3.         protected Date createDate; // 创建日期
  4.         protected User updateBy; // 更新者
  5.         protected Date updateDate; // 更新日期
  6.         protected String delFlag; // 删除标记(0:正常;1:删除;2:审核)
复制代码


WxVoteType

  1.         private String name;                // 名称
  2.         private String wxVoteRuleId;                // 规则编号
  3.         private String mincount;                // 最低选手人数
复制代码


WxVoteUser
  1.         private String name; // 名称
  2.         private String num; // 投票号
  3.         private String viewCount; // 点击数
  4.         private String ticket; // 票数
  5.         private String tel; // 手机号
  6.         private String sex; // 姓别
  7.         private String status; // 审核状态
  8.         private String productName; // 作品名称
  9.         private String wxVoteTypeId; // 分类
  10.         private String picurl; // 照片1
  11.         private String info; // 介绍
复制代码


WxVoteRule

备注:前端调用图片的方法
  1. ${pageContext.request.contextPath}/tmp/${wxVoteRule.picurl}
复制代码


  1. private String name; // 名称
  2.         private String keyword; // 触发关键词
  3.         private String wxInfo; // 微信描述
  4.         private String picurl; // 图片
  5.         private String video; // 视频
  6.         private String music; // 音频
  7.         private Date statdate = new Date(); // 活动开始时间
  8.         private Date enddate = new Date(); // 活动结束时间
  9.         private Date voteStartdate = new Date(); // 投票开始时间
  10.         private Date voteEnddate = new Date(); // 投票结束时间
  11.         private String count = "1"; // 访问量设置
  12.         private String ischeck; // 是否人工审核
  13.         private String status; // 状态 启用 关闭
  14.         private String prevent; // 防恶意刷新
  15.         private String preventHour = "1"; // 设置限制时间(小时)
  16.         private String cknums = "1"; // 限制每人小时投票机会数,默认1
  17.         private String bgcolor; // 自义定投票背景色
  18.         private String wxUrl; // 微信关注链接
  19.         private String tel; // 电话
  20.         private String jump; // 投票成功跳转网址
  21.         private String template; // 模版
  22.         private String info; // 投票说明
  23.         private String attention; // 投票说明
  24.         private String position; // 关注
  25.         private String refresh = "1"; // 开启防刷新
  26.         private String allperson = "1"; // 参赛人数
  27.         private String extFirst; // 扩展功能1
  28.         private String extSecond; // 扩展功能2
  29.         private String extThird; // 扩展功能3
  30.         private String extIfirst; // 整型扩展功能1
  31.         private String extIsecond; // 整型扩展功能2
  32.         private String extIthird; // 整型扩展功能3
  33.         private String sort = "30"; // 排序
复制代码



案例1:
  1. <c:set var="vote"
  2.         value="${fns:getWxVoteTypeByID('6086b6bbf34f4944a695518b9ba13bfe')}" />
  3. <c:set var="voteRule"
  4.         value="${fns:getWxVoteRuleByID(vote.wxVoteRuleId)}" />
  5. <c:set var="voteUser"
  6.         value="${fns:getWxVoteUserListByWxVoteTypeID(vote.id)}" />
复制代码


案例2:

  1. <%
  2.         String vote_id = pageContext.getRequest().getParameter("vote_id");
  3.         pageContext.setAttribute("vote_id", vote_id);
  4. %>
  5. <c:set var="vote"
  6.         value="${fns:getWxVoteTypeByID(vote_id)}" />
  7. <c:set var="voteRule"
  8.         value="${fns:getWxVoteRuleByID(vote.wxVoteRuleId)}" />
  9. <c:set var="voteUser"
  10.         value="${fns:getWxVoteUserListByWxVoteTypeID(vote.id)}" />
复制代码


注解:
判断图片是否为空
http://www.jeesite.net/forum.php?mod=viewthread&tid=364&fromuid=3
(出处: jeesite)

jeesite 对时间进行格式化
http://www.jeesite.net/forum.php?mod=viewthread&tid=365&fromuid=3
(出处: jeesite)


(2)提交投票接口

/api-vote?id={参选人ID}
接口地址:
  1. /api-vote?id={xx}
复制代码



//错误代码定义
                                         /**
                 * false  投票失败
                 * 202  还没到 活动开始时间
                 * 203  超过了 活动结束时间
                 * 204  还没到  投票开始时间
                 * 205  超过了 投票结束时间
                 * 206 用户没有关注, 关注后才能投票
                 * 207 预留 暂未使用
                 * 208 在规定投票时间内   限制每人小时投票机会数
                 * 209 ip地址重复投票  已经透过选票
                 * 210 ip地址已经被列入黑名单
                 * 211  候选人尚未被审核,暂时无法投票
                 * 212 请先授权后再投票
                                 * 213 该投票人不存在
                                 * 214 投票分类不存在
                                 * 215 投票规则不存在
                                 * 216 投票已经关闭
                                 * 217 设置限制时间(小时)或者限制每人小时投票机会数,默认1 错误
                                 * 218 存在恶意投票行为
                               
                 * 219   重复投票 ,已经对该参选人投过票
                 * 220   电脑端投票尚未开启
                 * true 投票成功
                 */



引入ajax 支持的jquery 文件
  1. <script src="${ctxStatic}/jquery/jquery-1.9.1.min.js"
  2.         type="text/javascript"></script>
复制代码


调用ajax方法
  1. onclick="submit_vote('${user.id}')"
复制代码

使用案例:
  1. <script type="text/javascript">
  2.                 function submit_vote(id) {

  3.                         $
  4.                                         .ajax({
  5.                                                 url : "${ctx}/api-vote?id=" + id,
  6.                                                 type : 'post',
  7.                                                 dataType : 'json',
  8.                                                 async : false,
  9.                                                 contentType : 'application/x-www-form-urlencoded; charset=utf-8',
  10.                                                 success : function(data) {
  11.                                                         if (data == "true") {
  12.                                                                 alert('投票成功');
  13.                                                         } else if (data == "false") {
  14.                                                                 alert('投票失败');
  15.                                                         } else if (data == "202") {
  16.                                                                 alert('还没到 活动开始时间');
  17.                                                         } else if (data == "203") {
  18.                                                                 alert('超过了 活动结束时间');
  19.                                                         } else if (data == "204") {
  20.                                                                 alert('还没到  投票开始时间');
  21.                                                         } else if (data == "205") {
  22.                                                                 alert('超过了 投票结束时间');
  23.                                                         } else if (data == "216") {
  24.                                                                 alert('投票已经关闭');
  25.                                                         } else if (data == "212") {
  26.                                                                 alert('该投票人尚未被授权,请先授权后再投票');
  27.                                                         } else {
  28.                                                                 alert('投票失败' + data);
  29.                                                         }
  30.                                                 },
  31.                                                 error : function(textStatus, errorThrown) {
  32.                                                         alert('失败' + errorThrown);
  33.                                                 }
  34.                                         });
  35.                 }
  36. </script>
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册新会员

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册新会员

本版积分规则

QQ|手机版|小黑屋|Archiver|jeesite 官方论坛. ( 吉ICP备12004769号  

GMT+8, 2018-2-19 10:10 , Processed in 0.156250 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表