diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 343c56d..0fad9d5 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -7,18 +7,27 @@ - - - - + + + + - + + + + + + + diff --git a/.idea/encodings.xml b/.idea/encodings.xml index e6dd92d..d4d942a 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -3,11 +3,11 @@ - - - - - - + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 1f19f73..f095382 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,6 +8,7 @@ diff --git a/README.md b/README.md index ab07054..79e7b6b 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# 用于自动化部署的测试项目 +# 个人中心微服务 diff --git a/devops/build/build.sh b/devops/build/build.sh deleted file mode 100644 index 861a8ff..0000000 --- a/devops/build/build.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash -echo "==============build begin 当前环境:【$ENV】==============" -if [[ "$ENV" = "" ]]; then - ENV=$env -fi - -if [[ $ENV == 'test' ]]; then - HUB_USERNAME=wlf19941002 - HUB_PASSWORD=901002wei - UCLOUD_HUB=registry.cn-hangzhou.aliyuncs.com/weilingfeng-dev - elif [[ $ENV == 'prod' ]]; then - HUB_USERNAME=wlf19941002 - HUB_PASSWORD=901002wei - UCLOUD_HUB=registry.cn-hangzhou.aliyuncs.com/weilingfeng-prod - else - echo 'Please enter right environment! eg: test || prod(master or v/V*.*.* branch)' - exit 1 -fi - -#编译后将包拷贝至新建的publish目录下,gitlab上可以在对应节点下载包。 -mvn clean package -Dmaven.test.skip=true || exit 1 && \ - echo 'build successful!' - -# 构建 TAG 变量 -TAG="${CI_COMMIT_SHA:0:4}${CI_PIPELINE_ID:0:4}" - -# 打印 TAG 变量的值 -echo "TAG value: $TAG" - -ZHN_AUTH=zhn-auth -ZHN_GATEWAY=zhn-gateway -ZHN_SYSTEM=zhn-system - -#构建镜像 -docker build -f zhn-gateway/Dockerfile -t $UCLOUD_HUB/${ZHN_GATEWAY}:$TAG . -docker build -f zhn-auth/Dockerfile -t $UCLOUD_HUB/${ZHN_AUTH}:$TAG . -docker build -f zhn-modules/zhn-system/Dockerfile -t $UCLOUD_HUB/${ZHN_SYSTEM}:$TAG . -#镜像仓库登录 -docker login registry.cn-hangzhou.aliyuncs.com --username $HUB_USERNAME --password $HUB_PASSWORD - -#推送镜像 -docker push $UCLOUD_HUB/${ZHN_AUTH}:$TAG -docker push $UCLOUD_HUB/${ZHN_GATEWAY}:$TAG -docker push $UCLOUD_HUB/${ZHN_SYSTEM}:$TAG - -#删除镜像 -docker rmi -f $UCLOUD_HUB/${ZHN_AUTH}:$TAG -docker rmi -f $UCLOUD_HUB/${ZHN_GATEWAY}:$TAG -docker push $UCLOUD_HUB/${ZHN_SYSTEM}:$TAG - -#删除none 镜像 -docker image prune -f --filter "dangling=true" - -echo "$UCLOUD_HUB/${ZHN_AUTH}:$TAG" -echo "$UCLOUD_HUB/${ZHN_GATEWAY}:$TAG" -echo "$UCLOUD_HUB/${ZHN_SYSTEM}:$TAG" -echo "==============build end!!!================" diff --git a/devops/release/deploy.sh b/devops/release/deploy.sh deleted file mode 100644 index dea326b..0000000 --- a/devops/release/deploy.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/bin/bash -echo "==============deploy begin!!!================" - -UCLOUD_HUB=registry.cn-hangzhou.aliyuncs.com/weilingfeng-dev -UCLOUD_HUB=registry.cn-hangzhou.aliyuncs.com/weilingfeng-prod - -TAG="${CI_COMMIT_SHA:0:4}${CI_PIPELINE_ID:0:4}" - -ZHN_GATEWAY=zhn-gateway -ZHN_AUTH=zhn-auth -ZHN_SYSTEM=zhn-system - -#停止 -if [ -n "$(docker ps -a -q -f name=$ZHN_GATEWAY)" ]; then - docker rm -f $ZHN_GATEWAY - echo "$ZHN_GATEWAY 已经停止" -fi - -if [ -n "$(docker ps -a -q -f name=$ZHN_AUTH)" ]; then - docker rm -f $ZHN_AUTH - echo "$ZHN_AUTH 已经停止" -fi - -if [ -n "$(docker ps -a -q -f name=$ZHN_SYSTEM)" ]; then - docker rm -f $ZHN_SYSTEM - echo "$ZHN_SYSTEM 已经停止" -fi - -#删除所有镜像 -docker images | grep "zhn-gateway" | awk '{print $3}' | while read image_id; do docker rmi -f "$image_id"; done -docker images | grep "zhn-auth" | awk '{print $3}' | while read image_id; do docker rmi -f "$image_id"; done -docker images | grep "zhn-system" | awk '{print $3}' | while read image_id; do docker rmi -f "$image_id"; done - - -#拉取镜像 -docker pull $UCLOUD_HUB/${ZHN_AUTH}:$TAG || exit 1 -docker pull $UCLOUD_HUB/${ZHN_SYSTEM}:$TAG || exit 1 -docker pull $UCLOUD_HUB/${ZHN_GATEWAY}:$TAG || exit 1 - -#发布 -docker run -itd -p 8080:8080 --name=zhn-gateway --restart=always $UCLOUD_HUB/${ZHN_GATEWAY}:$TAG || exit 1 -docker run -itd -p 9200:9200 --name=zhn-auth --restart=always $UCLOUD_HUB/${ZHN_AUTH}:$TAG || exit 1 -docker run -itd -p 9201:9201 --name=zhn-system --restart=always $UCLOUD_HUB/${ZHN_SYSTEM}:$TAG || exit 1 - -echo "==============deploy success end!!!==================" - - diff --git a/pom.xml b/pom.xml index 1713842..0264de5 100644 --- a/pom.xml +++ b/pom.xml @@ -4,15 +4,15 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 - com.zhn - zhn-dev + com.xsnb + xsnb-dev pom 1.0.0 - zhn-common - zhn-gateway - zhn-auth - zhn-modules + xsnb-common + xsnb-gateway + xsnb-auth + xsnb-modules @@ -50,12 +50,12 @@ - com.zhn - zhn-common + com.xsnb + xsnb-common 1.0.0 - \ No newline at end of file + diff --git a/zhn-auth/Dockerfile b/xsnb-auth/Dockerfile similarity index 51% rename from zhn-auth/Dockerfile rename to xsnb-auth/Dockerfile index da9260e..8ec3990 100644 --- a/zhn-auth/Dockerfile +++ b/xsnb-auth/Dockerfile @@ -4,12 +4,12 @@ FROM openjdk:8-jre MAINTAINER ex_weilingfeng@163.com # 挂载目录 -VOLUME /home/zhn +VOLUME /home/xsnb # 创建目录 -RUN mkdir -p /home/zhn +RUN mkdir -p /home/xsnb # 指定路径 -WORKDIR /home/zhn +WORKDIR /home/xsnb # 复制jar文件到路径 -COPY zhn-auth/target/zhn-auth.jar /home/zhn/zhn-auth.jar +COPY xsnb-auth/target/xsnb-auth.jar /home/xsnb/xsnb-auth.jar # 启动网关服务 -ENTRYPOINT ["java","-jar","zhn-auth.jar"] +ENTRYPOINT ["java","-jar","xsnb-auth.jar"] diff --git a/zhn-auth/pom.xml b/xsnb-auth/pom.xml similarity index 66% rename from zhn-auth/pom.xml rename to xsnb-auth/pom.xml index eaba2e3..2b6811d 100644 --- a/zhn-auth/pom.xml +++ b/xsnb-auth/pom.xml @@ -3,19 +3,29 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - zhn-dev - com.zhn + xsnb-dev + com.xsnb 1.0.0 4.0.0 - zhn-auth + xsnb-auth - com.zhn - zhn-common + com.xsnb + xsnb-common + + + com.baomidou + mybatis-plus + + + com.baomidou + mybatis-plus-boot-starter + + diff --git a/zhn-auth/src/main/java/com/zhn/auth/AuthMian.java b/xsnb-auth/src/main/java/com/xsnb/auth/AuthMian.java similarity index 93% rename from zhn-auth/src/main/java/com/zhn/auth/AuthMian.java rename to xsnb-auth/src/main/java/com/xsnb/auth/AuthMian.java index 50ed9b8..92c88d6 100644 --- a/zhn-auth/src/main/java/com/zhn/auth/AuthMian.java +++ b/xsnb-auth/src/main/java/com/xsnb/auth/AuthMian.java @@ -1,4 +1,5 @@ -package com.zhn.auth; +package com.xsnb.auth; + import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -7,8 +8,9 @@ import org.springframework.cloud.openfeign.EnableFeignClients; /** * @author zhang */ -@SpringBootApplication + @EnableFeignClients +@SpringBootApplication public class AuthMian { public static void main(String[] args) { SpringApplication.run(AuthMian.class, args); diff --git a/xsnb-auth/src/main/java/com/xsnb/auth/controller/AuthController.java b/xsnb-auth/src/main/java/com/xsnb/auth/controller/AuthController.java new file mode 100644 index 0000000..27935e2 --- /dev/null +++ b/xsnb-auth/src/main/java/com/xsnb/auth/controller/AuthController.java @@ -0,0 +1,53 @@ +package com.xsnb.auth.controller; + + +import com.xsnb.auth.service.AuthService; +import com.xsnb.common.domain.User; +import com.xsnb.common.domain.request.RequestUser; +import com.xsnb.common.domain.response.RespJwt; +import com.xsnb.common.result.Result; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; + +@RestController +@Log4j2 +public class AuthController { + @Autowired + AuthService authService; + + + + @PostMapping("/getPhoneCode") + public Result getPhoneCode(@RequestBody User user ){ + log.info("获取的信息:{}",user.toString()); + return authService.getPhoneCode(user); + } + + + /** + * + * 登录 + * @param requestUser + * @return + */ + @PostMapping("/login") + Result login(@RequestBody RequestUser requestUser){ + + return authService.login(requestUser); + } + + + @GetMapping("/user/info") + Result userinfo(HttpServletRequest request){ + return authService.userinfo(request); + + } + + +} diff --git a/zhn-auth/src/main/java/com/zhn/auth/feign/AuthFeignSystem.java b/xsnb-auth/src/main/java/com/xsnb/auth/feign/AuthFeignSystem.java similarity index 70% rename from zhn-auth/src/main/java/com/zhn/auth/feign/AuthFeignSystem.java rename to xsnb-auth/src/main/java/com/xsnb/auth/feign/AuthFeignSystem.java index aace3a0..07a3231 100644 --- a/zhn-auth/src/main/java/com/zhn/auth/feign/AuthFeignSystem.java +++ b/xsnb-auth/src/main/java/com/xsnb/auth/feign/AuthFeignSystem.java @@ -1,14 +1,15 @@ -package com.zhn.auth.feign; +package com.xsnb.auth.feign; -import com.zhn.common.domain.User; -import com.zhn.common.result.Result; +import com.xsnb.common.domain.User; +import com.xsnb.common.result.Result; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -@FeignClient("zhn-system") +@FeignClient("xsnb-system") public interface AuthFeignSystem { + @GetMapping("/user/byphone/{phone}") Result byphone(@PathVariable String phone); diff --git a/xsnb-auth/src/main/java/com/xsnb/auth/service/AuthService.java b/xsnb-auth/src/main/java/com/xsnb/auth/service/AuthService.java new file mode 100644 index 0000000..5ee0eed --- /dev/null +++ b/xsnb-auth/src/main/java/com/xsnb/auth/service/AuthService.java @@ -0,0 +1,17 @@ +package com.xsnb.auth.service; + +import com.xsnb.common.domain.User; +import com.xsnb.common.domain.request.RequestUser; +import com.xsnb.common.domain.response.RespJwt; +import com.xsnb.common.result.Result; + +import javax.servlet.http.HttpServletRequest; + +public interface AuthService { + Result login(RequestUser requestUser); + + Result userinfo(HttpServletRequest request); + + Result getPhoneCode(User user); + +} diff --git a/xsnb-auth/src/main/java/com/xsnb/auth/service/impl/AuthServiceImpl.java b/xsnb-auth/src/main/java/com/xsnb/auth/service/impl/AuthServiceImpl.java new file mode 100644 index 0000000..f3d0013 --- /dev/null +++ b/xsnb-auth/src/main/java/com/xsnb/auth/service/impl/AuthServiceImpl.java @@ -0,0 +1,124 @@ +package com.xsnb.auth.service.impl; + + +import com.alibaba.fastjson.JSONObject; +import com.xsnb.auth.feign.AuthFeignSystem; +import com.xsnb.auth.service.AuthService; +import com.xsnb.common.constants.JwtConstants; +import com.xsnb.common.constants.RabbitMQConstants; +import com.xsnb.common.constants.TokenConstants; +import com.xsnb.common.domain.User; +import com.xsnb.common.domain.request.RequestUser; +import com.xsnb.common.domain.response.RespJwt; +import com.xsnb.common.result.Result; +import com.xsnb.common.utils.JwtUtils; +import lombok.extern.log4j.Log4j2; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletRequest; +import java.util.HashMap; +import java.util.UUID; +import java.util.concurrent.TimeUnit; +import java.util.regex.Pattern; + +@Service +@Log4j2 +public class AuthServiceImpl implements AuthService { + + @Autowired + AuthFeignSystem authFeignSystem; + + @Autowired + RedisTemplate redisTemplate; + @Autowired + RabbitTemplate rabbitTemplate; + + + @Override + public Result login(RequestUser requestUser) { + String phone = requestUser.getPhone(); + String captcha = requestUser.getCaptcha(); + if (null == phone || null == captcha) { + return Result.error("联系管理员"); + } + if ("".equals(phone) || "".equals(captcha)) { + + return Result.error("请输入手机号+密码"); + } + Result byphone = authFeignSystem.byphone(phone); + User data = byphone.getData(); + if (null == data) { + return Result.error("先注册手机号,在登录"); + } + //从redsi拿验证码进行比对 + //判断名字为"PHONE_"+phone的key是否存在 + String s = redisTemplate.opsForValue().get(phone); + log.info("拿到的:{}",s); + if (null == s || !s.equals(captcha)) { + return Result.error("验证码错误"); + } + HashMap map = new HashMap<>(); + String userkey = UUID.randomUUID().toString().replaceAll("-", ""); + map.put(JwtConstants.USER_KEY, userkey); + map.put(JwtConstants.DETAILS_USER_ID, data.getId()); + String token = JwtUtils.createToken(map); + redisTemplate.opsForValue().set( + TokenConstants.LOGIN_TOKEN_KEY + userkey, + JSONObject.toJSONString(data), + TokenConstants.EXPIRATION, + TimeUnit.MINUTES + ); + RespJwt respJwt = new RespJwt(); + respJwt.setToken(token); + respJwt.setEidTime("720MIN"); + log.info("登录成功,token:{}", token); + return Result.success(respJwt); + } + + /* + * 前台每次请求都会来到这里进行解析user + * + * */ + @Override + public Result userinfo(HttpServletRequest request) { + String token = request.getHeader(TokenConstants.TOKEN); + String userKey = JwtUtils.getUserKey(token); + String s = redisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey); + User user = JSONObject.parseObject(s, User.class); + /*获取用户信息*/ + log.info("userInfo获取的用户信息是:{}", user); + return Result.success(user); + } + + /** + * @param user + * @return + * @dis 短信发送 + */ + @Override + public Result getPhoneCode(User user) { + String phone = user.getPhone() == null ? "18906604007" : user.getPhone(); + + log.info("短信发送的手机号 :{}", phone); + Result byphone = authFeignSystem.byphone(phone); + User data = byphone.getData(); + if (null == data) { + return Result.error("先注册手机号,在登录"); + } + Pattern compile = Pattern.compile("^(?:(?:\\+|00)86)?1\\d{10}$"); + if (!compile.matcher(phone).matches()) { + return Result.error("手机号格式错误"); + } + rabbitTemplate.convertAndSend(RabbitMQConstants.SEND_SMS_QUEUs, phone, message -> { + message.getMessageProperties().setMessageId(UUID.randomUUID().toString()); + log.info("rabbit异步发送完毕 :{}", phone); + return message; + }); + + return Result.success("开始发送短信"); + } + +} diff --git a/zhn-auth/target/classes/bootstrap.yml b/xsnb-auth/src/main/resources/bootstrap.yml similarity index 85% rename from zhn-auth/target/classes/bootstrap.yml rename to xsnb-auth/src/main/resources/bootstrap.yml index c0dda39..abe4521 100644 --- a/zhn-auth/target/classes/bootstrap.yml +++ b/xsnb-auth/src/main/resources/bootstrap.yml @@ -12,7 +12,7 @@ spring: time-zone: GMT+8 application: # 应用名称 - name: zhn-auth + name: xsnb-auth profiles: # 环境配置 active: dev @@ -20,10 +20,10 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 192.168.2.51:8848 + server-addr: 127.0.0.1:8848 config: # 配置中心地址 - server-addr: 192.168.2.51:8848 + server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/zhn-auth/target/classes/mapper/AuthMapper.xml b/xsnb-auth/src/main/resources/mapper/AuthMapper.xml similarity index 78% rename from zhn-auth/target/classes/mapper/AuthMapper.xml rename to xsnb-auth/src/main/resources/mapper/AuthMapper.xml index 697c9a5..b24a808 100644 --- a/zhn-auth/target/classes/mapper/AuthMapper.xml +++ b/xsnb-auth/src/main/resources/mapper/AuthMapper.xml @@ -1,7 +1,7 @@ - + - \ No newline at end of file + diff --git a/zhn-common/pom.xml b/xsnb-common/pom.xml similarity index 79% rename from zhn-common/pom.xml rename to xsnb-common/pom.xml index 9e449e9..eb362ae 100644 --- a/zhn-common/pom.xml +++ b/xsnb-common/pom.xml @@ -3,13 +3,13 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - zhn-dev - com.zhn + xsnb-dev + com.xsnb 1.0.0 4.0.0 - zhn-common + xsnb-common @@ -58,6 +58,16 @@ org.springframework.boot spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-amqp + + + + org.springframework.boot + spring-boot-starter-mail + org.springframework.boot @@ -91,6 +101,19 @@ aliyun-sdk-oss 3.12.0 + + + + + com.baomidou + mybatis-plus + 3.3.1 + + + com.baomidou + mybatis-plus-boot-starter + 3.3.1 + - \ No newline at end of file + diff --git a/zhn-common/src/main/java/com/zhn/common/constants/Constants.java b/xsnb-common/src/main/java/com/xsnb/common/constants/Constants.java similarity index 87% rename from zhn-common/src/main/java/com/zhn/common/constants/Constants.java rename to xsnb-common/src/main/java/com/xsnb/common/constants/Constants.java index 512b656..3d3cffb 100644 --- a/zhn-common/src/main/java/com/zhn/common/constants/Constants.java +++ b/xsnb-common/src/main/java/com/xsnb/common/constants/Constants.java @@ -1,8 +1,8 @@ -package com.zhn.common.constants; +package com.xsnb.common.constants; /** * @description: 系统常量 - * @author zhn + * @author xsnb */ public class Constants { /** diff --git a/zhn-common/src/main/java/com/zhn/common/constants/JwtConstants.java b/xsnb-common/src/main/java/com/xsnb/common/constants/JwtConstants.java similarity index 90% rename from zhn-common/src/main/java/com/zhn/common/constants/JwtConstants.java rename to xsnb-common/src/main/java/com/xsnb/common/constants/JwtConstants.java index e240c98..80afd33 100644 --- a/zhn-common/src/main/java/com/zhn/common/constants/JwtConstants.java +++ b/xsnb-common/src/main/java/com/xsnb/common/constants/JwtConstants.java @@ -1,7 +1,7 @@ -package com.zhn.common.constants; +package com.xsnb.common.constants; /** - * @author zhn + * @author xsnb * @description: Jwt常量 */ public class JwtConstants { diff --git a/xsnb-common/src/main/java/com/xsnb/common/constants/RabbitMQConstants.java b/xsnb-common/src/main/java/com/xsnb/common/constants/RabbitMQConstants.java new file mode 100644 index 0000000..54d6e94 --- /dev/null +++ b/xsnb-common/src/main/java/com/xsnb/common/constants/RabbitMQConstants.java @@ -0,0 +1,11 @@ +package com.xsnb.common.constants; + +/** + * @BelongsProject: Bob_Up_Like_A_Cork + * @BelongsPackage: com.zhn.common.constants + * @Author: zhangquan + * @CreateTime: 2023/8/1 20:11 + */ +public class RabbitMQConstants { + public static final String SEND_SMS_QUEUs = "send_sms_queun"; +} diff --git a/zhn-common/src/main/java/com/zhn/common/constants/TokenConstants.java b/xsnb-common/src/main/java/com/xsnb/common/constants/TokenConstants.java similarity index 90% rename from zhn-common/src/main/java/com/zhn/common/constants/TokenConstants.java rename to xsnb-common/src/main/java/com/xsnb/common/constants/TokenConstants.java index 0add0a0..a3d9e8f 100644 --- a/zhn-common/src/main/java/com/zhn/common/constants/TokenConstants.java +++ b/xsnb-common/src/main/java/com/xsnb/common/constants/TokenConstants.java @@ -1,7 +1,7 @@ -package com.zhn.common.constants; +package com.xsnb.common.constants; /** - * @author zhn + * @author xsnb * @description: 令牌常量 */ public class TokenConstants { diff --git a/xsnb-common/src/main/java/com/xsnb/common/domain/User.java b/xsnb-common/src/main/java/com/xsnb/common/domain/User.java new file mode 100644 index 0000000..fcc6713 --- /dev/null +++ b/xsnb-common/src/main/java/com/xsnb/common/domain/User.java @@ -0,0 +1,22 @@ +package com.xsnb.common.domain; + + +import lombok.Data; + +import java.util.Date; + +@Data +public class User { + + private Integer id; + private String name; + private String phone; + private String email; + private String wx_uid; + private String user_name; + private String user_pass; + private String avatar; + private Date lastLoginTime; + private String balance; + +} diff --git a/zhn-common/src/main/java/com/zhn/common/domain/request/RequestUser.java b/xsnb-common/src/main/java/com/xsnb/common/domain/request/RequestUser.java similarity index 75% rename from zhn-common/src/main/java/com/zhn/common/domain/request/RequestUser.java rename to xsnb-common/src/main/java/com/xsnb/common/domain/request/RequestUser.java index 39050e1..14b1a68 100644 --- a/zhn-common/src/main/java/com/zhn/common/domain/request/RequestUser.java +++ b/xsnb-common/src/main/java/com/xsnb/common/domain/request/RequestUser.java @@ -1,4 +1,4 @@ -package com.zhn.common.domain.request; +package com.xsnb.common.domain.request; import lombok.Data; @@ -14,6 +14,8 @@ public class RequestUser { private String emil; private String lastLoginTime; private String balance; + private String captcha; + private String loginRadio; diff --git a/zhn-common/src/main/java/com/zhn/common/domain/response/RespJwt.java b/xsnb-common/src/main/java/com/xsnb/common/domain/response/RespJwt.java similarity index 79% rename from zhn-common/src/main/java/com/zhn/common/domain/response/RespJwt.java rename to xsnb-common/src/main/java/com/xsnb/common/domain/response/RespJwt.java index 76969c3..7ddb367 100644 --- a/zhn-common/src/main/java/com/zhn/common/domain/response/RespJwt.java +++ b/xsnb-common/src/main/java/com/xsnb/common/domain/response/RespJwt.java @@ -1,10 +1,10 @@ -package com.zhn.common.domain.response; +package com.xsnb.common.domain.response; import lombok.Data; /** * @ClassName:RespJwt - * @author:zhn + * @author:xsnb * @create: 2023-08-03 09:01 * @Description: 用户登录token返回实体类 */ diff --git a/zhn-common/src/main/java/com/zhn/common/domain/response/ResponseUser.java b/xsnb-common/src/main/java/com/xsnb/common/domain/response/ResponseUser.java similarity index 89% rename from zhn-common/src/main/java/com/zhn/common/domain/response/ResponseUser.java rename to xsnb-common/src/main/java/com/xsnb/common/domain/response/ResponseUser.java index 03f7a61..97f21e9 100644 --- a/zhn-common/src/main/java/com/zhn/common/domain/response/ResponseUser.java +++ b/xsnb-common/src/main/java/com/xsnb/common/domain/response/ResponseUser.java @@ -1,4 +1,4 @@ -package com.zhn.common.domain.response; +package com.xsnb.common.domain.response; import lombok.Data; diff --git a/zhn-common/src/main/java/com/zhn/common/result/PageResult.java b/xsnb-common/src/main/java/com/xsnb/common/result/PageResult.java similarity index 93% rename from zhn-common/src/main/java/com/zhn/common/result/PageResult.java rename to xsnb-common/src/main/java/com/xsnb/common/result/PageResult.java index 35768fc..4ba4f68 100644 --- a/zhn-common/src/main/java/com/zhn/common/result/PageResult.java +++ b/xsnb-common/src/main/java/com/xsnb/common/result/PageResult.java @@ -1,4 +1,4 @@ -package com.zhn.common.result; +package com.xsnb.common.result; import lombok.Data; @@ -6,7 +6,7 @@ import java.io.Serializable; import java.util.List; /** - * @author zhn + * @author xsnb * @description: 列表返回结果集 */ @Data diff --git a/zhn-common/src/main/java/com/zhn/common/result/Result.java b/xsnb-common/src/main/java/com/xsnb/common/result/Result.java similarity index 94% rename from zhn-common/src/main/java/com/zhn/common/result/Result.java rename to xsnb-common/src/main/java/com/xsnb/common/result/Result.java index 47f249d..ef956ae 100644 --- a/zhn-common/src/main/java/com/zhn/common/result/Result.java +++ b/xsnb-common/src/main/java/com/xsnb/common/result/Result.java @@ -1,12 +1,12 @@ -package com.zhn.common.result; +package com.xsnb.common.result; -import com.zhn.common.constants.Constants; +import com.xsnb.common.constants.Constants; import lombok.Data; import java.io.Serializable; /** - * @author zhn + * @author xsnb * @description: 响应信息主体 */ @Data diff --git a/zhn-common/src/main/java/com/zhn/common/utils/JwtUtils.java b/xsnb-common/src/main/java/com/xsnb/common/utils/JwtUtils.java similarity index 96% rename from zhn-common/src/main/java/com/zhn/common/utils/JwtUtils.java rename to xsnb-common/src/main/java/com/xsnb/common/utils/JwtUtils.java index b1cd22e..ec89cf4 100644 --- a/zhn-common/src/main/java/com/zhn/common/utils/JwtUtils.java +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/JwtUtils.java @@ -1,6 +1,6 @@ -package com.zhn.common.utils; +package com.xsnb.common.utils; -import com.zhn.common.constants.JwtConstants; +import com.xsnb.common.constants.JwtConstants; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; @@ -9,7 +9,7 @@ import java.util.Map; /** * @description: Jwt工具类 - * @author zhn + * @author xsnb */ public class JwtUtils { diff --git a/zhn-common/src/main/java/com/zhn/common/utils/Msg/HttpUtils.java b/xsnb-common/src/main/java/com/xsnb/common/utils/Msg/HttpUtils.java similarity index 99% rename from zhn-common/src/main/java/com/zhn/common/utils/Msg/HttpUtils.java rename to xsnb-common/src/main/java/com/xsnb/common/utils/Msg/HttpUtils.java index 8a8e974..cb9583e 100644 --- a/zhn-common/src/main/java/com/zhn/common/utils/Msg/HttpUtils.java +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/Msg/HttpUtils.java @@ -1,6 +1,6 @@ -package com.zhn.common.utils.Msg; +package com.xsnb.common.utils.Msg; -import com.zhn.common.utils.StringUtils; +import com.xsnb.common.utils.StringUtils; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; diff --git a/zhn-common/src/main/java/com/zhn/common/utils/Msg/MsgUtil.java b/xsnb-common/src/main/java/com/xsnb/common/utils/Msg/MsgUtil.java similarity index 96% rename from zhn-common/src/main/java/com/zhn/common/utils/Msg/MsgUtil.java rename to xsnb-common/src/main/java/com/xsnb/common/utils/Msg/MsgUtil.java index 5b9c4c8..6726eb4 100644 --- a/zhn-common/src/main/java/com/zhn/common/utils/Msg/MsgUtil.java +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/Msg/MsgUtil.java @@ -1,4 +1,4 @@ -package com.zhn.common.utils.Msg; +package com.xsnb.common.utils.Msg; diff --git a/zhn-common/src/main/java/com/zhn/common/utils/OssUtil.java b/xsnb-common/src/main/java/com/xsnb/common/utils/OssUtil.java similarity index 99% rename from zhn-common/src/main/java/com/zhn/common/utils/OssUtil.java rename to xsnb-common/src/main/java/com/xsnb/common/utils/OssUtil.java index 187b6ca..7c4cece 100644 --- a/zhn-common/src/main/java/com/zhn/common/utils/OssUtil.java +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/OssUtil.java @@ -1,4 +1,4 @@ -package com.zhn.common.utils; +package com.xsnb.common.utils; import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; diff --git a/zhn-common/src/main/java/com/zhn/common/utils/StringUtils.java b/xsnb-common/src/main/java/com/xsnb/common/utils/StringUtils.java similarity index 97% rename from zhn-common/src/main/java/com/zhn/common/utils/StringUtils.java rename to xsnb-common/src/main/java/com/xsnb/common/utils/StringUtils.java index c478c79..9b35e5e 100644 --- a/zhn-common/src/main/java/com/zhn/common/utils/StringUtils.java +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/StringUtils.java @@ -1,4 +1,4 @@ -package com.zhn.common.utils; +package com.xsnb.common.utils; import org.springframework.util.AntPathMatcher; @@ -6,7 +6,7 @@ import java.util.Collection; import java.util.List; /** - * @author zhn + * @author xsnb * @description: 字符串处理工具类 */ public class StringUtils extends org.apache.commons.lang3.StringUtils { diff --git a/zhn-common/src/main/java/com/zhn/common/utils/TelSmsUtils.java b/xsnb-common/src/main/java/com/xsnb/common/utils/TelSmsUtils.java similarity index 75% rename from zhn-common/src/main/java/com/zhn/common/utils/TelSmsUtils.java rename to xsnb-common/src/main/java/com/xsnb/common/utils/TelSmsUtils.java index ba898de..bab8bc5 100644 --- a/zhn-common/src/main/java/com/zhn/common/utils/TelSmsUtils.java +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/TelSmsUtils.java @@ -1,4 +1,4 @@ -package com.zhn.common.utils; +package com.xsnb.common.utils; import com.alibaba.fastjson.JSONObject; import com.aliyun.dysmsapi20170525.Client; @@ -18,8 +18,9 @@ public class TelSmsUtils { /** * 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 */ - private static String accessKeyId = "LTAIEVXszCmcd1T5"; - private static String accessKeySecret = "2zHwciQXln8wExSEnkIYtRTSwLeRNd"; + private static String accessKeyId = "LTAI5tHLTV3mgTwB4wzxvkLS"; + private static String accessKeySecret = "jjQt8WSFzSDTvp1TMhRFS8FSyueaQU"; + private static String templateCode = "SMS_154950909"; /** * 短信访问域名 @@ -28,7 +29,7 @@ public class TelSmsUtils { /** * 短信签名 */ - private static String signName = "登录验证"; + private static String signName = "阿里云短信测试"; /** * 实例化短信对象 @@ -40,22 +41,22 @@ public class TelSmsUtils { long startTime = System.currentTimeMillis(); try { client = initClient(); - log.info("初始化短信成功:{}",signName); + log.info("初始化短信成功:{}", signName); } catch (Exception e) { e.printStackTrace(); } - log.info("初始化短信服务结束:耗时:{}MS",(System.currentTimeMillis()-startTime)); + log.info("初始化短信服务结束:耗时:{}MS", (System.currentTimeMillis() - startTime)); } + /** * 初始化短信对象 + * * @return * @throws Exception */ - private static Client initClient() throws Exception{ + private static Client initClient() throws Exception { Config config = new Config() - // 您的AccessKey ID .setAccessKeyId(accessKeyId) - // 您的AccessKey Secret .setAccessKeySecret(accessKeySecret); // 访问的域名 config.endpoint = endpoint; @@ -64,11 +65,11 @@ public class TelSmsUtils { /** * 发送单条短信 + * * @param tel - * @param templateCode SMS_153991546 * @param sendDataMap */ - public static String sendSms(String tel , String templateCode , Map sendDataMap){ + public static String sendSms(String tel, Map sendDataMap) { SendSmsRequest sendSmsRequest = new SendSmsRequest() .setPhoneNumbers(tel) .setSignName(signName) diff --git a/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/DLXQueue.java b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/DLXQueue.java new file mode 100644 index 0000000..0ff07eb --- /dev/null +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/DLXQueue.java @@ -0,0 +1,77 @@ +package com.xsnb.common.utils.mqUtile; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +@Component +public class DLXQueue { + // routingKey + private static final String DEAD_ROUTING_KEY = "dead.routingkey"; + private static final String ROUTING_KEY = "routingkey"; + private static final String DEAD_EXCHANGE = "dead.exchange"; + private static final String EXCHANGE = "common.exchange"; + @Autowired + RabbitTemplate rabbitTemplate; + @Resource + RabbitAdmin rabbitAdmin; + + /** + * 发送死信队列,过期后进入死信交换机,进入死信队列 + * + * @param queueName 队列名称 + * @param deadQueueName 死信队列名称 + * @param params 消息内容 + * @param expiration 过期时间 毫秒 + */ + public void sendDLXQueue(String queueName, String deadQueueName, Object params, Integer expiration) { + /** + * ----------------------------------先创建一个ttl队列和死信队列-------------------------------------------- + */ + Map map = new HashMap<>(); + // 队列设置存活时间,单位ms, 必须是整形数据。 + map.put("x-message-ttl", expiration); + // 设置死信交换机 + map.put("x-dead-letter-exchange", DEAD_EXCHANGE); + // 设置死信交换器路由 + map.put("x-dead-letter-routing-key", DEAD_ROUTING_KEY); + /*参数1:队列名称 参数2:持久化 参数3:是否排他 参数4:自动删除队列 参数5:队列参数*/ + Queue queue = new Queue(queueName, true, false, false, map); + rabbitAdmin.declareQueue(queue); + /** + * ---------------------------------创建交换机--------------------------------------------- + */ + DirectExchange directExchange = new DirectExchange(EXCHANGE, true, false); + rabbitAdmin.declareExchange(directExchange); + /** + * ---------------------------------队列绑定交换机--------------------------------------------- + */ + Binding binding = BindingBuilder.bind(queue).to(directExchange).with(ROUTING_KEY); + rabbitAdmin.declareBinding(binding); + /** + * ---------------------------------在创建一个死信交换机和队列,接收死信队列--------------------------------------------- + */ + DirectExchange deadExchange = new DirectExchange(DEAD_EXCHANGE, true, false); + rabbitAdmin.declareExchange(deadExchange); + + Queue deadQueue = new Queue(deadQueueName, true, false, false); + rabbitAdmin.declareQueue(deadQueue); + /** + * ---------------------------------队列绑定死信交换机--------------------------------------------- + */ + // 将队列和交换机绑定 + Binding deadbinding = BindingBuilder.bind(deadQueue).to(deadExchange).with(DEAD_ROUTING_KEY); + rabbitAdmin.declareBinding(deadbinding); + // 发送消息 + rabbitTemplate.convertAndSend(EXCHANGE, ROUTING_KEY, params); + } +} diff --git a/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/DelayedQueue.java b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/DelayedQueue.java new file mode 100644 index 0000000..5e97cde --- /dev/null +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/DelayedQueue.java @@ -0,0 +1,79 @@ +package com.xsnb.common.utils.mqUtile; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.CustomExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * 发送延迟队列的工具类 + */ +@Component +public class DelayedQueue { + + // routingKey + private static final String DELAYED_ROUTING_KEY = "delayed.routingkey"; + + // 延迟队列交换机 + private static final String DELAYED_EXCHANGE = "delayed.exchange"; + + @Autowired + RabbitTemplate rabbitTemplate; + + @Resource + RabbitAdmin rabbitAdmin; + + /** + * 发送延迟队列 + * + * @param queueName 队列名称 + * @param params 消息内容 + * @param expiration 延迟时间 毫秒 + */ + public void sendDelayedQueue(String queueName, Object params, Integer expiration) { + // 先创建一个队列 + Queue queue = new Queue(queueName); + rabbitAdmin.declareQueue(queue); + + // 创建延迟队列交换机 + CustomExchange customExchange = createCustomExchange(); + rabbitAdmin.declareExchange(customExchange); + + // 将队列和交换机绑定 + Binding binding = BindingBuilder.bind(queue).to(customExchange).with(DELAYED_ROUTING_KEY).noargs(); + rabbitAdmin.declareBinding(binding); + + // 发送延迟消息 + rabbitTemplate.convertAndSend(DELAYED_EXCHANGE, DELAYED_ROUTING_KEY, params, msg -> { + // 发送消息的时候 延迟时长 + msg.getMessageProperties().setMessageId(UUID.randomUUID().toString().replaceAll("-", "")); + msg.getMessageProperties().setDelay(expiration); + return msg; + }); + } + + private CustomExchange createCustomExchange() { + Map arguments = new HashMap<>(); + /** + * 参数说明: + * 1.交换机的名称 + * 2.交换机的类型 + * 3.是否需要持久化 + * 4.是否自动删除 + * 5.其它参数 + */ + arguments.put("x-delayed-type", "direct"); + return new CustomExchange(DELAYED_EXCHANGE, "x-delayed-message", true, false, arguments); + } + +} + diff --git a/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/RabbitMQ.java b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/RabbitMQ.java new file mode 100644 index 0000000..bd2448c --- /dev/null +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/RabbitMQ.java @@ -0,0 +1,8 @@ +package com.xsnb.common.utils.mqUtile; + +import lombok.Data; + +@Data +public class RabbitMQ { + public static final String SEND_CODE_QUEUE = "send_code_queue"; +} diff --git a/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/TtlQueue.java b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/TtlQueue.java new file mode 100644 index 0000000..54d7025 --- /dev/null +++ b/xsnb-common/src/main/java/com/xsnb/common/utils/mqUtile/TtlQueue.java @@ -0,0 +1,66 @@ +package com.xsnb.common.utils.mqUtile; + +import org.springframework.amqp.core.Binding; +import org.springframework.amqp.core.BindingBuilder; +import org.springframework.amqp.core.DirectExchange; +import org.springframework.amqp.core.Queue; +import org.springframework.amqp.rabbit.core.RabbitAdmin; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.Map; + +/** + * 发送TTL队列 设置 消息的存活时间 如果超过了存活时间 + * 该条消息还没有被消费 则自动从队列中消息 ,如果配置了死信队列则消息会进入死信队列 + */ +@Component +public class TtlQueue { + // routingKey + private static final String TTL_KEY = "ttl.routingkey"; + private static final String TTL_EXCHANGE = "ttl.exchange"; + + @Autowired + RabbitTemplate rabbitTemplate; + + @Resource + RabbitAdmin rabbitAdmin; + + /** + * 发送TTL队列 + * + * @param queueName 队列名称 + * @param params 消息内容 + * @param expiration 过期时间 毫秒 + */ + public void sendTtlQueue(String queueName, Object params, Integer expiration) { + /** + * ----------------------------------先创建一个ttl队列-------------------------------------------- + */ + Map map = new HashMap<>(); + // 队列设置存活时间,单位ms,必须是整形数据。 + map.put("x-message-ttl", expiration); + /*参数1:队列名称 参数2:持久化 参数3:是否排他 参数4:自动删除队列 参数5:队列参数*/ + Queue queue = new Queue(queueName, true, false, false, map); + rabbitAdmin.declareQueue(queue); + + /** + * ---------------------------------创建交换机--------------------------------------------- + */ + DirectExchange directExchange = new DirectExchange(TTL_EXCHANGE, true, false); + rabbitAdmin.declareExchange(directExchange); + /** + * ---------------------------------队列绑定交换机--------------------------------------------- + */ + // 将队列和交换机绑定 + Binding binding = BindingBuilder.bind(queue).to(directExchange).with(TTL_KEY); + rabbitAdmin.declareBinding(binding); + + // 发送消息 + rabbitTemplate.convertAndSend(TTL_EXCHANGE, TTL_KEY, params); + } +} + diff --git a/zhn-common/src/main/resources/date.txt b/xsnb-common/src/main/resources/date.txt similarity index 100% rename from zhn-common/src/main/resources/date.txt rename to xsnb-common/src/main/resources/date.txt diff --git a/xsnb-gateway/Dockerfile b/xsnb-gateway/Dockerfile new file mode 100644 index 0000000..37ded97 --- /dev/null +++ b/xsnb-gateway/Dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER ex_weilingfeng@163.com + +# 挂载目录 +VOLUME /home/xsnb +# 创建目录 +RUN mkdir -p /home/xsnb +# 指定路径 +WORKDIR /home/xsnb +# 复制jar文件到路径 +COPY xsnb-gateway/target/xsnb-gateway.jar /home/xsnb/xsnb-gateway.jar +# 启动网关服务 +ENTRYPOINT ["java","-jar","xsnb-gateway.jar"] diff --git a/zhn-gateway/pom.xml b/xsnb-gateway/pom.xml similarity index 73% rename from zhn-gateway/pom.xml rename to xsnb-gateway/pom.xml index 8429d15..b08e5d5 100644 --- a/zhn-gateway/pom.xml +++ b/xsnb-gateway/pom.xml @@ -3,19 +3,29 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - zhn-dev - com.zhn + xsnb-dev + com.xsnb 1.0.0 4.0.0 - zhn-gateway + xsnb-gateway - com.zhn - zhn-common + com.xsnb + xsnb-common + + + com.baomidou + mybatis-plus + + + com.baomidou + mybatis-plus-boot-starter + + diff --git a/zhn-gateway/src/main/java/com/zhn/gateway/GatewayMian.java b/xsnb-gateway/src/main/java/com/xsnb/gateway/GatewayMian.java similarity index 91% rename from zhn-gateway/src/main/java/com/zhn/gateway/GatewayMian.java rename to xsnb-gateway/src/main/java/com/xsnb/gateway/GatewayMian.java index 8752176..99e205a 100644 --- a/zhn-gateway/src/main/java/com/zhn/gateway/GatewayMian.java +++ b/xsnb-gateway/src/main/java/com/xsnb/gateway/GatewayMian.java @@ -1,4 +1,5 @@ -package com.zhn.gateway; +package com.xsnb.gateway; + import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @@ -6,6 +7,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; /** * @author zhang */ + @SpringBootApplication public class GatewayMian { public static void main(String[] args) { diff --git a/zhn-gateway/src/main/java/com/zhn/gateway/config/IgnoreWhiteConfig.java b/xsnb-gateway/src/main/java/com/xsnb/gateway/config/IgnoreWhiteConfig.java similarity index 94% rename from zhn-gateway/src/main/java/com/zhn/gateway/config/IgnoreWhiteConfig.java rename to xsnb-gateway/src/main/java/com/xsnb/gateway/config/IgnoreWhiteConfig.java index 54d7f1f..da647a8 100644 --- a/zhn-gateway/src/main/java/com/zhn/gateway/config/IgnoreWhiteConfig.java +++ b/xsnb-gateway/src/main/java/com/xsnb/gateway/config/IgnoreWhiteConfig.java @@ -1,4 +1,4 @@ -package com.zhn.gateway.config; +package com.xsnb.gateway.config; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -12,7 +12,7 @@ import java.util.List; /** * @description: 放行白名单配置 - * @author zhn + * @author xsnb */ @Configuration @RefreshScope diff --git a/xsnb-gateway/src/main/java/com/xsnb/gateway/constants/Constants.java b/xsnb-gateway/src/main/java/com/xsnb/gateway/constants/Constants.java new file mode 100644 index 0000000..f0b59d9 --- /dev/null +++ b/xsnb-gateway/src/main/java/com/xsnb/gateway/constants/Constants.java @@ -0,0 +1,4 @@ +package com.xsnb.gateway.constants; + +public class Constants { +} diff --git a/zhn-gateway/src/main/java/com/zhn/gateway/filters/AuthFilters.java b/xsnb-gateway/src/main/java/com/xsnb/gateway/filters/AuthFilters.java similarity index 88% rename from zhn-gateway/src/main/java/com/zhn/gateway/filters/AuthFilters.java rename to xsnb-gateway/src/main/java/com/xsnb/gateway/filters/AuthFilters.java index a0b50a7..e2d726a 100644 --- a/zhn-gateway/src/main/java/com/zhn/gateway/filters/AuthFilters.java +++ b/xsnb-gateway/src/main/java/com/xsnb/gateway/filters/AuthFilters.java @@ -1,14 +1,14 @@ -package com.zhn.gateway.filters; +package com.xsnb.gateway.filters; import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; -import com.zhn.common.constants.TokenConstants; -import com.zhn.common.domain.User; -import com.zhn.common.utils.JwtUtils; -import com.zhn.common.utils.StringUtils; -import com.zhn.gateway.config.IgnoreWhiteConfig; -import com.zhn.gateway.utils.GatewayUtils; +import com.xsnb.common.constants.TokenConstants; +import com.xsnb.common.domain.User; +import com.xsnb.common.utils.JwtUtils; +import com.xsnb.common.utils.StringUtils; +import com.xsnb.gateway.config.IgnoreWhiteConfig; +import com.xsnb.gateway.utils.GatewayUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; @@ -56,6 +56,7 @@ public class AuthFilters implements GlobalFilter, Ordered { } String jsonStr = redisTemplate.opsForValue().get(TokenConstants.LOGIN_TOKEN_KEY + userKey); User user = JSONObject.parseObject(jsonStr, User.class); + user.setLastLoginTime(new Date()); Date lastLoginTime = user.getLastLoginTime(); long between = DateUtil.between(lastLoginTime, new Date(), DateUnit.MINUTE); if (between >= 10) { diff --git a/zhn-gateway/src/main/java/com/zhn/gateway/utils/GatewayUtils.java b/xsnb-gateway/src/main/java/com/xsnb/gateway/utils/GatewayUtils.java similarity index 96% rename from zhn-gateway/src/main/java/com/zhn/gateway/utils/GatewayUtils.java rename to xsnb-gateway/src/main/java/com/xsnb/gateway/utils/GatewayUtils.java index bfa7346..099059b 100644 --- a/zhn-gateway/src/main/java/com/zhn/gateway/utils/GatewayUtils.java +++ b/xsnb-gateway/src/main/java/com/xsnb/gateway/utils/GatewayUtils.java @@ -1,8 +1,8 @@ -package com.zhn.gateway.utils; +package com.xsnb.gateway.utils; import com.alibaba.fastjson.JSONObject; -import com.zhn.common.result.Result; -import com.zhn.common.utils.StringUtils; +import com.xsnb.common.result.Result; +import com.xsnb.common.utils.StringUtils; import lombok.extern.log4j.Log4j2; import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.HttpHeaders; @@ -13,7 +13,7 @@ import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; /** - * @author zhn + * @author xsnb * @description: 网关处理工具类 */ @Log4j2 diff --git a/zhn-gateway/src/main/resources/bootstrap.yml b/xsnb-gateway/src/main/resources/bootstrap.yml similarity index 85% rename from zhn-gateway/src/main/resources/bootstrap.yml rename to xsnb-gateway/src/main/resources/bootstrap.yml index ea9921e..9bd5ea6 100644 --- a/zhn-gateway/src/main/resources/bootstrap.yml +++ b/xsnb-gateway/src/main/resources/bootstrap.yml @@ -5,7 +5,7 @@ server: spring: application: # 应用名称 - name: zhn-gateway + name: xsnb-gateway profiles: # 环境配置 active: dev @@ -18,10 +18,10 @@ spring: nacos: discovery: # 服务注册地址 - server-addr: 192.168.2.51:8848 + server-addr: 127.0.0.1:8848 config: # 配置中心地址 - server-addr: 192.168.2.51:8848 + server-addr: 127.0.0.1:8848 # 配置文件格式 file-extension: yml # 共享配置 diff --git a/zhn-modules/pom.xml b/xsnb-modules/pom.xml similarity index 71% rename from zhn-modules/pom.xml rename to xsnb-modules/pom.xml index cba07cf..7346441 100644 --- a/zhn-modules/pom.xml +++ b/xsnb-modules/pom.xml @@ -3,17 +3,17 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - zhn-dev - com.zhn + xsnb-dev + com.xsnb 1.0.0 4.0.0 - zhn-modules + xsnb-modules pom - zhn-system + xsnb-system - \ No newline at end of file + diff --git a/xsnb-modules/xsnb-system/Dockerfile b/xsnb-modules/xsnb-system/Dockerfile new file mode 100644 index 0000000..178916a --- /dev/null +++ b/xsnb-modules/xsnb-system/Dockerfile @@ -0,0 +1,15 @@ +# 基础镜像 +FROM openjdk:8-jre +# author +MAINTAINER ex_weilingfeng + +# 挂载目录 +VOLUME /home/xsnb +# 创建目录 +RUN mkdir -p /home/xsnb +# 指定路径 +WORKDIR /home/xsnb +# 复制jar文件到路径 +COPY xsnb-modules/xsnb-system/target/xsnb-modules-system.jar /home/xsnb/xsnb-modules-system.jar +# 启动系统服务 +ENTRYPOINT ["java","-jar","xsnb-modules-system.jar"] diff --git a/zhn-modules/zhn-system/pom.xml b/xsnb-modules/xsnb-system/pom.xml similarity index 85% rename from zhn-modules/zhn-system/pom.xml rename to xsnb-modules/xsnb-system/pom.xml index b655529..0b49d66 100644 --- a/zhn-modules/zhn-system/pom.xml +++ b/xsnb-modules/xsnb-system/pom.xml @@ -3,19 +3,19 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - zhn-modules - com.zhn + xsnb-modules + com.xsnb 1.0.0 4.0.0 - zhn-system + xsnb-system - com.zhn - zhn-common + com.xsnb + xsnb-common @@ -77,6 +77,18 @@ org.springframework.boot spring-boot-starter-websocket + + io.minio + minio + 8.5.3 + + + + com.squareup.okhttp3 + okhttp + 4.10.0 + + diff --git a/zhn-modules/zhn-system/src/main/java/com/zhn/system/SystemMian.java b/xsnb-modules/xsnb-system/src/main/java/com/xsnb/system/SystemMian.java similarity index 80% rename from zhn-modules/zhn-system/src/main/java/com/zhn/system/SystemMian.java rename to xsnb-modules/xsnb-system/src/main/java/com/xsnb/system/SystemMian.java index b41b75c..be92bf4 100644 --- a/zhn-modules/zhn-system/src/main/java/com/zhn/system/SystemMian.java +++ b/xsnb-modules/xsnb-system/src/main/java/com/xsnb/system/SystemMian.java @@ -1,5 +1,6 @@ -package com.zhn.system; +package com.xsnb.system; +import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.openfeign.EnableFeignClients; @@ -8,6 +9,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; @SpringBootApplication @EnableFeignClients @EnableScheduling +@MapperScan("com.xsnb.**.mapper") public class SystemMian { public static void main(String[] args) { SpringApplication.run(SystemMian.class, args); diff --git a/xsnb-modules/xsnb-system/src/main/java/com/xsnb/system/config/MailSender.java b/xsnb-modules/xsnb-system/src/main/java/com/xsnb/system/config/MailSender.java new file mode 100644 index 0000000..d12a477 --- /dev/null +++ b/xsnb-modules/xsnb-system/src/main/java/com/xsnb/system/config/MailSender.java @@ -0,0 +1,48 @@ +package com.xsnb.system.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.JavaMailSenderImpl; + +import java.util.Properties; + +/** + * FileName: MailSender + * Author: 张海宁 + * Date: 2024/3/4 14:41 + * Description: + * History: + *