xuhy
2025-04-27 5fa6e6f8410ef9d057174bcff2a3c5038c54a551
ruoyi-system/src/main/resources/mapper/system/TFlowManagementMapper.xml
@@ -28,4 +28,49 @@
        id, sys_serial_number, bank_serial_number, flow_money, deduction_money, remaining_money, pay_time, payer, flow_status, flow_type, pay_type, payment_bill_id, create_time, update_time, create_by, update_by, disabled
    </sql>
    <!-- 定义结果映射 -->
    <resultMap id="PaymentStatsResultMap" type="com.ruoyi.system.vo.TFlowManagementStatisticsVo">
        <result property="totalAmount" column="total_amount" />
        <result property="wechatAmount" column="wechat_amount" />
        <result property="alipayAmount" column="alipay_amount" />
        <result property="offlineAmount" column="offline_amount" />
    </resultMap>
    <!-- 统计总额和微信支付金额 -->
    <select id="getPaymentStats" resultMap="PaymentStatsResultMap">
        SELECT ifnull(SUM(pre_outstand-remaining_money),0) AS total_amount,
        ifnull(SUM(CASE WHEN pay_type = 1 THEN (pre_outstand-remaining_money) ELSE 0 END ) ,0)AS wechat_amount,
        ifnull(SUM(CASE WHEN pay_type = 2 THEN (pre_outstand-remaining_money) ELSE 0 END ),0) AS alipay_amount,
        ifnull(SUM(CASE WHEN pay_type = 3 THEN (pre_outstand-remaining_money) ELSE 0 END ),0) AS offline_amount
        FROM
            t_flow_management
        <where>
            <if test="req.sysSerialNumber != null and req.sysSerialNumber != ''">
                 and sys_serial_number = #{req.sysSerialNumber}
            </if>
            <if test="req.bankSerialNumber != null and req.bankSerialNumber != ''">
                 and bank_serial_number = #{req.bankSerialNumber}
            </if>
            <if test="req.payer != null and req.payer != ''">
                 and payer like concat('%', #{req.payer}, '%')
            </if>
            <if test="req.payType != null and req.payType != ''">
                 and pay_type = #{req.payType}
            </if>
            <if test="req.payStartTime != null and req.payStartTime != ''">
                 and pay_time &gt;= #{req.payStartTime}
            </if>
            <if test="req.payEndTime != null and req.payEndTime != ''">
                 and pay_time &lt;= #{req.payEndTime}
            </if>
            <if test='businessDeptId != null and businessDeptId != "" and businessDeptId != "0"'>
                and business_dept_id = #{businessDeptId}
            </if>
            AND disabled = ${@com.ruoyi.common.enums.DisabledEnum@NO.getCode()}
        </where>
    </select>
</mapper>