Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-common
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-common
Commits
e8069b35
提交
e8069b35
authored
2月 07, 2025
作者:
000516
提交者:
Coding
2月 07, 2025
浏览文件
操作
浏览文件
下载
差异文件
创建BeanUtils工具、添加返回RCode报错信息;1、切redis数据源;2、将token解析切换为link项目token解析
创建BeanUtils工具、添加返回RCode报错信息;1、切redis数据源;2、将token解析切换为link项目token解析
上级
b1e85eaf
6dd2ebc8
显示空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
225 行增加
和
5 行删除
+225
-5
pom.xml
pom.xml
+6
-2
TokenConstants.java
.../wangxiaolu/promotion/common/constant/TokenConstants.java
+38
-0
FileUtils.java
...java/com/wangxiaolu/promotion/common/excel/FileUtils.java
+29
-0
RedisKeys.java
...java/com/wangxiaolu/promotion/common/redis/RedisKeys.java
+10
-0
RedisCache.java
...wangxiaolu/promotion/common/redis/service/RedisCache.java
+3
-2
BeanUtils.java
.../java/com/wangxiaolu/promotion/common/util/BeanUtils.java
+49
-0
JwtTokenUtils.java
...a/com/wangxiaolu/promotion/common/util/JwtTokenUtils.java
+74
-0
MD5Utils.java
...n/java/com/wangxiaolu/promotion/common/util/MD5Utils.java
+1
-1
DataException.java
...ava/com/wangxiaolu/promotion/exception/DataException.java
+5
-0
R.java
...main/java/com/wangxiaolu/promotion/result/basedata/R.java
+4
-0
RCode.java
.../java/com/wangxiaolu/promotion/result/basedata/RCode.java
+6
-0
没有找到文件。
pom.xml
浏览文件 @
e8069b35
...
@@ -10,8 +10,6 @@
...
@@ -10,8 +10,6 @@
<groupId>
com.wangxiaolu
</groupId>
<groupId>
com.wangxiaolu
</groupId>
<artifactId>
wangxiaolu-promotion-common
</artifactId>
<artifactId>
wangxiaolu-promotion-common
</artifactId>
<version>
0.0.2
</version>
<version>
0.0.2
</version>
<name>
wangxiaolu-promotion-common
</name>
<name>
wangxiaolu-promotion-common
</name>
...
@@ -127,6 +125,12 @@
...
@@ -127,6 +125,12 @@
<version>
${xlsx-streamer.version}
</version>
<version>
${xlsx-streamer.version}
</version>
</dependency>
</dependency>
<!-- JWT -->
<dependency>
<groupId>
io.jsonwebtoken
</groupId>
<artifactId>
jjwt
</artifactId>
<version>
${jjwt.version}
</version>
</dependency>
</dependencies>
</dependencies>
...
...
src/main/java/com/wangxiaolu/promotion/common/constant/TokenConstants.java
0 → 100644
浏览文件 @
e8069b35
package
com
.
wangxiaolu
.
promotion
.
common
.
constant
;
/**
* Token的Key常量
*
* @author ruoyi
*/
public
class
TokenConstants
{
/**
* 令牌自定义标识
*/
public
static
final
String
AUTHENTICATION
=
"Authorization"
;
/**
* 令牌前缀
*/
public
static
final
String
PREFIX
=
"Bearer "
;
/**
* 令牌秘钥
*/
public
final
static
String
SECRET
=
"abcdefghijklmnopqrstuvwxyz"
;
/**
* 用户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"
;
}
src/main/java/com/wangxiaolu/promotion/common/excel/FileUtils.java
0 → 100644
浏览文件 @
e8069b35
package
com
.
wangxiaolu
.
promotion
.
common
.
excel
;
import
java.io.FileOutputStream
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.net.URLConnection
;
/**
* @author : liqiulin
* @date : 2025-01-21 14
* @describe :
*/
public
class
FileUtils
{
public
static
void
downloadExcel
(
String
urlS
,
String
filePath
)
throws
Exception
{
// 保存文件
URL
url
=
new
URL
(
urlS
);
URLConnection
urlConnection
=
url
.
openConnection
();
InputStream
inputStream
=
urlConnection
.
getInputStream
();
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
filePath
);
// 调大小
byte
[]
buffer
=
new
byte
[
102400
];
int
bytesRead
;
while
((
bytesRead
=
inputStream
.
read
(
buffer
))
!=
-
1
)
{
fileOutputStream
.
write
(
buffer
,
0
,
bytesRead
);
}
fileOutputStream
.
close
();
inputStream
.
close
();
}
}
src/main/java/com/wangxiaolu/promotion/common/redis/RedisKeys.java
浏览文件 @
e8069b35
...
@@ -16,6 +16,7 @@ public interface RedisKeys {
...
@@ -16,6 +16,7 @@ public interface RedisKeys {
* 促销员小程序用户登录信息:token
* 促销员小程序用户登录信息:token
*/
*/
TEMPORARY_TOKEN
(
"user:login_token:temporary:"
),
TEMPORARY_TOKEN
(
"user:login_token:temporary:"
),
WXL_LINK_TOKEN
(
"login_tokens:"
),
/**
/**
* 组织数据 - 客户类数据 - 经销商
* 组织数据 - 客户类数据 - 经销商
*/
*/
...
@@ -57,4 +58,13 @@ public interface RedisKeys {
...
@@ -57,4 +58,13 @@ public interface RedisKeys {
String
key
;
String
key
;
}
}
@AllArgsConstructor
@Getter
enum
Manage
{
ACTIVITY_PLAN_UP
(
"prom:manage:activity_plan_up:"
),
;
String
key
;
}
}
}
src/main/java/com/wangxiaolu/promotion/common/redis/service/RedisCache.java
浏览文件 @
e8069b35
...
@@ -3,9 +3,7 @@ package com.wangxiaolu.promotion.common.redis.service;
...
@@ -3,9 +3,7 @@ package com.wangxiaolu.promotion.common.redis.service;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.data.redis.core.HashOperations
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.core.SetOperations
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
...
@@ -127,6 +125,9 @@ public class RedisCache {
...
@@ -127,6 +125,9 @@ public class RedisCache {
redisTemplate
.
delete
(
keys
);
redisTemplate
.
delete
(
keys
);
}
}
public
boolean
hasKey
(
String
key
)
{
return
redisTemplate
.
hasKey
(
key
);
}
private
String
valToJson
(
Object
o
)
{
private
String
valToJson
(
Object
o
)
{
...
...
src/main/java/com/wangxiaolu/promotion/common/util/BeanUtils.java
0 → 100644
浏览文件 @
e8069b35
package
com
.
wangxiaolu
.
promotion
.
common
.
util
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author : liqiulin
* @date : 2025-02-07 10
* @describe :
*/
public
class
BeanUtils
extends
org
.
springframework
.
beans
.
BeanUtils
{
public
static
<
T
>
List
<
T
>
transitionDtos
(
Object
sourceList
,
Class
<?>
beanClass
)
{
if
(
sourceList
==
null
)
{
return
new
ArrayList
<>();
}
List
<
Object
>
sList
=
(
List
<
Object
>)
sourceList
;
if
(
sList
.
isEmpty
())
{
return
new
ArrayList
<>();
}
List
<
Object
>
btoList
=
new
ArrayList
<>(
sList
.
size
()
*
2
);
try
{
for
(
Object
so
:
sList
)
{
Object
bto
=
beanClass
.
newInstance
();
BeanUtils
.
copyProperties
(
so
,
bto
);
btoList
.
add
(
bto
);
}
return
(
List
<
T
>)
btoList
;
}
catch
(
Exception
e
)
{
return
new
ArrayList
<>();
}
}
public
static
<
T
>
T
transitionDto
(
Object
source
,
Class
<?>
beanClass
)
{
if
(
source
==
null
)
{
return
null
;
}
try
{
Object
bto
=
beanClass
.
newInstance
();
BeanUtils
.
copyProperties
(
source
,
bto
);
return
(
T
)
bto
;
}
catch
(
Exception
e
)
{
return
null
;
}
}
}
src/main/java/com/wangxiaolu/promotion/common/util/JwtTokenUtils.java
0 → 100644
浏览文件 @
e8069b35
package
com
.
wangxiaolu
.
promotion
.
common
.
util
;
import
com.wangxiaolu.promotion.common.constant.TokenConstants
;
import
io.jsonwebtoken.Claims
;
import
io.jsonwebtoken.Jwts
;
/**
* @author : liqiulin
* @date : 2024-04-16 17
* @describe : java web token
*/
public
class
JwtTokenUtils
{
private
static
String
secret
=
TokenConstants
.
SECRET
;
/**
* 从令牌中获取数据声明
*
* @param token 令牌
* @return 数据声明
*/
public
static
Claims
parseToken
(
String
token
)
{
return
Jwts
.
parser
().
setSigningKey
(
secret
).
parseClaimsJws
(
token
).
getBody
();
}
/**
* 根据令牌获取用户标识
*
* @param claims 身份信息
* @return 用户ID
*/
public
static
String
getUserKey
(
Claims
claims
)
{
return
getValue
(
claims
,
TokenConstants
.
USER_KEY
);
}
/**
* 根据身份信息获取用户ID
*
* @param claims 身份信息
* @return 用户ID
*/
public
static
String
getUserId
(
Claims
claims
)
{
return
getValue
(
claims
,
TokenConstants
.
DETAILS_USER_ID
);
}
/**
* 根据身份信息获取用户名
*
* @param claims 身份信息
* @return 用户名
*/
public
static
String
getUserName
(
Claims
claims
)
{
return
getValue
(
claims
,
TokenConstants
.
DETAILS_USERNAME
);
}
/**
* 根据身份信息获取键值
*
* @param claims 身份信息
* @param key 键
* @return 值
*/
private
static
String
getValue
(
Claims
claims
,
String
key
)
{
Object
value
=
claims
.
get
(
key
);
if
(
null
==
value
)
{
return
""
;
}
if
(
value
instanceof
String
)
{
return
(
String
)
value
;
}
return
value
.
toString
();
}
}
src/main/java/com/wangxiaolu/promotion/common/util/MD5Utils.java
浏览文件 @
e8069b35
...
@@ -94,7 +94,7 @@ public class MD5Utils {
...
@@ -94,7 +94,7 @@ public class MD5Utils {
public
static
void
main
(
String
[]
args
)
{
public
static
void
main
(
String
[]
args
)
{
// 原密码
// 原密码
String
plaintext
=
"wxl00068
0
"
;
String
plaintext
=
"wxl00068
2
"
;
// 获取加盐后的MD5值
// 获取加盐后的MD5值
String
ciphertext
=
MD5Utils
.
getSaltMD5
(
plaintext
);
String
ciphertext
=
MD5Utils
.
getSaltMD5
(
plaintext
);
...
...
src/main/java/com/wangxiaolu/promotion/exception/DataException.java
浏览文件 @
e8069b35
...
@@ -35,5 +35,10 @@ public class DataException extends RuntimeException {
...
@@ -35,5 +35,10 @@ public class DataException extends RuntimeException {
this
.
msg
=
RCode
.
API_ERROR
.
getMsg
();
this
.
msg
=
RCode
.
API_ERROR
.
getMsg
();
}
}
public
DataException
(
StatusCode
statusCode
,
Object
...
args
)
{
this
.
code
=
statusCode
.
getCode
();
this
.
msg
=
String
.
format
(
statusCode
.
getMsg
(),
args
);
}
}
}
src/main/java/com/wangxiaolu/promotion/result/basedata/R.java
浏览文件 @
e8069b35
...
@@ -91,4 +91,8 @@ public class R {
...
@@ -91,4 +91,8 @@ public class R {
public
static
R
fail
(
Object
data
)
{
public
static
R
fail
(
Object
data
)
{
return
new
R
(
RCode
.
FAILED
,
data
);
return
new
R
(
RCode
.
FAILED
,
data
);
}
}
public
static
R
fail
(
StatusCode
statusCode
)
{
return
new
R
(
statusCode
);
}
}
}
src/main/java/com/wangxiaolu/promotion/result/basedata/RCode.java
浏览文件 @
e8069b35
...
@@ -18,6 +18,7 @@ public enum RCode implements StatusCode {
...
@@ -18,6 +18,7 @@ public enum RCode implements StatusCode {
PARAM_ERROR
(
1002
,
"参数错误"
),
PARAM_ERROR
(
1002
,
"参数错误"
),
RESPONSE_PACK_ERROR
(
1003
,
"包装R失败"
),
RESPONSE_PACK_ERROR
(
1003
,
"包装R失败"
),
SELECT_PARAMS_ERROR
(
1004
,
"查询条件错误"
),
SELECT_PARAMS_ERROR
(
1004
,
"查询条件错误"
),
REDIS_PUSH_DATA_NOT_EXIT
(
1005
,
"数据已过期或不存在,请重新上传;"
),
/**
/**
* 业务统一编码(不分模块)
* 业务统一编码(不分模块)
...
@@ -55,6 +56,8 @@ public enum RCode implements StatusCode {
...
@@ -55,6 +56,8 @@ public enum RCode implements StatusCode {
USER_WXOPENID_UNIQUE_ERROR
(
3015
,
"已使用其他手机号注册"
),
USER_WXOPENID_UNIQUE_ERROR
(
3015
,
"已使用其他手机号注册"
),
LOGIN_PHONE_PARAM_ERROR
(
3016
,
"手机号错误"
),
LOGIN_PHONE_PARAM_ERROR
(
3016
,
"手机号错误"
),
NOT_LOGIN_TIMEOUT_ERROR
(
3017
,
"您的登录已过期,请重新登录"
),
NOT_LOGIN_TIMEOUT_ERROR
(
3017
,
"您的登录已过期,请重新登录"
),
EMP_PRIVILEGE_ERROR
(
3018
,
"账号权限错误"
),
QC_USER_IS_NULL_ERROR
(
3019
,
"账号未在勤策中找到"
),
/**
/**
* promotion-模块异常
* promotion-模块异常
...
@@ -93,6 +96,9 @@ public enum RCode implements StatusCode {
...
@@ -93,6 +96,9 @@ public enum RCode implements StatusCode {
*/
*/
ACTIVITY_PLAN_MONTH_HAS
(
5000
,
"本月活动计划已上传,请删除后再次上传"
),
ACTIVITY_PLAN_MONTH_HAS
(
5000
,
"本月活动计划已上传,请删除后再次上传"
),
ACTIVITY_PLAN_FILENAME_LONG
(
5001
,
"文件名过长,请少于20个字"
),
ACTIVITY_PLAN_FILENAME_LONG
(
5001
,
"文件名过长,请少于20个字"
),
ACTIVITY_PLAN_CELL_NOT_NULL
(
5002
,
"第%s行有空值,请改正后再次提交;"
),
ACTIVITY_PLAN_TEM_ERROR
(
5003
,
"当前流程模板错误;"
),
ACTIVITY_PLAN_REPETITION_ERROR
(
5004
,
"本次上传的活动或系统已存在的活动,有日期重复的计划;"
),
/**
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论