从微信跳过来的入口方法
public static void redbag(String code,String state){
if(code!=null){//微信登录String wxApi = "https://api.weixin.qq.com/sns/oauth2/access_token";
Map<String, String> args = new HashMap<String, String>();
args.put("appid", Constants.APPID);
args.put("secret", Constants.APPSECRET);
args.put("code", code);
args.put("grant_type", "authorization_code");
String wxJson = WS.url(wxApi).setParameters(args).post().getString();
JSONObject jsonObj = JSONObject.fromObject(wxJson);
if(jsonObj!=null&&jsonObj.get("openid")!=null)
{
String openid = jsonObj.getString("openid");
User user = new User();
user.setWxOpenid(openid);
ErrorInfo error = new ErrorInfo();
user.wxlogin(openid, true, error);
render(openid);
}
}
render();
}
/**
* 抢红包算法,返回根据红包活动规则生成的金额JSON格式。
*/
public static void getredbag(){
int[] moneys = {18,28,38,48,58};
JSONObject obj = new JSONObject();
ErrorInfo error = new ErrorInfo();
User user = User.currUser();
UserBonusInfo userBonusInfo = new UserBonusInfo();
userBonusInfo.userId = user.id;
if(userBonusInfo.queryUserBonusWx()>0)
{
obj.put("money", -1);
obj.put("retMsg", "温馨提示:每人只能抢一个开业红包!");
renderJSON(obj);
}
int bonusID = getRndMoney();
userBonusInfo.bonusId = bonusID;
userBonusInfo.status = UserBonusInfo.STATUS_ENABLE;
Date currentDate = new Date();
userBonusInfo.createTime = currentDate;
userBonusInfo.auditSupervisorId = 1; //超级管理员
userBonusInfo.auditTime = currentDate;
userBonusInfo.isUse = UserBonusInfo.IS_USE_APPROVED;
userBonusInfo.commentMark = "wxhb";
userBonusInfo.suggestion = moneys[bonusID-1]+"";
int ret = userBonusInfo.addUserBonus(7, error);
obj.put("money", 0);
if(ret==0){
String retMsg = "恭喜您:抢到红包"+moneys[bonusID-1]+"元!";
obj.put("money", moneys[bonusID-1]);
obj.put("retMsg", retMsg);
}
renderJSON(obj);
}
/**
* 获取随机出来的红包金额
* 1、开业现场抢红包活动18元
* 2、开业现场抢红包活动28元
* 3、开业现场抢红包活动38元
* 4、开业现场抢红包活动48元
* 5、开业现场抢红包活动58元
* @return
*/
public static int getRndMoney()
{
Random random = new Random();
int rnd = Math.abs(random.nextInt())%99+1;
int[] moneys = {18,28,38,48,58};
int i = 0;
if(rnd >97)
i = 4;
else if(rnd>92)
i = 3;
else if(rnd>88)
i = 2;
else if(rnd>70)
i = 1;
else
i = 0 ;
// return moneys[i];
return i+1;
}
VIEW层HTML5
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
%{
business.User currUser = business.User.currUser();
}%
<title>某网:国内知名银行级投资理财平台</title>
<meta content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="format-detection" content="telephone=no">
<meta content="-1" http-equiv="Expires">
<meta content="no-cache" http-equiv="Cache-Control">
<meta content="no-cache" http-equiv="Pragma">
<meta content="no" name="wap-font-scale">
<meta content="IE=edge" http-equiv="X-UA-Compatible">
<meta content="webkit|ie-comp|ie-stand" name="renderer">
<script type="text/javascript" src="@{'/public/javascripts/jquery-2.0.js'}"></script>
<script type="text/javascript" src="@{'/public/javascripts/jquery.json-2.4.min.js'}"></script>
<link rel="stylesheet" href="@{'/public/stylesheets/jquery.mobile-1.4.5.min.css'}">
<link rel="stylesheet" type="text/css" href="@{'/public/stylesheets/bootstrap.min.css'}">
<script type="text/javascript" src="@{'/public/javascripts/common.js'}"></script>
<script src="@{'/public/javascripts/jquery.mobile-1.4.5.min.js'}"></script>
<script type="text/javascript" src="@{'/public/javascripts/bootstrap.min.js'}"></script>
</head>
<body>
<!-- 抢红包 -->
<div data-role="page" id="h5index">
<div data-role="header">
<h1>某网红包活动</h1>
</div>
<div data-role="content">
#{doLayout /}
</div>
<div data-role="footer" data-position="fixed">
<div data-role="navbar" >
<ul>
#{if currUser == null}
<li><a href="#reg" data-transition="slideup" data-icon="plus">注册</a></li>
<li><a href="#login" data-transition="slidedown" data-icon="user">登录</a></li>
#{/if}
#{else}
<li><a href="/myredbag" data-icon="shop">我的红包</a></li>
<li><a href="/active/investInfo" data-icon="heart">投资</a></li>
#{/else}
<li><a href="#redbagrule" data-transition="slide" data-icon="info">活动规则</a></li>
</ul>
</div>
</div>
</div>
<!-- 活动规则 -->
<div data-role="popup" id="redbagrule" data-dismissible=false>
<div data-role="header">
<h1>抢红包活动规则</h1>
</div>
<div data-role="main" class="ui-content">
<p><b>活动规则:</b></p>
<p>1、红包需注册登录某网银账号后方能领取</p>
<p>2、红包适用于某网银平台指定理财产品购买;</p>
<p>3、红包不能转让,每个理财产品仅限使用一个红包;</p>
<p>4、红包可用于再投资,未使用前不可直接提现;</p>
<p>5、红包期限为7天,7天后仍未使用则自动作废。</p>
<p>本活动最终解释权归某网银平台所有。</p>
</div>
<div data-role="footer">
<h1><a href="#" data-rel="back" >我知道了</a></h1>
</div>
</div>
<div data-role="popup" id="login" >
<div data-role="header" style="height: 46px;">
<h1>用户登录</h1>
<a href="#h5index" data-icon="back" data-role="button">返回抢红包</a>
</div>
<div data-role="main" class="ui-content">
<form method="post" action="/active/userLogin">
<div>
<input type="text" name="userName" id="userName" placeholder="用户名">
<input type="password" name="password" id="password" placeholder="密码">
<input type="hidden" name="openid" value="${openid}">
<button type="submit" data-theme="b">登录</button>
</div>
</form>
</div>
<div data-role="footer">
<h1><a href="#reg" data-transition="slideup" >快速注册</a></h1>
</div>
</div>
<div data-role="popup" id="reg" >
<div data-role="header" style="height: 46px;">
<h1>快速注册</h1>
<a href="#h5index" data-icon="back" data-role="button">返回抢红包</a>
</div>
<div data-role="main" class="ui-content">
<form method="post" action="/active/userRegSave">
<div>
<input type="text" name="userName" id="userName" placeholder="用户名">
<input type="password" name="password" id="password" placeholder="密码">
<input type="password" name="confirmPassword" id="confirmPassword" placeholder="确认密码">
<input type="hidden" name="openid" value="${openid}">
<button type="submit" data-theme="b">注册</button>
</div>
</form>
</div>
</div>
</body>
</html>