From e65037e672ecab852e2a6c5b242cdadfd1a58b33 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 25 十一月 2019 09:30:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div

---
 fanli/src/main/java/com/yeshi/fanli/mapping/redpack/RedPackBalanceMapper.xml |   73 ++++++++++++++++++++++++++++++++----
 1 files changed, 64 insertions(+), 9 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/mapping/redpack/RedPackBalanceMapper.xml b/fanli/src/main/java/com/yeshi/fanli/mapping/redpack/RedPackBalanceMapper.xml
index 72ddb80..57962e6 100644
--- a/fanli/src/main/java/com/yeshi/fanli/mapping/redpack/RedPackBalanceMapper.xml
+++ b/fanli/src/main/java/com/yeshi/fanli/mapping/redpack/RedPackBalanceMapper.xml
@@ -5,43 +5,52 @@
   <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_state" property="state" jdbcType="INTEGER"/>
     <result column="rpb_create_time" property="createTime" jdbcType="TIMESTAMP"/>
     <result column="rpb_update_time" property="updateTime" jdbcType="TIMESTAMP"/>
   </resultMap>
-  <sql id="Base_Column_List">rpb_uid,rpb_money,rpb_state,rpb_create_time,rpb_update_time</sql>
+  
+  <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_state,rpb_create_time,rpb_update_time) values (#{id,jdbcType=BIGINT},#{money,jdbcType=DECIMAL},#{state,jdbcType=INTEGER},#{createTime,jdbcType=TIMESTAMP},#{updateTime,jdbcType=TIMESTAMP})</insert>
+  <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="state != null">rpb_state,</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="state != null">#{state,jdbcType=INTEGER},</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_state = #{state,jdbcType=INTEGER},rpb_create_time = #{createTime,jdbcType=TIMESTAMP},rpb_update_time = #{updateTime,jdbcType=TIMESTAMP} where rpb_uid = #{id,jdbcType=BIGINT}</update>
+  <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="state != null">rpb_state=#{state,jdbcType=INTEGER},</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 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>
@@ -51,9 +60,55 @@
   	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}%')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}%')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}%')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}%')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>
+	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>

--
Gitblit v1.8.0