Commit a7e564ed authored by haojiahong's avatar haojiahong

Merge branch 'feature/20211011-collectGood' into 'master'

代码写的差不多,发一版试试

See merge request !15
parents bd92f145 eb8e3b4f
...@@ -13,13 +13,7 @@ import cn.com.duiba.jdactivity.developer.jd.constant.JdShopEnum; ...@@ -13,13 +13,7 @@ import cn.com.duiba.jdactivity.developer.jd.constant.JdShopEnum;
import cn.com.duiba.jdactivity.developer.jd.constant.JdTokenSourceEnum; import cn.com.duiba.jdactivity.developer.jd.constant.JdTokenSourceEnum;
import cn.com.duiba.jdactivity.developer.jd.utils.AccessTokenUtils; import cn.com.duiba.jdactivity.developer.jd.utils.AccessTokenUtils;
import cn.com.duiba.jdactivity.developer.jd.utils.JdApiUtil; import cn.com.duiba.jdactivity.developer.jd.utils.JdApiUtil;
import cn.com.duiba.jdactivity.dto.AutologinParam; import cn.com.duiba.jdactivity.dto.*;
import cn.com.duiba.jdactivity.dto.DuibaAddCartParam;
import cn.com.duiba.jdactivity.dto.DuibaSendBeanParam;
import cn.com.duiba.jdactivity.dto.DuibaSendCouponParam;
import cn.com.duiba.jdactivity.dto.DuibaSendPointsParam;
import cn.com.duiba.jdactivity.dto.DuibaUserParam;
import cn.com.duiba.jdactivity.dto.TbShopAccessTokenDto;
import cn.com.duiba.jdactivity.exception.BizException; import cn.com.duiba.jdactivity.exception.BizException;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
...@@ -628,7 +622,6 @@ public class Open2DuibaController { ...@@ -628,7 +622,6 @@ public class Open2DuibaController {
} }
/** /**
* 通过用户pin加入购物车 * 通过用户pin加入购物车
*/ */
...@@ -685,4 +678,32 @@ public class Open2DuibaController { ...@@ -685,4 +678,32 @@ public class Open2DuibaController {
return ResultBuilder.fail("通过用户pin加入购物车失败"); return ResultBuilder.fail("通过用户pin加入购物车失败");
} }
} }
/**
* 关注商品
*/
@PostMapping("/followGood")
public Result<Boolean> followGood(@RequestBody FollowGoodParam param) {
try {
String uid = param.getUid();
Long productId = param.getProductId();
uid = uid.replaceAll(" ", "+");
signVerify4Post(param, "关注商品");
TbShopAccessTokenDto accessToken = accessTokenUtils.getAccessTokenWithCache(param);
JdAppEnum appEnum = JdAppEnum.getAppByAppKey(accessToken.getAppKey());
String pin = convert2Pin(appEnum, accessToken.getAccessToken(), uid);
Result<Boolean> result = jdApiUtil.followGood(appEnum, pin, productId, accessToken.getAccessToken());
LOGGER.info("关注商品,result={}", JSON.toJSONString(result));
return result;
} catch (BizException e) {
return ResultBuilder.fail(e.getMessage());
} catch (Exception e) {
LOGGER.error("关注商品,异常", e);
return ResultBuilder.fail("关注商品失败");
}
}
} }
...@@ -29,13 +29,7 @@ import com.jd.open.api.sdk.request.promotion.SellerCouponWriteLockCouponRequest; ...@@ -29,13 +29,7 @@ import com.jd.open.api.sdk.request.promotion.SellerCouponWriteLockCouponRequest;
import com.jd.open.api.sdk.request.promotion.SellerCouponWritePushCouponRequest; import com.jd.open.api.sdk.request.promotion.SellerCouponWritePushCouponRequest;
import com.jd.open.api.sdk.request.seller.VenderShopQueryRequest; 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.*;
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;
import com.jd.open.api.sdk.request.user.UserGetUserInfoByOpenIdRequest;
import com.jd.open.api.sdk.response.crm.PointsJosSendPointsResponse; import com.jd.open.api.sdk.response.crm.PointsJosSendPointsResponse;
import com.jd.open.api.sdk.response.crm.PopCrmCustomerGetCustomerResponse; import com.jd.open.api.sdk.response.crm.PopCrmCustomerGetCustomerResponse;
import com.jd.open.api.sdk.response.gongzhonghao.JzoneAddCartItemByPinResponse; import com.jd.open.api.sdk.response.gongzhonghao.JzoneAddCartItemByPinResponse;
...@@ -46,13 +40,7 @@ import com.jd.open.api.sdk.response.promotion.SellerCouponWriteLockCouponRespons ...@@ -46,13 +40,7 @@ import com.jd.open.api.sdk.response.promotion.SellerCouponWriteLockCouponRespons
import com.jd.open.api.sdk.response.promotion.SellerCouponWritePushCouponResponse; import com.jd.open.api.sdk.response.promotion.SellerCouponWritePushCouponResponse;
import com.jd.open.api.sdk.response.seller.VenderShopQueryResponse; 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.*;
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;
import com.jd.open.api.sdk.response.user.UserGetUserInfoByOpenIdResponse;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -406,6 +394,38 @@ public class JdApiUtil { ...@@ -406,6 +394,38 @@ public class JdApiUtil {
} }
} }
/**
* 收藏商品
*/
public Result<Boolean> followGood(JdAppEnum jdAppEnum, String pin, Long productId, String accessToken) {
try {
FollowProductComplexWriteFollowRequest request = new FollowProductComplexWriteFollowRequest();
request.setPin(pin);
request.setProductId(productId);
Result<FollowProductComplexWriteFollowResponse> result = execute(jdAppEnum, accessToken, request);
if (!result.getSuccess()) {
return ResultBuilder.fail(result.getDesc());
}
FollowProductComplexWriteFollowResponse response = result.getData();
return Optional.ofNullable(response)
.map(FollowProductComplexWriteFollowResponse::getFollowResult)
.map((Function<com.jd.open.api.sdk.domain.user.FollowProductWriteRpcService.response.follow.Result,Result<Boolean>>) resultData -> {
boolean success = Objects.equals("F10000", resultData.getCode());
if (success) {
return ResultBuilder.success(Boolean.TRUE);
}
return ResultBuilder.fail(resultData.getMsg());
}).orElse(ResultBuilder.fail(JSON.toJSONString(response)));
} catch (Exception e) {
LOGGER.warn("关注商品,exception", e);
return ResultBuilder.fail("发生异常");
}
}
/** /**
* 互动积分发放积分 * 互动积分发放积分
* *
......
package cn.com.duiba.jdactivity.dto;
/**
*
*/
public class FollowGoodParam extends DuibaUserParam {
/**
* 注意这里是skuId,即京东商详页url里的Id
* https://item.jd.com/10031763714973.html
*/
private Long productId;
public Long getProductId() {
return productId;
}
public void setProductId(Long productId) {
this.productId = productId;
}
}
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