Helius
2022-05-27 4351e71d782741143a98f86f6648acd16689165f
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -1,6 +1,6 @@
<?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">
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
      "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.matrix.system.hive.dao.AchieveNewDao">
   <!-- 定义AchieveNew 的复杂关联map -->
@@ -17,10 +17,8 @@
      <result property="vipId" column="vip_id" />
      <result property="freeConsume" column="free_consume" />
      <result property="hisConsume" column="his_consume" />
      <result property="consume" column="consume" />
      <result property="cardCash" column="card_cash" />
      <result property="projCash" column="proj_cash" />
      <result property="goodsCash" column="goods_cash" />
      <result property="cardCash" column="card_cash" />
      <result property="projNum" column="proj_num" />
      <result property="numberOfPeople" column="number_of_people" />
      <result property="shopName" column="shop_name" />
@@ -30,7 +28,7 @@
      <result property="projPercentage" column="proj_percentage" />
      <result property="t1" column="t1" />
      <result property="t2" column="t2" />
      <result property="t3" column="t3" />
      <result property="achieveType" column="achieveType" />
      <result property="t4" column="t4" />
      <result property="t5" column="t5" />
      <result property="t6" column="t6" />
@@ -47,12 +45,14 @@
      <result property="guwen" column="guwen" />
      <result property="meiliao" column="meiliao" />
      <result property="zkTotal" column="zk_total" />
      <result property="payMethod" column="pay_method" />
      <result property="arriveCnt" column="arrive_cnt" />
      <result property="goodsNo" column="goodsNo" />
      <result property="goodsName" column="goodsName" />
      <result property="zkPrice" column="zkPrice" />
      <result property="cateName" column="cateName" />
      <result property="achieveRuleName" column="achieveRuleName" />
   </resultMap>
@@ -67,14 +67,9 @@
      d.level_name,
      c.vip_name,
      e.name as pro_name,
      a.card_cash,
      (IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0)
      ) as zk_total,
      a.proj_cash,
      a.goods_cash,
      a.card_cash,
      a.consume,
      b.ZK_TOTAL as zk_total,
      a.his_consume,
      er.name as achieveRuleName,
      a.free_consume,
      f.su_name meiliao,
      g.su_name guwen,
@@ -82,25 +77,35 @@
      a.number_of_people,
      a.proj_num,
      a.proj_time,
      i.name as module_subName,
      h.SHOP_NAME shop_name,
      a.order_type
      i.name as cateName,
      h.shop_short_name shop_name,
      a.order_type,
      a.achieveType,
      case when a.pay_method = '现金' then goods_cash end goods_cash,
      case when a.pay_method = '划扣' then goods_cash end card_cash,
      j.pay_method
      from
      achieve_new a
      left join sys_order b on a.order_id=b.id
      left join sys_vip_info c on a.vip_id=c.id
      left join sys_vip_level d on c.LEVEL_ID=d.id
      left join shopping_goods e on a.shopping_goods_id=e.id
      left join achieve_rule er on e.achieve_rule_id=er.id
      LEFT JOIN sys_users f on a.beault_id=f.su_id
      LEFT JOIN sys_users g on a.sale_id = g.su_id
      LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
      LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
      left join sys_proj_services l on a.service_order_id=l.id
      left join sys_order_item j on a.order_item_id=j.ID
      <where>
         and   a.company_id = #{record.companyId}
         <if test="record!=null">
            <if
               test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
                  test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
               and a.shop_id = #{record.shopId}
            </if>
            <if test="record.achieveRuleId != null  ">
               and e.achieve_rule_id = #{record.achieveRuleId}
            </if>
            <if test="record.year != null and record.year !='' ">
               and YEAR (a.datatime) = #{record.year}
@@ -120,9 +125,7 @@
            <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>
@@ -148,7 +151,7 @@
   </select>
   <select id="findDayFlowTotal"
      resultType="java.lang.Integer">
         resultType="java.lang.Integer">
      select count(*)
      from
      achieve_new a
@@ -162,9 +165,10 @@
      LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
      left join sys_proj_services l on a.service_order_id=l.id
      <where>
         <if test="record!=null">
            <if
               test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
                  test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
               and a.shop_id = #{record.shopId}
            </if>
            <if test="record.year != null and record.year !='' ">
@@ -198,7 +202,41 @@
      </where>
   </select>
   <!--
     统计员工业绩
    select
            u.name,
            g.su_name guwen,
            cast(SUM(b.ZK_TOTAL) AS decimal(15,2)) as zk_total,
            cast(SUM(a.his_consume) AS decimal(15,2)),
            cast(SUM(a.free_consume) AS decimal(15,2)),
            cast(SUM(a.proj_percentage) AS decimal(15,2)),
            cast(SUM(a.number_of_people) AS decimal(15,2)),
            cast(SUM(a.proj_num) AS decimal(15,2)),
            cast(SUM(a.proj_time) AS decimal(15,2)),
            h.shop_short_name shop_name,
            a.order_type,
            a.achieveType
            from
            achieve_new a
            left join sys_order b on a.order_id=b.id
            left join sys_vip_info c on a.vip_id=c.id
            left join sys_vip_level d on c.LEVEL_ID=d.id
            left join shopping_goods e on a.shopping_goods_id=e.id
            LEFT JOIN sys_users f on a.beault_id=f.su_id
            LEFT JOIN sys_users g on a.sale_id = g.su_id
            LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
            LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
            left join sys_proj_services l on a.service_order_id=l.id
            left join sys_order_item j on a.order_item_id=j.ID
            left join achieve_rule u on u.id=e.achieve_rule_id
     where h.shop_short_name='龙华店'
        GROUP BY g.su_name , a.order_type, h.id,a.achieveType
        ORDER BY g.su_name
    -->
   <select id="findSumDailyInfoNew" resultMap="AchieveNewMap">
