<?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.yeshi.fanli.dao.mybatis.redpack.RedPackBalanceMapper">
|
<resultMap id="BaseResultMap" type="com.yeshi.fanli.entity.redpack.RedPackBalance">
|
<id column="rpb_uid" property="id" jdbcType="BIGINT"/>
|
<result column="rpb_money" property="money" jdbcType="DECIMAL"/>
|
<result column="rpb_create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
<result column="rpb_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
</resultMap>
|
|
<resultMap id="VOResultMap" type="com.yeshi.fanli.vo.redpack.RedPackBalanceVO">
|
<id column="rpb_uid" property="id" jdbcType="BIGINT"/>
|
<result column="rpb_money" property="money" jdbcType="DECIMAL"/>
|
<result column="rpb_create_time" property="createTime" jdbcType="TIMESTAMP"/>
|
<result column="rpb_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
|
|
<result column="giveMoney" property="giveMoney" jdbcType="DECIMAL"/>
|
<result column="useMoney" property="useMoney" jdbcType="DECIMAL"/>
|
<result column="exchangeMoney" property="exchangeMoney" jdbcType="DECIMAL"/>
|
<result column="totalWin" property="totalWin" jdbcType="DECIMAL"/>
|
</resultMap>
|
|
<sql id="Base_Column_List">rpb_uid,rpb_money,rpb_create_time,rpb_update_time</sql>
|
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Long">select
|
<include refid="Base_Column_List"/>from yeshi_ec_red_pack_balance where rpb_uid = #{id,jdbcType=BIGINT}
|
</select>
|
<delete id="deleteByPrimaryKey" parameterType="java.lang.Long">delete from yeshi_ec_red_pack_balance where rpb_uid = #{id,jdbcType=BIGINT}</delete>
|
<insert id="insert" parameterType="com.yeshi.fanli.entity.redpack.RedPackBalance" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_red_pack_balance (rpb_uid,rpb_money,rpb_create_time,rpb_update_time) values (#{id,jdbcType=BIGINT},#{money,jdbcType=DECIMAL},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})</insert>
|
<insert id="insertSelective" parameterType="com.yeshi.fanli.entity.redpack.RedPackBalance" useGeneratedKeys="true" keyProperty="id">insert into yeshi_ec_red_pack_balance
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">rpb_uid,</if>
|
<if test="money != null">rpb_money,</if>
|
<if test="createTime != null">rpb_create_time,</if>
|
<if test="updateTime != null">rpb_update_time,</if>
|
</trim>values
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
<if test="id != null">#{id,jdbcType=BIGINT},</if>
|
<if test="money != null">#{money,jdbcType=DECIMAL},</if>
|
<if test="createTime != null">#{createTime,jdbcType=TIMESTAMP},</if>
|
<if test="updateTime != null">#{updateTime,jdbcType=TIMESTAMP},</if>
|
</trim>
|
</insert>
|
<update id="updateByPrimaryKey" parameterType="com.yeshi.fanli.entity.redpack.RedPackBalance">update yeshi_ec_red_pack_balance set rpb_money = #{money,jdbcType=DECIMAL},rpb_create_time = #{createTime,jdbcType=TIMESTAMP},rpb_update_time = #{updateTime,jdbcType=TIMESTAMP} where rpb_uid = #{id,jdbcType=BIGINT}</update>
|
<update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.redpack.RedPackBalance">update yeshi_ec_red_pack_balance
|
<set>
|
<if test="money != null">rpb_money=#{money,jdbcType=DECIMAL},</if>
|
<if test="createTime != null">rpb_create_time=#{createTime,jdbcType=TIMESTAMP},</if>
|
<if test="updateTime != null">rpb_update_time=#{updateTime,jdbcType=TIMESTAMP},</if>
|
</set> where rpb_uid = #{id,jdbcType=BIGINT}
|
</update>
|
|
<update id="subRedPack">
|
update yeshi_ec_red_pack_balance SET rpb_money = rpb_money - #{money,jdbcType=DECIMAL},rpb_update_time = NOW()
|
WHERE rpb_uid = #{id,jdbcType=BIGINT}
|
</update>
|
|
<update id="addRedPack">
|
UPDATE yeshi_ec_red_pack_balance SET rpb_money = rpb_money + #{money,jdbcType=DECIMAL},rpb_update_time = NOW()
|
WHERE rpb_uid = #{id,jdbcType=BIGINT}
|
</update>
|
|
<update id="resetRedPack">
|
UPDATE yeshi_ec_red_pack_balance SET rpb_money = 0,rpb_update_time = NOW()
|
WHERE rpb_uid = #{id,jdbcType=BIGINT}
|
</update>
|
|
<select id="selectForUpdate" resultMap="BaseResultMap" parameterType="java.lang.Long">
|
SELECT <include refid="Base_Column_List"/> FROM yeshi_ec_red_pack_balance
|
WHERE rpb_uid = #{id,jdbcType=BIGINT} FOR UPDATE
|
</select>
|
|
|
<select id="query" resultMap="VOResultMap">
|
SELECT b.*,IFNULL(dd.giveMoney,0)AS giveMoney,IFNULL(dd2.useMoney,0)AS useMoney ,IFNULL(dd3.exchangeMoney,0)AS exchangeMoney ,IFNULL(dd4.totalWin,0)AS totalWin FROM `yeshi_ec_red_pack_balance` b
|
LEFT JOIN (SELECT ABS(SUM(d.`rpd_money`)) AS giveMoney,d.`rpd_uid` FROM `yeshi_ec_red_pack_detail` d
|
WHERE d.`rpd_type` = 'giveOthersSucceed' AND d.`rpd_uid` LIKE '${key}%'
|
GROUP BY d.`rpd_uid` )dd ON dd.rpd_uid = b.`rpb_uid`
|
LEFT JOIN (SELECT ABS(SUM(d.`rpd_money`)) AS useMoney,d.`rpd_uid` FROM `yeshi_ec_red_pack_detail` d
|
WHERE d.`rpd_type` = 'useByShopOrder' AND d.`rpd_uid` LIKE '${key}%'
|
GROUP BY d.`rpd_uid` )dd2 ON dd2.rpd_uid = b.`rpb_uid`
|
LEFT JOIN (SELECT ABS(SUM(d.`rpd_money`)) AS exchangeMoney,d.`rpd_uid` FROM `yeshi_ec_red_pack_detail` d
|
WHERE d.`rpd_type` = 'redExchangePass' AND d.`rpd_uid` LIKE '${key}%'
|
GROUP BY d.`rpd_uid` )dd3 ON dd3.rpd_uid = b.`rpb_uid`
|
LEFT JOIN (SELECT ABS(SUM(d.`rpd_money`)) AS totalWin,d.`rpd_uid` FROM `yeshi_ec_red_pack_detail` d
|
WHERE d.`rpd_type` IN('newUserReward','invite','increaseReward','seriesReward','giveOthersReceive') AND d.`rpd_uid` LIKE '${key}%'
|
GROUP BY d.`rpd_uid` )dd4 ON dd4.rpd_uid = b.`rpb_uid`
|
WHERE b.`rpb_uid` LIKE '${key}%'
|
<if test="state != null">
|
AND b.rpb_state = #{state}
|
</if>
|
<if test="order == 0">
|
ORDER BY b.rpb_money DESC
|
</if>
|
<if test="order == 1">
|
ORDER BY dd.giveMoney DESC
|
</if>
|
<if test="order == 2">
|
ORDER BY dd2.useMoney DESC
|
</if>
|
<if test="order == 3">
|
ORDER BY dd3.exchangeMoney DESC
|
</if>
|
<if test="order == 4">
|
ORDER BY dd4.totalWin DESC
|
</if>
|
<if test="order == 5">
|
ORDER BY b.rpb_create_time
|
</if>
|
<if test="order == 6">
|
ORDER BY b.rpb_create_time DESC
|
</if>
|
LIMIT #{start},#{count}
|
</select>
|
|
<select id="count" resultType="Long">
|
SELECT IFNULL(COUNT(rpb_uid),0) FROM yeshi_ec_red_pack_balance
|
WHERE rpb_uid LIKE '${key}%'
|
<if test="state != null">
|
AND rpb_state = #{state}
|
</if>
|
</select>
|
|
</mapper>
|