<?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.SeGeneralMapper">
|
<resultMap id="BaseResultMap" type="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
|
<!--@mbg.generated-->
|
<!--@Table se_general-->
|
<id column="id" jdbcType="BIGINT" property="id" />
|
<result column="cashier_id" jdbcType="BIGINT" property="cashierId" />
|
<result column="cashier_name" jdbcType="VARCHAR" property="cashierName" />
|
<result column="trade_amount" jdbcType="FLOAT" property="tradeAmount" />
|
<result column="gift" jdbcType="FLOAT" property="gift" />
|
<result column="refund_amount" jdbcType="FLOAT" property="refundAmount" />
|
<result column="operate_date" jdbcType="TIMESTAMP" property="operateDate" />
|
<result column="audit_status" jdbcType="TINYINT" property="auditStatus" />
|
</resultMap>
|
<sql id="Base_Column_List">
|
<!--@mbg.generated-->
|
id, cashier_id, cashier_name, trade_amount, gift, refund_amount, operate_date, audit_status
|
</sql>
|
<select id="selectByPrimaryKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
|
<!--@mbg.generated-->
|
select
|
<include refid="Base_Column_List" />
|
from se_general
|
where id = #{id,jdbcType=BIGINT}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
|
<!--@mbg.generated-->
|
delete from se_general
|
where id = #{id,jdbcType=BIGINT}
|
</delete>
|
<insert id="insert" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
|
<!--@mbg.generated-->
|
insert into se_general (id, cashier_id, cashier_name,
|
trade_amount, gift, refund_amount,
|
operate_date, audit_status)
|
values (#{id,jdbcType=BIGINT}, #{cashierId,jdbcType=BIGINT}, #{cashierName,jdbcType=VARCHAR},
|
#{tradeAmount,jdbcType=FLOAT}, #{gift,jdbcType=FLOAT}, #{refundAmount,jdbcType=FLOAT},
|
#{operateDate,jdbcType=TIMESTAMP}, #{auditStatus,jdbcType=TINYINT})
|
</insert>
|
<insert id="insertSelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
|
<!--@mbg.generated-->
|
insert into se_general
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
id,
|
</if>
|
<if test="cashierId != null">
|
cashier_id,
|
</if>
|
<if test="cashierName != null">
|
cashier_name,
|
</if>
|
<if test="tradeAmount != null">
|
trade_amount,
|
</if>
|
<if test="gift != null">
|
gift,
|
</if>
|
<if test="refundAmount != null">
|
refund_amount,
|
</if>
|
<if test="operateDate != null">
|
operate_date,
|
</if>
|
<if test="auditStatus != null">
|
audit_status,
|
</if>
|
</trim>
|
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
<if test="id != null">
|
#{id,jdbcType=BIGINT},
|
</if>
|
<if test="cashierId != null">
|
#{cashierId,jdbcType=BIGINT},
|
</if>
|
<if test="cashierName != null">
|
#{cashierName,jdbcType=VARCHAR},
|
</if>
|
<if test="tradeAmount != null">
|
#{tradeAmount,jdbcType=FLOAT},
|
</if>
|
<if test="gift != null">
|
#{gift,jdbcType=FLOAT},
|
</if>
|
<if test="refundAmount != null">
|
#{refundAmount,jdbcType=FLOAT},
|
</if>
|
<if test="operateDate != null">
|
#{operateDate,jdbcType=TIMESTAMP},
|
</if>
|
<if test="auditStatus != null">
|
#{auditStatus,jdbcType=TINYINT},
|
</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKeySelective" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
|
<!--@mbg.generated-->
|
update se_general
|
<set>
|
<if test="cashierId != null">
|
cashier_id = #{cashierId,jdbcType=BIGINT},
|
</if>
|
<if test="cashierName != null">
|
cashier_name = #{cashierName,jdbcType=VARCHAR},
|
</if>
|
<if test="tradeAmount != null">
|
trade_amount = #{tradeAmount,jdbcType=FLOAT},
|
</if>
|
<if test="gift != null">
|
gift = #{gift,jdbcType=FLOAT},
|
</if>
|
<if test="refundAmount != null">
|
refund_amount = #{refundAmount,jdbcType=FLOAT},
|
</if>
|
<if test="operateDate != null">
|
operate_date = #{operateDate,jdbcType=TIMESTAMP},
|
</if>
|
<if test="auditStatus != null">
|
audit_status = #{auditStatus,jdbcType=TINYINT},
|
</if>
|
</set>
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
<update id="updateByPrimaryKey" parameterType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
|
<!--@mbg.generated-->
|
update se_general
|
set cashier_id = #{cashierId,jdbcType=BIGINT},
|
cashier_name = #{cashierName,jdbcType=VARCHAR},
|
trade_amount = #{tradeAmount,jdbcType=FLOAT},
|
gift = #{gift,jdbcType=FLOAT},
|
refund_amount = #{refundAmount,jdbcType=FLOAT},
|
operate_date = #{operateDate,jdbcType=TIMESTAMP},
|
audit_status = #{auditStatus,jdbcType=TINYINT}
|
where id = #{id,jdbcType=BIGINT}
|
</update>
|
|
<!--获取未生成总账的交易日期列表(当天的交易记录不生成总账)-->
|
<select id="getDatesOfNotInGenerals" resultType="java.util.HashMap">
|
SELECT
|
DISTINCT Date(ope.operate_dt) AS operateDate
|
FROM se_card_operate ope
|
WHERE Date(ope.operate_dt) NOT IN(SELECT operate_date FROM se_general)
|
<!-- 取消当天限制-->
|
<!-- AND Date(ope.operate_dt) != CURDATE()-->
|
</select>
|
|
<!--根据交易日期获取总账记录列表(待生成的) -->
|
<select id="getGeneralByOperateDate" resultType="com.dy.pipIrrGlobal.pojoSe.SeGeneral">
|
SELECT
|
us.id AS cashierId,
|
us.`name` AS cashierName,
|
(IFNULL(SUM(ope.trade_amount),0) + IFNULL(SUM(ope.card_cost),0)) AS tradeAmount,
|
IFNULL(SUM(ope.gift),0) AS gift,
|
IFNULL(SUM(ope.refund_amount),0) AS refundAmount,
|
Date(ope.operate_dt) AS operateDate,
|
1 AS auditStatus
|
FROM se_card_operate ope
|
INNER JOIN ba_user us ON ope.operator = us.id
|
WHERE Date(ope.operate_dt) = #{operateDate}
|
GROUP BY ope.operator, Date(ope.operate_dt)
|
|
UNION ALL
|
|
SELECT
|
1000000 AS cashierId,
|
'微信' AS cashierName,
|
IFNULL(SUM(amount), 0) AS tradeAmount,
|
0 AS gift,
|
0 AS refundAmount,
|
Date(recharge_time) AS operateDate,
|
1 AS auditStatus
|
FROM se_wallet_recharge
|
WHERE Date(recharge_time) = #{operateDate}
|
GROUP BY Date(recharge_time)
|
|
UNION ALL
|
|
SELECT
|
1000000 AS cashierId,
|
'微信' AS cashierName,
|
IFNULL(-SUM(refund_amount), 0) AS tradeAmount,
|
0 AS gift,
|
0 AS refundAmount,
|
Date(audit_time) AS operateDate,
|
1 AS auditStatus
|
FROM se_refund
|
WHERE Date(audit_time) = #{operateDate}
|
GROUP BY Date(audit_time)
|
</select>
|
|
<!--根据指定条件获取总账记录数-->
|
<select id="getRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM se_general
|
<where>
|
<if test = "cashierName != null and cashierName !=''">
|
AND cashier_name like CONCAT('%',#{cashierName},'%')
|
</if>
|
|
<if test = "auditStatus != null and auditStatus > 0">
|
AND audit_status = #{auditStatus}
|
</if>
|
|
<if test = "operateDateStart != null and operateDateStop != null">
|
AND Date(operate_date) BETWEEN #{operateDateStart} AND #{operateDateStop}
|
</if>
|
</where>
|
</select>
|
|
<!--根据指定条件获取总账记录-->
|
<select id="getGenerals" resultType="com.dy.pipIrrGlobal.voSe.VoGeneral">
|
SELECT
|
id AS generalId,
|
cashier_id AS cashierId,
|
cashier_name AS cashierName,
|
trade_amount AS tradeAmount,
|
gift,
|
refund_amount AS refundAmount,
|
(trade_amount + gift - refund_amount) AS totalAmount,
|
Date(operate_date) AS operateDate,
|
(CASE
|
WHEN audit_status = 1 THEN '未审核'
|
WHEN audit_status = 2 THEN '同意'
|
WHEN audit_status = 3 THEN '驳回'
|
END) AS auditStatus
|
FROM se_general
|
<where>
|
<if test = "cashierName != null and cashierName !=''">
|
AND cashier_name like CONCAT('%',#{cashierName},'%')
|
</if>
|
|
<if test = "auditStatus != null and auditStatus > 0">
|
AND audit_status = #{auditStatus}
|
</if>
|
|
<if test = "operateDateStart != null and operateDateStop != null">
|
AND Date(operate_date) BETWEEN #{operateDateStart} AND #{operateDateStop}
|
</if>
|
</where>
|
ORDER BY Date(operate_date) 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="getPaymentSums" resultType="java.lang.Float">
|
SELECT
|
(SUM(ope.trade_amount) + SUM(ope.card_cost)) AS tradeAmount
|
FROM se_card_operate ope
|
<where>
|
AND ope.operate_valid = 2
|
<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>
|
|
<if test = "cashierId != null and cashierId >0">
|
AND ope.operator = #{cashierId}
|
</if>
|
</where>
|
<!-- GROUP BY ope.payment_id, Date(ope.operate_dt)-->
|
</select>
|
|
<!-- 财务对账审核页,收银员+日期分组,排除交易类型分组,记录数-->
|
<!-- <select id="getToAuditRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">-->
|
<!-- SELECT-->
|
<!-- COUNT(*) AS recordCount-->
|
<!-- FROM v_trade_summary-->
|
<!-- <where>-->
|
<!-- <if test = "cashierId != null and cashierId > 0">-->
|
<!-- AND cashierId = ${cashierId}-->
|
<!-- </if>-->
|
|
<!-- <if test = "tradeDate != null">-->
|
<!-- AND tradeDate = #{tradeDate}-->
|
<!-- </if>-->
|
<!-- </where>-->
|
<!-- </select>-->
|
|
<!--开卡系统交易统计,收银员+日期+类型分组-->
|
<select id="getSummaries" resultType="com.dy.pipIrrGlobal.voSe.VoTransactionStatistics">
|
SELECT
|
CASE
|
WHEN ope.operate_type = 1 THEN '开卡'
|
WHEN ope.operate_type = 2 THEN '充值'
|
WHEN ope.operate_type = 3 THEN '销卡'
|
WHEN ope.operate_type = 4 THEN '补卡'
|
WHEN ope.operate_type = 5 THEN '返还'
|
END AS operateType,
|
Date(ope.operate_dt) AS tradeDate,
|
COUNT(*) AS count,
|
(IFNULL(SUM(ope.trade_amount), 0) + IFNULL(SUM(ope.card_cost), 0)) AS received,
|
IFNULL(SUM(ope.gift), 0) AS gift,
|
IFNULL(sum(ope.refund_amount),0) AS refundAmount,
|
us.id AS cashierId
|
FROM se_card_operate ope
|
INNER JOIN ba_user us ON us.id = ope.operator
|
<where>
|
AND ope.operate_type IN(1,2,3,4,5)
|
AND ope.operate_valid = 2
|
<if test = "cashierId != null and cashierId > 0">
|
AND us.id = #{cashierId}
|
</if>
|
|
<if test = "timeStart != null and timeStop != null">
|
AND Date(ope.operate_dt) BETWEEN #{timeStart} AND #{timeStop}
|
</if>
|
</where>
|
GROUP BY ope.operate_type, Date(ope.operate_dt), us.id
|
ORDER BY tradeDate
|
|
<!-- SELECT * FROM v_trade_summary-->
|
<!-- <where>-->
|
<!-- <if test = "cashierId != null and cashierId > 0">-->
|
<!-- AND cashierId = #{cashierId}-->
|
<!-- </if>-->
|
|
<!-- <if test = "timeStart != null and timeStop != null">-->
|
<!-- AND Date(tradeDate) BETWEEN #{timeStart} AND #{timeStop}-->
|
<!-- </if>-->
|
<!-- </where>-->
|
<!-- ORDER BY tradeDate-->
|
</select>
|
|
<!-- 根据收银员ID及日期获取财务对账_交易明细记录数-->
|
<select id="getTradeDetailsRecordCount" parameterType="java.util.Map" resultType="java.lang.Long">
|
SELECT
|
COUNT(*) AS recordCount
|
FROM v_trade_details
|
<where>
|
<if test = "cashierId != null and cashierId > 0">
|
AND cashierId = #{cashierId}
|
</if>
|
|
<if test = "tradeDate != null">
|
AND Date(tradeTime) = #{tradeDate}
|
</if>
|
</where>
|
</select>
|
|
<!--根据收银员ID及日期获取财务对账_交易明细记录-->
|
<select id="getTradeDetails" resultType="com.dy.pipIrrGlobal.voSe.VoTradeDetails">
|
SELECT * FROM v_trade_details
|
<where>
|
<if test = "cashierId != null and cashierId > 0">
|
AND cashierId = #{cashierId}
|
</if>
|
|
<if test = "tradeDate != null">
|
AND Date(tradeTime) = #{tradeDate}
|
</if>
|
</where>
|
ORDER BY tradeTime
|
<trim prefix="limit " >
|
<if test="start != null and count != null">
|
#{start,javaType=Integer,jdbcType=INTEGER}, #{count,javaType=Integer,jdbcType=INTEGER}
|
</if>
|
</trim>
|
</select>
|
</mapper>
|