嘉宝宝登录奥
parent
17f2146e6e
commit
11f944e204
|
@ -8,6 +8,8 @@
|
||||||
<option name="originalFiles">
|
<option name="originalFiles">
|
||||||
<list>
|
<list>
|
||||||
<option value="$PROJECT_DIR$/pom.xml" />
|
<option value="$PROJECT_DIR$/pom.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/bwie-modules/bwie-system/pom.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/bwie-auth/pom.xml" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
|
@ -16,6 +16,7 @@
|
||||||
<maven.compiler.target>8</maven.compiler.target>
|
<maven.compiler.target>8</maven.compiler.target>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<!-- 项目公共 依赖 -->
|
<!-- 项目公共 依赖 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
|
@ -27,5 +28,11 @@
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<!-- SpringCloud Openfeign -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.cloud</groupId>
|
||||||
|
<artifactId>spring-cloud-starter-openfeign</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
|
|
@ -3,7 +3,9 @@ package com.bwie;
|
||||||
import com.bwie.common.handler.GlobalExceptionHandle;
|
import com.bwie.common.handler.GlobalExceptionHandle;
|
||||||
import com.bwie.common.redis.RedisCache;
|
import com.bwie.common.redis.RedisCache;
|
||||||
|
|
||||||
|
import com.bwie.common.remote.RemoteLoginService;
|
||||||
import com.bwie.common.remote.factory.RemoteHouseFactory;
|
import com.bwie.common.remote.factory.RemoteHouseFactory;
|
||||||
|
import com.bwie.common.remote.factory.RemoteLoginFactory;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
|
@ -14,7 +16,8 @@ import org.springframework.context.annotation.Import;
|
||||||
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
|
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
|
||||||
@EnableDiscoveryClient
|
@EnableDiscoveryClient
|
||||||
@EnableFeignClients("com.bwie.**")
|
@EnableFeignClients("com.bwie.**")
|
||||||
@Import({GlobalExceptionHandle.class, RedisCache.class, RemoteHouseFactory.class})
|
@Import({GlobalExceptionHandle.class, RedisCache.class,
|
||||||
|
RemoteLoginFactory.class})
|
||||||
public class AuthApp {
|
public class AuthApp {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
@ -3,21 +3,23 @@ package com.bwie.auth.controller;
|
||||||
import com.bwie.auth.service.AuthService;
|
import com.bwie.auth.service.AuthService;
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
import com.bwie.common.domain.request.LoginRequest;
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
|
import com.bwie.common.domain.request.PhoneLoginRequest;
|
||||||
import com.bwie.common.domain.request.UserReq;
|
import com.bwie.common.domain.request.UserReq;
|
||||||
import com.bwie.common.domain.request.UserRequest;
|
import com.bwie.common.domain.request.UserRequest;
|
||||||
|
import com.bwie.common.domain.response.system.UserResponse;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.PathVariable;
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class AuthController {
|
public class AuthController {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private AuthService authService;
|
private final AuthService authService;
|
||||||
|
|
||||||
|
public AuthController(AuthService authService) {
|
||||||
|
this.authService = authService;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 登录
|
* 登录
|
||||||
|
@ -25,11 +27,12 @@ public class AuthController {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public Result login(@RequestBody LoginRequest loginRequest){
|
public Result<UserResponse> login(@RequestBody LoginRequest loginRequest){
|
||||||
return authService.login(loginRequest);
|
return Result.success(
|
||||||
|
authService.login(loginRequest)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 注册
|
* 注册
|
||||||
* @param userReq
|
* @param userReq
|
||||||
|
@ -45,29 +48,46 @@ public class AuthController {
|
||||||
* @param userTel
|
* @param userTel
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/sendCode/{userTel}")
|
@GetMapping("/sendCode/{userTel}")
|
||||||
public Result sendCode(@PathVariable("userTel") String userTel){
|
public Result sencCode(@PathVariable("userTel") String userTel){
|
||||||
return authService.sendCode(userTel);
|
return authService.sendCode(userTel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 手机号登录
|
* 手机号登录
|
||||||
* @param userRequest
|
* @param userTel
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/sendCode/{userTel}")
|
||||||
|
public Result sendCode(@PathVariable String userTel){
|
||||||
|
|
||||||
|
Result result = authService.sencCode(userTel);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取验证码
|
||||||
|
* @param phoneLoginRequest
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/phoneLogin")
|
@PostMapping("/phoneLogin")
|
||||||
public Result phoneLogin(@RequestBody UserRequest userRequest){
|
public Result phoneLogin1(@RequestBody PhoneLoginRequest phoneLoginRequest){
|
||||||
return authService.phoneLogin(userRequest);
|
Result result = authService.phoneLogin(phoneLoginRequest);
|
||||||
|
|
||||||
|
return Result.success(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取用户信息
|
* 获取用户信息
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@PostMapping("/info")
|
@GetMapping("/info")
|
||||||
public Result info(){
|
public Result<User> getInfo(){
|
||||||
User user = authService.info();
|
return Result.success(
|
||||||
return Result.success(user);
|
authService.getInfo()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,20 +2,25 @@ package com.bwie.auth.service;
|
||||||
|
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
import com.bwie.common.domain.request.LoginRequest;
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
|
import com.bwie.common.domain.request.PhoneLoginRequest;
|
||||||
import com.bwie.common.domain.request.UserReq;
|
import com.bwie.common.domain.request.UserReq;
|
||||||
import com.bwie.common.domain.request.UserRequest;
|
import com.bwie.common.domain.request.UserRequest;
|
||||||
|
import com.bwie.common.domain.response.system.UserResponse;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
|
|
||||||
public interface AuthService {
|
public interface AuthService {
|
||||||
|
|
||||||
|
|
||||||
Result login(LoginRequest loginRequest);
|
|
||||||
|
|
||||||
Result reg(UserReq userReq);
|
Result reg(UserReq userReq);
|
||||||
|
|
||||||
Result sendCode(String userTel);
|
Result sendCode(String userTel);
|
||||||
|
|
||||||
Result phoneLogin(UserRequest userRequest);
|
UserResponse login(LoginRequest loginRequest);
|
||||||
|
|
||||||
User info();
|
User getInfo();
|
||||||
|
|
||||||
|
Result sencCode(String userTel);
|
||||||
|
|
||||||
|
Result phoneLogin(PhoneLoginRequest phoneLoginRequest);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.bwie.auth.service.impl;
|
||||||
import cn.hutool.core.lang.Assert;
|
import cn.hutool.core.lang.Assert;
|
||||||
import cn.hutool.core.util.RandomUtil;
|
import cn.hutool.core.util.RandomUtil;
|
||||||
import cn.hutool.crypto.SecureUtil;
|
import cn.hutool.crypto.SecureUtil;
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.bwie.auth.service.AuthService;
|
import com.bwie.auth.service.AuthService;
|
||||||
import com.bwie.common.constant.JwtConstants;
|
import com.bwie.common.constant.JwtConstants;
|
||||||
|
@ -10,11 +11,13 @@ import com.bwie.common.constant.TokenConstants;
|
||||||
|
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
import com.bwie.common.domain.request.LoginRequest;
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
|
import com.bwie.common.domain.request.PhoneLoginRequest;
|
||||||
import com.bwie.common.domain.request.UserReq;
|
import com.bwie.common.domain.request.UserReq;
|
||||||
import com.bwie.common.domain.request.UserRequest;
|
import com.bwie.common.domain.request.UserRequest;
|
||||||
import com.bwie.common.domain.response.system.UserResponse;
|
import com.bwie.common.domain.response.system.UserResponse;
|
||||||
import com.bwie.common.redis.RedisCache;
|
import com.bwie.common.redis.RedisCache;
|
||||||
import com.bwie.common.remote.RemoteHouseService;
|
import com.bwie.common.remote.RemoteHouseService;
|
||||||
|
import com.bwie.common.remote.RemoteLoginService;
|
||||||
import com.bwie.common.result.BizException;
|
import com.bwie.common.result.BizException;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
import com.bwie.common.utils.IdUtils;
|
import com.bwie.common.utils.IdUtils;
|
||||||
|
@ -22,17 +25,22 @@ import com.bwie.common.utils.JwtUtils;
|
||||||
import com.bwie.common.utils.StringUtils;
|
import com.bwie.common.utils.StringUtils;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.data.redis.core.StringRedisTemplate;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class AuthServiceImpl implements AuthService {
|
public class AuthServiceImpl implements AuthService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RemoteHouseService remoteLoginService;
|
private RemoteLoginService remoteLoginService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StringRedisTemplate redisTemplate;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RedisCache redisCache;
|
private RedisCache redisCache;
|
||||||
|
@ -42,31 +50,41 @@ public class AuthServiceImpl implements AuthService {
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result login(LoginRequest loginRequest) {
|
public UserResponse login(LoginRequest loginRequest) {
|
||||||
|
|
||||||
User builder = User.builder()
|
Assert.isTrue(
|
||||||
.userName(loginRequest.getUserName())
|
!StringUtils.isAnyBlank(loginRequest.getUserPwd(),
|
||||||
.userPassword(loginRequest.getUserPwd()).build();
|
loginRequest.getUserName()),"账号或密码不能为空"
|
||||||
Result<User> result = remoteLoginService.login(builder);
|
);
|
||||||
|
Result<User> result = remoteLoginService.login(loginRequest);
|
||||||
User user = result.getData();
|
User user = result.getData();
|
||||||
Assert.notNull(
|
Assert.notNull(user,"该账号不是系统用户");
|
||||||
user, "账号为空"
|
|
||||||
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
|
String userKey = UUID.randomUUID().toString().replaceAll("-", "");
|
||||||
|
map.put(JwtConstants.USER_KEY,userKey);
|
||||||
|
map.put(JwtConstants.DETAILS_USERNAME,user.getUserName());
|
||||||
|
map.put(JwtConstants.DETAILS_USER_ID,user.getUserId());
|
||||||
|
String token = JwtUtils.createToken(map);
|
||||||
|
redisCache.setCacheObject(
|
||||||
|
TokenConstants.LOGIN_TOKEN_KEY+userKey,
|
||||||
|
JSON.toJSONString(user),
|
||||||
|
TokenConstants.EXPIRATION,
|
||||||
|
TimeUnit.SECONDS
|
||||||
);
|
);
|
||||||
SecureUtil.md5(
|
return UserResponse.builder()
|
||||||
user.getUserSalt() + loginRequest.getUserPwd()
|
.token(token)
|
||||||
);
|
.expired(TokenConstants.EXPIRATION)
|
||||||
return Result.success("登陆成功");
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result reg(UserReq userReq) {
|
public Result reg(UserReq userReq) {
|
||||||
String salt = RandomUtil.randomString(6);
|
String password = SecureUtil.md5(userReq.getUserPassword() + "|" +"");
|
||||||
String password = SecureUtil.md5(userReq.getUserPassword() + "|" + salt);
|
|
||||||
Result result = remoteLoginService.register(
|
Result result = remoteLoginService.register(
|
||||||
User.builder()
|
User.builder()
|
||||||
.userName(userReq.getUserName())
|
.userName(userReq.getUserName())
|
||||||
.userPassword(password)
|
.userPassword(password)
|
||||||
.userSalt(salt)
|
|
||||||
.userTel(userReq.getUserTel())
|
.userTel(userReq.getUserTel())
|
||||||
.userStatus(userReq.getUserStatus())
|
.userStatus(userReq.getUserStatus())
|
||||||
.userRole(userReq.getUserRole())
|
.userRole(userReq.getUserRole())
|
||||||
|
@ -84,48 +102,59 @@ public class AuthServiceImpl implements AuthService {
|
||||||
if(null == user){
|
if(null == user){
|
||||||
throw new BizException(408,"请先注册手机号");
|
throw new BizException(408,"请先注册手机号");
|
||||||
}
|
}
|
||||||
String code = RandomUtil.randomNumbers(6);
|
String code = RandomUtil.randomNumbers(4);
|
||||||
redisCache.setCacheObject("Send_sms_"+userTel,code);
|
redisCache.setCacheObject("Send_sms_"+userTel,code);
|
||||||
|
|
||||||
return Result.success("验证码为:"+code,"发送成功");
|
return Result.success("验证码为:"+code,"发送成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result phoneLogin(UserRequest userRequest) {
|
public Result sencCode(String userTel) {
|
||||||
Result<User> result = remoteLoginService.findByPhone(userRequest.getUserTel());
|
Result<User> result = remoteLoginService.phoneLogin(userTel);
|
||||||
|
if(StringUtils.isNull(result.getData())){
|
||||||
|
return Result.error("手机号不存在");
|
||||||
|
}
|
||||||
|
String code = RandomUtil.randomNumbers(4);
|
||||||
|
System.out.println("验证码为:"+code);
|
||||||
|
redisTemplate.opsForValue().set(userTel,code,5,TimeUnit.MINUTES);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result phoneLogin(PhoneLoginRequest phoneLoginRequest) {
|
||||||
|
Result<User> result = remoteLoginService.phoneLogin(phoneLoginRequest.getUserTel());
|
||||||
User user = result.getData();
|
User user = result.getData();
|
||||||
if(null != user){
|
if(null==user){
|
||||||
throw new BizException(408,"请先注册");
|
return Result.error("手机号不存在");
|
||||||
}
|
}
|
||||||
if(StringUtils.isAnyBlank(userRequest.getUserTel(),userRequest.getUserCode())){
|
if(!redisTemplate.hasKey(phoneLoginRequest.getUserTel())){
|
||||||
throw new BizException(408,"手机号验证码错误");
|
return Result.error("验证码过期");
|
||||||
}
|
}
|
||||||
String code = redisCache.getCacheObject("send_sms_" + userRequest.getUserTel());
|
String code = redisTemplate.opsForValue().get(phoneLoginRequest.getUserTel());
|
||||||
if(StringUtils.isAnyBlank(code)){
|
if(!phoneLoginRequest.getUserCode().equals(code)){
|
||||||
throw new BizException(408,"验证码已过期");
|
return Result.error("验证码错误");
|
||||||
}
|
|
||||||
if(!code.equals(userRequest.getUserCode())){
|
|
||||||
throw new BizException(408,"验证码错误");
|
|
||||||
}
|
}
|
||||||
HashMap<String, Object> map = new HashMap<>();
|
HashMap<String, Object> map = new HashMap<>();
|
||||||
String userKey = IdUtils.genId();
|
String userKey = UUID.randomUUID().toString().replaceAll("-","");
|
||||||
map.put(JwtConstants.USER_KEY,userKey);
|
map.put(JwtConstants.USER_KEY,userKey);
|
||||||
String token = JwtUtils.createToken(map);
|
String token = JwtUtils.createToken(map);
|
||||||
redisCache.setCacheObject(TokenConstants.TOKEN+userKey, JSONObject.toJSONString(user),TokenConstants.EXPIRATION, TimeUnit.HOURS);
|
redisCache.setCacheObject(TokenConstants.TOKEN+token, user, TokenConstants.EXPIRATION, TimeUnit.HOURS);
|
||||||
|
|
||||||
UserResponse userResponse = new UserResponse();
|
UserResponse userResponse = new UserResponse();
|
||||||
userResponse.setToken(token);
|
userResponse.setToken(token);
|
||||||
userResponse.setExpired("15MIN");
|
userResponse.setExpired(TokenConstants.EXPIRATION);
|
||||||
|
return Result.success(userResponse,"登陆成功");
|
||||||
return Result.success(userResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public User info() {
|
public User getInfo() {
|
||||||
String token = request.getHeader(TokenConstants.TOKEN);
|
String token = request.getHeader(TokenConstants.TOKEN);
|
||||||
Claims claims = JwtUtils.parseToken(token);
|
Claims claims = JwtUtils.parseToken(token);
|
||||||
String userKey = JwtUtils.getUserKey(claims);
|
String userKey = JwtUtils.getUserKey(claims);
|
||||||
String user = redisCache.getCacheObject(TokenConstants.TOKEN + userKey);
|
String cacheObject = redisCache.getCacheObject(TokenConstants.LOGIN_TOKEN_KEY + userKey);
|
||||||
return JSONObject.parseObject(user,User.class);
|
return JSONObject.parseObject(cacheObject, User.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,10 +34,6 @@ public class User {
|
||||||
密码
|
密码
|
||||||
*/
|
*/
|
||||||
private String userPassword;
|
private String userPassword;
|
||||||
/*
|
|
||||||
盐
|
|
||||||
*/
|
|
||||||
private String userSalt;
|
|
||||||
/*
|
/*
|
||||||
手机号
|
手机号
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.bwie.common.domain.request;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PhoneLoginRequest {
|
||||||
|
|
||||||
|
private String userTel;
|
||||||
|
|
||||||
|
private String userCode;
|
||||||
|
|
||||||
|
}
|
|
@ -14,10 +14,6 @@ public class UserReq {
|
||||||
密码
|
密码
|
||||||
*/
|
*/
|
||||||
private String userPassword;
|
private String userPassword;
|
||||||
/*
|
|
||||||
盐
|
|
||||||
*/
|
|
||||||
private String userSalt;
|
|
||||||
/*
|
/*
|
||||||
手机号
|
手机号
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,6 +13,6 @@ public class UserResponse {
|
||||||
|
|
||||||
private String token;
|
private String token;
|
||||||
|
|
||||||
private String expired;
|
private Long expired;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ public interface RemoteHouseService {
|
||||||
@GetMapping("/list")
|
@GetMapping("/list")
|
||||||
public Result<List<HouseEsRequest>> getHouseEsList();
|
public Result<List<HouseEsRequest>> getHouseEsList();
|
||||||
|
|
||||||
@PostMapping("/shouall")
|
@GetMapping("/shouall")
|
||||||
public Result<List<House>> shouall();
|
public Result<List<House>> shouall();
|
||||||
|
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.bwie.common.remote;
|
||||||
|
|
||||||
|
|
||||||
|
import com.bwie.common.constant.ServerNameConstants;
|
||||||
|
import com.bwie.common.domain.User;
|
||||||
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
|
import com.bwie.common.remote.factory.RemoteLoginFactory;
|
||||||
|
import com.bwie.common.result.Result;
|
||||||
|
import org.springframework.cloud.openfeign.FeignClient;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
|
||||||
|
@FeignClient(
|
||||||
|
name = ServerNameConstants.SYSTEM_NAME,
|
||||||
|
fallbackFactory = RemoteLoginFactory.class
|
||||||
|
)
|
||||||
|
public interface RemoteLoginService {
|
||||||
|
|
||||||
|
@PostMapping("/login")
|
||||||
|
Result<User> login(@RequestBody LoginRequest loginRequest);
|
||||||
|
|
||||||
|
@PostMapping("register")
|
||||||
|
Result register(@RequestBody User user);
|
||||||
|
|
||||||
|
@GetMapping("/findByPhone/{userTel}")
|
||||||
|
Result<User> findByPhone(@PathVariable("userTel") String userTel);
|
||||||
|
|
||||||
|
@PostMapping("/phoneLogin/{userTel}")
|
||||||
|
Result<User> phoneLogin(@PathVariable String userTel);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,45 @@
|
||||||
|
package com.bwie.common.remote.factory;
|
||||||
|
|
||||||
|
import com.bwie.common.domain.User;
|
||||||
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
|
import com.bwie.common.remote.RemoteLoginService;
|
||||||
|
import com.bwie.common.result.Result;
|
||||||
|
import lombok.extern.java.Log;
|
||||||
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.cloud.openfeign.FallbackFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@Log4j2
|
||||||
|
public class RemoteLoginFactory implements FallbackFactory<RemoteLoginService> {
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RemoteLoginService create(Throwable cause) {
|
||||||
|
return new RemoteLoginService() {
|
||||||
|
@Override
|
||||||
|
public Result<User> login(LoginRequest loginRequest) {
|
||||||
|
log.error("登录失败{}",cause.getMessage(),cause);
|
||||||
|
return Result.error(cause.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result register(User user) {
|
||||||
|
log.error("注册失败{}",cause.getMessage(),cause);
|
||||||
|
return Result.error(cause.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<User> findByPhone(String userTel) {
|
||||||
|
log.error("查询失败{}",cause.getMessage(),cause);
|
||||||
|
return Result.error(cause.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Result<User> phoneLogin(String userTel) {
|
||||||
|
log.error("登录失败{}",cause.getMessage(),cause);
|
||||||
|
return Result.error(cause.getMessage());
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,10 +7,12 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
|
||||||
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
|
||||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
|
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
|
||||||
@EnableFeignClients("com.bwie.**")
|
@EnableFeignClients("com.bwie.**")
|
||||||
@EnableDiscoveryClient
|
@EnableDiscoveryClient
|
||||||
|
@EnableScheduling
|
||||||
public class EsApplication {
|
public class EsApplication {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
SpringApplication.run(EsApplication.class);
|
SpringApplication.run(EsApplication.class);
|
||||||
|
|
|
@ -3,6 +3,7 @@ package com.bwie.es.controller;
|
||||||
import com.bwie.common.domain.House;
|
import com.bwie.common.domain.House;
|
||||||
import com.bwie.common.domain.request.HouseEsRequest;
|
import com.bwie.common.domain.request.HouseEsRequest;
|
||||||
import com.bwie.common.domain.request.HouseFindRequest;
|
import com.bwie.common.domain.request.HouseFindRequest;
|
||||||
|
import com.bwie.common.domain.request.ManagementRequest;
|
||||||
import com.bwie.common.result.PageResult;
|
import com.bwie.common.result.PageResult;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
import com.bwie.es.service.EsListService;
|
import com.bwie.es.service.EsListService;
|
||||||
|
@ -12,6 +13,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
|
@ -38,6 +40,15 @@ public class EsController {
|
||||||
esListService.managementSync(list);
|
esListService.managementSync(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/managementList")
|
||||||
|
public Result managementList(@RequestBody ManagementRequest managementRequest){
|
||||||
|
return esListService.managementList(managementRequest);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/printDocument")
|
||||||
|
public House printDocument(String id) throws IOException {
|
||||||
|
return esListService.printDocument(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,20 @@
|
||||||
package com.bwie.es.service;
|
package com.bwie.es.service;
|
||||||
|
|
||||||
import com.bwie.common.domain.House;
|
import com.bwie.common.domain.House;
|
||||||
|
import com.bwie.common.domain.request.ManagementRequest;
|
||||||
|
import com.bwie.common.result.Result;
|
||||||
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public interface EsListService {
|
public interface EsListService {
|
||||||
|
|
||||||
public void managementSync(List<House> list);
|
public void managementSync(List<House> list);
|
||||||
|
|
||||||
|
public Result managementList(ManagementRequest managementRequest);
|
||||||
|
|
||||||
|
public House printDocument(String id) throws IOException;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,19 +1,34 @@
|
||||||
package com.bwie.es.service.impl;
|
package com.bwie.es.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.bwie.common.domain.House;
|
import com.bwie.common.domain.House;
|
||||||
import com.bwie.common.domain.request.ManagementRequest;
|
import com.bwie.common.domain.request.ManagementRequest;
|
||||||
import com.bwie.common.remote.RemoteHouseService;
|
import com.bwie.common.remote.RemoteHouseService;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
import com.bwie.es.service.EsListService;
|
import com.bwie.es.service.EsListService;
|
||||||
|
import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest;
|
||||||
import org.elasticsearch.action.bulk.BulkRequest;
|
import org.elasticsearch.action.bulk.BulkRequest;
|
||||||
|
import org.elasticsearch.action.bulk.BulkResponse;
|
||||||
|
import org.elasticsearch.action.get.GetRequest;
|
||||||
|
import org.elasticsearch.action.get.GetResponse;
|
||||||
import org.elasticsearch.action.index.IndexRequest;
|
import org.elasticsearch.action.index.IndexRequest;
|
||||||
|
import org.elasticsearch.action.search.SearchRequest;
|
||||||
|
import org.elasticsearch.action.search.SearchResponse;
|
||||||
|
import org.elasticsearch.action.support.master.AcknowledgedResponse;
|
||||||
import org.elasticsearch.client.RequestOptions;
|
import org.elasticsearch.client.RequestOptions;
|
||||||
import org.elasticsearch.client.RestHighLevelClient;
|
import org.elasticsearch.client.RestHighLevelClient;
|
||||||
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||||
|
import org.elasticsearch.index.query.QueryBuilders;
|
||||||
|
import org.elasticsearch.search.SearchHit;
|
||||||
|
import org.elasticsearch.search.SearchHits;
|
||||||
|
import org.elasticsearch.search.builder.SearchSourceBuilder;
|
||||||
import org.elasticsearch.xcontent.XContentType;
|
import org.elasticsearch.xcontent.XContentType;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
|
@ -31,23 +46,91 @@ public class EsListServiceImpl implements EsListService {
|
||||||
public void managementSync(List<House> list){
|
public void managementSync(List<House> list){
|
||||||
try {
|
try {
|
||||||
BulkRequest bulkRequest = new BulkRequest();
|
BulkRequest bulkRequest = new BulkRequest();
|
||||||
list.forEach(house -> {
|
list.forEach(houseEsRequest -> {
|
||||||
bulkRequest.add(
|
bulkRequest.add(
|
||||||
new IndexRequest("")
|
new IndexRequest("houes")
|
||||||
.id(JSON.toJSONString(house.getHouseTypeId()))
|
.id(houseEsRequest.getId().toString())
|
||||||
.source(JSON.toJSONString(house), XContentType.JSON)
|
.source(JSONObject.toJSONString(houseEsRequest), XContentType.JSON)
|
||||||
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
BulkResponse bulk = client.bulk(bulkRequest, RequestOptions.DEFAULT);
|
||||||
} catch (IOException e) {
|
Assert.isTrue(!bulk.hasFailures(),"添加失败");
|
||||||
|
} catch (Exception e) {
|
||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public Result managementList(ManagementRequest managementRequest){
|
||||||
|
|
||||||
// @Override
|
|
||||||
// public Result managementList(ManagementRequest managementRequest){
|
ArrayList<House> houses = new ArrayList<>();
|
||||||
|
SearchRequest searchRequest = new SearchRequest("houes");
|
||||||
|
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
|
||||||
|
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
|
||||||
|
sourceBuilder.from((managementRequest.getPageNum()-1)*managementRequest.getPageSize());
|
||||||
|
sourceBuilder.size(managementRequest.getPageSize());
|
||||||
|
// if(managementRequest.){
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
sourceBuilder.query(boolQueryBuilder);
|
||||||
|
searchRequest.source(sourceBuilder);
|
||||||
|
try {
|
||||||
|
SearchResponse search = client.search(searchRequest, RequestOptions.DEFAULT);
|
||||||
|
SearchHits hits = search.getHits();
|
||||||
|
for (SearchHit hit : hits.getHits()) {
|
||||||
|
String sourceAsString = hit.getSourceAsString();
|
||||||
|
House house = JSON.parseObject(sourceAsString, House.class);
|
||||||
|
houses.add(house);
|
||||||
|
}
|
||||||
|
}catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
return Result.success(houses);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public GetResponse getDocumentById(String documentId) throws IOException {
|
||||||
|
GetRequest getRequest = new GetRequest("houes", documentId);
|
||||||
|
return client.get(getRequest, RequestOptions.DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 逻辑删除内容
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public House printDocument(String id) throws IOException {
|
||||||
|
House house = new House();
|
||||||
|
GetResponse response = getDocumentById(id);
|
||||||
|
if (response.isExists()) {
|
||||||
|
String sourceAsString = response.getSourceAsString();
|
||||||
|
house = JSON.parseObject(sourceAsString, House.class);
|
||||||
|
System.out.println("这是个啥内容:::::"+response.getSourceAsString()); // 输出JSON格式的完整文档内容
|
||||||
|
DeleteIndexRequest request = new DeleteIndexRequest(id);
|
||||||
|
AcknowledgedResponse delete = client.indices().delete(request, RequestOptions.DEFAULT);
|
||||||
|
} else {
|
||||||
|
System.out.println("Document not found with ID: " + id);
|
||||||
|
}
|
||||||
|
return house;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class EsServiceImpl implements EsService {
|
||||||
@Override
|
@Override
|
||||||
public void syncHouse(List<HouseEsRequest> list) {
|
public void syncHouse(List<HouseEsRequest> list) {
|
||||||
try {
|
try {
|
||||||
BulkRequest bulkRequest = new BulkRequest("house");
|
BulkRequest bulkRequest = new BulkRequest();
|
||||||
list.forEach(houseEsRequest -> {
|
list.forEach(houseEsRequest -> {
|
||||||
bulkRequest.add(
|
bulkRequest.add(
|
||||||
new IndexRequest("house")
|
new IndexRequest("house")
|
||||||
|
|
|
@ -5,11 +5,13 @@ import com.bwie.common.domain.request.HouseEsRequest;
|
||||||
|
|
||||||
import com.bwie.common.remote.RemoteHouseService;
|
import com.bwie.common.remote.RemoteHouseService;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
|
import com.bwie.es.service.EsListService;
|
||||||
import com.bwie.es.service.EsService;
|
import com.bwie.es.service.EsService;
|
||||||
|
|
||||||
import com.xxl.job.core.handler.annotation.XxlJob;
|
import com.xxl.job.core.handler.annotation.XxlJob;
|
||||||
|
|
||||||
import lombok.extern.log4j.Log4j2;
|
import lombok.extern.log4j.Log4j2;
|
||||||
|
import org.springframework.scheduling.annotation.Scheduled;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -22,17 +24,21 @@ public class SyncHouseData {
|
||||||
private final RemoteHouseService remoteHouseService;
|
private final RemoteHouseService remoteHouseService;
|
||||||
private final EsService esService;
|
private final EsService esService;
|
||||||
|
|
||||||
public SyncHouseData(RemoteHouseService remoteHouseService,
|
private final EsListService esListService;
|
||||||
EsService esService) {
|
|
||||||
|
public SyncHouseData(RemoteHouseService remoteHouseService,EsService esService, EsListService esListService) {
|
||||||
this.remoteHouseService = remoteHouseService;
|
this.remoteHouseService = remoteHouseService;
|
||||||
this.esService = esService;
|
this.esService = esService;
|
||||||
|
this.esListService = esListService;
|
||||||
}
|
}
|
||||||
|
|
||||||
@XxlJob("managementList")
|
@Scheduled(cron = "0/30 * * * * *")
|
||||||
public void managementList(){
|
public void managementList(){
|
||||||
Result<List<House>> shouall = remoteHouseService.shouall();
|
Result<List<House>> shouall = remoteHouseService.shouall();
|
||||||
List<House> data = shouall.getData();
|
List<House> data = shouall.getData();
|
||||||
|
if(data!=null){
|
||||||
|
esListService.managementSync(data);
|
||||||
|
}
|
||||||
log.info("房源管理未卖出同步定时器启动>>>>>>>>>>");
|
log.info("房源管理未卖出同步定时器启动>>>>>>>>>>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,3 @@ spring:
|
||||||
shared-configs:
|
shared-configs:
|
||||||
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
|
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
|
||||||
|
|
||||||
# 将mapper接口所在包的日志级别改成debug,可以在控制台打印es
|
|
||||||
logging:
|
|
||||||
level:
|
|
||||||
org.apache.http: trace
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ public class HouseController {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/shouall")
|
@GetMapping("/shouall")
|
||||||
public Result<List<House>> shouall(){
|
public Result<List<House>> shouall(){
|
||||||
return homeListService.shouall();
|
return homeListService.shouall();
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.bwie.home.mapper.HomeListMapper">
|
<mapper namespace="com.bwie.home.mapper.HomeListMapper">
|
||||||
<select id="shouall" resultType="com.bwie.common.domain.House">
|
<select id="shouall" resultType="com.bwie.common.domain.House">
|
||||||
select * from house where is_success = 1
|
select * from house where is_delete = 0 and is_success = 0
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
@ -1,17 +1,23 @@
|
||||||
package com.bwie.user.controller;
|
package com.bwie.user.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.alibaba.nacos.shaded.org.checkerframework.checker.units.qual.A;
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
import com.bwie.common.domain.request.UserRequest;
|
import com.bwie.common.domain.request.UserRequest;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
import com.bwie.user.service.UserService;
|
import com.bwie.user.service.UserService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Past;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
public class UserController {
|
public class UserController {
|
||||||
|
|
||||||
|
|
||||||
private final UserService userService;
|
@Autowired
|
||||||
|
private UserService userService;
|
||||||
|
|
||||||
public UserController(UserService userService) {
|
public UserController(UserService userService) {
|
||||||
this.userService = userService;
|
this.userService = userService;
|
||||||
|
@ -19,10 +25,10 @@ public class UserController {
|
||||||
|
|
||||||
|
|
||||||
@PostMapping("/login")
|
@PostMapping("/login")
|
||||||
public Result<User> login(@RequestBody UserRequest userRequest){
|
public Result<User> login(@RequestBody LoginRequest loginRequest){
|
||||||
|
|
||||||
return Result.success(
|
return Result.success(
|
||||||
userService.login(userRequest)
|
userService.login(loginRequest)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,6 +43,13 @@ public class UserController {
|
||||||
return userService.findByPhone(userTel);
|
return userService.findByPhone(userTel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/phoneLogin/{userTel}")
|
||||||
|
public Result<User> phoneLogin(@PathVariable String userTel){
|
||||||
|
User user = userService.phoneLogin(userTel);
|
||||||
|
|
||||||
|
return Result.success(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,11 @@ package com.bwie.user.mapper;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
@Mapper
|
@Mapper
|
||||||
public interface UserMapper extends BaseMapper<User> {
|
public interface UserMapper extends BaseMapper<User> {
|
||||||
|
|
||||||
|
|
||||||
|
User phoneLogin(@Param("userTel") String userTel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,15 +3,18 @@ package com.bwie.user.service;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
import com.bwie.common.domain.request.UserRequest;
|
import com.bwie.common.domain.request.UserRequest;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
|
|
||||||
public interface UserService extends IService<User> {
|
public interface UserService extends IService<User> {
|
||||||
|
|
||||||
|
|
||||||
User login(UserRequest userRequest);
|
User login(LoginRequest loginRequest);
|
||||||
|
|
||||||
void register(User user);
|
void register(User user);
|
||||||
|
|
||||||
Result<User> findByPhone(String userTel);
|
Result<User> findByPhone(String userTel);
|
||||||
|
|
||||||
|
User phoneLogin(String userTel);
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,21 +3,25 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
|
||||||
import com.bwie.common.domain.User;
|
import com.bwie.common.domain.User;
|
||||||
|
import com.bwie.common.domain.request.LoginRequest;
|
||||||
import com.bwie.common.domain.request.UserRequest;
|
import com.bwie.common.domain.request.UserRequest;
|
||||||
import com.bwie.common.result.Result;
|
import com.bwie.common.result.Result;
|
||||||
import com.bwie.user.mapper.UserMapper;
|
import com.bwie.user.mapper.UserMapper;
|
||||||
import com.bwie.user.service.UserService;
|
import com.bwie.user.service.UserService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
|
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserMapper userMapper;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public User login(UserRequest userRequest) {
|
public User login(LoginRequest loginRequest) {
|
||||||
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(User::getUserName,userRequest.getUserName())
|
queryWrapper.eq(User::getUserName,loginRequest.getUserName())
|
||||||
.eq(User::getUserPassword,userRequest.getUserPassword());
|
.eq(User::getUserPassword,loginRequest.getUserPwd());
|
||||||
return this.getOne(queryWrapper);
|
return this.getOne(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,4 +36,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
|
||||||
.eq(User::getUserTel, userTel));
|
.eq(User::getUserTel, userTel));
|
||||||
return Result.success(user);
|
return Result.success(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public User phoneLogin(String userTel) {
|
||||||
|
|
||||||
|
return userMapper.phoneLogin(userTel);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.bwie.user.mapper.UserMapper">
|
||||||
|
|
||||||
|
|
||||||
|
<select id="phoneLogin" resultType="com.bwie.common.domain.User">
|
||||||
|
select * from user where user_tel = #{userTel}
|
||||||
|
</select>
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue