yangdamao 2 years ago
parent
commit
dbf814af0c

+ 1 - 1
zhongzheng-admin/src/main/java/com/zhongzheng/controller/common/CommonController.java

@@ -385,7 +385,7 @@ public class CommonController extends BaseController {
     /**
     /**
      * 总平台退款支付订单处理
      * 总平台退款支付订单处理
      */
      */
-    @ApiOperation("总平台退款支付")
+    @ApiOperation("总平台退款支付订单处理")
     @PostMapping("/common/platform/pay/handle")
     @PostMapping("/common/platform/pay/handle")
     public AjaxResult<Void> platformRefundPayHandle(@RequestBody List<OrderGoodsVo> orderGoodsVos) {
     public AjaxResult<Void> platformRefundPayHandle(@RequestBody List<OrderGoodsVo> orderGoodsVos) {
         return toAjax(iOrderGoodsRefundService.handleRefundOrder(orderGoodsVos) ? 1 : 0);
         return toAjax(iOrderGoodsRefundService.handleRefundOrder(orderGoodsVos) ? 1 : 0);

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoodsRefund.java

@@ -75,4 +75,8 @@ private static final long serialVersionUID=1L;
     private Long periodReviewTime;
     private Long periodReviewTime;
     /** 退款时间 */
     /** 退款时间 */
     private Long refundTime;
     private Long refundTime;
+    /** 分成模式 1机构分成 2业务员分成 */
+    private Integer divideModel;
+    /** 待扣分成钱 */
+    private BigDecimal divideMoney;
 }
 }

+ 46 - 70
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderGoodsRefundServiceImpl.java

@@ -269,31 +269,18 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             throw new CustomException("直播商品不能退款");
             throw new CustomException("直播商品不能退款");
         }
         }
 
 
-//        OrderGoodsRefund add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
-//        validEntityBeforeSave(add);
-//        add.setCreateTime(DateUtils.getNowTime());
-//        add.setUpdateTime(DateUtils.getNowTime());
-//        //退款单号
-//        add.setRefundSn(DateUtils.getDateOrderSn());
-//        add.setRefundFee(orderGoods.getGoodsReceived());
-//        add.setUserId(order.getUserId());
-//        add.setType(OrderGoodsRefund.TYPE_SMALL);
-//        add.setOrderGoodsId(orderGoods.getOrderGoodsId());
-//        this.save(add);
-        //退款推送总平台
-        TopOldOrderRefund add = BeanUtil.toBean(bo, TopOldOrderRefund.class);
+        OrderGoodsRefund add = BeanUtil.toBean(bo, OrderGoodsRefund.class);
+        validEntityBeforeSave(add);
         add.setCreateTime(DateUtils.getNowTime());
         add.setCreateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         add.setUpdateTime(DateUtils.getNowTime());
         //退款单号
         //退款单号
         String refundSn = DateUtils.getDateOrderSn();
         String refundSn = DateUtils.getDateOrderSn();
         add.setRefundSn(refundSn);
         add.setRefundSn(refundSn);
         add.setRefundFee(orderGoods.getGoodsReceived());
         add.setRefundFee(orderGoods.getGoodsReceived());
-        add.setRealRefundFee(orderGoods.getGoodsReceived());
         add.setUserId(order.getUserId());
         add.setUserId(order.getUserId());
-        add.setType(3);//新云学堂C端退款
-        add.setPeriodStatus(0);//待审核
+        add.setType(OrderGoodsRefund.TYPE_SMALL);
         add.setOrderGoodsId(orderGoods.getOrderGoodsId());
         add.setOrderGoodsId(orderGoods.getOrderGoodsId());
-        topOldOrderRefundService.save(add);
+        this.save(add);
         //订单状态修改
         //订单状态修改
         iOrderService.update(new LambdaUpdateWrapper<Order>()
         iOrderService.update(new LambdaUpdateWrapper<Order>()
                         .set(Order::getRefundStatus,0)//待审核
                         .set(Order::getRefundStatus,0)//待审核
@@ -333,52 +320,34 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
         }
         }
 
 
         //通知教务审核(后台站内信)
         //通知教务审核(后台站内信)
-        InformRemind informRemind = informRemindService.getOne(new LambdaQueryWrapper<InformRemind>()
-        .eq(InformRemind::getRemind,"订单退款申请通知提醒").last("limit 1"));
-        if (informRemind.getWayStatus() == 1 && informRemind.getUserType() == 2) {
-            //获取初审审核人账号
-            CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
-            if (ObjectUtils.isNotNull(business) && StringUtils.isNotBlank(business.getRefundUserIds())){
-                List<SysUser> sysUsers = iSysUserService.listByIds(Arrays.asList(business.getRefundUserIds().split(",")));
-                if (CollectionUtils.isNotEmpty(sysUsers)){
-                    sysUsers.forEach(user -> {
-                        InformSysUser addBo = new InformSysUser();
-                        addBo.setUserId(user.getUserId());
-                        addBo.setSendTime(DateUtils.getNowTime());
-                        addBo.setSendStatus(1);
-                        addBo.setCreateTime(DateUtils.getNowTime());
-                        addBo.setUpdateTime(DateUtils.getNowTime());
-                        addBo.setRemindId(informRemind.getId());
-                        addBo.setReceiptStatus(0);
-                        addBo.setSystemStatus(1);
-                        addBo.setRemind("订单退款申请通知提醒");
-                        addBo.setGoodsId(goods.getGoodsId());
-                        addBo.setOrderGoodsId(orderGoods.getOrderGoodsId());
-                        GoodsVo goodsVo1 = iGoodsService.queryById(goods.getGoodsId());
-                        addBo.setText(String.format("【%s】课程申请退款,请尽快处理!",goodsVo1.getGoodsName()));
-                        iInformSysUserService.save(addBo);
-                    });
-                }
-            }
-
-        }
-
-//        OrderGoodsRefund add = getOne(new LambdaQueryWrapper<OrderGoodsRefund>().eq(OrderGoodsRefund::getGoodsId,bo.getGoodsId()).eq(OrderGoodsRefund::getOrderSn,bo.getOrderSn()));
-//        String out_trade_no = null;
-//        if(Validator.isNotEmpty(add)){
-//            out_trade_no = add.getRefundSn();
-//        }else{
-//
-//        }
-//        Map<String, String> payResult =  iWxPayService.refund(out_trade_no,order.getTransid(),add.getRefundFee(),order.getPayPrice());
-//        if("OK".equals(payResult.get("return_msg"))&&Validator.isNotEmpty(payResult.get("refund_id"))){
-//            refundCall(payResult.get("refund_id"),add.getRefundId(),orderGoods.getOrderGoodsId(),order,goods.getGoodsType(),orderGoods.getGradeId(),bo.getUserId(),goods.getGoodsId());
-//            //关闭C端用户的分销返利
+//        InformRemind informRemind = informRemindService.getOne(new LambdaQueryWrapper<InformRemind>()
+//        .eq(InformRemind::getRemind,"订单退款申请通知提醒").last("limit 1"));
+//        if (informRemind.getWayStatus() == 1 && informRemind.getUserType() == 2) {
+//            //获取初审审核人账号
+//            CourseBusiness business = iCourseBusinessService.getById(goods.getBusinessId());
+//            if (ObjectUtils.isNotNull(business) && StringUtils.isNotBlank(business.getRefundUserIds())){
+//                List<SysUser> sysUsers = iSysUserService.listByIds(Arrays.asList(business.getRefundUserIds().split(",")));
+//                if (CollectionUtils.isNotEmpty(sysUsers)){
+//                    sysUsers.forEach(user -> {
+//                        InformSysUser addBo = new InformSysUser();
+//                        addBo.setUserId(user.getUserId());
+//                        addBo.setSendTime(DateUtils.getNowTime());
+//                        addBo.setSendStatus(1);
+//                        addBo.setCreateTime(DateUtils.getNowTime());
+//                        addBo.setUpdateTime(DateUtils.getNowTime());
+//                        addBo.setRemindId(informRemind.getId());
+//                        addBo.setReceiptStatus(0);
+//                        addBo.setSystemStatus(1);
+//                        addBo.setRemind("订单退款申请通知提醒");
+//                        addBo.setGoodsId(goods.getGoodsId());
+//                        addBo.setOrderGoodsId(orderGoods.getOrderGoodsId());
+//                        GoodsVo goodsVo1 = iGoodsService.queryById(goods.getGoodsId());
+//                        addBo.setText(String.format("【%s】课程申请退款,请尽快处理!",goodsVo1.getGoodsName()));
+//                        iInformSysUserService.save(addBo);
+//                    });
+//                }
+//            }
 //
 //