@@ -206,12 +244,8 @@
      YEAR (a.datatime) year,
      MONTH (a.datatime) month,
      DAY(a.datatime) day,
      SUM(a.card_cash) as card_cash ,
      SUM((IFNULL(a.card_cash,0) +IFNULL(a.proj_cash,0) + IFNULL(a.goods_cash,0) ) )as zk_total,
      SUM(a.proj_cash) as proj_cash,
      SUM( IFNULL(a.goods_cash,0)  )as zk_total,
      SUM(a.goods_cash) as goods_cash,
      SUM(a.card_cash) as card_cash,
      SUM(a.consume) as consume,
      SUM(a.his_consume) as his_consume,
      SUM(a.free_consume) as free_consume,
      SUM(a.proj_percentage) as proj_percentage,
@@ -233,9 +267,10 @@
      LEFT JOIN shopping_goods_category j ON i.parent_id = j.id
      left join sys_proj_services l on a.service_order_id=l.id
      <where>
         <if test="record!=null">
            <if
               test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
                  test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
               and a.shop_id = #{record.shopId}
            </if>
            <if test="record.year != null and record.year !='' ">
@@ -287,9 +322,6 @@
      <result property="vipId" column="vip_id" />
      <result property="freeConsume" column="free_consume" />
      <result property="hisConsume" column="his_consume" />
      <result property="consume" column="consume" />
      <result property="cardCash" column="card_cash" />
      <result property="projCash" column="proj_cash" />
      <result property="goodsCash" column="goods_cash" />
      <result property="projNum" column="proj_num" />
      <result property="numberOfPeople" column="number_of_people" />
@@ -298,9 +330,10 @@
      <result property="remark" column="remark" />
      <result property="orderType" column="order_type" />
      <result property="projPercentage" column="proj_percentage" />
      <result property="payMethod" column="pay_method" />
      <result property="t1" column="t1" />
      <result property="t2" column="t2" />
      <result property="t3" column="t3" />
      <result property="achieveType" column="achieveType" />
      <result property="t4" column="t4" />
      <result property="t5" column="t5" />
      <result property="t6" column="t6" />
@@ -323,9 +356,6 @@
      vip_id,
      free_consume,
      his_consume,
      consume,
      card_cash,
      proj_cash,
      goods_cash,
      proj_num,
      number_of_people,
@@ -334,15 +364,17 @@
      remark,
      order_type,
      proj_percentage,
      t1,
      t2,
      t3,
      achieveType,
      t4,
      t5,
      t6,
      t8,
      t9,
      company_id
      company_id,
pay_method
   </sql>
   <!-- 属性sql -->
@@ -359,9 +391,6 @@
      #{item.vipId},
      #{item.freeConsume},
      #{item.hisConsume},
      #{item.consume},
      #{item.cardCash},
      #{item.projCash},
      #{item.goodsCash},
      #{item.projNum},
      #{item.numberOfPeople},
@@ -370,15 +399,17 @@
      #{item.remark},
      #{item.orderType},
      #{item.projPercentage},
      #{item.t1},
      #{item.t2},
      #{item.t3},
      #{item.achieveType},
      #{item.t4},
      #{item.t5},
      #{item.t6},
      #{item.t8},
      #{item.t9},
      #{item.companyId}
      #{item.companyId},
      #{item.payMethod}
   </sql>
   <!-- where sql -->
