From 0adc7b8f73cdb45992f868bf1e3a97a070e43a9e Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 09 Apr 2024 22:16:47 +0800
Subject: [PATCH] fix

---
 src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml |   40 ++++++++++++++++++++++++++++++++++------
 1 files changed, 34 insertions(+), 6 deletions(-)

diff --git a/src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml b/src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml
index da01bcf..451c5bd 100644
--- a/src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml
+++ b/src/main/resources/mapper/modules/MallVipBenefitsRecordMapper.xml
@@ -3,12 +3,31 @@
 <mapper namespace="cc.mrbird.febs.vip.mapper.MallVipBenefitsRecordMapper">
 
     <select id="selectMemberBenefitsRecordInPage" resultType="cc.mrbird.febs.vip.entity.MallVipBenefitsRecord">
-		select
-			mallMember.name memberName
-			,mallMember.phone memberPhone
-			,record.*
-		from mall_vip_benefits_record record
-			inner join mall_member mallMember on record.member_id = mallMember.ID
+		SELECT
+			mallMember.name memberName,
+			mallMember.phone memberPhone,
+			config.name levelName,
+			benefits.name benefitsName,
+			benefitsDetail.link_type,
+			case when benefitsDetail.link_type = 3 then coupon.name
+				when benefitsDetail.link_type = 2 then goods.goods_name
+				else '-'
+				end receiveName,
+			case when record.id is not null then 1
+				else 2 end hasReceive,
+			record.id,
+			record.receive_cnt,
+			record.receive_time,
+			record.receive_type,
+			record.status
+		FROM mall_member mallMember
+			inner join mall_vip_config config on mallMember.level = config.code
+			inner join mall_vip_config_benefits configBenefits on config.id = configBenefits.config_id
+			inner join mall_vip_benefits benefits on configBenefits.benefits_id = benefits.id and benefits.gain_type = 2 and benefits.type != 1
+			inner join mall_vip_benefits_details benefitsDetail on benefits.id=benefitsDetail.benefits_id and (benefitsDetail.link_type = 2 or benefitsDetail.link_type = 3)
+			left join mall_goods_coupon coupon on benefitsDetail.content = coupon.id
+			left join mall_goods goods on benefitsDetail.content = goods.ID
+			LEFT JOIN mall_vip_benefits_record record ON record.member_id = mallMember.ID and record.benefits_type = 2
 		<where>
 			1=1
 			<if test="record.memberPhone != null and record.memberPhone != ''">
@@ -17,6 +36,15 @@
 			<if test="record.status != null">
 				and record.status = #{record.status}
 			</if>
+			<if test="record.hasReceive != null and record.hasReceive == 1">
+				and record.id is not null
+			</if>
+			<if test="record.hasReceive != null and record.hasReceive == 2">
+				and record.id is null
+			</if>
+			<if test="record.birthday != null">
+				and date_format(mallMember.birthday, '%m-%d') = date_format(#{record.birthday}, '%m-%d')
+			</if>
 			<if test="record.birthdayStart != null">
 				and date_format(mallMember.birthday, '%Y-%m-%d') >= date_format(#{record.birthdayStart}, '%Y-%m-%d')
 			</if>

--
Gitblit v1.9.1