优化
This commit is contained in:
@ -80,8 +80,8 @@ public class ActivityPayTableController {
|
|||||||
@GetMapping("/groupPage")
|
@GetMapping("/groupPage")
|
||||||
@Operation(summary = "获得活动付款分页")
|
@Operation(summary = "获得活动付款分页")
|
||||||
public CommonResult<PageResult<ActivityPayTableRespVO>> getActivityPayTableGroupPage(@Valid ActivityPayTablePageReqVO pageReqVO) {
|
public CommonResult<PageResult<ActivityPayTableRespVO>> getActivityPayTableGroupPage(@Valid ActivityPayTablePageReqVO pageReqVO) {
|
||||||
PageResult<ActivityPayTableDO> pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO);
|
PageResult<ActivityPayTableRespVO> pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO);
|
||||||
return success(BeanUtils.toBean(pageResult, ActivityPayTableRespVO.class));
|
return success(pageResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/export-excel")
|
@GetMapping("/export-excel")
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
package cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo;
|
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 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 org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
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)
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
private LocalDateTime[] createTime;
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
|
||||||
|
private Long merchantId;
|
||||||
}
|
}
|
@ -38,4 +38,6 @@ public class ActivityPayTableRespVO {
|
|||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
private BigDecimal allPrice;
|
private BigDecimal allPrice;
|
||||||
|
|
||||||
|
private String name;
|
||||||
}
|
}
|
@ -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.ActivityTablePageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableRespVO;
|
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.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.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.activitytable.ActivityTableService;
|
||||||
|
import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.Parameter;
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
@ -23,6 +27,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.List;
|
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.common.pojo.CommonResult.success;
|
||||||
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
|
||||||
@ -35,6 +40,10 @@ public class ActivityTableController {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ActivityTableService activityTableService;
|
private ActivityTableService activityTableService;
|
||||||
|
@Resource
|
||||||
|
private ActivityTableDishService activityTableDishService;
|
||||||
|
@Resource
|
||||||
|
private ActivityMerchantService activityMerchantService;
|
||||||
|
|
||||||
@PostMapping("/create")
|
@PostMapping("/create")
|
||||||
@Operation(summary = "创建活动用餐桌子")
|
@Operation(summary = "创建活动用餐桌子")
|
||||||
@ -73,8 +82,26 @@ public class ActivityTableController {
|
|||||||
@Operation(summary = "获得活动用餐桌子分页")
|
@Operation(summary = "获得活动用餐桌子分页")
|
||||||
@PreAuthorize("@ss.hasPermission('member:activity-table:query')")
|
@PreAuthorize("@ss.hasPermission('member:activity-table:query')")
|
||||||
public CommonResult<PageResult<ActivityTableRespVO>> getActivityTablePage(@Valid ActivityTablePageReqVO pageReqVO) {
|
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);
|
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")
|
@GetMapping("/list")
|
||||||
|
@ -45,4 +45,6 @@ public class ActivityTableRespVO {
|
|||||||
@ExcelProperty("创建时间")
|
@ExcelProperty("创建时间")
|
||||||
private LocalDateTime createTime;
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
}
|
}
|
@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.activitypaytable;
|
|||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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.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.controller.admin.activitypaytable.vo.ActivityPayTableSaveReqVO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO;
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO;
|
||||||
|
|
||||||
@ -55,5 +56,5 @@ public interface ActivityPayTableService {
|
|||||||
|
|
||||||
void insertBatch(List<ActivityPayTableDO> list);
|
void insertBatch(List<ActivityPayTableDO> list);
|
||||||
|
|
||||||
PageResult<ActivityPayTableDO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO);
|
PageResult<ActivityPayTableRespVO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO);
|
||||||
}
|
}
|
@ -1,18 +1,27 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.activitypaytable;
|
package cn.iocoder.yudao.module.member.service.activitypaytable;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
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.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.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.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.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 com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_PAY_TABLE_NOT_EXISTS;
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_PAY_TABLE_NOT_EXISTS;
|
||||||
@ -28,6 +37,12 @@ public class ActivityPayTableServiceImpl implements ActivityPayTableService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ActivityPayTableMapper activityPayTableMapper;
|
private ActivityPayTableMapper activityPayTableMapper;
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityTableDishService activityTableDishService;
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityMerchantService activityMerchantService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Long createActivityPayTable(ActivityPayTableSaveReqVO createReqVO) {
|
public Long createActivityPayTable(ActivityPayTableSaveReqVO createReqVO) {
|
||||||
@ -72,13 +87,38 @@ public class ActivityPayTableServiceImpl implements ActivityPayTableService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PageResult<ActivityPayTableDO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO) {
|
public PageResult<ActivityPayTableRespVO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO) {
|
||||||
return activityPayTableMapper.selectPage(pageReqVO,new LambdaQueryWrapper<ActivityPayTableDO>()
|
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)
|
.select(ActivityPayTableDO::getSerialNumbers, ActivityPayTableDO::getAllPrice)
|
||||||
.eq(StrUtil.isNotBlank(pageReqVO.getSerialNumbers()), ActivityPayTableDO::getSerialNumbers, pageReqVO.getSerialNumbers())
|
.eq(StrUtil.isNotBlank(pageReqVO.getSerialNumbers()), ActivityPayTableDO::getSerialNumbers, pageReqVO.getSerialNumbers())
|
||||||
.eq(ActivityPayTableDO::getActivityId, pageReqVO.getActivityId())
|
.eq(ActivityPayTableDO::getActivityId, pageReqVO.getActivityId())
|
||||||
|
.in(CollectionUtil.isNotEmpty(collect), ActivityPayTableDO::getSerialNumbers, collect)
|
||||||
.groupBy(ActivityPayTableDO::getSerialNumbers)
|
.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
|
@Override
|
||||||
|
@ -62,4 +62,6 @@ public interface ActivityTableDishService {
|
|||||||
List<ActivityTableDishDO> getListByIds(List<Long> ids);
|
List<ActivityTableDishDO> getListByIds(List<Long> ids);
|
||||||
|
|
||||||
List<ActivityTableDishDO> getListByActivityIdAndMerchantId(Long activityId,Long merchantId);
|
List<ActivityTableDishDO> getListByActivityIdAndMerchantId(Long activityId,Long merchantId);
|
||||||
|
|
||||||
|
Long getMerchantIdByActivityIdAndSerialNumber(Long activityId,Integer serialNumber);
|
||||||
}
|
}
|
@ -130,4 +130,16 @@ public class ActivityTableDishServiceImpl implements ActivityTableDishService {
|
|||||||
.eq(ActivityTableDishDO::getActivityId, activityId)
|
.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;
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user