liujie
2025-07-18 a00c6d07e4c8eb629e5ffe4661dcde2686c1df53
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/OrderServiceImpl.java
@@ -69,6 +69,10 @@
    private CompanyTypeService companyTypeService;
    @Resource
    private AccountDetailMapper accountDetailMapper;
    @Override
    public IPage<OrderPageVO> getOrderPage(OrderPageDTO dto) {
        IPage<OrderPageVO> page = new Page<>(dto.getPageNum(), dto.getPageSize());
@@ -614,6 +618,15 @@
            order.setRefundTime(LocalDateTime.now());
            companyMapper.updateById(company);
        }else{
            // 判断是否能退
            if(order.getShareUserId()!=null){
                User user = appUserMapper.selectById(order.getShareUserId());
                if(user.getBalance().doubleValue()<order.getCommissionPrice().doubleValue()){
                    throw new ServiceException("退款失败,卖家上级余额不足");
                }
            }
            R r = refundPayMoney(order);//退款
            if (200 == r.getCode()) {
                //退款申请成功
@@ -683,14 +696,29 @@
        order.setIsRefund(1);
        order.setRefundTime(LocalDateTime.now());
        this.baseMapper.updateById(order);
        //将分佣次数加回
        User user = appUserMapper.selectById(order.getUserId());
        User inviter = appUserMapper.selectById(user.getInviteId());
        User inviter = appUserMapper.selectById(company.getUserId());
        if (inviter!=null && inviter.getIsDelete()==0){
            inviter.setInviteNum(inviter.getInviteNum()+1);
            appUserMapper.updateById(inviter);
        }
        // 分佣退回
        if(order.getShareUserId()!=null && order.getCommissionPrice().doubleValue()>0){
            User user = appUserMapper.selectById(order.getShareUserId());
            user.setBalance(user.getBalance().subtract(order.getCommissionPrice()));
            appUserMapper.updateById(user);
            AccountDetail accountDetail = new AccountDetail();
            accountDetail.setUserId(order.getShareUserId());
            accountDetail.setType(2);
            accountDetail.setCategory(4);
            accountDetail.setSourceId(order.getId());
            accountDetail.setMoney(order.getCommissionPrice());
            accountDetail.setRemark("订单取消分佣退回");
            accountDetailMapper.insert(accountDetail);
        }
        //商品状态修改
        company.setStatus(1);
        companyMapper.updateById(company);