diff --git a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java index b12f70a..c6b6780 100644 --- a/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java +++ b/cloud-auth/src/main/java/com/muyu/auth/service/SysLoginService.java @@ -1,7 +1,6 @@ package com.muyu.auth.service; import cn.hutool.core.util.RandomUtil; -import com.muyu.auth.form.RegisterBody; import com.muyu.auth.util.TelSmsUtils; import com.muyu.common.core.constant.CacheConstants; import com.muyu.common.core.constant.Constants; @@ -23,9 +22,7 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Component; import java.util.HashMap; -import java.util.Map; -import java.util.Optional; -import java.util.Random; +import java.util.List; import java.util.concurrent.TimeUnit; /** @@ -141,6 +138,7 @@ public class SysLoginService { throw new ServiceException("手机号长度必须在11个字符"); } + // 注册用户信息 SysUser sysUser = new SysUser(); sysUser.setUserName(username); @@ -159,40 +157,25 @@ public class SysLoginService { public Result getPhoneCode(String phonenumber) { - -// if (StringUtils.isBlank(phonenumber) || !StringUtils.isMatch(phonenumber, "^\\d{11}$")) { -// return Result.error("手机号为空或无效"); -// } - -// String cachedPhonenumber = redisTemplate.opsForValue().get("phonenumber"); -// -// if (cachedPhonenumber == null || cachedPhonenumber.isEmpty()) { -// -// return Result.error("手机号为空"); -// } - -// -// if (redisService.hasKey(phonenumber.length()==11?phonenumber:"0"+phonenumber)){ -// return Result.error("请勿频繁发送验证码"); -// } - - if (StringUtils.isBlank(phonenumber)){ - return Result.error("手机号不能为空"); - } - - String s = RandomUtil.randomNumbers(4); redisTemplate.opsForValue().set(phonenumber,phonenumber,1,TimeUnit.DAYS); + Result> listResult = remoteUserService.sysUserByPhonenumber(phonenumber); + listResult.getData().forEach(sysUser -> { + if (sysUser.getPhonenumber().equals(phonenumber)){ + throw new ServiceException("手机号已存在"); + } + }); + TelSmsUtils.sendSms(phonenumber, new HashMap() {{ put("实训12A项目注册验证码","你正在注册四组服务,您的验证码是:{}"+s); }}); - return Result.success("发送成功"); + return Result.success("发送成功",s); } } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java index 2c3b803..7ba29f2 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/RemoteUserService.java @@ -41,4 +41,13 @@ public interface RemoteUserService { */ @PostMapping("/user/register") public Result registerUserInfo (@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + + /** + * 用户手机号校验 + * @param phonenumber + * @return 查询结果 + */ + @PostMapping("/user/sysUserByPhonenumber/{phonenumber}") + public Result> sysUserByPhonenumber(@PathVariable("phonenumber") String phonenumber); } diff --git a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java index 167ade9..461f34d 100644 --- a/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java +++ b/cloud-common/cloud-common-system/src/main/java/com/muyu/common/system/remote/factory/RemoteUserFallbackFactory.java @@ -38,6 +38,11 @@ public class RemoteUserFallbackFactory implements FallbackFactory registerUserInfo (SysUser sysUser, String source) { return Result.error("注册用户失败:" + throwable.getMessage()); } + + @Override + public Result> sysUserByPhonenumber(String phonenumber) { + return Result.error("获取用户手机号失败"+throwable.getMessage()); + } }; } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java index bc0b5fe..639b65a 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserController.java @@ -290,4 +290,16 @@ public class SysUserController extends BaseController { public Result deptTree (SysDept dept) { return success(deptService.selectDeptTreeList(dept)); } + + + /** + * 用户手机号校验 + * @param phonenumber + * @return 查询结果 + */ + @PostMapping("/sysUserByPhonenumber/{phonenumber}") + public Result> sysUserByPhonenumber(@PathVariable("phonenumber") String phonenumber) { + List sysUsers = userService.sysUserByPhonenumber(phonenumber); + return Result.success(sysUsers); + } } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserPhonenumberController.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserPhonenumberController.java new file mode 100644 index 0000000..89ff894 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/controller/SysUserPhonenumberController.java @@ -0,0 +1,36 @@ +package com.muyu.system.controller; + +import com.muyu.common.core.domain.Result; +import com.muyu.common.system.domain.SysUser; + +import com.muyu.system.service.impl.SysUserPhonenumberServerImpl; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * @ClassDescription: + * @JdkVersion: 1.8 + * @Author: YZL + * @Created: 2024/8/22 16:10 + */ +@Log4j2 +@RestController +@RequestMapping("customer") +@AllArgsConstructor +public class SysUserPhonenumberController { + private final SysUserPhonenumberServerImpl sysUserPhonenumberServer; + + @GetMapping("/{phonenumber}") + @Operation(summary = "根据手机号查询用户", description = "用户信息") + public Result getUserByPhonenumber(@PathVariable("phonenumber")String phonenumber) { + return Result.success((SysUser) sysUserPhonenumberServer.sysUserByphonenumber(phonenumber)); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysUserphonenumber.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysUserphonenumber.java new file mode 100644 index 0000000..5f20301 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/domain/req/SysUserphonenumber.java @@ -0,0 +1,22 @@ +package com.muyu.system.domain.req; + +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @ClassDescription: + * @JdkVersion: 1.8 + * @Author: YZL + * @Created: 2024/8/22 16:24 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "用户查询手机号", description = "根据入参进行用户手机号查询") +public class SysUserphonenumber { + private String phonenumber; +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java index 3a21ffa..d08cd18 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserMapper.java @@ -131,6 +131,7 @@ public interface SysUserMapper extends BaseMapper { * @return 结果 */ public SysUser checkPhoneUnique (String phonenumber); + List sysUserByPhonenumber (@Param("phonenumber") String phonenumber); /** * 校验email是否唯一 @@ -142,4 +143,7 @@ public interface SysUserMapper extends BaseMapper { public SysUser checkEmailUnique (String email); List selectDtptUser(@Param("sectionIds") List sectionIds); + + + } diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserPhonenumberMapper.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserPhonenumberMapper.java new file mode 100644 index 0000000..0fb296d --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/mapper/SysUserPhonenumberMapper.java @@ -0,0 +1,17 @@ +package com.muyu.system.mapper; + + + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.muyu.common.system.domain.SysUser; +import org.apache.ibatis.annotations.Mapper; + +/** + * @ClassDescription: + * @JdkVersion: 1.8 + * @Author: YZL + * @Created: 2024/8/22 16:02 + */ +@Mapper +public interface SysUserPhonenumberMapper extends BaseMapper { +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserPhonenumberServer.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserPhonenumberServer.java new file mode 100644 index 0000000..d2d53a5 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserPhonenumberServer.java @@ -0,0 +1,22 @@ +package com.muyu.system.service; + + + +import com.baomidou.mybatisplus.extension.service.IService; +import com.muyu.common.system.domain.SysUser; +import com.muyu.system.domain.req.SysUserphonenumber; + + +import java.util.List; + +/** + * @ClassDescription: + * @JdkVersion: 1.8 + * @Author: YZL + * @Created: 2024/8/22 16:03 + */ +public interface SysUserPhonenumberServer extends IService { + + ListsysUserByphonenumber(String phonenumber); + +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserService.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserService.java index f4c6167..5bd9c5e 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserService.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/SysUserService.java @@ -2,6 +2,7 @@ package com.muyu.system.service; import com.baomidou.mybatisplus.extension.service.IService; import com.muyu.common.system.domain.SysUser; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -92,6 +93,8 @@ public interface SysUserService extends IService { */ public boolean checkPhoneUnique (SysUser user); + public List sysUserByPhonenumber ( String phonenumber); + /** * 校验email是否唯一 * diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserPhonenumberServerImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserPhonenumberServerImpl.java new file mode 100644 index 0000000..31c4b67 --- /dev/null +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserPhonenumberServerImpl.java @@ -0,0 +1,38 @@ +package com.muyu.system.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + + +import com.muyu.common.system.domain.SysUser; +import com.muyu.system.domain.req.SysUserphonenumber; +import com.muyu.system.mapper.SysUserPhonenumberMapper; +import com.muyu.system.service.SysUserPhonenumberServer; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Set; +import java.util.stream.Collectors; + +/** + * @ClassDescription: + * @JdkVersion: 1.8 + * @Author: YZL + * @Created: 2024/8/22 16:04 + */ +@Service +public class SysUserPhonenumberServerImpl extends ServiceImpl implements SysUserPhonenumberServer { + + + @Override + public List sysUserByphonenumber(String phonenumber) { + LambdaQueryWrapper sysUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); + sysUserLambdaQueryWrapper.eq(SysUser::getPhonenumber,phonenumber); + List list = this.list(sysUserLambdaQueryWrapper); + return list.stream() + .map(sysUser -> SysUserphonenumber.builder() + .phonenumber(sysUser.getPhonenumber()) + .build()) + .collect(Collectors.toList()); + } +} diff --git a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java index c1d3f18..bcdc2d0 100644 --- a/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java +++ b/cloud-modules/cloud-modules-system/src/main/java/com/muyu/system/service/impl/SysUserServiceImpl.java @@ -180,6 +180,11 @@ public class SysUserServiceImpl extends ServiceImpl impl return UserConstants.UNIQUE; } + @Override + public List sysUserByPhonenumber(String phonenumber) { + return userMapper.sysUserByPhonenumber(phonenumber); + } + /** * 校验email是否唯一 * diff --git a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml index 089bbab..0e78afd 100644 --- a/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml +++ b/cloud-modules/cloud-modules-system/src/main/resources/mapper/system/SysUserMapper.xml @@ -197,6 +197,14 @@ where user_id = #{userId} + + insert into sys_user( user_id,