| @@ -137,10 +137,12 @@ public class WxCouponOrderController extends BaseController { | |||
| } | |||
| } | |||
| boolean bSentCoupon = false; | |||
| // 核销发券 | |||
| if (couponOrder != null) { | |||
| try { | |||
| wxCouponOrderService.sendCouponAfterVerify(couponOrder, getUser()); | |||
| bSentCoupon = wxCouponOrderService.sendCouponAfterVerify(couponOrder, getUser()); | |||
| } catch (Exception e) { | |||
| logger.error(e.getMessage()); | |||
| } | |||
| @@ -149,7 +151,7 @@ public class WxCouponOrderController extends BaseController { | |||
| // 核销发模板消息 | |||
| if (couponOrder != null) { | |||
| try { | |||
| wxCouponOrderService.sendVerifyMsg(couponOrder, getUser()); | |||
| wxCouponOrderService.sendVerifyMsg(couponOrder, getUser(), bSentCoupon); | |||
| } catch (Exception e) { | |||
| logger.error(e.getMessage()); | |||
| } | |||
| @@ -68,7 +68,7 @@ public interface WxCouponOrderService { | |||
| * @param couponOrder | |||
| * @param bUser | |||
| */ | |||
| void sendCouponAfterVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser); | |||
| boolean sendCouponAfterVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser); | |||
| /** | |||
| * 核销分账 | |||
| @@ -81,7 +81,7 @@ public interface WxCouponOrderService { | |||
| * @param couponOrder | |||
| * @param bUser | |||
| */ | |||
| void sendVerifyMsg(WxCouponOrder couponOrder, WxMerchantBUser bUser); | |||
| void sendVerifyMsg(WxCouponOrder couponOrder, WxMerchantBUser bUser, boolean hadSentCoupon); | |||
| /** | |||
| * 根据日期 b用户查券list | |||
| @@ -44,7 +44,7 @@ public interface WxCouponSendService { | |||
| * @param cUserId | |||
| * @param type 2:停车发券 3:核销发券 | |||
| */ | |||
| void sendCouponToUser(String tenantId, Long cUserId, EnumCouponSendSendType type); | |||
| boolean sendCouponToUser(String tenantId, Long cUserId, EnumCouponSendSendType type); | |||
| void updateStatusByCouponId(Long couponId,String tenantId,int status); | |||
| @@ -379,16 +379,17 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| } | |||
| @Override | |||
| public void sendCouponAfterVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser) { | |||
| public boolean sendCouponAfterVerify(WxCouponOrder couponOrder, WxMerchantBUser bUser) { | |||
| // 核销发券 | |||
| WxOrder wxOrder = wxOrderMapper.selectByPrimaryKey(couponOrder.getOrderId()); | |||
| if (wxOrder != null) { | |||
| try { | |||
| wxCouponSendService.sendCouponToUser(bUser.getTenantId(), wxOrder.getCUserId(), EnumCouponSendSendType.COUPON_VERIFY); | |||
| return wxCouponSendService.sendCouponToUser(bUser.getTenantId(), wxOrder.getCUserId(), EnumCouponSendSendType.COUPON_VERIFY); | |||
| } catch (Exception e) { | |||
| logger.error("核销发券: " + e.getMessage()); | |||
| } | |||
| } | |||
| return false; | |||
| } | |||
| /** | |||
| @@ -397,7 +398,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| * @param couponOrder, bUser | |||
| */ | |||
| @Override | |||
| public void sendVerifyMsg(WxCouponOrder couponOrder, WxMerchantBUser bUser) { | |||
| public void sendVerifyMsg(WxCouponOrder couponOrder, WxMerchantBUser bUser, boolean hadSentCoupon) { | |||
| // 1. get order info | |||
| WxOrder order = wxOrderMapper.selectByPrimaryKey(couponOrder.getOrderId()); | |||
| if (order == null) { | |||
| @@ -467,6 +468,10 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| logger.error("找不到模板Id"); | |||
| throw new MallinkException(ErrorCode.TEMPLATE_NOT_FOUND); | |||
| } | |||
| String gotopage = "pages/index/index"; | |||
| if (hadSentCoupon) { | |||
| gotopage = "pages/couponorder/index/index"; | |||
| } | |||
| /** | |||
| * 核销成功 | |||
| * 核销金额 {{keyword1.DATA}} | |||
| @@ -478,7 +483,7 @@ public class WxCouponOrderServiceImpl implements WxCouponOrderService { | |||
| templateMessage = WxMaTemplateMessage.builder() | |||
| .toUser(user.getOpenId()) | |||
| .formId(payOrder.getPrepayId()) // 微信支付的formId是prepayId | |||
| .page("pages/index/index") | |||
| .page(gotopage) | |||
| .data(Lists.newArrayList( | |||
| new WxMaTemplateMessage.Data("keyword1", String.valueOf(coupon.getPrice() * 1.0 / 100) + "元", "#173177"), | |||
| new WxMaTemplateMessage.Data("keyword2", merchant.getName(), "#173177"), | |||
| @@ -71,7 +71,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||
| @Override | |||
| @Transactional | |||
| public void sendCouponToUser(String tenantId, Long cUserId, EnumCouponSendSendType type) { | |||
| public boolean sendCouponToUser(String tenantId, Long cUserId, EnumCouponSendSendType type) { | |||
| //查询开关是否打开 | |||
| //查询停车或者核销的券 stopCarCouponSwitch verifyConponSwitch | |||
| WxCouponSend wxCouponSendQuery = new WxCouponSend(); | |||
| @@ -91,7 +91,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||
| wxCouponSendQuery.setSendType(actionType); | |||
| configKey = "verifyConponSwitch"; | |||
| } else { | |||
| return; | |||
| return false; | |||
| } | |||
| WxMallConfig wxMallConfigQuery = new WxMallConfig(); | |||
| wxMallConfigQuery.setKey(configKey); | |||
| @@ -100,7 +100,7 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||
| if (page.getSize() > 0) { | |||
| WxMallConfig config = page.getList().get(0); | |||
| if (config.getValue() == EnumEnableType.Disable.getCode()) { | |||
| return; | |||
| return false; | |||
| } | |||
| } | |||
| @@ -109,9 +109,11 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||
| checkTime = pushLimitService.checkSendTime(tenantId); | |||
| } catch (MallinkException e) { | |||
| logger.error(e.getMessage()); | |||
| return; | |||
| return false; | |||
| } | |||
| boolean bRet = false; | |||
| if (checkTime) { | |||
| List<WxCouponSend> wxCouponSends = wxCouponSendMapper.findList(wxCouponSendQuery); | |||
| for (WxCouponSend send : wxCouponSends) { | |||
| @@ -129,10 +131,12 @@ public class WxCouponSendServiceImpl implements WxCouponSendService { | |||
| WxCouponOrder couponOrder = wxOrderService.sendFreeCouponToUser(cUserId, send.getCouponId()); | |||
| if (couponOrder != null) { | |||
| wxCouponActionLogService.addOne(tenantId, send.getCouponId(), couponOrder.getId(), actionType, send.getId()); | |||
| bRet = true; | |||
| } | |||
| wxCouponService.reduceInventory(send.getCouponId(), 1); | |||
| } | |||
| } | |||
| return bRet; | |||
| } | |||
| @Override | |||