diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/controller/Order1Controller.java b/ruoyi-mall/src/main/java/com/cyl/h5/controller/Order1Controller.java index 5239036..1a2ee60 100644 --- a/ruoyi-mall/src/main/java/com/cyl/h5/controller/Order1Controller.java +++ b/ruoyi-mall/src/main/java/com/cyl/h5/controller/Order1Controller.java @@ -1,15 +1,20 @@ package com.cyl.h5.controller; import com.cyl.h5.pojo.vo.form.OrderSubmitForm; +import com.cyl.h5.pojo.vo.query.OrderH5Query; import com.cyl.oms.pojo.vo.OrderVO; import com.cyl.oms.service.OrderService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @RestController @RequestMapping("/h5-order") public class Order1Controller { @@ -19,4 +24,8 @@ public class Order1Controller { public ResponseEntity submit(@RequestBody OrderSubmitForm form) { return ResponseEntity.ok(orderService.submit(form)); } + @PostMapping("orders") + public ResponseEntity> queryOrderPage(@RequestBody OrderH5Query query, Pageable pageReq) { + return ResponseEntity.ok(orderService.queryOrderPage(query, pageReq)); + } } diff --git a/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/query/OrderH5Query.java b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/query/OrderH5Query.java new file mode 100644 index 0000000..e895503 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/h5/pojo/vo/query/OrderH5Query.java @@ -0,0 +1,8 @@ +package com.cyl.h5.pojo.vo.query; + +import lombok.Data; + +@Data +public class OrderH5Query { + private Integer tab; +} diff --git a/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java b/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java index ac2a16e..c6c2be2 100644 --- a/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java +++ b/ruoyi-mall/src/main/java/com/cyl/oms/service/OrderService.java @@ -2,17 +2,18 @@ package com.cyl.oms.service; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; +import java.util.*; import java.time.LocalDateTime; -import java.util.Map; import java.util.stream.Collectors; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.crypto.SecureUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.cyl.h5.pojo.vo.form.OrderSubmitForm; +import com.cyl.h5.pojo.vo.query.OrderH5Query; import com.cyl.oms.convert.OrderConvert; import com.cyl.oms.domain.OrderItem; import com.cyl.oms.mapper.OrderItemMapper; @@ -30,6 +31,8 @@ import com.ruoyi.common.exception.base.BaseException; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.system.mapper.SysUserMapper; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -294,4 +297,48 @@ public class OrderService { vo.setItems(items); return vo; } + + public Page queryOrderPage(OrderH5Query query, Pageable pageReq) { + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("member_id", SecurityUtils.getUserId()); + IPage page = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(); + page.setCurrent(pageReq.getPageNumber()) + .setSize(pageReq.getPageSize()); + if (CollUtil.isEmpty(pageReq.getSort())) { + pageReq.getSort().forEach(it -> { + qw.orderBy(true, it.getDirection().isAscending(), it.getProperty()); + }); + } + Integer tab = query.getTab(); + if (tab != null) { + qw.eq("delete_status", 0); + if (tab == 1) { + qw.eq("status", 0); + } else if (tab == 2) { + qw.eq("status", 1); + qw.eq("aftersale_status", 1); + } else if (tab == 3) { + qw.eq("status", 2); + qw.eq("confirm_status", 0); + } else if (tab == 4) { + qw.eq("status", 2); + qw.eq("confirm_status", 1); + } + } + orderMapper.selectPage(page, qw); + List orders = page.getRecords(); + long total = page.getPages(); + if (CollUtil.isEmpty(orders)) { + return new PageImpl<>(Collections.emptyList(), pageReq, total); + } + LambdaQueryWrapper qw1 = new LambdaQueryWrapper<>(); + qw1.in(OrderItem::getOrderId, orders.stream().map(Order::getId).collect(Collectors.toList())); + Map> oid2items = orderItemMapper.selectList(qw1) + .stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + List res = orderConvert.dos2vos(orders); + res.forEach(it -> { + it.setItems(oid2items.get(it.getId())); + }); + return new PageImpl<>(res, pageReq, total); + } }