zhubaomin
2025-04-07 ecef3df4890be54c1da2a8a4fc1c8c1f50f1c263
pipIrr-platform/pipIrr-global/src/main/resources/mapper/SeVcOperateMapper.xml
New file
@@ -0,0 +1,215 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dy.pipIrrGlobal.daoSe.SeVcOperateMapper">
    <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
        <!--@mbg.generated-->
        <!--@Table se_vc_operate-->
        <id column="id" jdbcType="BIGINT" property="id"/>
        <result column="vc_id" jdbcType="BIGINT" property="vcId"/>
        <result column="client_id" jdbcType="BIGINT" property="clientId"/>
        <result column="operate_type" jdbcType="TINYINT" property="operateType"/>
        <result column="recharge_id" jdbcType="BIGINT" property="rechargeId"/>
        <result column="operator" jdbcType="BIGINT" property="operator"/>
        <result column="operate_time" jdbcType="TIMESTAMP" property="operateTime"/>
    </resultMap>
    <sql id="Base_Column_List">
        <!--@mbg.generated-->
        id,
        vc_id,
        client_id,
        operate_type,
        recharge_id,
        `operator`,
        operate_time
    </sql>
    <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
        <!--@mbg.generated-->
        select
        <include refid="Base_Column_List"/>
        from se_vc_operate
        where id = #{id,jdbcType=BIGINT}
    </select>
    <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
        <!--@mbg.generated-->
        delete
        from se_vc_operate
        where id = #{id,jdbcType=BIGINT}
    </delete>
    <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
        <!--@mbg.generated-->
        insert into se_vc_operate (id, vc_id, client_id,
                                   operate_type, recharge_id, `operator`,
                                   operate_time)
        values (#{id,jdbcType=BIGINT}, #{vcId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},
                #{operateType,jdbcType=TINYINT}, #{rechargeId,jdbcType=BIGINT}, #{operator,jdbcType=BIGINT},
                #{operateTime,jdbcType=TIMESTAMP})
    </insert>
    <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
        <!--@mbg.generated-->
        insert into se_vc_operate
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="id != null">
                id,
            </if>
            <if test="vcId != null">
                vc_id,
            </if>
            <if test="clientId != null">
                client_id,
            </if>
            <if test="operateType != null">
                operate_type,
            </if>
            <if test="rechargeId != null">
                recharge_id,
            </if>
            <if test="operator != null">
                `operator`,
            </if>
            <if test="operateTime != null">
                operate_time,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="id != null">
                #{id,jdbcType=BIGINT},
            </if>
            <if test="vcId != null">
                #{vcId,jdbcType=BIGINT},
            </if>
            <if test="clientId != null">
                #{clientId,jdbcType=BIGINT},
            </if>
            <if test="operateType != null">
                #{operateType,jdbcType=TINYINT},
            </if>
            <if test="rechargeId != null">
                #{rechargeId,jdbcType=BIGINT},
            </if>
            <if test="operator != null">
                #{operator,jdbcType=BIGINT},
            </if>
            <if test="operateTime != null">
                #{operateTime,jdbcType=TIMESTAMP},
            </if>
        </trim>
    </insert>
    <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
        <!--@mbg.generated-->
        update se_vc_operate
        <set>
            <if test="vcId != null">
                vc_id = #{vcId,jdbcType=BIGINT},
            </if>
            <if test="clientId != null">
                client_id = #{clientId,jdbcType=BIGINT},
            </if>
            <if test="operateType != null">
                operate_type = #{operateType,jdbcType=TINYINT},
            </if>
            <if test="rechargeId != null">
                recharge_id = #{rechargeId,jdbcType=BIGINT},
            </if>
            <if test="operator != null">
                `operator` = #{operator,jdbcType=BIGINT},
            </if>
            <if test="operateTime != null">
                operate_time = #{operateTime,jdbcType=TIMESTAMP},
            </if>
        </set>
        where id = #{id,jdbcType=BIGINT}
    </update>
    <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVcOperate">
        <!--@mbg.generated-->
        update se_vc_operate
        set vc_id        = #{vcId,jdbcType=BIGINT},
            client_id    = #{clientId,jdbcType=BIGINT},
            operate_type = #{operateType,jdbcType=TINYINT},
            recharge_id  = #{rechargeId,jdbcType=BIGINT},
            `operator`   = #{operator,jdbcType=BIGINT},
            operate_time = #{operateTime,jdbcType=TIMESTAMP}
        where id = #{id,jdbcType=BIGINT}
    </update>
    <!--指定时间段内注册虚拟卡的农户记录数量-->
    <select id="getRegisterVcClientsCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_client cli
        WHERE EXISTS(SELECT *
                     FROM se_vc_operate ope
                     WHERE ope.client_id = cli.id
                       AND ope.operate_type = 1
                       AND ope.operate_time BETWEEN #{timeStart} AND #{timeStop})
    </select>
    <!--指定时间段内注册虚拟卡的农户-->
    <select id="getRegisterVcClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientStatistics">
        SELECT cli.id   AS clientId,
               cli.name AS clientName
        FROM se_client cli
        WHERE EXISTS(SELECT *
                     FROM se_vc_operate ope
                     WHERE ope.client_id = cli.id
                       AND ope.operate_type = 1
                       AND ope.operate_time BETWEEN #{timeStart} AND #{timeStop})
        ORDER BY cli.id
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
            </if>
        </trim>
    </select>
    <!--指定时间段内注册总数量-->
    <select id="getRegisterCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_vc_operate ope
        WHERE ope.operate_type = 1
          AND ope.operate_time BETWEEN #{timeStart} AND #{timeStop}
    </select>
    <!--指定时间段充值总数量-->
    <select id="getRechargeCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_vc_operate ope
                 INNER JOIN se_vc_recharge rec ON rec.id = ope.recharge_id
        WHERE ope.operate_type = 2
          AND rec.order_state = 2
          AND ope.operate_time BETWEEN #{timeStart} AND #{timeStop}
    </select>
    <!--当前余额总量-->
    <select id="getTotalBalance" resultType="java.lang.Double">
        SELECT SUM(money) AS totalBalance
        FROM se_virtual_card
    </select>
    <!--指定时间段内虚拟卡充值金额超过指定值的农户记录数量-->
    <select id="getLargeRechargeClientsCount" resultType="java.lang.Long">
        SELECT COUNT(*) AS recordCount
        FROM se_client cli
        WHERE (SELECT SUM(recharge_amount)
               FROM se_vc_recharge rec
               WHERE rec.client_id = cli.id
                 AND rec.order_state = 2
                 AND rec.order_time BETWEEN #{timeStart} AND #{timeStop}) > #{totalRecharge}
    </select>
    <!--指定时间段内虚拟卡充值金额超过指定值的农户-->
    <select id="getLargeRechargeClients" resultType="com.dy.pipIrrGlobal.voSt.VoClientStatistics">
        SELECT cli.id   AS clientId,
               cli.name AS clientName
        FROM se_client cli
        WHERE (SELECT SUM(recharge_amount)
               FROM se_vc_recharge rec
               WHERE rec.client_id = cli.id
                 AND rec.order_state = 2
                 AND rec.order_time BETWEEN #{timeStart} AND #{timeStop}) > #{totalRecharge}
        ORDER BY cli.id
        <trim prefix="limit ">
            <if test="start != null and count != null">
                #{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
            </if>
        </trim>
    </select>
</mapper>