This commit is contained in:
zt
2025-06-12 18:55:05 +08:00
parent 57dfb3f316
commit 34d5724db7
9 changed files with 105 additions and 15 deletions

View File

@ -80,8 +80,8 @@ public class ActivityPayTableController {
@GetMapping("/groupPage")
@Operation(summary = "获得活动付款分页")
public CommonResult<PageResult<ActivityPayTableRespVO>> getActivityPayTableGroupPage(@Valid ActivityPayTablePageReqVO pageReqVO) {
PageResult<ActivityPayTableDO> pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityPayTableRespVO.class));
PageResult<ActivityPayTableRespVO> pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")

View File

@ -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;
}

View File

@ -38,4 +38,6 @@ public class ActivityPayTableRespVO {
private LocalDateTime createTime;
private BigDecimal allPrice;
private String name;
}

View File

@ -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<PageResult<ActivityTableRespVO>> getActivityTablePage(@Valid ActivityTablePageReqVO pageReqVO) {
if(pageReqVO.getMerchantId() != null){
List<ActivityTableDishDO> listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId());
if (listByActivityIdAndMerchantId.isEmpty()) {
return success(PageResult.empty());
}
List<Integer> collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList());
pageReqVO.setSerialNumbers(collect);
}
PageResult<ActivityTableDO> pageResult = activityTableService.getActivityTablePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityTableRespVO.class));
PageResult<ActivityTableRespVO> 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")

View File

@ -45,4 +45,6 @@ public class ActivityTableRespVO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private String name;
}

View File

@ -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<ActivityPayTableDO> list);
PageResult<ActivityPayTableDO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO);
PageResult<ActivityPayTableRespVO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO);
}

View File

@ -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<ActivityPayTableDO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO) {
return activityPayTableMapper.selectPage(pageReqVO,new LambdaQueryWrapper<ActivityPayTableDO>()
.select(ActivityPayTableDO::getSerialNumbers,ActivityPayTableDO::getAllPrice)
.eq(StrUtil.isNotBlank(pageReqVO.getSerialNumbers()),ActivityPayTableDO::getSerialNumbers,pageReqVO.getSerialNumbers())
.eq(ActivityPayTableDO::getActivityId,pageReqVO.getActivityId())
public PageResult<ActivityPayTableRespVO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO) {
List<Integer> collect = new ArrayList<>();
if(pageReqVO.getMerchantId() != null){
List<ActivityTableDishDO> listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId());
if (listByActivityIdAndMerchantId.isEmpty()) {
return PageResult.empty();
}
collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList());
}
PageResult<ActivityPayTableDO> activityPayTableDOPageResult = activityPayTableMapper.selectPage(pageReqVO, new LambdaQueryWrapper<ActivityPayTableDO>()
.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<ActivityPayTableDO> list = activityPayTableDOPageResult.getList();
List<ActivityPayTableRespVO> 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

View File

@ -62,4 +62,6 @@ public interface ActivityTableDishService {
List<ActivityTableDishDO> getListByIds(List<Long> ids);
List<ActivityTableDishDO> getListByActivityIdAndMerchantId(Long activityId,Long merchantId);
Long getMerchantIdByActivityIdAndSerialNumber(Long activityId,Integer serialNumber);
}

View File

@ -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.<ActivityTableDishDO>lambdaQuery()
.eq(ActivityTableDishDO::getSerialNumber, serialNumber)
.eq(ActivityTableDishDO::getActivityId, activityId).last("limit 1")
);
if(activityTableDishDO != null){
return activityTableDishDO.getMerchantId();
}
return null;
}
}