-//        shareClientCancelOldSys(order,orderGoods,add.getRefundFee());
-//            return true;
-//        }else{
-//            throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
 //        }
 //        }
         return true;
         return true;
     }
     }
@@ -472,16 +441,13 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
     }
     }
 
 
     public Boolean topRefundCall(String WxpayRefundId,Long refundId,OrderGoods orderGoods,Order order,Integer goodsType,Long gradeId,Long userId,Long goodsId){
     public Boolean topRefundCall(String WxpayRefundId,Long refundId,OrderGoods orderGoods,Order order,Integer goodsType,Long gradeId,Long userId,Long goodsId){
-        TopOldOrderRefund update = new TopOldOrderRefund();
-        update.setRefundId(refundId);
+        OrderGoodsRefund update = getById(refundId);
         update.setUpdateTime(DateUtils.getNowTime());
         update.setUpdateTime(DateUtils.getNowTime());
         update.setWxpayRefundId(WxpayRefundId);
         update.setWxpayRefundId(WxpayRefundId);
         update.setRefundTime(DateUtils.getNowTime());
         update.setRefundTime(DateUtils.getNowTime());
-        update.setDivideModel(orderGoods.getDivideModel());
-        update.setDivideMoney(orderGoods.getDivideMoney());
-        topOldOrderRefundService.updateById(update);
+        update.setPeriodStatus(3);//已完成
+        this.updateById(update);
         //修改订单商品退款状态
         //修改订单商品退款状态
-        orderGoods.setOrderGoodsId(orderGoods.getOrderGoodsId());
         orderGoods.setRefundStatus(2); //已退款
         orderGoods.setRefundStatus(2); //已退款
         orderGoods.setUpdateTime(DateUtils.getNowTime());
         orderGoods.setUpdateTime(DateUtils.getNowTime());
         iOrderGoodsService.updateById(orderGoods);
         iOrderGoodsService.updateById(orderGoods);
@@ -505,6 +471,16 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
             order.setUpdateTime(DateUtils.getNowTime());
             order.setUpdateTime(DateUtils.getNowTime());
             order.setOrderStatus(Order.REFUND_PART);
             order.setOrderStatus(Order.REFUND_PART);
         }
         }
+        order.setRefundStatus(3);//退款已完成
+
+        //已退金额
+        BigDecimal add = BigDecimal.ZERO;
+        if (ObjectUtils.isNotNull(order.getOrderRefunded())){
+            add = order.getOrderRefunded().add(update.getRefundFee());
+        }else {
+            add = update.getRefundFee();
+        }
+        order.setOrderRefunded(add);
         iOrderService.updateById(order);
         iOrderService.updateById(order);
         //清除数据
         //清除数据
         clearData(gradeId,userId,orderGoods.getOrderGoodsId(),goodsId,goodsType);
         clearData(gradeId,userId,orderGoods.getOrderGoodsId(),goodsId,goodsType);
@@ -828,7 +804,7 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
         refundBos.forEach(bo -> {
         refundBos.forEach(bo -> {
             //小程序/H5/PC 同意退款处理
             //小程序/H5/PC 同意退款处理
             Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, bo.getOrderSn()));
             Order order = iOrderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, bo.getOrderSn()));
-            Map<String, String> payResult =  iWxPayService.refund(bo.getRefundSn(),order.getTransid(),bo.getRealRefundFee(),order.getPayPrice());
+            Map<String, String> payResult =  iWxPayService.refund(bo.getRefundSn(),order.getTransid(),bo.getRefundFee(),order.getPayPrice());
             if("OK".equals(payResult.get("return_msg"))&&Validator.isNotEmpty(payResult.get("refund_id"))){
             if("OK".equals(payResult.get("return_msg"))&&Validator.isNotEmpty(payResult.get("refund_id"))){
                 OrderGoods orderGoods = iOrderGoodsService.getById(bo.getOrderGoodsId());
                 OrderGoods orderGoods = iOrderGoodsService.getById(bo.getOrderGoodsId());
                 Goods goods = iGoodsService.getById(bo.getGoodsId());
                 Goods goods = iGoodsService.getById(bo.getGoodsId());
@@ -838,7 +814,7 @@ public class OrderGoodsRefundServiceImpl extends ServiceImpl<OrderGoodsRefundMap
                 }
                 }
                 topRefundCall(payResult.get("refund_id"),bo.getRefundId(),orderGoods,order,goods.getGoodsType(),orderGoods.getGradeId(),bo.getUserId(),goods.getGoodsId());
                 topRefundCall(payResult.get("refund_id"),bo.getRefundId(),orderGoods,order,goods.getGoodsType(),orderGoods.getGradeId(),bo.getUserId(),goods.getGoodsId());
                 //关闭C端用户的分销返利
                 //关闭C端用户的分销返利
-                shareClientCancelOldSys(order,orderGoods,bo.getRealRefundFee());
+                shareClientCancelOldSys(order,orderGoods,bo.getRefundFee());
             }else{
             }else{
                 throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
                 throw new CustomException("退款错误"+ JSON.toJSONString(payResult));
             }
             }

+ 17 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/financial/bo/RefundOrderBo.java

@@ -0,0 +1,17 @@
+package com.zhongzheng.modules.top.financial.bo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author yangdamao
+ * @date 2023年05月18日 11:18
+ */
+@Data
+public class RefundOrderBo implements Serializable {
+
+    private String orderSn;
+
+    private Integer periodStatus;
+}

+ 4 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/bo/TopOldOrderQueryBo.java

