..
This commit is contained in:
+24
-22
@@ -1,8 +1,11 @@
|
|||||||
package com.budwk.app.client.auth.controller;
|
package com.budwk.app.client.auth.controller;
|
||||||
|
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
|
import com.budwk.app.base.constant.RedisConstant;
|
||||||
import com.budwk.app.base.exception.BaseException;
|
import com.budwk.app.base.exception.BaseException;
|
||||||
import com.budwk.app.base.result.Result;
|
import com.budwk.app.base.result.Result;
|
||||||
|
import com.budwk.app.client.auth.service.ClientAuthService;
|
||||||
|
import com.budwk.app.client.auth.vo.ClientLoginBody;
|
||||||
import com.budwk.app.sys.models.Client_user;
|
import com.budwk.app.sys.models.Client_user;
|
||||||
import com.budwk.app.sys.models.Sys_log;
|
import com.budwk.app.sys.models.Sys_log;
|
||||||
import com.budwk.app.sys.models.Sys_user;
|
import com.budwk.app.sys.models.Sys_user;
|
||||||
@@ -17,10 +20,9 @@ import org.nutz.dao.Dao;
|
|||||||
import org.nutz.integration.jedis.RedisService;
|
import org.nutz.integration.jedis.RedisService;
|
||||||
import org.nutz.ioc.loader.annotation.Inject;
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
import org.nutz.ioc.loader.annotation.IocBean;
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
import org.nutz.mvc.annotation.At;
|
import org.nutz.lang.util.NutMap;
|
||||||
import org.nutz.mvc.annotation.Filters;
|
import org.nutz.mvc.adaptor.JsonAdaptor;
|
||||||
import org.nutz.mvc.annotation.Ok;
|
import org.nutz.mvc.annotation.*;
|
||||||
import org.nutz.mvc.annotation.Param;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
@@ -45,6 +47,8 @@ public class ClientAuthController {
|
|||||||
private SysMsgService sysMsgService;
|
private SysMsgService sysMsgService;
|
||||||
@Inject
|
@Inject
|
||||||
private ValidateService validateService;
|
private ValidateService validateService;
|
||||||
|
@Inject
|
||||||
|
private ClientAuthService clientAuthService;
|
||||||
|
|
||||||
@At("")
|
@At("")
|
||||||
@Ok("beetl:/platform/sys/login.html")
|
@Ok("beetl:/platform/sys/login.html")
|
||||||
@@ -54,31 +58,29 @@ public class ClientAuthController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 短信登录
|
* 短信登录
|
||||||
* @param mobile 手机号
|
|
||||||
* @param code 验证码
|
|
||||||
* @param req 请求
|
|
||||||
*/
|
*/
|
||||||
@At("/doSmsLogin")
|
@At("/sms-login")
|
||||||
@Ok("json")
|
@Ok("json")
|
||||||
public Object doSmsLogin(@Param("mobile") String mobile, @Param("code") String code, HttpServletRequest req) {
|
@AdaptBy(type = JsonAdaptor.class)
|
||||||
|
public Object doSmsLogin(ClientLoginBody loginBody, HttpServletRequest req) {
|
||||||
try {
|
try {
|
||||||
int count = dao.count(Client_user.class, Cnd.where(Client_user::getMobile, "=", mobile));
|
String token = clientAuthService.doSmsLogin(loginBody);
|
||||||
if (count == 0) {
|
return Result.success().addData(token);
|
||||||
return Result.error("手机号不存在");
|
|
||||||
}
|
|
||||||
Client_user user = null;
|
|
||||||
validateService.checkSMSCode(mobile, code);
|
|
||||||
user = dao.fetch(Client_user.class, Cnd.where(Client_user::getMobile, "=", mobile));
|
|
||||||
if (user == null) {
|
|
||||||
return Result.error("用户登录失败");
|
|
||||||
}
|
|
||||||
StpClientUtil.STP.login(user.getId());
|
|
||||||
StpClientUtil.STP.checkLogin();
|
|
||||||
return Result.success("login.success");
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error(e.getMessage(), e);
|
log.error(e.getMessage(), e);
|
||||||
return Result.error(e.getMessage());
|
return Result.error(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@At("/send-sms-code/?")
|
||||||
|
@Ok("json")
|
||||||
|
public Object sendSmsCode(String phone) {
|
||||||
|
try {
|
||||||
|
validateService.getSmsCode(phone);
|
||||||
|
return Result.success(NutMap.NEW().addv("key", RedisConstant.UCENTER_SMSCODE + phone)).addMsg("发送成功");
|
||||||
|
} catch (BaseException e) {
|
||||||
|
return Result.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
package com.budwk.app.client.auth.service;
|
||||||
|
|
||||||
|
import com.budwk.app.client.auth.vo.ClientLoginBody;
|
||||||
|
|
||||||
|
public interface ClientAuthService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手机短信登录
|
||||||
|
* @param loginBody 登录信息
|
||||||
|
* @return token
|
||||||
|
*/
|
||||||
|
String doSmsLogin(ClientLoginBody loginBody);
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package com.budwk.app.client.auth.service;
|
||||||
|
|
||||||
|
import com.budwk.app.base.exception.BaseException;
|
||||||
|
import com.budwk.app.base.result.Result;
|
||||||
|
import com.budwk.app.client.auth.vo.ClientLoginBody;
|
||||||
|
import com.budwk.app.sys.models.Client_user;
|
||||||
|
import com.budwk.app.web.commons.auth.satoken.StpClientUtil;
|
||||||
|
import com.budwk.app.web.commons.auth.service.ValidateService;
|
||||||
|
import org.nutz.dao.Cnd;
|
||||||
|
import org.nutz.dao.Dao;
|
||||||
|
import org.nutz.ioc.loader.annotation.Inject;
|
||||||
|
import org.nutz.ioc.loader.annotation.IocBean;
|
||||||
|
|
||||||
|
@IocBean
|
||||||
|
public class ClientAuthServiceImpl implements ClientAuthService {
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private Dao dao;
|
||||||
|
@Inject
|
||||||
|
private ValidateService validateService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String doSmsLogin(ClientLoginBody loginBody) {
|
||||||
|
Client_user user = null;
|
||||||
|
int count = dao.count(Client_user.class, Cnd.where(Client_user::getPhone, "=", loginBody.getPhone()));
|
||||||
|
if (count == 0) {
|
||||||
|
// 自动注册
|
||||||
|
user = new Client_user();
|
||||||
|
user.setPhone(loginBody.getPhone());
|
||||||
|
user.setUserName("用户" + loginBody.getPhone());
|
||||||
|
dao.insert(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
validateService.checkSMSCode(loginBody.getPhone(), loginBody.getSmsCode());
|
||||||
|
user = dao.fetch(Client_user.class, Cnd.where(Client_user::getPhone, "=", loginBody.getPhone()));
|
||||||
|
if (user == null) {
|
||||||
|
throw new BaseException("用户登录失败");
|
||||||
|
}
|
||||||
|
StpClientUtil.STP.login(user.getId());
|
||||||
|
StpClientUtil.STP.checkLogin();
|
||||||
|
return StpClientUtil.STP.getTokenValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package com.budwk.app.client.auth.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ClientLoginBody {
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
private String smsCode;
|
||||||
|
|
||||||
|
}
|
||||||
+2
-1
@@ -33,7 +33,8 @@ public class ClientActivityController {
|
|||||||
t1.startTime,
|
t1.startTime,
|
||||||
t1.endTime,
|
t1.endTime,
|
||||||
t1.signStartTime,
|
t1.signStartTime,
|
||||||
t1.signEndTime
|
t1.signEndTime,
|
||||||
|
t1.cover
|
||||||
FROM
|
FROM
|
||||||
activity t1
|
activity t1
|
||||||
$condition
|
$condition
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
|
|||||||
import org.nutz.dao.entity.annotation.*;
|
import org.nutz.dao.entity.annotation.*;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@EqualsAndHashCode(callSuper = true)
|
@EqualsAndHashCode(callSuper = true)
|
||||||
@@ -31,7 +32,7 @@ public class Client_user extends BaseModel implements Serializable {
|
|||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.VARCHAR, width = 11)
|
@ColDefine(type = ColType.VARCHAR, width = 11)
|
||||||
@Comment("手机号")
|
@Comment("手机号")
|
||||||
private String mobile;
|
private String phone;
|
||||||
|
|
||||||
@Column
|
@Column
|
||||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||||
|
|||||||
Reference in New Issue
Block a user