From 2cd4c745cf08903a2a8cf350743247c456f914d5 Mon Sep 17 00:00:00 2001 From: fanghao <2249194670@qq.com> Date: Wed, 1 May 2024 14:13:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/.gitignore | 8 + .idea/compiler.xml | 26 ++ .idea/encodings.xml | 9 + .idea/inspectionProfiles/Project_Default.xml | 36 ++ .idea/jarRepositories.xml | 20 ++ .idea/misc.xml | 14 + .idea/vcs.xml | 6 + bwie-auth/pom.xml | 26 ++ bwie-common/pom.xml | 111 +++++++ .../com/bwie/common/config/RedisConfig.java | 40 +++ .../com/bwie/common/constants/Constants.java | 18 + .../bwie/common/constants/JwtConstants.java | 29 ++ .../bwie/common/constants/TokenConstants.java | 24 ++ .../java/com/bwie/common/domain/Address.java | 10 + .../java/com/bwie/common/domain/Person.java | 13 + .../com/bwie/common/result/PageResult.java | 34 ++ .../java/com/bwie/common/result/Result.java | 76 +++++ .../java/com/bwie/common/utils/FastUtil.java | 55 ++++ .../java/com/bwie/common/utils/HttpPost.java | 77 +++++ .../java/com/bwie/common/utils/HttpUtils.java | 310 ++++++++++++++++++ .../java/com/bwie/common/utils/JwtUtils.java | 109 ++++++ .../java/com/bwie/common/utils/MsgUitl.java | 76 +++++ .../java/com/bwie/common/utils/OssUtil.java | 153 +++++++++ .../bwie/common/utils/SendSmsResponse.java | 51 +++ .../com/bwie/common/utils/SmsResponse.java | 21 ++ .../com/bwie/common/utils/StringUtils.java | 68 ++++ .../com/bwie/common/utils/TelSmsUtils.java | 87 +++++ .../com/bwie/common/config/RedisConfig.class | Bin 0 -> 3159 bytes .../com/bwie/common/constants/Constants.class | Bin 0 -> 651 bytes .../bwie/common/constants/JwtConstants.class | Bin 0 -> 544 bytes .../common/constants/TokenConstants.class | Bin 0 -> 526 bytes .../com/bwie/common/domain/Address.class | Bin 0 -> 2259 bytes .../com/bwie/common/domain/Person.class | Bin 0 -> 3173 bytes .../com/bwie/common/result/PageResult.class | Bin 0 -> 3304 bytes .../com/bwie/common/result/Result.class | Bin 0 -> 4886 bytes .../com/bwie/common/utils/FastUtil.class | Bin 0 -> 2597 bytes .../com/bwie/common/utils/HttpPost.class | Bin 0 -> 3049 bytes .../com/bwie/common/utils/HttpUtils$1.class | Bin 0 -> 992 bytes .../com/bwie/common/utils/HttpUtils.class | Bin 0 -> 10290 bytes .../com/bwie/common/utils/JwtUtils.class | Bin 0 -> 2874 bytes .../com/bwie/common/utils/MsgUitl.class | Bin 0 -> 2886 bytes .../com/bwie/common/utils/OssUtil.class | Bin 0 -> 5195 bytes .../bwie/common/utils/SendSmsResponse.class | Bin 0 -> 1908 bytes .../com/bwie/common/utils/SmsResponse.class | Bin 0 -> 2707 bytes .../com/bwie/common/utils/StringUtils.class | Bin 0 -> 1808 bytes .../com/bwie/common/utils/TelSmsUtils.class | Bin 0 -> 3746 bytes bwie-gateway/pom.xml | 15 + bwie-moudles/bwie-user/bwie-user.iml | 2 + bwie-moudles/bwie-user/pom.xml | 54 +++ .../bwie-user/src/main/java/Test.java | 72 ++++ .../bwie-user/target/classes/Test.class | Bin 0 -> 3589 bytes bwie-moudles/pom.xml | 53 +++ jq1.iml | 2 + pom.xml | 61 ++++ 数据结构.patch | 0 55 files changed, 1766 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 bwie-auth/pom.xml create mode 100644 bwie-common/pom.xml create mode 100644 bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/Constants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/Address.java create mode 100644 bwie-common/src/main/java/com/bwie/common/domain/Person.java create mode 100644 bwie-common/src/main/java/com/bwie/common/result/PageResult.java create mode 100644 bwie-common/src/main/java/com/bwie/common/result/Result.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/HttpPost.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/HttpUtils.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/MsgUitl.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/SendSmsResponse.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/SmsResponse.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java create mode 100644 bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java create mode 100644 bwie-common/target/classes/com/bwie/common/config/RedisConfig.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/Constants.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/JwtConstants.class create mode 100644 bwie-common/target/classes/com/bwie/common/constants/TokenConstants.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/Address.class create mode 100644 bwie-common/target/classes/com/bwie/common/domain/Person.class create mode 100644 bwie-common/target/classes/com/bwie/common/result/PageResult.class create mode 100644 bwie-common/target/classes/com/bwie/common/result/Result.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/FastUtil.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/HttpPost.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/HttpUtils$1.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/HttpUtils.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/JwtUtils.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/MsgUitl.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/OssUtil.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/SendSmsResponse.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/SmsResponse.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/StringUtils.class create mode 100644 bwie-common/target/classes/com/bwie/common/utils/TelSmsUtils.class create mode 100644 bwie-gateway/pom.xml create mode 100644 bwie-moudles/bwie-user/bwie-user.iml create mode 100644 bwie-moudles/bwie-user/pom.xml create mode 100644 bwie-moudles/bwie-user/src/main/java/Test.java create mode 100644 bwie-moudles/bwie-user/target/classes/Test.class create mode 100644 bwie-moudles/pom.xml create mode 100644 jq1.iml create mode 100644 pom.xml create mode 100644 数据结构.patch diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..5065458 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..4ebcb31 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..6560a98 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,36 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4b661a5 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/bwie-auth/pom.xml b/bwie-auth/pom.xml new file mode 100644 index 0000000..19abca4 --- /dev/null +++ b/bwie-auth/pom.xml @@ -0,0 +1,26 @@ + + + + jq1 + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-auth + + + + com.bwie + bwie-common + + + + org.springframework.boot + spring-boot-starter-web + + + + \ No newline at end of file diff --git a/bwie-common/pom.xml b/bwie-common/pom.xml new file mode 100644 index 0000000..0ec0848 --- /dev/null +++ b/bwie-common/pom.xml @@ -0,0 +1,111 @@ + + + + jq1 + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-common + + + + org.springframework.cloud + spring-cloud-starter-bootstrap + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.cloud + spring-cloud-starter-loadbalancer + + + + org.springframework.cloud + spring-cloud-starter-openfeign + + + + io.jsonwebtoken + jjwt + 0.9.1 + + + + com.alibaba + fastjson + 1.2.80 + + + + org.springframework.boot + spring-boot-starter-data-redis + + + + org.springframework.boot + spring-boot-starter-validation + + + + org.apache.commons + commons-lang3 + + + + org.projectlombok + lombok + + + + cn.hutool + hutool-all + 5.8.3 + + + + com.aliyun + dysmsapi20170525 + 2.0.1 + + + + com.aliyun.oss + aliyun-sdk-oss + 3.12.0 + + + + org.springframework.boot + spring-boot-starter-amqp + + + + com.github.tobato + fastdfs-client + 1.26.5 + + + + \ No newline at end of file diff --git a/bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java b/bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java new file mode 100644 index 0000000..b62e4b1 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/config/RedisConfig.java @@ -0,0 +1,40 @@ +package com.bwie.common.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +@Configuration +public class RedisConfig { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(factory); + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new + Jackson2JsonRedisSerializer(Object.class); + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jackson2JsonRedisSerializer.setObjectMapper(om); + + StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); + // key采用String的序列化方式 + template.setKeySerializer(stringRedisSerializer); + // hash的key也采用String的序列化方式 + template.setHashKeySerializer(stringRedisSerializer); + // value序列化方式采用jackson + template.setValueSerializer(jackson2JsonRedisSerializer); + // hash的value序列化方式采用jackson + template.setHashValueSerializer(jackson2JsonRedisSerializer); + template.afterPropertiesSet(); + + return template; + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/Constants.java b/bwie-common/src/main/java/com/bwie/common/constants/Constants.java new file mode 100644 index 0000000..2fdc9fe --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/Constants.java @@ -0,0 +1,18 @@ +package com.bwie.common.constants; + +/** + * @description: 系统常量 + * @author DongZl + */ +public class Constants { + /** + * 成功标记 + */ + public static final Integer SUCCESS = 200; + public static final String SUCCESS_MSG = "操作成功"; + /** + * 失败标记 + */ + public static final Integer ERROR = 500; + public static final String ERROR_MSG = "操作异常"; +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java b/bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java new file mode 100644 index 0000000..03692c1 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/JwtConstants.java @@ -0,0 +1,29 @@ +package com.bwie.common.constants; + +/** + * @author DongZl + * @description: Jwt常量 + */ +public class JwtConstants { + + /** + * 用户ID字段 + */ + public static final String DETAILS_USER_ID = "user_id"; + + /** + * 用户名字段 + */ + public static final String DETAILS_USERNAME = "username"; + + /** + * 用户标识 + */ + public static final String USER_KEY = "user_key"; + + /** + * 令牌秘钥 + */ + public final static String SECRET = "abcdefghijklmnopqrstuvwxyz"; + +} diff --git a/bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java b/bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java new file mode 100644 index 0000000..1871fb7 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/constants/TokenConstants.java @@ -0,0 +1,24 @@ +package com.bwie.common.constants; + +/** + * @author DongZl + * @description: 令牌常量 + */ +public class TokenConstants { + /** + * 缓存有效期,默认720(分钟) + */ + public final static long EXPIRATION = 720; + /** + * 缓存刷新时间,默认120(分钟) + */ + public final static long REFRESH_TIME = 120; + /** + * 权限缓存前缀 + */ + public final static String LOGIN_TOKEN_KEY = "login_tokens:"; + /** + * token标识 + */ + public static final String TOKEN = "token"; +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/Address.java b/bwie-common/src/main/java/com/bwie/common/domain/Address.java new file mode 100644 index 0000000..de59d00 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/Address.java @@ -0,0 +1,10 @@ +package com.bwie.common.domain; + +import lombok.Data; + +@Data +public class Address { + private String city; + private String state; + private String zip; +} diff --git a/bwie-common/src/main/java/com/bwie/common/domain/Person.java b/bwie-common/src/main/java/com/bwie/common/domain/Person.java new file mode 100644 index 0000000..a51de6b --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/domain/Person.java @@ -0,0 +1,13 @@ +package com.bwie.common.domain; + +import lombok.Data; + +import java.util.List; + +@Data +public class Person { + private String name; + private String age; + private List firends; + private Address address; +} diff --git a/bwie-common/src/main/java/com/bwie/common/result/PageResult.java b/bwie-common/src/main/java/com/bwie/common/result/PageResult.java new file mode 100644 index 0000000..85ecdda --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/result/PageResult.java @@ -0,0 +1,34 @@ +package com.bwie.common.result; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @author DongZl + * @description: 列表返回结果集 + */ +@Data +public class PageResult implements Serializable { + /** + * 总条数 + */ + private long total; + /** + * 结果集合 + */ + private List list; + public PageResult() { + } + public PageResult(long total, List list) { + this.total = total; + this.list = list; + } + public static PageResult toPageResult(long total, List list){ + return new PageResult(total , list); + } + public static Result> toResult(long total, List list){ + return Result.success(PageResult.toPageResult(total,list)); + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/result/Result.java b/bwie-common/src/main/java/com/bwie/common/result/Result.java new file mode 100644 index 0000000..30b1e73 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/result/Result.java @@ -0,0 +1,76 @@ +package com.bwie.common.result; + +import com.bwie.common.constants.Constants; +import lombok.Data; + +import java.io.Serializable; + +/** + * @author DongZl + * @description: 响应信息主体 + */ +@Data +public class Result implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 成功 + */ + public static final int SUCCESS = Constants.SUCCESS; + /** + * 失败 + */ + public static final int FAIL = Constants.ERROR; + /** + * 返回状态码 + */ + private int code; + /** + * 响应信息 + */ + private String msg; + /** + * 响应数据 + */ + private T data; + + public static Result success() { + return restResult(null, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data) { + return restResult(data, SUCCESS, Constants.SUCCESS_MSG); + } + + public static Result success(T data, String msg) { + return restResult(data, SUCCESS, msg); + } + + public static Result error() { + return restResult(null, FAIL, Constants.ERROR_MSG); + } + + public static Result error(String msg) { + return restResult(null, FAIL, msg); + } + + public static Result error(T data) { + return restResult(data, FAIL, Constants.ERROR_MSG); + } + + public static Result error(T data, String msg) { + return restResult(data, FAIL, msg); + } + + public static Result error(int code, String msg) { + return restResult(null, code, msg); + } + + private static Result restResult(T data, int code, String msg) { + Result apiResult = new Result<>(); + apiResult.setCode(code); + apiResult.setData(data); + apiResult.setMsg(msg); + return apiResult; + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java b/bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java new file mode 100644 index 0000000..94b1722 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/FastUtil.java @@ -0,0 +1,55 @@ +package com.bwie.common.utils; + +import org.springframework.stereotype.Component; +import com.github.tobato.fastdfs.domain.fdfs.StorePath; +import com.github.tobato.fastdfs.service.FastFileStorageClient; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.util.StringUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.annotation.Resource; + +/** + * @BelongsProject: 0107day02 + * @BelongsPackage: com.bw.config + * @Author: zhupengfei + * @CreateTime: 2023-02-01 08:52 + */ +@Component +public class FastUtil { + private static final Logger log = LoggerFactory.getLogger(FastUtil.class); + + @Resource + private FastFileStorageClient storageClient ; + + /** + * 上传文件 + */ + public String upload(MultipartFile multipartFile) throws Exception{ + String originalFilename = multipartFile.getOriginalFilename(). + substring(multipartFile.getOriginalFilename(). + lastIndexOf(".") + 1); + StorePath storePath = this.storageClient.uploadImageAndCrtThumbImage( + multipartFile.getInputStream(), + multipartFile.getSize(),originalFilename , null); + return storePath.getFullPath() ; + } + /** + * 删除文件 + */ + public String deleteFile(String fileUrl) { + if (StringUtils.isEmpty(fileUrl)) { + log.info("fileUrl == >>文件路径为空..."); + return "文件路径不能为空"; + } + try { + StorePath storePath = StorePath.parseFromUrl(fileUrl); + storageClient.deleteFile(storePath.getGroup(), storePath.getPath()); + } catch (Exception e) { + log.error(e.getMessage()); + } + return "删除成功"; + } + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/HttpPost.java b/bwie-common/src/main/java/com/bwie/common/utils/HttpPost.java new file mode 100644 index 0000000..93380f0 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/HttpPost.java @@ -0,0 +1,77 @@ +package com.bwie.common.utils; + + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; +import java.net.URL; + + +public class HttpPost { + public static void main(String[] args) { + //你的本地地址 配你的项目地址 这个是我电脑本地的地址 + String doGet = doGet("http://127.0.0.1:8081/sell/list"); + System.out.println("----------SSSS---DDS--S--"+doGet); + } + public static String doGet(String httpUrl){ + //链接 + HttpURLConnection connection=null; + + InputStream is=null; + BufferedReader br = null; + StringBuffer result=new StringBuffer(); + try { + //创建连接 + URL url=new URL(httpUrl); + connection= (HttpURLConnection) url.openConnection(); + //设置请求方式 + connection.setRequestMethod("GET"); + //设置连接超时时间 + connection.setConnectTimeout(15000); + //设置读取超时时间 + connection.setReadTimeout(15000); + + //开始连接 + connection.connect(); + //获取响应数据 + if(connection.getResponseCode()==200){ + //获取返回的数据 + is=connection.getInputStream(); + if(is!=null){ + br=new BufferedReader(new InputStreamReader(is,"UTF-8")); + String temp = null; + while ((temp=br.readLine())!=null){ + result.append(temp); + } + } + } + } catch (MalformedURLException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + }finally { + if(br!=null){ + try { + br.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + if(is!=null){ + try { + is.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + connection.disconnect();// 关闭远程连接 + } + return result.toString(); + } + + + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/HttpUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/HttpUtils.java new file mode 100644 index 0000000..1c7e2f3 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/HttpUtils.java @@ -0,0 +1,310 @@ +package com.bwie.common.utils; + +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpDelete; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.methods.HttpPut; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.conn.ssl.SSLSocketFactory; +import org.apache.http.entity.ByteArrayEntity; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.message.BasicNameValuePair; + +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManager; +import javax.net.ssl.X509TrustManager; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.security.KeyManagementException; +import java.security.NoSuchAlgorithmException; +import java.security.cert.X509Certificate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +public class HttpUtils { + /** + * get + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doGet(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpGet request = new HttpGet(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + /** + * post form + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param bodys + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + Map bodys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (bodys != null) { + List nameValuePairList = new ArrayList(); + + for (String key : bodys.keySet()) { + nameValuePairList.add(new BasicNameValuePair(key, bodys.get(key))); + } + UrlEncodedFormEntity formEntity = new UrlEncodedFormEntity(nameValuePairList, "utf-8"); + formEntity.setContentType("application/x-www-form-urlencoded; charset=UTF-8"); + request.setEntity(formEntity); + } + + return httpClient.execute(request); + } + + /** + * Post String + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (StringUtils.isNotBlank(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Post stream + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPost(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPost request = new HttpPost(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Put String + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + String body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (StringUtils.isNotBlank(body)) { + request.setEntity(new StringEntity(body, "utf-8")); + } + + return httpClient.execute(request); + } + + /** + * Put stream + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @param body + * @return + * @throws Exception + */ + public static HttpResponse doPut(String host, String path, String method, + Map headers, + Map querys, + byte[] body) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpPut request = new HttpPut(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + if (body != null) { + request.setEntity(new ByteArrayEntity(body)); + } + + return httpClient.execute(request); + } + + /** + * Delete + * + * @param host + * @param path + * @param method + * @param headers + * @param querys + * @return + * @throws Exception + */ + public static HttpResponse doDelete(String host, String path, String method, + Map headers, + Map querys) + throws Exception { + HttpClient httpClient = wrapClient(host); + + HttpDelete request = new HttpDelete(buildUrl(host, path, querys)); + for (Map.Entry e : headers.entrySet()) { + request.addHeader(e.getKey(), e.getValue()); + } + + return httpClient.execute(request); + } + + private static String buildUrl(String host, String path, Map querys) throws UnsupportedEncodingException { + StringBuilder sbUrl = new StringBuilder(); + sbUrl.append(host); + if (!StringUtils.isBlank(path)) { + sbUrl.append(path); + } + if (null != querys) { + StringBuilder sbQuery = new StringBuilder(); + for (Map.Entry query : querys.entrySet()) { + if (0 < sbQuery.length()) { + sbQuery.append("&"); + } + if (StringUtils.isBlank(query.getKey()) && !StringUtils.isBlank(query.getValue())) { + sbQuery.append(query.getValue()); + } + if (!StringUtils.isBlank(query.getKey())) { + sbQuery.append(query.getKey()); + if (!StringUtils.isBlank(query.getValue())) { + sbQuery.append("="); + sbQuery.append(URLEncoder.encode(query.getValue(), "utf-8")); + } + } + } + if (0 < sbQuery.length()) { + sbUrl.append("?").append(sbQuery); + } + } + + return sbUrl.toString(); + } + + private static HttpClient wrapClient(String host) { + HttpClient httpClient = new DefaultHttpClient(); + if (host.startsWith("https://")) { + sslClient(httpClient); + } + + return httpClient; + } + + private static void sslClient(HttpClient httpClient) { + try { + SSLContext ctx = SSLContext.getInstance("TLS"); + X509TrustManager tm = new X509TrustManager() { + public X509Certificate[] getAcceptedIssuers() { + return null; + } + public void checkClientTrusted(X509Certificate[] xcs, String str) { + + } + public void checkServerTrusted(X509Certificate[] xcs, String str) { + + } + }; + ctx.init(null, new TrustManager[] { tm }, null); + SSLSocketFactory ssf = new SSLSocketFactory(ctx); + ssf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); + ClientConnectionManager ccm = httpClient.getConnectionManager(); + SchemeRegistry registry = ccm.getSchemeRegistry(); + registry.register(new Scheme("https", 443, ssf)); + } catch (KeyManagementException ex) { + throw new RuntimeException(ex); + } catch (NoSuchAlgorithmException ex) { + throw new RuntimeException(ex); + } + } + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java new file mode 100644 index 0000000..f560aa9 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/JwtUtils.java @@ -0,0 +1,109 @@ +package com.bwie.common.utils; + +import com.bwie.common.constants.JwtConstants; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; + +import java.util.Map; + +/** + * @description: Jwt工具类 + * @author DongZl + */ +public class JwtUtils { + + /** + * 秘钥 + */ + public static String secret = JwtConstants.SECRET; + + /** + * 从数据声明生成令牌 + * + * @param claims 数据声明 + * @return 令牌 + */ + public static String createToken(Map claims){ + String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, secret).compact(); + return token; + } + + /** + * 从令牌中获取数据声明 + * + * @param token 令牌 + * @return 数据声明 + */ + public static Claims parseToken(String token){ + return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); + } + /** + * 根据令牌获取用户标识 + * + * @param token 令牌 + * @return 用户ID + */ + public static String getUserKey(String token){ + Claims claims = parseToken(token); + return getValue(claims, JwtConstants.USER_KEY); + } + /** + * 根据令牌获取用户标识 + * + * @param claims 身份信息 + * @return 用户ID + */ + public static String getUserKey(Claims claims){ + return getValue(claims, JwtConstants.USER_KEY); + } + /** + * 根据令牌获取用户ID + * + * @param token 令牌 + * @return 用户ID + */ + public static String getUserId(String token){ + Claims claims = parseToken(token); + return getValue(claims, JwtConstants.DETAILS_USER_ID); + } + /** + * 根据身份信息获取用户ID + * + * @param claims 身份信息 + * @return 用户ID + */ + public static String getUserId(Claims claims){ + return getValue(claims, JwtConstants.DETAILS_USER_ID); + } + /** + * 根据令牌获取用户名 + * + * @param token 令牌 + * @return 用户名 + */ + public static String getUserName(String token){ + Claims claims = parseToken(token); + return getValue(claims, JwtConstants.DETAILS_USERNAME); + } + /** + * 根据身份信息获取用户名 + * + * @param claims 身份信息 + * @return 用户名 + */ + public static String getUserName(Claims claims){ + return getValue(claims, JwtConstants.DETAILS_USERNAME); + } + /** + * 根据身份信息获取键值 + * + * @param claims 身份信息 + * @param key 键 + * @return 值 + */ + public static String getValue(Claims claims, String key){ + Object obj = claims.get(key); + return obj == null ? "" : obj.toString(); + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/MsgUitl.java b/bwie-common/src/main/java/com/bwie/common/utils/MsgUitl.java new file mode 100644 index 0000000..4045996 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/MsgUitl.java @@ -0,0 +1,76 @@ +package com.bwie.common.utils; + +import org.apache.http.HttpResponse; +import org.apache.http.util.EntityUtils; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author markguo + * @version 1.0.0 + * @ClassName MsgUitl.java + * @Description TODO + * @createTime 2022年07月22日 15:38:00 + */ +@Component +public class MsgUitl { + + public static String sendMsg(String phone,String code) { + String host = "https://gyytz.market.alicloudapi.com"; + String path = "/sms/smsSend"; + String method = "POST"; + String appcode = "b491bc5d56bb4fa59171e19aaab030bb"; + Map headers = new HashMap(); + //最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105 + headers.put("Authorization", "APPCODE " + appcode); + Map querys = new HashMap(); + querys.put("mobile", phone); + querys.put("param", "code"+code); + querys.put("smsSignId", "2e65b1bb3d054466b82f0c9d125465e2"); + querys.put("templateId", "908e94ccf08b4476ba6c876d13f084ad"); + Map bodys = new HashMap(); + + String message=""; + try { + /** + * 重要提示如下: + * HttpUtils请从 + * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java + * 下载 + * + * 相应的依赖请参照 + * https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml + */ + HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys); + System.out.println(response.toString()); +// 获取response的body + message = EntityUtils.toString(response.getEntity()); + System.out.println(EntityUtils.toString(response.getEntity())); + + } catch (Exception e) { + e.printStackTrace(); + } + return message; + } + + @CachePut(value="aaa", key="#mobile") + public String saveCode(String mobile,String code){ + return code; + } + + /** + * 获得验证码 + * @param mobile + * @return + */ + + @Cacheable(value="aaa", key="#mobile") + public String getCode(String mobile){ + return "1234"; + } + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java b/bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java new file mode 100644 index 0000000..9c1383f --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/OssUtil.java @@ -0,0 +1,153 @@ +package com.bwie.common.utils; + +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.model.GetObjectRequest; +import com.aliyun.oss.model.PutObjectRequest; +import lombok.extern.log4j.Log4j2; +import org.springframework.web.multipart.MultipartFile; + +import java.io.*; +import java.time.LocalDateTime; +import java.util.UUID; + +/** + * Oss服务调用 + */ +@Log4j2 +public class OssUtil { + + /** + * Endpoint 存储对象概述 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 访问路径前缀 存储对象概述 + */ + private static String endPoint = "oss-cn-shanghai.aliyuncs.com"; + private static String accessKeyId = "LTAI5tD2tppzLQ4Rb6yKYyph"; + private static String accessKeySecret = "KEKNKwVvDq7PZLjE63NPBouqHXox4Q"; + private static String accessPre = "https://dzlmuyu.oss-cn-shanghai.aliyuncs.com/"; + + /** + * bucket名称 + * @return + */ + private static String bucketName = "dzlmuyu"; + + private static OSS ossClient ; + + static { + ossClient = new OSSClientBuilder().build( + endPoint, + accessKeyId, + accessKeySecret); + log.info("oss服务连接成功!"); + } + + /** + * 默认路径上传本地文件 + * @param filePath + */ + public static String uploadFile(String filePath){ + return uploadFileForBucket(bucketName,getOssFilePath(filePath) ,filePath); + } + + /** + * 默认路径上传multipartFile文件 + * @param multipartFile + */ + public static String uploadMultipartFile(MultipartFile multipartFile) { + return uploadMultipartFile(bucketName,getOssFilePath(multipartFile.getOriginalFilename()),multipartFile); + } + /** + * 上传 multipartFile 类型文件 + * @param bucketName + * @param ossPath + * @param multipartFile + */ + public static String uploadMultipartFile(String bucketName , String ossPath , MultipartFile multipartFile){ + InputStream inputStream = null; + try { + inputStream = multipartFile.getInputStream(); + } catch (IOException e) { + e.printStackTrace(); + } + uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); + return accessPre+ossPath; + } + + /** + * 使用File上传PutObject上传文件 ** 程序默认使用次方法上传 + * @param bucketName 实例名称 + * @param ossPath oss存储路径 + * @param filePath 本地文件路径 + */ + public static String uploadFileForBucket(String bucketName , String ossPath , String filePath) { + // 创建PutObjectRequest对象。 + PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, ossPath, new File(filePath)); + + // 上传 + ossClient.putObject(putObjectRequest); + return accessPre+ossPath; + } + + /** + * 使用文件流上传到指定的bucket实例 + * @param bucketName 实例名称 + * @param ossPath oss存储路径 + * @param filePath 本地文件路径 + */ + public static String uploadFileInputStreamForBucket(String bucketName , String ossPath , String filePath){ + + // 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。 + InputStream inputStream = null; + try { + inputStream = new FileInputStream(filePath); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + // 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。 + uploadFileInputStreamForBucket(bucketName, ossPath, inputStream); + return accessPre+ossPath; + } + + public static void uploadFileInputStreamForBucket(String bucketName , String ossPath , InputStream inputStream ){ + ossClient.putObject(bucketName, ossPath, inputStream); + } + + /** + * 下载 + * @param ossFilePath + * @param filePath + */ + public static void downloadFile(String ossFilePath , String filePath ){ + downloadFileForBucket(bucketName , ossFilePath , filePath); + } + /** + * 下载 + * @param bucketName 实例名称 + * @param ossFilePath oss存储路径 + * @param filePath 本地文件路径 + */ + public static void downloadFileForBucket(String bucketName , String ossFilePath , String filePath ){ + ossClient.getObject(new GetObjectRequest(bucketName, ossFilePath), new File(filePath)); + } + + /** + * + * @return + */ + public static String getOssDefaultPath(){ + LocalDateTime now = LocalDateTime.now(); + String url = + now.getYear()+"/"+ + now.getMonth()+"/"+ + now.getDayOfMonth()+"/"+ + now.getHour()+"/"+ + now.getMinute()+"/"; + return url; + } + + public static String getOssFilePath(String filePath){ + String fileSuf = filePath.substring(filePath.indexOf(".") + 1); + return getOssDefaultPath() + UUID.randomUUID().toString() + "." + fileSuf; + } + +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/SendSmsResponse.java b/bwie-common/src/main/java/com/bwie/common/utils/SendSmsResponse.java new file mode 100644 index 0000000..a16d510 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/SendSmsResponse.java @@ -0,0 +1,51 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by Fernflower decompiler) +// + +package com.bwie.common.utils; + +import com.aliyun.dysmsapi20170525.models.SendSmsResponseBody; +import com.aliyun.tea.NameInMap; +import com.aliyun.tea.TeaModel; +import com.aliyun.tea.Validation; +import java.util.Map; + +public class SendSmsResponse extends TeaModel { + @NameInMap("headers") + @Validation( + required = true + ) + public Map headers; + @NameInMap("body") + @Validation( + required = true + ) + public SendSmsResponseBody body; + + public SendSmsResponse() { + } + + public static SendSmsResponse build(Map map) throws Exception { + SendSmsResponse self = new SendSmsResponse(); + return (SendSmsResponse)TeaModel.build(map, self); + } + + public SendSmsResponse setHeaders(Map headers) { + this.headers = headers; + return this; + } + + public Map getHeaders() { + return this.headers; + } + + public SendSmsResponse setBody(SendSmsResponseBody body) { + this.body = body; + return this; + } + + public SendSmsResponseBody getBody() { + return this.body; + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/SmsResponse.java b/bwie-common/src/main/java/com/bwie/common/utils/SmsResponse.java new file mode 100644 index 0000000..dbd69de --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/SmsResponse.java @@ -0,0 +1,21 @@ +package com.bwie.common.utils; + +import lombok.Data; + +/** + * @author 冯凯 + * @version 1.0 + * @description: TODO + * @date 2023/8/8 16:27 + */ +@Data +public class SmsResponse { + + private String msg; + + private String smsid; + + private String code; + + private String balance; +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java new file mode 100644 index 0000000..93c47fd --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/StringUtils.java @@ -0,0 +1,68 @@ +package com.bwie.common.utils; + +import org.springframework.util.AntPathMatcher; + +import java.util.Collection; +import java.util.List; + +/** + * @author DongZl + * @description: 字符串处理工具类 + */ +public class StringUtils extends org.apache.commons.lang3.StringUtils { + + /** + * * 判断一个对象是否为空 + * + * @param object Object + * @return true:为空 false:非空 + */ + public static boolean isNull(Object object) { + return object == null; + } + + /** + * * 判断一个Collection是否为空, 包含List,Set,Queue + * + * @param coll 要判断的Collection + * @return true:为空 false:非空 + */ + public static boolean isEmpty(Collection coll) { + return isNull(coll) || coll.isEmpty(); + } + + /** + * 查找指定字符串是否匹配指定字符串列表中的任意一个字符串 + * + * @param str 指定字符串 + * @param strs 需要检查的字符串数组 + * @return 是否匹配 + */ + public static boolean matches(String str, List strs) { + if (isEmpty(str) || isEmpty(strs)) { + return false; + } + for (String pattern : strs) { + if (isMatch(pattern, str)) + { + return true; + } + } + return false; + } + + /** + * 判断url是否与规则配置: + * ? 表示单个字符; + * * 表示一层路径内的任意字符串,不可跨层级; + * ** 表示任意层路径; + * + * @param pattern 匹配规则 + * @param url 需要匹配的url + * @return + */ + public static boolean isMatch(String pattern, String url) { + AntPathMatcher matcher = new AntPathMatcher(); + return matcher.match(pattern, url); + } +} diff --git a/bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java b/bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java new file mode 100644 index 0000000..d09e4d0 --- /dev/null +++ b/bwie-common/src/main/java/com/bwie/common/utils/TelSmsUtils.java @@ -0,0 +1,87 @@ +package com.bwie.common.utils; + +import com.alibaba.fastjson.JSONObject; +import com.aliyun.dysmsapi20170525.Client; +import com.aliyun.dysmsapi20170525.models.SendSmsRequest; +import com.aliyun.dysmsapi20170525.models.SendSmsResponse; +import com.aliyun.teaopenapi.models.Config; +import lombok.extern.log4j.Log4j2; + +import java.util.Map; + +/** + * 短信工具类 + */ +@Log4j2 +public class TelSmsUtils { + + /** + * 阿里云主账号AccessKey,accessKeySecret拥有所有API的访问权限 + */ + private static String accessKeyId = "LTAI5tMRrNoxsBPgb6bYZWTW"; + private static String accessKeySecret = "r9LXZtt3ewEG2DHQ6DbAc65F0AFRA7"; + private static String templateCode = "SMS10001"; + + /** + * 短信访问域名 + */ + private static String endpoint = "dysmsapi.aliyuncs.com"; + /** + * 短信签名 + */ + private static String signName = "登录验证"; + + /** + * 实例化短信对象 + */ + private static Client client; + + static { + log.info("初始化短信服务开始"); + long startTime = System.currentTimeMillis(); + try { + client = initClient(); + log.info("初始化短信成功:{}",signName); + } catch (Exception e) { + e.printStackTrace(); + } + log.info("初始化短信服务结束:耗时:{}MS",(System.currentTimeMillis()-startTime)); + } + /** + * 初始化短信对象 + * @return + * @throws Exception + */ + private static Client initClient() throws Exception{ + Config config = new Config() + // 您的AccessKey ID + .setAccessKeyId(accessKeyId) + // 您的AccessKey Secret + .setAccessKeySecret(accessKeySecret); + // 访问的域名 + config.endpoint = endpoint; + return new Client(config); + } + + /** + * 发送单条短信 + * @param tel + * @param sendDataMap + */ + public static String sendSms(String tel , Map sendDataMap){ + SendSmsRequest sendSmsRequest = new SendSmsRequest() + .setPhoneNumbers(tel) + .setSignName(signName) + .setTemplateCode(templateCode) + .setTemplateParam(JSONObject.toJSONString(sendDataMap)); + SendSmsResponse sendSmsResponse = null; + try { + log.info("发送短信验证码:消息内容是:【{}】", JSONObject.toJSONString(sendDataMap)); + sendSmsResponse = client.sendSms(sendSmsRequest); + } catch (Exception e) { + log.error("短信发送异常,手机号:【{}】,短信内容:【{}】,异常信息:【{}】", tel, sendDataMap, e); + } + return JSONObject.toJSONString(sendSmsResponse.getBody()); + } + +} diff --git a/bwie-common/target/classes/com/bwie/common/config/RedisConfig.class b/bwie-common/target/classes/com/bwie/common/config/RedisConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..e636e574e23156ace6e4a6fa8918d1b8dc298320 GIT binary patch literal 3159 zcmc&%ZBrUo6n-u*uF&IsiFU+ z{S9qC;7pzA59p8T^xOq466oSgXUYuc?!BDz+;g6L&biBNdk< zI&W6A+_5e+dZ?HN4MtHfX*;5z+biyKf?>##(_K-imbpWa$5Uz3Drt7r(v4El;uUdh zTCcPMcev)NN*F`r9i0%*pjz`ao_9>Eo|yKAutd}NY-937DK^a+mc8x0TwoY<&SRSQ z#_QtGwIiN?Wt+y`4H9moSwTdX^`C^r@YoB}K3CQ@dIM41KC{9w>z-DT+m5haSISyz zZ)B9o-bpp;_4GGUbQ_%HU8|FB#maS(KJP|37KjxBJnZn&Idb zv8UTQm14>;Ooz)Fp*Uu{(ne+Eh}VwB&sDW$!40A!oHc7!UaaY|#7EC+j7s;mD1itq5fiXZSo#Y+%Z5BqnzYdNUMA+Mq!g^;2sMM)BQ!@IvSjN8JY zW4PELiOc^Yo#|#6pK7b7l`^;OguF23x>MPfYTK4cjl`*^@_Av~CN(sFDxGGS@6m_; z#WbPdkRk55rEH_Anq#g~dFP!;w^H=7?$jyc+b8Ne(Pg>82&x``Ds#ZF=!c{*ZPMF?=^n=NUhUT3A9Sa)tNP@sDDqm_*{xUUN}ymn=Aq11=Ed52 zCPnAlD~LXTiN-Nu$QO+c{G(oE_5*rZVn*mB+wVe#JD1wtt&dRxc`EAd_j%H@BHQ{~ z$F=KX%1VF2?ZXb-h|D}*u8H=|CR)00{Se_ry8Bw0rwcnP90vLR)}=AFmE^^|!*yJx zH&yxZfyu5<@_m|VG%^~4w@$!*bAP@@a==|2#s~DQHWlz8KB5`J$M^&RY0P}^yPz*m z;X62ie=|1IK;RU?gUG-Ml*}mxX*m=RL<4USeuH-!Q1|8YPy@sJv(Z2UBc~W8opxc9!j$x7!dUqbf5XLE}3G(JDVieK>1(hJJRq}L$ zyxgXspW!B+W0Jc6XKpOXroXLNKo`Pw+@P2S>9V*g&NF?8<~RjL#z zYoz>!C__+`c8>Bp3cnz8)w6+wZe8x4d+zSN$9KN{bM*_r4z?5|@l3&Utfr8_i_pB3 z@JhmKf@FNGRH}wS$kq?dfvG#D+tF)oAUeX|B|MtuKfO2h2${JWBk*mv!zGIq&+P@K z8?;QPFJu%5iE6XiXcAJ94|`>-5t3!wwS%{Wg<`2ih*!MNg0Nh-UGbscZ3}YimfEz`HdcuK~D1G`7qtXp1JZ-2Fg&Y?Y%T`b{Y+zG`1X;x*WWxG?j3J~ScGhSg3M(L}kA5OXeF4!o@Yd5OT#@X>P@{GoZjHOY$+}$cGXc<&lB{z7OLVRE}A7#4pY9 z%ba78(AZ`;tFtHeiS0|!dDNO^n~X>aj~T0z0<0j%k&Gw*G&6;)hMOT`7g*5fE&}oJ VDgJ}lDm)RaD#cR?PZ`IM{|oAmkthHF literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/constants/JwtConstants.class b/bwie-common/target/classes/com/bwie/common/constants/JwtConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..452b534641592a2df98eeb0dd2a45ec22a968bba GIT binary patch literal 544 zcma)(%TB{E5Jj&`OG7D-miJR)gMbCuumd4gZIB89BvLA|s+`mmw}}IJP|9DiLSn%O z@KK0K0FfmNkM9|4u4n9z&$o8~2iPoO3`<2U7qP-H(=b}KrfGGqE#s=wY%o;KK7Zu8 z%T-UeqCl$NA;VPNS7F3e)aGt1G^{erW-Bjh=Z1zg1}*hDGj24jGmKkC{mN)**dTo* zm5h!V#&&kw4Eeg>6?DHTmAHsKTLdj`yOgP#zQf%%4`jkW$$WGtLxvsG@jcxhN}-eR zd_~)LU!i_FjDDL8spFF6$AKeGWa3%L9_}ael`)MOhVB3P(X@Y$a%uO46EPIyPy`*> zrJ)n0xJNgovNI4PhE;AmU2)sHll_6~DgXW<2&4FM_%wRP7IO3pKprc!3ZUm9%7Oj_ zT81ZxOBtRdE@ya(Dp@iL#aVLDQw9oquV62!WrgB6r9tLZise)nFo$^}h6Rc_EPesg Cd3opn literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/constants/TokenConstants.class b/bwie-common/target/classes/com/bwie/common/constants/TokenConstants.class new file mode 100644 index 0000000000000000000000000000000000000000..684ace3b3539ed572fbe090abfff328502045cc6 GIT binary patch literal 526 zcma)2O;5r=5Pbtwkbofgg`e?;9PGuD7!yN^BDEN3h@MD`4K9{#LW}yhJehd#2YB)q z8K)H$Z*H=0=gsWCoi}eEFRuU&u#-j{>q%@Ru}Mg4SC@_UiP>lw1Ue^VYo7E2O9oxb zoj3|V;T3x)WZGK2t#!_NX5&Je=J80#>8;a-(KB03&FD3?YeGRETKAUfT5_Ovg0YZ; zY6@EfCAyQsHev2aND&+p;^n88rAUu#y^oR+iW`fiKKSaj+HA`Ai< z?$>)xoyt>jZf)IjD}HI}u7YZwCM!~rtfpUcTM7xObRuLm8OS<^KoL>e7iyxD6{rH1 z6QLr&{micNRoU4MNMyHzj#(9_u_#%xf|}E=g?(UCmYKxb`f_=ZSrQv0bg%AH7$sm# zM4!_pg7B8#3|p;`+-UB#D(;de4YZ?X%*aUC$l!S!gBY?gEXxRn6fXXM8*RLcX&Yl0 zw=pH?WkIjVav4_?hP#LD`kq&>3VZ$0we zJ&qOjf=15nuG^?8_fzQ7d;eOAS_x45jGWGqo2;Jg%l63_YN6<){xSeqmaWv$jROz zwPy_}Jw6IK5`^URhJ~xk+!HL|L3a8_=-NT{Pv}2Dj~`_JfL_i`AHoQZ1m|+OM}J1o7$=O9MUzI!qLnel$cl{2jMXvH z4wz6J-9z_znCKDz50FKUl?~!s}JxfA0c^E=MafKPlBgRCXU`{t$g% ziab%&M3K=VjU~+qRmq|rsMwdl$;#+~YP2`iSHllR8OE{B3sPb_I@T~p6hjg>G0&{y zeE%-tDv`!@81E730h#wV1M=q{poXuI4=}(OQ%Ad5PTuTNx^9@hj_004be}$A+r%R3fF=b GU;hso1YeZ^ literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/domain/Person.class b/bwie-common/target/classes/com/bwie/common/domain/Person.class new file mode 100644 index 0000000000000000000000000000000000000000..4f3bf95698387b6cb8c85080acf7524d04f0fc0e GIT binary patch literal 3173 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 literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/result/Result.class b/bwie-common/target/classes/com/bwie/common/result/Result.class new file mode 100644 index 0000000000000000000000000000000000000000..39ab3dfd2df09fa0efb52e5b4f2651548baaceb0 GIT binary patch literal 4886 zcmb_gTX!2*75+w^(MZZTu@zscByFyMBU?6YOaa?*F1`>2UsBr%v_RXjJlINY$&KYa0$g$1BD?VqRefHUVpKo8z z#Q*ruAO8Yi5Wk7TM%hLshH8T3GqQd*hA-K8PS)3C__7RNk>RTe9LF`0`I-!0m*E?- z@l6??m*HC?@@=8MBh(8vUQD11*J5}{=I_ezatz;#;rl{fkKqS0|1gdSUP<6b__0v0 z+W3i$pBiW@d!@X)dc`Z1^TopD?6?8rqJh@2Vxe4d3zaMGYSpuN7x^&^*z=di#wODtVE zZavs&oAxRz#idJb$zAg*41$3(TX;>cwy_>KKGDSS&{cF$woyg^9@*NHU8@Uxv%FHN zSZV-w#~#gW;nDx>&R|b=*Jp{$>=u6PURi)kf>~WrDQ#e~NdR}RntsOJ^?ac8@V13? z;@%R0t8-gio(Z~pCj+I?k$fRv8D$6PIeCROU0KPq7VKrOqN1mn*vJpCJC+CSJ5LSD!RO$gw#PAy#|gqw*8!bk;((X+eCz&_g=mJ z&p*HR-b=6CdHHn*6PR?+C&%^1oj*N)=k{#__cv-&m(`DmgHL11!DU==@F*U0@ELs8 zK?c1J`Z3_(qj=E43clcA2D1(>;SmR)m*pJh9po`$(*MFDt=kHQ-C- z?)th{STc}lmd~Lusn}|78J9z>hkI;qQl~?FFZul;UD-m#TlPvc(q6xZW-__*`fG!= zF)=qcJBOqE$Ti|6`7?t?`GP$9X{6*I+w-} z_Z=lAiNn?KCeA6YM)+$P+=e!D+BY+*&CGI+a4#-qdbM|9EB(HeE+wR`P+YQ=mh1N7 z+zaf*Bfh=<4V!0p;A~S!tYowaBoBokIg4}J*HapjIH9!C`dB1{$ipE-l!qJlulsV| z_oW%kbzi~&426^?GywH$3n#etT`-?TGnlPrFpvKKU>?(O4eQX_#(}_M7_9Rli?(zi zMhh$h6&yw0`>A(eKl(OeGns=m#53s{5}Cdl_GBc{6_Q<$ z@A^r^@F}$70+Pt08y9^K(n^U&R?19#k0nkcc(@g+fsv(e%}ZmUWQ$=L2jgOLL>WjYDD$> zdNKw^AC= zYV(&Q+F45Nuge}6$r-MaLuTgh*po8fMf*)SnUq<>{y@BA$f8KcP&8$UO!QqOZ=yA2 zrJ{k5DOqZUx~59{3(BF5cvbPZ|EhK3Nj$+qh;TJd`a!>7M&Xh&vA~yek(5P54(S&A4S5B{Tq92e9?IyT{f2aFJ`=t`xF`9fbVfe%apGn1ski_AVp*a zuf}3i*HCE})GkHoygbhJvPXKLv5`5i;1Y@|%R6O)K=>riu~2bF$}bPGGuRlng`ID@B1MbN=4TBX}9 zteI}CkupOU7}ux@mKR}uKtN4mX&8i$e>eGn$Li~dFgjrc0)dRVnME<)pPzyng>`x% zU2^apbg{R0C-18vB|y}0Ajvi_bdpo@kfJ+kxIg&-=^73<_L*=~9n`n3heJ5h1!5>} u^l16Ake~f;;7AQe{{TMt$9%$)5>+2h2|pF~^EK}#rP|awp5}f8rT+r2x1c!y literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/FastUtil.class b/bwie-common/target/classes/com/bwie/common/utils/FastUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c87c0cf6c05b85794a685c3104182abeabc781ac GIT binary patch literal 2597 zcmbVOYi|@)7=BK-?d)y`D5cm|5DRi?x6lzq6iTaDTP(H|S*VD&&hDPwPMOO(GfN9z z_@Ifz#Kcb~BqsX7#P~_Pq)>?b0DlJ{{t4rAX12>xwnlBz_uSs|zR!C(&+PAi-MkIp z04}HTIELFWf)|r`DUG9eS&7jUy77wI9#dkx4ae|m8WT94#%q{Vr&CFsXu~v4Ch@vD zIi*BaiPK8^jE0#sI`M|mIh(|r8qTHh7T(tIjzGfpN&+2|o?kKoyLe#UnDj~|=?@94 z3qsE~OLEkuF)#w@U$FAh80UK2vSqgZDsA);5h(GVm&XUh-z^5zDp05hCsDpAl#t z^$Jp8!=&ZP6BQ>X{nI85Mj_-)d&cxFwXSY9hjSJ^^hU^Y3zjq(g5$YHCA91yLVJcY z<)%`$J+mM%))(iZ>|1WB=$npQ@ci?}g3K9C#SX2q>4(PD%1p&N)E@<4*rr=DvZ1=C zvRBhqIs*Iuvsr<5&$mjJYud_$ODHN#m8@01QmRt&q#4dBKWkU1;5nw{8bwtxRiWq# zv8Kls^RiqmNBfiv=e)v6Q^g)ipZQA{q|Ip@$nL&JAvDZ@Al%J$x-}>Cs1+H}8Q*4} zvZ0wjKV_DqlCf6>l1K7(wdm<=)CaNWb*j5my#`ed1Tqa%8W6Me!i!~TjCxMlbJ@H@ zI<{knhIe(mhgktJsKL~cLtaM#QpXe6rlW|GjyYHw=5?Hht-;aZVpfBvqm1`;Y{6E6 z9aZeT!^6EJBlo`g?9Q#F``3TGd;8NnH*Ws%!_C1#TK9DX;G^k&`236epZpeU>8Rj> zjs?u>SXAN}Tol;!pt`km>A0lMKTziMyH~#b^Xhl^u6%j-^KS&Usamhy*BU<5@ew{| zCq1w`otu|=nlhp%|L@zJ;7T%_exxHi`x;ii&SU&01lnxYZ^A9e#pxnjqfsAC2&95a zE{I-{(wS&zd_9p&xaCSn)6#SVx>i6~o>6z8I*qDX>k@mB1ae&9`L&VDdMxq&62LexW-pa9;V>3rG73EW0 z85{-2mdtgCpEzm4PD-T=e$jVP>ahZLV-HsXedtFby8Jcunz?siU>QvUvFu1Jp}Bc> z2`y8ZU(w1=nyMwc^CSC8V$MUhHc(Qk-vtMwsgfaTCWbLflG_JLspMbAzZ9 zmQ3ugibegX$zXt(x=62kv5yuFv|x}jfv2gjg6+h9&RR(390W=5S*oenZ&4}1ad_Yc z+ODGgXXqX4ma)DG9UHE3uRRK2?-DlhzhfDj68N5*RO5Q{G9II1*R{w)hQ2##Oyw?) zC&PFKu#u=biKd5WGIYF;SOy8d!D#bPt)APdsQywN-8azl3v^XeQCHK=w0@X-O&F@R#S!3dS2w)W literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/HttpPost.class b/bwie-common/target/classes/com/bwie/common/utils/HttpPost.class new file mode 100644 index 0000000000000000000000000000000000000000..8c159dd3e285996b53a9b1c3bae282e09cbe2b0a GIT binary patch literal 3049 zcma)8TWl0%6#jnN-PtbFJ1s0CR8TCvutfyQa+9{SRJWzjf>scm-5uJ&-JNB2mf~Ge zyx&l~BtB@22{F+`4A~l+h>1xVLpW+Cf{`&p4|0<*lfjH_#M8m;ww)R<)Ak1HO=w0^puTZ$ z_>gu)3&yqNNN~`$jO54$$F63LP*d$J#{!<1*`wRihZ$Ibsy^KwHDd#sr6qJ*x2R=# z<4nO7Gg@K%DF=YPqW+4v5UlmO2@pv$9 zq-~WAu};BrDxSv+0`qUbzmAL%r|SZN*8FFXA3k(-k@8=~i+D-J%Q&Xs6&0`IILm0J z9+?RN)j7yrq4e>%ir4VEz{32&jHL7ad$tX!ctZ-miMLd|Ey+7*Qt>X{Q}I4Nm@>&a zn4WZc?r4?;Qn)JjLRh%Fhq_zar5`6G`B242I3@!+sp4aqzuG*wP+clMK@)F8#ivqa zao+P;3ylK*-+b&4M}t!fJ0gczhtpVY6BfHth+~TDV24I6bIctEMH&a6PP2)aLo-9Y zg~ASdfIm9jX*V7Ihi3Np*!)HHulPCR^do%u{>Xix;@Ux zIwBRNQ)V))yR(*qx0ev|izlD9^*YRQv~sVy0$535pbTwTMJWm1M`d%kHq^}d5hdXtP&xt6@Ho6RN*2Cm zezPdc!e7u^K?L~f^P(C{P~+&YcXi+atmc^)3pt|J(B@h`c?8+gD5sWdwB#R(lmTMB z2#Y?^KY_WlsD@~|e3(I0gggOH7L~uCD%@OCokdM^b?CD!YTacXy{hB4z8dGg#9Hp= z_q9x-bpi{9ClDBJsaZIVyT-AoUxd7^S=>Dw@=l^6P#W-NvG~zbxBhCKL^ThVoPysq zbr12?Em56m&LAYbC-Oj8kF^?TjGA7&bAA4SWS{oDe z54~KCuUSIh5ceH%r-?g5T$Z>A;?5HHD{+&=og?md;{G7+JnQfRy}3x-CE_j8^uCw5sR@^EJYVH(;@Chr)Z)4 zYHWA9;9GV?gt=*_O_`VdSWk-{#^#~LjijICcV9cZO{Cd8?_7R&A-}tt-`$+r(HB>r zj~?W9vYD`%cG>-69pie4-B&8sFuD%jm6twtGRhKEiYDG*H}9^8vKH!Z(Pc%!b_Kl( z9#-&(g0O-62J@1e37ctNV5f8# GyZ!^i5y*Z3 literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/HttpUtils$1.class b/bwie-common/target/classes/com/bwie/common/utils/HttpUtils$1.class new file mode 100644 index 0000000000000000000000000000000000000000..bc75c8266538862717e657f9e11b0aea0b59f65b GIT binary patch literal 992 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 Tivxu)PIU+;11$35oC5v6*|b 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

