From ca19654f7f2325cee1481f5e2fb4251351749467 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Thu, 6 Jun 2019 06:36:37 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=BE=AE=E4=BF=A1=E5=8D=A1=E5=88=B8][?= =?UTF-8?q?=E6=96=B0=E5=A2=9E]:=E5=AE=A2=E6=9C=8D=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=E7=BB=99=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/card/WxCardController.java | 236 +++++++++++++++++- 1 file changed, 233 insertions(+), 3 deletions(-) diff --git a/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java b/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java index 545489d..21c5a6e 100644 --- a/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java +++ b/mlWechatOpen/src/main/java/com/iformall/controller/card/WxCardController.java @@ -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) {