From 7b339259d605b3fdf73d1eac3adb3bff68bbe2c6 Mon Sep 17 00:00:00 2001 From: zhangheng Date: Thu, 16 Oct 2025 17:25:36 +0800 Subject: [PATCH] =?UTF-8?q?##=20=E6=8A=A5=E5=8D=95=E8=B5=A0=E9=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AcDeclarationGiftRecordController.java | 4 +- .../mapper/AcDeclarationGiftDetailMapper.java | 2 + .../mapper/AcDeclarationGiftRecordMapper.java | 2 + .../param/AcDeclarationListParam.java | 39 +++++---- .../param/AcDeclarationProductParam.java | 14 +++- .../IAcDeclarationGiftDetailService.java | 2 + .../IAcDeclarationGiftRecordService.java | 3 +- .../AcDeclarationGiftDetailServiceImpl.java | 5 ++ .../AcDeclarationGiftRecordServiceImpl.java | 71 ++++++++++++++-- .../declaration/vo/AcDeclarationListVO.java | 83 +++++++++++-------- .../AcDeclarationGiftDetailMapper.xml | 18 +++- .../AcDeclarationGiftRecordMapper.xml | 50 +++++++++++ 12 files changed, 229 insertions(+), 64 deletions(-) diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/controller/manage/AcDeclarationGiftRecordController.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/controller/manage/AcDeclarationGiftRecordController.java index 1bddc472..9a9a8b31 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/controller/manage/AcDeclarationGiftRecordController.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/controller/manage/AcDeclarationGiftRecordController.java @@ -45,14 +45,14 @@ public class AcDeclarationGiftRecordController extends BaseController { @GetMapping("/list") public TableDataInfo directPushUpgradeList(AcDeclarationListParam param) { startPage(); - return getDataTable(acDeclarationGiftRecordService.queryList(param)); + return getDataTable(acDeclarationGiftRecordService.selectDeclarationList(param)); } @Log(module = EOperationModule.AC_DECLARATION_GIFT_LIST_EXPORT, business = EOperationBusiness.AC_DECLARATION_GIFT_LIST_EXPORT, method = EOperationMethod.SELECT) @PostMapping("/listExport") public void export(AcDeclarationListParam param, HttpServletResponse response) { startPage(); - List list = acDeclarationGiftRecordService.queryList(param); + List list = acDeclarationGiftRecordService.selectDeclarationList(param); ExcelUtil util = new ExcelUtil<>(AcDeclarationListVO.class); util.exportExcel(response, list, "报单赠送数据导出"); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftDetailMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftDetailMapper.java index 0fcd59bb..8ac1fffa 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftDetailMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftDetailMapper.java @@ -18,4 +18,6 @@ import java.util.List; public interface AcDeclarationGiftDetailMapper extends BaseMapper { List listByPKRuleId(@Param("pkId") Long pkId); + + List listByPKRuleIds(@Param("ruleIds") List ruleIds); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftRecordMapper.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftRecordMapper.java index 941331a9..a245466c 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftRecordMapper.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/mapper/AcDeclarationGiftRecordMapper.java @@ -19,4 +19,6 @@ import java.util.List; public interface AcDeclarationGiftRecordMapper extends BaseMapper { List queryList(AcDeclarationListParam param); + + List selectDeclarationList(AcDeclarationListParam param); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationListParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationListParam.java index 6fce8b15..c3db748a 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationListParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationListParam.java @@ -4,39 +4,46 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; +import java.util.List; + @Data @AllArgsConstructor @NoArgsConstructor public class AcDeclarationListParam { - /** * 活动名称 */ private String actName; - /** - * 会员编号 + * 报单中心会员编号 + */ + private String referenceCode; + /** + * 姓名 + */ + private String referenceName; + /** + * 报单权限 + */ + private Integer registerAuthority; + /** + * 新会员编号 */ private String memberCode; - - /** - * 开始活动开始时间 + * 姓名 */ - private String startActStartDate; - + private String memberName; /** - * 开始活动结束时间 + * 订单编号 */ - private String startActEndDate; - + private String orderCode; /** - * 结束活动开始时间 + * 订单支付开始时间 */ - private String endActStartDate; - + private Data creationStartTime; /** - * 结束活动结束时间 + * 订单支付结束时间 */ - private String endActEndDate; + private Data creationEndTime; } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationProductParam.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationProductParam.java index 82c8fa04..533930de 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationProductParam.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/param/AcDeclarationProductParam.java @@ -1,6 +1,7 @@ package com.hzs.activity.declaration.param; +import com.hzs.common.core.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -13,14 +14,24 @@ public class AcDeclarationProductParam { * 产品主键 */ private Integer pkProduct; - + /** + * 活动规则主键 + */ + private Long pkRuleId; /** * 产品名称 */ + @Excel(name = "产品主键") private String productName; + /** + * 产品编号 + */ + @Excel(name = "产品编号") + private String productCode; /** * 产品规格(逗号分隔) */ + @Excel(name = "产品规格") private String specsName; /** @@ -31,5 +42,6 @@ public class AcDeclarationProductParam { /** * 数量 */ + @Excel(name = "数量") private Long quantity; } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftDetailService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftDetailService.java index 596476b1..bb6f0e7e 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftDetailService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftDetailService.java @@ -17,4 +17,6 @@ import java.util.List; public interface IAcDeclarationGiftDetailService extends IService { List listByPKRuleId(Long pkId); + + List listByPKRuleIds(List ruleIds); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftRecordService.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftRecordService.java index a4ca2b99..95bb82c7 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftRecordService.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/IAcDeclarationGiftRecordService.java @@ -18,5 +18,6 @@ import java.util.List; */ public interface IAcDeclarationGiftRecordService extends IService { - List queryList(AcDeclarationListParam param); + + List selectDeclarationList(AcDeclarationListParam param); } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftDetailServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftDetailServiceImpl.java index aed2e432..eff83725 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftDetailServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftDetailServiceImpl.java @@ -25,4 +25,9 @@ public class AcDeclarationGiftDetailServiceImpl extends ServiceImpl listByPKRuleId(Long pkId) { return baseMapper.listByPKRuleId(pkId); } + + @Override + public List listByPKRuleIds(List ruleIds) { + return baseMapper.listByPKRuleIds(ruleIds); + } } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftRecordServiceImpl.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftRecordServiceImpl.java index 5b57259f..dbee1aa3 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftRecordServiceImpl.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/service/impl/AcDeclarationGiftRecordServiceImpl.java @@ -1,17 +1,24 @@ package com.hzs.activity.declaration.service.impl; +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.hzs.activity.add.param.AcAddUpgradeListParam; +import com.hzs.activity.declaration.mapper.AcDeclarationGiftDetailMapper; import com.hzs.activity.declaration.mapper.AcDeclarationGiftRecordMapper; import com.hzs.activity.declaration.param.AcDeclarationListParam; +import com.hzs.activity.declaration.param.AcDeclarationProductParam; +import com.hzs.activity.declaration.service.IAcDeclarationGiftDetailService; import com.hzs.activity.declaration.service.IAcDeclarationGiftRecordService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.hzs.activity.declaration.vo.AcDeclarationGiftDetail; import com.hzs.activity.declaration.vo.AcDeclarationGiftRecord; import com.hzs.activity.declaration.vo.AcDeclarationListVO; import com.hzs.common.core.enums.ERegistrationAuthority; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.Collections; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; /** *