@@ -386,130 +417,120 @@
      <if test="record!=null">
         <if
            test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
               test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
            and id = #{record.id}
         </if>
         <if test="record.companyId != null and record.companyId !='' ">
            and company_id = #{record.companyId}
         </if>
         <if
            test="(record.saleId!=null and record.saleId!='') or  (record.saleId!='' and record.saleId==0)  ">
               test="(record.saleId!=null and record.saleId!='') or  (record.saleId!='' and record.saleId==0)  ">
            and sale_id = #{record.saleId}
         </if>
         <if
            test="(record.beaultId!=null and record.beaultId!='') or  (record.beaultId!='' and record.beaultId==0)  ">
               test="(record.beaultId!=null and record.beaultId!='') or  (record.beaultId!='' and record.beaultId==0)  ">
            and beault_id = #{record.beaultId}
         </if>
         <if
            test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
               test="(record.shopId!=null and record.shopId!='') or  (record.shopId!='' and record.shopId==0)  ">
            and shop_id = #{record.shopId}
         </if>
         <if
            test="(record.datatime!=null and record.datatime!='') or  (record.datatime!='' and record.datatime==0)  ">
               test="(record.datatime!=null and record.datatime!='') or  (record.datatime!='' and record.datatime==0)  ">
            and datatime = #{record.datatime}
         </if>
         <if
            test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
               test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
            and order_id = #{record.orderId}
         </if>
         <if
            test="(record.orderItemId!=null and record.orderItemId!='') or  (record.orderItemId!='' and record.orderItemId==0)  ">
               test="(record.orderItemId!=null and record.orderItemId!='') or  (record.orderItemId!='' and record.orderItemId==0)  ">
            and order_item_id = #{record.orderItemId}
         </if>
         <if
            test="(record.shoppingGoodsId!=null and record.shoppingGoodsId!='') or  (record.shoppingGoodsId!='' and record.shoppingGoodsId==0)  ">
               test="(record.shoppingGoodsId!=null and record.shoppingGoodsId!='') or  (record.shoppingGoodsId!='' and record.shoppingGoodsId==0)  ">
            and shopping_goods_id = #{record.shoppingGoodsId}
         </if>
         <if
            test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
               test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
            and service_order_id = #{record.serviceOrderId}
         </if>
         <if
            test="(record.vipId!=null and record.vipId!='') or  (record.vipId!='' and record.vipId==0)  ">
               test="(record.vipId!=null and record.vipId!='') or  (record.vipId!='' and record.vipId==0)  ">
            and vip_id = #{record.vipId}
         </if>
         <if
            test="(record.freeConsume!=null and record.freeConsume!='') or  (record.freeConsume!='' and record.freeConsume==0)  ">
               test="(record.freeConsume!=null and record.freeConsume!='') or  (record.freeConsume!='' and record.freeConsume==0)  ">
            and free_consume = #{record.freeConsume}
         </if>
         <if
            test="(record.hisConsume!=null and record.hisConsume!='') or  (record.hisConsume!='' and record.hisConsume==0)  ">
               test="(record.hisConsume!=null and record.hisConsume!='') or  (record.hisConsume!='' and record.hisConsume==0)  ">
            and his_consume = #{record.hisConsume}
         </if>
         <if
            test="(record.consume!=null and record.consume!='') or  (record.consume!='' and record.consume==0)  ">
            and consume = #{record.consume}
         </if>
         <if
            test="(record.cardCash!=null and record.cardCash!='') or  (record.cardCash!='' and record.cardCash==0)  ">
            and card_cash = #{record.cardCash}
         </if>
         <if
            test="(record.projCash!=null and record.projCash!='') or  (record.projCash!='' and record.projCash==0)  ">
            and proj_cash = #{record.projCash}
         </if>
         <if
            test="(record.goodsCash!=null and record.goodsCash!='') or  (record.goodsCash!='' and record.goodsCash==0)  ">
               test="(record.goodsCash!=null and record.goodsCash!='') or  (record.goodsCash!='' and record.goodsCash==0)  ">
            and goods_cash = #{record.goodsCash}
         </if>
         <if
            test="(record.projNum!=null and record.projNum!='') or  (record.projNum!='' and record.projNum==0)  ">
               test="(record.projNum!=null and record.projNum!='') or  (record.projNum!='' and record.projNum==0)  ">
            and proj_num = #{record.projNum}
         </if>
         <if
            test="(record.numberOfPeople!=null and record.numberOfPeople!='') or  (record.numberOfPeople!='' and record.numberOfPeople==0)  ">
               test="(record.numberOfPeople!=null and record.numberOfPeople!='') or  (record.numberOfPeople!='' and record.numberOfPeople==0)  ">
            and number_of_people = #{record.numberOfPeople}
         </if>
         <if
            test="(record.shopName!=null and record.shopName!='') or  (record.shopName!='' and record.shopName==0)  ">
               test="(record.shopName!=null and record.shopName!='') or  (record.shopName!='' and record.shopName==0)  ">
            and shop_name = #{record.shopName}
         </if>
         <if
            test="(record.projTime!=null and record.projTime!='') or  (record.projTime!='' and record.projTime==0)  ">
               test="(record.projTime!=null and record.projTime!='') or  (record.projTime!='' and record.projTime==0)  ">
            and proj_time = #{record.projTime}
         </if>
         <if
            test="(record.remark!=null and record.remark!='') or  (record.remark!='' and record.remark==0)  ">
               test="(record.remark!=null and record.remark!='') or  (record.remark!='' and record.remark==0)  ">
            and remark = #{record.remark}
         </if>
         <if
            test="(record.orderType!=null and record.orderType!='') or  (record.orderType!='' and record.orderType==0)  ">
               test="(record.orderType!=null and record.orderType!='') or  (record.orderType!='' and record.orderType==0)  ">
            and order_type = #{record.orderType}
         </if>
         <if
            test="(record.projPercentage!=null and record.projPercentage!='') or  (record.projPercentage!='' and record.projPercentage==0)  ">
               test="(record.projPercentage!=null and record.projPercentage!='') or  (record.projPercentage!='' and record.projPercentage==0)  ">
            and proj_percentage = #{record.projPercentage}
         </if>
         <if
            test="(record.t1!=null and record.t1!='') or  (record.t1!='' and record.t1==0)  ">
               test="(record.t1!=null and record.t1!='') or  (record.t1!='' and record.t1==0)  ">
            and t1 = #{record.t1}
         </if>
         <if
            test="(record.t2!=null and record.t2!='') or  (record.t2!='' and record.t2==0)  ">
               test="(record.t2!=null and record.t2!='') or  (record.t2!='' and record.t2==0)  ">
            and t2 = #{record.t2}
         </if>
         <if
            test="(record.t3!=null and record.t3!='') or  (record.t3!='' and record.t3==0)  ">
            and t3 = #{record.t3}
               test="(record.achieveType!=null and record.achieveType!='') or  (record.achieveType!='' and record.achieveType==0)  ">
            and achieveType = #{record.achieveType}
         </if>
         <if
            test="(record.t4!=null and record.t4!='') or  (record.t4!='' and record.t4==0)  ">
               test="(record.t4!=null and record.t4!='') or  (record.t4!='' and record.t4==0)  ">
            and t4 = #{record.t4}
         </if>
         <if
            test="(record.t5!=null and record.t5!='') or  (record.t5!='' and record.t5==0)  ">
               test="(record.t5!=null and record.t5!='') or  (record.t5!='' and record.t5==0)  ">
            and t5 = #{record.t5}
         </if>
         <if
            test="(record.t6!=null and record.t6!='') or  (record.t6!='' and record.t6==0)  ">
               test="(record.t6!=null and record.t6!='') or  (record.t6!='' and record.t6==0)  ">
            and t6 = #{record.t6}
         </if>
         <if
            test="(record.t8!=null and record.t8!='') or  (record.t8!='' and record.t8==0)  ">
               test="(record.t8!=null and record.t8!='') or  (record.t8!='' and record.t8==0)  ">
            and t8 = #{record.t8}
         </if>
         <if
            test="(record.t9!=null and record.t9!='') or  (record.t9!='' and record.t9==0)  ">
               test="(record.t9!=null and record.t9!='') or  (record.t9!='' and record.t9==0)  ">
            and t9 = #{record.t9}
         </if>
      </if>
@@ -518,7 +539,7 @@
   <!-- 插入方法 -->
   <insert id="insert" parameterType="com.matrix.system.hive.bean.AchieveNew"
      useGeneratedKeys="true" keyProperty="item.id">
         useGeneratedKeys="true" keyProperty="item.id">
      INSERT INTO achieve_new (
      <include refid="columns"></include>
      )
@@ -536,7 +557,7 @@
      )
      VALUES
      <foreach collection="list" item="item" index="index"
         separator=",">
             separator=",">
         (
         <include refid="propertys"></include>
         )
@@ -584,15 +605,9 @@
         <if test="_parameter.containsKey('hisConsume')">
            his_consume = #{hisConsume},
         </if>
         <if test="_parameter.containsKey('consume')">
            consume = #{consume},
         </if>
         <if test="_parameter.containsKey('cardCash')">
            card_cash = #{cardCash},
         </if>
         <if test="_parameter.containsKey('projCash')">
            proj_cash = #{projCash},
         </if>
         <if test="_parameter.containsKey('goodsCash')">
            goods_cash = #{goodsCash},
         </if>
@@ -617,14 +632,15 @@
         <if test="_parameter.containsKey('projPercentage')">
            proj_percentage = #{projPercentage},
         </if>
         <if test="_parameter.containsKey('t1')">
            t1 = #{t1},
         </if>
         <if test="_parameter.containsKey('t2')">
            t2 = #{t2},
         </if>
         <if test="_parameter.containsKey('t3')">
            t3 = #{t3},
         <if test="_parameter.containsKey('achieveType')">
            achieveType = #{achieveType},
         </if>
         <if test="_parameter.containsKey('t4')">
            t4 = #{t4},
@@ -641,6 +657,9 @@
         <if test="_parameter.containsKey('t9')">
            t9 = #{t9},
         </if>
         <if test="_parameter.containsKey('payMethod')">
            pay_method = #{payMethod},
         </if>
      </set>
      WHERE id=#{id}
   </update>
@@ -651,15 +670,15 @@
      UPDATE achieve_new set datatime = #{record.datatime}
      <where>
         <if
            test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
               test="(record.id!=null and record.id!='') or  (record.id!='' and record.id==0)  ">
            and id = #{record.id}
         </if>
         <if
            test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
               test="(record.orderId!=null and record.orderId!='') or  (record.orderId!='' and record.orderId==0)  ">
            and order_id = #{record.orderId}
         </if>
         <if
            test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
               test="(record.serviceOrderId!=null and record.serviceOrderId!='') or  (record.serviceOrderId!='' and record.serviceOrderId==0)  ">
            and service_order_id = #{record.serviceOrderId}
         </if>
      </where>
