xiaoyong931011
2021-04-12 a13a93a493e7e94e28b2225c26e7e13b52d3288c
zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml
@@ -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,10 +45,13 @@
      <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="cateName" column="cateName" />
   </resultMap>
@@ -65,13 +66,7 @@
      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,
      a.free_consume,
      f.su_name meiliao,
@@ -80,9 +75,13 @@
      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
@@ -94,6 +93,7 @@
      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>
         <if test="record!=null">
            <if
@@ -204,12 +204,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,
@@ -285,9 +281,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" />
@@ -296,9 +289,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" />
@@ -321,9 +315,6 @@
      vip_id,
      free_consume,
      his_consume,
      consume,
      card_cash,
      proj_cash,
      goods_cash,
      proj_num,
      number_of_people,
@@ -332,15 +323,17 @@
      remark,
      order_type,
      proj_percentage,
      t1,
      t2,
      t3,
      achieveType,
      t4,
      t5,
      t6,
      t8,
      t9,
      company_id
      company_id,
pay_method
   </sql>
   <!-- 属性sql -->
@@ -357,9 +350,6 @@
      #{item.vipId},
      #{item.freeConsume},
      #{item.hisConsume},
      #{item.consume},
      #{item.cardCash},
      #{item.projCash},
      #{item.goodsCash},
      #{item.projNum},
      #{item.numberOfPeople},
@@ -368,15 +358,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 -->
@@ -434,18 +426,8 @@
            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)  ">
            and goods_cash = #{record.goodsCash}
@@ -487,8 +469,8 @@
            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)  ">
@@ -582,15 +564,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>
@@ -615,14 +591,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},
@@ -638,6 +615,9 @@
         </if>
         <if test="_parameter.containsKey('t9')">
            t9 = #{t9},
         </if>
         <if test="_parameter.containsKey('payMethod')">
            pay_method = #{payMethod},
         </if>
      </set>
      WHERE id=#{id}
@@ -701,15 +681,8 @@
         <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>
@@ -734,14 +707,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},
@@ -757,6 +731,9 @@
         </if>
         <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}
@@ -782,6 +759,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>
@@ -855,7 +837,7 @@
         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
         select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_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 (
@@ -873,12 +855,17 @@
      <if test="record.shopId != null">
         and a.shop_id=#{record.shopId}
      </if>
      <if test="record.beginTime != null and record.endTime!=null">
         and date_format(b.datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime}
      <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对象是否为空 -->
@@ -897,7 +884,7 @@
      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
      select vip_id,datatime, sum(a.free_consume) freeConsume, sum(a.his_consume) hisConsume, sum(IFNULL(goods_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 (
@@ -915,12 +902,17 @@
      <if test="record.shopId != null">
         and a.shop_id=#{record.shopId}
      </if>
      <if test="record.beginTime != null and record.endTime!=null">
         and date_format(b.datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime}
      <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>
@@ -928,24 +920,160 @@
   <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,
         (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(IFNULL(proj_percentage, 0)) projCommission
         sum(case order_type when '服务单' then proj_percentage else 0 end) 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}
      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'))
   </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)
      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
      from achieve_new a
      left join sys_shop_info b on a.shop_id=b.ID and b.shop_type!=1
      <where>
         <if test="record.companyId != null">
            and a.company_id=#{record.companyId}
         </if>
         <if test='record.t1 == "1" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
         </if>
         <if test='record.t1 == "2" and record.datatime != null'>
            and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
         </if>
         <if test='record.t1 == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
      </where>
      group by a.shop_id
      order by amount desc, a.shop_id
   </select>
   <select id="selectBeauticianConsumeAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
         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
      where a.order_item_id=#{itemId}
      left join sys_shop_info c on a.shop_id=c.ID
      <where>
         a.order_type='服务单'
         <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')
         </if>
         <if test='record.t1 == "2" and record.datatime != null'>
            and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
         </if>
         <if test='record.t1 == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
      </where>
      group by a.beault_id
      order by amount desc
   </select>
   <select id="selectOrderItemAchieveByOrderId" resultMap="AchieveNewMap">
      select
         a.*,
         b.code goodsNo,
         b.name goodsName,
         c.su_name meiliao,
         d.count*d.zk_price 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
      where a.order_id=#{orderId}
   </select>
   <select id="selectStaffSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
      b.su_name name,
      b.su_id id,
      b.su_photo photo,
      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
      inner join sys_shop_info c on a.SHOP_ID=c.ID
      <where>
         <if test="record.companyId != null">
            and b.company_id=#{record.companyId}
         </if>
         <if test="record.shopId != null">
            and b.shop_id=#{record.shopId}
         </if>
         <if test='record.type == "1" and record.datatime != null'>
            and date_format(datatime, '%Y-%m-%d') = date_format(#{record.datatime}, '%Y-%m-%d')
         </if>
         <if test='record.type == "2" and record.datatime != null'>
            and date_format(datatime, '%Y-%m') = date_format(#{record.datatime}, '%Y-%m')
         </if>
         <if test='record.type == "3" and record.datatime != null'>
            and date_format(datatime, '%Y') = date_format(#{record.datatime}, '%Y')
         </if>
      </where>
      group by b.su_id
      order by amount desc, b.su_id
   </select>
   <select id="selectShopSaleAchieveRanking" resultType="com.matrix.system.app.vo.RankingVo">
      select
         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>
      </where>
      group by a.shop_id
      order by amount desc, a.shop_id
   </select>
</mapper>