yujian
2019-01-22 88b54772dbcf5ecab1e2316e4e4626ac901b8908
fanli/src/main/java/com/yeshi/fanli/mapping/ExtractMapper.xml
@@ -5,6 +5,8 @@
      <id column="id" property="id" jdbcType="BIGINT" />
      <result column="account" property="account" jdbcType="VARCHAR" />
      <result column="extractTime" property="extractTime" jdbcType="BIGINT" />
      <result column="receiveTime" property="receiveTime" jdbcType="TIMESTAMP" />
      <result column="ip" property="ip" jdbcType="VARCHAR" />
      <result column="money" property="money" jdbcType="DECIMAL" />
      <result column="name" property="name" jdbcType="VARCHAR" />
@@ -12,7 +14,7 @@
      <result column="state" property="state" jdbcType="INTEGER" />
      <result column="type" property="type" jdbcType="INTEGER" />
      <result column="adminId" property="adminId" jdbcType="BIGINT" />
      <association property="userInfo" column="uid"
         select="com.yeshi.fanli.dao.mybatis.UserInfoMapper.selectByPKey">
      </association>
@@ -20,10 +22,10 @@
      <association property="system" column="sid"
         select="com.yeshi.fanli.dao.mybatis.SystemMapper.selectByPrimaryKey">
      </association>
   </resultMap>
   <sql id="Base_Column_List">
      id,account,extractTime,ip,money,name,reason,state,type,uid,sid,adminId
      id,account,extractTime,ip,money,name,reason,state,type,uid,sid,adminId,receiveTime
   </sql>
   <select id="selectByPrimaryKey" resultMap="BaseResultMap"
      parameterType="java.lang.Long">
@@ -32,7 +34,7 @@
      from yeshi_ec_extract
      where id = #{id,jdbcType=BIGINT}
   </select>
   <select id="selectByPrimaryKeyForUpdate" resultMap="BaseResultMap"
      parameterType="java.lang.Long">
      select
@@ -40,9 +42,9 @@
      from yeshi_ec_extract
      where id = #{id,jdbcType=BIGINT} for update
   </select>
   <delete id="deleteByPrimaryKey" parameterType="java.lang.Long">
      delete from
@@ -52,7 +54,7 @@
   <insert id="insert" parameterType="com.yeshi.fanli.entity.bus.user.Extract"
      useGeneratedKeys="true" keyProperty="id">
      insert into yeshi_ec_extract (id,
      account,extractTime,ip,money,name,reason,state,type,uid,sid,adminId)
      account,extractTime,ip,money,name,reason,state,type,uid,sid,adminId,receiveTime)
      values
      (#{id,jdbcType=BIGINT},
      #{account,jdbcType=VARCHAR},
@@ -65,7 +67,8 @@
      #{type,jdbcType=INTEGER},
      #{userInfo.id,jdbcType=BIGINT},
      #{system.id,jdbcType=BIGINT}
      #{adminId,jdbcType=BIGINT}
      #{adminId,jdbcType=BIGINT},
      #{receiveTime,jdbcType=TIMESTAMP}
      )
   </insert>
   <insert id="insertSelective" parameterType="com.yeshi.fanli.entity.bus.user.Extract"
@@ -111,6 +114,14 @@
            adminId,
         </if>
         
         <if test="receiveTime != null">
            receiveTime,
         </if>
      </trim>
      <trim prefix="values (" suffix=")" suffixOverrides=",">
         <if test="id != null">
@@ -149,6 +160,12 @@
         <if test="system != null">
            #{adminId,jdbcType=BIGINT},
         </if>
         <if test="receiveTime != null">
            #{receiveTime,jdbcType=TIMESTAMP},
         </if>
      </trim>
   </insert>
   <update id="updateByPrimaryKeySelective" parameterType="com.yeshi.fanli.entity.bus.user.Extract">
@@ -194,6 +211,12 @@
         <if test="system != null">
            adminId = #{adminId,jdbcType=BIGINT},
         </if>
         <if test="receiveTime != null">
            #{receiveTime,jdbcType=TIMESTAMP},
         </if>
      </set>
      where id = #{id,jdbcType=BIGINT}
   </update>
