<?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.SeCardOperateMapper">
|
<resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeCardOperate">
|
<!--@mbg.generated-->
|
<!--@Table se_card_operate-->
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="card_id" jdbcType="BIGINT" property="cardId" />
|
<result column="client_id" jdbcType="BIGINT" property="clientId" />
|
<result column="money" jdbcType="FLOAT" property="money" />
|
<result column="system_balance" jdbcType="FLOAT" property="systemBalance" />
|
<result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" />
|
<result column="price" jdbcType="FLOAT" property="price" />
|
<result column="card_cost" jdbcType="INTEGER" property="cardCost" />
|
<result column="gift" jdbcType="FLOAT" property="gift" />
|
<result column="no_trade_amount" jdbcType="FLOAT" property="noTradeAmount" />
|
<result column="operate_type_id" jdbcType="BIGINT" property="operateType" />
|
<result column="payment_id" jdbcType="BIGINT" property="paymentId" />
|
<result column="remarks" jdbcType="VARCHAR" property="remarks" />
|
<result column="operator" jdbcType="BIGINT" property="operator" />
|
<result column="operate_dt" jdbcType="TIMESTAMP" property="operateDt" />
|
</resultMap>
|
<sql id="Base_Column_List">
|
<!--@mbg.generated-->
|
id, card_id, client_id, money, system_balance, trade_amount, price, card_cost, gift,
|
no_trade_amount, operate_type_id, payment_id, remarks, `operator`, operate_dt
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
<!--@mbg.generated-->
|
select
|
<include refid="Base_Column_List" />
|
from se_card_operate
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
delete from se_card_operate
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate">
|
<!--@mbg.generated-->
|
insert into se_card_operate (id, card_id, client_id,
|
money, system_balance, trade_amount,
|
price, card_cost, gift,
|
no_trade_amount, operate_type, payment_id,
|
remarks, `operator`, operate_dt
|
)
|
values (#{id,jdbcType=BIGINT}, #{cardId,jdbcType=BIGINT}, #{clientId,jdbcType=BIGINT},
|
#{money,jdbcType=FLOAT}, #{systemBalance,jdbcType=FLOAT}, #{tradeAmount,jdbcType=FLOAT},
|
#{price,jdbcType=FLOAT}, #{cardCost,jdbcType=INTEGER}, #{gift,jdbcType=FLOAT},
|
#{noTradeAmount,jdbcType=FLOAT}, #{operateType,jdbcType=BIGINT}, #{paymentId,jdbcType=BIGINT},
|
#{remarks,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{operateDt,jdbcType=TIMESTAMP}
|
)
|
</insert>
|
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate">
|
<!--@mbg.generated-->
|
insert into se_card_operate
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
id,
|
</if>
|
<if test="cardId != null">
|
card_id,
|
</if>
|
<if test="clientId != null">
|
client_id,
|
</if>
|
<if test="money != null">
|
money,
|
</if>
|
<if test="systemBalance != null">
|
system_balance,
|
</if>
|
<if test="tradeAmount != null">
|
trade_amount,
|
</if>
|
<if test="price != null">
|
price,
|
</if>
|
<if test="cardCost != null">
|
card_cost,
|
</if>
|
<if test="gift != null">
|
gift,
|
</if>
|
<if test="noTradeAmount != null">
|
no_trade_amount,
|
</if>
|
<if test="operateType != null">
|
operate_type_id,
|
</if>
|
<if test="paymentId != null">
|
payment_id,
|
</if>
|
<if test="remarks != null">
|
remarks,
|
</if>
|
<if test="operator != null">
|
`operator`,
|
</if>
|
<if test="operateDt != null">
|
operate_dt,
|
</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="systemBalance != null">
|
#{systemBalance,jdbcType=FLOAT},
|
</if>
|
<if test="tradeAmount != null">
|
#{tradeAmount,jdbcType=FLOAT},
|
</if>
|
<if test="price != null">
|
#{price,jdbcType=FLOAT},
|
</if>
|
<if test="cardCost != null">
|
#{cardCost,jdbcType=INTEGER},
|
</if>
|
<if test="gift != null">
|
#{gift,jdbcType=FLOAT},
|
</if>
|
<if test="noTradeAmount != null">
|
#{noTradeAmount,jdbcType=FLOAT},
|
</if>
|
<if test="operateType != null">
|
#{operateType,jdbcType=BIGINT},
|
</if>
|
<if test="paymentId != null">
|
#{paymentId,jdbcType=BIGINT},
|
</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>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate">
|
<!--@mbg.generated-->
|
update se_card_operate
|
<set>
|
<if test="cardId != null">
|
card_id = #{cardId,jdbcType=BIGINT},
|
</if>
|
<if test="clientId != null">
|
client_id = #{clientId,jdbcType=BIGINT},
|
</if>
|
<if test="money != null">
|
money = #{money,jdbcType=FLOAT},
|
</if>
|
<if test="systemBalance != null">
|
system_balance = #{systemBalance,jdbcType=FLOAT},
|
</if>
|
<if test="tradeAmount != null">
|
trade_amount = #{tradeAmount,jdbcType=FLOAT},
|
</if>
|
<if test="price != null">
|
price = #{price,jdbcType=FLOAT},
|
</if>
|
<if test="cardCost != null">
|
card_cost = #{cardCost,jdbcType=INTEGER},
|
</if>
|
<if test="gift != null">
|
gift = #{gift,jdbcType=FLOAT},
|
</if>
|
<if test="noTradeAmount != null">
|
no_trade_amount = #{noTradeAmount,jdbcType=FLOAT},
|
</if>
|
<if test="operateType != null">
|
operate_type_id = #{operateType,jdbcType=BIGINT},
|
</if>
|
<if test="paymentId != null">
|
payment_id = #{paymentId,jdbcType=BIGINT},
|
</if>
|
<if test="remarks != null">
|
remarks = #{remarks,jdbcType=VARCHAR},
|
</if>
|
<if test="operator != null">
|
`operator` = #{operator,jdbcType=BIGINT},
|
</if>
|
<if test="operateDt != null">
|
operate_dt = #{operateDt,jdbcType=TIMESTAMP},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeCardOperate">
|
<!--@mbg.generated-->
|
update se_card_operate
|
set card_id = #{cardId,jdbcType=BIGINT},
|
client_id = #{clientId,jdbcType=BIGINT},
|
money = #{money,jdbcType=FLOAT},
|
system_balance = #{systemBalance,jdbcType=FLOAT},
|
trade_amount = #{tradeAmount,jdbcType=FLOAT},
|
price = #{price,jdbcType=FLOAT},
|
card_cost = #{cardCost,jdbcType=INTEGER},
|
gift = #{gift,jdbcType=FLOAT},
|
no_trade_amount = #{noTradeAmount,jdbcType=FLOAT},
|
operate_type_id = #{operateType,jdbcType=BIGINT},
|
payment_id = #{paymentId,jdbcType=BIGINT},
|
remarks = #{remarks,jdbcType=VARCHAR},
|
`operator` = #{operator,jdbcType=BIGINT},
|
operate_dt = #{operateDt,jdbcType=TIMESTAMP}
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
|
<!--根据指定条件获取充值记录数量-->
|
<select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
select
|
COUNT(*) AS recordCount
|
FROM se_card_operate ope
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
<where>
|
AND ope.operate_type = 2
|
<if test = "clientName != null and clientName !=''">
|
AND cli.name like CONCAT('%',#{clientName},'%')
|
</if>
|
|
<if test = "clientNum != null and clientNum > 0">
|
AND cli.clientNum like CONCAT('%',#{clientNum},'%')
|
</if>
|
|
<if test = "cardNum != null and cardNum !=''">
|
AND card.cardNum like CONCAT('%',#{cardNum},'%')
|
</if>
|
|
<if test = "paymentId != null and paymentId > 0">
|
AND ope.payment_id = ${paymentId}
|
</if>
|
|
<if test = "rechargeTimeStart != null and rechargeTimeStop != null">
|
AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取充值记录-->
|
<select id="getRecharges" resultType="com.dy.pipIrrGlobal.voSe.VoRecharge">
|
SELECT
|
CAST(ope.id AS char) AS id ,
|
cli.name AS clientName,
|
cli.clientNum,
|
card.cardNum,
|
ope.trade_amount AS amount,
|
(ope.money + ope.trade_amount) AS afterRecharge,
|
ope.payment_id,
|
ope.price,
|
(SELECT `name` FROM ba_user WHERE id = ope.operator) AS operator,
|
ope.operate_dt
|
FROM se_card_operate ope
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
<where>
|
AND ope.operate_type = 2
|
<if test = "clientName != null and clientName !=''">
|
AND cli.name like CONCAT('%',#{clientName},'%')
|
</if>
|
|
<if test = "clientNum != null and clientNum > 0">
|
AND cli.clientNum like CONCAT('%',#{clientNum},'%')
|
</if>
|
|
<if test = "cardNum != null and cardNum !=''">
|
AND card.cardNum like CONCAT('%',#{cardNum},'%')
|
</if>
|
|
<if test = "paymentId != null and paymentId > 0">
|
AND ope.payment_id = ${paymentId}
|
</if>
|
|
<if test = "rechargeTimeStart != null and rechargeTimeStop != null">
|
AND ope.operate_dt BETWEEN #{rechargeTimeStart} AND #{rechargeTimeStop}
|
</if>
|
</where>
|
ORDER BY ope.operate_dt DESC
|
<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="getTransactionRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_card_operate ope
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN ba_user user ON ope.operator = user.id
|
INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
|
<where>
|
AND ope.operate_type IN(1,2,3,4)
|
<if test = "villageId != null and villageId > 0">
|
AND cli.villageId = ${villageId}
|
</if>
|
|
<if test = "cardNum != null and cardNum >0">
|
AND card.cardNum = ${cardNum}
|
</if>
|
|
<if test = "operateTimeStart != null and operateTimeStop != null">
|
AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取交易记录-->
|
<select id="getTransactions" resultType="com.dy.pipIrrGlobal.voSe.VoTransaction">
|
SELECT
|
ope.id AS orderNumber,
|
cli.villageId,
|
cli.districtTitle,
|
cli.clientNum,
|
cli.`name`,
|
card.cardNum,
|
cli.idCard,
|
cli.phone,
|
(CASE operate_type
|
WHEN 1 THEN '开卡'
|
WHEN 2 THEN '充值'
|
WHEN 3 THEN '销卡'
|
WHEN 4 THEN '补卡'
|
END) AS operateType,
|
ope.operate_dt AS operateTime,
|
IFNULL(ope.money, 0) AS money,
|
IFNULL(ope.trade_amount, 0) AS waterCost,
|
IFNULL(ope.gift, 0) AS gift,
|
IFNULL(ope.card_cost, 0) AS cardCost,
|
pay.`name` paymentMethod,
|
user.name AS operatorName
|
FROM se_card_operate ope
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN ba_user user ON ope.operator = user.id
|
INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
|
<where>
|
AND ope.operate_type IN(1,2,3,4)
|
<if test = "villageId != null and villageId > 0">
|
AND cli.villageId = ${villageId}
|
</if>
|
|
<if test = "cardNum != null and cardNum >0">
|
AND card.cardNum = ${cardNum}
|
</if>
|
|
<if test = "operateTimeStart != null and operateTimeStop != null">
|
AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
|
</if>
|
|
<if test = "cashierId != null and cashierId > 0">
|
AND user.id = ${cashierId}
|
</if>
|
</where>
|
ORDER BY ope.operate_dt
|
<if test="pageCurr != null and pageSize != null">
|
LIMIT ${pageCurr}, ${pageSize}
|
</if>
|
</select>
|
|
<!--根据指定条件获取购水汇总和购卡汇总,获取交易明细使用-->
|
<select id="getTransactionSums" resultType="java.util.Map">
|
SELECT
|
IFNULL(SUM(trade_amount),0) AS waterCost,
|
IFNULL(SUM(card_cost),0) AS cardCost
|
FROM se_card_operate ope
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN ba_user user ON ope.operator = user.id
|
INNER JOIN se_payment_method pay ON ope.payment_id = pay.id
|
<where>
|
AND ope.operate_type IN(1,2,3,4)
|
<if test = "villageId != null and villageId > 0">
|
AND cli.villageId = ${villageId}
|
</if>
|
|
<if test = "cardNum != null and cardNum >0">
|
AND card.cardNum = ${cardNum}
|
</if>
|
|
<if test = "operateTimeStart != null and operateTimeStop != null">
|
AND ope.operate_dt BETWEEN #{operateTimeStart} AND #{operateTimeStop}
|
</if>
|
</where>
|
</select>
|
|
|
<!--根据指定条件获取交易统计记录数-->
|
<select id="getTransactionStatisticsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM v_transactionstatistics
|
<where>
|
<if test = "operateTimeStart != null and operateTimeStop != null">
|
AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取交易统计记录-->
|
<select id="getTransactionStatistics" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics">
|
SELECT * FROM v_transactionstatistics
|
<where>
|
<if test = "operateTimeStart != null and operateTimeStop != null">
|
AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop}
|
</if>
|
</where>
|
ORDER BY tradeDate
|
<if test="pageCurr != null and pageSize != null">
|
LIMIT ${pageCurr}, ${pageSize}
|
</if>
|
</select>
|
|
<!--根基指定条件获取笔数合计、实收金额合计、赠送金额合计-->
|
<select id="getTransactionStatisticsSums" resultType="java.util.Map">
|
SELECT
|
SUM(count) AS totalCount,
|
SUM(received) AS totalReceived,
|
SUM(gift) AS totalGift
|
FROM v_transactionstatistics
|
<where>
|
<if test = "operateTimeStart != null and operateTimeStop != null">
|
AND tradeDate BETWEEN #{operateTimeStart} AND #{operateTimeStop}
|
</if>
|
</where>
|
</select>
|
|
<!--获取指定日期、指定支付方式实收金额合计-->
|
<select id="getPaymentSums" resultType="java.lang.Float">
|
SELECT
|
SUM(ope.trade_amount) AS tradeAmount
|
FROM se_card_operate ope
|
<where>
|
<if test = "tradeDate != null and tradeDate !=''">
|
AND Date(ope.operate_dt) = #{tradeDate}
|
</if>
|
|
<if test = "paymentId != null and paymentId >0">
|
AND ope.payment_id = ${paymentId}
|
</if>
|
</where>
|
GROUP BY ope.payment_id, Date(ope.operate_dt)
|
</select>
|
|
<!--根据指定条件获取开卡记录数量-->
|
<select id="getActiveCardRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
select
|
COUNT(*) AS recordCount
|
FROM se_card_operate ope
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
<where>
|
AND ope.operate_type = 1
|
<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>
|
|
<if test = "state != null and state > 0">
|
AND card.state = ${state}
|
</if>
|
|
<if test = "activeTimeStart != null and activeTimeStop != null">
|
AND ope.operate_dt BETWEEN #{activeTimeStart} AND #{activeTimeStop}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取开卡记录-->
|
<select id="getActiveCards" resultType="com.dy.pipIrrGlobal.voSe.VoActiveCardNew">
|
SELECT
|
CAST(ope.id AS char) AS id ,
|
cli.name AS clientName,
|
cli.clientNum AS clientNum,
|
card.cardNum AS cardNum,
|
card.state AS state,
|
(CASE
|
WHEN card.state = 1 THEN "正常"
|
WHEN card.state = 2 THEN "已注销"
|
WHEN card.state = 3 THEN "已挂失"
|
END) AS stateName,
|
ope.card_cost AS cardCost,
|
ope.payment_id AS paymentId,
|
(SELECT `name` FROM ba_user WHERE id = ope.operator) AS operator,
|
ope.operate_dt AS operateDt
|
FROM se_card_operate ope
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
<where>
|
AND ope.operate_type = 1
|
<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>
|
|
<if test = "state != null and state > 0">
|
AND card.state = ${state}
|
</if>
|
|
<if test = "activeTimeStart != null and activeTimeStop != null">
|
AND ope.operate_dt BETWEEN #{activeTimeStart} AND #{activeTimeStop}
|
</if>
|
</where>
|
ORDER BY ope.operate_dt DESC
|
<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="getReissueCardRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
select
|
COUNT(*) AS recordCount
|
FROM se_card_operate ope
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
<where>
|
AND ope.operate_type = 4
|
<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>
|
|
<if test = "activeTimeStart != null and activeTimeStop != null">
|
AND ope.operate_dt BETWEEN #{reissueCardTimeStart} AND #{reissueCardTimeStop}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取补卡记录-->
|
<select id="getReissueCards" resultType="com.dy.pipIrrGlobal.voSe.VoReissueCard">
|
SELECT
|
CAST(ope.id AS char) AS id ,
|
cli.name AS clientName,
|
cli.clientNum AS clientNum,
|
card.cardNum AS cardNum,
|
ope.card_cost AS cardCost,
|
IFNULL(ope.no_trade_amount,0) AS reissueAmount,
|
(SELECT `name` FROM ba_user WHERE id = ope.operator) AS operator,
|
ope.operate_dt AS operateDt
|
FROM se_card_operate ope
|
INNER JOIN se_client_card card ON ope.card_id = card.id
|
INNER JOIN se_client cli ON ope.client_id = cli.id
|
<where>
|
AND ope.operate_type = 4
|
<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>
|
|
<if test = "activeTimeStart != null and activeTimeStop != null">
|
AND ope.operate_dt BETWEEN #{reissueCardTimeStart} AND #{reissueCardTimeStop}
|
</if>
|
</where>
|
ORDER BY ope.operate_dt DESC
|
<trim prefix="limit " >
|
<if test="start != null and count != null">
|
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
|
</if>
|
</trim>
|
</select>
|
</mapper>
|