@@ -697,21 +716,14 @@
            vip_id = #{record.vipId},
         </if>
         <if
            test="record.freeConsume != null and record.freeConsume != '' ">
               test="record.freeConsume != null and record.freeConsume != '' ">
            free_consume = #{record.freeConsume},
         </if>
         <if test="record.hisConsume != null ">
            his_consume = #{record.hisConsume},
         </if>
         <if test="record.consume != null ">
            consume = #{record.consume},
         </if>
         <if test="record.cardCash != null ">
            card_cash = #{record.cardCash},
         </if>
         <if test="record.projCash != null ">
            proj_cash = #{record.projCash},
         </if>
         <if test="record.goodsCash != null ">
            goods_cash = #{record.goodsCash},
         </if>
@@ -736,14 +748,15 @@
         <if test="record.projPercentage != null ">
            proj_percentage = #{record.projPercentage},
         </if>
         <if test="record.t1 != null and record.t1 != '' ">
            t1 = #{record.t1},
         </if>
         <if test="record.t2 != null and record.t2 != '' ">
            t2 = #{record.t2},
         </if>
         <if test="record.t3 != null and record.t3 != '' ">
            t3 = #{record.t3},
         <if test="record.achieveType != null and record.achieveType != '' ">
            achieveType = #{record.achieveType},
         </if>
         <if test="record.t4 != null and record.t4 != '' ">
            t4 = #{record.t4},
@@ -760,6 +773,9 @@
         <if test="record.t9 != null and record.t9 != '' ">
            t9 = #{record.t9},
         </if>
         <if test="record.payMethod != null and record.payMethod != '' ">
            pay_method = #{record.payMethod},
         </if>
      </set>
      WHERE id=#{record.id}
   </update>
@@ -768,7 +784,7 @@
   <delete id="deleteByIds" parameterType="java.util.List">
      delete from achieve_new where id in
      <foreach collection="list" index="index" item="item" open="("
         separator="," close=")">
             separator="," close=")">
         #{item}
      </foreach>
   </delete>
@@ -784,6 +800,11 @@
      DELETE FROM achieve_new
      where 1=1
      <include refid="where_sql"></include>
   </delete>
   <delete id="deleteByOrderId">
      DELETE FROM achieve_new where order_id=#{orderId}
   </delete>
@@ -809,7 +830,7 @@
   <!-- 查询总条数 -->
   <select id="selectTotalRecord"
      resultType="java.lang.Integer">
         resultType="java.lang.Integer">
      select count(*)
      from achieve_new
      where 1=1
@@ -846,48 +867,44 @@
   </select>
   <select id="selectVipConsumeStatisticsList" resultMap="AchieveNewMap">
   <select id="selectVipConsumeStatisticsList" resultType="java.util.HashMap">
      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
      a.VIP_NAME vipName,
      a.PHONE t9,
      b.su_name meiliao,
      (SELECT  sum(IFNULL(goods_cash,0)) from achieve_new where  pay_method='现金' and  VIP_ID=a.id
      <if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
      <if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>    </if> )  as 'goodsCash'  ,
      (SELECT  sum(IFNULL(goods_cash,0)) from achieve_new where  pay_method='划扣' and  VIP_ID=a.id
      <if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
      <if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>    </if>)  as 'cardCash'  ,
      (SELECT  sum(IFNULL(free_consume,0)) from achieve_new where   VIP_ID=a.id
      <if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
      <if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>    </if>  )  as 'freeConsume'  ,
      (SELECT  sum(IFNULL(number_of_people,0)) from achieve_new where   VIP_ID=a.id
      <if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
      <if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>    </if>  )  as 'arriveCnt'  ,
      (SELECT  sum(IFNULL(his_consume,0)) from achieve_new where   VIP_ID=a.id
      <if test="record.beginTime != null"> and date_format(datatime, '%Y-%m-%d') >= date_format(#{record.beginTime}, '%Y-%m-%d') </if>
      <if test="record.endTime != null"> <![CDATA[ and date_format(datatime, '%Y-%m-%d') < date_format(#{record.endTime}, '%Y-%m-%d') ]]>    </if> )  as 'hisConsume'
      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 b on a.BEATUY_ID=b.su_id
      inner join sys_shop_info c on c.id=a.SHOP_ID
      <where>
      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="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.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>
      </where>
      <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
         <if test="pageVo.sort !=null  and pageVo.order !=null">
            order by
@@ -903,68 +920,62 @@
   <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 b on a.BEATUY_ID=b.su_id
      inner join sys_shop_info c on c.id=a.SHOP_ID
      <where>
      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>
         <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.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>
      </where>
   </select>
   <select id="selectUserAchieveByTime" resultType="com.matrix.system.app.vo.UserAchieveVo">
      select
         sale_id id,
         sum(case t3 when '现金业绩' then card_cash else 0 end) orderCash,
         sum(case t3 when '划扣业绩' then consume else 0 end) cash,
         (select ifnull(sum(case pay_method when '现金' then goods_cash else 0 end),0)
          from achieve_new a
          where a.beault_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'))
         ) orderCash,
         (select ifnull(sum(case pay_method when '划扣' then goods_cash else 0 end),0)
          from achieve_new a
          where  a.beault_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'))
         ) cash,
         sum(case order_type when '订单' then proj_percentage else 0 end) cardUse,
         sum(IFNULL(his_consume, 0)) hisConsume,
         sum(IFNULL(free_consume, 0)) freeConsume,
         sum(case order_type when '服务单' then proj_percentage else 0 end) projCommission
      from achieve_new a
      where a.beault_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'))
        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
         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)
             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>
   <select id="selectShopConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
         b.shop_short_name name,
         b.SHOP_IMAG photo,
         sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume,0)) amount
      b.shop_short_name name,
      b.SHOP_IMAG photo,
      sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume,0)) amount
      from achieve_new a
      left join sys_shop_info b on a.shop_id=b.ID and b.shop_type!=1
      <where>
