订单详情

This commit is contained in:
wangw 2025-03-04 14:28:46 +08:00
parent d5ae0ce0f6
commit af674e25a0
5 changed files with 43 additions and 5 deletions

View File

@ -16,6 +16,8 @@ import jakarta.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 订单管理
@ -41,6 +43,11 @@ public class AdminOrderController {
return CzgResult.success(orderInfoService.getOrderByPage(queryDTO));
}
@GetMapping("/getOrderById")
public CzgResult<Map<String, Object>> getOrderById(Long orderId) {
return orderInfoService.getOrderDetails(orderId);
}
@GetMapping("/historyOrder")
public CzgResult<HistoryOrderVo> historyOrder(
@RequestParam(required = false) Long orderId,
@ -59,7 +66,7 @@ public class AdminOrderController {
/**
* 订单全额退款 只传订单id
* 部分退款 传参refundDetailMap {"详情id":"数量","详情id":"数量"}
* 部分退款 传参refundDetail
*/
@PostMapping("/refundOrder")
public CzgResult<Object> refundOrder(@Validated @RequestBody OrderInfoRefundDTO refundDTO) {

View File

@ -14,6 +14,8 @@ import com.mybatisflex.core.paginate.Page;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import java.util.Map;
/**
* 订单管理
@ -38,6 +40,11 @@ public class UserOrderController {
return CzgResult.success(orderInfoService.getOrderByPage(queryDTO));
}
@GetMapping("/getOrderById")
public CzgResult<Map<String, Object>> getOrderById(Long orderId) {
return orderInfoService.getOrderDetails(orderId);
}
@GetMapping("/historyOrder")
public CzgResult<HistoryOrderVo> historyOrder(
@RequestParam(required = false) Long orderId,

View File

@ -201,4 +201,8 @@ public class OrderDetail implements Serializable {
public String getRefundRemark() {
return StrUtil.isBlank(refundRemark) ? "" : refundRemark + " ";
}
public BigDecimal getCouponNum() {
return couponNum == null ? BigDecimal.ZERO : couponNum;
}
}

View File

@ -10,6 +10,7 @@ import com.czg.order.entity.OrderInfo;
import com.czg.order.enums.PayEnums;
import com.czg.order.vo.HistoryOrderVo;
import com.czg.order.vo.OrderInfoVo;
import com.czg.resp.CzgResult;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.service.IService;
import jakarta.validation.constraints.NotBlank;
@ -30,6 +31,8 @@ public interface OrderInfoService extends IService<OrderInfo> {
Page<OrderInfoVo> getOrderByPage(OrderInfoQueryDTO param);
CzgResult<Map<String, Object>> getOrderDetails(Long orderId);
HistoryOrderVo historyOrder(Long orderId, String tableCode);
OrderInfo createOrder(OrderInfoAddDTO param);

View File

@ -30,6 +30,7 @@ import com.czg.order.service.OrderPaymentService;
import com.czg.order.vo.HistoryOrderVo;
import com.czg.order.vo.OrderDetailSmallVO;
import com.czg.order.vo.OrderInfoVo;
import com.czg.resp.CzgResult;
import com.czg.sa.StpKit;
import com.czg.service.RedisService;
import com.czg.order.dto.BigDecimalDTO;
@ -128,6 +129,18 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
return orderInfoVoPage;
}
@Override
public CzgResult<Map<String, Object>> getOrderDetails(Long orderId) {
AssertUtil.isNull(orderId, "订单id不能为空");
OrderInfo orderInfo = getById(orderId);
AssertUtil.isNull(orderInfo, "订单信息不存在");
List<OrderDetail> orderDetails = orderDetailService.queryChain().select().eq(OrderDetail::getOrderId, orderId).list();
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("orderInfo", orderInfo);
resultMap.put("orderDetails", orderDetails);
return CzgResult.success(resultMap);
}
@Override
public HistoryOrderVo historyOrder(Long orderId, String tableCode) {
if (orderId == null && StrUtil.isBlank(tableCode)) {
@ -212,13 +225,13 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
@Override
public OrderInfo checkOrderPay(CheckOrderPay param) {
OrderInfo orderInfo = getById(param.getOrderId());
if (!"after-pay".equals(orderInfo.getPayMode())) {
// if (!"after-pay".equals(orderInfo.getPayMode())) {
// if (redisService.hasKey(RedisCst.classKeyExpired.EXPIRED_ORDER + param.getOrderId())) {
// redisService.set(RedisCst.classKeyExpired.EXPIRED_ORDER + param.getOrderId(), "", 60 * 15);
// } else {
// throw new ValidateException("订单已过期,请重新下单");
// }
}
// }
ShopInfo shopInfo = shopInfoService.getById(orderInfo.getShopId());
AssertUtil.isNull(shopInfo, "生成订单失败,店铺信息不存在");
if (param.isVipPrice() && !shopInfo.getIsMemberPrice().equals(1)) {
@ -380,9 +393,13 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
}
}
if (isAllPack) {
orderDetail.setPackNumber(orderDetail.getNum());
if ("weigh".equals(orderDetail.getProductType())) {
orderDetail.setPackNumber(BigDecimal.ONE);
} else {
orderDetail.setPackNumber(orderDetail.getNum());
}
}
packAmount.setPrice(packAmount.getPrice().add(orderDetail.getPackAmount().multiply(orderDetail.getPackNumber())));
packAmount.setPrice(packAmount.getPrice().add(orderDetail.getPackAmount().multiply(orderDetail.getPackNumber()).setScale(2, RoundingMode.DOWN)));
if (couponNum.compareTo(BigDecimal.ZERO) > 0) {
if (couponNum.compareTo(orderDetail.getNum()) >= 0) {
orderDetail.setCouponNum(orderDetail.getNum());