From 06cfdb225233a2e8c67f21e130ee0bda67e2cc34 Mon Sep 17 00:00:00 2001 From: yanghui <2536613402@qq.com> Date: 星期二, 29 十一月 2022 10:12:35 +0800 Subject: [PATCH] #feat 发送订阅消息 --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java | 50 +++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 47 insertions(+), 3 deletions(-) diff --git a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java index b9ec4fe..4a7c18c 100644 --- a/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java @@ -1,10 +1,14 @@ package com.panzhihua.service_community.service.impl; +import cn.binarywang.wx.miniapp.api.WxMaService; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.panzhihua.common.constants.Constants; import com.panzhihua.common.model.dtos.shop.ComShopFlowerRefundOrderDTO; import com.panzhihua.common.model.dtos.shop.ComShopOrderQueryDTO; import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO; @@ -13,13 +17,18 @@ import com.panzhihua.common.model.vos.shop.ComShopFlowerOrderGoodsVO; import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO; import com.panzhihua.common.model.vos.shop.ComShopOrderCountVO; +import com.panzhihua.common.model.vos.user.SysUserVO; +import com.panzhihua.common.service.user.UserService; import com.panzhihua.common.utlis.OrderNoUtils; import com.panzhihua.common.utlis.WxPayUtils; +import com.panzhihua.common.utlis.WxUtil; import com.panzhihua.common.utlis.wx.WXPayUtil; import com.panzhihua.service_community.dao.*; import com.panzhihua.service_community.model.dos.*; import com.panzhihua.service_community.service.ComShopFlowerRefundOrderService; +import com.panzhihua.service_community.util.WxMaConfiguration; import lombok.extern.slf4j.Slf4j; +import me.chanjar.weixin.common.error.WxErrorException; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -62,11 +71,14 @@ private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO; @Resource private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO; - @Resource private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO; @Resource private ConvenientMerchantDAO convenientMerchantDAO; + @Resource + private WxMaConfiguration wxMaConfiguration; + @Resource + private UserService userService; @Override @@ -80,6 +92,18 @@ comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.clz); comShopFlowerRefundOrderDO.setDeleteStatus(ComShopFlowerRefundOrderDO.deleteStatus.no); this.baseMapper.insert(comShopFlowerRefundOrderDO); + //商家接受退款信息 + ConvenientMerchantVO convenientMerchantVO = convenientMerchantDAO.selectMerchantById(comShopFlowerRefundOrderDTO.getStoreId()); + WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID); + R sysUserVOR = userService.getSysUserVOByPhone(convenientMerchantVO.getMobilePhone()); + if (R.isOk(sysUserVOR)) { + SysUserVO sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(sysUserVOR.getData()), SysUserVO.class); + try { + WxUtil.sendNewRefundOrderNotice(sysUserVO.getOpenid(),maService.getAccessToken(),refundOrderNo,comShopFlowerRefundOrderDO.getRefundAmount().toString(),DateUtil.format(comShopFlowerRefundOrderDO.getRefundTime(),"yyyy-MM-dd HH:mm")); + } catch (WxErrorException e) { + e.printStackTrace(); + } + } return R.ok(); } @@ -128,7 +152,8 @@ if (Objects.isNull(comShopFlowerRefundOrderDO)) { return R.fail("不存在该退款订单"); - } + } ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId()); + if (ComShopFlowerRefundOrderDO.handleResult.agree.equals(comShopFlowerRefundOrderDTO.getHandleResult())) { //处理退款事宜 comShopFlowerRefundOrderDO.setRefundTime(new Date()); @@ -137,7 +162,6 @@ //微信处理退款 try { String refundNo = WXPayUtil.generateNonceStr(); - ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId()); String refundStr = WxPayUtils.refund(appid, mchId, comShopFlowerOrderDO.getOrderNo(), comShopFlowerRefundOrderDO.getPayAmount(), comShopFlowerRefundOrderDO.getPayAmount(), refundNo, isTest); log.info("退款请求接口返回参数:{}" , refundStr); @@ -167,6 +191,9 @@ //更新订单状态 comShopFlowerOrderDO.setStatus(ComShopFlowerOrderDO.status.ytk); comShopFlowerOrderDAO.updateById(comShopFlowerOrderDO); + + //退款成功发送消息 + sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"商家同意退款"); }else { //退款失败 comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb); @@ -174,6 +201,8 @@ // 添加订单支付记录表 orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); + //退款失败发送消息 + sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"微信退款失败"); } comShopFlowerOrderPayDAO.insert(orderPayDO); } @@ -186,11 +215,26 @@ comShopFlowerRefundOrderDO.setHandleTime(new Date()); comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb); comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.refuse); + //拒绝退款发送消息 + sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"商家拒绝退款"); } this.baseMapper.updateById(comShopFlowerRefundOrderDO); return R.ok(); } + private void sendRefundNotice(ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO, ComShopFlowerOrderDO comShopFlowerOrderDO,String msg) { + WxMaService maService = wxMaConfiguration.getMaService(Constants.HC_APP_ID); + R userOpenId = userService.getUserOpenId(comShopFlowerOrderDO.getUserId()); + if (R.isOk(userOpenId)) { + String openid = userOpenId.getData().toString(); + try { + WxUtil.sendRefundNotice(openid,maService.getAccessToken(),comShopFlowerRefundOrderDO.getRefundOrderNo(),comShopFlowerRefundOrderDO.getRefundAmount().toString(),msg); + } catch (WxErrorException e) { + e.printStackTrace(); + } + } + } + @Override public R selectCountGroupStatus(Long storeId){ String[] statusStr = {"clz","tkcg","tksb","yqx","tkz"}; -- Gitblit v1.7.1