From 0430cf26ba8646c65ffb1d1a0fbdb191a8c29d74 Mon Sep 17 00:00:00 2001 From: fengjin <1435304038@qq.com> Date: 星期四, 17 十一月 2022 16:30:02 +0800 Subject: [PATCH] Merge branch 'huacheng_test' of http://gitlab.nhys.cdnhxx.com/root/zhihuishequ into huacheng_test --- springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java | 144 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 144 insertions(+), 0 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 new file mode 100644 index 0000000..b6595b3 --- /dev/null +++ b/springcloud_k8s_panzhihuazhihuishequ/service_community/src/main/java/com/panzhihua/service_community/service/impl/ComShopFlowerRefundOrderServiceImpl.java @@ -0,0 +1,144 @@ +package com.panzhihua.service_community.service.impl; + +import cn.hutool.core.collection.CollUtil; +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.model.dtos.shop.ComShopFlowerRefundOrderDTO; +import com.panzhihua.common.model.dtos.shop.PageComOrderRefundDTO; +import com.panzhihua.common.model.vos.R; +import com.panzhihua.common.model.vos.shop.ComShopFlowerRefundOrderVO; +import com.panzhihua.common.utlis.OrderNoUtils; +import com.panzhihua.common.utlis.WxPayUtils; +import com.panzhihua.common.utlis.wx.WXPayUtil; +import com.panzhihua.service_community.dao.ComShopFlowerOrderDAO; +import com.panzhihua.service_community.dao.ComShopFlowerOrderPayDAO; +import com.panzhihua.service_community.dao.ComShopFlowerRefundOrderDAO; +import com.panzhihua.service_community.model.dos.ComShopFlowerOrderDO; +import com.panzhihua.service_community.model.dos.ComShopFlowerOrderPayDO; +import com.panzhihua.service_community.model.dos.ComShopFlowerRefundOrderDO; +import com.panzhihua.service_community.service.ComShopFlowerRefundOrderService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.Map; +import java.util.Objects; + +/** + * @ClassName: ComShopFlowerRefundOrderServiceImpl + * @Author: yh + * @Date: 2022/11/16 14:36 + * @Description: 退款订单 + */ +@Slf4j +@Service +public class ComShopFlowerRefundOrderServiceImpl extends ServiceImpl<ComShopFlowerRefundOrderDAO, ComShopFlowerRefundOrderDO> + implements ComShopFlowerRefundOrderService { + + @Value("${hcMin.app.isTest}") + private Boolean isTest; + @Value("${hcMin.app.appid}") + private String appid; + @Value("${hcMin.app.payKey}") + private String payKey; + @Value("${hcMin.app.mchId}") + private String mchId; + @Value("${hcMin.app.notifyUrl}") + private String notifyUrl; + + @Resource + private ComShopFlowerOrderDAO comShopFlowerOrderDAO; + @Resource + private ComShopFlowerOrderPayDAO comShopFlowerOrderPayDAO; + + + @Override + public R createRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) { + ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = new ComShopFlowerRefundOrderDO(); + BeanUtils.copyProperties(comShopFlowerRefundOrderDTO, comShopFlowerRefundOrderDO); + // 生成退款订单号 + String refundOrderNo = OrderNoUtils.NextOrderNo(comShopFlowerRefundOrderDTO.getUserId()); + comShopFlowerRefundOrderDO.setRefundOrderNo(refundOrderNo); + comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.clz); + comShopFlowerRefundOrderDO.setDeleteStatus(ComShopFlowerRefundOrderDO.deleteStatus.no); + this.baseMapper.insert(comShopFlowerRefundOrderDO); + return R.ok(); + } + + @Override + public R pageRefundOrder(PageComOrderRefundDTO pageComOrderRefundDTO) { + Page page = new Page<>(pageComOrderRefundDTO.getPageNum(), pageComOrderRefundDTO.getPageSize()); + IPage<ComShopFlowerRefundOrderVO> pages = this.baseMapper.pageRefundOrder(page, pageComOrderRefundDTO); + return R.ok(pages); + } + + @Override + public R updateRefundOrder(ComShopFlowerRefundOrderDTO comShopFlowerRefundOrderDTO) { + ComShopFlowerRefundOrderDO comShopFlowerRefundOrderDO = this.baseMapper.selectById(comShopFlowerRefundOrderDTO.getId()); + + if (Objects.isNull(comShopFlowerRefundOrderDO)) { + return R.fail("不存在该退款订单"); + } + if (ComShopFlowerRefundOrderDO.handleResult.agree.equals(comShopFlowerRefundOrderDTO.getHandleResult())) { + //处理退款事宜 + comShopFlowerRefundOrderDO.setRefundTime(new Date()); + comShopFlowerRefundOrderDO.setHandleTime(new Date()); + comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.agree); + //微信处理退款 + try { + String refundNo = WXPayUtil.generateNonceStr(); + ComShopFlowerOrderDO comShopFlowerOrderDO = comShopFlowerOrderDAO.selectById(comShopFlowerRefundOrderDO.getOrderId()); + String refundStr = WxPayUtils.refund(appid, mchId, comShopFlowerOrderDO.getWxTardeNo(), comShopFlowerRefundOrderDO.getPayAmount(), + comShopFlowerRefundOrderDO.getRefundAmount(), refundNo, isTest); + log.info("退款请求接口返回参数:{}" , refundStr); + Map<String, String> mapResult = WXPayUtil.xmlToMap(refundStr); + if (CollUtil.isNotEmpty(mapResult)) { + String return_code = (String) mapResult.get("return_code"); + String result_code = (String) mapResult.get("result_code"); + String return_msg = mapResult.get("return_msg"); + ComShopFlowerOrderPayDO orderPayDO = new ComShopFlowerOrderPayDO(); + + orderPayDO.setOrderNo(comShopFlowerOrderDO.getOrderNo()); + orderPayDO.setOrderAmount(comShopFlowerOrderDO.getTotalAmount()); + orderPayDO.setPayTime(new Date()); + orderPayDO.setStoreId(comShopFlowerOrderDO.getStoreId()); + orderPayDO.setDeliveryType(comShopFlowerOrderDO.getDeliveryType()); + orderPayDO.setOrderId(comShopFlowerOrderDO.getId()); + orderPayDO.setPayType(ComShopFlowerOrderPayDO.payType.tk); + orderPayDO.setRefundOrderNo(comShopFlowerRefundOrderDO.getRefundOrderNo()); + orderPayDO.setPayAmount(comShopFlowerRefundOrderDO.getRefundAmount()); + if ("SUCCESS".equals(return_code) && return_code.equals(result_code)) { + //退款成功 + comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tkcg); + // 添加订单支付记录表 +// orderPayDO.setWxTradeNo(wxPayNotifyOrderDTO.getWxTradeNo()); + orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.yes); + orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tkcg); + }else { + //退款失败 + comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb); + comShopFlowerRefundOrderDO.setRemark(comShopFlowerRefundOrderDO.getRemark() + "_"+return_msg); + // 添加订单支付记录表 + orderPayDO.setPayStatus(ComShopFlowerOrderPayDO.payStatus.no); + orderPayDO.setRefundStatus(ComShopFlowerOrderPayDO.refundStatus.tksb); + } + comShopFlowerOrderPayDAO.insert(orderPayDO); + } + } catch (Exception e) { + log.error("申请退款失败,"+e.getMessage()); + e.printStackTrace(); + } + + } else if (ComShopFlowerRefundOrderDO.handleResult.refuse.equals(comShopFlowerRefundOrderDTO.getHandleResult())) { + comShopFlowerRefundOrderDO.setHandleTime(new Date()); + comShopFlowerRefundOrderDO.setStatus(ComShopFlowerRefundOrderDO.status.tksb); + comShopFlowerRefundOrderDO.setHandleResult(ComShopFlowerRefundOrderDO.handleResult.refuse); + } + this.baseMapper.updateById(comShopFlowerRefundOrderDO); + return R.ok(); + } +} -- Gitblit v1.7.1