@@ -980,6 +991,9 @@
         <if test='record.t1 == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
         <if test='record.t1 == "4" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
         </if>
      </where>
      group by a.shop_id
      order by amount desc, a.shop_id
@@ -987,10 +1001,11 @@
   <select id="selectBeauticianConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
         b.su_name name,
         b.su_id id,
         sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) + IFNULL(a.consume, 0)) amount,
         c.shop_short_name shopName
      b.su_name name,
      b.su_id id,
      b.su_photo photo,
      sum(IFNULL(a.free_consume,0) + IFNULL(a.his_consume, 0) ) amount,
      c.shop_short_name shopName
      from achieve_new a
      inner join sys_users b on a.beault_id=b.su_id
      left join sys_shop_info c on a.shop_id=c.ID
@@ -1011,6 +1026,9 @@
         <if test='record.t1 == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
         <if test='record.t1 == "4" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
         </if>
      </where>
      group by a.beault_id
      order by amount desc
@@ -1022,11 +1040,11 @@
         b.code goodsNo,
         b.name goodsName,
         c.su_name meiliao,
         d.count*d.zk_price zk_total
         TRUNCATE(d.count*d.zk_price,2) zk_total
      from achieve_new a
      left join shopping_goods b on a.shopping_goods_id=b.id
      left join sys_users c on a.beault_id=c.su_id
      left join sys_order_item d on a.order_item_id=d.id
             left join shopping_goods b on a.shopping_goods_id=b.id
             left join sys_users c on a.beault_id=c.su_id
             left join sys_order_item d on a.order_item_id=d.id
      where a.order_id=#{orderId}
   </select>
@@ -1035,7 +1053,7 @@
      b.su_name name,
      b.su_id id,
      b.su_photo photo,
      sum(ifnull(card_cash,0)) amount,
      sum(ifnull(goods_cash,0)) amount,
      c.shop_short_name shopName
      from achieve_new a
      inner join sys_users b on a.beault_id=b.su_id
@@ -1056,6 +1074,9 @@
         <if test='record.type == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
         <if test='record.t1 == "4" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
         </if>
      </where>
      group by b.su_id
      order by amount desc, b.su_id
