wzy
2021-01-18 5b5b38441c55eddcdeb74e2a3b096536c8ebf37b
zq-erp/src/main/resources/mybatis/mapper/hive/TjVipSumDao.xml
@@ -7,26 +7,423 @@
   <!-- 人头数统计 -->
   <select id="countVisitByTime" resultType="java.util.TreeMap">
   <select id="customerHeadCompare" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
            SELECT count(*)  from (
               SELECT DISTINCT vip_id  from  achieve_new where <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
               <if test="shopId !=null and shopId !=0 " >
                  and SHOP_ID = #{shopId}
               </if>
            ) t
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <!-- 人次统计 -->
   <select id="customerEnterCountCompare"  resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         SELECT count(*)  from (
         SELECT DISTINCT vip_id   ,date_format(datatime,'%Y-%m-%d') from  achieve_new where <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) t
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <!-- 到店率 -->
   <select id="customerEnterRateCompare"  resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         SELECT count(*)  from (SELECT DISTINCT vip_id  from  achieve_new
            where
            <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         ifnull( (   (
            SELECT count(*)  from (
            SELECT DISTINCT vip_id   ,date_format(datatime,'%Y-%m-%d') from  achieve_new where <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
            <if test="shopId !=null and shopId !=0 " >
               and SHOP_ID = #{shopId}
            </if>
         ) t
            </if>) a
         )
         /
         (
            SELECT count(*)  from (
            SELECT DISTINCT vip_id   from  achieve_new where <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
            <if test="shopId !=null and shopId !=0 " >
               and SHOP_ID = #{shopId}
            </if>) b
         )
      ),0 )as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectBusinessInCome" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(ZK_TOTAL), 0)
         from sys_order
         where STATU in ('已付款', '欠款')
         and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectCashIncome" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(cash_Pay), 0)
         from sys_order
         where STATU in ('已付款')
         and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectCardUse" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(card_Pay), 0)
         from sys_order
         where STATU in ('已付款')
         and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectArrears" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(arrears), 0)
         from sys_order
         where STATU in ('欠款')
         and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectHisConsume" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(his_consume), 0)
         from achieve_new
         where order_type in ('服务单')
         and <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectFreeConsume" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(free_consume), 0)
         from achieve_new
         where order_type in ('服务单')
         and <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectCashRefund" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(cash_Pay), 0)
         from sys_order
         where STATU in ('退款')
         and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectCardRefund" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select IFNULL(sum(card_Pay), 0)
         from sys_order
         where STATU in ('退款')
         and <![CDATA[order_time > #{item.beginTime}   and  order_time < #{item.endTime} ]]>
         <if test="companyId != null and companyId != 0">
            and company_id=#{companyId}
         </if>
         <if test="shopId !=null and shopId !=0 " >
            and SHOP_ID = #{shopId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   </mapper>
   <select id="selectVipAchieveInPage" resultType="com.matrix.system.app.vo.VipAchieveDataShowVo">
      <foreach collection="list" index="index" item="item"   separator="union all"  >
         select
            #{item.beginTime} time,
            (select ifnull(sum(card_cash),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) orderAmount,
            (select ifnull(sum(case t3 when '现金业绩' then card_cash else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cashAmount,
            (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardAmount,
            (select ifnull(sum(case t3 when '划扣业绩' then consume else 0 end),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) cardUseAmount,
            (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='订单') goodsAmount,
            (select ifnull(sum(ifnull(his_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) hisConsume,
            (select ifnull(sum(ifnull(free_consume, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) freeConsume,
            (select ifnull(sum(ifnull(proj_percentage, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]> and order_type='服务单') commission,
            (select ifnull(sum(ifnull(number_of_people, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) peopleNum,
            (select ifnull(sum(ifnull(proj_num, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) projNum,
            (select ifnull(sum(ifnull(proj_time, 0)),0) from achieve_new a where a.beault_id=#{userId} and <![CDATA[datatime > #{item.beginTime} and datatime < #{item.endTime} ]]>) serviceTime
         from dual
      </foreach>
   </select>
   <select id="selectStaffOrderAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
            IFNULL(SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffCashAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.proj_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffCardAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.card_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffGoodsAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.goods_cash,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffCardUseAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.consume,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and sale_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffHisConsumeAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.his_consume,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffFreeConsumeAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.free_consume,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffCommissionAchieve" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.proj_percentage,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffPeopleNum" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.number_of_people,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffProjNum" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.proj_num,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
   <select id="selectStaffProjTime" resultType="java.util.TreeMap">
      select
      <foreach collection="list" index="index" item="item"   separator=","  >
         (
         select
         IFNULL(SUM((IFNULL(a.proj_time,0))),0)
         from  achieve_new a
         where   <![CDATA[datatime > #{item.beginTime}   and  datatime < #{item.endTime} ]]>
         <if test="staffId != null and staffId != 0">
            and beault_id=#{staffId}
         </if>
         ) as t${index}
      </foreach>
      from area where id=1
   </select>
</mapper>