Browse Source

[微信卡券][新增]:客服消息发送给用户

release
Stormeye Wu 7 years ago
parent
commit
ca19654f7f
1 changed files with 233 additions and 3 deletions
  1. +233
    -3
      mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java

+ 233
- 3
mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java View File

@@ -7,9 +7,9 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.card.WxMpCardBatchGetResult;
import me.chanjar.weixin.mp.bean.card.WxMpCardResult;
import me.chanjar.weixin.mp.bean.card.WxMpCardUserGetCardListResult;
import me.chanjar.weixin.mp.bean.card.*;
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
import me.chanjar.weixin.mp.bean.membercard.WxMpMemberCardCreateMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -30,6 +30,236 @@ public class WxCardController extends BaseController {
@Autowired
private FmOpenService openService;

@ApiOperation("创建卡券")
@GetMapping("createCard/{appId}")
public ResultData createCard(@PathVariable String appId, String type) {
logger.debug("[" + getIpAddr() + "] WxCardController::createCard");

BaseInfo base = new BaseInfo();
base.setLogoUrl("http://mmbiz.qpic.cn/mmbiz_png/2kbqxXJ9VM94Uq1YAsZDPKcWnNIOU4lv2PJmgIf1HIicldDibj2xcXjwSeqI7ZTfUj0wOokFmurO6gA7ppzF0pug/0?wx_fmt=png");
base.setBrandName("测试优惠券");
base.setCodeType("CODE_TYPE_QRCODE");
base.setTitle("测试标题");
base.setColor("Color010");
base.setNotice("测试Notice");
base.setServicePhone("020-88888888");
base.setDescription("不可与其他优惠同享\\n如需团购券发票,请在消费时向商户提出\\n店内均可使用,仅限堂食");
DateInfo info = new DateInfo();
info.setType("DATE_TYPE_FIX_TERM");
info.setFixedBeginTerm(0);
info.setFixedTerm(30);
base.setDateInfo(info);
Sku sku = new Sku();
sku.setQuantity(100);
base.setSku(sku);
base.setGetLimit(1);
base.setCanShare(true);
base.setCanGiveFriend(true);
base.setUseAllLocations(true);
base.setCenterTitle("顶部居中按钮");
base.setCenterSubTitle("按钮下方的wording");
base.setCenterUrl("www.qq.com");
base.setCustomUrl("http://www.qq.com");
base.setCustomUrlName("立即使用");
base.setCustomUrlSubTitle("副标题tip");
base.setPromotionUrlName("更多优惠");
base.setPromotionUrl("http://www.qq.com");
base.setLocationIdList("1234");
WxMpService mpService = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId);

if(type.equalsIgnoreCase("groupon")) {
//团购券
WxMpCardCreateMessage grouponMessage = new WxMpCardCreateMessage();
GrouponCardCreateRequest grouponCardCreateRequest = new GrouponCardCreateRequest();
GrouponCard grouponCard = new GrouponCard();
grouponCard.setBaseInfo(base);
grouponCard.setDealDetail("deal detail");

grouponCardCreateRequest.setGroupon(grouponCard);
grouponMessage.setCardCreateRequest(grouponCardCreateRequest);

try {

WxMpCardCreateResult result = mpService.getCardService().createCard(grouponMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if(type.equalsIgnoreCase("cash")) {
//现金券
WxMpCardCreateMessage cashMessage = new WxMpCardCreateMessage();
CashCardCreateRequest cashCardCreateRequest = new CashCardCreateRequest();
CashCard cashCard = new CashCard();
cashCard.setBaseInfo(base);
cashCard.setLeastCost(1000);
cashCard.setReduceCost(100);

cashCardCreateRequest.setCash(cashCard);
cashMessage.setCardCreateRequest(cashCardCreateRequest);
try {
WxMpCardCreateResult result = mpService.getCardService().createCard(cashMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if(type.equalsIgnoreCase("discount")) {
//折扣券
WxMpCardCreateMessage discountMessage = new WxMpCardCreateMessage();
DiscountCardCreateRequest discountCardCreateRequest = new DiscountCardCreateRequest();
DiscountCard discountCard = new DiscountCard();
discountCard.setBaseInfo(base);
discountCard.setDiscount(30);

discountCardCreateRequest.setDiscount(discountCard);
discountMessage.setCardCreateRequest(discountCardCreateRequest);

try {
WxMpCardCreateResult result = mpService.getCardService().createCard(discountMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if(type.equalsIgnoreCase("gift")) {
//兑换券
WxMpCardCreateMessage giftMessage = new WxMpCardCreateMessage();
GiftCardCreateRequest giftCardCreateRequest = new GiftCardCreateRequest();
GiftCard giftCard = new GiftCard();
giftCard.setBaseInfo(base);
giftCard.setGift("星巴克雪瑞纳咖啡大杯");

giftCardCreateRequest.setGift(giftCard);
giftMessage.setCardCreateRequest(giftCardCreateRequest);
try {
WxMpCardCreateResult result = mpService.getCardService().createCard(giftMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if(type.equalsIgnoreCase("generalcard")) {
//普通兑换券
WxMpCardCreateMessage generalMessage = new WxMpCardCreateMessage();
GeneralCardCreateRequest generalCardCreateRequest = new GeneralCardCreateRequest();
GeneralCard generalCard = new GeneralCard();
generalCard.setBaseInfo(base);
generalCard.setDefaultDetail("音乐木盒");

generalCardCreateRequest.setGeneralCoupon(generalCard);
generalMessage.setCardCreateRequest(generalCardCreateRequest);
try {
WxMpCardCreateResult result = mpService.getCardService().createCard(generalMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if(type.equalsIgnoreCase("membercard")) {
//基本卡券创建
WxMpMemberCardCreateMessage createMessage = new WxMpMemberCardCreateMessage();
MemberCardCreateRequest cardCreateRequest = new MemberCardCreateRequest();
MemberCard memberCard = new MemberCard();
memberCard.setPrerogative("特权说明");
//激活方式
memberCard.setAutoActivate(true);//自动激活
// memberCard.setActivateUrl("http://www.qq.com");
// memberCard.setWxActivate(false);//微信激活
memberCard.setSupplyBonus(true);
memberCard.setSupplyBalance(false);
memberCard.setBackgroundPicUrl(null);
memberCard.setDiscount(0);

BaseInfo baseInfo = new BaseInfo();
baseInfo.setLogoUrl("http://mmbiz.qpic.cn/mmbiz_png/2kbqxXJ9VM94Uq1YAsZDPKcWnNIOU4lv2PJmgIf1HIicldDibj2xcXjwSeqI7ZTfUj0wOokFmurO6gA7ppzF0pug/0?wx_fmt=png");
baseInfo.setCodeType("CODE_TYPE_QRCODE");
baseInfo.setBrandName("金泸科技");
baseInfo.setTitle("铂金用户贵宾卡");
baseInfo.setColor("Color010");
baseInfo.setNotice("卡券使用提醒");
baseInfo.setDescription("卡券使用说明");
baseInfo.setServicePhone("4008803016");
//商品信息
Sku sku1 = new Sku();
baseInfo.setSku(sku1);
//使用日期
DateInfo dateInfo = new DateInfo();
baseInfo.setDateInfo(dateInfo);

memberCard.setBaseInfo(baseInfo);
memberCard.setBonusRules("请参考积分规则");

cardCreateRequest.setMemberCard(memberCard);
createMessage.setCardCreateRequest(cardCreateRequest);

try {
WxMpCardCreateResult result = mpService.getMemberCardService().createMemberCard(createMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if(type.equalsIgnoreCase("giftcard")) {
//基本卡券创建
WxMpMemberCardCreateMessage createMessage = new WxMpMemberCardCreateMessage();
MemberCardCreateRequest cardCreateRequest = new MemberCardCreateRequest();
MemberCard memberCard = new MemberCard();
memberCard.setPrerogative("特权说明");
//激活方式
memberCard.setAutoActivate(true);//自动激活
// memberCard.setActivateUrl("http://www.qq.com");
// memberCard.setWxActivate(false);//微信激活
memberCard.setSupplyBonus(true);
memberCard.setSupplyBalance(false);
memberCard.setBackgroundPicUrl(null);
memberCard.setDiscount(0);

BaseInfo baseInfo = new BaseInfo();
baseInfo.setLogoUrl("http://mmbiz.qpic.cn/mmbiz_png/2kbqxXJ9VM94Uq1YAsZDPKcWnNIOU4lv2PJmgIf1HIicldDibj2xcXjwSeqI7ZTfUj0wOokFmurO6gA7ppzF0pug/0?wx_fmt=png");
baseInfo.setCodeType("CODE_TYPE_QRCODE");
baseInfo.setBrandName("金泸科技");
baseInfo.setTitle("铂金用户贵宾卡");
baseInfo.setColor("Color010");
baseInfo.setNotice("卡券使用提醒");
baseInfo.setDescription("卡券使用说明");
baseInfo.setServicePhone("4008803016");
//商品信息
Sku sku1 = new Sku();
baseInfo.setSku(sku1);
//使用日期
DateInfo dateInfo = new DateInfo();
baseInfo.setDateInfo(dateInfo);

memberCard.setBaseInfo(baseInfo);
memberCard.setBonusRules("请参考积分规则");

cardCreateRequest.setMemberCard(memberCard);
createMessage.setCardCreateRequest(cardCreateRequest);

try {
WxMpCardCreateResult result = mpService.getMemberCardService().createMemberCard(createMessage);
logger.info(result.toString());
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
}
return new ResultData();
}

@ApiOperation("发送客服消息-用户卡券")
@GetMapping("sendCard/{appId}")
public ResultData sendCard(@PathVariable String appId, String openId, String cardId) {
logger.debug("[" + getIpAddr() + "] WxCardController::sendCard");
WxMpKefuMessage kfMessage = new WxMpKefuMessage();
kfMessage.setToUser(openId);
kfMessage.setMsgType("wxcard");
kfMessage.setCardId(cardId);

try {
WxMpService mpService = openService.getWxOpenComponentService().getWxMpServiceByAppid(appId);
boolean result = mpService.getKefuService().sendKefuMessage(kfMessage);
logger.info("{}", result);
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
return new ResultData();
}

@ApiOperation("获取用户卡券")
@GetMapping("getCardList/{appId}")
public ResultData getCardList(@PathVariable String appId, String openId) {


Loading…
Cancel
Save