优惠券 出入

This commit is contained in:
2025-02-17 14:51:26 +08:00
parent 00f83f0e2d
commit ef3cbe85b1
34 changed files with 1224 additions and 24 deletions

View File

@@ -0,0 +1,44 @@
package com.czg.service.order.dto;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* 创建订单
* @author ww
*/
@Data
public class CreateOrderDTO {
@NotBlank(message = "桌号不能为空")
private String tableCode;
@NotBlank(message = "用餐模式 堂食 dine-in 外带 take-out 外卖 take-away")
private String dineMode;
/**
* 平台类型
* 微信小程序 WX
* 支付宝小程序 ALI
* 收银机客户端 PC
* PC管理端 APC
* APP管理端 APP
*/
@NotBlank(message = "平台类型不能为空")
private String platformType;
/**
* 是否使用了霸王餐
*/
private boolean isFreeDine = false;
private String remark;
// 使用的积分抵扣数量
private Integer pointsNum;
// 使用的优惠券
@Valid
private List<UserCouponInfoDTO> userCouponInfos = new ArrayList<>();
}

View File

@@ -0,0 +1,12 @@
package com.czg.service.order.dto;
import jakarta.validation.constraints.Min;
import lombok.Data;
@Data
public class UserCouponInfoDTO {
private Long userCouponId;
@Min(1)
private Integer num;
}

View File

@@ -57,10 +57,12 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
queryWrapper.eq(OrderInfo::getShopId, param.getShopId())
.eq(OrderInfo::getStatus, param.getStatus())
.eq(OrderInfo::getOrderNo, param.getOrderNo())
.eq(OrderInfo::getPayType, param.getPayType())
.eq(OrderInfo::getTableCode, param.getTableCode())
.eq(OrderInfo::getUserId, param.getUserId())
.eq(OrderInfo::getTableCode, param.getTableCode())
.eq(OrderInfo::getOrderNo, param.getOrderNo())
.gt(OrderInfo::getCreateTime, param.getStartTime())
.le(OrderInfo::getCreateTime, param.getEndTime())
.in(OrderInfo::getId, like);
Page<OrderInfoVo> orderInfoVoPage = pageAs(PageUtil.buildPage(), queryWrapper, OrderInfoVo.class);
orderInfoVoPage.getRecords().parallelStream().forEach(s -> {
@@ -83,8 +85,8 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
.where(OrderPayment::getId).eq(payment.getId())
.update();
if ("TRADE_SUCCESS" .equals(czgCallBackDto.getState())) {
if ("order" .equals(payment.getPayType())) {
if ("TRADE_SUCCESS".equals(czgCallBackDto.getState())) {
if ("order".equals(payment.getPayType())) {
updateChain().of(OrderInfo.class)
.set(OrderInfo::getPayAmount, new BigDecimal(czgCallBackDto.getAmount() / 100L))
.set(OrderInfo::getStatus, OrderStatusEnums.DONE.getCode())