注册接口

1、service模块下创建子模块service_ucenter

2、创建用户数据库

3、用代码生成器生成代码

4、编写配置文件

java 复制代码
# 服务端口
server.port=8006
# 服务名
spring.application.name=service-ucenter
# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8
spring.datasource.username=guli
spring.datasource.password=123123
spring.redis.host=192.168.140.132
spring.redis.port=6379
spring.redis.database= 0
spring.redis.timeout=1800000
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=-1
#最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0
#最小空闲
#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8
#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/atguigu/ucenterservice/mapper/xml/*.xml
#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

5、启动类

java 复制代码
package com.atguigu.ucenterservice;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
@ComponentScan({"com.atguigu"})
@SpringBootApplication//取消数据源自动配置
@MapperScan("com.atguigu.ucenterservice.mapper")
public class ServiceUcApplication {
    public static void main(String[] args) {
        SpringApplication.run(ServiceUcApplication.class, args);
    }
}

6、实现controller

(1)创建RegisterVo类

java 复制代码
@Data
public class RegisterVo {
    @ApiModelProperty(value = "昵称")
    private String nickname;
    @ApiModelProperty(value = "手机号")
    private String mobile;
    @ApiModelProperty(value = "密码")
    private String password;
    @ApiModelProperty(value = "验证码")
    private String code;
}

(2)实现UcenterMemberController方法

java 复制代码
@Api(description="会员管理")
@RestController
@RequestMapping("/ucenterservice/ucenter")
@CrossOrigin
public class UcenterMemberController {
    @Autowired
    private UcenterMemberService ucenterService;
    @ApiOperation(value = "注册")
    @PostMapping("register")
    public R register(@RequestBody RegisterVo registerVo){
        ucenterService.register(registerVo);
        return R.ok();
    }
}

7、实现service

java 复制代码
//注册
@Override
public void register(RegisterVo registerVo) {
    //1获取注册信息
    String nickname = registerVo.getNickname();
    String mobile = registerVo.getMobile();
    String password = registerVo.getPassword();
    String code = registerVo.getCode();

    //2验证参数是否为空
    if(StringUtils.isEmpty(nickname)||StringUtils.isEmpty(mobile)
    ||StringUtils.isEmpty(password)||StringUtils.isEmpty(code)){
        throw new GuliException(20001,"注册信息缺失");
    }
    //3根据手机号查询是否手机号相同
    QueryWrapper<UcenterMember> wrapper = new QueryWrapper<>();
    wrapper.eq("mobile",mobile);
    Integer count = baseMapper.selectCount(wrapper);
    if(count>0){
        throw new GuliException(20001,"手机号已存在");
    }
    //4判断验证码
    String codeRedis = redisTemplate.opsForValue().get(mobile);
    if(!code.equals(codeRedis)){
        throw new GuliException(20001,"验证码错误");
    }
    //5存入数据库
    //5.1复制数据
    UcenterMember ucenterMember = new UcenterMember();
    BeanUtils.copyProperties(registerVo,ucenterMember);
    //5.2密码加密
    String pwBefore = ucenterMember.getPassword();
    String pwAfter = MD5.encrypt(pwBefore);
    ucenterMember.setPassword(pwAfter);
    //5.3手动设置
    ucenterMember.setIsDisabled(false);
ucenterMember.setAvatar("https://guli-file-190513.oss-cn-beijing.aliyuncs.com/avatar/default.jpg");
    //5.4存入数据
    int insert = baseMapper.insert(ucenterMember);
    if(insert==0){
        throw new GuliException(20001,"注册失败"); 
    }
}
相关推荐
zhongben_keji8 小时前
本地生活 APP 开发:城市 × 品类 × 履约形态的三维网格与三套账
java·大数据·生活
乐橙开放平台8 小时前
离岗检测怎么实现?通过客流相机或 AI 摄像头识别岗位区域无人状态,再推送告警消息
人工智能·笔记·后端·数码相机·物联网·自动化·音视频
code2cat9 小时前
Java工具篇之Maven:从pom.xml到测试通过的JAR
xml·java·maven
wuminyu16 小时前
JVM规范学习总结:解释器与JIT编译器如何处理JVM字节码
java·linux·c语言·jvm·c++
txxzjmzlh16 小时前
SpringBoot 配置⽂件
java·spring boot·spring
ZhengEnCi16 小时前
模型训练完整流程:从数据准备到模型上线的 10 个关键步骤(全文可跑)
后端·算法
王中阳Go16 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
Wang's Blog16 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
程序猿DD17 小时前
OctaFuse Gateway 2.18.0:MCP 接入支持 OAuth,供应商粘性绑定可视化管理
后端
骑着蜗牛撵大象32717 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm