Browse Source

增加拼团及砍价活动通知

zyj
sj 2 years ago
parent
commit
0d93550e43
  1. 2
      yudao-server/src/main/resources/application-local.yaml
  2. 2
      zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreSeckillController.java
  3. 5
      zsw-bxg/src/main/java/co/yixiang/constant/ShopConstants.java
  4. 6
      zsw-bxg/src/main/java/co/yixiang/event/TemplateBean.java
  5. 4
      zsw-bxg/src/main/java/co/yixiang/event/TemplateListenEnum.java
  6. 26
      zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreBargainServiceImpl.java
  7. 32
      zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStorePinkServiceImpl.java
  8. 4
      zsw-bxg/src/main/java/co/yixiang/modules/mp/enums/WechatTempateEnum.java
  9. 8
      zsw-bxg/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java
  10. 65
      zsw-bxg/src/main/java/co/yixiang/modules/mp/service/WeiXinSubscribeService.java

2
yudao-server/src/main/resources/application-local.yaml

@ -244,7 +244,7 @@ dubbo:
bxg: bxg:
shop: shop:
# API_URL: http://192.168.10.113:48080/bxgApp # API_URL: http://192.168.10.113:48080/bxgApp
API_URL: https://9783-27-19-79-200.jp.ngrok.io API_URL: https://25eb-27-19-79-7.jp.ngrok.io
SITE_URL: http://192.168.10.113:48080/bxgApp SITE_URL: http://192.168.10.113:48080/bxgApp
UNI_SITE_URL: http://192.168.10.113:48080/bxgApp UNI_SITE_URL: http://192.168.10.113:48080/bxgApp
ADMIN_API_URL: http://192.168.10.113:48080/bxg ADMIN_API_URL: http://192.168.10.113:48080/bxg

2
zsw-bxg/src/main/java/co/yixiang/app/modules/activity/rest/AppStoreSeckillController.java

@ -117,7 +117,7 @@ public class AppStoreSeckillController {
yxSystemGroupDataList.forEach(i -> { yxSystemGroupDataList.forEach(i -> {
String jsonStr = i.getValue(); String jsonStr = i.getValue();
JSONObject jsonObject = JSON.parseObject(jsonStr); JSONObject jsonObject = JSON.parseObject(jsonStr);
int time = Integer.valueOf(jsonObject.get("time").toString());//时间 5 int time = Integer.valueOf(jsonObject.get("time").toString());//开启时间(几点) 5
int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3 int continued = Integer.valueOf(jsonObject.get("continued").toString());//活动持续事件 3
String rule=""; String rule="";
if (jsonObject.get("rule")!=null){ if (jsonObject.get("rule")!=null){

5
zsw-bxg/src/main/java/co/yixiang/constant/ShopConstants.java

@ -190,6 +190,11 @@ public interface ShopConstants {
String SHOP_WECHAT_NEAR_COUPON = "您领取的券即将到期,请尽快使用"; String SHOP_WECHAT_NEAR_COUPON = "您领取的券即将到期,请尽快使用";
String SHOP_WECHAT_BARGAIN_RESULT_SUCCESS = "恭喜您,本次砍价活动成功,快去最低价购买吧";
String SHOP_WECHAT_BARGAIN_RESULT_FAIL = "很遗憾,本次砍价活动失败";
String SHOP_WECHAT_COMBINATION_RESULT_SUCCESS = "恭喜您,本次拼团活动成功,商品将安排配送";
String SHOP_WECHAT_COMBINATION_RESULT_FAIL = "很遗憾,本次拼团活动失败";
String DEFAULT_UNI_H5_URL = "https://www.lotus-wallet.com"; String DEFAULT_UNI_H5_URL = "https://www.lotus-wallet.com";
String ZSW_MINI_SESSION_KET = "zsw:session_key:"; String ZSW_MINI_SESSION_KET = "zsw:session_key:";

6
zsw-bxg/src/main/java/co/yixiang/event/TemplateBean.java

@ -6,6 +6,8 @@ import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import lombok.Setter; import lombok.Setter;
import java.math.BigDecimal;
/** /**
* @ClassName TemplateBean * @ClassName TemplateBean
* @Author hupeng <610796224@qq.com> * @Author hupeng <610796224@qq.com>
@ -24,7 +26,11 @@ public class TemplateBean {
private String deliveryName; private String deliveryName;
private String deliveryId; private String deliveryId;
private String payType; private String payType;
private Long productId; //商品名字
private Boolean result;
private Long uid; private Long uid;
private BigDecimal payPrice; //拼团活动实付金额
private BigDecimal refundPrice; //拼团活动退款金额
/** /**
* 提现申请ID * 提现申请ID
*/ */

4
zsw-bxg/src/main/java/co/yixiang/event/TemplateListenEnum.java

@ -24,7 +24,9 @@ public enum TemplateListenEnum {
TYPE_8("8","用户提现通知"), TYPE_8("8","用户提现通知"),
TYPE_9("9","退款申请通知"), TYPE_9("9","退款申请通知"),
TYPE_10("10","用户获得优惠券后发送订阅通知"), TYPE_10("10","用户获得优惠券后发送订阅通知"),
TYPE_11("11","用户优惠券将过期发送推送"); TYPE_11("11","用户优惠券将过期发送推送"),
TYPE_12("12","用户发起砍价活动结果通知"),
TYPE_13("13","用户参加拼团活动结果通知");
private String value; private String value;
private String desc; private String desc;

26
zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStoreBargainServiceImpl.java

@ -8,6 +8,7 @@
*/ */
package co.yixiang.modules.activity.service.impl; package co.yixiang.modules.activity.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.NumberUtil; import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
@ -18,6 +19,9 @@ import co.yixiang.common.utils.QueryHelpPlus;
import co.yixiang.dozer.service.IGenerator; import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.OrderInfoEnum; import co.yixiang.enums.OrderInfoEnum;
import co.yixiang.enums.ShopCommonEnum; import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.event.TemplateBean;
import co.yixiang.event.TemplateEvent;
import co.yixiang.event.TemplateListenEnum;
import co.yixiang.exception.BadRequestException; import co.yixiang.exception.BadRequestException;
import co.yixiang.modules.activity.domain.YxStoreBargain; import co.yixiang.modules.activity.domain.YxStoreBargain;
import co.yixiang.modules.activity.domain.YxStoreBargainUser; import co.yixiang.modules.activity.domain.YxStoreBargainUser;
@ -32,8 +36,10 @@ import co.yixiang.modules.activity.vo.BargainCountVo;
import co.yixiang.modules.activity.vo.BargainVo; import co.yixiang.modules.activity.vo.BargainVo;
import co.yixiang.modules.activity.vo.TopCountVo; import co.yixiang.modules.activity.vo.TopCountVo;
import co.yixiang.modules.activity.vo.YxStoreBargainQueryVo; import co.yixiang.modules.activity.vo.YxStoreBargainQueryVo;
import co.yixiang.modules.hotList.domain.YxStoreHotList;
import co.yixiang.modules.order.domain.YxStoreOrder; import co.yixiang.modules.order.domain.YxStoreOrder;
import co.yixiang.modules.order.service.YxStoreOrderService; import co.yixiang.modules.order.service.YxStoreOrderService;
import co.yixiang.modules.product.service.YxStoreProductService;
import co.yixiang.modules.product.service.mapper.StoreProductMapper; import co.yixiang.modules.product.service.mapper.StoreProductMapper;
import co.yixiang.modules.shop.service.YxSystemConfigService; import co.yixiang.modules.shop.service.YxSystemConfigService;
import co.yixiang.modules.template.domain.YxShippingTemplates; import co.yixiang.modules.template.domain.YxShippingTemplates;
@ -46,6 +52,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
@ -71,7 +78,8 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
@Autowired @Autowired
private YxStoreBargainMapper yxStoreBargainMapper; private YxStoreBargainMapper yxStoreBargainMapper;
@Autowired
private ApplicationEventPublisher publisher;
@Autowired @Autowired
private YxStoreBargainUserService storeBargainUserService; private YxStoreBargainUserService storeBargainUserService;
@Autowired @Autowired
@ -87,6 +95,8 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
@Autowired @Autowired
private YxShippingTemplatesService shippingTemplatesService; private YxShippingTemplatesService shippingTemplatesService;
@Autowired
private YxStoreProductService yxStoreProductService;
/** /**
* 退回库存销量 * 退回库存销量
* @param num 数量 * @param num 数量
@ -133,7 +143,6 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
YxStoreBargainUser storeBargainUser = storeBargainUserService YxStoreBargainUser storeBargainUser = storeBargainUserService
.getBargainUserInfo(bargainId,bargainUserUid); .getBargainUserInfo(bargainId,bargainUserUid);
YxStoreBargain storeBargain = this.getById(bargainId); YxStoreBargain storeBargain = this.getById(bargainId);
//用户可以砍掉的金额 好友砍价之前获取可以砍价金额 //用户可以砍掉的金额 好友砍价之前获取可以砍价金额
double coverPrice = NumberUtil.sub(storeBargainUser.getBargainPrice() double coverPrice = NumberUtil.sub(storeBargainUser.getBargainPrice()
@ -148,7 +157,6 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
return; return;
} }
//生成一个区间随机数 //生成一个区间随机数
random = OrderUtil.randomNumber( random = OrderUtil.randomNumber(
storeBargain.getBargainMinPrice().doubleValue(), storeBargain.getBargainMinPrice().doubleValue(),
@ -178,7 +186,17 @@ public class YxStoreBargainServiceImpl extends BaseServiceImpl<YxStoreBargainMap
.id(storeBargainUser.getId()) .id(storeBargainUser.getId())
.price(BigDecimal.valueOf(totalPrice)) .price(BigDecimal.valueOf(totalPrice))
.build(); .build();
//如果砍价完成这里为砍价发起人进行订阅推送
if (totalPrice==coverPrice){
TemplateBean templateBean = TemplateBean.builder()
.productId(storeBargain.getProductId())
.uid(storeBargainUser.getUid())
.result(true)
.templateType(TemplateListenEnum.TYPE_12.getValue())
.time(DateUtil.formatTime(new Date()))
.build();
publisher.publishEvent(new TemplateEvent(this, templateBean));
}
storeBargainUserService.updateById(bargainUser); storeBargainUserService.updateById(bargainUser);
} }

32
zsw-bxg/src/main/java/co/yixiang/modules/activity/service/impl/YxStorePinkServiceImpl.java

@ -18,6 +18,9 @@ import co.yixiang.constant.ShopConstants;
import co.yixiang.dozer.service.IGenerator; import co.yixiang.dozer.service.IGenerator;
import co.yixiang.enums.OrderInfoEnum; import co.yixiang.enums.OrderInfoEnum;
import co.yixiang.enums.PinkEnum; import co.yixiang.enums.PinkEnum;
import co.yixiang.event.TemplateBean;
import co.yixiang.event.TemplateEvent;
import co.yixiang.event.TemplateListenEnum;
import co.yixiang.modules.activity.domain.YxStoreCombination; import co.yixiang.modules.activity.domain.YxStoreCombination;
import co.yixiang.modules.activity.domain.YxStorePink; import co.yixiang.modules.activity.domain.YxStorePink;
import co.yixiang.modules.activity.service.YxStoreCombinationService; import co.yixiang.modules.activity.service.YxStoreCombinationService;
@ -47,6 +50,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.pagehelper.PageInfo; import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -55,6 +59,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@ -72,6 +77,8 @@ import java.util.stream.Collectors;
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class) @Transactional(propagation = Propagation.SUPPORTS, readOnly = true, rollbackFor = Exception.class)
public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, YxStorePink> implements YxStorePinkService { public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, YxStorePink> implements YxStorePinkService {
@Autowired
private ApplicationEventPublisher publisher;
@Autowired @Autowired
private IGenerator generator; private IGenerator generator;
@Autowired @Autowired
@ -95,7 +102,6 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
@Autowired @Autowired
private YxStoreVisitService yxStoreVisitService; private YxStoreVisitService yxStoreVisitService;
/** /**
* 取消拼团 * 取消拼团
* @param uid 用户id * @param uid 用户id
@ -316,6 +322,7 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
storePink.setStopTime(stopTime); storePink.setStopTime(stopTime);
storePink.setUniqueId(storeCart.getProductAttrUnique()); storePink.setUniqueId(storeCart.getProductAttrUnique());
if(order.getPinkId() > 0){ //其他成员入团 if(order.getPinkId() > 0){ //其他成员入团
//如果该用户已经在团内
if(this.getIsPinkUid(order.getPinkId(),order.getUid())) { if(this.getIsPinkUid(order.getPinkId(),order.getUid())) {
return; return;
} }
@ -330,6 +337,19 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
//int count = (int)map.get("count"); //int count = (int)map.get("count");
if(pinkUserDto.getCount() == 0){//处理成功 if(pinkUserDto.getCount() == 0){//处理成功
this.pinkComplete(pinkUserDto.getUidAll(),pinkUserDto.getIdAll(),order.getUid(), pinkT); this.pinkComplete(pinkUserDto.getUidAll(),pinkUserDto.getIdAll(),order.getUid(), pinkT);
//给团内每个人发送订阅消息
for(Long uid:pinkUserDto.getUidAll()){
TemplateBean templateBean = TemplateBean.builder()
.productId(pinkT.getPid())//拼团商品名
.uid(uid) //给团内每个人发消息
.result(true)
.payPrice(pinkT.getPrice())
.refundPrice(BigDecimal.valueOf(0))
.templateType(TemplateListenEnum.TYPE_13.getValue())
.time(DateUtil.formatTime(pinkT.getCreateTime()))
.build();
publisher.publishEvent(new TemplateEvent(this, templateBean));
}
}else{ }else{
this.pinkFail(pinkUserDto.getPinkAll(),pinkT,PinkEnum.PINK_BOOL_0.getValue()); this.pinkFail(pinkUserDto.getPinkAll(),pinkT,PinkEnum.PINK_BOOL_0.getValue());
} }
@ -579,6 +599,16 @@ public class YxStorePinkServiceImpl extends BaseServiceImpl<YxStorePinkMapper, Y
for (YxStorePink storePink : pinkAll) { for (YxStorePink storePink : pinkAll) {
storeOrderService.orderApplyRefund("","","拼团时间超时",storePink.getOrderId(),storePink.getUid()); storeOrderService.orderApplyRefund("","","拼团时间超时",storePink.getOrderId(),storePink.getUid());
this.orderPinkFailAfter(pinkT.getUid(),storePink.getId()); this.orderPinkFailAfter(pinkT.getUid(),storePink.getId());
TemplateBean templateBean = TemplateBean.builder()
.productId(pinkT.getPid())//拼团商品名
.uid(pinkT.getUid()) //给团内每个人发消息
.result(false)
.payPrice(pinkT.getPrice())
.refundPrice(pinkT.getPrice())
.templateType(TemplateListenEnum.TYPE_13.getValue())
.time(DateUtil.formatTime(pinkT.getCreateTime()))
.build();
publisher.publishEvent(new TemplateEvent(this, templateBean));
} }
} }

4
zsw-bxg/src/main/java/co/yixiang/modules/mp/enums/WechatTempateEnum.java

@ -23,7 +23,9 @@ public enum WechatTempateEnum {
REFUND_SUCCESS("refund_success","退款成功通知"), REFUND_SUCCESS("refund_success","退款成功通知"),
RECHARGE_SUCCESS("recharge_success","充值成功通知"), RECHARGE_SUCCESS("recharge_success","充值成功通知"),
COUPON_GET("coupon_get","获得优惠券通知"), COUPON_GET("coupon_get","获得优惠券通知"),
COUPON_NEAR("coupon_near","优惠券将要过期提醒"); COUPON_NEAR("coupon_near","优惠券将要过期提醒"),
BARGAIN_RESULT("bargain_result","砍价活动结果提醒"),
COMBINATION_RESULT("combination_result","拼团活动结果提醒");
private String value; //模板编号 private String value; //模板编号
private String desc; //模板id private String desc; //模板id
} }

8
zsw-bxg/src/main/java/co/yixiang/modules/mp/listener/TemplateListener.java

@ -201,7 +201,13 @@ public class TemplateListener implements SmartApplicationListener {
weiXinSubscribeService.couponNearEndTimeNotice(templateBean.getCouponId(), weiXinSubscribeService.couponNearEndTimeNotice(templateBean.getCouponId(),
templateBean.getUid(), templateBean.getTime()); templateBean.getUid(), templateBean.getTime());
break; break;
case TYPE_12:
weiXinSubscribeService.bargainResult(templateBean.getProductId(),templateBean.getResult(),
templateBean.getUid(), templateBean.getTime());
break;
case TYPE_13:
weiXinSubscribeService.combinationResult(templateBean.getProductId(),templateBean.getResult(),
templateBean.getUid(), templateBean.getTime(),templateBean.getPayPrice(),templateBean.getRefundPrice());
default: default:
//todo //todo
} }

65
zsw-bxg/src/main/java/co/yixiang/modules/mp/service/WeiXinSubscribeService.java

@ -9,6 +9,7 @@ import co.yixiang.enums.ShopCommonEnum;
import co.yixiang.modules.activity.domain.YxStoreCoupon; import co.yixiang.modules.activity.domain.YxStoreCoupon;
import co.yixiang.modules.activity.service.mapper.YxStoreCouponMapper; import co.yixiang.modules.activity.service.mapper.YxStoreCouponMapper;
import co.yixiang.modules.mp.domain.YxWechatTemplate; import co.yixiang.modules.mp.domain.YxWechatTemplate;
import co.yixiang.modules.product.service.YxStoreProductService;
import co.yixiang.modules.user.domain.YxUser; import co.yixiang.modules.user.domain.YxUser;
import co.yixiang.modules.user.service.YxUserService; import co.yixiang.modules.user.service.YxUserService;
import co.yixiang.modules.user.service.dto.WechatUserDto; import co.yixiang.modules.user.service.dto.WechatUserDto;
@ -18,6 +19,7 @@ import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
@ -36,6 +38,8 @@ public class WeiXinSubscribeService {
private YxUserService userService; private YxUserService userService;
@Autowired @Autowired
private YxWechatTemplateService yxWechatTemplateService; private YxWechatTemplateService yxWechatTemplateService;
@Autowired
private YxStoreProductService yxStoreProductService;
/** /**
* 充值成功通知 * 充值成功通知
* @param time 时间 * @param time 时间
@ -61,6 +65,67 @@ public class WeiXinSubscribeService {
} }
} }
/**
* 砍价活动结果通知
* @param productId 砍价商品id
* @param result true成功false失败
* @param uid uid
*/
public void bargainResult(Long productId,Boolean result,Long uid,String time){
String openid = this.getUserOpenid(uid);
String productName=yxStoreProductService.getById(productId).getStoreName();
if(StrUtil.isBlank(openid)) {
return;
}
Map<String,String> map = new HashMap<>();
map.put("first","砍价活动结果提醒:");
map.put("thing4",productName); //商品名称
if (result){
map.put("phrase1","成功"); //成功或失败
map.put("thing3", ShopConstants.SHOP_WECHAT_BARGAIN_RESULT_SUCCESS);
}else {
map.put("phrase1","失败"); //成功或失败
map.put("thing3", ShopConstants.SHOP_WECHAT_BARGAIN_RESULT_FAIL);
}
String tempId = this.getTempId(WechatTempateEnum.BARGAIN_RESULT.getValue());
if(StrUtil.isNotBlank(tempId)) {
this.sendSubscribeMsg( openid, tempId,"pages/Loading/index",map);
}
}
/**
* 砍价活动结果通知
* @param productId 拼团商品id
* @param time 开团时间
* @param result true成功false失败
* @param payPrice 实付金额
* @param refundPrice 退款金额
* @param uid uid
*/
public void combinationResult(Long productId, Boolean result, Long uid, String time, BigDecimal payPrice,BigDecimal refundPrice){
String openid = this.getUserOpenid(uid);
String productName=yxStoreProductService.getById(productId).getStoreName();
if(StrUtil.isBlank(openid)) {
return;
}
Map<String,String> map = new HashMap<>();
map.put("first","拼团活动结果提醒:");
map.put("thing1",productName); //商品名称
map.put("thing2",time); //开团时间
if (result){
map.put("thing3","成功"); //成功
map.put("remark", ShopConstants.SHOP_WECHAT_COMBINATION_RESULT_SUCCESS);
}else {
map.put("thing3","失败"); //失败
map.put("remark", ShopConstants.SHOP_WECHAT_COMBINATION_RESULT_FAIL);
}
map.put("amount4", String.valueOf(payPrice)); //实付金额
map.put("amount5", String.valueOf(refundPrice)); //退款金额
String tempId = this.getTempId(WechatTempateEnum.COMBINATION_RESULT.getValue());
if(StrUtil.isNotBlank(tempId)) {
this.sendSubscribeMsg( openid, tempId,"pages/Loading/index",map);
}
}
/** /**
* 优惠券将要过期通知 * 优惠券将要过期通知
* @param couponId 获得优惠券的id * @param couponId 获得优惠券的id

Loading…
Cancel
Save