@@ -71,6 +71,10 @@ public class TopOldOrderQueryBo extends BaseEntity {
 	private String businessFullName;
 	private String businessFullName;
 	@ApiModelProperty("当前登入人员ID")
 	@ApiModelProperty("当前登入人员ID")
 	private Long loginId;
 	private Long loginId;
+	@ApiModelProperty("教育类型ID")
+	private Long educationTypeId;
+	@ApiModelProperty("业务层次ID")
+	private Long businessId;
 	@ApiModelProperty("开始时间")
 	@ApiModelProperty("开始时间")
 	private Long startTime;
 	private Long startTime;
 	@ApiModelProperty("结束时间")
 	@ApiModelProperty("结束时间")

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopCourseBusinessMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessQueryBo;
 import com.zhongzheng.modules.top.goods.bo.TopCourseBusinessQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopCourseBusiness;
 import com.zhongzheng.modules.top.goods.domain.TopCourseBusiness;
 import com.zhongzheng.modules.top.goods.vo.TopCourseBusinessVo;
 import com.zhongzheng.modules.top.goods.vo.TopCourseBusinessVo;
+import org.apache.ibatis.annotations.Param;
 
 
 import java.util.List;
 import java.util.List;
 
 
@@ -18,4 +19,6 @@ public interface TopCourseBusinessMapper extends BaseMapper<TopCourseBusiness> {
     List<TopCourseBusinessVo> queryList(TopCourseBusinessQueryBo bo);
     List<TopCourseBusinessVo> queryList(TopCourseBusinessQueryBo bo);
 
 
     List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo);
     List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo);
+
+    String getBusinessFullName(@Param("businessId") Long businessId);
 }
 }

+ 6 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/mapper/TopOldOrderMapper.java

@@ -2,9 +2,11 @@ package com.zhongzheng.modules.top.goods.mapper;
 
 
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.zhongzheng.modules.top.financial.bo.RefundOrderBo;
 import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
 import com.zhongzheng.modules.top.financial.vo.TopOrderLogVo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo;
 import com.zhongzheng.modules.top.goods.bo.TopOldOrderQueryBo;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
 import com.zhongzheng.modules.top.goods.domain.TopOldOrder;
+import com.zhongzheng.modules.top.goods.vo.TopOldOrderRefundVo;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderVo;
 import com.zhongzheng.modules.top.goods.vo.TopOldOrderVo;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Param;
 
 
@@ -43,4 +45,8 @@ public interface TopOldOrderMapper extends BaseMapper<TopOldOrder> {
     TopOldOrder getOrderBySn(@Param("orderSn") String orderSn);
     TopOldOrder getOrderBySn(@Param("orderSn") String orderSn);
 
 
     List<TopOrderLogVo> logList(TopOldOrderQueryBo bo);
     List<TopOrderLogVo> logList(TopOldOrderQueryBo bo);
+
+    List<TopOldOrderRefundVo> getRefundOrder(@Param("orderSn") String orderSn);
+
+    List<TopOldOrderRefundVo> getRefundOrderByBo(RefundOrderBo refundOrderBo);
 }
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/ITopCourseBusinessService.java

@@ -53,4 +53,6 @@ public interface ITopCourseBusinessService extends IService<TopCourseBusiness> {
     TopCourseBusiness getEntityById(Long businessId);
     TopCourseBusiness getEntityById(Long businessId);
 
 
 	List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo);
 	List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo);
+
+    String getBusinessFullName(Long businessId);
 }
 }

+ 5 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopCourseBusinessServiceImpl.java

@@ -149,4 +149,9 @@ public class TopCourseBusinessServiceImpl extends ServiceImpl<TopCourseBusinessM
     public List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo) {
     public List<TopCourseBusinessVo> queryAllList(TopCourseBusinessQueryBo bo) {
         return baseMapper.queryAllList(bo);
         return baseMapper.queryAllList(bo);
     }
     }
+
+    @Override
+    public String getBusinessFullName(Long businessId) {
+        return baseMapper.getBusinessFullName(businessId);
+    }
 }
 }

+ 213 - 106
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/service/impl/TopOldOrderServiceImpl.java

@@ -38,6 +38,7 @@ import com.zhongzheng.modules.inform.service.IInformSysUserService;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
 import com.zhongzheng.modules.inform.vo.InformRemindVo;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.Order;
 import com.zhongzheng.modules.order.domain.OrderGoods;
 import com.zhongzheng.modules.order.domain.OrderGoods;
+import com.zhongzheng.modules.order.domain.OrderGoodsRefund;
 import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
 import com.zhongzheng.modules.order.service.IOrderGoodsRefundService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.order.service.IOrderGoodsService;
 import com.zhongzheng.modules.system.bo.SysTenantBadBillConfigBo;
 import com.zhongzheng.modules.system.bo.SysTenantBadBillConfigBo;
@@ -259,6 +260,18 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     @Override
     @Override
     public List<TopOldOrderVo> queryList(TopOldOrderQueryBo bo) {
     public List<TopOldOrderVo> queryList(TopOldOrderQueryBo bo) {
         //查询视图 v_top_order
         //查询视图 v_top_order
+        if (ObjectUtils.isNotNull(bo.getEducationTypeId())){
+            TopCourseEducationType educationType = topCourseEducationTypeService.getById(bo.getEducationTypeId());
+            if (StringUtils.isNotBlank(educationType.getSchemeName())){
+                bo.setBusinessFullName(educationType.getSchemeName() + educationType.getEducationName());
+            }else {
+                bo.setBusinessFullName(educationType.getEducationName());
+            }
+        }
+        if (ObjectUtils.isNotNull(bo.getBusinessId())){
+            String name = topCourseBusinessService.getBusinessFullName(bo.getBusinessId());
+            bo.setBusinessFullName(name);
+        }
         List<TopOldOrderVo> orderVoList = baseMapper.queryList(bo);
         List<TopOldOrderVo> orderVoList = baseMapper.queryList(bo);
         if (CollectionUtils.isNotEmpty(orderVoList)) {
         if (CollectionUtils.isNotEmpty(orderVoList)) {
             //订单业务类型
             //订单业务类型
@@ -279,11 +292,20 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 }
                 }
                 //退款审核角色
                 //退款审核角色
                 if (Arrays.asList(0, 2).contains(item.getRefundStatus())) {
                 if (Arrays.asList(0, 2).contains(item.getRefundStatus())) {
-                    List<TopOldOrderRefund> list = topOldOrderRefundService
-                            .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                                    .eq(TopOldOrderRefund::getOrderSn, item.getOrderSn())
-                                    .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2)));
-                    String refundSn = list.stream().findFirst().get().getRefundSn();
+                    String refundSn = "";
+                    if (item.getOrderFrom() == 1){
+                        List<OrderGoodsRefund> list = orderGoodsRefundService
+                                .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                                        .eq(OrderGoodsRefund::getOrderSn, item.getOrderSn())
+                                        .in(OrderGoodsRefund::getPeriodStatus, Arrays.asList(0, 1, 2)));
+                        refundSn = list.stream().findFirst().get().getRefundSn();
+                    }else {
+                        List<TopOldOrderRefund> list = topOldOrderRefundService
+                                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                        .eq(TopOldOrderRefund::getOrderSn, item.getOrderSn())
+                                        .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2)));
+                        refundSn = list.stream().findFirst().get().getRefundSn();
+                    }
                     TopOldOrderCheckLog checkLog = topOldOrderCheckLogService
                     TopOldOrderCheckLog checkLog = topOldOrderCheckLogService
                             .getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                             .getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                                     .eq(TopOldOrderCheckLog::getRefundSn, refundSn)
                                     .eq(TopOldOrderCheckLog::getRefundSn, refundSn)
