rk
20 小时以前 095210f9149c73e6e00d997b39fd6c44a65e4d38
server/services/src/main/java/com/doumee/service/business/impl/WithdrawalOrdersServiceImpl.java
@@ -182,13 +182,17 @@
        if (pageWrap.getModel().getCreateEndTime() != null) {
            queryWrapper.le(WithdrawalOrders::getCreateTime, Utils.Date.getEnd(pageWrap.getModel().getCreateEndTime()));
        }
        for (PageWrap.SortData sortData : pageWrap.getSorts()) {
            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
                queryWrapper.orderByDesc(sortData.getProperty());
            } else {
                queryWrapper.orderByAsc(sortData.getProperty());
            }
        // 门店端:按门店名称或联系人模糊搜索
        if (StringUtils.isNotBlank(pageWrap.getModel().getShopName())) {
            queryWrapper.and(i -> i.like(ShopInfo::getName, pageWrap.getModel().getShopName())
                    .or().like(ShopInfo::getLinkName, pageWrap.getModel().getShopName()));
        }
        // 司机端:按司机姓名模糊搜索
        if (StringUtils.isNotBlank(pageWrap.getModel().getMemberName())) {
            queryWrapper.like(DriverInfo::getName, pageWrap.getModel().getMemberName());
        }
        queryWrapper.orderByDesc(WithdrawalOrders::getId);
        return PageData.from(withdrawalOrdersMapper.selectJoinPage(page, WithdrawalOrders.class, queryWrapper));
    }
@@ -208,7 +212,10 @@
        queryWrapper.select("IFNULL(SUM(amount), 0) as amount");
        Utils.MP.blankToNull(pageWrap.getModel());
        queryWrapper.lambda().eq(WithdrawalOrders::getDeleted, Constants.ZERO);
        queryWrapper.lambda().in(WithdrawalOrders::getStatus, Arrays.asList(Constants.ZERO, Constants.ONE));
        queryWrapper.lambda().eq(WithdrawalOrders::getStatus, Constants.ONE);
        if (pageWrap.getModel().getMemberType() != null) {
            queryWrapper.lambda().eq(WithdrawalOrders::getMemberType, pageWrap.getModel().getMemberType());
        }
        if (pageWrap.getModel().getOutBillNo() != null) {
            queryWrapper.lambda().like(WithdrawalOrders::getOutBillNo, pageWrap.getModel().getOutBillNo());
        }
@@ -273,7 +280,7 @@
                    }
                } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) {
                    ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
                            .eq(ShopInfo::getRegionMemberId, order.getMemberId())
                            .eq(ShopInfo::getId, order.getMemberId())
                            .eq(ShopInfo::getDeleted, Constants.ZERO)
                            .last("limit 1"));
                    if (shop != null) {
@@ -293,7 +300,7 @@
                    }
                } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) {
                    ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
                            .eq(ShopInfo::getRegionMemberId, order.getMemberId())
                            .eq(ShopInfo::getId, order.getMemberId())
                            .eq(ShopInfo::getDeleted, Constants.ZERO)
                            .last("limit 1"));
                    if (shop != null) {
@@ -378,7 +385,7 @@
                } else if (Constants.equalsInteger(order.getMemberType(), Constants.TWO)) {
                    // 门店:通过 memberId 查 ShopInfo,退回 balance
                    ShopInfo shop = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda()
                            .eq(ShopInfo::getRegionMemberId, order.getMemberId())
                            .eq(ShopInfo::getId, order.getMemberId())
                            .eq(ShopInfo::getDeleted, Constants.ZERO)
                            .last("limit 1"));
                    if (shop != null) {
@@ -478,12 +485,22 @@
        order.setType(Constants.ZERO);
        order.setOutBillNo(billNo);
        order.setAliAccount(dto.getAliAccount());
        order.setAliName(driver.getAliName());
        order.setAliName(dto.getAliName());
        order.setDeleted(Constants.ZERO);
        order.setCreateTime(now);
        order.setUpdateTime(now);
        order.setCreateUser(memberId);
        withdrawalOrdersMapper.insert(order);
        // 支付宝账户或姓名有变化时更新司机信息
        boolean aliChanged = !dto.getAliAccount().equals(driver.getAliAccount())
                || (dto.getAliName() != null && !dto.getAliName().equals(driver.getAliName()));
        if (aliChanged) {
            DriverInfo update = new DriverInfo();
            update.setId(driver.getId());
            update.setAliAccount(dto.getAliAccount());
            update.setAliName(dto.getAliName());
            driverInfoMapper.updateById(update);
        }
        // 创建支出 Revenue 记录
        Revenue revenue = new Revenue();
        revenue.setMemberId(memberId);
@@ -523,22 +540,32 @@
                .eq(ShopInfo::getId, shopId));
        // 创建提现记录
        WithdrawalOrders order = new WithdrawalOrders();
        order.setMemberId(shop.getRegionMemberId());
        order.setMemberId(shop.getId());
        order.setMemberType(Constants.TWO);
        order.setAmount(amountFen);
        order.setStatus(Constants.ZERO);
        order.setType(Constants.ZERO);
        order.setOutBillNo(billNo);
        order.setAliAccount(dto.getAliAccount());
        order.setAliName(shop.getAliName());
        order.setAliName(dto.getAliName());
        order.setDeleted(Constants.ZERO);
        order.setCreateTime(now);
        order.setUpdateTime(now);
        order.setCreateUser(shop.getRegionMemberId());
        withdrawalOrdersMapper.insert(order);
        // 支付宝账户或姓名有变化时更新门店信息
        boolean aliChanged = !dto.getAliAccount().equals(shop.getAliAccount())
                || (dto.getAliName() != null && !dto.getAliName().equals(shop.getAliName()));
        if (aliChanged) {
            ShopInfo update = new ShopInfo();
            update.setId(shopId);
            update.setAliAccount(dto.getAliAccount());
            update.setAliName(dto.getAliName());
            shopInfoMapper.updateById(update);
        }
        // 创建支出 Revenue 记录
        Revenue revenue = new Revenue();
        revenue.setMemberId(shop.getRegionMemberId());
        revenue.setMemberId(shop.getId());
        revenue.setMemberType(Constants.TWO);
        revenue.setType(Constants.ONE); // 1=提现支出
        revenue.setOptType(-Constants.ONE); // -1=支出