From 11f944e2044aecaf0de63d0e0289fc43b1d35c85 Mon Sep 17 00:00:00 2001 From: Guo YuKun <1458871005@qq.com> Date: Fri, 29 Mar 2024 11:00:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=98=89=E5=AE=9D=E5=AE=9D=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=A5=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/misc.xml | 2 + .idea/vcs.xml | 2 +- bwie-auth/pom.xml | 7 ++ bwie-auth/src/main/java/com/bwie/AuthApp.java | 5 +- .../bwie/auth/controller/AuthController.java | 60 ++++++---- .../com/bwie/auth/service/AuthService.java | 11 +- .../auth/service/impl/AuthServiceImpl.java | 101 +++++++++++------ .../java/com/bwie/common/domain/User.java | 4 - .../domain/request/PhoneLoginRequest.java | 18 +++ .../bwie/common/domain/request/UserReq.java | 4 - .../domain/response/system/UserResponse.java | 2 +- .../common/remote/RemoteHouseService.java | 2 +- .../common/remote/RemoteLoginService.java | 33 ++++++ .../remote/factory/RemoteLoginFactory.java | 45 ++++++++ .../main/java/com/bwie/es/EsApplication.java | 2 + .../com/bwie/es/controller/EsController.java | 11 ++ .../com/bwie/es/service/EsListService.java | 10 ++ .../es/service/impl/EsListServiceImpl.java | 103 ++++++++++++++++-- .../bwie/es/service/impl/EsServiceImpl.java | 2 +- .../java/com/bwie/es/sync/SyncHouseData.java | 14 ++- .../bwie-es/src/main/resources/bootstrap.yml | 4 - .../bwie/home/controller/HouseController.java | 2 +- .../main/resources/mapper/HomeListMapper.xml | 2 +- .../bwie/user/controller/UserController.java | 19 +++- .../java/com/bwie/user/mapper/UserMapper.java | 3 +- .../com/bwie/user/service/UserService.java | 5 +- .../user/service/impl/UserServiceImpl.java | 16 ++- .../src/main/resources/mapper/UserMapper.xml | 11 ++ 28 files changed, 400 insertions(+), 100 deletions(-) create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/request/PhoneLoginRequest.java create mode 100644 bwie-common/src/main/java/com/bwie/common/remote/RemoteLoginService.java create mode 100644 bwie-common/src/main/java/com/bwie/common/remote/factory/RemoteLoginFactory.java create mode 100644 bwie-modules/bwie-system/src/main/resources/mapper/UserMapper.xml diff --git a/.idea/misc.xml b/.idea/misc.xml index de9ec8c..eeeade4 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,6 +8,8 @@ diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 94a25f7..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/bwie-auth/pom.xml b/bwie-auth/pom.xml index 1aee564..da0bef4 100644 --- a/bwie-auth/pom.xml +++ b/bwie-auth/pom.xml @@ -16,6 +16,7 @@ 8 UTF-8 + @@ -27,5 +28,11 @@ org.springframework.boot spring-boot-starter-web + + + org.springframework.cloud + spring-cloud-starter-openfeign + + diff --git a/bwie-auth/src/main/java/com/bwie/AuthApp.java b/bwie-auth/src/main/java/com/bwie/AuthApp.java index 370ee8a..f4d5375 100644 --- a/bwie-auth/src/main/java/com/bwie/AuthApp.java +++ b/bwie-auth/src/main/java/com/bwie/AuthApp.java @@ -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) { diff --git a/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java b/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java index c34426a..3aa956e 100644 --- a/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java +++ b/bwie-auth/src/main/java/com/bwie/auth/controller/AuthController.java @@ -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 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 getInfo(){ + return Result.success( + authService.getInfo() + ); } } diff --git a/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java b/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java index d82d8f6..a23e1aa 100644 --- a/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java +++ b/bwie-auth/src/main/java/com/bwie/auth/service/AuthService.java @@ -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); } diff --git a/bwie-auth/src/main/java/com/bwie/auth/service/impl/AuthServiceImpl.java b/bwie-auth/src/main/java/com/bwie/auth/service/impl/AuthServiceImpl.java index 7402eef..1b25a81 100644 --- a/bwie-auth/src/main/java/com/bwie/auth/service/impl/AuthServiceImpl.java +++ b/bwie-auth/src/main/java/com/bwie/auth/service/impl/AuthServiceImpl.java @@ -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 result = remoteLoginService.login(builder); + Assert.isTrue( + !StringUtils.isAnyBlank(loginRequest.getUserPwd(), + loginRequest.getUserName()),"账号或密码不能为空" + ); + Result result = remoteLoginService.login(loginRequest); User user = result.getData(); - Assert.notNull( - user, "账号为空" + Assert.notNull(user,"该账号不是系统用户"); + + HashMap 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 result = remoteLoginService.findByPhone(userRequest.getUserTel()); + public Result sencCode(String userTel) { + Result 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 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 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); } + } diff --git a/bwie-common/src/main/java/com/bwie/common/domain/User.java b/bwie-common/src/main/java/com/bwie/common/domain/User.java index 4d0db20..00d53c9 100644 --- a/bwie-common/src/main/java/com/bwie/common/domain/User.java +++ b/bwie-common/src/main/java/com/bwie/common/domain/User.java @@ -34,10 +34,6 @@ public class User { 密码 */ private String userPassword; - /* - 盐 - */ - private String userSalt; /* 手机号 */ diff --git a/bwie-common/src/main/java/com/bwie/common/domain/request/PhoneLoginRequest.java b/bwie-common/src/main/java/com/bwie/common/domain/request/PhoneLoginRequest.java new file mode 100644 index 0000000..6178dc0 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/request/PhoneLoginRequest.java @@ -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; + +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/request/UserReq.java b/bwie-common/src/main/java/com/bwie/common/domain/request/UserReq.java index 564ded4..d773a55 100644 --- a/bwie-common/src/main/java/com/bwie/common/domain/request/UserReq.java +++ b/bwie-common/src/main/java/com/bwie/common/domain/request/UserReq.java @@ -14,10 +14,6 @@ public class UserReq { 密码 */ private String userPassword; - /* - 盐 - */ - private String userSalt; /* 手机号 */ diff --git a/bwie-common/src/main/java/com/bwie/common/domain/response/system/UserResponse.java b/bwie-common/src/main/java/com/bwie/common/domain/response/system/UserResponse.java index c12bb52..b6bea36 100644 --- a/bwie-common/src/main/java/com/bwie/common/domain/response/system/UserResponse.java +++ b/bwie-common/src/main/java/com/bwie/common/domain/response/system/UserResponse.java @@ -13,6 +13,6 @@ public class UserResponse { private String token; - private String expired; + private Long expired; } diff --git a/bwie-common/src/main/java/com/bwie/common/remote/RemoteHouseService.java b/bwie-common/src/main/java/com/bwie/common/remote/RemoteHouseService.java index 4ec1d0a..09f1662 100644 --- a/bwie-common/src/main/java/com/bwie/common/remote/RemoteHouseService.java +++ b/bwie-common/src/main/java/com/bwie/common/remote/RemoteHouseService.java @@ -23,7 +23,7 @@ public interface RemoteHouseService { @GetMapping("/list") public Result> getHouseEsList(); - @PostMapping("/shouall") + @GetMapping("/shouall") public Result> shouall(); @PostMapping("/login") diff --git a/bwie-common/src/main/java/com/bwie/common/remote/RemoteLoginService.java b/bwie-common/src/main/java/com/bwie/common/remote/RemoteLoginService.java new file mode 100644 index 0000000..2c9ba98 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/remote/RemoteLoginService.java @@ -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 login(@RequestBody LoginRequest loginRequest); + + @PostMapping("register") + Result register(@RequestBody User user); + + @GetMapping("/findByPhone/{userTel}") + Result findByPhone(@PathVariable("userTel") String userTel); + + @PostMapping("/phoneLogin/{userTel}") + Result phoneLogin(@PathVariable String userTel); + +} diff --git a/bwie-common/src/main/java/com/bwie/common/remote/factory/RemoteLoginFactory.java b/bwie-common/src/main/java/com/bwie/common/remote/factory/RemoteLoginFactory.java new file mode 100644 index 0000000..c9a4f55 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/remote/factory/RemoteLoginFactory.java @@ -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 { + + + @Override + public RemoteLoginService create(Throwable cause) { + return new RemoteLoginService() { + @Override + public Result 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 findByPhone(String userTel) { + log.error("查询失败{}",cause.getMessage(),cause); + return Result.error(cause.getMessage()); + } + + @Override + public Result phoneLogin(String userTel) { + log.error("登录失败{}",cause.getMessage(),cause); + return Result.error(cause.getMessage()); + } + }; + } +} diff --git a/bwie-modules/bwie-es/src/main/java/com/bwie/es/EsApplication.java b/bwie-modules/bwie-es/src/main/java/com/bwie/es/EsApplication.java index 17f2795..2dc7b55 100644 --- a/bwie-modules/bwie-es/src/main/java/com/bwie/es/EsApplication.java +++ b/bwie-modules/bwie-es/src/main/java/com/bwie/es/EsApplication.java @@ -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); diff --git a/bwie-modules/bwie-es/src/main/java/com/bwie/es/controller/EsController.java b/bwie-modules/bwie-es/src/main/java/com/bwie/es/controller/EsController.java index 6606c76..4b41b20 100644 --- a/bwie-modules/bwie-es/src/main/java/com/bwie/es/controller/EsController.java +++ b/bwie-modules/bwie-es/src/main/java/com/bwie/es/controller/EsController.java @@ -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); + } } diff --git a/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/EsListService.java b/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/EsListService.java index a25058c..4b9873b 100644 --- a/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/EsListService.java +++ b/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/EsListService.java @@ -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 list); + + public Result managementList(ManagementRequest managementRequest); + + public House printDocument(String id) throws IOException; + + } diff --git a/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsListServiceImpl.java b/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsListServiceImpl.java index 192ce47..cf4f223 100644 --- a/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsListServiceImpl.java +++ b/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsListServiceImpl.java @@ -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 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 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; + } + + + + + + + + + + + + + + + + + + + } diff --git a/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsServiceImpl.java b/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsServiceImpl.java index 66914ad..0367b05 100644 --- a/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsServiceImpl.java +++ b/bwie-modules/bwie-es/src/main/java/com/bwie/es/service/impl/EsServiceImpl.java @@ -41,7 +41,7 @@ public class EsServiceImpl implements EsService { @Override public void syncHouse(List list) { try { - BulkRequest bulkRequest = new BulkRequest("house"); + BulkRequest bulkRequest = new BulkRequest(); list.forEach(houseEsRequest -> { bulkRequest.add( new IndexRequest("house") diff --git a/bwie-modules/bwie-es/src/main/java/com/bwie/es/sync/SyncHouseData.java b/bwie-modules/bwie-es/src/main/java/com/bwie/es/sync/SyncHouseData.java index 96d637f..b88f227 100644 --- a/bwie-modules/bwie-es/src/main/java/com/bwie/es/sync/SyncHouseData.java +++ b/bwie-modules/bwie-es/src/main/java/com/bwie/es/sync/SyncHouseData.java @@ -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> shouall = remoteHouseService.shouall(); List data = shouall.getData(); - + if(data!=null){ + esListService.managementSync(data); + } log.info("房源管理未卖出同步定时器启动>>>>>>>>>>"); } diff --git a/bwie-modules/bwie-es/src/main/resources/bootstrap.yml b/bwie-modules/bwie-es/src/main/resources/bootstrap.yml index 9aa1f7e..072431a 100644 --- a/bwie-modules/bwie-es/src/main/resources/bootstrap.yml +++ b/bwie-modules/bwie-es/src/main/resources/bootstrap.yml @@ -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 diff --git a/bwie-modules/bwie-home/src/main/java/com/bwie/home/controller/HouseController.java b/bwie-modules/bwie-home/src/main/java/com/bwie/home/controller/HouseController.java index 92ae02c..7d742ee 100644 --- a/bwie-modules/bwie-home/src/main/java/com/bwie/home/controller/HouseController.java +++ b/bwie-modules/bwie-home/src/main/java/com/bwie/home/controller/HouseController.java @@ -32,7 +32,7 @@ public class HouseController { } - @PostMapping("/shouall") + @GetMapping("/shouall") public Result> shouall(){ return homeListService.shouall(); } diff --git a/bwie-modules/bwie-home/src/main/resources/mapper/HomeListMapper.xml b/bwie-modules/bwie-home/src/main/resources/mapper/HomeListMapper.xml index a2abab6..1850a3c 100644 --- a/bwie-modules/bwie-home/src/main/resources/mapper/HomeListMapper.xml +++ b/bwie-modules/bwie-home/src/main/resources/mapper/HomeListMapper.xml @@ -2,6 +2,6 @@ diff --git a/bwie-modules/bwie-system/src/main/java/com/bwie/user/controller/UserController.java b/bwie-modules/bwie-system/src/main/java/com/bwie/user/controller/UserController.java index 31e8be3..0f8e340 100644 --- a/bwie-modules/bwie-system/src/main/java/com/bwie/user/controller/UserController.java +++ b/bwie-modules/bwie-system/src/main/java/com/bwie/user/controller/UserController.java @@ -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 login(@RequestBody UserRequest userRequest){ + public Result 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 phoneLogin(@PathVariable String userTel){ + User user = userService.phoneLogin(userTel); + + return Result.success(user); + } + } diff --git a/bwie-modules/bwie-system/src/main/java/com/bwie/user/mapper/UserMapper.java b/bwie-modules/bwie-system/src/main/java/com/bwie/user/mapper/UserMapper.java index ea5e1e5..a39fc3e 100644 --- a/bwie-modules/bwie-system/src/main/java/com/bwie/user/mapper/UserMapper.java +++ b/bwie-modules/bwie-system/src/main/java/com/bwie/user/mapper/UserMapper.java @@ -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 phoneLogin(@Param("userTel") String userTel); } diff --git a/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/UserService.java b/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/UserService.java index eb63ee9..c013deb 100644 --- a/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/UserService.java +++ b/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/UserService.java @@ -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 login(UserRequest userRequest); + User login(LoginRequest loginRequest); void register(User user); Result findByPhone(String userTel); + + User phoneLogin(String userTel); } diff --git a/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/impl/UserServiceImpl.java b/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/impl/UserServiceImpl.java index 0448c91..459cb03 100644 --- a/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/impl/UserServiceImpl.java +++ b/bwie-modules/bwie-system/src/main/java/com/bwie/user/service/impl/UserServiceImpl.java @@ -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 implements UserService { + @Autowired + private UserMapper userMapper; @Override - public User login(UserRequest userRequest) { + public User login(LoginRequest loginRequest) { LambdaQueryWrapper 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 implements Use .eq(User::getUserTel, userTel)); return Result.success(user); } + + @Override + public User phoneLogin(String userTel) { + + return userMapper.phoneLogin(userTel); + } } diff --git a/bwie-modules/bwie-system/src/main/resources/mapper/UserMapper.xml b/bwie-modules/bwie-system/src/main/resources/mapper/UserMapper.xml new file mode 100644 index 0000000..b8065b2 --- /dev/null +++ b/bwie-modules/bwie-system/src/main/resources/mapper/UserMapper.xml @@ -0,0 +1,11 @@ + + + + + + +