@@ -1214,11 +1236,11 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             throw new CustomException("当前账号没有审核权限");
             throw new CustomException("当前账号没有审核权限");
         }
         }
         //退款详情
         //退款详情
-        List<TopOldOrderRefund> orderRefundList = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
-                .eq(TopOldOrderRefund::getPeriodStatus, 2)//待退款
-                .eq(TopOldOrderRefund::getStatus, 1));
+        RefundOrderBo refundOrderBo = new RefundOrderBo();
+        refundOrderBo.setOrderSn(bo.getOrderSn());
+        refundOrderBo.setPeriodStatus(2);//待退款
+        List<TopOldOrderRefundVo> orderRefundList = baseMapper.getRefundOrderByBo(refundOrderBo);
+        orderRefundList.forEach(item -> item.setRealRefundFee(item.getRefundFee()));
         List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
         List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                 .eq(TopOldOrderCheckLog::getRefundSn, orderRefundList.get(0).getRefundSn())
                 .eq(TopOldOrderCheckLog::getRefundSn, orderRefundList.get(0).getRefundSn())
@@ -1237,17 +1259,17 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             throw new CustomException("订单数据错误无法支付");
             throw new CustomException("订单数据错误无法支付");
         }
         }
         //退款金额
         //退款金额
-        BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+        BigDecimal refundPrice = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
         if (order.getOrderFrom() == 3 && bo.getPayType() == 2){
         if (order.getOrderFrom() == 3 && bo.getPayType() == 2){
             if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
             if(Validator.isEmpty(bo.getToBankAcount())||Validator.isEmpty(bo.getToBankName())||Validator.isEmpty(bo.getToBankTypeName())){
                 throw new CustomException("支付参数错误");
                 throw new CustomException("支付参数错误");
             }
             }
             //旧系统B端网银退款处理
             //旧系统B端网银退款处理
-            handleEnterpriseRefund(refundPrice,order,bo);
-            orderRefundList.forEach(x -> x.setPeriodStatus(4));//支付中
-            topOldOrderRefundService.updateBatchById(orderRefundList);
+            Integer sign = handleEnterpriseRefund(refundPrice, order, bo);
+            orderRefundList.forEach(x -> x.setPeriodStatus(sign==2?4:3));//支付中
+            topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefund.class)).collect(Collectors.toList()));
             update(new LambdaUpdateWrapper<TopOldOrder>()
             update(new LambdaUpdateWrapper<TopOldOrder>()
-                    .set(TopOldOrder::getRefundStatus,5) // 支付中
+                    .set(TopOldOrder::getRefundStatus,sign==2?5:3) // 支付中
                     .eq(TopOldOrder::getOrderSn,bo.getOrderSn()));
                     .eq(TopOldOrder::getOrderSn,bo.getOrderSn()));
         }else if (order.getOrderFrom() == 1 && bo.getPayType() == 1){
         }else if (order.getOrderFrom() == 1 && bo.getPayType() == 1){
             //新系统C端微信退款处理
             //新系统C端微信退款处理
@@ -1257,19 +1279,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             String params = JSONArray.toJSONString(orderRefundList);
             String params = JSONArray.toJSONString(orderRefundList);
             try {
             try {
                 respone = HttpUtils.sendPostJsonHeader(REFUND_PAY, params,map);
                 respone = HttpUtils.sendPostJsonHeader(REFUND_PAY, params,map);
-                if (respone.contains("\"code\":200")) {
-                    //已退金额
-                    BigDecimal add = BigDecimal.ZERO;
-                    BigDecimal reduce = orderRefundList.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
-                    Order entity = orderService.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, order.getOrderSn()));
-                    if (ObjectUtils.isNotNull(entity.getOrderRefunded())){
-                        add = entity.getOrderRefunded().add(reduce);
-                    }else {
-                        add = reduce;
-                    }
-                    entity.setOrderRefunded(add);
-                    orderService.updateById(entity);
-                }
             } catch (Exception e) {
             } catch (Exception e) {
                 throw new CustomException("退款支付请求错误"+e.getMessage());
                 throw new CustomException("退款支付请求错误"+e.getMessage());
             }
             }
@@ -1277,13 +1286,13 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             // 旧系统C端微信退款处理
             // 旧系统C端微信退款处理
             checkInform(order.getOrderSn(),orderRefundList.get(0).getType(),"",1,1,"已支付");
             checkInform(order.getOrderSn(),orderRefundList.get(0).getType(),"",1,1,"已支付");
             orderRefundList.forEach(x -> x.setPeriodStatus(3));//已完成
             orderRefundList.forEach(x -> x.setPeriodStatus(3));//已完成
-            topOldOrderRefundService.updateBatchById(orderRefundList);
+            topOldOrderRefundService.updateBatchById(orderRefundList.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefund.class)).collect(Collectors.toList()));
             topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
             topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
             .set(TopOldOrderGoods::getRefundStatus,2)//已退款
             .set(TopOldOrderGoods::getRefundStatus,2)//已退款
-            .in(TopOldOrderGoods::getOrderGoodsId,orderRefundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList())));
+            .in(TopOldOrderGoods::getOrderGoodsId,orderRefundList.stream().map(TopOldOrderRefundVo::getOrderGoodsId).collect(Collectors.toList())));
             //已退金额
             //已退金额
             BigDecimal add = BigDecimal.ZERO;
             BigDecimal add = BigDecimal.ZERO;
-            BigDecimal reduce = orderRefundList.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal reduce = orderRefundList.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
             if (ObjectUtils.isNotNull(order.getOrderRefunded())){
             if (ObjectUtils.isNotNull(order.getOrderRefunded())){
                 add = order.getOrderRefunded().add(reduce);
                 add = order.getOrderRefunded().add(reduce);
             }else {
             }else {
@@ -1302,7 +1311,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         return true;
         return true;
     }
     }
 
 
