<?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.SeVirtualCardMapper">
|
<resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
|
<!--@mbg.generated-->
|
<!--@Table se_virtual_card-->
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<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, 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" />-->
|
*
|
from se_virtual_card
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
delete from se_virtual_card
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
|
<!--@mbg.generated-->
|
insert into se_virtual_card (id, vc_num, client_id,
|
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}, #{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-->
|
insert into se_virtual_card
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
id,
|
</if>
|
<if test="vcNum != null">
|
vc_num,
|
</if>
|
<if test="clientId != null">
|
client_id,
|
</if>
|
<if test="money != null">
|
money,
|
</if>
|
<if test="state != null">
|
state,
|
</if>
|
<if test="lastOperate != null">
|
last_operate,
|
</if>
|
<if test="lastOperateTime != null">
|
last_operate_time,
|
</if>
|
<if test="inUse != null">
|
in_use,
|
</if>
|
<if test="intakeId != null">
|
intake_id,
|
</if>
|
<if test="openTime != null">
|
open_time,
|
</if>
|
<if test="createTime != null">
|
create_time,
|
</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
#{id,jdbcType=BIGINT},
|
</if>
|
<if test="vcNum != null">
|
#{vcNum,jdbcType=BIGINT},
|
</if>
|
<if test="clientId != null">
|
#{clientId,jdbcType=BIGINT},
|
</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>
|
<if test="lastOperateTime != null">
|
#{lastOperateTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="inUse != null">
|
#{inUse,jdbcType=TINYINT},
|
</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>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
|
<!--@mbg.generated-->
|
update se_virtual_card
|
<set>
|
<if test="vcNum != null">
|
vc_num = #{vcNum,jdbcType=BIGINT},
|
</if>
|
<if test="clientId != null">
|
client_id = #{clientId,jdbcType=BIGINT},
|
</if>
|
<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 test="lastOperateTime != null">
|
last_operate_time = #{lastOperateTime,jdbcType=TIMESTAMP},
|
</if>
|
<if test="inUse != null">
|
in_use = #{inUse,jdbcType=TINYINT},
|
</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},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeVirtualCard">
|
<!--@mbg.generated-->
|
update se_virtual_card
|
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" parameterType="java.lang.Long">
|
update se_virtual_card
|
set in_use = 0,
|
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>
|
|
<if test = "vcName != null and vcName !=''">
|
AND vc_num = #{vcName}
|
</if>
|
</where>
|
</select>
|
|
<!--获取农户全部虚拟卡-->
|
<select id="getVCs" resultType="com.dy.pipIrrGlobal.voSe.VoVirtualCard">
|
SELECT
|
id,
|
vc_num AS vcNum,
|
<!-- ROUND(money / 100, 2) AS money,-->
|
money,
|
in_use AS inUse,
|
(CASE
|
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 DESC
|
</select>
|
|
<!--根据虚拟卡ID获取虚拟卡对象-->
|
<select id="getVcById" resultType="com.dy.pipIrrGlobal.voSe.VoVirtualCard">
|
SELECT
|
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
|
FROM se_virtual_card
|
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 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 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>
|