package com.cyl.h5.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.cyl.h5.pojo.request.RegisterRequest; import com.cyl.h5.pojo.response.RegisterResponse; import com.cyl.h5.pojo.response.ValidatePhoneResponse; import com.cyl.ums.domain.Member; import com.cyl.ums.mapper.MemberMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import java.time.LocalDateTime; import java.util.Base64; @Service @Slf4j public class H5MemberService { @Autowired private MemberMapper memberMapper; @Autowired private RedisCache redisCache; /** * 注册 * @param request 注册请求体 * @return 结果 */ public RegisterResponse register(RegisterRequest request){ RegisterResponse response = new RegisterResponse(); //校验 验证码 String key = request.getUuid() + "_" + request.getMobile(); String code = redisCache.getCacheObject(key); log.info("code:{}", code); if (null == code){ throw new RuntimeException("验证码已过期"); }else if (!code.equals(request.getCode())){ throw new RuntimeException("验证码错误"); } //删除缓存 redisCache.deleteObject(key); //创建会员 Member member = new Member(); member.setPhone(request.getMobile()); member.setPassword(SecurityUtils.encryptPassword(request.getPassword())); member.setNickname("用户" + request.getMobile()); member.setCreateTime(LocalDateTime.now()); memberMapper.insert(member); //TODO 返回封装了token和member信息的response return response; } public ValidatePhoneResponse validate(String phone) { ValidatePhoneResponse response = new ValidatePhoneResponse(); byte[] decodedBytes = Base64.getDecoder().decode(phone); phone = new String(decodedBytes); QueryWrapper qw = new QueryWrapper<>(); qw.eq("phone", phone); Member member = memberMapper.selectOne(qw); if (member != null){ throw new RuntimeException("该手机号已被占用"); } response.setIfSuccess(true); response.setMessage("该手机号可用"); return response; } }