Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gk
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
micro_app
gk
Commits
823cc9dd
Commit
823cc9dd
authored
Aug 09, 2022
by
chenlin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
根据组委会ID判断是否覆盖微信头像
parent
2905cb27
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
26 additions
and
15 deletions
+26
-15
Partner.java
...ain/java/com/dlbridge/jadp/plugins/cmpt/bean/Partner.java
+1
-0
CmptMapper.xml
.../com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.xml
+1
-1
PartnerMapper.xml
...m/dlbridge/jadp/plugins/cmpt/dao/mapper/PartnerMapper.xml
+1
-1
WeixinInfoService.java
...dlbridge/jadp/plugins/cmpt/service/WeixinInfoService.java
+2
-2
MicroApiController.java
...om/dlbridge/jadp/plugins/cmpt/web/MicroApiController.java
+21
-11
No files found.
src/main/java/com/dlbridge/jadp/plugins/cmpt/bean/Partner.java
View file @
823cc9dd
...
...
@@ -13,4 +13,5 @@ public class Partner {
private
String
partnerId
;
private
int
status
;
private
String
name
;
private
int
coverHeadImg
;
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.xml
View file @
823cc9dd
...
...
@@ -271,7 +271,7 @@
</select>
<select
id=
"getParnterByParnterId"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.Partner"
>
select id,app_id appId,
partner_id partnerId,app_secret appSecret,status,user_id userId
select id,app_id appId,
name,partner_id partnerId,app_secret appSecret,status,user_id userId,cover_headimg coverHeadImg
from gk_app_info
where partner_id=#{partnerId}
</select>
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/PartnerMapper.xml
View file @
823cc9dd
...
...
@@ -3,7 +3,7 @@
<mapper
namespace=
"com.dlbridge.jadp.plugins.cmpt.dao.mapper.PartnerMapper"
>
<select
id=
"getPartnerById"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.Partner"
>
select app_id appId,
app_secret appSecret,user_id userId,partner_id partnerId
select app_id appId,
name,app_secret appSecret,user_id userId,partner_id partnerId,cover_headimg coverHeadImg
from gk_app_info
where partner_id = #{partnerId}
</select>
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/WeixinInfoService.java
View file @
823cc9dd
...
...
@@ -39,13 +39,13 @@ public class WeixinInfoService {
String
url
=
"https://api.weixin.qq.com/sns/jscode2session?appid="
+
parnter
.
getAppId
()
+
"&secret="
+
parnter
.
getAppSecret
()
+
"&js_code="
+
code
+
"&grant_type=authorization_code"
;
HttpGet
hg
=
new
HttpGet
(
url
);
log
.
info
(
"请求路径:"
+
url
);
//
log.info("请求路径:"+url);
CloseableHttpResponse
response
=
hp
.
execute
(
hg
);
HttpEntity
entity
=
response
.
getEntity
();
String
content
=
EntityUtils
.
toString
(
entity
,
"utf-8"
);
JSONObject
json
=
JSON
.
parseObject
(
content
);
log
.
info
(
"请求路径:"
+
url
+
",返回数据:"
+
content
);
log
.
info
(
"
=====getOpenIdAndSessionKey
请求路径:"
+
url
+
",返回数据:"
+
content
);
hp
.
close
();
return
json
;
}
catch
(
Exception
e
)
{
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/MicroApiController.java
View file @
823cc9dd
...
...
@@ -588,12 +588,12 @@ public class MicroApiController {
@ApiResponse
(
code
=
-
1
,
message
=
"失败"
),
@ApiResponse
(
code
=
200
,
message
=
"成功"
,
response
=
Result
.
class
)})
@ApiOperation
(
value
=
"微信登录/注册"
,
notes
=
"微信登录/注册"
,
tags
=
"用户信息"
)
public
Result
<
User
>
bind
(
HttpServletRequest
request
,
String
encryptedData
,
String
iv
,
String
code
)
{
public
Result
<
User
>
bind
Wx
(
HttpServletRequest
request
,
String
encryptedData
,
String
iv
,
String
code
)
{
//////////////// 1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid ////////////////
log
.
info
(
"code:"
+
code
+
",encryptedData:"
+
encryptedData
+
",code:"
+
code
);
log
.
info
(
"请求方法:"
+
request
.
getMethod
());
log
.
info
(
"
=====bindWx方法,
code:"
+
code
+
",encryptedData:"
+
encryptedData
+
",code:"
+
code
);
log
.
info
(
"
=====
请求方法:"
+
request
.
getMethod
());
String
partnerId
=
request
.
getParameter
(
"partnerId"
);
log
.
info
(
"请求参数:"
+
request
.
getQueryString
());
log
.
info
(
"
=====
请求参数:"
+
request
.
getQueryString
());
JSONObject
json
=
weixinInfoService
.
getOpenIdAndSessionKey
(
code
,
partnerId
);
String
openid
=
null
;
String
session_key
;
...
...
@@ -606,16 +606,16 @@ public class MicroApiController {
openid
=
json
.
getString
(
"openid"
);
//获取会话密钥(session_key)
session_key
=
json
.
getString
(
"session_key"
);
log
.
info
(
"openId:"
+
openid
+
", session_key:"
+
session_key
);
log
.
info
(
"
=====
openId:"
+
openid
+
", session_key:"
+
session_key
);
}
}
else
{
log
.
info
(
"获取授权失败"
);
log
.
info
(
"
=====
获取授权失败"
);
return
Result
.
fail
().
setMsg
(
"获取授权失败"
);
}
//////////////// 2、对encryptedData加密数据进行AES解密 ////////////////
try
{
String
result
=
AesUtil
.
decrypt
(
encryptedData
,
session_key
,
iv
,
"UTF-8"
);
log
.
info
(
"解密结果:"
+
result
);
log
.
info
(
"
=====
解密结果:"
+
result
);
if
(
null
!=
result
&&
result
.
length
()
>
0
)
{
JSONObject
jsoninfo
=
JSONObject
.
parseObject
(
result
);
String
name
=
jsoninfo
.
getString
(
"nickName"
);
...
...
@@ -623,6 +623,16 @@ public class MicroApiController {
name
=
name
.
replaceAll
(
"\\{"
,
""
).
replaceAll
(
"\\}"
,
""
);
}
String
imgUrl
=
jsoninfo
.
getString
(
"avatarUrl"
);
// 根据组委会ID判断是否覆盖微信头像(微信小程序获取头像昵称规则变更兼容)
Partner
partner
=
partnerService
.
getPartnerById
(
partnerId
);
// 如果配置为不覆盖头像
if
(
partner
.
getCoverHeadImg
()
==
0
){
name
=
""
;
imgUrl
=
""
;
log
.
info
(
"=====小程序组委会["
+
partner
.
getName
()+
"]不覆盖微信头像"
);
}
String
url
=
null
;
if
(
jsoninfo
.
getString
(
"unionId"
)
!=
null
&&
!
"null"
.
equals
(
jsoninfo
.
getString
(
"unionId"
))){
...
...
@@ -633,20 +643,20 @@ public class MicroApiController {
"&userName="
+
name
+
"&nickName="
+
name
+
"&headImgUrl="
+
imgUrl
+
"&userFrom=3"
;
}
log
.
info
(
"请求的URL:"
+
url
);
log
.
info
(
"
=====
请求的URL:"
+
url
);
ResponseEntity
<
String
>
forEntity
=
restTemplate
.
getForEntity
(
url
,
String
.
class
);
if
(
forEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
JSONObject
object
=
JSONObject
.
parseObject
(
forEntity
.
getBody
());
log
.
info
(
"返回的JSON:"
+
forEntity
.
getBody
());
log
.
info
(
"
=====
返回的JSON:"
+
forEntity
.
getBody
());
int
userId
=
object
.
getJSONObject
(
"result"
).
getIntValue
(
"userId"
);
User
user
=
new
User
().
setUserId
(
userId
).
setHeadImgUrl
(
imgUrl
).
setOpenId
(
openid
)
.
setUnionId
(
jsoninfo
.
getString
(
"unionId"
))
.
setPhone
(
StringUtils
.
isBlank
(
object
.
getJSONObject
(
"result"
).
getString
(
"callPhone"
))?
""
:
object
.
getJSONObject
(
"result"
).
getString
(
"callPhone"
));
valueOperations
.
set
(
KEY
+
userId
,
session_key
);
log
.
info
(
"返回数据:"
+
user
);
//
log.info("返回数据:" + user);
return
Result
.
success
().
setContent
(
user
);
}
else
{
log
.
info
(
"请求平台数据出错!"
);
log
.
info
(
"
=====
请求平台数据出错!"
);
return
Result
.
fail
().
setMsg
(
"请求平台数据出错!"
);
}
}
...
...
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