From 0d0a028920745bcdc5d9ddbf0ab3cbccfe167c63 Mon Sep 17 00:00:00 2001 From: cloudroam <cloudroam> Date: 星期三, 27 十一月 2024 14:24:36 +0800 Subject: [PATCH] 568-供应商财务统计优化:查询速度慢 --- src/main/resources/mapper/wallet/WalletBillRecordMapper.xml | 25 +++++++++++++++++-------- 1 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml index 37f7e00..088d280 100644 --- a/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml +++ b/src/main/resources/mapper/wallet/WalletBillRecordMapper.xml @@ -59,13 +59,22 @@ order by wbr.create_time desc </select> <select id="queryPage" resultType="com.mzl.flower.dto.response.wallet.WalletBillRecordVO"> - select t.* ,s.name supplierName ,w.approve_time as approveTime ,u.nick_name AS approveName from t_wallet_bill_record t - left join t_supplier_info s on t.supplier_id = s.id - left join t_wallet_withdraw_record w on t.withdraw_record_id = w.id - LEFT JOIN t_user u ON t.approve_by = u.id - where t.deleted= 0 +-- select t.* ,s.name supplierName ,w.approve_time as approveTime ,u.nick_name AS approveName from t_wallet_bill_record t +-- left join t_supplier_info s on t.supplier_id = s.id +-- left join t_wallet_withdraw_record w on t.withdraw_record_id = w.id +-- LEFT JOIN t_user u ON t.approve_by = u.id +-- where t.deleted= 0 + SELECT + t.*, + (SELECT s.name FROM t_supplier_info s WHERE s.id = t.supplier_id) AS supplierName, + (SELECT w.approve_time FROM t_wallet_withdraw_record w WHERE w.id = t.withdraw_record_id) AS approveTime, + (SELECT u.nick_name FROM t_user u WHERE u.id = t.approve_by) AS approveName + FROM + t_wallet_bill_record t + WHERE + t.deleted = 0 <if test="dto.supplierName != null and dto.supplierName != ''"> - and s.name like concat('%', #{dto.supplierName}, '%') + AND (SELECT s.name FROM t_supplier_info s WHERE s.id = t.supplier_id) LIKE CONCAT('%', #{dto.supplierName}, '%') </if> <if test="dto.supplierId != null and dto.supplierId != ''"> and t.supplier_id = #{dto.supplierId} @@ -83,10 +92,10 @@ AND DATE_FORMAT(t.create_time, '%Y-%m-%d') <= #{dto.endEndDate} </if> <if test="dto.approveStartDate!=null "> - AND DATE_FORMAT(w.approve_time, '%Y-%m-%d') >= #{dto.approveStartDate} + AND DATE_FORMAT((SELECT w.approve_time FROM t_wallet_withdraw_record w WHERE w.id = t.withdraw_record_id), '%Y-%m-%d') >= #{dto.approveStartDate} </if> <if test="dto.approveEndDate!=null "> - AND DATE_FORMAT(w.approve_time, '%Y-%m-%d') <= #{dto.approveEndDate} + AND DATE_FORMAT((SELECT w.approve_time FROM t_wallet_withdraw_record w WHERE w.id = t.withdraw_record_id), '%Y-%m-%d') <= #{dto.approveEndDate} </if> order by t.create_time desc </select> -- Gitblit v1.9.3