Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Q
qk_backend
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
quanku
qk_backend
Commits
1bb33c09
Commit
1bb33c09
authored
Aug 17, 2023
by
muhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改 微信获取token
parent
95513f3e
Changes
9
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
122 additions
and
79 deletions
+122
-79
ch-core/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
...ore/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
+6
-1
ch-core/src/main/java/com/wwdz/ch/core/storage/AliyunStorage.java
...src/main/java/com/wwdz/ch/core/storage/AliyunStorage.java
+14
-10
ch-core/src/main/java/com/wwdz/ch/core/storage/LocalStorage.java
.../src/main/java/com/wwdz/ch/core/storage/LocalStorage.java
+5
-0
ch-core/src/main/java/com/wwdz/ch/core/storage/QiniuStorage.java
.../src/main/java/com/wwdz/ch/core/storage/QiniuStorage.java
+33
-16
ch-core/src/main/java/com/wwdz/ch/core/storage/Storage.java
ch-core/src/main/java/com/wwdz/ch/core/storage/Storage.java
+8
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ItemServiceImpl.java
...pi/src/main/java/com/wwdz/ch/wx/impl/ItemServiceImpl.java
+28
-32
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/WxLoginServiceImpl.java
...src/main/java/com/wwdz/ch/wx/impl/WxLoginServiceImpl.java
+25
-17
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/ItemService.java
...api/src/main/java/com/wwdz/ch/wx/service/ItemService.java
+1
-1
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/WxItemController.java
...pi/src/main/java/com/wwdz/ch/wx/web/WxItemController.java
+2
-2
No files found.
ch-core/src/main/java/com/wwdz/ch/core/consts/CommConsts.java
View file @
1bb33c09
...
@@ -25,5 +25,10 @@ public interface CommConsts {
...
@@ -25,5 +25,10 @@ public interface CommConsts {
/**
/**
* 上传视频目录
* 上传视频目录
*/
*/
public
static
final
String
UPLOAD_PRE_VEDIO_DIRECTORY
=
"quanku/vedio/"
;
public
static
final
String
UPLOAD_PRE_VIDEO_DIRECTORY
=
"quanku/video/"
;
/**
* 上传微信小程序码目录
*/
public
static
final
String
UPLOAD_PRE_WXACODE_DIRECTORY
=
"quanku/wxacode/"
;
}
}
ch-core/src/main/java/com/wwdz/ch/core/storage/AliyunStorage.java
View file @
1bb33c09
package
com.wwdz.ch.core.storage
;
package
com.wwdz.ch.core.storage
;
import
java.io.InputStream
;
import
com.aliyun.oss.OSSClient
;
import
java.net.MalformedURLException
;
import
com.aliyun.oss.model.ObjectMetadata
;
import
java.net.URL
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
java.nio.file.Path
;
import
com.aliyun.oss.model.PutObjectResult
;
import
java.util.stream.Stream
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.UrlResource
;
import
org.springframework.core.io.UrlResource
;
import
com.aliyun.oss.OSSClient
;
import
java.io.InputStream
;
import
com.aliyun.oss.model.ObjectMetadata
;
import
java.net.MalformedURLException
;
import
com.aliyun.oss.model.PutObjectRequest
;
import
java.net.URL
;
import
com.aliyun.oss.model.PutObjectResult
;
import
java.nio.file.Path
;
import
java.util.stream.Stream
;
public
class
AliyunStorage
implements
Storage
{
public
class
AliyunStorage
implements
Storage
{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
AliyunStorage
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
AliyunStorage
.
class
);
...
@@ -135,4 +134,9 @@ public class AliyunStorage implements Storage {
...
@@ -135,4 +134,9 @@ public class AliyunStorage implements Storage {
public
String
generateUrl
(
String
keyName
)
{
public
String
generateUrl
(
String
keyName
)
{
return
getBaseUrl
()
+
keyName
;
return
getBaseUrl
()
+
keyName
;
}
}
@Override
public
Object
checkFile
(
String
keyName
)
{
return
null
;
}
}
}
ch-core/src/main/java/com/wwdz/ch/core/storage/LocalStorage.java
View file @
1bb33c09
...
@@ -101,4 +101,9 @@ public class LocalStorage implements Storage {
...
@@ -101,4 +101,9 @@ public class LocalStorage implements Storage {
String
url
=
address
+
keyName
;
String
url
=
address
+
keyName
;
return
url
;
return
url
;
}
}
@Override
public
Object
checkFile
(
String
keyName
)
{
return
null
;
}
}
}
\ No newline at end of file
ch-core/src/main/java/com/wwdz/ch/core/storage/QiniuStorage.java
View file @
1bb33c09
package
com.wwdz.ch.core.storage
;
package
com.wwdz.ch.core.storage
;
import
java.awt.image.BufferedImage
;
import
com.qiniu.common.QiniuException
;
import
java.io.ByteArrayInputStream
;
import
com.qiniu.http.Response
;
import
java.io.InputStream
;
import
com.qiniu.storage.BucketManager
;
import
java.net.MalformedURLException
;
import
com.qiniu.storage.Configuration
;
import
java.net.URL
;
import
com.qiniu.storage.UploadManager
;
import
java.nio.file.Path
;
import
com.qiniu.storage.model.FileInfo
;
import
java.util.Base64
;
import
com.qiniu.util.Auth
;
import
java.util.stream.Stream
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.MediaTypeEnum
;
import
com.wwdz.ch.core.consts.MediaTypeEnum
;
import
com.wwdz.ch.core.util.MediaUtil
;
import
com.wwdz.ch.core.util.MediaUtil
;
...
@@ -19,14 +17,15 @@ import org.apache.commons.logging.LogFactory;
...
@@ -19,14 +17,15 @@ import org.apache.commons.logging.LogFactory;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.Resource
;
import
org.springframework.core.io.UrlResource
;
import
org.springframework.core.io.UrlResource
;
import
com.qiniu.common.QiniuException
;
import
com.qiniu.http.Response
;
import
com.qiniu.storage.BucketManager
;
import
com.qiniu.storage.Configuration
;
import
com.qiniu.storage.UploadManager
;
import
com.qiniu.util.Auth
;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageIO
;
import
java.awt.image.BufferedImage
;
import
java.io.ByteArrayInputStream
;
import
java.io.InputStream
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.nio.file.Path
;
import
java.util.Base64
;
import
java.util.stream.Stream
;
public
class
QiniuStorage
implements
Storage
{
public
class
QiniuStorage
implements
Storage
{
...
@@ -201,6 +200,24 @@ public class QiniuStorage implements Storage {
...
@@ -201,6 +200,24 @@ public class QiniuStorage implements Storage {
return
endpoint
+
"/"
+
keyName
;
return
endpoint
+
"/"
+
keyName
;
}
}
@Override
public
Object
checkFile
(
String
keyName
)
{
if
(
bucketManager
==
null
)
{
if
(
auth
==
null
)
{
auth
=
Auth
.
create
(
accessKey
,
secretKey
);
}
bucketManager
=
new
BucketManager
(
auth
,
new
Configuration
());
}
FileInfo
fileInfo
=
null
;
try
{
fileInfo
=
bucketManager
.
stat
(
bucketName
,
keyName
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
fileInfo
;
}
/**
/**
* 原图片地址没尺寸信息的加上尺寸信息重新上传
* 原图片地址没尺寸信息的加上尺寸信息重新上传
...
...
ch-core/src/main/java/com/wwdz/ch/core/storage/Storage.java
View file @
1bb33c09
...
@@ -34,4 +34,12 @@ public interface Storage {
...
@@ -34,4 +34,12 @@ public interface Storage {
void
delete
(
String
keyName
);
void
delete
(
String
keyName
);
String
generateUrl
(
String
keyName
);
String
generateUrl
(
String
keyName
);
/**
* 获取文件
*
* @param keyName
* @return
*/
Object
checkFile
(
String
keyName
);
}
}
\ No newline at end of file
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ItemServiceImpl.java
View file @
1bb33c09
package
com.wwdz.ch.wx.impl
;
package
com.wwdz.ch.wx.impl
;
import
com.github.pagehelper.PageInfo
;
import
com.github.pagehelper.PageInfo
;
import
com.qiniu.storage.model.FileInfo
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.CommConsts
;
import
com.wwdz.ch.core.consts.CommonEnum
;
import
com.wwdz.ch.core.consts.CommonEnum
;
import
com.wwdz.ch.core.consts.MediaTypeEnum
;
import
com.wwdz.ch.core.consts.MediaTypeEnum
;
...
@@ -30,7 +31,10 @@ import org.springframework.web.multipart.MultipartFile;
...
@@ -30,7 +31,10 @@ import org.springframework.web.multipart.MultipartFile;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageIO
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.awt.image.BufferedImage
;
import
java.awt.image.BufferedImage
;
import
java.io.*
;
import
java.io.ByteArrayInputStream
;
import
java.io.ByteArrayOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.*
;
import
java.util.*
;
...
@@ -407,36 +411,28 @@ public class ItemServiceImpl implements ItemService {
...
@@ -407,36 +411,28 @@ public class ItemServiceImpl implements ItemService {
}
}
@Override
@Override
public
void
getWxacode
(
String
page
,
String
scene
,
HttpServletResponse
response
)
{
public
Result
getWxacode
(
String
page
,
String
scene
,
HttpServletResponse
response
)
{
try
{
try
{
// 判断是否存储过该请求路径的微信小程序码图片
String
keyName
=
CommConsts
.
UPLOAD_PRE_WXACODE_DIRECTORY
+
page
+
"/"
+
scene
+
"."
+
MediaTypeEnum
.
IMAGE_JPG
.
getExt
();
FileInfo
fileInfo
=
(
FileInfo
)
qiniuStorage
.
checkFile
(
keyName
);
if
(
Objects
.
isNull
(
fileInfo
))
{
InputStream
inputStream
=
wxLoginService
.
getWxacodeStream
(
page
,
scene
);
InputStream
inputStream
=
wxLoginService
.
getWxacodeStream
(
page
,
scene
);
if
(
Objects
.
isNull
(
inputStream
))
{
if
(
Objects
.
isNull
(
inputStream
))
{
response
.
setStatus
(
HttpServletResponse
.
SC_BAD_GATEWAY
);
return
Result
.
failed
(
"获取微信小程序流失败"
);
return
;
}
}
ByteArrayOutputStream
outStream
=
new
ByteArrayOutputStream
();
// 新生成微信小程序码并上传到七牛云
//创建一个Buffer字符串
qiniuStorage
.
store
(
inputStream
,
1
,
MediaTypeEnum
.
IMAGE_JPG
.
getMime
(),
keyName
);
byte
[]
buffer
=
new
byte
[
4096
];
}
//每次读取的字符串长度,如果为-1,代表全部读取完毕
int
len
=
0
;
String
urlOfSize
=
qiniuStorage
.
generateUrl
(
keyName
);
//使用一个输入流从buffer里把数据读取出来
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
while
((
len
=
inputStream
.
read
(
buffer
))
!=
-
1
)
{
map
.
put
(
"url"
,
urlOfSize
);
//用输出流往buffer里写入数据,中间参数代表从哪个位置开始读,len代表读取的长度
return
Result
.
success
(
map
);
outStream
.
write
(
buffer
,
0
,
len
);
}
//关闭输入流
inputStream
.
close
();
//把outStream里的数据写入内存
byte
[]
data
=
outStream
.
toByteArray
();
OutputStream
outputStream
=
response
.
getOutputStream
();
//输出数据
//写入数据
outputStream
.
write
(
data
);
outputStream
.
flush
();
//关闭输出流
outStream
.
close
();
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"获取小程序码失败"
,
e
);
logger
.
error
(
"获取
微信
小程序码失败"
,
e
);
re
sponse
.
setStatus
(
HttpServletResponse
.
SC_BAD_GATEWAY
);
re
turn
Result
.
failed
(
"获取微信小程序码失败"
);
}
}
}
}
...
@@ -445,14 +441,14 @@ public class ItemServiceImpl implements ItemService {
...
@@ -445,14 +441,14 @@ public class ItemServiceImpl implements ItemService {
try
{
try
{
String
link
=
wxLoginService
.
getLink
(
pageUrl
);
String
link
=
wxLoginService
.
getLink
(
pageUrl
);
if
(
StringUtils
.
isBlank
(
link
))
{
if
(
StringUtils
.
isBlank
(
link
))
{
return
Result
.
failed
(
"获取小程序链接失败"
);
return
Result
.
failed
(
"获取
微信
小程序链接失败"
);
}
}
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
map
.
put
(
"link"
,
link
);
map
.
put
(
"link"
,
link
);
return
Result
.
success
(
map
);
return
Result
.
success
(
map
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"获取小程序链接失败"
,
e
);
logger
.
error
(
"获取
微信
小程序链接失败"
,
e
);
return
Result
.
failed
(
"获取小程序链接失败"
);
return
Result
.
failed
(
"获取
微信
小程序链接失败"
);
}
}
}
}
...
@@ -486,7 +482,7 @@ public class ItemServiceImpl implements ItemService {
...
@@ -486,7 +482,7 @@ public class ItemServiceImpl implements ItemService {
if
(
StringUtils
.
isNotBlank
(
file
.
getOriginalFilename
()))
{
if
(
StringUtils
.
isNotBlank
(
file
.
getOriginalFilename
()))
{
lastKey
=
file
.
getOriginalFilename
().
substring
(
file
.
getOriginalFilename
().
lastIndexOf
(
"."
));
lastKey
=
file
.
getOriginalFilename
().
substring
(
file
.
getOriginalFilename
().
lastIndexOf
(
"."
));
}
}
String
keyName
=
CommConsts
.
UPLOAD_PRE_V
EDI
O_DIRECTORY
+
CommonUtils
.
getUUID
()
+
lastKey
;
String
keyName
=
CommConsts
.
UPLOAD_PRE_V
IDE
O_DIRECTORY
+
CommonUtils
.
getUUID
()
+
lastKey
;
qiniuStorage
.
store
(
inputStream
,
file
.
getSize
(),
file
.
getContentType
(),
keyName
);
qiniuStorage
.
store
(
inputStream
,
file
.
getSize
(),
file
.
getContentType
(),
keyName
);
String
urlOfSize
=
qiniuStorage
.
generateUrl
(
keyName
);
String
urlOfSize
=
qiniuStorage
.
generateUrl
(
keyName
);
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
Map
<
String
,
Object
>
map
=
new
HashMap
<>();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/WxLoginServiceImpl.java
View file @
1bb33c09
...
@@ -6,7 +6,6 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
...
@@ -6,7 +6,6 @@ import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import
cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo
;
import
cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.wwdz.ch.core.util.OkHttpUtil
;
import
com.wwdz.ch.core.util.OkHttpUtil
;
import
com.wwdz.ch.wx.constant.CacheCodeConstants
;
import
com.wwdz.ch.wx.entity.request.UserRequestDto
;
import
com.wwdz.ch.wx.entity.request.UserRequestDto
;
import
com.wwdz.ch.wx.service.WxLoginService
;
import
com.wwdz.ch.wx.service.WxLoginService
;
import
com.wwdz.ch.wx.util.RedisUtil
;
import
com.wwdz.ch.wx.util.RedisUtil
;
...
@@ -93,10 +92,23 @@ public class WxLoginServiceImpl implements WxLoginService {
...
@@ -93,10 +92,23 @@ public class WxLoginServiceImpl implements WxLoginService {
public
String
getAccessToken
()
{
public
String
getAccessToken
()
{
logger
.
info
(
"开始获取access_token----------------"
);
logger
.
info
(
"开始获取access_token----------------"
);
try
{
try
{
if
(
redisUtil
.
hasKey
(
CacheCodeConstants
.
WX_ACCESS_TOKEN
))
{
// if (redisUtil.hasKey(CacheCodeConstants.WX_ACCESS_TOKEN)) {
logger
.
info
(
"从redis获取access_token成功"
);
// logger.info("从redis获取access_token成功");
return
redisUtil
.
get
(
CacheCodeConstants
.
WX_ACCESS_TOKEN
).
toString
();
// return redisUtil.get(CacheCodeConstants.WX_ACCESS_TOKEN).toString();
}
else
{
// } else {
// String accessTokenUrl = String.format(GET_ACCESS_TOKEN_URL, appid, secret);
// String res = OkHttpUtil.builder().url(accessTokenUrl)
// .get().sync();
// logger.info("获取access_token结果:" + res);
// if (!res.contains("access_token")) {
// logger.error("获取accessToken出错,返回结果是:" + res);
// return null;
// }
// String accessToken = JsonUtils.getValueByPath(res, "access_token");
// String expiresIn = JsonUtils.getValueByPath(res, "expires_in");
// redisUtil.set(CacheCodeConstants.WX_ACCESS_TOKEN, accessToken, Long.parseLong(expiresIn));
// return accessToken;
// }
String
accessTokenUrl
=
String
.
format
(
GET_ACCESS_TOKEN_URL
,
appid
,
secret
);
String
accessTokenUrl
=
String
.
format
(
GET_ACCESS_TOKEN_URL
,
appid
,
secret
);
String
res
=
OkHttpUtil
.
builder
().
url
(
accessTokenUrl
)
String
res
=
OkHttpUtil
.
builder
().
url
(
accessTokenUrl
)
.
get
().
sync
();
.
get
().
sync
();
...
@@ -105,11 +117,7 @@ public class WxLoginServiceImpl implements WxLoginService {
...
@@ -105,11 +117,7 @@ public class WxLoginServiceImpl implements WxLoginService {
logger
.
error
(
"获取accessToken出错,返回结果是:"
+
res
);
logger
.
error
(
"获取accessToken出错,返回结果是:"
+
res
);
return
null
;
return
null
;
}
}
String
accessToken
=
JsonUtils
.
getValueByPath
(
res
,
"access_token"
);
return
JsonUtils
.
getValueByPath
(
res
,
"access_token"
);
String
expiresIn
=
JsonUtils
.
getValueByPath
(
res
,
"expires_in"
);
redisUtil
.
set
(
CacheCodeConstants
.
WX_ACCESS_TOKEN
,
accessToken
,
Long
.
parseLong
(
expiresIn
));
return
accessToken
;
}
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
logger
.
error
(
"获取access_token失败"
,
e
);
logger
.
error
(
"获取access_token失败"
,
e
);
return
null
;
return
null
;
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/ItemService.java
View file @
1bb33c09
...
@@ -22,7 +22,7 @@ public interface ItemService {
...
@@ -22,7 +22,7 @@ public interface ItemService {
Result
update
(
ItemRequestDto
dto
);
Result
update
(
ItemRequestDto
dto
);
void
getWxacode
(
String
page
,
String
scene
,
HttpServletResponse
response
);
Result
getWxacode
(
String
page
,
String
scene
,
HttpServletResponse
response
);
Result
getWxLink
(
String
pageUrl
);
Result
getWxLink
(
String
pageUrl
);
Result
uploadImage
(
MultipartFile
file
);
Result
uploadImage
(
MultipartFile
file
);
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/web/WxItemController.java
View file @
1bb33c09
...
@@ -245,8 +245,8 @@ public class WxItemController {
...
@@ -245,8 +245,8 @@ public class WxItemController {
@ApiOperation
(
value
=
"小程序码"
)
@ApiOperation
(
value
=
"小程序码"
)
@GetMapping
(
"/getWxacode"
)
@GetMapping
(
"/getWxacode"
)
public
void
getWxacode
(
String
page
,
String
scene
,
HttpServletResponse
response
)
{
public
Result
getWxacode
(
String
page
,
String
scene
,
HttpServletResponse
response
)
{
itemService
.
getWxacode
(
page
,
scene
,
response
);
return
itemService
.
getWxacode
(
page
,
scene
,
response
);
}
}
@ApiOperation
(
value
=
"小程序链接"
)
@ApiOperation
(
value
=
"小程序链接"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment