提交会员卡相关接口。

This commit is contained in:
fengyapeng
2016-12-22 09:44:10 +08:00
parent 24c5076f0b
commit bdf63e3fc4
12 changed files with 1013 additions and 4 deletions
@@ -35,6 +35,9 @@ public final class CardCoupons {
return new CouponAdvanceInfo.Builder();
}
public static MemberCard.Builder customMemberCard(){
return new MemberCard.Builder();
}
/**
* 创建代金券
*
@@ -0,0 +1,171 @@
package com.foxinmy.weixin4j.model.card;
import com.alibaba.fastjson.annotation.JSONField;
import java.util.Date;
/**
* 会员初始化的信息
*
* @auther: Feng Yapeng
* @since: 2016/12/20 15:00
*/
public class MemberInitInfo {
/**
* 会员卡编号,由开发者填入,作为序列号显示在用户的卡包里。可与Code码保持等值。
*/
@JSONField(name = "membership_number")
private String membershipNumber;
/**
* 领取会员卡用户获得的code
*/
private String code;
/**
* 卡券ID【自定义code卡券必填】
*/
@JSONField(name = "card_id")
private String cardId;
/**
* 商家自定义会员卡背景图,须 先调用上传图片接口将背景图上传至CDN,否则报错,
* 卡面设计请遵循微信会员卡自定义背景设计规范
*/
@JSONField(name = "background_pic_url")
private String backgroundPicUrl;
/**
* 激活后的有效起始时间。若不填写默认以创建时的 date_info 为准。Unix时间戳格式
*/
@JSONField(name = "activate_begin_time")
private long activateBeginTime;
/**
* 激活后的有效截至时间。
*/
@JSONField(name = "activate_end_time")
private long activateEndTime;
/**
* 初始积分,不填为0。
*/
@JSONField(name = "init_bonus")
private Integer initBonus;
/**
* 积分同步说明。
*/
@JSONField(name = "init_bonus_record")
private String initBonusRecord;
/**
* 初始余额,不填为0。
*/
@JSONField(name = "init_balance")
private Integer initBalance;
/**
* 创建时字段custom_field1定义类型的初始值,限制为4个汉字,12字节。
*/
private String init_custom_field_value1;
/**
* 创建时字段custom_field2定义类型的初始值,限制为4个汉字,12字节。
*/
private String init_custom_field_value2;
/**
* 创建时字段custom_field3定义类型的初始值,限制为4个汉字,12字节。
*/
private String init_custom_field_value3;
public String getMembershipNumber() {
return membershipNumber;
}
public void setMembershipNumber(String membershipNumber) {
this.membershipNumber = membershipNumber;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getBackgroundPicUrl() {
return backgroundPicUrl;
}
public void setBackgroundPicUrl(String backgroundPicUrl) {
this.backgroundPicUrl = backgroundPicUrl;
}
public long getActivateBeginTime() {
return activateBeginTime;
}
public void setActivateBeginTime(Date activateBeginTime) {
this.activateBeginTime = activateBeginTime.getTime() / 1000;
}
public long getActivateEndTime() {
return activateEndTime;
}
public void setActivateEndTime(Date activateEndTime) {
this.activateEndTime = activateEndTime.getTime() / 1000;
}
public Integer getInitBonus() {
return initBonus;
}
public void setInitBonus(Integer initBonus) {
this.initBonus = initBonus;
}
public String getInitBonusRecord() {
return initBonusRecord;
}
public void setInitBonusRecord(String initBonusRecord) {
this.initBonusRecord = initBonusRecord;
}
public Integer getInitBalance() {
return initBalance;
}
public void setInitBalance(Integer initBalance) {
this.initBalance = initBalance;
}
public String getInit_custom_field_value1() {
return init_custom_field_value1;
}
public void setInit_custom_field_value1(String init_custom_field_value1) {
this.init_custom_field_value1 = init_custom_field_value1;
}
public String getInit_custom_field_value2() {
return init_custom_field_value2;
}
public void setInit_custom_field_value2(String init_custom_field_value2) {
this.init_custom_field_value2 = init_custom_field_value2;
}
public String getInit_custom_field_value3() {
return init_custom_field_value3;
}
public void setInit_custom_field_value3(String init_custom_field_value3) {
this.init_custom_field_value3 = init_custom_field_value3;
}
}
@@ -0,0 +1,210 @@
package com.foxinmy.weixin4j.model.card;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
/**
* 会员更新的信息
*
* @auther: Feng Yapeng
* @since: 2016/12/20 15:01
*/
public class MemberUpdateInfo {
/**
* 卡券Code码。
*/
private String code;
/**
* 卡券ID。
*/
@JSONField(name = "card_id")
private String cardId;
/**
* 支持商家激活时针对单个会员卡分配自定义的会员卡背景。
*/
@JSONField(name = "background_pic_url")
private String backgroundPicUrl;
/**
* 需要设置的积分全量值,传入的数值会直接显示
*/
private Integer bonus;
/**
* 本次积分变动值,传负数代表减少
*/
@JSONField(name = "add_bonus")
private Integer addBonus;
/**
* 商家自定义积分消耗记录,不超过14个汉字
*/
@JSONField(name = "record_bonus")
private String recordBonus;
/*
* 需要设置的余额全量值,传入的数值会直接显示在卡面
*/
private Integer balance;
/**
* 本次余额变动值,传负数代表减少
*/
@JSONField(name = "add_balance")
private Integer addBalance;
/**
* 商家自定义金额消耗记录,不超过14个汉字。
*/
@JSONField(name = "record_balance")
private String recordBalance;
/**
* 创建时字段custom_field1定义类型的最新数值,限制为4个汉字,12字节。
*/
@JSONField(name = "custom_field_value1")
private String customFieldValue1;
/**
* 同上
*/
@JSONField(name = "custom_field_value2")
private String customFieldValue2;
/**
* 同上
*/
@JSONField(name = "custom_field_value3")
private String customFieldValue3;
/**
*
*/
@JSONField(name = "notifyOptional")
private JSONObject notifyOptional;
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public String getBackgroundPicUrl() {
return backgroundPicUrl;
}
public void setBackgroundPicUrl(String backgroundPicUrl) {
this.backgroundPicUrl = backgroundPicUrl;
}
public Integer getBonus() {
return bonus;
}
public void setBonus(Integer bonus) {
this.bonus = bonus;
}
public Integer getAddBonus() {
return addBonus;
}
public void setAddBonus(Integer addBonus) {
this.addBonus = addBonus;
}
public String getRecordBonus() {
return recordBonus;
}
public void setRecordBonus(String recordBonus) {
this.recordBonus = recordBonus;
}
public Integer getBalance() {
return balance;
}
public void setBalance(Integer balance) {
this.balance = balance;
}
public Integer getAddBalance() {
return addBalance;
}
public void setAddBalance(Integer addBalance) {
this.addBalance = addBalance;
}
public String getRecordBalance() {
return recordBalance;
}
public void setRecordBalance(String recordBalance) {
this.recordBalance = recordBalance;
}
public String getCustomFieldValue1() {
return customFieldValue1;
}
public void setCustomFieldValue1(String customFieldValue1) {
this.customFieldValue1 = customFieldValue1;
}
public void setCustomFieldValue1(String customFieldValue1, boolean notify) {
this.customFieldValue1 = customFieldValue1;
if (notifyOptional == null) {
notifyOptional = new JSONObject();
}
notifyOptional.put("is_notify_custom_field1", notify);
}
public String getCustomFieldValue2() {
return customFieldValue2;
}
public void setCustomFieldValue2(String customFieldValue2) {
this.customFieldValue2 = customFieldValue2;
}
public void setCustomFieldValue2(String customFieldValue2, boolean notify) {
this.customFieldValue2 = customFieldValue2;
if (notifyOptional == null) {
notifyOptional = new JSONObject();
}
notifyOptional.put("is_notify_custom_field2", notify);
}
public String getCustomFieldValue3() {
return customFieldValue3;
}
public void setCustomFieldValue3(String customFieldValue3) {
this.customFieldValue3 = customFieldValue3;
}
public void setCustomFieldValue3(String customFieldValue3, boolean notify) {
this.customFieldValue3 = customFieldValue3;
if (notifyOptional == null) {
notifyOptional = new JSONObject();
}
notifyOptional.put("is_notify_custom_field3", notify);
}
public void setNOtify(boolean notifyBonus, boolean notifyBalance) {
if (notifyOptional == null) {
notifyOptional = new JSONObject();
}
notifyOptional.put("is_notify_bonus", notifyBonus);
notifyOptional.put("is_notify_balance", notifyBalance);
}
}
@@ -0,0 +1,159 @@
package com.foxinmy.weixin4j.model.card;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.annotation.JSONField;
import com.foxinmy.weixin4j.type.card.ActivateCommonField;
import com.foxinmy.weixin4j.type.card.ActivateFormFieldType;
import java.util.HashSet;
/**
* 普通一键激活 中设置会员卡
*
* @auther: Feng Yapeng
* @since: 2016/12/20 16:25
*/
public class MemberUserForm {
/**
* 卡券ID。
*/
@JSONField(name = "card_id")
private String cardId;
/**
* 服务声明,用于放置商户会员卡守则
*/
@JSONField(name = "service_statement")
private JSONObject serviceStatement;
/**
* 绑定老会员链接
*/
@JSONField(name = "bind_old_card")
private JSONObject bindOldCard;
/**
*设置必填的from
*/
@JSONField(name = "required_form")
private FormBudiler requiredForm;
/**
* 设置选填的form
*/
@JSONField(name = "optional_form")
private FormBudiler optionalForm;
public String getCardId() {
return cardId;
}
public void setCardId(String cardId) {
this.cardId = cardId;
}
public JSONObject getServiceStatement() {
return serviceStatement;
}
public void setServiceStatement(String name,String url) {
JSONObject serviceStatement = new JSONObject();
serviceStatement.put("name",name);
serviceStatement.put("url",url);
this.serviceStatement = serviceStatement;
}
public JSONObject getBindOldCard() {
return bindOldCard;
}
public void setBindOldCard(String name,String url) {
JSONObject bindOldCard = new JSONObject();
bindOldCard.put("name",name);
bindOldCard.put("url",url);
this.bindOldCard = bindOldCard;
}
public void setRequiredForm(FormBudiler formBudiler) {
this.requiredForm = formBudiler;
}
public void setOptionalForm(FormBudiler formBudiler) {
this.optionalForm = formBudiler;
}
public final static class FormBudiler {
/**
* 当前结构(required_form或者optional_form )内
* 的字段是否允许用户激活后再次修改,商户设置为true
* 时,需要接收相应事件通知处理修改事件
*/
private boolean canModify;
/**
* 自定义富文本类型,包含以下三个字段
*/
@JSONField(name = "rich_field_list")
private JSONArray richFieldList;
/**
* 微信格式化的选项类型
*/
@JSONField(name = "common_field_id_list")
private HashSet<ActivateCommonField> commonFieldIdList;
/**
* 自定义选项名称。
*/
@JSONField(name = "custom_field_list")
private HashSet<String> customFieldList;
/**
* 自定义富文本类型
*/
private FormBudiler addRichField(ActivateFormFieldType fieldType, String name, String... values) {
if (richFieldList == null) {
richFieldList = new JSONArray();
}
JSONObject obj = new JSONObject();
obj.put("type", fieldType);
obj.put("name", name);
obj.put("values", values);
richFieldList.add(obj);
return this;
}
/**
* 自定义公共字段
*/
public FormBudiler addCommonField(ActivateCommonField... fields) {
if (commonFieldIdList == null) {
commonFieldIdList = new HashSet<ActivateCommonField>();
}
for (ActivateCommonField field : fields) {
commonFieldIdList.add(field);
}
return this;
}
/**
* 增加自定义的内容
* @param names
*/
public FormBudiler addCustomField(String... names) {
if (customFieldList == null) {
customFieldList = new HashSet<String>();
}
for (String name : names) {
customFieldList.add(name);
}
return this;
}
}
}
@@ -0,0 +1,165 @@
package com.foxinmy.weixin4j.model.card;
import com.alibaba.fastjson.annotation.JSONField;
import com.alibaba.fastjson.annotation.JSONType;
import com.foxinmy.weixin4j.type.Gender;
import com.foxinmy.weixin4j.type.card.UserCardStatus;
import com.foxinmy.weixin4j.util.NameValue;
import com.foxinmy.weixin4j.xml.ListsuffixResult;
import java.util.ArrayList;
import java.util.Map;
/**
* 会员卡的基本信息
*
* @auther: Feng Yapeng
* @since: 2016/12/21 11:33
*/
public class MemberUserInfo {
/**
* openId
*/
@JSONField(name = "openid")
private String openId;
/**
* 昵称
*/
@JSONField(name = "nickname")
private String nickName;
/**
* 会员卡编号
*/
@JSONField(name = "mmebership_number")
private String membershipNumber;
/**
* 积分
*/
private Integer bonus;
/**
* 余额
*/
private Integer balance;
/**
* 性别
*/
private String sex;
/**
* 用户会员卡状态
*/
@JSONField(name = "user_card_status")
private UserCardStatus userCardStatus;
/**
* 是否已经被激活,true表示已经被激活,false表示未被激活
*/
@JSONField(name = "has_active")
private boolean hasActive;
/**
* 用户信息
*/
@JSONField(name = "user_info")
private UserInfo userInfo;
public String getOpenId() {
return openId;
}
public void setOpenId(String openId) {
this.openId = openId;
}
public String getNickName() {
return nickName;
}
public void setNickName(String nickName) {
this.nickName = nickName;
}
public String getMembershipNumber() {
return membershipNumber;
}
public void setMembershipNumber(String membershipNumber) {
this.membershipNumber = membershipNumber;
}
public Integer getBonus() {
return bonus;
}
public void setBonus(Integer bonus) {
this.bonus = bonus;
}
public Integer getBalance() {
return balance;
}
public void setBalance(Integer balance) {
this.balance = balance;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public UserCardStatus getUserCardStatus() {
return userCardStatus;
}
public void setUserCardStatus(UserCardStatus userCardStatus) {
this.userCardStatus = userCardStatus;
}
public boolean isHasActive() {
return hasActive;
}
public void setHasActive(boolean hasActive) {
this.hasActive = hasActive;
}
public UserInfo getUserInfo() {
return userInfo;
}
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public static final class UserInfo {
@JSONField(name = "common_field_list")
private ArrayList<NameValue> commonFieldValues;
@JSONField(name = "custom_field_list")
private ArrayList<NameValue> customFieldValues;
public ArrayList<NameValue> getCommonFieldValues() {
return commonFieldValues;
}
public void setCommonFieldValues(ArrayList<NameValue> commonFieldValues) {
this.commonFieldValues = commonFieldValues;
}
public ArrayList<NameValue> getCustomFieldValues() {
return customFieldValues;
}
public void setCustomFieldValues(ArrayList<NameValue> customFieldValues) {
this.customFieldValues = customFieldValues;
}
}
}
@@ -0,0 +1,66 @@
package com.foxinmy.weixin4j.type.card;
/**
* 会员卡激活设置公共字段类型
*
* @auther: Feng Yapeng
* @since: 2016/12/20 14:49
*/
public enum ActivateCommonField {
/**
* 手机号
*/
USER_FORM_INFO_FLAG_MOBILE,
/**
* 性别
*/
USER_FORM_INFO_FLAG_SEX,
/**
* 姓名
*/
USER_FORM_INFO_FLAG_NAME,
/**
* 生日
*/
USER_FORM_INFO_FLAG_BIRTHDAY,
/**
* 身份证
*/
USER_FORM_INFO_FLAG_IDCARD,
/**
* 邮箱
*/
USER_FORM_INFO_FLAG_EMAIL,
/**
* 详细地址
*/
USER_FORM_INFO_FLAG_LOCATION,
/**
* 教育背景
*/
USER_FORM_INFO_FLAG_EDUCATION_BACKGRO,
/**
* 行业
*/
USER_FORM_INFO_FLAG_INDUSTRY,
/**
* 收入
*/
USER_FORM_INFO_FLAG_INCOME,
/**
* 兴趣爱好
*/
USER_FORM_INFO_FLAG_HABIT;
}
@@ -0,0 +1,16 @@
package com.foxinmy.weixin4j.type.card;
/**
* 激活form表单字段类型
*
* @auther: Feng Yapeng
* @since: 2016/12/20 15:34
*/
public enum ActivateFormFieldType {
FORM_FIELD_RADIO,/*自定义单选 */
FORM_FIELD_SELECT,/*自定义选择项 */
FORM_FIELD_CHECK_BOX,/*自定义多选*/;
}
@@ -0,0 +1,19 @@
package com.foxinmy.weixin4j.type.card;
/**
* 用户的会员卡状态
*
* @auther: Feng Yapeng
* @since: 2016/12/21 11:42
*/
public enum UserCardStatus {
NORMAL,//正常
EXPIRE,//已过期
GIFTING,// 转赠中
GIFT_SUCC,// 转赠成功
GIFT_TIMEOUT,// 转赠超时
DELETE,//已删除
UNAVAILABLE,//已失效
;
}