1、工具类
/**
* 判断是否登录
*
*/
public static int isLogin(){
int data=UserEvent.LOGOUT;//退出3
User user = currUser();
if(user!=null){
data=UserEvent.LOGIN;//登录2
}
return data;
}
2、controller的编写
/**
* 判断用户是否登录
*/
public static void isLogin(){
JSONObject data=new JSONObject();
int result=User.isLogin();
data.put("result",result);
renderJSON(data);
}
3、js的编写
//判断用户是否登录
function isLogin(){
$.ajax({
type: "get",
dataType: "json",
url: "/m/isLogin",
success: function (data) {
if(data.result==2){
//判断绑定银行卡
isBindBank();
}else if(data.result==3){
//用户登录
window.location.href="/m/login?toUrl="+window.location.href;
}
}
});
}
4、用户登录的controller
/**
* 包含登录页面的登录
*/
public static void logining() {
String encryString = Session.current().getId();
Integer loginCount = (Integer )Cache.get("loginCount" + encryString);
loginCount = loginCount == null ? 0 : loginCount;
Cache.set("loginCount"+encryString, ++loginCount, Constants.CACHE_TIME_MINUS_30);
business.BackstageSet currBackstageSet = business.BackstageSet.getCurrentBackstageSet();
if(null != currBackstageSet){
Cache.delete("backstageSet");//清除系统设置缓存
}
ErrorInfo error = new ErrorInfo();
String name = params.get("name");
StringBuffer url2 = new StringBuffer();
String password = params.get("password");
flash.put("name", name);
if (StringUtils.isBlank(name)) {
flash.error("请输入用户名");
}
if (StringUtils.isBlank(password)) {
flash.error("请输入密码");
}
String LoginUrl = Play.configuration.getProperty("test.application.baseUrl") + Play.configuration.getProperty("http.path") + "/m/login";
String url = LoginUrl;
User user = new User();
name = StringUtils.trimToEmpty(name);
if(RegexUtils.isMobileNum(name)){
user.findUserByMobile(name);
}else{
user.queryUserByName(name, error);
}
if (user.id < 0) {
flash.error("该用户名不存在");
redirect(url);
}
if (user.login(password,false, Constants.CLIENT_H5, error) < 0) {
flash.error(error.msg);
redirect(url);
}
Cache.delete("loginCount"+encryString);
if (LoginUrl.equalsIgnoreCase(url)) {
String successURl = (String)play.cache.Cache.get("toUrl");
if(successURl!=null && (successURl.contains("invest")||successURl.contains("Invest"))){
redirect(successURl);
}else{
redirect("/m/front/invest/investList"); //2016 add 成功登录后跳转至投资列表页
}
}
}
5、银行卡controller
/**
* 查询用户银行卡绑定情况
* niu
* 1.绑定
* 0.未绑定
*
*/
public static void isBindBank(){
JSONObject data = new JSONObject();
int result=UserEvent.BIND_BANK_NOT;
long userId=User.currUser().id;
if(UserBankAccounts.queryUserAllBankAccount(userId).size()>=1){
result=UserEvent.BIND_BANK;
}
data.put("result", result);
renderJSON(data);
}
6、银行卡绑定js
//判断用户是否绑定银行卡/m/isBindBank
function isBindBank(){
alert(222);
$.ajax({
type: "get",
dataType: "json",
url: "/m/isBindBank",
success: function (data) {
if(data.result==1){
//已绑卡
alert("todo");
}else if(data.result==0){
//未绑卡 /m/front/account/addCard
window.location.href="/m/front/account/addCard?toUrl="+window.location.href;
}
}
});
}
7、绑定银行卡验证controller
/**
* 修改
* 绑卡 验证短信验证码
*/
public static void verifySMS(){
User user = User.currUser();
Long id = new Long(params.get("bindId"));
String SMSValidationCode = params.get("code");
boolean success=false;
try {
t_user_bank_accounts bankAccount = t_user_bank_accounts.findById(id);
// 创建交易请求对象
Tx2532Request txRequest = new Tx2532Request();
txRequest.setInstitutionID(Constants.INSTITUTIONID);
txRequest.setTxSNBinding(bankAccount.txSNBinding);
txRequest.setSMSValidationCode(SMSValidationCode);
// 3.执行报文处理
txRequest.process();
TxMessenger txMessenger = new TxMessenger();
String[] respMsg = txMessenger.send(txRequest.getRequestMessage(),
txRequest.getRequestSignature());
Tx2532Response tx2532Response = new Tx2532Response(respMsg[0], respMsg[1]);
Logger.info("[Tx2532_Message]=[" + tx2532Response.getResponsePlainText() + "]");
if ("2000".equals(tx2532Response.getCode())&&30==tx2532Response.getStatus()
&&40==tx2532Response.getVerifyStatus()) {
JPA.em().createNativeQuery("update t_user_bank_accounts set verify_code=? where id=? ")
.setParameter(1, SMSValidationCode).setParameter(2, id).executeUpdate();
success=true;
}
} catch (Exception e) {
JPA.setRollbackOnly();
e.printStackTrace();
Logger.error("绑卡短信验证失败:", e.getStackTrace());
success=false;
}
//跳转回原来位置
String successURl = (String)play.cache.Cache.get("toUrl");
if(successURl!=null ){
redirect(successURl);
}
render(success);
}
源码:
点击打开链接