Commit 927e8357 authored by haojiahong's avatar haojiahong

消费和查询店铺积分

parent f8ae509e
...@@ -219,8 +219,13 @@ public class Open2DuibaController { ...@@ -219,8 +219,13 @@ public class Open2DuibaController {
LOGGER.info("加密pin,pin={},uid={}", pinByToken.getData(), uid); LOGGER.info("加密pin,pin={},uid={}", pinByToken.getData(), uid);
String nickName = userInfoByOpenId.getData().getNickName(); String nickName = userInfoByOpenId.getData().getNickName();
String avatar = userInfoByOpenId.getData().getImageUrl(); 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); LOGGER.info("autoLogin={}", autoLogin);
return ResultBuilder.success(autoLogin); return ResultBuilder.success(autoLogin);
} catch (BizException e) { } catch (BizException e) {
...@@ -234,7 +239,7 @@ public class Open2DuibaController { ...@@ -234,7 +239,7 @@ public class Open2DuibaController {
/** /**
* 生成免登url * 生成免登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()); CreditTool tool = new CreditTool(duibaApp.getAppKey(), duibaApp.getAppSecret());
Map<String, String> params = new HashMap<>(); Map<String, String> params = new HashMap<>();
...@@ -253,7 +258,9 @@ public class Open2DuibaController { ...@@ -253,7 +258,9 @@ public class Open2DuibaController {
params.put("redirect", redirectUrl); params.put("redirect", redirectUrl);
} }
params.put("uid", uid); params.put("uid", uid);
if (StringUtils.isNotBlank(credits)) {
params.put("credits", credits);
}
String autoUrl = getAutologinHome(env); String autoUrl = getAutologinHome(env);
return tool.buildUrlWithSign(autoUrl, params); return tool.buildUrlWithSign(autoUrl, params);
...@@ -571,6 +578,57 @@ public class Open2DuibaController { ...@@ -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加入购物车 * 通过用户pin加入购物车
*/ */
......
...@@ -31,6 +31,7 @@ import com.jd.open.api.sdk.request.seller.VenderShopQueryRequest; ...@@ -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.sku.PopBeanSendBeanRequest;
import com.jd.open.api.sdk.request.user.FollowVenderReadIsFollowByPinAndVidRequest; 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.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.PopCrmGetMemberInVenderRequest;
import com.jd.open.api.sdk.request.user.PopJmCenterUserGetEncryptPinNewRequest; import com.jd.open.api.sdk.request.user.PopJmCenterUserGetEncryptPinNewRequest;
import com.jd.open.api.sdk.request.user.PopJmCenterUserGetOpenIdRequest; import com.jd.open.api.sdk.request.user.PopJmCenterUserGetOpenIdRequest;
...@@ -47,6 +48,7 @@ import com.jd.open.api.sdk.response.seller.VenderShopQueryResponse; ...@@ -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.sku.PopBeanSendBeanResponse;
import com.jd.open.api.sdk.response.user.FollowVenderReadIsFollowByPinAndVidResponse; 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.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.PopCrmGetMemberInVenderResponse;
import com.jd.open.api.sdk.response.user.PopJmCenterUserGetEncryptPinNewResponse; import com.jd.open.api.sdk.response.user.PopJmCenterUserGetEncryptPinNewResponse;
import com.jd.open.api.sdk.response.user.PopJmCenterUserGetOpenIdResponse; import com.jd.open.api.sdk.response.user.PopJmCenterUserGetOpenIdResponse;
...@@ -425,7 +427,7 @@ public class JdApiUtil { ...@@ -425,7 +427,7 @@ public class JdApiUtil {
public Result<Boolean> consumePoints(JdAppEnum jdAppEnum, String pin, String businessId, public Result<Boolean> consumePoints(JdAppEnum jdAppEnum, String pin, String businessId,
Integer points, String desc, String accessToken) { Integer points, String desc, String accessToken) {
if (points >= 0) { if (points >= 0) {
return ResultBuilder.fail("发放积分须是负数"); return ResultBuilder.fail("消费积分须是负数");
} }
return sendPoints(jdAppEnum, pin, businessId, (short) 37, points, desc, accessToken); return sendPoints(jdAppEnum, pin, businessId, (short) 37, points, desc, accessToken);
} }
...@@ -703,4 +705,31 @@ public class JdApiUtil { ...@@ -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("发生异常");
}
}
} }
...@@ -19,6 +19,11 @@ public class AutologinParam implements Serializable { ...@@ -19,6 +19,11 @@ public class AutologinParam implements Serializable {
private String redirectUrl; private String redirectUrl;
/**
* 是否需要店铺积分
*/
private String needCredits;
/** /**
* 兑吧环境 * 兑吧环境
*/ */
...@@ -29,6 +34,14 @@ public class AutologinParam implements Serializable { ...@@ -29,6 +34,14 @@ public class AutologinParam implements Serializable {
*/ */
private String appKey; private String appKey;
public String getNeedCredits() {
return needCredits;
}
public void setNeedCredits(String needCredits) {
this.needCredits = needCredits;
}
public Long getVenderId() { public Long getVenderId() {
return venderId; return venderId;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment