H5用户订单列表

pull/1/head
chuzhichao 2 years ago
parent 85177ece61
commit a3202364a3

@ -215,4 +215,19 @@ public class Constants
public static final Integer CLOSED = 4;
public static final Integer UNVAILD = 5;
}
/**
* H5
* -1-> 0->1->2->3->4->5-> -2->
*/
public static class H5OrderStatus{
public static final Integer ALL = -1;
public static final Integer UN_PAY = 0;
public static final Integer NOT_DELIVERED = 1;
public static final Integer DELIVERED = 2;
public static final Integer COMPLETED = 3;
public static final Integer CLOSED = 4;
public static final Integer INVALID = 5;
public static final Integer REFUND = -2;
}
}

@ -1,6 +1,7 @@
package com.cyl.h5.controller;
import com.cyl.h5.pojo.dto.OrderCreateDTO;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.pojo.vo.OrderCalcVO;
import com.cyl.h5.pojo.vo.form.OrderSubmitForm;
import com.cyl.h5.pojo.vo.query.OrderH5Query;
@ -15,12 +16,10 @@ import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
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.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 org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/h5/order")
@ -61,4 +60,11 @@ public class H5OrderController {
public ResponseEntity<OrderCalcVO> addOrderCheck(@RequestBody OrderCreateDTO orderCreateDTO){
return ResponseEntity.ok(service.addOrderCheck(orderCreateDTO));
}
@ApiOperation("订单列表")
@GetMapping("/page")
public ResponseEntity<PageImpl<H5OrderVO>> orderPage(Integer status, Pageable pageable){
Member member = (Member) LocalDataUtil.getVar(Constants.MEMBER_INFO);
return ResponseEntity.ok(service.orderPage(status, member.getId(), pageable));
}
}

@ -0,0 +1,47 @@
package com.cyl.h5.pojo.vo;
import com.cyl.manager.oms.domain.OrderItem;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
public class H5OrderVO {
@ApiModelProperty("订单id")
private Long orderId;
@ApiModelProperty("订单编号")
private String orderSn;
@ApiModelProperty("会员id")
private Long memberId;
@ApiModelProperty("订单总金额")
private BigDecimal totalAmount;
@ApiModelProperty("应付金额")
private BigDecimal payAmount;
@ApiModelProperty("订单状态 0->待付款1->待发货2->已发货3->已完成4->已关闭")
private Integer status;
@ApiModelProperty("售后状态")
private Integer aftersaleStatus;
@ApiModelProperty("订单Item")
private List<OrderItem> orderItemList;
@ApiModelProperty("订单备注")
private String note;
@ApiModelProperty("物流单号")
private String deliverySn;
@ApiModelProperty("下单时间")
private LocalDateTime createTime;
}

@ -1,14 +1,17 @@
package com.cyl.h5.service;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.cyl.h5.pojo.dto.OrderCreateDTO;
import com.cyl.h5.pojo.dto.OrderProductListDTO;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.h5.pojo.vo.OrderCalcVO;
import com.cyl.h5.pojo.vo.SkuViewDTO;
import com.cyl.h5.pojo.vo.form.OrderSubmitForm;
import com.cyl.manager.oms.domain.Order;
import com.cyl.manager.oms.domain.OrderItem;
import com.cyl.manager.oms.domain.OrderOperateHistory;
import com.cyl.manager.oms.mapper.OrderItemMapper;
import com.cyl.manager.oms.mapper.OrderMapper;
@ -23,20 +26,20 @@ import com.cyl.manager.ums.domain.MemberAddress;
import com.cyl.manager.ums.domain.MemberCart;
import com.cyl.manager.ums.mapper.MemberAddressMapper;
import com.cyl.manager.ums.mapper.MemberCartMapper;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.IDGenerator;
import com.ruoyi.framework.config.LocalDataUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
@Service
@ -171,7 +174,7 @@ public class H5OrderService {
throw new RuntimeException("删除购物车失败");
}
}
//当前返回成功消息接入支付后可返回payId
//当前订单id接入支付后可返回payId
return orderId;
}
@ -230,4 +233,46 @@ public class H5OrderService {
LocalDateTime time = LocalDateTime.now();
return time.format(DateTimeFormatter.ofPattern("yyMMdd")) + "-";
}
/**
* h5
* @param status -1->0->1->2->-2->
* @param memberId id
* @param pageable
* @return
*/
public PageImpl<H5OrderVO> orderPage(Integer status, Long memberId, Pageable pageable) {
// 如果全部且页数为1看看有无待付款单
List<H5OrderVO> unpaidOrderList = new ArrayList<>();
if (Constants.H5OrderStatus.ALL.equals(status) && pageable.getPageNumber() == 0){
unpaidOrderList = orderMapper.orderPage(Constants.H5OrderStatus.UN_PAY, memberId);
}
if (pageable != null){
PageHelper.startPage(pageable.getPageNumber() + 1, pageable.getPageSize());
}
List<H5OrderVO> orderList = orderMapper.orderPage(status, memberId);
long total = ((com.github.pagehelper.Page) orderList).getTotal();
// 两个list都没数据那肯定返回空了
if (CollectionUtil.isEmpty(unpaidOrderList) && CollectionUtil.isEmpty(orderList)){
return new PageImpl<>(Collections.EMPTY_LIST, pageable, total);
}
// 开始组装item了
// 拿出所有orderId查item然后分组 by orderId
List<Long> idList = new ArrayList<>();
if (CollectionUtil.isNotEmpty(unpaidOrderList)){
idList.addAll(unpaidOrderList.stream().map(H5OrderVO::getOrderId).collect(Collectors.toList()));
}
if (CollectionUtil.isNotEmpty(orderList)){
idList.addAll(orderList.stream().map(H5OrderVO::getOrderId).collect(Collectors.toList()));
}
QueryWrapper<OrderItem> orderItemQw = new QueryWrapper<>();
orderItemQw.in("order_id", idList);
Map<Long, List<OrderItem>> orderItemMap =
orderItemMapper.selectList(orderItemQw).stream().collect(Collectors.groupingBy(OrderItem::getOrderId));
orderList.addAll(0, unpaidOrderList);
orderList.forEach(item -> {
item.setOrderItemList(orderItemMap.get(item.getOrderId()));
});
return new PageImpl<>(orderList, pageable, total);
}
}

@ -2,9 +2,11 @@ package com.cyl.manager.oms.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cyl.h5.pojo.vo.H5OrderVO;
import com.cyl.manager.oms.domain.Order;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
import org.apache.ibatis.annotations.Param;
/**
* Mapper
@ -21,4 +23,6 @@ public interface OrderMapper extends BaseMapper<Order> {
List<Order> selectByEntity(Order order);
List<ManagerOrderVO> selectManagerOrderPage(ManagerOrderQueryRequest request);
List<H5OrderVO> orderPage(@Param("status") Integer status, @Param("memberId")Long memberId);
}

@ -144,4 +144,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
order by a.create_time desc
</select>
<select id="orderPage" resultType="com.cyl.h5.pojo.vo.H5OrderVO">
select
id orderId,
order_sn,
member_id,
total_amount,
pay_amount,
status,
aftersale_status,
note,
delivery_sn,
create_time
from oms_order
where
delete_status=0
and member_id=#{memberId}
<if test="status==-1">
and status in (1,2,3,4)
</if>
<if test="status>-1 and status&lt;3">
and status=#{status}
and aftersale_status=1
</if>
<if test="status==-2">
and aftersale_status in (2, 3)
</if>
order by create_time desc
</select>
</mapper>

Loading…
Cancel
Save