@@ -222,96 +245,129 @@
      =#{adminId,jdbcType=BIGINT},
      sid
      =
      #{system.id,jdbcType=BIGINT}
      #{system.id,jdbcType=BIGINT},
      receiveTime
      =#{receiveTime,jdbcType=TIMESTAMP}
      where id =
      #{id,jdbcType=BIGINT}
   </update>
   <select id="checkExtract" resultType="java.lang.Integer">
   <![CDATA[
       select ABS(ttt.totalmoney-ttt.hbmoney)<0.001
    ]]>
        from
      (select u.my_hongBao,s.uid AS uid,s.money AS hbmoney,IF(ss.money IS NOT NULL,ss.money,0) + u.my_hongBao+IF( dd.`money` IS NOT NULL,dd.money,0)  AS totalmoney  FROM yeshi_ec_user u
      left join  (select h.uid,SUM(h.money) AS money FROM yeshi_ec_hongbao h  WHERE  h.state=3  AND h.uid = #{uid,jdbcType=BIGINT}  GROUP BY h.uid)s  ON u.id=s.uid
      left join  (SELECT  SUM(t.`money`)AS money,t.uid FROM yeshi_ec_extract t WHERE (t.state=0 OR t.state=1) AND t.`uid`= #{uid,jdbcType=BIGINT}  GROUP BY t.uid)ss ON ss.uid=u.id
       LEFT JOIN  (SELECT  ABS (SUM(d.money)) AS money,d.`uid` FROM yeshi_ec_account_details d WHERE d.type=10 OR d.type=9 GROUP BY d.`uid`)  dd ON dd.uid=u.`id`
       where s.uid IS NOT NULL AND s.money!= u.my_hongbao)ttt
       left join yeshi_ec_user u ON ttt.uid=u.`id` WHERE ttt.hbmoney!=ttt.totalmoney
       <![CDATA[
        SELECT ABS(ttt.totalmoney-ttt.hbmoney)<0.001
        ]]>
      FROM
      (
      SELECT u.my_hongBao,s.uid AS uid,s.money AS hbmoney,IF(ss.money IS NOT
      NULL,ss.money,0) + u.my_hongBao+IF( dd.`money` IS NOT NULL,dd.money,0)
      +IF( cc.`money` IS NOT NULL,cc.money,0) AS totalmoney FROM
      yeshi_ec_user u
      LEFT JOIN (SELECT h.hb_uid as uid,SUM(h.hb_money) AS money FROM yeshi_ec_hongbao_v2 h
      WHERE h.hb_state=3 AND h.hb_uid = #{uid,jdbcType=BIGINT} GROUP BY h.hb_uid)s ON
      u.id=s.uid
      LEFT JOIN (SELECT SUM(t.`money`)AS money,t.uid FROM yeshi_ec_extract t
      WHERE (t.state=0 OR t.state=1) AND t.`uid`=#{uid,jdbcType=BIGINT}
      GROUP BY t.uid)ss ON ss.uid=u.id
      LEFT JOIN (SELECT ABS (SUM(d.money)) AS money,d.`uid` FROM
      yeshi_ec_account_details d WHERE (d.type=10 OR d.type=9 ) AND d.uid=
      #{uid,jdbcType=BIGINT} GROUP BY d.`uid`) dd ON dd.uid=u.`id`
      LEFT JOIN (SELECT SUM(c.ecc_money) AS money,c.`ecc_uid` AS uid FROM
      `yeshi_ec_extract_check_compensate` c WHERE
      c.ecc_uid=#{uid,jdbcType=BIGINT} GROUP BY c.ecc_uid) cc ON
      cc.uid=u.`id`
      WHERE s.uid IS NOT NULL AND s.money!= u.my_hongbao) ttt
      LEFT JOIN yeshi_ec_user u ON ttt.uid=u.`id` WHERE
      ttt.hbmoney!=ttt.totalmoney
   </select>
   <select id="getTodayCount" resultType="java.util.HashMap">
       SELECT IFNULL(COUNT(et.id), 0)AS total,IFNULL(SUM(CASE WHEN et.state = 1 THEN 1 ELSE 0 END),0) AS succeed,IFNULL(SUM(CASE WHEN et.state = 2 THEN 1 ELSE 0 END),0) AS fails
       FROM yeshi_ec_extract et  WHERE  (et.state=1 OR et.state= 2) AND
       <![CDATA[
          FROM_UNIXTIME(et.extractTime/1000) >=CURDATE();
       ]]>
      SELECT IFNULL(COUNT(et.id), 0)AS total,IFNULL(SUM(CASE WHEN et.state =
      1 THEN 1 ELSE 0 END),0) AS succeed,IFNULL(SUM(CASE WHEN et.state = 2
      THEN 1 ELSE 0 END),0) AS fails
      FROM yeshi_ec_extract et
      LEFT JOIN `yeshi_ec_extract_audit_record` ar ON ar.`extractId` = et.`id`
      WHERE  ar.`id` IS NOT NULL
            AND FROM_UNIXTIME(ar.`auditTime`/1000,'%y%m%d') = CURDATE()
   </select>
   <select id="getTodayTotalSuccessMoney" resultType="java.math.BigDecimal">
       SELECT  IFNULL(ROUND(SUM(money),2) ,0) AS moneys
        FROM yeshi_ec_extract et  WHERE  et.state=1  AND
        <![CDATA[
          FROM_UNIXTIME(et.extractTime/1000) >=CURDATE();
       ]]>
      SELECT IFNULL(ROUND(SUM(money),2) ,0) AS moneys
      FROM yeshi_ec_extract et
      LEFT JOIN `yeshi_ec_extract_audit_record` ar ON ar.`extractId` = et.`id`
      WHERE et.state=1 AND  ar.`id` IS NOT NULL
         AND FROM_UNIXTIME(ar.`auditTime`/1000,'%y%m%d') = CURDATE()
   </select>
   <select id="countTotalSuccess" resultType="java.util.HashMap">
      <!-- 提现成功 次数、总金额 -->
      SELECT IFNULL(ROUND(SUM(money),2),0) AS totalmoney,
         IFNULL(COUNT(et.id),0) AS totalamount FROM yeshi_ec_extract et  WHERE  et.state=1
      SELECT CAST(SUM(et.money)AS DECIMAL(19,2)) AS totalmoney,
      IFNULL(COUNT(et.id),0) AS totalamount FROM yeshi_ec_extract et
      WHERE et.state=1
   </select>
   <select id="getMyTaskInfo" resultMap="BaseResultMap">
       SELECT <include refid="Base_Column_List" /> FROM yeshi_ec_extract
       WHERE adminId = ${adminId} and state=0    ORDER BY extractTime  LIMIT 0,1
   </select>
   <select id="getMyTaskInfo" resultMap="BaseResultMap">
      SELECT
      <include refid="Base_Column_List" />
      FROM yeshi_ec_extract
      WHERE adminId = ${adminId} and state=0 ORDER BY extractTime LIMIT 0,1
   </select>
   <select id="getNewTaskInfo" resultMap="BaseResultMap">
       SELECT <include refid="Base_Column_List" /> FROM yeshi_ec_extract
       WHERE  state=0   ORDER BY extractTime  LIMIT 0,1
   </select>
      SELECT
      <include refid="Base_Column_List" />
      FROM yeshi_ec_extract
      WHERE state=0 ORDER BY extractTime LIMIT 0,1
   </select>
   <select id="countRecordsByUid" resultType="java.util.HashMap">
      SELECT IFNULL(COUNT(et.id), 0) AS totalamount,IFNULL(SUM(CASE WHEN et.state = 1 THEN 1 ELSE 0 END),0) AS succeed,
            IFNULL(SUM(CASE WHEN et.state = 2 THEN 1 ELSE 0 END),0) AS fail
      FROM yeshi_ec_extract et  WHERE  (et.state=1 OR et.state= 2)  AND et.uid = ${uid}
      SELECT IFNULL(COUNT(et.id), 0) AS totalamount,IFNULL(SUM(CASE WHEN et.state
      = 1 THEN 1 ELSE 0 END),0) AS succeed,
      IFNULL(SUM(CASE WHEN et.state = 2 THEN 1 ELSE 0 END),0) AS fail
      FROM yeshi_ec_extract
      et WHERE (et.state=1 OR et.state= 2) AND et.uid = ${uid}
   </select>
    <select id="countSuccessMoneysByUid" resultType="java.lang.Double">
     SELECT  IFNULL(ROUND(SUM(et.money),2),0) AS moneys  FROM yeshi_ec_extract et
       WHERE  et.state=1 AND et.uid = ${uid}
   <select id="countSuccessMoneysByUid" resultType="java.lang.Double">
      SELECT IFNULL(ROUND(SUM(et.money),2),0) AS moneys FROM yeshi_ec_extract et
      WHERE et.state=1 AND et.uid = ${uid}
   </select>
   <select id="countSuccessByUid" resultType="java.lang.Long">
     SELECT   COUNT(et.id)  FROM yeshi_ec_extract et
       WHERE  et.state=1 AND et.uid = ${uid}
      SELECT COUNT(et.id) FROM yeshi_ec_extract et
      WHERE et.state=1 AND et.uid = ${uid}
   </select>
   <select id="getFinishRecord" resultType="java.util.Map">
       SELECT ex.*,ar.*  FROM yeshi_ec_extract ex LEFT JOIN yeshi_ec_extract_audit_record ar ON ar.extractId=ex.id
          WHERE
      SELECT ex.*,ar.* FROM yeshi_ec_extract ex LEFT JOIN
      yeshi_ec_extract_audit_record ar ON ar.extractId=ex.id
      WHERE
     <![CDATA[
          FROM_UNIXTIME(ex.extractTime/1000)  >= #{startTime}
            AND  FROM_UNIXTIME(ex.extractTime/1000) <= #{endTime} 
      ]]>
      <if test='key != null and key != ""'>
            AND (ex.uid = #{key} OR ar.aid = #{key})
         </if>
      ORDER BY ex.extractTime DESC  LIMIT ${start},${count}
   </select>
    <select id="countTodayApply" resultType="java.lang.Integer">
      SELECT count(id)  FROM yeshi_ec_extract
          WHERE  <![CDATA[ FROM_UNIXTIME(extractTime/1000) >=CURDATE() ]]>
      <if test='key != null and key != ""'>
         AND (ex.uid = #{key} OR ar.aid = #{key})
      </if>
      ORDER BY ex.extractTime DESC LIMIT ${start},${count}
   </select>
   <select id="countTodayApply" resultType="java.lang.Integer">
      SELECT count(id) FROM yeshi_ec_extract
      WHERE  <![CDATA[ FROM_UNIXTIME(extractTime/1000) >=CURDATE() ]]>
   </select>
   <select id="countTodayComplete" resultType="java.lang.Integer">
      SELECT count(id) FROM yeshi_ec_extract
      WHERE (state=1 OR state= 2) <![CDATA[AND  FROM_UNIXTIME(extractTime/1000) >=CURDATE() ]]>
   </select>
   
   <select id="countTodayComplete" resultType="java.lang.Integer">
      SELECT count(id)  FROM yeshi_ec_extract
          WHERE (state=1 OR state= 2) <![CDATA[AND  FROM_UNIXTIME(extractTime/1000) >=CURDATE() ]]>
   <select id="countTodayMoney" resultType="java.lang.Double">
      SELECT IFNULL(SUM(t.`money`),0) FROM  yeshi_ec_extract t
      WHERE t.`uid` = #{uid} AND t.state = 1
         AND <![CDATA[TO_DAYS( FROM_UNIXTIME(t.extractTime/1000)) = TO_DAYS(NOW())]]>
   </select>
   
</mapper>