|  |  |  | 
|---|
|  |  |  | <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" /> | 
|---|
|  |  |  | <result column="intake_id" jdbcType="BIGINT" property="intakeId" /> | 
|---|
|  |  |  | <result column="open_time" jdbcType="TIMESTAMP" property="openTime" /> | 
|---|
|  |  |  | <result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> | 
|---|
|  |  |  | </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, open_time, create_time | 
|---|
|  |  |  | </sql> | 
|---|
|  |  |  | <select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | select | 
|---|
|  |  |  | <include refid="Base_Column_List" /> | 
|---|
|  |  |  | <!--    <include refid="Base_Column_List" />--> | 
|---|
|  |  |  | * | 
|---|
|  |  |  | from se_virtual_card | 
|---|
|  |  |  | where id = #{id,jdbcType=BIGINT} | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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, | 
|---|
|  |  |  | in_use, intake_id, create_time) | 
|---|
|  |  |  | money, state, last_operate, last_operate_time, | 
|---|
|  |  |  | in_use, intake_id, open_time, create_time) | 
|---|
|  |  |  | values (#{id,jdbcType=BIGINT}, #{vcNum,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT}, | 
|---|
|  |  |  | #{money,jdbcType=FLOAT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | #{inUse,jdbcType=TINYINT}, #{intakeId,jdbcType=BIGINT},#{createTime,jdbcType=TIMESTAMP}) | 
|---|
|  |  |  | #{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{lastOperate,jdbcType=TINYINT}, #{lastOperateTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | #{inUse,jdbcType=TINYINT}, #{intakeId,jdbcType=BIGINT},#{openTime,jdbcType=TIMESTAMP},#{createTime,jdbcType=TIMESTAMP}) | 
|---|
|  |  |  | </insert> | 
|---|
|  |  |  | <insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard"> | 
|---|
|  |  |  | <!--@mbg.generated--> | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="money != null"> | 
|---|
|  |  |  | money, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="state != null"> | 
|---|
|  |  |  | state, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="lastOperate != null"> | 
|---|
|  |  |  | last_operate, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="intakeId != null"> | 
|---|
|  |  |  | intake_id, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="openTime != null"> | 
|---|
|  |  |  | open_time, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="createTime != null"> | 
|---|
|  |  |  | create_time, | 
|---|
|  |  |  | 
|---|
|  |  |  | <if test="money != null"> | 
|---|
|  |  |  | #{money,jdbcType=FLOAT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="state != null"> | 
|---|
|  |  |  | #{state,jdbcType=TINYINT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="lastOperate != null"> | 
|---|
|  |  |  | #{lastOperate,jdbcType=TINYINT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="intakeId != null"> | 
|---|
|  |  |  | #{intakeId,jdbcType=BIGINT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="openTime != null"> | 
|---|
|  |  |  | #{openTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="createTime != null"> | 
|---|
|  |  |  | #{createTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="intakeId != null"> | 
|---|
|  |  |  | intake_id = #{intakeId,jdbcType=BIGINT}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="openTime != null"> | 
|---|
|  |  |  | open_time = #{openTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | </if> | 
|---|
|  |  |  | <if test="createTime != null"> | 
|---|
|  |  |  | create_time = #{createTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 = #{intakeId,jdbcType=BIGINT}, | 
|---|
|  |  |  | open_time = #{openTime,jdbcType=TIMESTAMP}, | 
|---|
|  |  |  | create_time = #{createTime,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | where id = #{id,jdbcType=BIGINT} | 
|---|
|  |  |  | </update> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <update id="updateVcCardNoUseStateByIntakeId"> | 
|---|
|  |  |  | update se_virtual_card | 
|---|
|  |  |  | set in_use = 0, | 
|---|
|  |  |  | intake_id = null | 
|---|
|  |  |  | where intake_id = #{intakeId,jdbcType=BIGINT} and open_time < #{now,jdbcType=TIMESTAMP} | 
|---|
|  |  |  | </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, | 
|---|
|  |  |  | <!--      ROUND(money / 100, 2) AS money,--> | 
|---|
|  |  |  | 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, | 
|---|
|  |  |  | <!--        ROUND(money / 100,2) AS money,--> | 
|---|
|  |  |  | 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 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, | 
|---|
|  |  |  | cli.address AS clientAddress | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | 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 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 rec | 
|---|
|  |  |  | INNER JOIN se_virtual_card card ON card.id = rec.vc_id | 
|---|
|  |  |  | <where> | 
|---|
|  |  |  | 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> | 
|---|