..
This commit is contained in:
+24
-22
@@ -1,8 +1,11 @@
|
||||
package com.budwk.app.client.auth.controller;
|
||||
|
||||
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.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.Sys_log;
|
||||
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.ioc.loader.annotation.Inject;
|
||||
import org.nutz.ioc.loader.annotation.IocBean;
|
||||
import org.nutz.mvc.annotation.At;
|
||||
import org.nutz.mvc.annotation.Filters;
|
||||
import org.nutz.mvc.annotation.Ok;
|
||||
import org.nutz.mvc.annotation.Param;
|
||||
import org.nutz.lang.util.NutMap;
|
||||
import org.nutz.mvc.adaptor.JsonAdaptor;
|
||||
import org.nutz.mvc.annotation.*;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
@@ -45,6 +47,8 @@ public class ClientAuthController {
|
||||
private SysMsgService sysMsgService;
|
||||
@Inject
|
||||
private ValidateService validateService;
|
||||
@Inject
|
||||
private ClientAuthService clientAuthService;
|
||||
|
||||
@At("")
|
||||
@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")
|
||||
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 {
|
||||
int count = dao.count(Client_user.class, Cnd.where(Client_user::getMobile, "=", mobile));
|
||||
if (count == 0) {
|
||||
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");
|
||||
String token = clientAuthService.doSmsLogin(loginBody);
|
||||
return Result.success().addData(token);
|
||||
} catch (Exception e) {
|
||||
log.error(e.getMessage(), e);
|
||||
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.endTime,
|
||||
t1.signStartTime,
|
||||
t1.signEndTime
|
||||
t1.signEndTime,
|
||||
t1.cover
|
||||
FROM
|
||||
activity t1
|
||||
$condition
|
||||
|
||||
@@ -6,6 +6,7 @@ import lombok.EqualsAndHashCode;
|
||||
import org.nutz.dao.entity.annotation.*;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@@ -31,7 +32,7 @@ public class Client_user extends BaseModel implements Serializable {
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 11)
|
||||
@Comment("手机号")
|
||||
private String mobile;
|
||||
private String phone;
|
||||
|
||||
@Column
|
||||
@ColDefine(type = ColType.VARCHAR, width = 255)
|
||||
|
||||
Reference in New Issue
Block a user