From 6f778262b572c97025b6eae500f09c711001ff01 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Sat, 19 Dec 2020 15:52:10 +0800 Subject: [PATCH] finish custom-consume statistics --- zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml | 41 ++++++++++++++++++++++++----------------- 1 files changed, 24 insertions(+), 17 deletions(-) diff --git a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml index 7340d74..c8ab5b1 100644 --- a/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml +++ b/zq-erp/src/main/resources/mybatis/mapper/hive/AchieveNewDao.xml @@ -847,13 +847,15 @@ <select id="selectVipConsumeStatisticsList" resultMap="AchieveNewMap"> select a.VIP_NAME, - d.cnt, - b.buyConsume, - b.freeConsume, - b.hisConsume + 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, 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) + 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 ( @@ -862,20 +864,23 @@ 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}) + 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=#{shopId} + and a.shop_id=#{record.shopId} </if> <if test="record.beginTime != null and record.endTime!=null"> - and date_format(datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime} + and date_format(b.datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime} </if> - <if test="record.meiliao != null and record.meiliao!=''"> - and FIND_IN_SET(#{record.meiliao}, a.BEATUY_ID) + <if test="record.beaultId != null and record.beaultId!=''"> + and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID) </if> + group by a.PHONE <if test="pageVo !=null"><!-- 判断pageVo对象是否为空 --> <if test="pageVo.sort !=null and pageVo.order !=null"> order by @@ -888,11 +893,11 @@ </if> </select> - <select id="selectVipConsumeStatisticsTotal" resultMap="AchieveNewMap"> + <select id="selectVipConsumeStatisticsTotal" resultType="java.lang.Integer"> select count(1) from sys_vip_info a inner join ( - select vip_id, 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) + 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 ( @@ -901,19 +906,21 @@ 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}) + 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=#{shopId} + and a.shop_id=#{record.shopId} </if> <if test="record.beginTime != null and record.endTime!=null"> - and date_format(datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime} + and date_format(b.datatime, '%Y-%m-%d') between #{record.beginTime} and #{record.endTime} </if> - <if test="record.meiliao != null and record.meiliao!=''"> - and FIND_IN_SET(#{record.meiliao}, a.BEATUY_ID) + <if test="record.beaultId != null and record.beaultId!=''"> + and FIND_IN_SET(#{record.beaultId}, a.BEATUY_ID) </if> </select> </mapper> \ No newline at end of file -- Gitblit v1.9.1