From 2a6cd564979c915eb966cb849cac3600c304c376 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=A3=E4=BA=9B=E8=8A=B1=E5=84=BF?= <1156921458@qq.com> Date: Thu, 24 Apr 2025 18:55:35 +0800 Subject: [PATCH] .. --- .../auth/controller/ClientAuthController.java | 46 ++++++++++--------- .../auth/service/ClientAuthService.java | 14 ++++++ .../auth/service/ClientAuthServiceImpl.java | 43 +++++++++++++++++ .../app/client/auth/vo/ClientLoginBody.java | 12 +++++ .../controller/ClientActivityController.java | 3 +- .../com/budwk/app/sys/models/Client_user.java | 3 +- 6 files changed, 97 insertions(+), 24 deletions(-) create mode 100644 backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthService.java create mode 100644 backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthServiceImpl.java create mode 100644 backend/src/main/java/com/budwk/app/client/auth/vo/ClientLoginBody.java diff --git a/backend/src/main/java/com/budwk/app/client/auth/controller/ClientAuthController.java b/backend/src/main/java/com/budwk/app/client/auth/controller/ClientAuthController.java index 4e26cf3..cbefce9 100644 --- a/backend/src/main/java/com/budwk/app/client/auth/controller/ClientAuthController.java +++ b/backend/src/main/java/com/budwk/app/client/auth/controller/ClientAuthController.java @@ -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()); + } + } + } diff --git a/backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthService.java b/backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthService.java new file mode 100644 index 0000000..cd68c13 --- /dev/null +++ b/backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthService.java @@ -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); + +} diff --git a/backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthServiceImpl.java b/backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthServiceImpl.java new file mode 100644 index 0000000..d83d817 --- /dev/null +++ b/backend/src/main/java/com/budwk/app/client/auth/service/ClientAuthServiceImpl.java @@ -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(); + } +} diff --git a/backend/src/main/java/com/budwk/app/client/auth/vo/ClientLoginBody.java b/backend/src/main/java/com/budwk/app/client/auth/vo/ClientLoginBody.java new file mode 100644 index 0000000..f192016 --- /dev/null +++ b/backend/src/main/java/com/budwk/app/client/auth/vo/ClientLoginBody.java @@ -0,0 +1,12 @@ +package com.budwk.app.client.auth.vo; + +import lombok.Data; + +@Data +public class ClientLoginBody { + + private String phone; + + private String smsCode; + +} diff --git a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java index 39fdbae..660c60b 100644 --- a/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java +++ b/backend/src/main/java/com/budwk/app/client/module/activity/controller/ClientActivityController.java @@ -33,7 +33,8 @@ public class ClientActivityController { t1.startTime, t1.endTime, t1.signStartTime, - t1.signEndTime + t1.signEndTime, + t1.cover FROM activity t1 $condition diff --git a/backend/src/main/java/com/budwk/app/sys/models/Client_user.java b/backend/src/main/java/com/budwk/app/sys/models/Client_user.java index cb2b236..801e603 100644 --- a/backend/src/main/java/com/budwk/app/sys/models/Client_user.java +++ b/backend/src/main/java/com/budwk/app/sys/models/Client_user.java @@ -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)