|  |  | 
 |  |  |     <result column="vc_num" jdbcType="BIGINT" property="vcNum" /> | 
 |  |  |     <result column="client_id" jdbcType="BIGINT" property="clientId" /> | 
 |  |  |     <result column="money" jdbcType="FLOAT" property="money" /> | 
 |  |  |     <result column="state" jdbcType="TINYINT" property="state" /> | 
 |  |  |     <result column="last_operate" jdbcType="TINYINT" property="lastOperate" /> | 
 |  |  |     <result column="last_operate_time" jdbcType="TIMESTAMP" property="lastOperateTime" /> | 
 |  |  |     <result column="in_use" jdbcType="TINYINT" property="inUse" /> | 
 |  |  | 
 |  |  |   </resultMap> | 
 |  |  |   <sql id="Base_Column_List"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     id, vc_num, client_id, money, last_operate, last_operate_time, in_use, intake_id, create_time | 
 |  |  |     id, vc_num, client_id, money, state, last_operate, last_operate_time, in_use, intake_id, create_time | 
 |  |  |   </sql> | 
 |  |  |   <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  | 
 |  |  |   <insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> | 
 |  |  |     <!--@mbg.generated--> | 
 |  |  |     insert into se_virtual_card (id, vc_num, client_id,  | 
 |  |  |       money, last_operate, last_operate_time,  | 
 |  |  |       money, state, last_operate, last_operate_time, | 
 |  |  |       in_use, intake_id, create_time) | 
 |  |  |     values (#{id,jdbcType=BIGINT}, #{vcNum,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},  | 
 |  |  |       #{money,jdbcType=FLOAT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP},  | 
 |  |  |       #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP}, | 
 |  |  |       #{inUse,jdbcType=TINYINT}, #{intakeId,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP}) | 
 |  |  |   </insert> | 
 |  |  |   <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> | 
 |  |  | 
 |  |  |       </if> | 
 |  |  |       <if test="money != null"> | 
 |  |  |         money, | 
 |  |  |       </if> | 
 |  |  |       <if test="state != null"> | 
 |  |  |         state, | 
 |  |  |       </if> | 
 |  |  |       <if test="lastOperate != null"> | 
 |  |  |         last_operate, | 
 |  |  | 
 |  |  |       </if> | 
 |  |  |       <if test="money != null"> | 
 |  |  |         #{money,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="state != null"> | 
 |  |  |         #{state,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="lastOperate != null"> | 
 |  |  |         #{lastOperate,jdbcType=TINYINT}, | 
 |  |  | 
 |  |  |       <if test="money != null"> | 
 |  |  |         money = #{money,jdbcType=FLOAT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="state != null"> | 
 |  |  |         state = #{state,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  |       <if test="lastOperate != null"> | 
 |  |  |         last_operate = #{lastOperate,jdbcType=TINYINT}, | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |     set vc_num = #{vcNum,jdbcType=BIGINT}, | 
 |  |  |       client_id = #{clientId,jdbcType=BIGINT}, | 
 |  |  |       money = #{money,jdbcType=FLOAT}, | 
 |  |  |       state = #{state,jdbcType=TINYINT}, | 
 |  |  |       last_operate = #{lastOperate,jdbcType=TINYINT}, | 
 |  |  |       last_operate_time = #{lastOperateTime,jdbcType=TIMESTAMP}, | 
 |  |  |       in_use = #{inUse,jdbcType=TINYINT}, | 
 |  |  | 
 |  |  |       intake_id = null | 
 |  |  |     where intake_id = #{intakeId,jdbcType=BIGINT} | 
 |  |  |   </update> | 
 |  |  |   <update id="updateMoney" > | 
 |  |  |     update se_virtual_card | 
 |  |  |     set money = #{money,jdbcType=FLOAT} | 
 |  |  |     where id = #{id,jdbcType=BIGINT} | 
 |  |  |   </update> | 
 |  |  |   <!--验证农户是否拥有指定名称的虚拟卡--> | 
 |  |  |   <select id="getRecordCountByName" resultType="java.lang.Integer"> | 
 |  |  |     SELECT COUNT(*) AS recordCount | 
 |  |  |     FROM se_virtual_card | 
 |  |  |     <where> | 
 |  |  |       AND state = 1 | 
 |  |  |       <if test = "clientId != null and clientId > 0"> | 
 |  |  |         AND client_id = #{clientId} | 
 |  |  |       </if> | 
 |  |  | 
 |  |  |   <!--获取农户全部虚拟卡--> | 
 |  |  |   <select id="getVCs" resultType="com.dy.pipIrrGlobal.voSe.VoVirtualCard"> | 
 |  |  |     SELECT | 
 |  |  |       CAST(id AS char) AS id, | 
 |  |  |       id, | 
 |  |  |       vc_num AS vcNum, | 
 |  |  |       money, | 
 |  |  |       in_use AS inUse, | 
 |  |  |       (CASE | 
 |  |  |         WHEN in_use = 0 THEN "未使用" | 
 |  |  |         WHEN in_use = 1 THEN "使用中" | 
 |  |  |       END) AS inUseName | 
 |  |  |         WHEN money <= #{alarmValue} THEN true | 
 |  |  |         ELSE FALSE | 
 |  |  |       END) AS isAlarmValue | 
 |  |  |     FROM se_virtual_card | 
 |  |  |     <where> | 
 |  |  |       AND state = 1 | 
 |  |  |       <if test = "clientId != null"> | 
 |  |  |         AND client_id = #{clientId} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     ORDER BY in_use, money | 
 |  |  |     ORDER BY in_use, money DESC | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据虚拟卡ID获取虚拟卡对象--> | 
 |  |  |   <select id="getVcById" resultType="com.dy.pipIrrGlobal.voSe.VoVirtualCard"> | 
 |  |  |     SELECT | 
 |  |  |         CAST(id AS char) AS id, | 
 |  |  |         id, | 
 |  |  |         vc_num AS vcNum, | 
 |  |  |         money, | 
 |  |  |         in_use AS inUse, | 
 |  |  |         (CASE | 
 |  |  |             WHEN in_use = 0 THEN "未使用" | 
 |  |  |             WHEN in_use = 1 THEN "使用中" | 
 |  |  |             WHEN in_use = 0 THEN '未使用' | 
 |  |  |             WHEN in_use = 1 THEN '使用中' | 
 |  |  |         END) AS inUseName | 
 |  |  |     FROM se_virtual_card | 
 |  |  |     WHERE id = #{vcId} | 
 |  |  |     WHERE state = 1 AND id = #{vcId} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据虚拟卡编号获取虚拟卡--> | 
 |  |  |   <select id="getVcCardByNum" resultType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> | 
 |  |  |     select | 
 |  |  |     <include refid="Base_Column_List" /> | 
 |  |  |     FROM se_virtual_card WHERE vc_num = #{vcNum} | 
 |  |  |     FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据虚拟卡编号获取虚拟卡ID--> | 
 |  |  |   <select id="getVcIdByNum" resultType="java.lang.Long"> | 
 |  |  |     SELECT id FROM se_virtual_card WHERE vc_num = #{vcNum} | 
 |  |  |     SELECT id FROM se_virtual_card WHERE state = 1 AND vc_num = #{vcNum} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据虚拟卡编号获取虚拟卡ID--> | 
 |  |  |   <select id="getClientIdAndNameByVsCardNo" resultType="java.util.Map"> | 
 |  |  |     SELECT | 
 |  |  |     cli.id AS clientId, | 
 |  |  |     cli.name AS clientName | 
 |  |  |     FROM se_virtual_card card | 
 |  |  |     INNER JOIN se_client cli ON card.client_id = cli.id | 
 |  |  |     WHERE card.state = 1 AND card.vc_num = #{vcNum} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!-- 根据水卡编号获取虚拟水卡 --> | 
 |  |  |   <select id="getCardsByNum"  resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo1"> | 
 |  |  |     SELECT | 
 |  |  |     id, | 
 |  |  |     money | 
 |  |  |     FROM se_virtual_card | 
 |  |  |     WHERE state = 1 AND vc_num = #{cardNum} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据行政区划串模糊查询虚拟卡编号--> | 
 |  |  |   <select id="getVcCardNumOfMax"  resultType="java.lang.String"> | 
 |  |  |     SELECT vc_num | 
 |  |  |     FROM se_virtual_card | 
 |  |  |     WHERE vc_num LIKE CONCAT('%',#{areaCode},'%') | 
 |  |  |     WHERE state = 1 AND vc_num LIKE CONCAT('%',#{areaCode},'%') | 
 |  |  |     ORDER BY vc_num desc | 
 |  |  |     LIMIT 0,1 | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--获取虚拟卡充值记录--> | 
 |  |  |   <!--获取虚拟卡充值记录,不包括已已注销卡的充值记录--> | 
 |  |  |   <select id="getVcRechargeRecords" resultType="com.dy.pipIrrGlobal.voSe.VoVcRecharge" > | 
 |  |  |     SELECT | 
 |  |  |       CAST(id AS char) AS id, | 
 |  |  |       CAST(vc_id AS char) AS vcId, | 
 |  |  |       CAST(client_id AS char) AS clientId, | 
 |  |  |       money, | 
 |  |  |       after_recharge AS afterRecharge, | 
 |  |  |       order_number AS orderNumber, | 
 |  |  |       recharge_amount AS rechargeAmount, | 
 |  |  |       order_time AS orderTime, | 
 |  |  |       recharge_time AS rechargeTime, | 
 |  |  |       order_state AS orderState, | 
 |  |  |       (CASE | 
 |  |  |       WHEN order_state = 1 THEN "未支付" | 
 |  |  |       WHEN order_state = 2 THEN "已支付" | 
 |  |  |       END) AS orderStateName | 
 |  |  |     FROM se_vc_recharge | 
 |  |  |         rec.vc_id AS vcId, | 
 |  |  |         rec.client_id AS clientId, | 
 |  |  |         rec.recharge_time AS rechargeTime, | 
 |  |  |         rec.recharge_amount AS rechargeAmount, | 
 |  |  |         rec.after_recharge AS afterRecharge, | 
 |  |  |         '微信支付' AS rechargeType | 
 |  |  |     <!--        CASE--> | 
 |  |  |     <!--            WHEN card.state = 1 THEN '正常销虚拟卡'--> | 
 |  |  |     <!--            WHEN card.state = 2 THEN '已注销虚拟卡'--> | 
 |  |  |     <!--        END AS cardState,--> | 
 |  |  |     FROM se_vc_recharge rec | 
 |  |  |         INNER JOIN se_virtual_card card ON card.id = rec.vc_id | 
 |  |  |     <where> | 
 |  |  |       <if test = "orderState != null"> | 
 |  |  |          order_state = #{orderState,jdbcType=TINYINT} | 
 |  |  |       AND card.state = 1 | 
 |  |  |       AND rec.order_state = 2 | 
 |  |  |       <if test = "vcId != null and vcId > 0"> | 
 |  |  |         AND rec.vc_id = #{vcId} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |     order by recharge_time DESC | 
 |  |  |     <if test="pageCurr != null and pageSize != null"> | 
 |  |  |       LIMIT ${(pageCurr-1)*pageSize}, ${pageSize} | 
 |  |  |     order by rec.recharge_time DESC | 
 |  |  |     <if test="start != null and count != null"> | 
 |  |  |       LIMIT #{start}, #{count} | 
 |  |  |     </if> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <select id="getRechargeRecordCount" resultType="java.lang.Long"> | 
 |  |  |     SELECT | 
 |  |  |       COUNT(*) | 
 |  |  |     FROM se_vc_recharge | 
 |  |  |     FROM se_vc_recharge rec | 
 |  |  |         INNER JOIN se_virtual_card card ON card.id = rec.vc_id | 
 |  |  |     <where> | 
 |  |  |       <if test = "orderState != null"> | 
 |  |  |          order_state = #{orderState,jdbcType=TINYINT} | 
 |  |  |       AND card.state = 1 | 
 |  |  |       AND rec.order_state = 2 | 
 |  |  |       <if test = "vcId != null and vcId > 0"> | 
 |  |  |         AND rec.vc_id = #{vcId} | 
 |  |  |       </if> | 
 |  |  |     </where> | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--根据农户ID及虚拟卡ID获取正常状态的虚拟卡对象,销卡使用--> | 
 |  |  |   <select id="getVcByClientIdAndVcId" resultType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> | 
 |  |  |     SELECT * FROM se_virtual_card | 
 |  |  |     WHERE state = 1 AND client_id = #{clientId} AND id = #{vcId} | 
 |  |  |   </select> | 
 |  |  |  | 
 |  |  |   <!--注销虚拟卡--> | 
 |  |  |   <update id="cancelVc"> | 
 |  |  |     UPDATE se_virtual_card SET state = 2,  last_operate = 4 , last_operate_time = NOW() | 
 |  |  |     WHERE id = #{vcId} AND client_id = #{clientId} | 
 |  |  |   </update> | 
 |  |  | </mapper> |