-    private void handleRefundOrder(List<TopOldOrderRefund> orderRefundList,String inputOrderSn,String tenantId){
+    private void handleRefundOrder(List<TopOldOrderRefundVo> orderRefundList,String inputOrderSn,String tenantId){
         orderRefundList.forEach(refund -> {
         orderRefundList.forEach(refund -> {
             TopOldOrderGoods item = topOrderGoodsService.getById(refund.getOrderGoodsId());
             TopOldOrderGoods item = topOrderGoodsService.getById(refund.getOrderGoodsId());
             User user = userService.getOne(new LambdaQueryWrapper<User>()
             User user = userService.getOne(new LambdaQueryWrapper<User>()
@@ -1338,7 +1347,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
     }
     }
 
 
 
 
-    private void handleEnterpriseRefund(BigDecimal refundPrice,TopOldOrder order,OrderRefundPayBo bo) {
+    private Integer handleEnterpriseRefund(BigDecimal refundPrice,TopOldOrder order,OrderRefundPayBo bo) {
         if (ObjectUtils.isNotNull(order.getOrderUncollected()) && order.getOrderUncollected().compareTo(BigDecimal.ZERO) !=0){
         if (ObjectUtils.isNotNull(order.getOrderUncollected()) && order.getOrderUncollected().compareTo(BigDecimal.ZERO) !=0){
             //存在未收款金额
             //存在未收款金额
             BigDecimal orderUncollected = order.getOrderUncollected();
             BigDecimal orderUncollected = order.getOrderUncollected();
@@ -1392,7 +1401,9 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 throw new CustomException("退款支付请求错误"+e.getMessage());
                 throw new CustomException("退款支付请求错误"+e.getMessage());
             }
             }
             topOrderBankPayService.save(add);
             topOrderBankPayService.save(add);
+            return 2;
         }
         }
+        return 1;
     }
     }
 
 
     @Override
     @Override
@@ -1501,6 +1512,48 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
 
     }
     }
 
 
+    public void informRemindOrderCheck(String result) {
+        //订单审核结果通知
+        List<InformRemindRelevance> remindRelevances = informRemindRelevanceService.list(new LambdaQueryWrapper<InformRemindRelevance>().eq(InformRemindRelevance::getType, 2));
+        if (CollectionUtils.isEmpty(remindRelevances)){
+            return;
+        }
+        InformRemindVo informRemindVo = informRemindService.queryByName("订单审核结果通知");
+        for (InformRemindRelevance remindVo : remindRelevances) {
+            SysUser sysUser = sysUserService.getById(remindVo.getRelevanceId());
+            if (ObjectUtil.isNull(sysUser)) {
+                continue;
+            }
+            if (informRemindVo.getWayStatus().equals(1)) {
+                InformSysUserAddBo informUserAddBo = new InformSysUserAddBo();
+                informUserAddBo.setUserId(sysUser.getUserId());
+                informUserAddBo.setSendStatus(1);
+                informUserAddBo.setSendTime(DateUtils.getNowTime());
+                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+                informUserAddBo.setRemindId(informRemindVo.getId());
+                informUserAddBo.setSystemStatus(1);
+                informUserAddBo.setRemind("订单审核结果通知");
+                informUserAddBo.setText(String.format("订单审核结果通知:%s", result));
+                informSysUserService.insertByAddBo(informUserAddBo);
+            }
+            if (informRemindVo.getNoteStatus().equals(1) && StringUtils.isNotBlank(sysUser.getPhonenumber())) {
+                //短信提醒
+//                InformSysUserAddBo informUserAddBo = new InformSysUserAddBo();
+//                informUserAddBo.setSendStatus(1);
+//                informUserAddBo.setSendTime(DateUtils.getNowTime());
+//                informUserAddBo.setCreateTime(DateUtils.getNowTime());
+//                informUserAddBo.setUpdateTime(DateUtils.getNowTime());
+//                informUserAddBo.setRemindId(informRemindVo.getId());
+//                informUserAddBo.setSystemStatus(3);
+//                informUserAddBo.setRemind("学员退学提醒,请尽快处理");
+//                informUserAddBo.setText(String.format("学员【%s】已退学,请及时处理",userNames.stream().collect(Collectors.joining())));
+
+            }
+        }
+
+    }
+
     @Override
     @Override
     @Transactional(rollbackFor = Exception.class)
     @Transactional(rollbackFor = Exception.class)
     public boolean orderRefundApply(TopOrderRefundApplyBo bo) {
     public boolean orderRefundApply(TopOrderRefundApplyBo bo) {
@@ -1638,21 +1691,19 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         if (ObjectUtils.isNull(orderVo)) {
         if (ObjectUtils.isNull(orderVo)) {
             throw new CustomException("订单号错误!");
             throw new CustomException("订单号错误!");
         }
         }
-        List<TopOldOrderRefund> refunds = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>().eq(TopOldOrderRefund::getOrderSn, orderSn)
-                        .eq(TopOldOrderRefund::getStatus, 1));
+        List<TopOldOrderRefundVo> refunds = baseMapper.getRefundOrder(orderVo.getOrderSn());
         if (CollectionUtils.isEmpty(refunds)) {
         if (CollectionUtils.isEmpty(refunds)) {
             return vo;
             return vo;
         }
         }
         vo.setOrderId(orderVo.getOrderId());
         vo.setOrderId(orderVo.getOrderId());
         vo.setOrderSn(orderVo.getOrderSn());
         vo.setOrderSn(orderVo.getOrderSn());
-        Map<String, List<TopOldOrderRefund>> map = refunds.stream().collect(Collectors.groupingBy(TopOldOrderRefund::getRefundSn));
+        Map<String, List<TopOldOrderRefundVo>> map = refunds.stream().collect(Collectors.groupingBy(TopOldOrderRefundVo::getRefundSn));
         if (map.keySet().size() > 1) {
         if (map.keySet().size() > 1) {
             //订单多次提交申请
             //订单多次提交申请
             map.forEach((k, v) -> {
             map.forEach((k, v) -> {
                 if (v.get(0).getPeriodStatus() == 0 || v.get(0).getPeriodStatus() == 1 || v.get(0).getPeriodStatus() == 2) {
                 if (v.get(0).getPeriodStatus() == 0 || v.get(0).getPeriodStatus() == 1 || v.get(0).getPeriodStatus() == 2) {
                     vo.setRefundSn(k);
                     vo.setRefundSn(k);
-                    BigDecimal reduce = v.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    BigDecimal reduce = v.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     vo.setRefundFee(reduce);
                     vo.setRefundFee(reduce);
                     vo.setRefundReason(v.get(0).getApplyReason());
                     vo.setRefundReason(v.get(0).getApplyReason());
                     vo.setApplyTime(v.get(0).getCreateTime());
                     vo.setApplyTime(v.get(0).getCreateTime());
@@ -1660,7 +1711,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             });
             });
         } else {
         } else {
             vo.setRefundSn(refunds.get(0).getRefundSn());
             vo.setRefundSn(refunds.get(0).getRefundSn());
-            BigDecimal reduce = refunds.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal reduce = refunds.stream().map(TopOldOrderRefundVo::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
             vo.setRefundFee(reduce);
             vo.setRefundFee(reduce);
             vo.setRefundReason(refunds.get(0).getApplyReason());
             vo.setRefundReason(refunds.get(0).getApplyReason());
             vo.setApplyTime(refunds.get(0).getCreateTime());
             vo.setApplyTime(refunds.get(0).getCreateTime());
@@ -1704,15 +1755,25 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 if (collect.stream().anyMatch(x -> x.getCheckSign() == 1)) {
                 if (collect.stream().anyMatch(x -> x.getCheckSign() == 1)) {
                     vo.setCheckType(3);
                     vo.setCheckType(3);
                     //获取退款金额
                     //获取退款金额
-                    List<TopOldOrderRefund> list = topOldOrderRefundService
-                            .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                                    .eq(TopOldOrderRefund::getOrderSn, orderSn)
-                                    .eq(TopOldOrderRefund::getPeriodStatus, 2)//待退款
-                                    .eq(TopOldOrderRefund::getStatus, 1));
-                    if (CollectionUtils.isEmpty(list)){
-                        throw new CustomException("订单退款信息获取失败!");
+                    BigDecimal reduce = BigDecimal.ZERO;
+                    if (orderVo.getOrderFrom() == 1){
+                        List<OrderGoodsRefund> list = orderGoodsRefundService
+                                .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                                .eq(OrderGoodsRefund::getOrderSn, orderSn)
+                                .eq(OrderGoodsRefund::getPeriodStatus, 2)//待退款
+                                .eq(OrderGoodsRefund::getStatus, 1));
+                        reduce = list.stream().map(OrderGoodsRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
+                    }else {
+                        List<TopOldOrderRefund> list = topOldOrderRefundService
+                                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                        .eq(TopOldOrderRefund::getOrderSn, orderSn)
+                                        .eq(TopOldOrderRefund::getPeriodStatus, 2)//待退款
+                                        .eq(TopOldOrderRefund::getStatus, 1));
+                        if (CollectionUtils.isEmpty(list)){
+                            throw new CustomException("订单退款信息获取失败!");
+                        }
+                        reduce = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     }
                     }
-                    BigDecimal reduce = list.stream().map(TopOldOrderRefund::getRefundFee).reduce(BigDecimal.ZERO, BigDecimal::add);
                     vo.setRefundMoney(reduce);
                     vo.setRefundMoney(reduce);
                     vo.setPayType(orderVo.getPayType());
                     vo.setPayType(orderVo.getPayType());
                     vo.setBuyTime(orderVo.getBuyTime());
                     vo.setBuyTime(orderVo.getBuyTime());
@@ -1769,16 +1830,32 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
         }
         }
         List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
         List<Long> roleIds = userRoleList.stream().map(TopSysUserRole::getRoleId).collect(Collectors.toList());
         //找到当前申请退款的退款单号
         //找到当前申请退款的退款单号
-        List<TopOldOrderRefund> refundList = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                        .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
-                        .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
-                        .eq(TopOldOrderRefund::getStatus, 1));
-        if (CollectionUtils.isEmpty(refundList)) {
-            throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
-        }
-        String refundSn = refundList.get(0).getRefundSn();
-        Integer type = refundList.get(0).getType();
+        String refundSn = "";
+        Integer type = 0;
+        if (order.getOrderFrom() == 1){
+            List<OrderGoodsRefund> refundList = orderGoodsRefundService
+                    .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                            .eq(OrderGoodsRefund::getOrderSn, bo.getOrderSn())
+                            .in(OrderGoodsRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
+                            .eq(OrderGoodsRefund::getStatus, 1));
+            if (CollectionUtils.isEmpty(refundList)) {
+                throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
+            }
+            refundSn = refundList.get(0).getRefundSn();
+            type = refundList.get(0).getType();
+        }else {
+            List<TopOldOrderRefund> refundList = topOldOrderRefundService
+                    .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                            .eq(TopOldOrderRefund::getOrderSn, bo.getOrderSn())
+                            .in(TopOldOrderRefund::getPeriodStatus, Arrays.asList(0, 1, 2))
+                            .eq(TopOldOrderRefund::getStatus, 1));
+            if (CollectionUtils.isEmpty(refundList)) {
+                throw new CustomException("当前订单没有申请退款!请检查:" + bo.getOrderSn());
+            }
+            refundSn = refundList.get(0).getRefundSn();
+            type = refundList.get(0).getType();
+        }
+
         //当前退款流程
         //当前退款流程
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
         TopOldOrderCheckLog checkLog = topOldOrderCheckLogService.getOne(new LambdaQueryWrapper<TopOldOrderCheckLog>()
                 .eq(TopOldOrderCheckLog::getRefundSn, refundSn).eq(TopOldOrderCheckLog::getStatus, 1)
                 .eq(TopOldOrderCheckLog::getRefundSn, refundSn).eq(TopOldOrderCheckLog::getStatus, 1)
@@ -1837,37 +1914,27 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
 
 
         } else {
         } else {
             //初审拒绝
             //初审拒绝
-            //处理订单状态
-            List<TopOldOrderRefund> refundList = topOldOrderRefundService
-                    .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                            .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
-                            .eq(TopOldOrderRefund::getStatus, 1));
-            List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
-            for (TopOldOrderRefund item : refundList) {
-                item.setPeriodStatus(-1);//拒绝退款
-            }
-            topOldOrderRefundService.updateBatchById(refundList);
-            topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
-                    .set(TopOldOrderGoods::getRefundStatus, 3)//未通过
-                    .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
-
-            update(new LambdaUpdateWrapper<TopOldOrder>()
-                    .set(TopOldOrder::getRefundStatus, 4) //未通过
-                    .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
-            //订单处理
-            TopOldOrder order = baseMapper.getOrderBySn(refundList.get(0).getOrderSn());
             // 订单退款通知业务系统
             // 订单退款通知业务系统
             if (oldOrder.getOrderFrom() != 1){
             if (oldOrder.getOrderFrom() != 1){
-                checkInform(order.getOrderSn(),type,bo.getCheckReason(),2,1,String.format("未通过(%s)",bo.getCheckRoleName()));
-            }
+                checkInform(oldOrder.getOrderSn(),type,bo.getCheckReason(),2,1,String.format("未通过(%s)",bo.getCheckRoleName()));
+                //处理订单状态
+                List<TopOldOrderRefund> refundList = topOldOrderRefundService
+                        .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                                .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
+                                .eq(TopOldOrderRefund::getStatus, 1));
+                List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
+                for (TopOldOrderRefund item : refundList) {
+                    item.setPeriodStatus(-1);//拒绝退款
+                }
+                topOldOrderRefundService.updateBatchById(refundList);
+                topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+                        .set(TopOldOrderGoods::getRefundStatus, 3)//未通过
+                        .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
 
 
-            if (order.getOrderFrom() == 1) {
-                //新系统订单
-                orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
-                        .set(OrderGoods::getRefundStatus, 3)
-                        .in(OrderGoods::getOrderGoodsId, orderGoodsIds));
-            } else {
-                if (order.getOrderBase() == 1){
+                update(new LambdaUpdateWrapper<TopOldOrder>()
+                        .set(TopOldOrder::getRefundStatus, 4) //未通过
+                        .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
+                if (oldOrder.getOrderBase() == 1){
                     //底单在新系统
                     //底单在新系统
                     List<TopOldOrderGoods> orderGoods = topOrderGoodsService.listByIds(orderGoodsIds);
                     List<TopOldOrderGoods> orderGoods = topOrderGoodsService.listByIds(orderGoodsIds);
                     orderGoods.forEach(item -> {
                     orderGoods.forEach(item -> {
@@ -1877,7 +1944,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                             //处理新系统订单商品
                             //处理新系统订单商品
                             List<Order> list = orderService
                             List<Order> list = orderService
                                     .list(new LambdaUpdateWrapper<Order>()
                                     .list(new LambdaUpdateWrapper<Order>()
-                                            .eq(Order::getInputOrderSn, order.getInputOrderSn())
+                                            .eq(Order::getInputOrderSn, oldOrder.getInputOrderSn())
                                             .eq(Order::getStatus, 1)
                                             .eq(Order::getStatus, 1)
                                             .eq(Order::getUserId, user.getUserId()));
                                             .eq(Order::getUserId, user.getUserId()));
                             if (CollectionUtils.isNotEmpty(list)) {
                             if (CollectionUtils.isNotEmpty(list)) {
@@ -1895,7 +1962,27 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                         }
                         }
                     });
                     });
                 }
                 }
+            }else {
+                //新系统订单
+                //处理订单状态
+                List<OrderGoodsRefund> refundList = orderGoodsRefundService
+                        .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                                .eq(OrderGoodsRefund::getRefundSn, checkLog.getRefundSn())
+                                .eq(OrderGoodsRefund::getStatus, 1));
+                List<Long> orderGoodsIds = refundList.stream().map(OrderGoodsRefund::getOrderGoodsId).collect(Collectors.toList());
+                for (OrderGoodsRefund item : refundList) {
+                    item.setPeriodStatus(-1);//拒绝退款
+                }
+                orderGoodsRefundService.updateBatchById(refundList);
+                orderGoodsService.update(new LambdaUpdateWrapper<OrderGoods>()
+                        .set(OrderGoods::getRefundStatus, 3)//未通过
+                        .in(OrderGoods::getOrderGoodsId, orderGoodsIds));
+
+               orderService.update(new LambdaUpdateWrapper<Order>()
+                        .set(Order::getRefundStatus, 4) //未通过
+                        .eq(Order::getOrderSn, refundList.get(0).getOrderSn()));
             }
             }
+
         }
         }
     }
     }
 
 
