diff --git a/service/service_user/src/main/java/com/atguigu/yygh/user/config/UserConfig.java b/service/service_user/src/main/java/com/atguigu/yygh/user/config/UserConfig.java index a2b7e0796379610d2cda3f4c396e82bce3fbc66c..9736aac13b455e122d46562db220293fe6ab4611 100644 --- a/service/service_user/src/main/java/com/atguigu/yygh/user/config/UserConfig.java +++ b/service/service_user/src/main/java/com/atguigu/yygh/user/config/UserConfig.java @@ -4,7 +4,7 @@ import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Configuration; @Configuration -@MapperScan("com.atguigu.yygh.user.mapper.UserInfoMapper") +@MapperScan("com.atguigu.yygh.user.mapper") public class UserConfig { } diff --git a/service/service_user/src/main/java/com/atguigu/yygh/user/controller/UserInfoApiController.java b/service/service_user/src/main/java/com/atguigu/yygh/user/controller/UserInfoApiController.java index 4e9072b5acd7964457795cf5510e21f3e74e68d6..b15a3f913f9436055e27cb5ef0801dfd5b2df2d5 100644 --- a/service/service_user/src/main/java/com/atguigu/yygh/user/controller/UserInfoApiController.java +++ b/service/service_user/src/main/java/com/atguigu/yygh/user/controller/UserInfoApiController.java @@ -1,11 +1,31 @@ package com.atguigu.yygh.user.controller; +import com.atguigu.yygh.user.service.UserInfoService; +import com.atguigu.yygh.vo.user.LoginVo; +import com.atguigu.yygu.common.result.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; +@Api(tags = "用户控制器") @RestController @RequestMapping("/api/user") public class UserInfoApiController { + @Autowired + private UserInfoService userInfoService; + + //用户手机号登录接口 + @ApiOperation(value = "用户手机号登录接口") + @PostMapping("login") + public Result login(@RequestBody LoginVo loginVo){ + Map info=userInfoService.loginUser(loginVo); + return Result.ok(info); + } } diff --git a/service/service_user/src/main/java/com/atguigu/yygh/user/service/UserInfoService.java b/service/service_user/src/main/java/com/atguigu/yygh/user/service/UserInfoService.java index d3375144ee4fc96e88a358d193f51fd55ac537a5..2233aa23964647b3b7a7802175e8d5222ffd707b 100644 --- a/service/service_user/src/main/java/com/atguigu/yygh/user/service/UserInfoService.java +++ b/service/service_user/src/main/java/com/atguigu/yygh/user/service/UserInfoService.java @@ -1,4 +1,10 @@ package com.atguigu.yygh.user.service; +import com.atguigu.yygh.vo.user.LoginVo; + +import java.util.Map; + public interface UserInfoService { + //用户手机号登录接口 + Map loginUser(LoginVo loginVo); } diff --git a/service/service_user/src/main/java/com/atguigu/yygh/user/service/impl/UserInfoServiceImpl.java b/service/service_user/src/main/java/com/atguigu/yygh/user/service/impl/UserInfoServiceImpl.java index 8d98fec4cdfd5a0275c9a431336834d64ff64706..c6b532613f75940f6ca03dc5374a300076e421e8 100644 --- a/service/service_user/src/main/java/com/atguigu/yygh/user/service/impl/UserInfoServiceImpl.java +++ b/service/service_user/src/main/java/com/atguigu/yygh/user/service/impl/UserInfoServiceImpl.java @@ -3,11 +3,65 @@ package com.atguigu.yygh.user.service.impl; import com.atguigu.yygh.model.user.UserInfo; import com.atguigu.yygh.user.mapper.UserInfoMapper; import com.atguigu.yygh.user.service.UserInfoService; +import com.atguigu.yygh.vo.user.LoginVo; +import com.atguigu.yygu.common.exception.YyghException; +import com.atguigu.yygu.common.helper.JwtHelper; +import com.atguigu.yygu.common.result.ResultCodeEnum; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.springframework.stereotype.Service; +import org.springframework.util.StringUtils; + +import java.util.HashMap; +import java.util.Map; @Service public class UserInfoServiceImpl extends ServiceImpl implements UserInfoService { + //用户手机号登录接口 + @Override + public Map loginUser(LoginVo loginVo) { + //从loginVo中获取输入的手机号和验证码 + String phone = loginVo.getPhone(); + String code = loginVo.getCode(); + //判断手机号和验证码是否为空 + if(StringUtils.isEmpty(phone)||StringUtils.isEmpty(code)){ + throw new YyghException(ResultCodeEnum.PARAM_ERROR); + } + //TODO 判断手机验证码和输入验证码是否一致 + + //判断是否是第一次登陆,根据手机号查询数据库,如果不存在相同的手机号就是第一次登录 + QueryWrapper wrapper=new QueryWrapper<>(); + wrapper.eq("phone",phone); + UserInfo userInfo = baseMapper.selectOne(wrapper); + if(userInfo==null){ //第一次使用这个手机号登录 + //添加信息到数据库中 + userInfo=new UserInfo(); + userInfo.setName(""); + userInfo.setPhone(phone); + userInfo.setStatus(1); + baseMapper.insert(userInfo); + } + //校验是否被禁用 + if(userInfo.getStatus() == 0) { + throw new YyghException(ResultCodeEnum.LOGIN_DISABLED_ERROR); + } + //不是第一次,直接进行登录 + //返回登录信息 + //返回登录用户名 + //返回token + Map map = new HashMap<>(); + String name = userInfo.getName(); + if(StringUtils.isEmpty(name)) { + name = userInfo.getNickName(); + } + if(StringUtils.isEmpty(name)) { + name = userInfo.getPhone(); + } + //jwt生成token字符串 + String token = JwtHelper.createToken(userInfo.getId(), name); + map.put("token",token); + return map; + } } diff --git a/service/service_user/src/main/resources/application.properties b/service/service_user/src/main/resources/application.properties index 0b58271c5052cf23e35bb8e43b27f907556b1e3c..00ea9ff0aa9fb2193ba38d2931285875cdb3a8e2 100644 --- a/service/service_user/src/main/resources/application.properties +++ b/service/service_user/src/main/resources/application.properties @@ -7,8 +7,8 @@ spring.application.name=service-user spring.profiles.active=dev # mysql数据库连接 -spring.datasource.driver-class-name=com.mysql.jdbc.Driver -spring.datasource.url=jdbc:mysql://localhost:3306/yygh_user?characterEncoding=utf-8&useSSL=false +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://localhost:3306/yygh_user?characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456