Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jd-activity
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
曾水平
jd-activity
Commits
927e8357
Commit
927e8357
authored
Jul 19, 2021
by
haojiahong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
消费和查询店铺积分
parent
f8ae509e
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
104 additions
and
4 deletions
+104
-4
Open2DuibaController.java
...com/duiba/jdactivity/controller/Open2DuibaController.java
+61
-3
JdApiUtil.java
...cn/com/duiba/jdactivity/developer/jd/utils/JdApiUtil.java
+30
-1
AutologinParam.java
...main/java/cn/com/duiba/jdactivity/dto/AutologinParam.java
+13
-0
No files found.
src/main/java/cn/com/duiba/jdactivity/controller/Open2DuibaController.java
View file @
927e8357
...
...
@@ -219,8 +219,13 @@ public class Open2DuibaController {
LOGGER
.
info
(
"加密pin,pin={},uid={}"
,
pinByToken
.
getData
(),
uid
);
String
nickName
=
userInfoByOpenId
.
getData
().
getNickName
();
String
avatar
=
userInfoByOpenId
.
getData
().
getImageUrl
();
String
credits
=
null
;
if
(
StringUtils
.
equals
(
autologinParam
.
getNeedCredits
(),
"1"
))
{
Result
<
Long
>
customerPoints
=
jdApiUtil
.
getCustomerPoints
(
appByAppKey
,
pinByToken
.
getData
(),
accessToken
.
getAccessToken
());
credits
=
String
.
valueOf
(
customerPoints
.
getData
());
}
String
autoLogin
=
autologin
(
duibaApp
,
uid
,
nickName
,
avatar
,
redirectUrl
,
env
);
String
autoLogin
=
autologin
(
duibaApp
,
uid
,
nickName
,
avatar
,
redirectUrl
,
env
,
credits
);
LOGGER
.
info
(
"autoLogin={}"
,
autoLogin
);
return
ResultBuilder
.
success
(
autoLogin
);
}
catch
(
BizException
e
)
{
...
...
@@ -234,7 +239,7 @@ public class Open2DuibaController {
/**
* 生成免登url
*/
private
String
autologin
(
DuibaAppEnum
duibaApp
,
String
uid
,
String
nickName
,
String
avatar
,
String
redirectUrl
,
String
env
)
{
private
String
autologin
(
DuibaAppEnum
duibaApp
,
String
uid
,
String
nickName
,
String
avatar
,
String
redirectUrl
,
String
env
,
String
credits
)
{
CreditTool
tool
=
new
CreditTool
(
duibaApp
.
getAppKey
(),
duibaApp
.
getAppSecret
());
Map
<
String
,
String
>
params
=
new
HashMap
<>();
...
...
@@ -253,7 +258,9 @@ public class Open2DuibaController {
params
.
put
(
"redirect"
,
redirectUrl
);
}
params
.
put
(
"uid"
,
uid
);
if
(
StringUtils
.
isNotBlank
(
credits
))
{
params
.
put
(
"credits"
,
credits
);
}
String
autoUrl
=
getAutologinHome
(
env
);
return
tool
.
buildUrlWithSign
(
autoUrl
,
params
);
...
...
@@ -571,6 +578,57 @@ public class Open2DuibaController {
}
}
/**
* 消费店铺积分
*/
@PostMapping
(
"/consumePoints"
)
public
Result
<
Boolean
>
consumePoints
(
@RequestBody
DuibaSendPointsParam
param
)
{
try
{
String
uid
=
getUid
(
param
.
getUid
());
signVerify4Post
(
param
,
"互动积分消费积分"
);
TbShopAccessTokenDto
accessToken
=
accessTokenUtils
.
getAccessTokenWithCache
(
param
);
JdAppEnum
appEnum
=
JdAppEnum
.
getAppByAppKey
(
accessToken
.
getAppKey
());
String
pin
=
convert2Pin
(
appEnum
,
accessToken
.
getAccessToken
(),
uid
);
Result
<
Boolean
>
result
=
jdApiUtil
.
consumePoints
(
appEnum
,
pin
,
param
.
getBusinessId
(),
param
.
getPoints
(),
param
.
getDesc
(),
accessToken
.
getAccessToken
());
LOGGER
.
info
(
"互动积分消费积分,result={},uid={},pin={}"
,
JSON
.
toJSONString
(
result
),
uid
,
pin
);
return
result
;
}
catch
(
BizException
e
)
{
return
ResultBuilder
.
fail
(
e
.
getMessage
());
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"互动积分消费积分,异常"
,
e
);
return
ResultBuilder
.
fail
(
"互动积分消费积分异常"
);
}
}
/**
* 获取用户积分值
*/
@PostMapping
(
"/getCustomerPoints"
)
public
Result
<
Long
>
getCustomerPoints
(
@RequestBody
DuibaUserParam
param
)
{
try
{
String
uid
=
getUid
(
param
.
getUid
());
signVerify4Post
(
param
,
"获取用户积分"
);
TbShopAccessTokenDto
accessToken
=
accessTokenUtils
.
getAccessTokenWithCache
(
param
);
JdAppEnum
appEnum
=
JdAppEnum
.
getAppByAppKey
(
accessToken
.
getAppKey
());
String
pin
=
convert2Pin
(
appEnum
,
accessToken
.
getAccessToken
(),
uid
);
Result
<
Long
>
result
=
jdApiUtil
.
getCustomerPoints
(
appEnum
,
pin
,
accessToken
.
getAccessToken
());
LOGGER
.
info
(
"获取用户积分,result={},uid={},pin={}"
,
JSON
.
toJSONString
(
result
),
uid
,
pin
);
return
result
;
}
catch
(
BizException
e
)
{
return
ResultBuilder
.
fail
(
e
.
getMessage
());
}
catch
(
Exception
e
)
{
LOGGER
.
error
(
"获取用户积分,异常"
,
e
);
return
ResultBuilder
.
fail
(
"获取用户积分异常"
);
}
}
/**
* 通过用户pin加入购物车
*/
...
...
src/main/java/cn/com/duiba/jdactivity/developer/jd/utils/JdApiUtil.java
View file @
927e8357
...
...
@@ -31,6 +31,7 @@ import com.jd.open.api.sdk.request.seller.VenderShopQueryRequest;
import
com.jd.open.api.sdk.request.sku.PopBeanSendBeanRequest
;
import
com.jd.open.api.sdk.request.user.FollowVenderReadIsFollowByPinAndVidRequest
;
import
com.jd.open.api.sdk.request.user.FollowVenderWriteFollowByPinAndVidRequest
;
import
com.jd.open.api.sdk.request.user.PopCrmGetCustomerPointsRequest
;
import
com.jd.open.api.sdk.request.user.PopCrmGetMemberInVenderRequest
;
import
com.jd.open.api.sdk.request.user.PopJmCenterUserGetEncryptPinNewRequest
;
import
com.jd.open.api.sdk.request.user.PopJmCenterUserGetOpenIdRequest
;
...
...
@@ -47,6 +48,7 @@ import com.jd.open.api.sdk.response.seller.VenderShopQueryResponse;
import
com.jd.open.api.sdk.response.sku.PopBeanSendBeanResponse
;
import
com.jd.open.api.sdk.response.user.FollowVenderReadIsFollowByPinAndVidResponse
;
import
com.jd.open.api.sdk.response.user.FollowVenderWriteFollowByPinAndVidResponse
;
import
com.jd.open.api.sdk.response.user.PopCrmGetCustomerPointsResponse
;
import
com.jd.open.api.sdk.response.user.PopCrmGetMemberInVenderResponse
;
import
com.jd.open.api.sdk.response.user.PopJmCenterUserGetEncryptPinNewResponse
;
import
com.jd.open.api.sdk.response.user.PopJmCenterUserGetOpenIdResponse
;
...
...
@@ -425,7 +427,7 @@ public class JdApiUtil {
public
Result
<
Boolean
>
consumePoints
(
JdAppEnum
jdAppEnum
,
String
pin
,
String
businessId
,
Integer
points
,
String
desc
,
String
accessToken
)
{
if
(
points
>=
0
)
{
return
ResultBuilder
.
fail
(
"
发放
积分须是负数"
);
return
ResultBuilder
.
fail
(
"
消费
积分须是负数"
);
}
return
sendPoints
(
jdAppEnum
,
pin
,
businessId
,
(
short
)
37
,
points
,
desc
,
accessToken
);
}
...
...
@@ -703,4 +705,31 @@ public class JdApiUtil {
}
/**
* 获取用户积分
*
* @param jdAppEnum
* @param pin
* @param accessToken
* @return
*/
public
Result
<
Long
>
getCustomerPoints
(
JdAppEnum
jdAppEnum
,
String
pin
,
String
accessToken
)
{
try
{
PopCrmGetCustomerPointsRequest
request
=
new
PopCrmGetCustomerPointsRequest
();
request
.
setCustomerPin
(
pin
);
Result
<
PopCrmGetCustomerPointsResponse
>
result
=
execute
(
jdAppEnum
,
accessToken
,
request
);
if
(!
result
.
getSuccess
())
{
return
ResultBuilder
.
fail
(
result
.
getDesc
());
}
PopCrmGetCustomerPointsResponse
response
=
result
.
getData
();
return
Optional
.
ofNullable
(
response
)
.
map
(
r
->
ResultBuilder
.
success
(
r
.
getGetcustomerpointsResult
()))
.
orElse
(
ResultBuilder
.
fail
(
JSON
.
toJSONString
(
response
)));
}
catch
(
Exception
e
)
{
LOGGER
.
warn
(
"获取用户积分接口,exception"
,
e
);
return
ResultBuilder
.
fail
(
"发生异常"
);
}
}
}
src/main/java/cn/com/duiba/jdactivity/dto/AutologinParam.java
View file @
927e8357
...
...
@@ -19,6 +19,11 @@ public class AutologinParam implements Serializable {
private
String
redirectUrl
;
/**
* 是否需要店铺积分
*/
private
String
needCredits
;
/**
* 兑吧环境
*/
...
...
@@ -29,6 +34,14 @@ public class AutologinParam implements Serializable {
*/
private
String
appKey
;
public
String
getNeedCredits
()
{
return
needCredits
;
}
public
void
setNeedCredits
(
String
needCredits
)
{
this
.
needCredits
=
needCredits
;
}
public
Long
getVenderId
()
{
return
venderId
;
}
...
...
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