@@ -1972,32 +2059,53 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 check.setCheckSign(1);//开启当前流程
                 check.setCheckSign(1);//开启当前流程
                 topOldOrderCheckLogService.updateById(check);
                 topOldOrderCheckLogService.updateById(check);
             }
             }
+            //消息通知
+            informRemindOrderCheck(String.format("【%s】订单已通过【%s】审核",bo.getOrderSn(),bo.getCheckRoleName()));
         }
         }
         TopOldOrder oldOrder = baseMapper.getOrderBySn(bo.getOrderSn());
         TopOldOrder oldOrder = baseMapper.getOrderBySn(bo.getOrderSn());
         if (oldOrder.getOrderFrom() != 1){
         if (oldOrder.getOrderFrom() != 1){
             checkInform(bo.getOrderSn(),type,bo.getCheckReason(),1,0,String.format("%s(%s)",
             checkInform(bo.getOrderSn(),type,bo.getCheckReason(),1,0,String.format("%s(%s)",
                     periodStatus == 2?"待付款":"审核中",
                     periodStatus == 2?"待付款":"审核中",
                     bo.getCheckRoleName()));
                     bo.getCheckRoleName()));
-        }
+            //处理订单状态
+            List<TopOldOrderRefund> refundList = topOldOrderRefundService
+                    .list(new LambdaQueryWrapper<TopOldOrderRefund>()
+                            .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
+                            .eq(TopOldOrderRefund::getStatus, 1));
+            List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
+            for (TopOldOrderRefund item : refundList) {
+                item.setPeriodStatus(periodStatus);
+            }
+            topOldOrderRefundService.updateBatchById(refundList);
+            topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+                    .set(TopOldOrderGoods::getRefundStatus, refundStatus)
+                    .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
 
 
-        //处理订单状态
-        List<TopOldOrderRefund> refundList = topOldOrderRefundService
-                .list(new LambdaQueryWrapper<TopOldOrderRefund>()
-                        .eq(TopOldOrderRefund::getRefundSn, checkLog.getRefundSn())
-                        .eq(TopOldOrderRefund::getStatus, 1));
-        List<Long> orderGoodsIds = refundList.stream().map(TopOldOrderRefund::getOrderGoodsId).collect(Collectors.toList());
-        for (TopOldOrderRefund item : refundList) {
-            item.setPeriodStatus(periodStatus);
-        }
-        topOldOrderRefundService.updateBatchById(refundList);
-        topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
-                .set(TopOldOrderGoods::getRefundStatus, refundStatus)
-                .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
+            if (periodStatus == 2) {
+                update(new LambdaUpdateWrapper<TopOldOrder>()
+                        .set(TopOldOrder::getRefundStatus, 2) //未退款
+                        .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
+            }
+        }else {
+            //新云学堂订单
+            List<OrderGoodsRefund> refundList = orderGoodsRefundService
+                    .list(new LambdaQueryWrapper<OrderGoodsRefund>()
+                            .eq(OrderGoodsRefund::getRefundSn, checkLog.getRefundSn())
+                            .eq(OrderGoodsRefund::getStatus, 1));
+            List<Long> orderGoodsIds = refundList.stream().map(OrderGoodsRefund::getOrderGoodsId).collect(Collectors.toList());
+            for (OrderGoodsRefund item : refundList) {
+                    item.setPeriodStatus(periodStatus);
+            }
+            orderGoodsRefundService.updateBatchById(refundList);
+            topOrderGoodsService.update(new LambdaUpdateWrapper<TopOldOrderGoods>()
+                    .set(TopOldOrderGoods::getRefundStatus, refundStatus)
+                    .in(TopOldOrderGoods::getOrderGoodsId, orderGoodsIds));
 
 
-        if (periodStatus == 2) {
-            update(new LambdaUpdateWrapper<TopOldOrder>()
-                    .set(TopOldOrder::getRefundStatus, 2) //未退款
-                    .eq(TopOldOrder::getOrderSn, refundList.get(0).getOrderSn()));
+            if (periodStatus == 2) {
+                orderService.update(new LambdaUpdateWrapper<Order>()
+                                    .set(Order::getRefundStatus, 2) //未退款
+                                    .eq(Order::getOrderSn, refundList.get(0).getOrderSn()));
+            }
         }
         }
     }
     }
 
 