@@ -24,13 +31,61 @@ import java.util.List; @Service public class AcDeclarationGiftRecordServiceImpl extends ServiceImpl implements IAcDeclarationGiftRecordService { + @Autowired + private IAcDeclarationGiftDetailService iAcDeclarationGiftDetailService; + + + @Override - public List queryList(AcDeclarationListParam param) { - List acDeclarationListVOS = baseMapper.queryList(param); - acDeclarationListVOS.forEach(item->{ - // 将注册权限实际值注入 - item.setRegisterAuthorityVal(ERegistrationAuthority.getEnumByValue(item.getRegisterAuthority()).getLabel()); + public List selectDeclarationList(AcDeclarationListParam param) { + // 一次性查询所有主记录 + List voList = baseMapper.selectDeclarationList(param); + if (voList.isEmpty()) { + return Collections.emptyList(); + } + + // 提取所有规则主键 + List ruleIds = voList.stream() + .map(AcDeclarationListVO::getPkRuleId) + .filter(Objects::nonNull) + .distinct() + .collect(Collectors.toList()); + + // 批量查询明细 + List allDetails = iAcDeclarationGiftDetailService.listByPKRuleIds(ruleIds); + + // 按规则ID分组 + Map> detailMap = allDetails.stream() + .collect(Collectors.groupingBy(AcDeclarationProductParam::getPkRuleId)); + + // 组装数据 + voList.forEach(item -> { + // 绑定明细列表 + List productList = detailMap.getOrDefault(item.getPkRuleId(), new ArrayList<>()); + item.setAcDeclarationProductParamList(productList); + + // 报单权限转义 + item.setRegisterAuthorityVal( + Optional.ofNullable(ERegistrationAuthority.getEnumByValue(item.getRegisterAuthority())) + .map(ERegistrationAuthority::getLabel) + .orElse("未知") + ); + + // 拼接产品信息字符串 + if (!productList.isEmpty()) { + String giftInfo = productList.stream() + .map(p -> String.format("%s(%s) x%d", + p.getProductName(), + p.getSpecsName(), + p.getQuantity())) + .collect(Collectors.joining(";")); + item.setGiftProductInfo(giftInfo); + } else { + item.setGiftProductInfo("无赠送产品"); + } }); - return acDeclarationListVOS; + + return voList; } + } diff --git a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/vo/AcDeclarationListVO.java b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/vo/AcDeclarationListVO.java index beba0c4f..c54a7fac 100644 --- a/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/vo/AcDeclarationListVO.java +++ b/bd-business/bd-business-sale/src/main/java/com/hzs/activity/declaration/vo/AcDeclarationListVO.java @@ -1,75 +1,88 @@ package com.hzs.activity.declaration.vo; +import com.alibaba.nacos.shaded.org.checkerframework.checker.formatter.qual.Format; import com.fasterxml.jackson.annotation.JsonFormat; +import com.hzs.activity.declaration.param.AcDeclarationConfigParam; +import com.hzs.activity.declaration.param.AcDeclarationProductParam; import com.hzs.common.core.annotation.Excel; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.Date; +import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor public class AcDeclarationListVO { - + /** + * 活动配置主键 + */ + private Long pkRuleId; /** * 活动名称 */ @Excel(name = "活动名称") private String actName; /** - * 会员编号 + * 报单中心会员编号 */ - @Excel(name = "会员编号") - private String memberCode; + @Excel(name = "报单中心会员编号") + private String referenceCode; /** - * 会员名称 + * 姓名 */ - @Excel(name = "会员名称") - private String memberName; - + @Excel(name = "报单中心会员名称") + private String referenceName; /** - * 注册权限 + * 报单权限 */ private Integer registerAuthority; /** - * 注册权限实际值 + * 报单权限实际值 */ - @Excel(name = "注册权限") + @Excel(name = "报单权限") private String registerAuthorityVal; - - /** - * 活动开始时间 + * 新会员编号 */ - @Excel(name = "活动开始时间", dateFormat = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date actStartDate; - + @Excel(name = "新会员编号") + private String memberCode; /** - * 活动结束时间 + * 姓名 */ - @Excel(name = "活动结束时间", dateFormat = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date actEndDate; - + @Excel(name = "新会员名称") + private String memberName; /** - * 创建时间 + * 订单编号 */ - @Excel(name = "创建时间", dateFormat = "yyyy-MM-dd") - @JsonFormat(pattern = "yyyy-MM-dd") - private Date creationTime; - + @Excel(name = "订单编号") + private String orderCode; /** - * 产品名称 + * 订单支付时间 + */ + @Excel(name = "订单支付时间",dateFormat = "yyyy-HH-mm") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date payTime; + /** + * 指定等级实际值 */ - @Excel(name = "产品名称") - private String productName; - - @Excel(name = "数量") - private Integer quantity; - @Excel(name = "指定等级") private String specifyLevelVal; + + /** + * 指定等级 + */ + private Integer specifyLevel; + /** + * 产品信息 + */ + private List acDeclarationProductParamList; + + /** + * 产品信息字符串(拼接导出用) + */ + @Excel(name = "赠送产品信息") + private String giftProductInfo; } diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftDetailMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftDetailMapper.xml index 4e9b08fa..ecdf4296 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftDetailMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftDetailMapper.xml @@ -31,7 +31,8 @@ + diff --git a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftRecordMapper.xml b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftRecordMapper.xml index a670f477..e38853ea 100644 --- a/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftRecordMapper.xml +++ b/bd-business/bd-business-sale/src/main/resources/mapper/activity/declaration/AcDeclarationGiftRecordMapper.xml @@ -67,5 +67,55 @@ AND abc.ACT_END_DATE <= TO_DATE(SUBSTR(#{endActEndDate},1,10), 'YYYY-MM-DD') +