嘉宝宝登录奥

master
Guo YuKun 2024-03-29 11:00:24 +08:00
parent 17f2146e6e
commit 11f944e204
28 changed files with 400 additions and 100 deletions

View File

@ -8,6 +8,8 @@
<option name="originalFiles">
<list>
<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>
</option>
</component>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@ -16,6 +16,7 @@
<maven.compiler.target>8</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<!-- 项目公共 依赖 -->
<dependency>
@ -27,5 +28,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- SpringCloud Openfeign -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -3,7 +3,9 @@ package com.bwie;
import com.bwie.common.handler.GlobalExceptionHandle;
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.RemoteLoginFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@ -14,7 +16,8 @@ import org.springframework.context.annotation.Import;
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
@EnableDiscoveryClient
@EnableFeignClients("com.bwie.**")
@Import({GlobalExceptionHandle.class, RedisCache.class, RemoteHouseFactory.class})
@Import({GlobalExceptionHandle.class, RedisCache.class,
RemoteLoginFactory.class})
public class AuthApp {
public static void main(String[] args) {

View File

@ -3,21 +3,23 @@ package com.bwie.auth.controller;
import com.bwie.auth.service.AuthService;
import com.bwie.common.domain.User;
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.UserRequest;
import com.bwie.common.domain.response.system.UserResponse;
import com.bwie.common.result.Result;
import org.springframework.beans.factory.annotation.Autowired;
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;
import org.springframework.web.bind.annotation.*;
@RestController
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
*/
@PostMapping("/login")
public Result login(@RequestBody LoginRequest loginRequest){
return authService.login(loginRequest);
public Result<UserResponse> login(@RequestBody LoginRequest loginRequest){
return Result.success(
authService.login(loginRequest)
);
}
/**
*
* @param userReq
@ -45,29 +48,46 @@ public class AuthController {
* @param userTel
* @return
*/
@PostMapping("/sendCode/{userTel}")
public Result sendCode(@PathVariable("userTel") String userTel){
@GetMapping("/sendCode/{userTel}")
public Result sencCode(@PathVariable("userTel") String 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
*/
@PostMapping("/phoneLogin")
public Result phoneLogin(@RequestBody UserRequest userRequest){
return authService.phoneLogin(userRequest);
public Result phoneLogin1(@RequestBody PhoneLoginRequest phoneLoginRequest){
Result result = authService.phoneLogin(phoneLoginRequest);
return Result.success(result);
}
/**
*
* @return
*/
@PostMapping("/info")
public Result info(){
User user = authService.info();
return Result.success(user);
@GetMapping("/info")
public Result<User> getInfo(){
return Result.success(
authService.getInfo()
);
}
}

View File

@ -2,20 +2,25 @@ package com.bwie.auth.service;
import com.bwie.common.domain.User;
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.UserRequest;
import com.bwie.common.domain.response.system.UserResponse;
import com.bwie.common.result.Result;
public interface AuthService {
Result login(LoginRequest loginRequest);
Result reg(UserReq userReq);
Result sendCode(String userTel);
Result phoneLogin(UserRequest userRequest);
UserResponse login(LoginRequest loginRequest);
User info();
User getInfo();
Result sencCode(String userTel);
Result phoneLogin(PhoneLoginRequest phoneLoginRequest);
}

View File

@ -3,6 +3,7 @@ package com.bwie.auth.service.impl;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.crypto.SecureUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bwie.auth.service.AuthService;
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.request.LoginRequest;
import com.bwie.common.domain.request.PhoneLoginRequest;
import com.bwie.common.domain.request.UserReq;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.domain.response.system.UserResponse;
import com.bwie.common.redis.RedisCache;
import com.bwie.common.remote.RemoteHouseService;
import com.bwie.common.remote.RemoteLoginService;
import com.bwie.common.result.BizException;
import com.bwie.common.result.Result;
import com.bwie.common.utils.IdUtils;
@ -22,17 +25,22 @@ import com.bwie.common.utils.JwtUtils;
import com.bwie.common.utils.StringUtils;
import io.jsonwebtoken.Claims;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@Service
public class AuthServiceImpl implements AuthService {
@Autowired
private RemoteHouseService remoteLoginService;
private RemoteLoginService remoteLoginService;
@Autowired
private StringRedisTemplate redisTemplate;
@Autowired
private RedisCache redisCache;
@ -42,31 +50,41 @@ public class AuthServiceImpl implements AuthService {
@Override
public Result login(LoginRequest loginRequest) {
public UserResponse login(LoginRequest loginRequest) {
User builder = User.builder()
.userName(loginRequest.getUserName())
.userPassword(loginRequest.getUserPwd()).build();
Result<User> result = remoteLoginService.login(builder);
Assert.isTrue(
!StringUtils.isAnyBlank(loginRequest.getUserPwd(),
loginRequest.getUserName()),"账号或密码不能为空"
);
Result<User> result = remoteLoginService.login(loginRequest);
User user = result.getData();
Assert.notNull(
user, "账号为空"
Assert.notNull(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(
user.getUserSalt() + loginRequest.getUserPwd()
);
return Result.success("登陆成功");
return UserResponse.builder()
.token(token)
.expired(TokenConstants.EXPIRATION)
.build();
}
@Override
public Result reg(UserReq userReq) {
String salt = RandomUtil.randomString(6);
String password = SecureUtil.md5(userReq.getUserPassword() + "|" + salt);
String password = SecureUtil.md5(userReq.getUserPassword() + "|" +"");
Result result = remoteLoginService.register(
User.builder()
.userName(userReq.getUserName())
.userPassword(password)
.userSalt(salt)
.userTel(userReq.getUserTel())
.userStatus(userReq.getUserStatus())
.userRole(userReq.getUserRole())
@ -84,48 +102,59 @@ public class AuthServiceImpl implements AuthService {
if(null == user){
throw new BizException(408,"请先注册手机号");
}
String code = RandomUtil.randomNumbers(6);
String code = RandomUtil.randomNumbers(4);
redisCache.setCacheObject("Send_sms_"+userTel,code);
return Result.success("验证码为:"+code,"发送成功");
}
@Override
public Result phoneLogin(UserRequest userRequest) {
Result<User> result = remoteLoginService.findByPhone(userRequest.getUserTel());
public Result sencCode(String userTel) {
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();
if(null != user){
throw new BizException(408,"请先注册");
if(null==user){
return Result.error("手机号不存在");
}
if(StringUtils.isAnyBlank(userRequest.getUserTel(),userRequest.getUserCode())){
throw new BizException(408,"手机号验证码错误");
if(!redisTemplate.hasKey(phoneLoginRequest.getUserTel())){
return Result.error("验证码过期");
}
String code = redisCache.getCacheObject("send_sms_" + userRequest.getUserTel());
if(StringUtils.isAnyBlank(code)){
throw new BizException(408,"验证码已过期");
}
if(!code.equals(userRequest.getUserCode())){
throw new BizException(408,"验证码错误");
String code = redisTemplate.opsForValue().get(phoneLoginRequest.getUserTel());
if(!phoneLoginRequest.getUserCode().equals(code)){
return Result.error("验证码错误");
}
HashMap<String, Object> map = new HashMap<>();
String userKey = IdUtils.genId();
String userKey = UUID.randomUUID().toString().replaceAll("-","");
map.put(JwtConstants.USER_KEY,userKey);
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.setToken(token);
userResponse.setExpired("15MIN");
return Result.success(userResponse);
userResponse.setExpired(TokenConstants.EXPIRATION);
return Result.success(userResponse,"登陆成功");
}
@Override
public User info() {
public User getInfo() {
String token = request.getHeader(TokenConstants.TOKEN);
Claims claims = JwtUtils.parseToken(token);
String userKey = JwtUtils.getUserKey(claims);
String user = redisCache.getCacheObject(TokenConstants.TOKEN + userKey);
return JSONObject.parseObject(user,User.class);
String cacheObject = redisCache.getCacheObject(TokenConstants.LOGIN_TOKEN_KEY + userKey);
return JSONObject.parseObject(cacheObject, User.class);
}
}

View File

@ -34,10 +34,6 @@ public class User {
*/
private String userPassword;
/*
*/
private String userSalt;
/*
*/

View File

@ -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;
}

View File

@ -14,10 +14,6 @@ public class UserReq {
*/
private String userPassword;
/*
*/
private String userSalt;
/*
*/

View File

@ -13,6 +13,6 @@ public class UserResponse {
private String token;
private String expired;
private Long expired;
}

View File

@ -23,7 +23,7 @@ public interface RemoteHouseService {
@GetMapping("/list")
public Result<List<HouseEsRequest>> getHouseEsList();
@PostMapping("/shouall")
@GetMapping("/shouall")
public Result<List<House>> shouall();
@PostMapping("/login")

View File

@ -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);
}

View File

@ -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());
}
};
}
}

View File

@ -7,10 +7,12 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Import;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableFeignClients("com.bwie.**")
@EnableDiscoveryClient
@EnableScheduling
public class EsApplication {
public static void main(String[] args) {
SpringApplication.run(EsApplication.class);

View File

@ -3,6 +3,7 @@ package com.bwie.es.controller;
import com.bwie.common.domain.House;
import com.bwie.common.domain.request.HouseEsRequest;
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.Result;
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.RestController;
import java.io.IOException;
import java.util.List;
@RestController
@ -38,6 +40,15 @@ public class EsController {
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);
}
}

View File

@ -1,10 +1,20 @@
package com.bwie.es.service;
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;
public interface EsListService {
public void managementSync(List<House> list);
public Result managementList(ManagementRequest managementRequest);
public House printDocument(String id) throws IOException;
}

View File

@ -1,19 +1,34 @@
package com.bwie.es.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bwie.common.domain.House;
import com.bwie.common.domain.request.ManagementRequest;
import com.bwie.common.remote.RemoteHouseService;
import com.bwie.common.result.Result;
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.BulkResponse;
import org.elasticsearch.action.get.GetRequest;
import org.elasticsearch.action.get.GetResponse;
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.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.springframework.stereotype.Service;
import org.springframework.util.Assert;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Service
@ -31,23 +46,91 @@ public class EsListServiceImpl implements EsListService {
public void managementSync(List<House> list){
try {
BulkRequest bulkRequest = new BulkRequest();
list.forEach(house -> {
list.forEach(houseEsRequest -> {
bulkRequest.add(
new IndexRequest("")
.id(JSON.toJSONString(house.getHouseTypeId()))
.source(JSON.toJSONString(house), XContentType.JSON)
new IndexRequest("houes")
.id(houseEsRequest.getId().toString())
.source(JSONObject.toJSONString(houseEsRequest), XContentType.JSON)
);
});
client.bulk(bulkRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
BulkResponse bulk = client.bulk(bulkRequest, RequestOptions.DEFAULT);
Assert.isTrue(!bulk.hasFailures(),"添加失败");
} catch (Exception 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;
}
}

View File

@ -41,7 +41,7 @@ public class EsServiceImpl implements EsService {
@Override
public void syncHouse(List<HouseEsRequest> list) {
try {
BulkRequest bulkRequest = new BulkRequest("house");
BulkRequest bulkRequest = new BulkRequest();
list.forEach(houseEsRequest -> {
bulkRequest.add(
new IndexRequest("house")

View File

@ -5,11 +5,13 @@ import com.bwie.common.domain.request.HouseEsRequest;
import com.bwie.common.remote.RemoteHouseService;
import com.bwie.common.result.Result;
import com.bwie.es.service.EsListService;
import com.bwie.es.service.EsService;
import com.xxl.job.core.handler.annotation.XxlJob;
import lombok.extern.log4j.Log4j2;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.util.List;
@ -22,17 +24,21 @@ public class SyncHouseData {
private final RemoteHouseService remoteHouseService;
private final EsService esService;
public SyncHouseData(RemoteHouseService remoteHouseService,
EsService esService) {
private final EsListService esListService;
public SyncHouseData(RemoteHouseService remoteHouseService,EsService esService, EsListService esListService) {
this.remoteHouseService = remoteHouseService;
this.esService = esService;
this.esListService = esListService;
}
@XxlJob("managementList")
@Scheduled(cron = "0/30 * * * * *")
public void managementList(){
Result<List<House>> shouall = remoteHouseService.shouall();
List<House> data = shouall.getData();
if(data!=null){
esListService.managementSync(data);
}
log.info("房源管理未卖出同步定时器启动>>>>>>>>>>");
}

View File

@ -34,7 +34,3 @@ spring:
shared-configs:
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
# 将mapper接口所在包的日志级别改成debug可以在控制台打印es
logging:
level:
org.apache.http: trace

View File

@ -32,7 +32,7 @@ public class HouseController {
}
@PostMapping("/shouall")
@GetMapping("/shouall")
public Result<List<House>> shouall(){
return homeListService.shouall();
}

View File

@ -2,6 +2,6 @@
<!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">
<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>
</mapper>

View File

@ -1,17 +1,23 @@
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.request.LoginRequest;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.result.Result;
import com.bwie.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.Past;
@RestController
public class UserController {
private final UserService userService;
@Autowired
private UserService userService;
public UserController(UserService userService) {
this.userService = userService;
@ -19,10 +25,10 @@ public class UserController {
@PostMapping("/login")
public Result<User> login(@RequestBody UserRequest userRequest){
public Result<User> login(@RequestBody LoginRequest loginRequest){
return Result.success(
userService.login(userRequest)
userService.login(loginRequest)
);
}
@ -37,6 +43,13 @@ public class UserController {
return userService.findByPhone(userTel);
}
@PostMapping("/phoneLogin/{userTel}")
public Result<User> phoneLogin(@PathVariable String userTel){
User user = userService.phoneLogin(userTel);
return Result.success(user);
}
}

View File

@ -3,10 +3,11 @@ package com.bwie.user.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bwie.common.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper extends BaseMapper<User> {
User phoneLogin(@Param("userTel") String userTel);
}

View File

@ -3,15 +3,18 @@ package com.bwie.user.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.LoginRequest;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.result.Result;
public interface UserService extends IService<User> {
User login(UserRequest userRequest);
User login(LoginRequest loginRequest);
void register(User user);
Result<User> findByPhone(String userTel);
User phoneLogin(String userTel);
}

View File

@ -3,21 +3,25 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.bwie.common.domain.User;
import com.bwie.common.domain.request.LoginRequest;
import com.bwie.common.domain.request.UserRequest;
import com.bwie.common.result.Result;
import com.bwie.user.mapper.UserMapper;
import com.bwie.user.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User login(UserRequest userRequest) {
public User login(LoginRequest loginRequest) {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(User::getUserName,userRequest.getUserName())
.eq(User::getUserPassword,userRequest.getUserPassword());
queryWrapper.eq(User::getUserName,loginRequest.getUserName())
.eq(User::getUserPassword,loginRequest.getUserPwd());
return this.getOne(queryWrapper);
}
@ -32,4 +36,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper,User> implements Use
.eq(User::getUserTel, userTel));
return Result.success(user);
}
@Override
public User phoneLogin(String userTel) {
return userMapper.phoneLogin(userTel);
}
}

View File

@ -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>