From 185f5dc7c3c49f565da51cd9c2f7750f30990d4a Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 11 十一月 2024 13:28:29 +0800 Subject: [PATCH] 代码提交 --- xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java | 52 ++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 44 insertions(+), 8 deletions(-) diff --git a/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java b/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java index 7268679..054a409 100644 --- a/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java +++ b/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java @@ -13,6 +13,8 @@ import com.xinquan.common.security.auth.AuthUtil; import com.xinquan.common.security.service.TokenService; import com.xinquan.common.security.utils.SecurityUtils; +import com.xinquan.system.api.domain.AppUser; +import com.xinquan.system.api.domain.SysMenu; import com.xinquan.system.api.domain.SysRole; import com.xinquan.system.api.domain.SysUser; import com.xinquan.system.api.feignClient.SysUserClient; @@ -21,12 +23,16 @@ import com.xinquan.system.api.model.AppVerifyCellPhoneBody; import com.xinquan.system.api.model.AppWXLoginBody; import com.xinquan.system.api.model.LoginUser; +import com.xinquan.user.api.feign.RemoteAppUserService; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import java.time.LocalDateTime; import java.util.HashMap; import java.util.List; +import java.util.Objects; +import java.util.Set; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.CollectionUtils; @@ -54,6 +60,8 @@ private SysLoginService sysLoginService; @Autowired private SysUserClient userClient; + @Resource + private RemoteAppUserService remoteAppUserService; /** * 发送验证码 @@ -64,10 +72,33 @@ @ApiOperation(value = "发送验证码",tags = {"APP端"}) @ApiImplicitParams({ @ApiImplicitParam(name = "cellPhone", value = "手机号码", required = true, dataType = "String", paramType = "query"), - @ApiImplicitParam(name = "type", value = "类型 1=注册 2=验证码登录 3=找回密码 4=第三方登录后验证手机", required = true, dataType = "Integer", paramType = "query")}) + @ApiImplicitParam(name = "type", value = "类型 1=注册 2=验证码登录 3=找回密码 4=第三方登录后验证手机 5=切换手机号 6= 添加银行卡", required = true, dataType = "Integer", paramType = "query")}) public R<?> sendCaptchaCode( @RequestParam(value = "cellPhone", required = true) String cellPhone, @RequestParam("type") Integer type) { + + if(type==5){ + LoginUser loginUser = tokenService.getLoginUser(); + if (loginUser==null){ + return R.tokenError("登录失效"); + } + AppUser data1 = remoteAppUserService.getAppUserById(loginUser.getUserid() + "").getData(); + if (!cellPhone.equals(data1.getCellPhone())){ + return R.fail("手机号错误"); + } + } + if(type==5){ + AppUser data = remoteAppUserService.getUserByPhone(cellPhone).getData(); + if (data!=null){ + return R.fail("当前手机号已被绑定"); + } + } + if(type==4){ + AppUser data = remoteAppUserService.getUserByPhone(cellPhone).getData(); + if (data!=null && (data.getWxOpenId()!=null||data.getAppleId()!=null)){ + return R.fail("当前手机号已被绑定"); + } + } sysLoginService.sendCaptchaCode(cellPhone, type); return R.ok(); } @@ -79,7 +110,7 @@ */ @ApiOperation(value = "注册账户",tags = {"APP端"}) @PostMapping("/app/register") - public R<AppLoginUser> appRegister(@Validated @RequestBody AppRegisterBody appRegisterBody) + public R<AppLoginUser> appRegister(@RequestBody AppRegisterBody appRegisterBody) { // 用户注册 AppLoginUser appLoginUser = sysLoginService.appRegister(appRegisterBody); @@ -159,7 +190,9 @@ @ApiOperation(value = "苹果登录", tags = {"APP端"}) @PostMapping("/app/appleLogin") @ApiImplicitParams({ - @ApiImplicitParam(name = "appleId", value = "苹果ID", required = true, dataType = "String", paramType = "query")}) + @ApiImplicitParam(name = "appleId", value = "苹果ID", required = true, dataType = "String", paramType = "query"), + } + ) public R<AppLoginUser> appleLogin( @RequestParam(value = "appleId", required = true) String appleId) { AppLoginUser appLoginUser = sysLoginService.appleLogin(appleId); @@ -175,8 +208,10 @@ @ApiOperation(value = "微信苹果登录-验证手机号", tags = {"APP端"}) @PostMapping("/app/verifyCellPhone") public R<?> verifyCellPhone(@Validated @RequestBody AppVerifyCellPhoneBody body) { + AppLoginUser appLoginUser = sysLoginService.verifyCellPhone(body); + return R.ok(tokenService.createToken4AppLoginUser( - sysLoginService.verifyCellPhone(body))); + appLoginUser)); } /** @@ -193,19 +228,20 @@ LoginUser userInfo = sysLoginService.login(form.getUsername(), form.getPassword()); HashMap<String, Object> map = new HashMap<>(); map.put("token",tokenService.createToken(userInfo)); - List<SysRole> roles = userInfo.getSysUser().getRoles(); + Set<String> roles = userInfo.getRoles(); + if(CollectionUtils.isEmpty(roles)){ return R.fail("请关联角色!"); } - - map.put("roleName",roles.get(0).getRoleName()); + map.put("roleName",roles.stream().findFirst().get()); map.put("info",userInfo); + List<SysMenu> data = userClient.roleInfoFromUserId(userInfo.getUserid()).getData(); + map.put("menus",data); // 修改用户最后登录时间 SysUser sysUser = new SysUser(); sysUser.setUserId(userInfo.getSysUser().getUserId()); sysUser.setLoginDate(LocalDateTime.now()); System.out.println("修改用户登录时间"+sysUser); - userClient.updateSysUser(sysUser); // 获取登录token return R.ok(map); } -- Gitblit v1.7.1