-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 Wu{pZcxVW}vadR!iF`5ZO(EkF!#JSr5 literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/SmsResponse.class b/bwie-common/target/classes/com/bwie/common/utils/SmsResponse.class new file mode 100644 index 0000000000000000000000000000000000000000..cda082bb3a55ea5690a637a68538c90876a0df77 GIT binary patch literal 2707 zcma)7TW?fV6#n+ixy_l=b{HveplXq#y)pudI;DspmujaVMHIYoIz6@nbEz{^eev1& zWa5*F39mLWeNdt$(ZuKrCjKT7zjgMR>9iapNxSy9_qv?5*0=VazyA5uCPlG}=s4o{5+RaLRd0N42)moJ$1*6Y z8|{^_$!|y-Mxy3tq9cvn=s0eCRx9FNCQ@lGT&>X?FH&^b>C?Kc{X#n^-!28K5doZ? zh_|2=qz)*d}X$Djzth#&9JprZIfl4pfwVwV~*&rJ0smMIqilX z9tC%yvDPey=PNP?IX1IH>Jb?<4^QGL5BuPI*e~LMh#~k22mg00JiLnMJ&fS6hk~GI z1wAKXRK#h#rm%PCJfB&sRF|ajy~&KS|1%yIQDzq=hoj17I7*YlQX7#wIUHBVjT-YX zi^B}D6b5$OimM=&7ID>6P?E}&f=uzBG;4@IX>|-Qpp|Lqb=f&NkfDZg$eqZ zikloalgS~|j~i0h?S|YRg`7$bX*_O78I*3w15wB$$sx_h4Jk9%4LKBrsy%Vjfvl3l_tkGVMkj6XMU2RXiWWytZ&@Mu61}*zOji+$HFa| zG;xcTZ;Fj|ANh6k`KE967-fq#jj~0@x5dbbjcniPG4hHT8hJ(6&xny58)baAV`OYF z>vYes>zlHwtLgH77e{f7y=42L$GWdq?+%%Dklg#4;25jeV^xK$ufIT)&@y}5YuusFxf56T( z9wjM;JcXJReoPT@P=yVtv-eW#I`w>;-8xNHCw0d2eLSL>&nJ&~Wz-i8VKdNbZu+D# z6OlQTn_eN6PHtiy_S7c&Zpyh^G(_PWvBnXCwJKXQBNe%goE+cmsJx;TsjRMwjMHl< znWT$4mpJ(}YB+A1%VZ$xAC=D)y= BsuutN literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/StringUtils.class b/bwie-common/target/classes/com/bwie/common/utils/StringUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..c7aabd6db2094ce15e415a7039a9bee117548f48 GIT binary patch literal 1808 zcma)7QF9Yj6#j0q$u`N-25h4Rq*TB*N!x{@VofcS3W_G77-dEuoY{u8Sx9!{?ndON zz#rhHFFq(#XBgj{@o)Gq7)JfhX4@>a4rXTWo_p>&=R4;+=WhP^>z8K$-ofX2OyIpd z#&M~D_pu_<2eQ-(SjC40tl_dOS9Gk4`l^nNJPP7cz(+c+>A0?tU3FY1TvJHTmv1X* z8{QpTVWRH1c5~3%vi&cttu8gk>R#LG-nM*4_OVh6J5Hc*rr!2?=GJ}3HYxNx*BpdS zH!xeF@3`Avid-X-6Ep|iuENxO{jT-BWp*uh+q}7T*KUWk^4B!*B3ZEhb*^xv6;cv4a39eh2U)A>_*h}()d?Ny9F^q+4Jk}v?mwd> zA;l*>@Y#u&5Y|wxd;Yc=^krBh{Cm+bnd@%2X@#8#!uH8{zU2-4wtd}^=`0TG zh(>KmhQ~k=M-9A=H*|br;7#0+G;e*9SxRjpeZLevB?;tp&LdsVB$Q>`JXu% zxFzPZue=NFh=jEI7RMmIF+p@2E+(%GyB%c|P3R5w-wHi)G&xd^20OaGB=kg*`i+j| zx9sl*w%fL&$r~TJ%4{i&Is0Kt^X0^t?7@*|y<-JU`v+QUZuFYmvrOJ!g-kTonB|vd zg5M_~19FO^T#s>Q@~uQ$c>?t#g%n=nnvIkOCMg?315BaBT~3-uD{;OYJLfCEL)RWd zOYcydPDGeWM95yGScMOkijU zjF|*R2{Sm&2(x^Kd5h*P?gTZ9bTK`GouTRspA^m#{v6(p;eVn=qke_(+9TwvPmy_u zOnRrfi>yLpVHdijbDYAM!f(hm7ipTOjkfdn?>{3Jh8doM&OjBCUnS{_l$NlJ^Zc7w z#wA>gGCxh&3i6o4JSD=SOi6w#)K|&Hs2b5MP$SihBQvgEAgg2X=dKbEA2b8xJU5U~ZgH*0s$1 R_fh9~c!7^%X%g(+e*i$qj(Gq8 literal 0 HcmV?d00001 diff --git a/bwie-common/target/classes/com/bwie/common/utils/TelSmsUtils.class b/bwie-common/target/classes/com/bwie/common/utils/TelSmsUtils.class new file mode 100644 index 0000000000000000000000000000000000000000..5cd4d167fd1439b5948f345b5206d25f7ba8a1c5 GIT binary patch literal 3746 zcmb7GZCe!A8NO#(m}MOSS0TQn8lzDVVF5uSQd2}Q$}S*FG@2Say9_X7+1bntDz!F{ zHmOllP1D3A)f)R|n>JD5>Waa(-}^Vx#pF}|LEHPxus8^cxwzQ#%yXXi*YofHe)&%T z^|&2G6^_gJQ4l^HFT`4?0*VVLA)sCXX@!I|8GS(n(Jx~l2nEN*k1nnU1@xMLk^&kE zA_YT0X@Pq^0CNc}*y3YYNH`(mWB{iGawLc!@1n0h|xw0^XJJO9^>NqhG@Mh++1J)wG%z(89#@>#2Tm)(?gw z{L;)_5|*fmgl1Xo+Q|N138BcKdO{5+RT9Q*lk_Aho+XKC2~)ErD7H3~PO7%nV)SYf z0$Qp!ZRjc91T4Kj)u9d%TaZZVn!s(0B#fc3n$$;zQ{mnbYsga5dRsAiWmtsc}O*N@jZj|+XK2KVS}S8 zep1)M)H!6N!o#+nw8A}FGB#wrBw%U^3PrA737g6*p3uI8k?PYK*5|zRwx$|sEk%#Q zLktFWwK!x#P3x(ImbP^xMayK1L81*38p`Jf*~JK3!%;Q8t71Nd1c|%*GG%xv>|GA}bT{={6vXPBt0cvg&+rf)Q>{yWKW zxhSY?ZYD?4xokGfHNDB>^-NXH$LyxSr7>GgyhiVxs*rI}#wE66XxXZ1_voTaqysFJm@#Z7v^HIo zcZsJ~t3@{|cpf`h+MXtQRM9D@L9K#c;e7>l0{XRp>QO7-smJUHJOu z*!@q(zP`946UPZ?v2Yy`)H8oM#1m!dlr*| zKj4oXuOd*7oi#H4q~HerEMaA&r+I&a9ql$dj8oR0uKxJ;_>rTBdk#xjYwnD^eAKqL zX(wCv)$M)p;P$=o=EU}fwwmU)?&ckwsj+CRwx*_rSuD+^uG$@^39Fh$a3J6Rcq;pk z58QA{Sd%?_HGAWH_QHp*kJDG)&7QlSy*Emvh~!^ne5T;9_?vlTf_egHByEq~3t^p&r zxHxC_EoMzFv9o(|!A_%X9P+jpTJDk+ntJ9e<8?F9i>q-p+^1Uhpv5(KAlBKDOMzk= z;xiZiOmObP8zWSwW{%-B00BeE~|YxW+acSJ(tB5#X_bL<)>c$w%8kBeSB`-Z=ajLD0|5*(z~+DkWct| zN@|4Au!3^eP-;%s3SyhFhcqqx7v`=;A@^A;wNa~7NPZ!qdkPA*F5Qwr(Kw1TC>h7H z3__KYSf0U(sMIlz(omWByo;yuFpia5Gg#Ge1Iruz;%d#7%2ocmcsd_d8GMgqx2S79 zgVackekTrf^d5K-0qjQ+4$#(itV9Is5G7?N!`DUn7o{%%tAIDXXA!X|RGVIL*Y zR>}}b5YT>7aVT*Aw^Ndja%w59gWh%W-i@}P>LS%aVphTTKPvFc=$65~(Iev}NHPu; z<1nuaeUuH-126O6ha9}k?k+a@Fp14COrm@OD+R8C!F2+71A! + + + jq1 + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-gateway + + + \ No newline at end of file diff --git a/bwie-moudles/bwie-user/bwie-user.iml b/bwie-moudles/bwie-user/bwie-user.iml new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ b/bwie-moudles/bwie-user/bwie-user.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/bwie-moudles/bwie-user/pom.xml b/bwie-moudles/bwie-user/pom.xml new file mode 100644 index 0000000..10bfcd2 --- /dev/null +++ b/bwie-moudles/bwie-user/pom.xml @@ -0,0 +1,54 @@ + + + + bwie-moudles + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-user + + + + + com.bwie + bwie-common + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba + druid-spring-boot-starter + 1.2.8 + + + + mysql + mysql-connector-java + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + org.json + json + 20210307 + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + + \ No newline at end of file diff --git a/bwie-moudles/bwie-user/src/main/java/Test.java b/bwie-moudles/bwie-user/src/main/java/Test.java new file mode 100644 index 0000000..074537a --- /dev/null +++ b/bwie-moudles/bwie-user/src/main/java/Test.java @@ -0,0 +1,72 @@ +import org.json.JSONArray; +import org.json.JSONObject; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class Test { + public static void main(String[] args) { + //Map + HashMap addressMap = new HashMap<>(); + addressMap.put("city", "上海"); + addressMap.put("state", "奉先"); + addressMap.put("zip", "1001"); + + HashMap friendAddressMap = new HashMap<>(); + friendAddressMap.put("city", "上海"); + friendAddressMap.put("state", "虹桥"); + friendAddressMap.put("zip", "1002"); + + HashMap friendAddressMap2 = new HashMap<>(); + friendAddressMap2.put("city", "杭州"); + friendAddressMap2.put("state", "西湖"); + friendAddressMap2.put("zip", "2002"); + + List> friends = new ArrayList<>(); + friends.add(creat("·张三·", "22", friendAddressMap)); + friends.add(creat("·李四·", "32", friendAddressMap2)); + + HashMap personMap = new HashMap<>(); + personMap.put("name", "张三·1"); + personMap.put("age", "22"); + personMap.put("address", addressMap); + personMap.put("friends", friends); + System.out.println(new JSONObject(personMap).toString(4)); + //JSONOBJECT + JSONObject jsonObject = new JSONObject();0 + jsonObject.put("name","张三"); + jsonObject.put("age","22"); + + JSONObject address = new JSONObject(); + address.put("city","上海"); + address.put("state","奉先"); + address.put("zip","1001"); + jsonObject.put("address",address); + + JSONArray friendsJson = new JSONArray(); + for (Map friend : friends) { + friendsJson.put(new JSONObject(friend)); + } + System.out.println("Map方法"+friendsJson.toString(4)); + } + + + + private static Map creat(String name, String age, Map address) { + Map friendMap = new HashMap<>(); + friendMap.put("name", name); + friendMap.put("age", age); + friendMap.put("address", address); + return friendMap; + } + + private static JSONObject createFriendJson(String name, String age, Map address) { + JSONObject friendJson = new JSONObject(); + friendJson.put("name", name); + friendJson.put("age", age); + friendJson.put("address", new JSONObject(address)); + return friendJson; + } +} diff --git a/bwie-moudles/bwie-user/target/classes/Test.class b/bwie-moudles/bwie-user/target/classes/Test.class new file mode 100644 index 0000000000000000000000000000000000000000..133c75a5ef84c1a70d5ea55309c1c385c48e8214 GIT binary patch literal 3589 zcmbVPS#T6p6g@AQneOQfgmfS<1jPX2B$Bu&zo%#1x9HSXdD zsJNiG1P~Y8cguvRr52z5`(>3?R+*IFeyXLO*WEMe!BCZ=D%E}8efOSw&wcmZp8WXF z*WUqHg-e2OBES>!{iK3}8ZJe@ zL^)J~!+1(Qo>uUTR3B0BtcIjCe@?!imr9}}@j?k|FreV5f)@oM>#UUJtQROwRPPc9 zZA$l=0;O$M%4{DR+-ur9jlBcZ=xym9V_=tITXO9yLr%YyB}Us$GwZa_d(f~_0u_my z+V&fF8TA83s;|Dwv8_~Ji$ss?vn?~#EAid^A;%i1-(h5=t6}#Ms(czx0nO;`wasjn zrZfroUTb9gJ^wi#^oD?8*}1AF0maiX(wqQHo8_h-&6svJopPgS`zdwo-Ea0d0`uC^ zc3-{J)NkwRX!q1iTJiG|DDiQ((MDiyq5THiHil_lQCP#_Os^Z}na(ww0e%jMR_Y;`Y-*HPOpAWN2M`nJ`)Qh3Oj3qYPBlk>*! zN)OpRW~(I!OH|H|74q0(SdGgC%BDtx-_x89J(e@f`SIJC!;@c)#qcs-VGCs)!y!Us z;`E`3#}D$L@3lA|LX8a#jnw}B>iFavr@b|Aeq{2*#}i{G<;LmnC&$^9p{9lgZj?{O zb1$mA3>-OU$0oi#_1l?4XU7DJnwnzRgPYjZF}#Y`-0jH|MI2;_NG00h@`#@8pf}b7LNqdt;2HF}-!yh=gCMbmCe9uVm0Z#OS1br|0MQaHr z?(3&xUT~y&@~V|DWJMx4Epi1WBc#aVn&6beFs$W7tJdEIs!rv@+R|n1y}Wa3%( zBd#)vwUlF?0h-amRTS%RC9UXO^f$pu0CE2}DB3-S;8{lkUG;>hu1Uc+ z*^$hdBxzD2canNkj|EKH>u54dD(Yx5+Y_RCsb?~Wfy$ag@sO_T<;gRcJC1op=;pdY zpI?_>`{A0y@vy!?k4s-l3-xkes;u>eMe&f7zQ9G_;Nso!@E8^=qqt-gRdPLsCC!m| zgb+(dv87U2Lc!V6f85nRGqR)tTo1ZU`d z7R&Gxmg5&(hToCEAN+Cp7ivWqNl}VA5yuL#6b&MYMzI}DVh>h|Td+#p#}<>lvkw~e zrC5)vpvg|b)!0D2DjaOYCU#b>xDJ~s6`@_Mz!plyu!Y7CWq3cD2WuUo;5z@MzgZrX zU;2!;#qI%CFbVLQsk~@9uh}9V*>cj7g{<)~aWih=is-nNlDxSI7UL?CQ+af^Q7U$e zQ9+Hj*OA}r;GRr+Rxx2f0MHfe19|HWlGuwLnn)5ynTjM)?f1D$LbkD_;Jqv5R?=-# zs?TMyk@;-mKUAC9Xj@pU)&Ps@Jd5f)i|Ra!D)jPjJr>^Rk$aNGd2=^eh + + + jq1 + com.bwie + 1.0-SNAPSHOT + + 4.0.0 + + bwie-moudles + pom + + bwie-user + + + + + com.bwie + bwie-common + + + + org.springframework.boot + spring-boot-starter-web + + + + com.alibaba + druid-spring-boot-starter + 1.2.8 + + + + mysql + mysql-connector-java + + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 2.2.2 + + + + com.github.pagehelper + pagehelper-spring-boot-starter + 1.4.1 + + + + \ No newline at end of file diff --git a/jq1.iml b/jq1.iml new file mode 100644 index 0000000..78b2cc5 --- /dev/null +++ b/jq1.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..7f89f25 --- /dev/null +++ b/pom.xml @@ -0,0 +1,61 @@ + + + 4.0.0 + + com.bwie + jq1 + pom + 1.0-SNAPSHOT + + bwie-moudles + bwie-common + bwie-gateway + bwie-auth + + + + + + spring-boot-starter-parent + org.springframework.boot + 2.6.2 + + + + + + + + org.springframework.cloud + spring-cloud-dependencies + 2021.0.0 + pom + import + + + + com.alibaba.cloud + spring-cloud-alibaba-dependencies + 2021.1 + pom + import + + + + com.alibaba.nacos + nacos-client + 2.0.4 + + + + + com.bwie + bwie-common + 1.0-SNAPSHOT + + + + + \ No newline at end of file diff --git a/数据结构.patch b/数据结构.patch new file mode 100644 index 0000000..e69de29