@@ -2856,7 +2964,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
             updateById(order);
             updateById(order);
             //订单在新系统 处理订单
             //订单在新系统 处理订单
             if (bo.getStatus() == 1 && order.getOrderBase() == 1 && ObjectUtils.isNotNull(order.getInputOrderSn())){
             if (bo.getStatus() == 1 && order.getOrderBase() == 1 && ObjectUtils.isNotNull(order.getInputOrderSn())){
-                handleRefundOrder(list,order.getInputOrderSn(),order.getTenantId().toString());
+                handleRefundOrder(list.stream().map(x -> BeanUtil.toBean(x,TopOldOrderRefundVo.class)).collect(Collectors.toList()),order.getInputOrderSn(),order.getTenantId().toString());
             }
             }
             checkInform(order.getOrderSn(),list.get(0).getType(),"",1,1,bo.getStatus() == 1?"已支付":"支付失败");
             checkInform(order.getOrderSn(),list.get(0).getType(),"",1,1,bo.getStatus() == 1?"已支付":"支付失败");
             return true;
             return true;
@@ -2876,7 +2984,6 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
                 divideLog.setPayStatus(1);
                 divideLog.setPayStatus(1);
                 divideLog.setPayTime(DateUtils.getNowTime());
                 divideLog.setPayTime(DateUtils.getNowTime());
                 iTopDivideOrderService.updateCheckStatusById(bankPay);
                 iTopDivideOrderService.updateCheckStatusById(bankPay);
