package com.kmall.admin.haikong; import com.kmall.admin.config.haikong.HaiKongProperties; import com.kmall.admin.utils.haikong.OkHttpUtils; import com.kmall.common.constant.HaiKongMemberSystemUrlEnum; import okhttp3.MediaType; import okhttp3.Request; import okhttp3.RequestBody; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * * @author lhm * @createDate 2021-10-27 */ @Component public class HaiKongMemberTemplate { @Autowired private HaiKongProperties haiKongProperties; private RequestBody requestBody(String body) { return RequestBody.create(MediaType.parse(org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE), body); } /** * 拼接通用查询参数 * @param url 接口地址 * @param accessToken 凭证 * @param sign 签名 * @return 拼接后的url */ private String appendQueryParam(String url, String accessToken, String sign) { return url + "?" + "access_token=" + accessToken + "&" + "sign=" + sign + "&" + "timestamp=" + String.valueOf(System.currentTimeMillis()); } /** * 获取accessToken * @return accessToken */ public String getAccessToken() { String url = HaiKongMemberSystemUrlEnum.QUERY_ACCESS_TOKEN.getUrl(); Request request = new Request.Builder() .url(haiKongProperties.getMemberUrl() + url) .build(); return OkHttpUtils.retry(request, haiKongProperties.getRetry()); } /** * 刷新accessToken * @return accessToken */ public String refreshAccessToken() { String url = HaiKongMemberSystemUrlEnum.REFRESH_ACCESS_TOKEN.getUrl(); Request request = new Request.Builder() .url(haiKongProperties.getMemberUrl() + url) .build(); return OkHttpUtils.retry(request, haiKongProperties.getRetry()); } /** * 根据手机号获取会员信息 * 可根据会员码或手机号或会员的open_id来获取会员信息 * @param body 请求体 * @return 会员信息 */ public String getMemberInfoByPhone(String body) { Request request = new Request.Builder() .post(requestBody(body)) .url(haiKongProperties.getMemberUrl() + appendQueryParam(HaiKongMemberSystemUrlEnum.QUERY_MEMBER_INFO_BY_PHONE.getUrl(), "", "")) .build(); return OkHttpUtils.retry(request, haiKongProperties.getRetry()); } /** * 根据手机号获取会员信息 * 可根据会员码或手机号或会员的open_id来获取会员信息 * @param body 请求体 * @return 会员信息 */ public String getMemberInfoByCode(String body) { Request request = new Request.Builder() .post(requestBody(body)) .url(haiKongProperties.getMemberUrl() + appendQueryParam(HaiKongMemberSystemUrlEnum.QUERY_MEMBER_INFO_BY_CODE.getUrl(), "", "")) .build(); return OkHttpUtils.retry(request, haiKongProperties.getRetry()); } /** * 获取会员优惠券详细信息 * 待定 * @param body 请求体 * @return 优惠券信息 */ public String getMemberCouponInfo(String body) { Request request = new Request.Builder() .get() .url(haiKongProperties.getMemberUrl() + appendQueryParam(HaiKongMemberSystemUrlEnum.QUERY_MEMBER_COUPON.getUrl(), "", "")) .build(); return OkHttpUtils.retry(request, haiKongProperties.getRetry()); } /** * 积分变动接口 * @param body 请求体 * @return 响应数据 */ public String changeMemberScore(String body) { Request request = new Request.Builder() .post(requestBody(body)) .url(haiKongProperties.getMemberUrl() + appendQueryParam(HaiKongMemberSystemUrlEnum.CHANGE_MEMBER_SCORE.getUrl(), "", "")) .build(); return OkHttpUtils.retry(request, haiKongProperties.getRetry()); } }