| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | private ComShopFlowerOrderGoodsDAO comShopFlowerOrderGoodsDAO; |
| | | @Resource |
| | | private ComShopFlowerGoodsDAO comShopFlowerGoodsDAO; |
| | | |
| | | @Resource |
| | | private ComShopFlowerGoodsAttrDAO comShopFlowerGoodsAttrDAO; |
| | | @Resource |
| | | private ConvenientMerchantDAO convenientMerchantDAO; |
| | | @Resource |
| | | private WxMaConfiguration wxMaConfiguration; |
| | | @Resource |
| | | private UserService userService; |
| | | @Resource |
| | | private ConvenientElevatingPointDAO convenientElevatingPointDAO; |
| | | |
| | | |
| | | @Override |
| | |
| | | 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(); |
| | | } |
| | | |
| | |
| | | IPage<ComShopFlowerRefundOrderVO> pages = this.baseMapper.pageRefundOrder(page, pageComOrderRefundDTO); |
| | | for (ComShopFlowerRefundOrderVO comShopFlowerRefundOrderVO : pages.getRecords()) { |
| | | String orderNo = comShopFlowerRefundOrderVO.getOrderNo(); |
| | | ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderVO.getOrderId()); |
| | | if (nonNull(comShopFlowerOrderDO)){ |
| | | comShopFlowerRefundOrderVO.setTotalAmount(comShopFlowerOrderDO.getTotalAmount()); |
| | | ConvenientElevatingPointDO convenientElevatingPointDO = convenientElevatingPointDAO.selectById(comShopFlowerOrderDO.getPointId()); |
| | | if (nonNull(convenientElevatingPointDO)){ |
| | | comShopFlowerRefundOrderVO.setPointName(convenientElevatingPointDO.getName()); |
| | | } |
| | | } |
| | | |
| | | List<ComShopFlowerOrderGoodsVO> orderGoodsVOS = new ArrayList<>(); |
| | | // 查询订单下商品信息 |
| | | List<ComShopFlowerOrderGoodsDO> orderGoodsDOList = comShopFlowerOrderGoodsDAO |
| | |
| | | orderGoodsVO.setNum(orderGoods.getAmount()); |
| | | orderGoodsVO.setGoodsPic(orderGoods.getGoodsAttrPic()); |
| | | orderGoodsVO.setPrice(orderGoods.getGoodsAttrPrice()); |
| | | |
| | | orderGoodsVO.setGoodsAttr(orderGoods.getGoodsAttrName()); |
| | | orderGoodsVOS.add(orderGoodsVO); |
| | | sbr.append(orderGoods.getGoodsName()).append(" "); |
| | | }); |
| | | comShopFlowerRefundOrderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName()); |
| | | } |
| | | comShopFlowerRefundOrderVO.setOrderGoodsVOList(orderGoodsVOS); |
| | | comShopFlowerRefundOrderVO.setGoodsName(sbr.toString()); |
| | | |
| | | ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO(); |
| | | |
| | | // 查询店铺信息 |
| | | /* ConvenientMerchantVO shopStoreVO = new ConvenientMerchantVO(); |
| | | ConvenientMerchantDO shopStoreDO = convenientMerchantDAO.selectById(comShopFlowerRefundOrderVO.getStoreId()); |
| | | if (shopStoreDO != null) { |
| | | BeanUtils.copyProperties(shopStoreDO, shopStoreVO); |
| | | } |
| | | comShopFlowerRefundOrderVO.setConvenientMerchantVO(shopStoreVO); |
| | | */ |
| | | |
| | | } |
| | | return R.ok(pages); |
| | | } |
| | |
| | | |
| | | if (Objects.isNull(comShopFlowerRefundOrderDO)) { |
| | | return R.fail("不存在该退款订单"); |
| | | } |
| | | } ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId()); |
| | | |
| | | if (ComShopFlowerRefundOrderDO.handleResult.agree.equals(comShopFlowerRefundOrderDTO.getHandleResult())) { |
| | | //处理退款事宜 |
| | | comShopFlowerRefundOrderDO.setRefundTime(new Date()); |
| | |
| | | //微信处理退款 |
| | | try { |
| | | String refundNo = WXPayUtil.generateNonceStr(); |
| | | ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId()); |
| | | String refundStr = WxPayUtils.refund(appid, mchId, comShopFlowerOrderDO.getOrderNo(), comShopFlowerRefundOrderDO.getPayAmount(), |
| | | comShopFlowerRefundOrderDO.getRefundAmount(), refundNo, isTest); |
| | | comShopFlowerRefundOrderDO.getPayAmount(), refundNo, isTest); |
| | | log.info("退款请求接口返回参数:{}" , refundStr); |
| | | Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr); |
| | | if (CollUtil.isNotEmpty(mapResult)) { |
| | |
| | | //更新订单状态 |
| | | comShopFlowerOrderDO.setStatus(ComShopFlowerOrderDO.status.ytk); |
| | | comShopFlowerOrderDAO.updateById(comShopFlowerOrderDO); |
| | | |
| | | //退款成功发送消息 |
| | | sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"同意退款"); |
| | | }else { |
| | | //退款失败 |
| | | comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb); |
| | | comShopFlowerRefundOrderDO.setRemark(comShopFlowerRefundOrderDO.getRemark() + "_"+return_msg); |
| | | comShopFlowerRefundOrderDO.setRemark(comShopFlowerRefundOrderDO.getRemark() + "_退款失败"); |
| | | // 添加订单支付记录表 |
| | | orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); |
| | | orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); |
| | | //退款失败发送消息 |
| | | sendRefundNotice(comShopFlowerRefundOrderDO, comShopFlowerOrderDO,"退款失败"); |
| | | } |
| | | comShopFlowerOrderPayDAO.insert(orderPayDO); |
| | | } |
| | |
| | | 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 |
| | |
| | | if (goodsAttrDO != null) { |
| | | orderGoodsVO.setGoodsAttr(goodsAttrDO.getGoodsAttrName()); |
| | | } |
| | | comShopFlowerRefundOrderVO.setGoodsAttrName(orderGoodsDOList.get(0).getGoodsAttrName()); |
| | | orderGoodsVOS.add(orderGoodsVO); |
| | | sbr.append(orderGoods.getGoodsName()).append(" "); |
| | | }); |