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