<?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.SeClientCardMapper">
|
<resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
|
<!--@mbg.generated-->
|
<!--@Table se_client_card-->
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="cardAddr" jdbcType="VARCHAR" property="cardaddr" />
|
<result column="cardNum" jdbcType="BIGINT" property="cardnum" />
|
<result column="clientId" jdbcType="BIGINT" property="clientid" />
|
<result column="money" jdbcType="FLOAT" property="money" />
|
<result column="state" jdbcType="TINYINT" property="state" />
|
<result column="original_card_id" jdbcType="BIGINT" property="originalCardId"/>
|
<result column="createDt" jdbcType="TIMESTAMP" property="createdt" />
|
<result column="replaceDt" jdbcType="TIMESTAMP" property="replacedt" />
|
<result column="rechargeDt" jdbcType="TIMESTAMP" property="rechargedt" />
|
<result column="lossDtDt" jdbcType="TIMESTAMP" property="lossdtdt" />
|
<result column="cancelDt" jdbcType="TIMESTAMP" property="canceldt" />
|
<result column="unlockDt" jdbcType="TIMESTAMP" property="unlockdt" />
|
<result column="reversalDt" jdbcType="TIMESTAMP" property="reversaldt" />
|
<result column="refundDt" jdbcType="TIMESTAMP" property="refunddt" />
|
<result column="consumeDt" jdbcType="TIMESTAMP" property="consumedt" />
|
<result column="lastOper" jdbcType="TINYINT" property="lastoper" />
|
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
|
</resultMap>
|
<sql id="Base_Column_List">
|
<!--@mbg.generated-->
|
id, cardAddr, cardNum, clientId, money, `state`, original_card_id, createDt, replaceDt, rechargeDt,
|
lossDtDt, cancelDt, unlockDt, reversalDt, refundDt, consumeDt, lastOper, remarks
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
<!--@mbg.generated-->
|
select
|
<include refid="Base_Column_List" />
|
from se_client_card
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
delete from se_client_card
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
|
<!--依据水卡地址获取水卡编号(12月19日废弃)-->
|
<select id="getCardIdByAddr" resultType="java.lang.Long">
|
SELECT id AS cardId FROM se_client_card WHERE cardAddr = #{cardAddr}
|
</select>
|
|
<!--根据水卡编号获取水卡表主键(12月19日添加后废弃)-->
|
<select id="getCardIdByNum" resultType="java.lang.Long">
|
SELECT id AS cardId FROM se_client_card WHERE cardNum = #{cardNum}
|
</select>
|
|
<!--根据水卡编号获取水卡表主键及农户编号-->
|
<select id="getCardIdAndClientNum" resultType="java.util.Map">
|
<!-- SELECT id AS cardId, clientNum FROM se_client_card WHERE cardNum = #{cardNum}-->
|
SELECT
|
card.id AS cardId,
|
cli.clientNum,
|
cli.id AS clientId
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
WHERE card.cardNum = #{cardNum}
|
</select>
|
|
<!-- 根据水卡编号获取水卡对应的农户id和姓名 -->
|
<select id="getClientIdAndNameByCardAddrAndCardNo" resultType="java.util.Map">
|
SELECT
|
cli.id AS clientId,
|
cli.name AS clientName
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
WHERE card.cardAddr = #{cardAddr} and card.cardNum = #{cardNum}
|
</select>
|
|
<!--根据行政区划串模糊查询水卡编号-->
|
<select id="getCardNumOfMax" resultType="java.lang.String">
|
SELECT cardNum
|
FROM se_client_card
|
WHERE cardNum LIKE CONCAT(#{areaCode},'%')
|
ORDER BY cardNum desc
|
LIMIT 0,1
|
</select>
|
|
<insert id="insert" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
|
<!--@mbg.generated-->
|
insert into se_client_card (id, cardAddr, cardNum, clientId,
|
money, `state`, original_card_id, createDt,
|
replaceDt, rechargeDt, lossDtDt,
|
cancelDt, unlockDt, reversalDt, refundDt,
|
consumeDt, lastOper, remarks
|
)
|
values (#{id,jdbcType=BIGINT}, #{cardaddr,jdbcType=VARCHAR}, #{cardnum,jdbcType=BIGINT}, #{clientid,jdbcType=BIGINT},
|
#{money,jdbcType=FLOAT}, #{state,jdbcType=TINYINT}, #{originalCardId,jdbcType=BIGINT}, #{createdt,jdbcType=TIMESTAMP},
|
#{replacedt,jdbcType=TIMESTAMP}, #{rechargedt,jdbcType=TIMESTAMP}, #{lossdtdt,jdbcType=TIMESTAMP},
|
#{canceldt,jdbcType=TIMESTAMP}, #{unlockdt,jdbcType=TIMESTAMP}, #{reversaldt,jdbcType=TIMESTAMP},
|
#{refunddt,jdbcType=TIMESTAMP}, #{consumedt,jdbcType=TIMESTAMP}, #{lastoper,jdbcType=TINYINT}, #{remarks,jdbcType=VARCHAR}
|
)
|
|
</insert>
|
<insert id="insertSelective" keyColumn="id" keyProperty="id" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard" useGeneratedKeys="true">
|
<!--@mbg.generated-->
|
insert into se_client_card
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="cardaddr != null">
|
cardAddr,
|
</if>
|
<if test="cardnum != null">
|
cardNum,
|
</if>
|
<if test="clientid != null">
|
clientId,
|
</if>
|
<if test="money != null">
|
money,
|
</if>
|
<if test="state != null">
|
`state`,
|
</if>
|
<if test="originalCardId != null">
|
original_card_id,
|
</if>
|
<if test="createdt != null">
|
createDt,
|
</if>
|
<if test="replacedt != null">
|
replaceDt,
|
</if>
|
<if test="rechargedt != null">
|
rechargeDt,
|
</if>
|
<if test="lossdtdt != null">
|
lossDtDt,
|
</if>
|
<if test="canceldt != null">
|
cancelDt,
|
</if>
|
<if test="unlockdt != null">
|
unlockDt,
|
</if>
|
<if test="reversaldt != null">
|
reversalDt,
|
</if>
|
<if test="refunddt != null">
|
refundDt,
|
</if>
|
<if test="consumedt != null">
|
consumeDt,
|
</if>
|
<if test="lastoper != null">
|
lastOper,
|
</if>
|
<if test="remarks != null">
|
remarks,
|
</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="cardaddr != null">
|
#{cardaddr,jdbcType=VARCHAR},
|
</if>
|
<if test="cardnum != null">
|
#{cardnum,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="originalCardId != null">
|
#{originalCardId,jdbcType=BIGINT},
|
</if>
|
<if test="createdt != null">
|
#{createdt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="replacedt != null">
|
#{replacedt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="rechargedt != null">
|
#{rechargedt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="lossdtdt != null">
|
#{lossdtdt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="canceldt != null">
|
#{canceldt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="unlockdt != null">
|
#{unlockdt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="reversaldt != null">
|
#{reversaldt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="refunddt != null">
|
#{refunddt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="consumedt != null">
|
#{consumedt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="lastoper != null">
|
#{lastoper,jdbcType=TINYINT},
|
</if>
|
<if test="remarks != null">
|
#{remarks,jdbcType=VARCHAR},
|
</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
|
<!--@mbg.generated-->
|
update se_client_card
|
<set>
|
<if test="cardaddr != null">
|
cardAddr = #{cardaddr,jdbcType=VARCHAR},
|
</if>
|
<if test="cardnum != null">
|
cardNum = #{cardnum,jdbcType=BIGINT},
|
</if>
|
<if test="clientid != null">
|
clientId = #{clientid,jdbcType=BIGINT},
|
</if>
|
<if test="money != null">
|
money = #{money,jdbcType=FLOAT},
|
</if>
|
<if test="state != null">
|
`state` = #{state,jdbcType=TINYINT},
|
</if>
|
<if test="originalCardId != null">
|
`original_card_id` = #{originalCardId,jdbcType=BIGINT},
|
</if>
|
<if test="createdt != null">
|
createDt = #{createdt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="replacedt != null">
|
replaceDt = #{replacedt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="rechargedt != null">
|
rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="lossdtdt != null">
|
lossDtDt = #{lossdtdt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="canceldt != null">
|
cancelDt = #{canceldt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="unlockdt != null">
|
unlockDt = #{unlockdt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="reversaldt != null">
|
reversalDt = #{reversaldt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="refunddt != null">
|
refundDt = #{refunddt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="consumedt != null">
|
consumeDt = #{consumedt,jdbcType=TIMESTAMP},
|
</if>
|
<if test="lastoper != null">
|
lastOper = #{lastoper,jdbcType=TINYINT},
|
</if>
|
<if test="remarks != null">
|
remarks = #{remarks,jdbcType=VARCHAR},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeClientCard">
|
<!--@mbg.generated-->
|
update se_client_card
|
set cardAddr = #{cardaddr,jdbcType=VARCHAR},
|
cardNum = #{cardnum,jdbcType=BIGINT},
|
clientId = #{clientid,jdbcType=BIGINT},
|
money = #{money,jdbcType=FLOAT},
|
`state` = #{state,jdbcType=TINYINT},
|
original_card_id = #{originalCardId,jdbcType=BIGINT},
|
createDt = #{createdt,jdbcType=TIMESTAMP},
|
replaceDt = #{replacedt,jdbcType=TIMESTAMP},
|
rechargeDt = #{rechargedt,jdbcType=TIMESTAMP},
|
lossDtDt = #{lossdtdt,jdbcType=TIMESTAMP},
|
cancelDt = #{canceldt,jdbcType=TIMESTAMP},
|
unlockDt = #{unlockdt,jdbcType=TIMESTAMP},
|
reversalDt = #{reversaldt,jdbcType=TIMESTAMP},
|
refundDt = #{refunddt,jdbcType=TIMESTAMP},
|
consumeDt = #{consumedt,jdbcType=TIMESTAMP},
|
lastOper = #{lastoper,jdbcType=TINYINT},
|
remarks = #{remarks,jdbcType=VARCHAR}
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
|
<!--根据农户主键获取水卡列表-->
|
<select id="getCardInfoByClientId" resultType="com.dy.pipIrrGlobal.voSe.VoCardInfo">
|
SELECT
|
cardNum,
|
'用户卡' AS cardType,
|
money,
|
(CASE
|
WHEN state = 1 THEN "正常"
|
WHEN state = 2 THEN "已注销"
|
ELSE "已挂失"
|
END) AS state
|
FROM se_client_card
|
WHERE clientId = ${clientId}
|
</select>
|
|
<!--根据水卡编号获取操作记录列表-->
|
<select id="getOperateRecordsByCardNum" resultType="java.util.HashMap">
|
SELECT * FROM v_operate WHERE cardNum = ${cardNum}
|
</select>
|
|
<!--根据水卡编号获取余额-->
|
<select id="getMoneyByCardNum" resultType="java.lang.Float">
|
SELECT money FROM se_client_card WHERE cardNum = ${cardNum}
|
</select>
|
|
<!--根据水卡编号获取充值总额-->
|
<select id="sumRechargeByCardNum" resultType="java.lang.Float">
|
SELECT
|
SUM(his.amount) AS amount
|
FROM se_recharge_history his
|
INNER JOIN se_client_card card ON his.cardId = card.id
|
WHERE card.cardNum = ${cardNum}
|
</select>
|
|
<!--根据水卡编号获取卡片状态:1-开卡,2-补卡,3-充值,4-挂失,5-注销,6-解锁,7-冲正,8-消费-->
|
<select id="getCardStateByCardNum" resultType="java.lang.String">
|
<!-- SELECT-->
|
<!-- (CASE-->
|
<!-- WHEN lastOper = 1 THEN "开卡"-->
|
<!-- WHEN lastOper = 2 THEN "补卡"-->
|
<!-- WHEN lastOper = 3 THEN "充值"-->
|
<!-- WHEN lastOper = 4 THEN "挂失"-->
|
<!-- WHEN lastOper = 5 THEN "注销"-->
|
<!-- WHEN lastOper = 6 THEN "解锁"-->
|
<!-- WHEN lastOper = 7 THEN "冲正"-->
|
<!-- WHEN lastOper = 8 THEN "消费"-->
|
<!-- END) AS stateName-->
|
<!-- FROM se_client_card-->
|
<!-- WHERE cardNum = ${cardNum}-->
|
SELECT
|
(CASE
|
WHEN state = 1 THEN '正常'
|
WHEN state = 2 THEN '已注销'
|
WHEN state = 3 THEN '已挂失'
|
END) AS stateName
|
FROM se_client_card
|
WHERE cardNum = ${cardNum}
|
</select>
|
|
<!--根据指定条件获取水卡列表记录数,应用程序使用-->
|
<select id="getCardsCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
<where>
|
AND card.state = 1
|
<if test = "clientNum != null and clientNum !=''">
|
AND cli.clientNum like CONCAT('%',#{clientNum},'%')
|
</if>
|
|
<if test = "clientName != null and clientName !=''">
|
AND cli.name like CONCAT('%',#{clientName},'%')
|
</if>
|
|
<if test = "cardNum != null and cardNum !=''">
|
AND card.cardNum like CONCAT('%',#{cardNum},'%')
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取水卡列表,应用程序使用-->
|
<select id="getCards" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
|
SELECT
|
cli.clientNum,
|
cli.name AS clientName,
|
cardNum,
|
<!-- CASE-->
|
<!-- WHEN card.cardNum LIKE '10%' THEN CONCAT(SUBSTRING(card.cardNum, 7, 6),SUBSTRING(card.cardNum, 14, 4))-->
|
<!-- ELSE card.cardNum-->
|
<!-- END AS cardNum,-->
|
cli.phone,
|
cli.idCard,
|
card.state AS cardState,
|
<!-- (CASE-->
|
<!-- WHEN card.state = 1 THEN '正常'-->
|
<!-- WHEN card.state = 2 THEN '已注销'-->
|
<!-- WHEN card.state = 3 THEN '已挂失'-->
|
<!-- End) AS stateName,-->
|
'正常' AS stateName,
|
'农户卡' AS cardType,
|
FORMAT(card.money, 2) AS money
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
<where>
|
AND card.state = 1
|
<if test = "clientNum != null and clientNum !=''">
|
AND cli.clientNum like CONCAT('%',#{clientNum},'%')
|
</if>
|
|
<if test = "clientName != null and clientName !=''">
|
AND cli.name like CONCAT('%',#{clientName},'%')
|
</if>
|
|
<if test = "cardNum != null and cardNum !=''">
|
AND card.cardNum like CONCAT('%',#{cardNum},'%')
|
</if>
|
</where>
|
ORDER BY card.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="getUnreplacedRecordCount" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.cardNum)
|
</select>
|
|
<!--获取已挂失未补卡的记录-->
|
<select id="getUnreplaced" resultType="com.dy.pipIrrGlobal.voSe.VoCards">
|
SELECT
|
cli.clientNum,
|
cli.name AS clientName,
|
cardNum,
|
<!-- CASE-->
|
<!-- WHEN card.cardNum LIKE '10%' THEN CONCAT(SUBSTRING(card.cardNum, 7, 6),SUBSTRING(card.cardNum, 14, 4))-->
|
<!-- ELSE card.cardNum-->
|
<!-- END AS cardNum,-->
|
cli.phone,
|
cli.idCard,
|
card.state AS cardState,
|
'已挂失' AS stateName,
|
'农户卡' AS cardType,
|
FORMAT(card.money,2) AS money
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
WHERE card.state = 3 AND NOT EXISTS (SELECT * FROM se_client_card card2 WHERE card2.original_card_id = card.id)
|
ORDER BY card.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="getLostCount" resultType="java.lang.Integer">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_client_card card
|
<where>
|
AND card.state = 3
|
<if test = "cardNum != null and cardNum > 0">
|
AND card.cardNum = #{cardNum}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定水卡编号获取已补卡数量(补卡、解锁使用)-->
|
<select id="getReplacedCount" resultType="java.lang.Integer">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_client_card card
|
INNER JOIN se_client_card card2 ON card2.original_card_id = card.id
|
<where>
|
<if test = "cardNum != null and cardNum > 0">
|
AND card.cardNum = #{cardNum}
|
</if>
|
</where>
|
</select>
|
<!--根据农户姓名和手机号获取水卡列表记录数,应用程序使用-->
|
<select id="getCardsByClientNameAndPhoneCount" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
<where>
|
card.state = 1
|
<if test = "clientName != null and clientName !=''">
|
AND cli.name like CONCAT('%',#{clientName},'%')
|
</if>
|
|
<if test = "phone != null and phone !=''">
|
AND cli.phone like CONCAT('%',#{phone},'%')
|
</if>
|
</where>
|
</select>
|
<!--根据农户姓名和手机号获取水卡列表,应用程序使用-->
|
<select id="getCardsByClientNameAndPhone" resultType="com.dy.pipIrrGlobal.voSe.VoCards2">
|
SELECT
|
card.id AS clientCardId,
|
cli.id AS clientId,
|
cli.clientNum,
|
cli.name AS clientName,
|
card.cardNum,
|
cli.phone,
|
cli.idCard,
|
card.state AS cardState,
|
(CASE
|
WHEN card.state = 1 THEN '正常'
|
WHEN card.state = 2 THEN '已注销'
|
WHEN card.state = 3 THEN '已挂失'
|
End) AS stateName,
|
'农户卡' AS cardType,
|
FORMAT(card.money, 2) AS money
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
<where>
|
card.state = 1
|
<if test = "clientName != null and clientName !=''">
|
AND cli.name like CONCAT('%',#{clientName},'%')
|
</if>
|
|
<if test = "phone != null and phone !=''">
|
AND cli.phone like CONCAT('%',#{phone},'%')
|
</if>
|
</where>
|
ORDER BY card.id
|
<trim prefix="limit " >
|
<if test="start != null and count != null">
|
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
|
</if>
|
</trim>
|
</select>
|
<!--根据农户ID查询正常状态的水卡列表,小程序使用-->
|
<select id="getCardsByClientID" resultType="com.dy.pipIrrGlobal.voWe.VoCards3">
|
SELECT
|
card.id AS clientCardId,
|
cli.id AS clientId,
|
cli.clientNum,
|
cli.name AS clientName,
|
card.cardNum,
|
cli.phone,
|
cli.idCard,
|
card.state AS cardState,
|
(CASE
|
WHEN card.state = 1 THEN '正常'
|
WHEN card.state = 2 THEN '已注销'
|
WHEN card.state = 3 THEN '已挂失'
|
End) AS stateName,
|
'农户卡' AS cardType,
|
FORMAT(card.money, 2) AS money
|
FROM se_client_card card
|
INNER JOIN se_client cli ON card.clientId = cli.id
|
where
|
card.state = 1
|
AND cli.id like CONCAT('%',#{clientId},'%')
|
|
|
ORDER BY card.id
|
</select>
|
</mapper>
|