-
             }
             }
             if(bo.getStatus()==0){
             if(bo.getStatus()==0){
                 bankPay.setResultStatus(-1);
                 bankPay.setResultStatus(-1);

+ 13 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/top/goods/vo/TopOldOrderRefundVo.java

@@ -89,4 +89,17 @@ public class TopOldOrderRefundVo {
 	@Excel(name = "退款时间")
 	@Excel(name = "退款时间")
 	@ApiModelProperty("退款时间")
 	@ApiModelProperty("退款时间")
 	private Long refundTime;
 	private Long refundTime;
+
+	@ApiModelProperty("退款订单类型:1新系统,2旧系统")
+	private Integer refundType;
+
+	@ApiModelProperty("分成模式 1机构分成 2业务员分成")
+	private Integer divideModel;
+
+	@ApiModelProperty("待扣分成钱")
+	private BigDecimal divideMoney;
+
+	private Long createTime;
+
+	private Long updateTime;
 }
 }

+ 9 - 0
zhongzheng-system/src/main/resources/mapper/modules/top/TopCourseBusinessMapper.xml

@@ -62,6 +62,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         order by b.sort
         order by b.sort
     </select>
     </select>
 
 
+    <select id="getBusinessFullName" parameterType="java.lang.Long"  resultType="java.lang.String">
+        SELECT
+            CONCAT(cet.scheme_name,cet.education_name,IFNULL(cb.old_business_name, CONCAT(cb.business_name,cpt.project_name))) as `name`
+        FROM top_course_business cb
+                 LEFT JOIN top_course_project_type cpt ON cb.project_id = cpt.id
+                 LEFT JOIN top_course_education_type cet ON cpt.education_id = cet.id
+        WHERE cb.id = #{businessId}
+    </select>
+
     <select id="queryList" parameterType="com.zhongzheng.modules.course.bo.CourseBusinessQueryBo"  resultMap="TopCourseBusinessVoResult">
     <select id="queryList" parameterType="com.zhongzheng.modules.course.bo.CourseBusinessQueryBo"  resultMap="TopCourseBusinessVoResult">
         SELECT
         SELECT
         b.*,
         b.*,

+ 21 - 8
zhongzheng-system/src/main/resources/mapper/modules/top/TopOldOrderMapper.xml

@@ -47,7 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         FROM
         FROM
                 ( SELECT DISTINCT order_sn
                 ( SELECT DISTINCT order_sn
                 <if test="businessFullName != null and businessFullName != '' and (userCard == null or userCard == '')">
                 <if test="businessFullName != null and businessFullName != '' and (userCard == null or userCard == '')">
-                    FROM `v_top_order_business`  where business_full_name = #{businessFullName}
+                    FROM `v_top_order_business`  where INSTR( business_full_name,#{businessFullName} ) > 0
                 </if>
                 </if>
                 <if test="userCard != null and userCard != '' and (businessFullName == null and businessFullName == '')">
                 <if test="userCard != null and userCard != '' and (businessFullName == null and businessFullName == '')">
                     FROM `v_top_order_card`  where user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
                     FROM `v_top_order_card`  where user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
@@ -57,7 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                     SELECT
                     SELECT
                     DISTINCT order_sn
                     DISTINCT order_sn
                     FROM
                     FROM
-                    ( SELECT order_sn FROM v_top_order_business WHERE business_full_name = #{businessFullName} UNION ALL SELECT order_sn FROM v_top_order_card
+                    ( SELECT order_sn FROM v_top_order_business WHERE INSTR( business_full_name,#{businessFullName} ) > 0  UNION ALL SELECT order_sn FROM v_top_order_card
                     WHERE user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}) b
                     WHERE user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}) b
                     ) m
                     ) m
                 </if>
                 </if>
@@ -71,8 +71,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 </if>
                 </if>
                  ) a
                  ) a
                     LEFT JOIN v_top_order vto ON a.order_sn = vto.order_sn
                     LEFT JOIN v_top_order vto ON a.order_sn = vto.order_sn
-        WHERE vto.`status` = 1
-        <if test="checkStatus != null and checkStatus != ''">
+        WHERE vto.`status` in (0,1)
+        <if test="checkStatus != null">
             AND vto.check_status = #{checkStatus}
             AND vto.check_status = #{checkStatus}
         </if>
         </if>
         <if test="refundStatusList != null and refundStatusList.size()!=0 ">
         <if test="refundStatusList != null and refundStatusList.size()!=0 ">
@@ -124,7 +124,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE
         WHERE
         1 = 1
         1 = 1
         <if test="businessFullName != null and businessFullName != ''">
         <if test="businessFullName != null and businessFullName != ''">
-            AND otg.business_full_name = #{businessFullName}
+            AND INSTR( otg.business_full_name , #{businessFullName} ) > 0
         </if>
         </if>
         <if test="userCard != null and userCard != ''">
         <if test="userCard != null and userCard != ''">
             AND otg.user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
             AND otg.user_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler}
@@ -184,7 +184,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
             LEFT JOIN course_project_type cpt ON g.project_id = cpt.id
             LEFT JOIN course_business cb ON g.business_id = cb.id
             LEFT JOIN course_business cb ON g.business_id = cb.id
             WHERE
             WHERE
-            og.goods_id = g.goods_id AND CONCAT('学校业务', cet.education_name, cb.business_name, cpt.project_name) = #{businessFullName}) > 0
+            og.goods_id = g.goods_id
+              AND
+            INSTR( CONCAT('学校业务', cet.education_name, cb.business_name, cpt.project_name),#{businessFullName}) > 0) > 0
         </if>
         </if>
         <if test="userCard != null and userCard != ''">
         <if test="userCard != null and userCard != ''">
             AND o.user_id = (SELECT user_id FROM `user` WHERE id_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler})
             AND o.user_id = (SELECT user_id FROM `user` WHERE id_card = #{userCard,typeHandler=com.zhongzheng.common.type.EncryptHandler})
@@ -199,10 +201,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </foreach>
             </foreach>
         </if>
         </if>
         <if test="creditStatus != null and creditStatus != '' and creditStatus == 0">
         <if test="creditStatus != null and creditStatus != '' and creditStatus == 0">
-            AND o.order_received <![CDATA[ < ]]> ot.pay_price
+            AND o.order_received <![CDATA[ < ]]> o.pay_price
         </if>
         </if>
         <if test="creditStatus != null and creditStatus != '' and creditStatus == 1">
         <if test="creditStatus != null and creditStatus != '' and creditStatus == 1">
-            AND o.pay_price = ot.order_received
+            AND o.pay_price = o.order_received
         </if>
         </if>
         <if test="invoiceStatus != null and invoiceStatus != ''">
         <if test="invoiceStatus != null and invoiceStatus != ''">
             AND o.invoice_status = #{invoiceStatus}
             AND o.invoice_status = #{invoiceStatus}
@@ -399,4 +401,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT * FROM top_order_log WHERE order_sn = #{orderSn}
         SELECT * FROM top_order_log WHERE order_sn = #{orderSn}
     </select>
     </select>
 
 
+    <select id="getRefundOrder" parameterType="java.lang.String" resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderRefundVo">
+        SELECT * FROM v_top_order_refund WHERE order_sn = #{orderSn}
+    </select>
+
+    <select id="getRefundOrderByBo" parameterType="com.zhongzheng.modules.top.financial.bo.RefundOrderBo" resultType="com.zhongzheng.modules.top.goods.vo.TopOldOrderRefundVo">
+        SELECT * FROM v_top_order_refund WHERE order_sn = #{orderSn} AND status = 1
+        <if test="periodStatus != null and periodStatus != ''">
+            AND period_status = #{periodStatus}
+        </if>
+    </select>
+
 </mapper>
 </mapper>