From 2d424040afceab5308844256d1fce4431f4ba71c Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Thu, 10 Jan 2019 19:39:30 +0800 Subject: [PATCH] =?UTF-8?q?#894=20=E5=AE=8C=E5=96=84=E5=8D=A1=E5=88=B8?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2Code=E6=8E=A5=E5=8F=A3=E7=BC=BA=E5=B0=91?= =?UTF-8?q?=E7=9A=84=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/api/WxMpCardService.java | 6 +++--- .../mp/api/impl/WxMpCardServiceImpl.java | 16 ++++++--------- .../weixin/mp/bean/card/GrouponCard.java | 6 ++++-- .../weixin/mp/bean/{ => card}/WxMpCard.java | 8 ++++++-- .../bean/{result => card}/WxMpCardResult.java | 9 +++++++-- .../mp/util/json/WxMpCardGsonAdapter.java | 17 ++++++++++++---- .../util/json/WxMpCardResultGsonAdapter.java | 18 ++++++++++++----- .../weixin/mp/util/json/WxMpGsonBuilder.java | 2 ++ .../mp/api/impl/WxMpCardServiceImplTest.java | 20 ++++++++++++++++--- 9 files changed, 71 insertions(+), 31 deletions(-) rename weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/{ => card}/WxMpCard.java (80%) rename weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/{result => card}/WxMpCardResult.java (82%) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java index d0f06c13..c86b3d19 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpCardService.java @@ -3,7 +3,7 @@ package me.chanjar.weixin.mp.api; import me.chanjar.weixin.common.bean.WxCardApiSignature; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.bean.card.*; -import me.chanjar.weixin.mp.bean.result.WxMpCardResult; +import me.chanjar.weixin.mp.bean.card.WxMpCardResult; /** * 卡券相关接口 @@ -80,8 +80,8 @@ public interface WxMpCardService { String decryptCardCode(String encryptCode) throws WxErrorException; /** - * 卡券Code查询 - * + * 卡券Code查询. + * 文档地址: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1451025272&anchor=1 * @param cardId 卡券ID代表一类卡券 * @param code 单张卡券的唯一标准 * @param checkConsume 是否校验code核销状态,填入true和false时的code异常状态返回数据不同 diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java index 5237fd6d..6717eb91 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImpl.java @@ -3,7 +3,6 @@ package me.chanjar.weixin.mp.api.impl; import java.util.Arrays; import java.util.concurrent.locks.Lock; -import me.chanjar.weixin.mp.bean.card.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -23,7 +22,12 @@ import me.chanjar.weixin.common.util.crypto.SHA1; import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; import me.chanjar.weixin.mp.api.WxMpCardService; import me.chanjar.weixin.mp.api.WxMpService; -import me.chanjar.weixin.mp.bean.result.WxMpCardResult; +import me.chanjar.weixin.mp.bean.card.WxMpCardCreateMessage; +import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult; +import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateRequest; +import me.chanjar.weixin.mp.bean.card.WxMpCardLandingPageCreateResult; +import me.chanjar.weixin.mp.bean.card.WxMpCardQrcodeCreateResult; +import me.chanjar.weixin.mp.bean.card.WxMpCardResult; import me.chanjar.weixin.mp.enums.TicketType; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; @@ -148,14 +152,6 @@ public class WxMpCardServiceImpl implements WxMpCardService { return jsonPrimitive.getAsString(); } - /** - * 卡券Code查询. - * - * @param cardId 卡券ID代表一类卡券 - * @param code 单张卡券的唯一标准 - * @param checkConsume 是否校验code核销状态,填入true和false时的code异常状态返回数据不同 - * @return WxMpCardResult对象 - */ @Override public WxMpCardResult queryCardCode(String cardId, String code, boolean checkConsume) throws WxErrorException { JsonObject param = new JsonObject(); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/GrouponCard.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/GrouponCard.java index b0df7262..ba343a43 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/GrouponCard.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/GrouponCard.java @@ -1,17 +1,19 @@ package me.chanjar.weixin.mp.bean.card; +import java.io.Serializable; + import com.google.gson.annotations.SerializedName; import lombok.Data; +import lombok.EqualsAndHashCode; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; -import java.io.Serializable; - /** * . * @author leeis * @Date 2018/12/29 */ @Data +@EqualsAndHashCode(callSuper = false) public final class GrouponCard extends Card implements Serializable { private static final long serialVersionUID = 3221312561666697005L; diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCard.java similarity index 80% rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCard.java index 71e419a7..17314c90 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpCard.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCard.java @@ -1,4 +1,4 @@ -package me.chanjar.weixin.mp.bean; +package me.chanjar.weixin.mp.bean.card; import java.io.Serializable; @@ -24,7 +24,11 @@ public class WxMpCard implements Serializable { private String userCardStatus; - private Boolean canConsume; + private String membershipNumber; + + private String code; + + private Integer bonus; @Override public String toString() { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardResult.java similarity index 82% rename from weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java rename to weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardResult.java index c6acc080..9343cb40 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/result/WxMpCardResult.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/card/WxMpCardResult.java @@ -1,9 +1,8 @@ -package me.chanjar.weixin.mp.bean.result; +package me.chanjar.weixin.mp.bean.card; import java.io.Serializable; import lombok.Data; -import me.chanjar.weixin.mp.bean.WxMpCard; import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; /** @@ -28,6 +27,12 @@ public class WxMpCardResult implements Serializable { private Boolean canConsume; + private String outStr; + + private String backgroundPicUrl; + + private String unionid; + @Override public String toString() { return WxMpGsonBuilder.create().toJson(this); diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java index 022a59f1..872bf8c7 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardGsonAdapter.java @@ -1,11 +1,15 @@ package me.chanjar.weixin.mp.util.json; -import com.google.gson.*; -import me.chanjar.weixin.common.util.json.GsonHelper; -import me.chanjar.weixin.mp.bean.WxMpCard; - import java.lang.reflect.Type; +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; +import me.chanjar.weixin.common.util.json.GsonHelper; +import me.chanjar.weixin.mp.bean.card.WxMpCard; + /** * Created by YuJian on 15/11/11. * @@ -18,11 +22,16 @@ public class WxMpCardGsonAdapter implements JsonDeserializer { public WxMpCard deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { WxMpCard card = new WxMpCard(); + JsonObject jsonObject = jsonElement.getAsJsonObject(); card.setCardId(GsonHelper.getString(jsonObject, "card_id")); card.setBeginTime(GsonHelper.getLong(jsonObject, "begin_time")); card.setEndTime(GsonHelper.getLong(jsonObject, "end_time")); + card.setUserCardStatus(GsonHelper.getString(jsonObject, "user_card_status")); + card.setMembershipNumber(GsonHelper.getString(jsonObject, "membership_number")); + card.setCode(GsonHelper.getString(jsonObject, "code")); + card.setBonus(GsonHelper.getInteger(jsonObject, "bonus")); return card; } diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java index 7e476acb..defe8822 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpCardResultGsonAdapter.java @@ -1,12 +1,16 @@ package me.chanjar.weixin.mp.util.json; -import com.google.gson.*; +import java.lang.reflect.Type; + +import com.google.gson.JsonDeserializationContext; +import com.google.gson.JsonDeserializer; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParseException; import com.google.gson.reflect.TypeToken; import me.chanjar.weixin.common.util.json.GsonHelper; -import me.chanjar.weixin.mp.bean.WxMpCard; -import me.chanjar.weixin.mp.bean.result.WxMpCardResult; - -import java.lang.reflect.Type; +import me.chanjar.weixin.mp.bean.card.WxMpCard; +import me.chanjar.weixin.mp.bean.card.WxMpCardResult; /** * Created by YuJian on 15/11/11. @@ -18,6 +22,7 @@ public class WxMpCardResultGsonAdapter implements JsonDeserializer() { diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java index a4357e91..e6a60c34 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpGsonBuilder.java @@ -3,6 +3,8 @@ package me.chanjar.weixin.mp.util.json; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import me.chanjar.weixin.mp.bean.*; +import me.chanjar.weixin.mp.bean.card.WxMpCard; +import me.chanjar.weixin.mp.bean.card.WxMpCardResult; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserCumulate; import me.chanjar.weixin.mp.bean.datacube.WxDataCubeUserSummary; import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage; diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java index 56232993..336d11b7 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/api/impl/WxMpCardServiceImplTest.java @@ -1,13 +1,27 @@ package me.chanjar.weixin.mp.api.impl; +import org.testng.annotations.*; + import com.google.inject.Inject; import me.chanjar.weixin.common.bean.WxCardApiSignature; import me.chanjar.weixin.common.error.WxErrorException; import me.chanjar.weixin.mp.api.WxMpService; import me.chanjar.weixin.mp.api.test.ApiTestModule; -import me.chanjar.weixin.mp.bean.card.*; -import me.chanjar.weixin.mp.bean.result.WxMpCardResult; -import org.testng.annotations.*; +import me.chanjar.weixin.mp.bean.card.BaseInfo; +import me.chanjar.weixin.mp.bean.card.CashCard; +import me.chanjar.weixin.mp.bean.card.CashCardCreateRequest; +import me.chanjar.weixin.mp.bean.card.DateInfo; +import me.chanjar.weixin.mp.bean.card.DiscountCard; +import me.chanjar.weixin.mp.bean.card.DiscountCardCreateRequest; +import me.chanjar.weixin.mp.bean.card.GeneralCard; +import me.chanjar.weixin.mp.bean.card.GeneralCardCreateRequest; +import me.chanjar.weixin.mp.bean.card.GiftCard; +import me.chanjar.weixin.mp.bean.card.GiftCardCreateRequest; +import me.chanjar.weixin.mp.bean.card.GrouponCard; +import me.chanjar.weixin.mp.bean.card.GrouponCardCreateRequest; +import me.chanjar.weixin.mp.bean.card.Sku; +import me.chanjar.weixin.mp.bean.card.WxMpCardCreateMessage; +import me.chanjar.weixin.mp.bean.card.WxMpCardResult; import static org.testng.AssertJUnit.*;