From 75d8b0ad39a7eb04f72ef8654dbb895322f07cfd Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 21 Oct 2025 13:41:42 +0800
Subject: [PATCH] feat(ai): 新增会员答题分页及详情查询功能 - 在 AiMemberAnswerMapper 中新增 getAnswerPage 方法及对应 XML 查询语句 - 新增 ApiMemberAnswerPageDto 和 ApiMemberAnswerPageVo 用于分页查询参数和返回结果 - 在 AiMemberAnswerService 及其实现类中添加 getAnswerPage 方法 - 在 AiMemberService 及其实现类中新增 answerPage 和 answerInfo 接口实现 - 新增 ApiMemberAnswerInfoDto 和 ApiMemberAnswerInfoVo 用于答题详情接口参数和响应 - 在 ApiMemberController 中增加 /answerPage 和 /answerInfo两个 POST 接口 - 优化 AiMemberTeamPracticeVo,增加 memberUuid 字段 - 统一导入包路径,简化代码结构

---
 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