@@ -1063,14 +1084,146 @@
   <select id="selectShopSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
         b.shop_short_name name,
         b.SHOP_IMAG photo,
         sum(IFNULL(a.consume,0) + IFNULL(a.card_cash,0)) amount
      b.shop_short_name name,
      b.SHOP_IMAG photo,
      sum(IFNULL(a.amount,0)) amount
      from sys_order_flow a
      inner join sys_order c on a.order_id=c.id and c.STATU != '已取消'
      inner join sys_shop_info b on a.shop_id=b.id and shop_type!=1
      <where>
         a.pay_method not in ('储值卡', '欠款')
         <if test="record.companyId != null">
            and a.company_id=#{record.companyId}
         </if>
         <if test='record.t1 == "1" and record.datatime != null'>
            and date_format(a.create_time, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
         </if>
         <if test='record.t1 == "2" and record.datatime != null'>
            and date_format(a.create_time, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
         </if>
         <if test='record.t1 == "3" and record.datatime != null'>
            and date_format(a.create_time, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
         <if test='record.t1 == "4" and record.datatime != null'>
            and date_format(a.create_time, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
         </if>
      </where>
      group by a.shop_id
      order by amount desc, a.shop_id
   </select>
   <!-- 顾问当天下单列表 -->
   <select id="selectSaleManAchieveList" resultMap="AchieveNewMap">
      select * from achieve_new
      where sale_id=#{saleId} and vip_id=#{vipId} and sale_id=beault_id
        and date_format(datatime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
   </select>
   <select id="selectBeautyManAchieveList" resultMap="AchieveNewMap">
      select * from achieve_new
      where beault_id=#{beautyId} and vip_id=#{vipId}
        and date_format(datatime, '%Y-%m-%d') = date_format(#{date}, '%Y-%m-%d')
   </select>
   <select id="achieveNewStatistics" resultType="com.matrix.system.hive.vo.AchieveNewStatisticsVo">
      select
      u.name ruleName,
      f.su_name guwen,
      f.su_id gwid,
      g.su_name createBy,
      g.su_id createId,
      cast(SUM(b.ZK_TOTAL) AS decimal(15,2)) as zk_total,
      cast(SUM(a.his_consume) AS decimal(15,2)) his_consume,
      cast(SUM(a.free_consume) AS decimal(15,2)) free_consume,
      cast(SUM(a.proj_percentage) AS decimal(15,2)) proj_percentage,
      cast(SUM(a.number_of_people) AS decimal(15,2)) number_of_people,
      cast(SUM(a.proj_num) AS decimal(15,2)) proj_num,
      cast(SUM(case when a.pay_method = '划扣' then goods_cash end )AS decimal(15,2)) card_cash,
      cast(SUM(a.proj_time) AS decimal(15,2)) proj_time,
      cast(SUM(case when a.pay_method = '现金' then goods_cash end )AS decimal(15,2)) goods_cash,
      h.shop_short_name shop_name,
      a.order_type
      from
      achieve_new a
      left join sys_order b on a.order_id=b.id
      left join sys_vip_info c on a.vip_id=c.id
      left join sys_vip_level d on c.LEVEL_ID=d.id
      left join shopping_goods e on a.shopping_goods_id=e.id
      LEFT JOIN sys_users f on a.beault_id=f.su_id
      LEFT JOIN sys_users g on a.sale_id = g.su_id
      LEFT JOIN sys_shop_info h ON a.SHOP_ID = h.ID
      LEFT JOIN shopping_goods_category i ON e.cate_id = i.id
      left join sys_proj_services l on a.service_order_id=l.id
      left join sys_order_item j on a.order_item_id=j.ID
      left join achieve_rule u on u.id=e.achieve_rule_id
      <where>
         and a.company_id = #{record.companyId}
         <if test="record.shopId != null">
            and a.shop_id = #{record.shopId}
         </if>
         <if test="record.achieveRuleId != null">
            and u.id = #{record.achieveRuleId}
         </if>
         <if test="record.staffName != null and record.staffName!=''">
            <!-- 创建人和归属人都有业绩 -->
            and (f.su_name like concat('%',#{record.staffName},'%')  or g.su_name like concat('%',#{record.staffName},'%')  )
         </if>
         <if test="record.orderType != null and record.orderType != '' ">
            and a.order_type= #{record.orderType}
         </if>
         <if test="record.beginTime != null ">
            and a.datatime >= #{record.beginTime}
         </if>
         <if test="record.endTime != null   ">
            <![CDATA[and a.datatime <= #{record.endTime}]]>
         </if>
      </where>
      GROUP BY g.su_id , f.su_id, a.order_type, h.id,a.achieveType,u.name
      <if test="record.sort !=null and record.sort!=''"> order by ${record.sort} ${record.order}</if>
   </select>
   <update id="updateAchieveNumOfPeople">
      <foreach collection="list" item="item" index="index"
             separator=";">
         update achieve_new set number_of_people=#{num} where id=#{item.id}
      </foreach>
   </update>
   <update id="setPayMethod">
      update  achieve_new
      set pay_method=#{paymethod}
      where id in
      <foreach collection="list" index="index" item="item" open="("
             separator="," close=")">
         #{item}
      </foreach>
   </update>
   <select id="selectNumOfPeopleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
      b.su_name name,
      b.su_id id,
      b.su_photo photo,
      sum(number_of_people) amount,
      c.shop_short_name shopName
      from achieve_new a
      left join sys_shop_info b on a.shop_id=b.ID and shop_type!=1
      inner join sys_users b on a.beault_id=b.su_id
      left join sys_shop_info c on a.shop_id=c.ID
      <where>
         <if test="record.companyId != null">
            and a.company_id=#{record.companyId}
         </if>
         <if test="record.shopId != null">
            and a.shop_id=#{record.shopId}
         </if>
         <if test='record.t1 == "1" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
@@ -1081,8 +1234,144 @@
         <if test='record.t1 == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
         <if test='record.t1 == "4" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d %u') = date_format(#{record.datatime}, '%Y-%m-%d %u')
         </if>
      </where>
      group by a.shop_id
      order by amount desc, a.shop_id
      group by a.beault_id
      order by amount desc
   </select>
   <select id="selectDailyBeautyList" resultType="com.matrix.system.hive.vo.DailyBeautyListVo">
      select
         date_format(b.datatime, '%Y-%m-%d') datatime,
         a.su_id,
         a.su_name beautyName,
         c.id vipId,
         c.VIP_NAME,
         c.arrival_way,
         case when c.BEATUY_ID=a.su_id then 1 else 0 end isAppoint,
         (select count(distinct date_format(n.datatime, '%Y-%m-%d')) from achieve_new n
          where date_format(b.datatime, '%Y-%m') = date_format(n.datatime, '%Y-%m') and n.vip_id=c.ID
          group by date_format(n.datatime, '%Y-%m'))arriveCnt,
         (select count(1) from sys_order o where o.statu in ('欠款', '已付款') and o.VIP_ID=c.id)  orderCnt,
         (select group_concat(distinct q.pay_method) payMethod from sys_order p
            inner join sys_order_flow q on p.ID=q.ORDER_ID
            inner join achieve_new o on o.order_id=p.id
          where date_format(pay_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d') and o.beault_id=a.su_id and c.ID=q.vip_id and p.STATU in ('欠款', '已付款')
          group by p.VIP_ID) payMethods,
         (select sum(amount) from sys_order_flow x
             inner join achieve_new y on x.order_id=y.order_id
          where x.pay_method='团购' and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and y.beault_id=a.su_id and x.vip_id=c.id ) teamPay,
         (select sum(m.ZK_PRICE) from sys_order_item m
             inner join achieve_new n on n.ORDER_ID=m.order_id
          where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and m.type in ('套餐', '项目') and n.beault_id=a.su_id) tcAndProjCash,
         (select sum(m.ZK_PRICE) from sys_order_item m
             inner join achieve_new n on n.ORDER_ID=m.order_id
          where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and m.type in ('家居产品') and n.beault_id=a.su_id) productCash,
         (select sum(m.ZK_PRICE) from sys_order_item m
             inner join achieve_new n on n.ORDER_ID=m.order_id
          where date_format(m.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and m.type in ('充值卡') and n.beault_id=a.su_id) cardCash,
         (select sum(amount) from sys_order_flow x
             inner join achieve_new y on x.order_id=y.order_id
          where x.pay_method='储值卡' and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and y.beault_id=a.su_id and x.vip_id=c.id) cardPay,
         (select sum(amount) from sys_order_flow x
            inner join achieve_new y on x.order_id=y.order_id
          where x.pay_method not in ('储值卡','欠款') and date_format(x.create_time, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and y.beault_id=a.su_id and x.vip_id=c.id) cashPay,
         (select sum(e.goods_cash) from achieve_new e
            inner join shopping_goods f on e.shopping_goods_id=f.id and f.is_cooperate=1
          where e.order_type='订单' and date_format(e.datatime, '%Y-%m-%d') = date_format(b.datatime, '%Y-%m-%d')
            and e.beault_id=a.su_id and e.vip_id=c.id) cooperateProj,
         sum(proj_percentage) ticheng,
         sum(IFNULL(free_consume,0) + IFNULL(his_consume,0)) consume,
         (select count(1) from achieve_new z where z.beault_id=a.su_id and c.id=z.vip_id and z.order_type='服务单' group by z.beault_id,z.vip_id) projCnt
      from sys_users a
          left join achieve_new b on a.su_id=b.beault_id
          left join sys_vip_info c on b.vip_id=c.ID
      where 1=1
      <if test="record.companyId != null">
       and a.company_id=#{record.companyId}
      </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(#{record.endTime}, '%Y-%m-%d') > date_format(b.datatime, '%Y-%m-%d')
      </if>
      <if test="record.beaultId != null">
         and a.su_id=#{record.beaultId}
      </if>
      <if test="record.vipQueryKey != null and record.vipQueryKey != ''">
         and c.vip_name like concat('%', #{record.vipQueryKey}, '%')
      </if>
      <if test="record.beginTime == null and record.endTime == null">
         and date_format(b.datatime, '%Y-%m') = date_format(now(), '%Y-%m')
      </if>
      group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID
      <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 -->
         order by date_format(b.datatime, '%Y-%m-%d') desc, a.su_id
         <if test="pageVo.offset >=0  and pageVo.limit >0">
            limit
            #{pageVo.offset},#{pageVo.limit}
         </if>
      </if>
   </select>
   <select id="selectDailyBeautyListTotal" resultType="java.lang.Integer">
      select count(1) from (
          select
             date_format(b.datatime, '%Y-%m-%d') datatime,
             a.su_id,
             a.su_name,
             c.id vipId,
             c.VIP_NAME,
             c.arrival_way,
             sum(proj_percentage) ticheng,
             sum(IFNULL(free_consume,0) + IFNULL(his_consume,0)) consume
          from sys_users a
                 left join achieve_new b on a.su_id=b.beault_id
                 left join sys_vip_info c on b.vip_id=c.ID
         where 1=1
         <if test="record.companyId != null">
            and a.company_id=#{record.companyId}
         </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(#{record.endTime}, '%Y-%m-%d') > date_format(b.datatime, '%Y-%m-%d')
         </if>
         <if test="record.beaultId != null">
            and a.su_id=#{record.beaultId}
         </if>
         <if test="record.vipQueryKey != null and record.vipQueryKey != ''">
            and c.vip_name like concat('%', #{record.vipQueryKey}, '%')
         </if>
         <if test="record.beginTime == null and record.endTime == null">
            and date_format(b.datatime, '%Y-%m') = date_format(now(), '%Y-%m')
         </if>
          group by date_format(b.datatime, '%Y-%m-%d'), a.su_id, c.ID
      ) a
   </select>
   <select id="selectPlInfoByVipIdAndDate" resultType="java.lang.String">
      select group_concat(concat(name,'*', bb))
      from (select l.name name, 0+CAST(sum(n.amount) as char) bb from sys_out_store m
       inner join sys_out_store_item n on m.id=n.OUT_STORE_ID
       inner join shopping_goods l on n.SKU_ID=l.id
      where m.SERVICE_ID in (select distinct service_order_id from achieve_new where date_format(datatime, '%Y-%m-%d') = date_format(#{datatime}, '%Y-%m-%d') and vip_id=#{vipId})
      group by l.id) a
   </select>
</mapper>