优化
This commit is contained in:
@ -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")
|
||||
|
@ -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;
|
||||
}
|
@ -38,4 +38,6 @@ public class ActivityPayTableRespVO {
|
||||
private LocalDateTime createTime;
|
||||
|
||||
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.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")
|
||||
|
@ -45,4 +45,6 @@ public class ActivityTableRespVO {
|
||||
@ExcelProperty("创建时间")
|
||||
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.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);
|
||||
}
|
@ -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>()
|
||||
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
|
||||
|
@ -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);
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user