[fix]修改商户订单
This commit is contained in:
parent
cfa44d714e
commit
83084e2f78
@ -1,5 +1,9 @@
|
||||
package org.dromara.app.merchant;
|
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.wzj.soopin.order.domain.bo.OrderBo;
|
||||
import com.wzj.soopin.order.domain.vo.OrderVO;
|
||||
import com.wzj.soopin.order.service.IMerchantOrderService;
|
||||
import com.wzj.soopin.order.service.VerificationCodeService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
@ -25,6 +29,7 @@ public class AppMerchantOrderController {
|
||||
|
||||
private final VerificationCodeService verificationCodeService;
|
||||
|
||||
private final IMerchantOrderService merchantOrderService;
|
||||
/**
|
||||
* 扫码核销接口
|
||||
* @return 核销结果
|
||||
@ -62,5 +67,11 @@ public class AppMerchantOrderController {
|
||||
return R.ok(verificationCodeService.scan(code));
|
||||
}
|
||||
|
||||
|
||||
@Tag(name ="查询订单列表")
|
||||
@PostMapping("/page")
|
||||
public R<IPage<OrderVO>> page(@RequestBody OrderBo bo){
|
||||
LoginUser loginUser= LoginHelper.getLoginUser();
|
||||
bo.setTenantId(loginUser.getTenantId());
|
||||
return R.ok(merchantOrderService.page(bo));
|
||||
}
|
||||
}
|
||||
|
@ -15,9 +15,9 @@ import java.util.Map;
|
||||
@Data
|
||||
public class BaseBO <T> {
|
||||
|
||||
private Integer pageNum=1;
|
||||
private Integer current=1;
|
||||
|
||||
private Integer pageSize=10;
|
||||
private Integer size=10;
|
||||
|
||||
protected LocalDateTime beginTime;
|
||||
|
||||
@ -33,6 +33,6 @@ public class BaseBO <T> {
|
||||
}
|
||||
|
||||
public Page<T> getPage() {
|
||||
return new Page<>(pageNum, pageSize);
|
||||
return new Page<>(current, size);
|
||||
}
|
||||
}
|
||||
|
@ -54,12 +54,16 @@ public class AccountBillVO extends BaseAudit {
|
||||
@Excel(name = "来源")
|
||||
private Integer source;
|
||||
|
||||
@Schema(description ="会员id")
|
||||
private Long memberId;
|
||||
|
||||
@Schema(description ="会员名称")
|
||||
private String userName;
|
||||
|
||||
@Schema(description ="会员头像")
|
||||
private String avatar;
|
||||
|
||||
@Schema(description ="订单号")
|
||||
private String orderSn;
|
||||
|
||||
|
||||
|
@ -1,22 +1,24 @@
|
||||
package com.wzj.soopin.order.convert;
|
||||
|
||||
|
||||
import com.wzj.soopin.order.domain.bo.OrderBo;
|
||||
import com.wzj.soopin.order.domain.bo.OrderItemBo;
|
||||
import com.wzj.soopin.order.domain.entity.Order;
|
||||
import com.wzj.soopin.order.domain.entity.OrderItem;
|
||||
import com.wzj.soopin.order.domain.query.OrderItemQuery;
|
||||
import com.wzj.soopin.order.domain.vo.AftersaleVO;
|
||||
import com.wzj.soopin.order.domain.vo.OrderItemVO;
|
||||
import com.wzj.soopin.order.domain.vo.OrderVO;
|
||||
import org.dromara.common.web.core.BaseConverter;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.MappingTarget;
|
||||
|
||||
import java.util.List;
|
||||
/**
|
||||
* 订单中所包含的商品 DO <=> DTO <=> VO / BO / Query
|
||||
* 订单表 DO <=> DTO <=> VO / BO / Query
|
||||
*
|
||||
* @author zcc
|
||||
*/
|
||||
@Mapper(componentModel = "spring")
|
||||
public interface OrderItemConvert extends BaseConverter<OrderItemVO, OrderItemBo, OrderItem > {
|
||||
public interface OrderItemConvert extends BaseConverter<OrderItemVO, OrderItemBo, OrderItem> {
|
||||
|
||||
// List<OrderItemVO> dos2vos(List<OrderItem> list);
|
||||
// List<OrderVO> dos2vos(List<Order> list);
|
||||
|
||||
// OrderVO do2vo(Order order);
|
||||
}
|
||||
|
@ -112,7 +112,7 @@ public class OrderVO extends BaseAudit {
|
||||
@Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
|
||||
private LocalDateTime paymentTime;
|
||||
|
||||
private List<OrderItem> items;
|
||||
private List<OrderItemVO> items;
|
||||
|
||||
@Excel(name = "用户昵称")
|
||||
@Schema(description ="用户昵称")
|
||||
|
@ -0,0 +1,12 @@
|
||||
package com.wzj.soopin.order.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.wzj.soopin.order.domain.bo.OrderBo;
|
||||
import com.wzj.soopin.order.domain.entity.Order;
|
||||
import com.wzj.soopin.order.domain.vo.OrderVO;
|
||||
|
||||
public interface IMerchantOrderService extends IService<Order> {
|
||||
Page<OrderVO> page(OrderBo bo);
|
||||
|
||||
}
|
@ -35,6 +35,7 @@ public class MemberOrderServiceImpl extends ServiceImpl<OrderMapper, Order> impl
|
||||
private final OrderConvert convert;
|
||||
private final OrderItemMapper orderItemMapper;
|
||||
private final SkuMapper skuMapper;
|
||||
private final OrderItemConvert orderItemConvert;
|
||||
@Override
|
||||
public Page<OrderVO> page( OrderBo bo) {
|
||||
Page<Order> resultPage = TenantHelper.ignore(() ->baseMapper.selectPage(bo.getPage(),bo.toWrapper()));
|
||||
@ -59,36 +60,11 @@ public class MemberOrderServiceImpl extends ServiceImpl<OrderMapper, Order> impl
|
||||
Map<Long, List<OrderItem>> orderItemMapByOrderId = orderItemList.stream()
|
||||
.collect(Collectors.groupingBy(OrderItem::getOrderId));
|
||||
|
||||
// 获取所有sku_id
|
||||
List<Long> skuIds = orderItemList.stream()
|
||||
.map(OrderItem::getSkuId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 根据sku_id查询pms_sku表数据
|
||||
QueryWrapper<Sku> skuQueryWrapper = new QueryWrapper<>();
|
||||
skuQueryWrapper.in("id", skuIds);
|
||||
List<Sku> skuList = skuMapper.selectList(skuQueryWrapper);
|
||||
|
||||
Map<Long, Sku> skuMapById = skuList.stream()
|
||||
.collect(Collectors.toMap(Sku::getId, sku -> sku));
|
||||
|
||||
for (OrderVO orderVO : orderVOList) {
|
||||
List<Map<String, Object>> productList = new ArrayList<>();
|
||||
List<OrderItem> orderItems = orderItemMapByOrderId.get(orderVO.getId());
|
||||
if (orderItems != null) {
|
||||
for (OrderItem orderItem : orderItems) {
|
||||
Sku sku = skuMapById.get(orderItem.getSkuId());
|
||||
if (sku != null) {
|
||||
Map<String, Object> productMap = new HashMap<>();
|
||||
productMap.put("price", sku.getPrice());
|
||||
productMap.put("pic", sku.getPic());
|
||||
productMap.put("stock", sku.getStock());
|
||||
productMap.put("spData", sku.getSpData());
|
||||
productList.add(productMap);
|
||||
}
|
||||
}
|
||||
orderVO.setItems(orderItemConvert.toVO(orderItems));
|
||||
}
|
||||
orderVO.setProductList(productList);
|
||||
}
|
||||
|
||||
return orderVOPage;
|
||||
|
@ -0,0 +1,68 @@
|
||||
package com.wzj.soopin.order.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.wzj.soopin.goods.mapper.SkuMapper;
|
||||
import com.wzj.soopin.order.convert.OrderConvert;
|
||||
import com.wzj.soopin.order.convert.OrderItemConvert;
|
||||
import com.wzj.soopin.order.domain.bo.OrderBo;
|
||||
import com.wzj.soopin.order.domain.entity.Order;
|
||||
import com.wzj.soopin.order.domain.entity.OrderItem;
|
||||
import com.wzj.soopin.order.domain.vo.OrderVO;
|
||||
import com.wzj.soopin.order.mapper.OrderItemMapper;
|
||||
import com.wzj.soopin.order.mapper.OrderMapper;
|
||||
import com.wzj.soopin.order.service.IMemberOrderService;
|
||||
import com.wzj.soopin.order.service.IMerchantOrderService;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.common.tenant.helper.TenantHelper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Service
|
||||
@AllArgsConstructor
|
||||
@Slf4j
|
||||
public class MerchantOrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IMerchantOrderService {
|
||||
|
||||
private final OrderConvert convert;
|
||||
private final OrderItemMapper orderItemMapper;
|
||||
private final SkuMapper skuMapper;
|
||||
private final OrderItemConvert orderItemConvert;
|
||||
@Override
|
||||
public Page<OrderVO> page( OrderBo bo) {
|
||||
Page<Order> resultPage = baseMapper.selectPage(bo.getPage(),bo.toWrapper());
|
||||
|
||||
Page<OrderVO> orderVOPage = convert.toVO(resultPage);
|
||||
List<OrderVO> orderVOList = orderVOPage.getRecords();
|
||||
if (orderVOList.isEmpty()) {
|
||||
return orderVOPage;
|
||||
}
|
||||
|
||||
// 获取所有订单id
|
||||
List<Long> orderIds = orderVOList.stream()
|
||||
.map(OrderVO::getId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 根据订单id查询订单详情
|
||||
QueryWrapper<OrderItem> orderItemQueryWrapper = new QueryWrapper<>();
|
||||
orderItemQueryWrapper.in("order_id", orderIds);
|
||||
List<OrderItem> orderItemList = orderItemMapper.selectList(orderItemQueryWrapper);
|
||||
|
||||
// 按照订单id分组订单详情
|
||||
Map<Long, List<OrderItem>> orderItemMapByOrderId = orderItemList.stream()
|
||||
.collect(Collectors.groupingBy(OrderItem::getOrderId));
|
||||
|
||||
for (OrderVO orderVO : orderVOList) {
|
||||
List<OrderItem> orderItems = orderItemMapByOrderId.get(orderVO.getId());
|
||||
if (orderItems != null) {
|
||||
orderVO.setItems(orderItemConvert.toVO(orderItems));
|
||||
}
|
||||
}
|
||||
|
||||
return orderVOPage;
|
||||
}
|
||||
}
|
@ -283,67 +283,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除订单表信息
|
||||
*
|
||||
* @param id 订单表主键
|
||||
* @return 结果
|
||||
*/
|
||||
public R<Order> deleteById(Long id) {
|
||||
Order order = orderMapper.selectById(id);
|
||||
|
||||
if (order == null) {
|
||||
return R.fail("订单不存在");
|
||||
}
|
||||
int affectedRows = orderMapper.deleteById(id);
|
||||
|
||||
return affectedRows > 0 ? R.ok(order) : R.fail("删除失败");
|
||||
}
|
||||
|
||||
public PageImpl<Object> queryOrderPage(OrderH5Query query, Pageable pageReq) {
|
||||
QueryWrapper<Order> qw = new QueryWrapper<>();
|
||||
qw.eq("member_id", SecurityUtils.getUserId());
|
||||
IPage<Order> 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<Order> orders = page.getRecords();
|
||||
long total = page.getPages();
|
||||
if (CollUtil.isEmpty(orders)) {
|
||||
return new PageImpl<>(Collections.emptyList(), pageReq, total);
|
||||
}
|
||||
LambdaQueryWrapper<OrderItem> qw1 = new LambdaQueryWrapper<>();
|
||||
qw1.in(OrderItem::getOrderId, orders.stream().map(Order::getId).collect(Collectors.toList()));
|
||||
Map<Long, List<OrderItem>> oid2items = orderItemMapper.selectList(qw1)
|
||||
.stream().collect(Collectors.groupingBy(OrderItem::getOrderId));
|
||||
// List<OrderVO> res = orderConvert.dos2vos(orders);
|
||||
// res.forEach(it -> {
|
||||
// it.setItems(oid2items.get(it.getId()));
|
||||
// });
|
||||
// return new PageImpl<>(res, pageReq, total);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
@ -367,88 +307,6 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
|
||||
return R.fail("更新失败");
|
||||
}
|
||||
|
||||
// /**
|
||||
// * 管理后台发货
|
||||
// * 目前发货是这样的:待发货、已发货、已完成都能执行发货,每次都会创建一条新的发货记录且修改订单发货信息
|
||||
// * @param request 发货请求
|
||||
// * @param userId 操作人
|
||||
// * @return 结果
|
||||
// */
|
||||
// @Transactional
|
||||
// public String deliverProduct(DeliverProductForm request, Long userId) {
|
||||
// //查询订单
|
||||
// Order order = orderMapper.selectById(request.getOrderId());
|
||||
// QueryWrapper<OrderItem> qw = new QueryWrapper<>();
|
||||
// qw.eq("order_id", request.getOrderId());
|
||||
// List<OrderItem> orderItemList = orderItemMapper.selectList(qw);
|
||||
// if (order == null || CollectionUtil.isEmpty(orderItemList)){
|
||||
// throw new RuntimeException("未找到该订单信息");
|
||||
// }
|
||||
// // 是否为待发货、已发货 、已完成
|
||||
// if (!(Constants.OrderStatus.SEND.equals(order.getStatus())
|
||||
// || Constants.OrderStatus.GET.equals(order.getStatus())
|
||||
// || Constants.OrderStatus.CONFIRM.equals(order.getStatus()))){
|
||||
// throw new RuntimeException("订单状态错误");
|
||||
// }
|
||||
// Integer orderStatus =
|
||||
// Constants.OrderStatus.SEND.equals(order.getStatus()) ? Constants.OrderStatus.GET : order.getStatus();
|
||||
// //更新订单
|
||||
// LocalDateTime optDate = LocalDateTime.now();
|
||||
// order.setUpdateBy(null);
|
||||
// order.setStatus(orderStatus);
|
||||
// order.setDeliveryTime(optDate);
|
||||
// order.setUpdateTime(optDate);
|
||||
// order.setDeliveryCompany(request.getExpressName());
|
||||
// order.setDeliverySn(request.getExpressSn());
|
||||
// orderMapper.updateById(order);
|
||||
// //创建新的发货记录
|
||||
// this.createDeliveryHistory(request, userId, optDate);
|
||||
// //创建订单操作记录
|
||||
// this.createOrderOptHistory(order.getId(), order.getOrderSn(), orderStatus, userId, optDate);
|
||||
// return "发货成功";
|
||||
// }
|
||||
|
||||
/**
|
||||
* 创建发货记录
|
||||
* @param request 发货请求
|
||||
* @param userId 操作人
|
||||
* @param optDate 操作时间
|
||||
*/
|
||||
private void createDeliveryHistory(DeliverProductForm request, Long userId, LocalDateTime optDate){
|
||||
OrderDeliveryHistory orderDeliveryHistory = new OrderDeliveryHistory();
|
||||
orderDeliveryHistory.setOrderId(request.getOrderId());
|
||||
orderDeliveryHistory.setDeliveryCompany(request.getExpressName());
|
||||
orderDeliveryHistory.setDeliverySn(request.getExpressSn());
|
||||
orderDeliveryHistory.setCreateTime(optDate);
|
||||
orderDeliveryHistory.setCreateBy(userId);
|
||||
int rows = orderDeliveryHistoryMapper.insert(orderDeliveryHistory);
|
||||
if (rows < 1) {
|
||||
throw new RuntimeException("新增订单发货记录失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建订单操作历史
|
||||
* @param orderId 订单id
|
||||
* @param orderStatus 订单状态
|
||||
* @param userId 操作人
|
||||
* @param optDate 操作时间
|
||||
*/
|
||||
private void createOrderOptHistory(Long orderId, String orderSn, Integer orderStatus, Long userId, LocalDateTime optDate){
|
||||
OrderOperateHistory optHistory = new OrderOperateHistory();
|
||||
optHistory.setOrderId(orderId);
|
||||
optHistory.setOrderSn(orderSn);
|
||||
optHistory.setOperateMan(SecurityUtils.getUsername());
|
||||
optHistory.setOrderStatus(orderStatus);
|
||||
optHistory.setCreateTime(optDate);
|
||||
optHistory.setCreateBy(userId);
|
||||
optHistory.setUpdateBy(userId);
|
||||
optHistory.setUpdateTime(optDate);
|
||||
int rows = orderOperateHistoryMapper.insert(optHistory);
|
||||
if (rows < 1) {
|
||||
throw new RuntimeException("新增订单操作记录失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据订单id查询订单操作日志
|
||||
|
Loading…
x
Reference in New Issue
Block a user