后台订单查询

pull/1/head
chuzhichao 2 years ago
parent 6c17b2a938
commit 8441d2db8f

@ -3,6 +3,7 @@ package com.cyl.manager.oms.controller;
import java.util.List;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderDetailVO;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -48,8 +49,8 @@ public class OrderController extends BaseController {
@PreAuthorize("@ss.hasPermi('oms:order:list')")
@PostMapping("/list")
public ResponseEntity<Page<ManagerOrderVO>> list(@RequestBody ManagerOrderQueryRequest query, Pageable page) {
List<ManagerOrderVO> list = service.selectList(query, page);
return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal()));
return ResponseEntity.ok(service.selectList(query, page));
// return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal()));
}
@ApiOperation("导出订单表列表")
@ -66,7 +67,7 @@ public class OrderController extends BaseController {
@ApiOperation("获取订单表详细信息")
@PreAuthorize("@ss.hasPermi('oms:order:query')")
@GetMapping(value = "/{id}")
public ResponseEntity<Order> getInfo(@PathVariable("id") Long id) {
public ResponseEntity<ManagerOrderDetailVO> getInfo(@PathVariable("id") Long id) {
return ResponseEntity.ok(service.selectById(id));
}

@ -0,0 +1,26 @@
package com.cyl.manager.oms.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
/**
* @author: Jinxin
* @date: 2022/4/22 14:12
* @Description:
*/
@Getter
@Setter
@ApiModel("订单收获地址")
public class ManagerOrderAddressVo {
@ApiModelProperty("收货人姓名")
private String name;
@ApiModelProperty("收货人手机号")
private String userPhone;
@ApiModelProperty("收获区域")
private String area;
@ApiModelProperty("详细地址")
private String address;
}

@ -0,0 +1,42 @@
package com.cyl.manager.oms.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Data
@ApiModel("后台订单详情对象")
public class ManagerOrderDetailVO {
@ApiModelProperty("订单编号")
private Long orderId;
@ApiModelProperty("用户昵称")
private String userName;
@ApiModelProperty("用户手机号")
private String userPhone;
@ApiModelProperty("下单时间")
private LocalDateTime createTime;
@ApiModelProperty("支付方式0->未支付1->支付宝2->微信")
private Integer payType;
@ApiModelProperty("支付时间")
private LocalDateTime payTime;
@ApiModelProperty("订单状态0->待付款1->待发货2->已发货3->已完成4->已关闭5->无效订单")
private Integer orderStatus;
@ApiModelProperty("订单收获地址信息")
private ManagerOrderAddressVo addressInfo;
@ApiModelProperty("订单商品信息")
private List<ManagerOrderProductVO> productInfo;
@ApiModelProperty("发货时间")
private LocalDateTime deliveryTime;
@ApiModelProperty("物流单号")
private String expressNo;
@ApiModelProperty("物流名称")
private String expressName;
@ApiModelProperty("支付金额")
private BigDecimal payAmount;
@ApiModelProperty("订单金额")
private BigDecimal totalAmount;
}

@ -0,0 +1,25 @@
package com.cyl.manager.oms.pojo.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel("订单")
public class ManagerOrderProductVO {
@ApiModelProperty("商品id")
private Long productId;
@ApiModelProperty("商品名称")
private String productName;
@ApiModelProperty("商品规格")
private String spData;
@ApiModelProperty("商品图片")
private String pic;
@ApiModelProperty("购买数量")
private Integer buyNum;
@ApiModelProperty("销售价格")
private BigDecimal salePrice;
}

@ -6,12 +6,13 @@ import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@Data
@ApiModel(value = "管理后台订单VO")
public class ManagerOrderVO {
@ApiModelProperty(name = "id",value = "订单id",required = true,dataType = "String")
private String id;
private Long id;
@ApiModelProperty(name = "productId",value = "商品id",required = true,dataType = "Long")
private Long productId;
@ -67,6 +68,9 @@ public class ManagerOrderVO {
@ApiModelProperty(name = "spData",value = "商品sku属性",required = true,dataType = "String")
private String spData;
@ApiModelProperty(name = "productInfo", value = "订单商品数据")
private List<ManagerOrderProductVO> productList;
private String receiverName;
private String receiverPhone;

@ -24,8 +24,7 @@ import com.cyl.manager.oms.domain.OrderOperateHistory;
import com.cyl.manager.oms.mapper.OrderItemMapper;
import com.cyl.manager.oms.mapper.OrderOperateHistoryMapper;
import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest;
import com.cyl.manager.oms.pojo.vo.ManagerOrderVO;
import com.cyl.manager.oms.pojo.vo.OrderVO;
import com.cyl.manager.oms.pojo.vo.*;
import com.cyl.manager.pms.convert.SkuConvert;
import com.cyl.manager.pms.domain.Product;
import com.cyl.manager.pms.domain.Sku;
@ -36,6 +35,7 @@ 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.cyl.manager.ums.mapper.MemberMapper;
import com.github.pagehelper.PageHelper;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.utils.AesCryptoUtils;
@ -82,6 +82,8 @@ public class OrderService {
private OrderOperateHistoryMapper orderOperateHistoryMapper;
@Autowired
private MemberCartMapper memberCartMapper;
@Autowired
private MemberMapper memberMapper;
@Value("${aes.key}")
private String aesKey;
@ -91,8 +93,55 @@ public class OrderService {
* @param id
* @return
*/
public Order selectById(Long id) {
return orderMapper.selectById(id);
public ManagerOrderDetailVO selectById(Long id) {
Order order = orderMapper.selectById(id);
if (order == null){
throw new RuntimeException("查不到订单信息");
}
ManagerOrderDetailVO managerOrderDetailVO = new ManagerOrderDetailVO();
//封装订单信息
managerOrderDetailVO.setOrderId(id);
managerOrderDetailVO.setOrderStatus(order.getStatus());
managerOrderDetailVO.setCreateTime(order.getCreateTime());
managerOrderDetailVO.setDeliveryTime(order.getDeliveryTime());
managerOrderDetailVO.setExpressName(order.getDeliveryCompany());
managerOrderDetailVO.setExpressNo(order.getDeliverySn());
managerOrderDetailVO.setPayAmount(order.getPayAmount());
managerOrderDetailVO.setPayTime(order.getPaymentTime());
managerOrderDetailVO.setPayType(order.getPayType());
managerOrderDetailVO.setTotalAmount(order.getTotalAmount());
managerOrderDetailVO.setPayAmount(order.getPayAmount());
//封装订单地址信息
ManagerOrderAddressVo managerOrderAddressVo = new ManagerOrderAddressVo();
managerOrderAddressVo.setUserPhone(order.getReceiverPhone());
managerOrderAddressVo.setAddress(order.getReceiverDetailAddress());
managerOrderAddressVo.setArea(
order.getReceiverProvince() +
order.getReceiverCity() +
order.getReceiverDistrict());
managerOrderAddressVo.setName(order.getReceiverName());
managerOrderDetailVO.setAddressInfo(managerOrderAddressVo);
//查询会员信息
Member member = memberMapper.selectById(order.getMemberId());
managerOrderDetailVO.setUserName(member.getNickname());
managerOrderDetailVO.setUserPhone(member.getPhoneHidden());
//查询购买商品信息
QueryWrapper<OrderItem> qw = new QueryWrapper<>();
qw.eq("order_id", order.getId());
List<OrderItem> orderItemList = orderItemMapper.selectList(qw);
List<ManagerOrderProductVO> productList = new ArrayList<>();
orderItemList.forEach(item -> {
ManagerOrderProductVO productVO = new ManagerOrderProductVO();
productVO.setProductId(item.getProductId());
productVO.setBuyNum(item.getQuantity());
productVO.setPic(item.getPic());
productVO.setProductName(item.getProductName());
productVO.setSalePrice(item.getSalePrice());
productVO.setSpData(item.getSpData());
productList.add(productVO);
});
managerOrderDetailVO.setProductInfo(productList);
return managerOrderDetailVO;
}
/**
@ -102,14 +151,41 @@ public class OrderService {
* @param page
* @return
*/
public List<ManagerOrderVO> selectList(ManagerOrderQueryRequest query, Pageable page) {
public PageImpl<ManagerOrderVO> selectList(ManagerOrderQueryRequest query, Pageable page) {
if (page != null) {
PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize());
}
if (!StringUtils.isEmpty(query.getUserPhone())){
query.setUserPhone(AesCryptoUtils.encrypt(aesKey, query.getUserPhone()));
}
return orderMapper.selectManagerOrderPage(query);
List<ManagerOrderVO> managerOrderVOList = orderMapper.selectManagerOrderPage(query);
if (CollectionUtil.isEmpty(managerOrderVOList)){
return new PageImpl<>(managerOrderVOList, page, 0);
}
long total = ((com.github.pagehelper.Page) managerOrderVOList).getTotal();
Map<Long, ManagerOrderVO> orderMap = managerOrderVOList.stream().collect(Collectors.toMap(ManagerOrderVO::getId, it -> it));
//查orderItem
QueryWrapper<OrderItem> qw = new QueryWrapper<>();
qw.in("order_id", orderMap.keySet());
Map<Long, List<OrderItem>> groupedOrderItemMap = orderItemMapper.selectList(qw)
.stream().collect(Collectors.groupingBy(OrderItem::getOrderId));
groupedOrderItemMap.keySet().forEach(key -> {
ManagerOrderVO managerOrderVO = orderMap.get(key);
List<OrderItem> orderItemList = groupedOrderItemMap.get(key);
List<ManagerOrderProductVO> addProductList = new ArrayList<>();
orderItemList.forEach(item -> {
ManagerOrderProductVO vo = new ManagerOrderProductVO();
vo.setProductName(item.getProductName());
vo.setSalePrice(item.getSalePrice());
vo.setPic(item.getPic());
vo.setBuyNum(item.getQuantity());
vo.setProductId(item.getProductId());
vo.setSpData(item.getSpData());
addProductList.add(vo);
});
managerOrderVO.setProductList(addProductList);
});
return new PageImpl<>(new ArrayList<>(orderMap.values()), page, total);
}
/**

Loading…
Cancel
Save