记得上下班打卡 | git大法好,push需谨慎

Commit 9ff4e5e6 authored by wangyifan's avatar wangyifan

order 再次支付拼团前置校验

parent 8274dd3b
......@@ -903,6 +903,10 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (checkVo.getStatus() == 1) {
return ResponseDto.failure(ErrorMapping.get("20027"));
}
ResponseDto<Boolean> groupBuyPayAgainCheck = groupBuyOrderHelper.validateBeforePayAgain(orderTicketData, uid);
if (!groupBuyPayAgainCheck.isSuccess()) {
return ResponseDto.failure(groupBuyPayAgainCheck.getMessage());
}
if (!orderTicketData.getPayType().equals("no")) {
if (orderTicketData.getEntitiesVoList().size() == 0) {
......
......@@ -75,6 +75,51 @@ public class GroupBuyOrderHelper {
return validateJoin(param, uid);
}
/**
* 再次支付前置校验:票单已绑定团,只判断能否继续付,不重建团。
* 非拼团票单直接通过。
*/
public ResponseDto<Boolean> validateBeforePayAgain(KylinOrderTicketVo ticket, String uid) {
if (ticket == null || StringUtils.isBlank(ticket.getGroupOrderId())) {
return ResponseDto.success(true);
}
KylinGroupBuyOrderVo group = findGroup(ticket.getGroupOrderId());
if (group == null) {
return ResponseDto.failure("拼团不存在");
}
KylinGroupBuyMemberVo member = findMember(group, ticket.getOrderTicketsId());
if (member == null) {
return ResponseDto.failure("拼团成员不存在");
}
if (!GroupBuyStatusConst.MemberStatus.PENDING_PAY.equals(member.getStatus())) {
return ResponseDto.failure("拼团成员状态不可支付");
}
Integer groupStatus = group.getStatus();
if (GroupBuyStatusConst.OrderStatus.CANCELLED.equals(groupStatus)) {
return ResponseDto.failure("拼团已取消,无法支付");
}
if (GroupBuyStatusConst.OrderStatus.FAILED.equals(groupStatus)) {
return ResponseDto.failure("拼团已失败,无法支付");
}
if (GroupBuyStatusConst.OrderStatus.SUCCESS.equals(groupStatus)) {
return ResponseDto.failure("拼团已结束,无法支付");
}
if (GroupBuyStatusConst.OrderStatus.PREPARE.equals(groupStatus)) {
if (!uid.equals(group.getLeaderUserId()) || !uid.equals(member.getUserId())) {
return ResponseDto.failure("拼团当前不可支付");
}
return ResponseDto.success(true);
}
if (GroupBuyStatusConst.OrderStatus.PENDING.equals(groupStatus)) {
if (group.getExpiresAt() != null
&& DateUtil.Formatter.yyyyMMddHHmmss.parse(group.getExpiresAt()).isBefore(LocalDateTime.now())) {
return ResponseDto.failure("拼团已过期");
}
return ResponseDto.success(true);
}
return ResponseDto.failure("拼团当前不可支付");
}
private ResponseDto<Boolean> validateCreate(PayOrderParam param, String uid) {
KylinGroupBuyActivityVo activity = getActiveActivity(param.getGroupBuyActivityId());
if (activity == null) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment