| <?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.SeRechargeHistoryMapper"> | 
|   <resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory"> | 
|     <!--@mbg.generated--> | 
|     <!--@Table se_recharge_history--> | 
|     <id column="id" jdbcType="BIGINT" property="id" /> | 
|     <result column="cardId" jdbcType="BIGINT" property="cardid" /> | 
|     <result column="clientId" jdbcType="BIGINT" property="clientid" /> | 
|     <result column="money" jdbcType="FLOAT" property="money" /> | 
|     <result column="amount" jdbcType="FLOAT" property="amount" /> | 
|     <result column="gift" jdbcType="FLOAT" property="gift" /> | 
|     <result column="afterRecharge" jdbcType="FLOAT" property="afterrecharge" /> | 
|     <result column="paymentId" jdbcType="BIGINT" property="paymentid" /> | 
|     <result column="price" jdbcType="FLOAT" property="price" /> | 
|     <result column="remarks" jdbcType="VARCHAR" property="remarks" /> | 
|     <result column="operator" jdbcType="BIGINT" property="operator" /> | 
|     <result column="operateDt" jdbcType="TIMESTAMP" property="operatedt" /> | 
|     <result column="operate_valid" jdbcType="TINYINT" property="operateValid" /> | 
|     <result column="order_no" jdbcType="VARCHAR" property="orderNo" /> | 
|   </resultMap> | 
|   <sql id="Base_Column_List"> | 
|     <!--@mbg.generated--> | 
|     id, cardId, clientId, money, amount, gift, afterRecharge, paymentId, price, remarks,  | 
|     `operator`, operateDt, operate_valid, order_no | 
|   </sql> | 
|   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|     <!--@mbg.generated--> | 
|     select  | 
|     <include refid="Base_Column_List" /> | 
|     from se_recharge_history | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </select> | 
|   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> | 
|     <!--@mbg.generated--> | 
|     delete from se_recharge_history | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </delete> | 
|   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory"> | 
|     <!--@mbg.generated--> | 
|     insert into se_recharge_history (id, cardId, clientId,  | 
|       money, amount, gift, afterRecharge,  | 
|       paymentId, price, remarks,  | 
|       `operator`, operateDt, operate_valid,  | 
|       order_no) | 
|     values (#{id,jdbcType=BIGINT}, #{cardid,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},  | 
|       #{money,jdbcType=FLOAT}, #{amount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{afterrecharge,jdbcType=FLOAT},  | 
|       #{paymentid,jdbcType=BIGINT}, #{price,jdbcType=FLOAT}, #{remarks,jdbcType=VARCHAR},  | 
|       #{operator,jdbcType=BIGINT}, #{operatedt,jdbcType=TIMESTAMP}, #{operateValid,jdbcType=TINYINT},  | 
|       #{orderNo,jdbcType=VARCHAR}) | 
|   </insert> | 
|   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory"> | 
|     <!--@mbg.generated--> | 
|     insert into se_recharge_history | 
|     <trim prefix="(" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         id, | 
|       </if> | 
|       <if test="cardid != null"> | 
|         cardId, | 
|       </if> | 
|       <if test="clientid != null"> | 
|         clientId, | 
|       </if> | 
|       <if test="money != null"> | 
|         money, | 
|       </if> | 
|       <if test="amount != null"> | 
|         amount, | 
|       </if> | 
|       <if test="gift != null"> | 
|         gift, | 
|       </if> | 
|       <if test="afterrecharge != null"> | 
|         afterRecharge, | 
|       </if> | 
|       <if test="paymentid != null"> | 
|         paymentId, | 
|       </if> | 
|       <if test="price != null"> | 
|         price, | 
|       </if> | 
|       <if test="remarks != null"> | 
|         remarks, | 
|       </if> | 
|       <if test="operator != null"> | 
|         `operator`, | 
|       </if> | 
|       <if test="operatedt != null"> | 
|         operateDt, | 
|       </if> | 
|       <if test="operateValid != null"> | 
|         operate_valid, | 
|       </if> | 
|       <if test="orderNo != null"> | 
|         order_no, | 
|       </if> | 
|     </trim> | 
|     <trim prefix="values (" suffix=")" suffixOverrides=","> | 
|       <if test="id != null"> | 
|         #{id,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="cardid != null"> | 
|         #{cardid,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="clientid != null"> | 
|         #{clientid,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="money != null"> | 
|         #{money,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="amount != null"> | 
|         #{amount,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="gift != null"> | 
|         #{gift,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="afterrecharge != null"> | 
|         #{afterrecharge,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="paymentid != null"> | 
|         #{paymentid,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="price != null"> | 
|         #{price,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="remarks != null"> | 
|         #{remarks,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="operator != null"> | 
|         #{operator,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="operatedt != null"> | 
|         #{operatedt,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="operateValid != null"> | 
|         #{operateValid,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="orderNo != null"> | 
|         #{orderNo,jdbcType=VARCHAR}, | 
|       </if> | 
|     </trim> | 
|   </insert> | 
|   <update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory"> | 
|     <!--@mbg.generated--> | 
|     update se_recharge_history | 
|     <set> | 
|       <if test="cardid != null"> | 
|         cardId = #{cardid,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="clientid != null"> | 
|         clientId = #{clientid,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="money != null"> | 
|         money = #{money,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="amount != null"> | 
|         amount = #{amount,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="gift != null"> | 
|         gift = #{gift,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="afterrecharge != null"> | 
|         afterRecharge = #{afterrecharge,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="paymentid != null"> | 
|         paymentId = #{paymentid,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="price != null"> | 
|         price = #{price,jdbcType=FLOAT}, | 
|       </if> | 
|       <if test="remarks != null"> | 
|         remarks = #{remarks,jdbcType=VARCHAR}, | 
|       </if> | 
|       <if test="operator != null"> | 
|         `operator` = #{operator,jdbcType=BIGINT}, | 
|       </if> | 
|       <if test="operatedt != null"> | 
|         operateDt = #{operatedt,jdbcType=TIMESTAMP}, | 
|       </if> | 
|       <if test="operateValid != null"> | 
|         operate_valid = #{operateValid,jdbcType=TINYINT}, | 
|       </if> | 
|       <if test="orderNo != null"> | 
|         order_no = #{orderNo,jdbcType=VARCHAR}, | 
|       </if> | 
|     </set> | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   <update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeRechargeHistory"> | 
|     <!--@mbg.generated--> | 
|     update se_recharge_history | 
|     set cardId = #{cardid,jdbcType=BIGINT}, | 
|       clientId = #{clientid,jdbcType=BIGINT}, | 
|       money = #{money,jdbcType=FLOAT}, | 
|       amount = #{amount,jdbcType=FLOAT}, | 
|       gift = #{gift,jdbcType=FLOAT}, | 
|       afterRecharge = #{afterrecharge,jdbcType=FLOAT}, | 
|       paymentId = #{paymentid,jdbcType=BIGINT}, | 
|       price = #{price,jdbcType=FLOAT}, | 
|       remarks = #{remarks,jdbcType=VARCHAR}, | 
|       `operator` = #{operator,jdbcType=BIGINT}, | 
|       operateDt = #{operatedt,jdbcType=TIMESTAMP}, | 
|       operate_valid = #{operateValid,jdbcType=TINYINT}, | 
|       order_no = #{orderNo,jdbcType=VARCHAR} | 
|     where id = #{id,jdbcType=BIGINT} | 
|   </update> | 
|   | 
|   <!--依据水卡ID将最后一条无效状态的充值历史记录改为有效--> | 
|   <update id="turnRechargeHistoryValidByCardId"> | 
|     UPDATE se_recharge_history | 
|     SET operate_valid = 2 | 
|     WHERE id = ( | 
|     SELECT id FROM ( | 
|     SELECT id | 
|     FROM se_recharge_history | 
|     WHERE operate_valid = 1 AND cardId = #{cardId} | 
|     ORDER BY id DESC | 
|     LIMIT 1) AS subquery | 
|     ); | 
|   </update> | 
|   | 
|   <!--充值机用根据订单号将充值历史记录改为有效--> | 
|   <update id="turnRechargeHistoryValidByOrderNumber"> | 
|     UPDATE se_recharge_history | 
|     SET operate_valid = 2 | 
|     WHERE operate_valid = 1 AND order_no = #{orderNumber} | 
|   </update> | 
|   | 
|   | 
|   <!-- /////////////////////////////////// --> | 
|   <!-- 统计相关                              --> | 
|   <!-- /////////////////////////////////// --> | 
|   <select id="statisticsByIc" resultType="com.dy.pipIrrGlobal.voSt.VoIcRechargeStatistics"> | 
|     select clientId as clientId, | 
|     cardId as cardId, | 
|     sum(amount) as amount, | 
|     sum(gift) as gift, | 
|     count(*) as times | 
|     from se_recharge_history | 
|     where operate_valid = 2 | 
|     and id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} | 
|     and id <![CDATA[<]]> #{endId, jdbcType=BIGINT} | 
|     group by clientId, cardId | 
|   </select> | 
|   <select id="statisticsByClient" resultType="com.dy.pipIrrGlobal.voSt.VoClientRechargeStatistics"> | 
|     select clientId as clientId, | 
|     sum(amount) as amount, | 
|     sum(gift) as gift, | 
|     count(*) as times | 
|     from se_recharge_history | 
|     where operate_valid = 2 | 
|     and id <![CDATA[>=]]> #{startId, jdbcType=BIGINT} | 
|     and id <![CDATA[<]]> #{endId, jdbcType=BIGINT} | 
|     group by clientId | 
|   </select> | 
|   | 
| </mapper> |