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
bb4091f3
Commit
bb4091f3
authored
Sep 20, 2023
by
shiyu
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/quanku_0930' into quanku_0930
parents
2dcb8e1b
e6410d44
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
98 additions
and
14 deletions
+98
-14
ch-wx-api/src/main/java/com/wwdz/ch/wx/dao/UserInfo.java
ch-wx-api/src/main/java/com/wwdz/ch/wx/dao/UserInfo.java
+18
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/request/UserRequestDto.java
...in/java/com/wwdz/ch/wx/entity/request/UserRequestDto.java
+2
-0
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ItemCommonServiceImpl.java
.../main/java/com/wwdz/ch/wx/impl/ItemCommonServiceImpl.java
+28
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/UserServiceImpl.java
...pi/src/main/java/com/wwdz/ch/wx/impl/UserServiceImpl.java
+14
-7
ch-wx-api/src/main/java/com/wwdz/ch/wx/manager/TikTokLoginManager.java
.../main/java/com/wwdz/ch/wx/manager/TikTokLoginManager.java
+3
-3
ch-wx-api/src/main/java/com/wwdz/ch/wx/manager/WxLoginManager.java
.../src/main/java/com/wwdz/ch/wx/manager/WxLoginManager.java
+16
-2
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/ItemCommonService.java
...c/main/java/com/wwdz/ch/wx/service/ItemCommonService.java
+17
-0
No files found.
ch-wx-api/src/main/java/com/wwdz/ch/wx/dao/UserInfo.java
View file @
bb4091f3
...
...
@@ -32,6 +32,8 @@ public class UserInfo implements Serializable {
private
String
fansNumber
;
private
long
collectionsNumber
;
private
long
viewsNumber
;
private
long
allNumber
;
private
long
privacyNumber
;
private
String
collectionsViewsNumber
;
private
Boolean
isFollowed
;
private
Integer
followedId
;
...
...
@@ -190,6 +192,22 @@ public class UserInfo implements Serializable {
this
.
viewsNumber
=
viewsNumber
;
}
public
long
getAllNumber
()
{
return
allNumber
;
}
public
void
setAllNumber
(
long
allNumber
)
{
this
.
allNumber
=
allNumber
;
}
public
long
getPrivacyNumber
()
{
return
privacyNumber
;
}
public
void
setPrivacyNumber
(
long
privacyNumber
)
{
this
.
privacyNumber
=
privacyNumber
;
}
public
Boolean
getIsFollowed
()
{
return
isFollowed
;
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/entity/request/UserRequestDto.java
View file @
bb4091f3
...
...
@@ -8,6 +8,7 @@ public class UserRequestDto implements Entity {
private
Long
userId
;
private
String
mobile
;
private
String
code
;
private
String
loginCode
;
private
String
smsCode
;
private
String
avatarUrl
;
private
Long
shareUserId
;
...
...
@@ -23,4 +24,5 @@ public class UserRequestDto implements Entity {
private
Integer
type
;
// 快捷登录方式(1、微信,2、支付宝,3、抖音)
private
Integer
loginType
;
private
String
wxOpenId
;
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/ItemCommonServiceImpl.java
View file @
bb4091f3
package
com.wwdz.ch.wx.impl
;
import
com.wwdz.ch.core.consts.ViewPermissionEnum
;
import
com.wwdz.ch.core.type.Result
;
import
com.wwdz.ch.db.dao.*
;
import
com.wwdz.ch.db.domain.Item
;
import
com.wwdz.ch.db.domain.ItemsOfficialUsersRelation
;
import
com.wwdz.ch.db.domain.User
;
import
com.wwdz.ch.db.domain.UserItemsRelation
;
import
com.wwdz.ch.db.dto.request.CoinRequestDto
;
import
com.wwdz.ch.db.dto.request.FollowFansRecordRequestDto
;
import
com.wwdz.ch.wx.dao.UserInfo
;
import
com.wwdz.ch.wx.entity.vo.ItemResponseVo
;
import
com.wwdz.ch.wx.manager.UserTokenManager
;
import
com.wwdz.ch.wx.service.FollowFansRecordService
;
import
com.wwdz.ch.wx.service.ItemCommonService
;
import
com.wwdz.ch.wx.util.StringUtil
;
import
org.apache.commons.collections.CollectionUtils
;
...
...
@@ -14,6 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.stream.Collectors
;
...
...
@@ -34,6 +41,8 @@ public class ItemCommonServiceImpl implements ItemCommonService {
@Autowired
private
UserTokenManager
userTokenManager
;
@Autowired
private
FollowFansRecordService
followFansRecordService
;
@Override
public
void
getNicknameAvatar
(
Long
itemId
,
ItemResponseVo
vo
)
{
...
...
@@ -64,14 +73,29 @@ public class ItemCommonServiceImpl implements ItemCommonService {
long
fansNumber
=
0
;
long
collectionsNumber
=
0
;
long
viewsNumber
=
0
;
//TODO 关注和粉丝数量
long
allNumber
=
0
;
long
privacyNumber
=
0
;
// 关注和粉丝数量
FollowFansRecordRequestDto
followFansRecordRequestDto
=
new
FollowFansRecordRequestDto
();
followFansRecordRequestDto
.
setSearchTargetId
(
userInfo
.
getUserId
());
Result
result
=
followFansRecordService
.
countFollowFans
(
followFansRecordRequestDto
);
if
(
result
.
getSuccess
())
{
Map
<
String
,
Object
>
map
=
(
Map
<
String
,
Object
>)
result
.
getData
();
followersNumber
=
(
long
)
map
.
get
(
"followerNum"
);
fansNumber
=
(
long
)
map
.
get
(
"fansNum"
);
}
// 收藏和浏览量、所有人私密数量
List
<
UserItemsRelation
>
userItemsRelations
=
userItemsRelationDao
.
listByUserIds
(
userInfo
.
getUserId
(),
null
);
if
(
CollectionUtils
.
isNotEmpty
(
userItemsRelations
))
{
List
<
Long
>
itemIds
=
userItemsRelations
.
stream
()
.
map
(
UserItemsRelation:
:
getItemId
).
collect
(
Collectors
.
toList
());
collectionsNumber
=
favoritesItemsRelationDao
.
countByItemIds
(
itemIds
);
viewsNumber
=
footPrintDao
.
countByItemIds
(
itemIds
);
CoinRequestDto
coinRequestDto
=
new
CoinRequestDto
();
coinRequestDto
.
setIds
(
itemIds
);
List
<
Item
>
itemList
=
itemDao
.
findListNotDeleted
(
coinRequestDto
);
allNumber
=
itemList
.
stream
().
filter
(
s
->
s
.
getViewPermission
().
equals
(
ViewPermissionEnum
.
ALL
.
getCode
())).
count
();
privacyNumber
=
itemList
.
stream
().
filter
(
s
->
s
.
getViewPermission
().
equals
(
ViewPermissionEnum
.
ONLY_ONESELF
.
getCode
())).
count
();
}
userInfo
.
setCollectionsNumber
(
collectionsNumber
);
...
...
@@ -79,5 +103,7 @@ public class ItemCommonServiceImpl implements ItemCommonService {
userInfo
.
setFollowersNumber
(
StringUtil
.
formatCount
(
followersNumber
));
userInfo
.
setFansNumber
(
StringUtil
.
formatCount
(
fansNumber
));
userInfo
.
setCollectionsViewsNumber
(
StringUtil
.
formatCount
(
collectionsNumber
+
viewsNumber
));
userInfo
.
setAllNumber
(
allNumber
);
userInfo
.
setPrivacyNumber
(
privacyNumber
);
}
}
ch-wx-api/src/main/java/com/wwdz/ch/wx/impl/UserServiceImpl.java
View file @
bb4091f3
...
...
@@ -134,7 +134,7 @@ public class UserServiceImpl implements UserService {
return
Result
.
failed
(
"验证码不正确"
);
}
// 获取登录结果
Map
<
String
,
Object
>
result
=
getLoginResult
(
dto
.
getMobile
()
,
request
);
Map
<
String
,
Object
>
result
=
getLoginResult
(
dto
,
request
);
Switch
switchh
=
switchService
.
findOnly
();
boolean
isOpen
=
Objects
.
nonNull
(
switchh
)
&&
switchh
.
getState
()
==
1
;
result
.
put
(
"isInvited"
,
inviteRecordService
.
isExisted
(
dto
.
getMobile
()).
getData
());
...
...
@@ -172,6 +172,7 @@ public class UserServiceImpl implements UserService {
if
(
StringUtils
.
equals
(
"decryptFalse"
,
mobile
))
{
return
Result
.
failed
(
ResultCode
.
FAILED
.
getCode
(),
"用户信息解密失败"
);
}
dto
.
setWxOpenId
(
wxLoginManager
.
getWxOpenId
(
dto
.
getLoginCode
()));
}
if
(
dto
.
getLoginType
().
equals
(
LoginTypeEnum
.
ALIPAY
.
getCode
()))
{
mobile
=
alipayLoginManager
.
getPhone
(
dto
.
getEncryptedData
());
...
...
@@ -180,7 +181,7 @@ public class UserServiceImpl implements UserService {
}
}
if
(
dto
.
getLoginType
().
equals
(
LoginTypeEnum
.
TIKTOK
.
getCode
()))
{
String
sessionKey
=
tikTokLoginManager
.
getSessionKey
(
dto
.
getCode
());
String
sessionKey
=
tikTokLoginManager
.
getSessionKey
(
dto
.
get
Login
Code
());
if
(
StringUtils
.
isBlank
(
sessionKey
))
{
return
Result
.
failed
(
"获取sessionKey失败"
);
}
...
...
@@ -194,7 +195,7 @@ public class UserServiceImpl implements UserService {
return
Result
.
failed
(
"获取用户手机号失败"
);
}
// 获取登录结果
Map
<
String
,
Object
>
result
=
getLoginResult
(
mobile
,
request
);
Map
<
String
,
Object
>
result
=
getLoginResult
(
dto
,
request
);
Switch
switchh
=
switchService
.
findOnly
();
boolean
isOpen
=
Objects
.
nonNull
(
switchh
)
&&
switchh
.
getState
()
==
1
;
result
.
put
(
"isInvited"
,
inviteRecordService
.
isExisted
(
mobile
).
getData
());
...
...
@@ -434,15 +435,15 @@ public class UserServiceImpl implements UserService {
/**
* 获取登录结果
*
* @param
mobile
* @param
dto
* @param request
* @return
*/
private
Map
<
String
,
Object
>
getLoginResult
(
String
mobile
,
HttpServletRequest
request
)
{
private
Map
<
String
,
Object
>
getLoginResult
(
UserRequestDto
dto
,
HttpServletRequest
request
)
{
Map
<
String
,
Object
>
result
=
new
HashMap
<>();
Date
now
=
new
Date
();
User
user
=
userDao
.
queryByMobile
(
mobile
);
User
user
=
userDao
.
queryByMobile
(
dto
.
getMobile
()
);
if
(
Objects
.
isNull
(
user
))
{
user
=
new
User
();
user
.
setUsername
(
UUID
.
randomUUID
().
toString
().
replace
(
"-"
,
""
));
...
...
@@ -452,8 +453,11 @@ public class UserServiceImpl implements UserService {
user
.
setProfile
(
""
);
user
.
setBackground
(
""
);
user
.
setWechatId
(
""
);
user
.
setMobile
(
mobile
);
user
.
setMobile
(
dto
.
getMobile
()
);
user
.
setAvatar
(
avatarUrl
);
if
(
StringUtils
.
isNotBlank
(
dto
.
getWxOpenId
()))
{
user
.
setWeixinOpenid
(
dto
.
getWxOpenId
());
}
while
(
true
)
{
String
nickname
=
"收藏家"
+
StringUtil
.
generateRandomString
(
10
);
if
(!
userDao
.
isExistedByNickname
(
0L
,
nickname
))
{
...
...
@@ -472,6 +476,9 @@ public class UserServiceImpl implements UserService {
user
.
setShareUserId
(
0L
);
userDao
.
insert
(
user
);
}
else
{
if
(
StringUtils
.
isNotBlank
(
dto
.
getWxOpenId
()))
{
user
.
setWeixinOpenid
(
dto
.
getWxOpenId
());
}
user
.
setLastLoginTime
(
new
Date
());
user
.
setLastLoginIp
(
IpUtil
.
client
(
request
));
if
(
userDao
.
updateById
(
user
)
==
0
)
{
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/manager/TikTokLoginManager.java
View file @
bb4091f3
...
...
@@ -50,10 +50,10 @@ public class TikTokLoginManager {
/**
* 获取用户登录后的session_key
*
* @param
c
ode
* @param
loginC
ode
* @return
*/
public
String
getSessionKey
(
String
c
ode
)
{
public
String
getSessionKey
(
String
loginC
ode
)
{
try
{
logger
.
info
(
"开始获取抖音小程序的session_key"
);
String
activeProfile
=
applicationContext
.
getEnvironment
().
getActiveProfiles
()[
0
];
...
...
@@ -64,7 +64,7 @@ public class TikTokLoginManager {
Map
<
String
,
Object
>
param
=
new
HashMap
<>();
param
.
put
(
"appid"
,
appid
);
param
.
put
(
"secret"
,
appSecret
);
param
.
put
(
"code"
,
c
ode
);
param
.
put
(
"code"
,
loginC
ode
);
String
result
=
OkHttpUtil
.
builder
().
url
(
url
)
.
addParams
(
param
)
.
post
(
true
).
sync
();
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/manager/WxLoginManager.java
View file @
bb4091f3
...
...
@@ -26,8 +26,10 @@ public class WxLoginManager {
// 微信小程序appid
private
static
final
String
appid
=
"wx5b4409448bf2c72b"
;
// private static final String appid = "wxb2bc9d1be2d6345c";
// 微信小程序secret
private
static
final
String
secret
=
"6fee0d7b2197845fed0a3fe8f5a9bd66"
;
// private static final String secret = "fade0a145eea51cfc89a9e8808f28f04";
// 微信小程序获取access_token地址
private
static
final
String
GET_ACCESS_TOKEN_URL
=
"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"
;
// 微信小程序获取用户手机号地址
...
...
@@ -40,6 +42,18 @@ public class WxLoginManager {
@Autowired
private
WxMaService
wxMaService
;
public
String
getWxOpenId
(
String
loginCode
)
{
logger
.
info
(
"开始获取openId-----------------------"
);
String
openId
=
""
;
try
{
WxMaJscode2SessionResult
result
=
this
.
wxMaService
.
getUserService
().
getSessionInfo
(
loginCode
);
openId
=
result
.
getOpenid
();
logger
.
info
(
"获取openId成功"
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"获取微信登录用户的openId失败"
,
e
);
}
return
openId
;
}
public
String
getPhone
(
UserRequestDto
dto
)
{
String
phone
=
""
;
...
...
@@ -66,7 +80,7 @@ public class WxLoginManager {
logger
.
info
(
"开始获取sessionKey-----------------------"
);
String
sessionKey
=
""
;
try
{
WxMaJscode2SessionResult
result
=
this
.
wxMaService
.
getUserService
().
getSessionInfo
(
dto
.
getCode
());
WxMaJscode2SessionResult
result
=
this
.
wxMaService
.
getUserService
().
getSessionInfo
(
dto
.
get
Login
Code
());
sessionKey
=
result
.
getSessionKey
();
logger
.
info
(
"获取sessionKey结果:"
+
JSON
.
toJSONString
(
result
));
}
catch
(
Exception
e
)
{
...
...
@@ -74,7 +88,7 @@ public class WxLoginManager {
return
"sessionFalse"
;
}
if
(
StringUtils
.
isBlank
(
sessionKey
))
{
logger
.
info
(
"微信登录,调用官方接口失败:{}"
,
dto
.
getCode
());
logger
.
info
(
"微信登录,调用官方接口失败:{}"
,
dto
.
get
Login
Code
());
return
"sessionFalse"
;
}
...
...
ch-wx-api/src/main/java/com/wwdz/ch/wx/service/ItemCommonService.java
View file @
bb4091f3
...
...
@@ -6,9 +6,26 @@ import com.wwdz.ch.wx.entity.vo.ItemResponseVo;
import
java.util.List
;
public
interface
ItemCommonService
{
/**
* 获取用户的昵称和头像
*
* @param itemId
* @param vo
*/
void
getNicknameAvatar
(
Long
itemId
,
ItemResponseVo
vo
);
/**
* 获取仅自己可见的用户发布的藏品
*
* @param token
* @return
*/
List
<
Long
>
getOnlyOneselfItemIds
(
String
token
);
/**
* 获取关注粉丝收藏和浏览量
*
* @param userInfo
*/
void
getPageViews
(
UserInfo
userInfo
);
}
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