Helius
2020-12-27 020911ea0df033a9c5b921d1c4938b37d9cd6fe4
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -48,6 +48,8 @@
      <result property="meiliao" column="meiliao" />
      <result property="zkTotal" column="zk_total" />
      <result property="arriveCnt" column="arrive_cnt" />
   </resultMap>
@@ -113,8 +115,20 @@
            <if test="(record.endTime!=null  )">
               and a.datatime <![CDATA[ < ]]> #{record.endTime}
            </if>
            <if test="record.beaultId != null and record.beaultId !='' ">
               and   a.beault_id = #{record.beaultId}
            </if>
            <if test="record.companyId != null and record.companyId !='' ">
               and   a.company_id = #{record.companyId}
            </if>
            <if test="record.beaultId != null and record.beaultId !='' ">
               and   a.beault_id = #{record.beaultId}
            </if>
            <if test="record.vipQueryKey != null and record.vipQueryKey != ''  ">
               and c.VIP_NAME like concat('%',#{record.vipQueryKey},'%')
               or (c.VIP_NO like concat('%',#{record.vipQueryKey},'%')
               or c.PHONE like concat('%',#{record.vipQueryKey},'%')
               )
            </if>
         </if>
      </where>
@@ -168,6 +182,15 @@
            </if>
            <if test="record.companyId != null and record.companyId !='' ">
               and   a.company_id = #{record.companyId}
            </if>
            <if test="record.beaultId != null and record.beaultId !='' ">
               and   a.beault_id = #{record.beaultId}
            </if>
            <if test="record.vipQueryKey != null and record.vipQueryKey != ''  ">
               and c.VIP_NAME like concat('%',#{record.vipQueryKey},'%')
               or (c.VIP_NO like concat('%',#{record.vipQueryKey},'%')
               or c.PHONE like concat('%',#{record.vipQueryKey},'%')
               )
            </if>
         </if>
      </where>
@@ -819,4 +842,120 @@
      where 1=1
      <include refid="where_sql"></include>
   </select>
   <select id="selectVipConsumeStatisticsList" resultMap="AchieveNewMap">
      select
         a.VIP_NAME,
         a.PHONE t9,
         GROUP_CONCAT(DISTINCT e.su_name) meiliao,
         d.cnt arrive_cnt,
         sum(b.buyConsume) goods_cash,
         sum(b.freeConsume) free_consume,
         sum(b.hisConsume) his_consume
      from sys_vip_info a
      inner join (
         select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) + IFNULL(card_cash, 0)) buyConsume from achieve_new a group by vip_id
      ) b on a.ID = b.vip_id
      inner join (
         select vip_id, count(1) cnt from (
                               select vip_id, date_format(datatime, '%Y-%m-%d')
                               from achieve_new
                               group by date_format(datatime, '%Y-%m-%d'), vip_id
                            ) c group by vip_id
         ) d on a.ID=d.vip_id
      left join sys_users e on find_in_set(e.su_id, a.BEATUY_ID)
      where 1=1
      <if test="record.vipName != null and record.vipName !=''">
         and (a.vip_name like CONCAT(CONCAT('%', #{record.vipName}), '%') or a.vip_no=#{record.vipName} or a.phone = #{record.vipName})
      </if>
      <if test="record.shopId != null">
         and a.shop_id=#{record.shopId}
      </if>
      <if test="record.beginTime != null">
         and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d')
      </if>
      <if test="record.endTime!=null">
         and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.endTime}, '%Y-%m-%d')
      </if>
      <if test="record.beaultId != null and record.beaultId!=''">
         and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
      </if>
      <if test='record.t1 == "on"'>
         and a.BEATUY_ID is not null
      </if>
      group by a.PHONE
      <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
         <if test="pageVo.sort !=null  and pageVo.order !=null">
            order by
            ${pageVo.sort} ${pageVo.order}
         </if>
         <if test="pageVo.offset >=0  and pageVo.limit >0">
            limit
            #{pageVo.offset},#{pageVo.limit}
         </if>
      </if>
   </select>
   <select id="selectVipConsumeStatisticsTotal" resultType="java.lang.Integer">
      select count(1)
      from sys_vip_info a
      inner join (
      select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_cash, 0) + IFNULL(card_cash, 0)) buyConsume from achieve_new a group by vip_id
      ) b on a.ID = b.vip_id
      inner join (
      select vip_id, count(1) cnt from (
      select vip_id, date_format(datatime, '%Y-%m-%d')
      from achieve_new
      group by date_format(datatime, '%Y-%m-%d'), vip_id
      ) c group by vip_id
      ) d on a.ID=d.vip_id
      left join sys_users e on find_in_set(e.su_id, a.BEATUY_ID)
      where 1=1
      <if test="record.vipName != null and record.vipName !=''">
         and (a.vip_name like CONCAT(CONCAT('%', #{record.vipName}), '%') or a.vip_no=#{record.vipName} or a.phone = #{record.vipName})
      </if>
      <if test="record.shopId != null">
         and a.shop_id=#{record.shopId}
      </if>
      <if test="record.beginTime != null">
         and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d')
      </if>
      <if test="record.endTime!=null">
         and date_format(b.datatime, '%Y-%m-%d') >= date_format(#{record.endTime}, '%Y-%m-%d')
      </if>
      <if test="record.beaultId != null and record.beaultId!=''">
         and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID)
      </if>
      <if test='record.t1 == "on"'>
         and a.BEATUY_ID is not null
      </if>
   </select>
   <select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo">
      select
         sale_id id,
         sum(IFNULL(proj_cash,0) + IFNULL(goods_cash,0) + IFNULL(card_cash,0) + IFNULL(consume, 0) + IFNULL(b.arrears, 0)) orderCash,
         sum(IFNULL(proj_cash,0) + IFNULL(goods_cash,0) + IFNULL(card_cash,0) + IFNULL(b.arrears, 0)) cash,
         sum(IFNULL(consume, 0)) cardUse,
         sum(IFNULL(his_consume, 0)) hisConsume,
         sum(IFNULL(free_consume, 0)) freeConsume,
         sum(IFNULL(proj_percentage, 0)) projCommission
      from achieve_new a
      left join sys_order b on a.sale_id=b.STAFF_ID and (date_format(b.ORDER_TIME, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(b.ORDER_TIME, '%Y-%m-%d'))
      where sale_id=#{userId}
      and (date_format(datatime, '%Y-%m-%d') >= date_format(#{startTime}, '%Y-%m-%d') and date_format(#{endTime}, '%Y-%m-%d') >= date_format(datatime, '%Y-%m-%d'))
   </select>
   <select id="selectApiOrderItemAchieve" resultType="com.matrix.system.app.vo.OrderDetailAchieveItemVo">
      select
         b.su_name name,
         IFNULL(a.card_cash, 0) + IFNULL(a.proj_cash, 0) + IFNULL(a.goods_cash, 0) achieve
      from achieve_new a
      inner join sys_users b on (a.beault_id=b.su_id or a.sale_id = b.su_id)
      where a.order_item_id=#{itemId} and order_type = '订单'
   </select>
</mapper>