diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/ActivityPayTableController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/ActivityPayTableController.java index d0afebfe..2091d57e 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/ActivityPayTableController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/ActivityPayTableController.java @@ -80,8 +80,8 @@ public class ActivityPayTableController { @GetMapping("/groupPage") @Operation(summary = "获得活动付款分页") public CommonResult> getActivityPayTableGroupPage(@Valid ActivityPayTablePageReqVO pageReqVO) { - PageResult pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO); - return success(BeanUtils.toBean(pageResult, ActivityPayTableRespVO.class)); + PageResult pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO); + return success(pageResult); } @GetMapping("/export-excel") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTablePageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTablePageReqVO.java index fc0c6487..840c2022 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTablePageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTablePageReqVO.java @@ -1,11 +1,13 @@ package cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; -import java.math.BigDecimal; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + +import java.math.BigDecimal; import java.time.LocalDateTime; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -32,4 +34,6 @@ public class ActivityPayTablePageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + + private Long merchantId; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTableRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTableRespVO.java index 5a1cac97..9a089b29 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTableRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypaytable/vo/ActivityPayTableRespVO.java @@ -38,4 +38,6 @@ public class ActivityPayTableRespVO { private LocalDateTime createTime; private BigDecimal allPrice; + + private String name; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java index 509ab6f5..2295ef2c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java @@ -9,8 +9,12 @@ import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTablePageReqVO; import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableRespVO; import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO; +import cn.iocoder.yudao.module.member.service.activitymerchant.ActivityMerchantService; import cn.iocoder.yudao.module.member.service.activitytable.ActivityTableService; +import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -23,6 +27,7 @@ import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.IOException; import java.util.List; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @@ -35,6 +40,10 @@ public class ActivityTableController { @Resource private ActivityTableService activityTableService; + @Resource + private ActivityTableDishService activityTableDishService; + @Resource + private ActivityMerchantService activityMerchantService; @PostMapping("/create") @Operation(summary = "创建活动用餐桌子") @@ -73,8 +82,26 @@ public class ActivityTableController { @Operation(summary = "获得活动用餐桌子分页") @PreAuthorize("@ss.hasPermission('member:activity-table:query')") public CommonResult> getActivityTablePage(@Valid ActivityTablePageReqVO pageReqVO) { + if(pageReqVO.getMerchantId() != null){ + List listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId()); + if (listByActivityIdAndMerchantId.isEmpty()) { + return success(PageResult.empty()); + } + List collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList()); + pageReqVO.setSerialNumbers(collect); + } + + PageResult pageResult = activityTableService.getActivityTablePage(pageReqVO); - return success(BeanUtils.toBean(pageResult, ActivityTableRespVO.class)); + PageResult bean = BeanUtils.toBean(pageResult, ActivityTableRespVO.class); + bean.getList().forEach(item -> { + Long merchantIdByActivityIdAndSerialNumber = activityTableDishService.getMerchantIdByActivityIdAndSerialNumber(item.getActivityId(), item.getSerialNumber()); + if(merchantIdByActivityIdAndSerialNumber != null){ + ActivityMerchantDO activityMerchant = activityMerchantService.getActivityMerchant(merchantIdByActivityIdAndSerialNumber); + item.setName(activityMerchant.getName()); + } + }); + return success(bean); } @GetMapping("/list") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableRespVO.java index c4270657..2a5a6433 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableRespVO.java @@ -45,4 +45,6 @@ public class ActivityTableRespVO { @ExcelProperty("创建时间") private LocalDateTime createTime; + private String name; + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java index 512fba74..0df80e88 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.activitypaytable; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTablePageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableRespVO; import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO; @@ -55,5 +56,5 @@ public interface ActivityPayTableService { void insertBatch(List list); - PageResult getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO); + PageResult getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java index cbc65a97..ff2c1e24 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java @@ -1,18 +1,27 @@ package cn.iocoder.yudao.module.member.service.activitypaytable; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTablePageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableRespVO; import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO; import cn.iocoder.yudao.module.member.dal.mysql.activitypaytable.ActivityPayTableMapper; +import cn.iocoder.yudao.module.member.service.activitymerchant.ActivityMerchantService; +import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_PAY_TABLE_NOT_EXISTS; @@ -28,6 +37,12 @@ public class ActivityPayTableServiceImpl implements ActivityPayTableService { @Resource private ActivityPayTableMapper activityPayTableMapper; + @Resource + @Lazy + private ActivityTableDishService activityTableDishService; + @Resource + @Lazy + private ActivityMerchantService activityMerchantService; @Override public Long createActivityPayTable(ActivityPayTableSaveReqVO createReqVO) { @@ -72,13 +87,38 @@ public class ActivityPayTableServiceImpl implements ActivityPayTableService { } @Override - public PageResult getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO) { - return activityPayTableMapper.selectPage(pageReqVO,new LambdaQueryWrapper() - .select(ActivityPayTableDO::getSerialNumbers,ActivityPayTableDO::getAllPrice) - .eq(StrUtil.isNotBlank(pageReqVO.getSerialNumbers()),ActivityPayTableDO::getSerialNumbers,pageReqVO.getSerialNumbers()) - .eq(ActivityPayTableDO::getActivityId,pageReqVO.getActivityId()) - .groupBy(ActivityPayTableDO::getSerialNumbers) - ); + public PageResult getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO) { + List collect = new ArrayList<>(); + if(pageReqVO.getMerchantId() != null){ + List listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId()); + if (listByActivityIdAndMerchantId.isEmpty()) { + return PageResult.empty(); + } + collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList()); + } + PageResult activityPayTableDOPageResult = activityPayTableMapper.selectPage(pageReqVO, new LambdaQueryWrapper() + .select(ActivityPayTableDO::getSerialNumbers, ActivityPayTableDO::getAllPrice) + .eq(StrUtil.isNotBlank(pageReqVO.getSerialNumbers()), ActivityPayTableDO::getSerialNumbers, pageReqVO.getSerialNumbers()) + .eq(ActivityPayTableDO::getActivityId, pageReqVO.getActivityId()) + .in(CollectionUtil.isNotEmpty(collect), ActivityPayTableDO::getSerialNumbers, collect) + .groupBy(ActivityPayTableDO::getSerialNumbers) + ); + List list = activityPayTableDOPageResult.getList(); + + List newList = new ArrayList<>(); + + if(CollectionUtil.isNotEmpty(list)){ + list.forEach(activityPayTableDO -> { + ActivityPayTableRespVO bean = BeanUtils.toBean(activityPayTableDO, ActivityPayTableRespVO.class); + Long merchantIdByActivityIdAndSerialNumber = activityTableDishService.getMerchantIdByActivityIdAndSerialNumber(pageReqVO.getActivityId(), Integer.valueOf(activityPayTableDO.getSerialNumbers())); + if(merchantIdByActivityIdAndSerialNumber != null){ + ActivityMerchantDO activityMerchant = activityMerchantService.getActivityMerchant(merchantIdByActivityIdAndSerialNumber); + bean.setName(activityMerchant.getName()); + } + newList.add(bean); + }); + } + return new PageResult<>(newList, activityPayTableDOPageResult.getTotal()); } @Override diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishService.java index 5210f52e..287151be 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishService.java @@ -62,4 +62,6 @@ public interface ActivityTableDishService { List getListByIds(List ids); List getListByActivityIdAndMerchantId(Long activityId,Long merchantId); + + Long getMerchantIdByActivityIdAndSerialNumber(Long activityId,Integer serialNumber); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishServiceImpl.java index 7def3bf3..bd7a102b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytabledish/ActivityTableDishServiceImpl.java @@ -130,4 +130,16 @@ public class ActivityTableDishServiceImpl implements ActivityTableDishService { .eq(ActivityTableDishDO::getActivityId, activityId) ); } + + @Override + public Long getMerchantIdByActivityIdAndSerialNumber(Long activityId, Integer serialNumber) { + ActivityTableDishDO activityTableDishDO = activityTableDishMapper.selectOne(Wrappers.lambdaQuery() + .eq(ActivityTableDishDO::getSerialNumber, serialNumber) + .eq(ActivityTableDishDO::getActivityId, activityId).last("limit 1") + ); + if(activityTableDishDO != null){ + return activityTableDishDO.getMerchantId(); + } + return null; + } } \ No newline at end of file