diff --git a/yshop-common/src/main/java/co/yixiang/event/TemplateListenEnum.java b/yshop-common/src/main/java/co/yixiang/event/TemplateListenEnum.java index e654093f..21be2f71 100644 --- a/yshop-common/src/main/java/co/yixiang/event/TemplateListenEnum.java +++ b/yshop-common/src/main/java/co/yixiang/event/TemplateListenEnum.java @@ -21,7 +21,8 @@ public enum TemplateListenEnum { TYPE_5("5","在线买单/收款成功通知"), TYPE_6("6","商家收款通知"), TYPE_7("7","用户下单未支付通知"), - TYPE_8("8","用户提现通知"); + TYPE_8("8","用户提现通知"), + TYPE_9("9","退款申请通知"); private String value; private String desc; diff --git a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java index 7fc1e74c..4135d084 100644 --- a/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java +++ b/yshop-mall/src/main/java/co/yixiang/modules/order/service/impl/YxStoreOrderServiceImpl.java @@ -1063,7 +1063,7 @@ public class YxStoreOrderServiceImpl extends BaseServiceImpl { if (StrUtil.isNotBlank(msg.getOpenId())) { weixinTemplateService.paySuccessNoticeToKefu(templateBean.getOrderId() - , templateBean.getPrice(), templateBean.getUid()); + , templateBean.getPrice(), msg.getOpenId()); } }); } catch (Exception e) { @@ -114,7 +114,7 @@ public class TemplateListener implements SmartApplicationListener { weixinPayService.refundOrder(templateBean.getOrderId(), payPrice); } - weixinTemplateService.refundSuccessNotice(templateBean.getOrderId(), templateBean.getPrice(), + weixinTemplateService.refundSuccessNotice("您的订单退款申请被通过,钱款将很快还至您的支付账户。",templateBean.getOrderId(), templateBean.getPrice(), templateBean.getUid(), templateBean.getTime()); break; case TYPE_3: @@ -162,6 +162,22 @@ public class TemplateListener implements SmartApplicationListener { } + break; + case TYPE_9: + weixinTemplateService.refundSuccessNotice("您的订单退款申请已提交,等待审核。",templateBean.getOrderId(), templateBean.getPrice(), + templateBean.getUid(), templateBean.getTime()); + /**************给客服发送消息**************/ + try { + List yxStoreCustomers = yxStoreCustomerService.list(new LambdaQueryWrapper().eq(YxStoreCustomer::getIsEnable, ShopConstants.YSHOP_ONE_NUM)); + yxStoreCustomers.forEach(msg -> { + if (StrUtil.isNotBlank(msg.getOpenId())) { + weixinTemplateService.refundSuccessNoticeToKefu("尊敬的客服,您有新的退款申请待处理!",templateBean.getOrderId() + , templateBean.getPrice(), msg.getOpenId(), templateBean.getTime()); + } + }); + } catch (Exception e) { + log.error("消息发送失败:{}", e); + } break; default: //todo diff --git a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinTemplateService.java b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinTemplateService.java index a7a07382..8777d1ff 100644 --- a/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinTemplateService.java +++ b/yshop-weixin/src/main/java/co/yixiang/modules/mp/service/WeixinTemplateService.java @@ -111,9 +111,9 @@ public class WeixinTemplateService { * * @param orderId * @param price - * @param uid + * @param openId */ - public void paySuccessNoticeToKefu(String orderId,String price,Long uid) { + public void paySuccessNoticeToKefu(String orderId,String price,String openId) { Map map = new HashMap<>(); map.put("first", "尊敬的客服,您有新订单了"); map.put("keyword1",orderId); @@ -122,17 +122,13 @@ public class WeixinTemplateService { String tempId = this.getTempId(WechatTempateEnum.PAY_SUCCESS.getValue()); String appId=RedisUtil.get(ShopKeyUtils.getWxAppAppId()); if(StrUtil.isNotBlank(tempId)) { - String openid = this.getUserOpenid(uid); - if(StrUtil.isBlank(openid)) { - return; - } if(StrUtil.isBlank(appId)){ - this.sendWxMpTemplateMessage( openid,tempId, this.getSiteUrl()+"/order/detail/"+orderId,map); + this.sendWxMpTemplateMessage( openId,tempId, this.getSiteUrl()+"/order/detail/"+orderId,map); }else{ WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram(); miniProgram.setAppid(RedisUtil.get(ShopKeyUtils.getWxAppAppId())); miniProgram.setPagePath("pages/orderAdmin/AdminOrder/index?oid=" + orderId); - this.sendWxMpTemplateMessageToWx(openid, tempId, miniProgram, map); + this.sendWxMpTemplateMessageToWx(openId, tempId, miniProgram, map); } } @@ -148,7 +144,7 @@ public class WeixinTemplateService { * @param uid uid * @param time 时间 */ - public void refundSuccessNotice(String orderId,String price,Long uid,String time){ + public void refundSuccessNotice(String title,String orderId,String price,Long uid,String time){ String openid = this.getUserOpenid(uid); @@ -157,7 +153,7 @@ public class WeixinTemplateService { } Map map = new HashMap<>(); - map.put("first","您的订单退款申请被通过,钱款将很快还至您的支付账户。"); + map.put("first",title); //订单号 map.put("keyword1",orderId); map.put("keyword2",price); @@ -169,6 +165,36 @@ public class WeixinTemplateService { } } + /** + * 发送退款申请给客服 + * @param orderId 订单号 + * @param price 金额 + * @param openId openId + * @param time 时间 + */ + public void refundSuccessNoticeToKefu(String title,String orderId,String price,String openId,String time){ + + Map map = new HashMap<>(); + map.put("first",title); + //订单号 + map.put("keyword1",orderId); + map.put("keyword2",price); + map.put("keyword3", time); + map.put("remark",ShopConstants.YSHOP_WECHAT_PUSH_REMARK); + String tempId = this.getTempId(WechatTempateEnum.REFUND_SUCCESS.getValue()); + String appId=RedisUtil.get(ShopKeyUtils.getWxAppAppId()); + if(StrUtil.isNotBlank(tempId)) { + if(StrUtil.isBlank(appId)){ + this.sendWxMpTemplateMessage( openId,tempId, this.getSiteUrl()+"/order/detail/"+orderId,map); + }else{ + WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram(); + miniProgram.setAppid(RedisUtil.get(ShopKeyUtils.getWxAppAppId())); + miniProgram.setPagePath("pages/orderAdmin/AdminOrder/index?oid=" + orderId); + this.sendWxMpTemplateMessageToWx(openId, tempId, miniProgram, map); + } + } + } + /** * 发货成功通知 * @param orderId 单号