release-20260330 - 修改为手机开门,不扫码。
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -28,3 +28,6 @@ hs_err_pid*
|
||||
target
|
||||
|
||||
*.iml
|
||||
|
||||
.vscode
|
||||
.DS_Store
|
||||
|
||||
@@ -25,7 +25,6 @@ import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
|
||||
/**
|
||||
* Service - 场馆
|
||||
*
|
||||
@@ -51,7 +50,6 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
@Resource
|
||||
OrderMapper orderMapper;
|
||||
|
||||
|
||||
/**
|
||||
* api 接口
|
||||
* 我要进场
|
||||
@@ -63,7 +61,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
if (memberId == null) {
|
||||
throw new ServiceException(com.ydd.framework.core.exception.ExceptionCodeTemplate.NEED_LOGIN);
|
||||
}
|
||||
//参数校验
|
||||
// 参数校验
|
||||
ValidationUtils.assertNotNull(venueId);
|
||||
// 2. 查询该场馆需要的费用,并比较用户余额是否足够
|
||||
// 查询当前时间内,场馆对应的价格
|
||||
@@ -74,7 +72,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
throw new ServiceException(ExceptionCodeTemplate.VENUE_ERROR);
|
||||
}
|
||||
BigDecimal price = venuePrice.getPrice();
|
||||
if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()){
|
||||
if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()) {
|
||||
// 按时入场余额需要包含两个小时的场地费
|
||||
price = price.multiply(new BigDecimal(2));
|
||||
}
|
||||
@@ -88,19 +86,19 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
if (price.compareTo(BigDecimal.ZERO) > 0) {
|
||||
checkOrderPaying(memberId);
|
||||
basketEnterResult.setFlg(2);
|
||||
if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()){
|
||||
basketEnterResult.setMsg("预付押金"+ price + "元,出门后按分钟结算,收费规则见场馆主页详情");
|
||||
if (PayStyleEnum.HOUR.getValue() == venue.getPayStyle()) {
|
||||
basketEnterResult.setMsg("预付押金" + price + "元,出门后按分钟结算,收费规则见场馆主页详情");
|
||||
} else {
|
||||
basketEnterResult.setMsg("订单金额"+ price + "元,请确认!");
|
||||
basketEnterResult.setMsg("订单金额" + price + "元,请确认!");
|
||||
}
|
||||
basketEnterResult.setMoney(price);
|
||||
} else {
|
||||
logger.info(memberId + "&用户创建订单,开始进场,免费入场");
|
||||
Integer timePayHour = 2;
|
||||
if(PayStyleEnum.TIME.getValue() == venue.getPayStyle()){
|
||||
if (PayStyleEnum.TIME.getValue() == venue.getPayStyle()) {
|
||||
timePayHour = venue.getTimePayHour() != null ? venue.getTimePayHour() : 4;
|
||||
}
|
||||
createBarcodeTimeOrder(memberId,venueId,timePayHour,"000");
|
||||
createBarcodeTimeOrder(memberId, venueId, timePayHour, "000");
|
||||
}
|
||||
} else {
|
||||
// 已有有效订单
|
||||
@@ -119,6 +117,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
|
||||
/**
|
||||
* 我要出场
|
||||
*
|
||||
* @param memberId
|
||||
* @param venueId
|
||||
* @return
|
||||
@@ -158,7 +157,8 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
BigDecimal deposit = basePrice.multiply(new BigDecimal(2));
|
||||
BigDecimal difference = actualCost.subtract(deposit);
|
||||
|
||||
logger.info("用户出场$" + memberId + "$经过" + minutes + "分钟,实际费用:" + actualCost + ",押金:" + deposit + ",差额:" + difference);
|
||||
logger.info("用户出场$" + memberId + "$经过" + minutes + "分钟,实际费用:" + actualCost + ",押金:" + deposit + ",差额:"
|
||||
+ difference);
|
||||
|
||||
if (difference.compareTo(BigDecimal.ZERO) > 0) {
|
||||
checkOrderPaying(memberId);
|
||||
@@ -196,6 +196,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
|
||||
/**
|
||||
* 用户五分钟内有过微信支付,不能在结果未出来之前就让用户付款
|
||||
*
|
||||
* @param memberId
|
||||
*/
|
||||
private void checkOrderPaying(Integer memberId) {
|
||||
@@ -222,9 +223,11 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
* @param venueId
|
||||
* @param venueType
|
||||
*/
|
||||
public void createMemberMoneyLog(Integer type, BigDecimal price, Integer memberId, Integer platformId, Integer payType, String cardType,
|
||||
Integer venueId, Integer venueType) {
|
||||
memberMoneyLogService.create(memberId,platformId == null ? 1 : platformId,type,price.negate(),payType,cardType,venueId,venueType,null);
|
||||
public void createMemberMoneyLog(Integer type, BigDecimal price, Integer memberId, Integer platformId,
|
||||
Integer payType, String cardType,
|
||||
Integer venueId, Integer venueType) {
|
||||
memberMoneyLogService.create(memberId, platformId == null ? 1 : platformId, type, price.negate(), payType,
|
||||
cardType, venueId, venueType, null);
|
||||
}
|
||||
|
||||
public void addNumber(Integer venueId, Integer number, Integer memberId) {
|
||||
@@ -239,17 +242,18 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
|
||||
/**
|
||||
* 按次入场订单入库
|
||||
*
|
||||
* @param memberId
|
||||
* @param venueId
|
||||
* @param timePayHour
|
||||
*/
|
||||
private void createBarcodeTimeOrder(Integer memberId, Integer venueId, Integer timePayHour,String orderSn) {
|
||||
private void createBarcodeTimeOrder(Integer memberId, Integer venueId, Integer timePayHour, String orderSn) {
|
||||
Date startDate = new Date();
|
||||
Date endDate = DateUtilCard.addHours(startDate, timePayHour);
|
||||
// // 如果小于2小时,则默认给15分钟宽限期,包时订单
|
||||
// if (timePayHour <= 2) {
|
||||
// endDate = DateUtilCard.addMinute(endDate,15);
|
||||
// }
|
||||
// // 如果小于2小时,则默认给15分钟宽限期,包时订单
|
||||
// if (timePayHour <= 2) {
|
||||
// endDate = DateUtilCard.addMinute(endDate,15);
|
||||
// }
|
||||
BarcodeOrderTime barcodeOrderTime = new BarcodeOrderTime();
|
||||
barcodeOrderTime.setMemberId(memberId);
|
||||
barcodeOrderTime.setVenueId(venueId);
|
||||
@@ -263,6 +267,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
|
||||
/**
|
||||
* 支付成功
|
||||
*
|
||||
* @param order
|
||||
*/
|
||||
public void paySuccess(Order order) {
|
||||
@@ -271,10 +276,11 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
Integer memberId = order.getMemberId();
|
||||
Integer venueId = order.getParentOrderId();
|
||||
Venue venue = venueMapper.findById(venueId);
|
||||
createMemberMoneyLog(MoneyLogEnum.JOIN.value, order.getPrice(), memberId, order.getPlatformId(), PayTypeEnum.WEI_XIN.value, null,venue.getId(), venue.getType());
|
||||
createMemberMoneyLog(MoneyLogEnum.JOIN.value, order.getPrice(), memberId, order.getPlatformId(),
|
||||
PayTypeEnum.WEI_XIN.value, null, venue.getId(), venue.getType());
|
||||
if (EnterEnum.OUT.value != enterFlag) {
|
||||
Integer timePayHour = 8; // 此处修改押金小时数
|
||||
if(PayStyleEnum.TIME.getValue() == venue.getPayStyle()){
|
||||
if (PayStyleEnum.TIME.getValue() == venue.getPayStyle()) {
|
||||
// 按次入场先收钱,且多久不收钱,出场不收钱
|
||||
// 该用户上次订单的是否逾期
|
||||
timePayHour = venue.getTimePayHour();
|
||||
@@ -282,9 +288,10 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
timePayHour = 8;
|
||||
}
|
||||
}
|
||||
createBarcodeTimeOrder(memberId,venueId,timePayHour,order.getOrderSn());
|
||||
createBarcodeTimeOrder(memberId, venueId, timePayHour, order.getOrderSn());
|
||||
} else {
|
||||
BarcodeOrderTime lastOrder = barcodeOrderTimeMapper.findLastOrderBySn(memberId, venueId,order.getOrderSn());
|
||||
BarcodeOrderTime lastOrder = barcodeOrderTimeMapper.findLastOrderBySn(memberId, venueId,
|
||||
order.getOrderSn());
|
||||
if (lastOrder != null) {
|
||||
lastOrder.setPaying(2);
|
||||
lastOrder.setStatus(BarCodeStatusEnum.USED.getValue());
|
||||
@@ -296,6 +303,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
|
||||
/**
|
||||
* 我的进场订单
|
||||
*
|
||||
* @param memberId
|
||||
* @param pagination
|
||||
* @return
|
||||
@@ -331,7 +339,7 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
if (1 == paying) {
|
||||
memberEnterOrderDTO.setStatus(EnterOrderStatusEnum.PAYING.value);
|
||||
}
|
||||
if (0 == paying){
|
||||
if (0 == paying) {
|
||||
memberEnterOrderDTO.setStatus(EnterOrderStatusEnum.USING.value);
|
||||
}
|
||||
}
|
||||
@@ -357,7 +365,8 @@ public class VenueEnterService extends BaseServiceImpl {
|
||||
throw new ServiceException("订单多次支付(使用超时),无法进行退款!");
|
||||
}
|
||||
Order baseOrder = orderMapper.findByOrderSn(orderSn);
|
||||
BigDecimal currentSumPayMoney = barcodeOrder.getSumPayMoney() == null ? BigDecimal.ZERO : barcodeOrder.getSumPayMoney();
|
||||
BigDecimal currentSumPayMoney = barcodeOrder.getSumPayMoney() == null ? BigDecimal.ZERO
|
||||
: barcodeOrder.getSumPayMoney();
|
||||
if (currentSumPayMoney.add(payMoney).compareTo(baseOrder.getPrice()) > 0) {
|
||||
throw new ServiceException("退款金额不能超过总支付金额!");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user