add old netty frameWork
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
group 'SmartVenue'
|
||||
group 'smartvenue'
|
||||
version '1.0.0'
|
||||
ext {
|
||||
springBootVersion = '1.5.7.RELEASE'
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.sv.service.api;
|
||||
|
||||
import com.enums.*;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.sv.dto.EnterResult;
|
||||
import com.sv.dto.api.MemberCardDTO;
|
||||
import com.sv.dto.api.MemberCardVenuesDTO;
|
||||
import com.sv.dto.api.VenueDTO;
|
||||
@@ -305,103 +306,103 @@ public class VenueService extends BaseServiceImpl {
|
||||
* @param deviceId
|
||||
* @return 0成功 -1失败
|
||||
*/
|
||||
// @Transactional(rollbackFor = Exception.class)
|
||||
// public synchronized EnterResult enterVenue(Integer faceId, Integer deviceId) {
|
||||
// EnterResult result = new EnterResult();
|
||||
// synchronized (("enter" + faceId.toString()).intern()) {
|
||||
// Date now = new Date();
|
||||
// Device device = deviceService.findById(deviceId);
|
||||
// Venue venue = venueMapper.findById(device.getVenueId());
|
||||
// // 查询当前时间内,场馆对应的价格
|
||||
// String time = DateUtilCard.nowTime().toString();
|
||||
// VenuePrice venuePrice = venuePriceService.findPrice(device.getVenueId(), time);
|
||||
// if (venuePrice == null) {
|
||||
// logger.info("场馆暂未开放");
|
||||
// result.setStatus(-2);
|
||||
// return result;
|
||||
// }
|
||||
// if (venue.getStatus().intValue() == 1) {
|
||||
// logger.info(venue.getName() + "被禁用,入场失败");
|
||||
// result.setStatus(-2);
|
||||
// return result;
|
||||
// }
|
||||
// Member member = memberService.findByFaceId(faceId);
|
||||
// memberService.verify(member);
|
||||
// if (venue == null || member == null) {
|
||||
// result.setStatus(-1);
|
||||
// return result;
|
||||
// }
|
||||
// //判断8小时之内 是否连续进场
|
||||
// MemberEnterVenueLog enterVenueLog = memberEnterVenueLogService.findMemberLastLog(member.getId(), device.getVenueId());
|
||||
// MemberEnterVenueLog log = new MemberEnterVenueLog();
|
||||
// log.setMemberId(member.getId());
|
||||
// log.setVeneuType(device.getVenueType());
|
||||
// log.setVenueId(device.getVenueId());
|
||||
// log.setPlatformId(member.getPlatformId());
|
||||
// if (enterVenueLog != null) {
|
||||
// if ((now.getTime() - enterVenueLog.getCreatedTime().getTime()) <= (8 * 60 * 60 * 1000)) {
|
||||
// //小于8小时直接进场
|
||||
// log.setOrderSn("");
|
||||
// logger.info("用户:" + member.getNickname() + "小于8小时直接进场");
|
||||
// memberEnterVenueLogService.save(log);
|
||||
// result.setStatus(0);
|
||||
// return result;
|
||||
// }
|
||||
// }
|
||||
// //进场之前 查看是否有会员卡
|
||||
// List<MemberCard> cards = memberCardService.findByMemberId(device.getVenueId(), member.getId());
|
||||
// if (cards.size() > 0) {
|
||||
// //有会员卡 查看是否是免费卡 【// 发现这里的逻辑不是优先使用免费卡】
|
||||
// MemberCard useCard = null;
|
||||
// for (MemberCard card : cards) {
|
||||
// if (!VipTypeEnum.FREECARD.value.equals(card.getCardType())) {
|
||||
// useCard = card;
|
||||
// break;
|
||||
// } else {
|
||||
// //查看该免费卡是否可用 (一天用一次)
|
||||
// if (memberEnterVenueLogService.isFreeCardUseful(card.getId())) {
|
||||
// useCard = card;
|
||||
// break;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// if (useCard != null) {
|
||||
// //使用会员卡入场
|
||||
// logger.info("用户" + member.getNickname() + "使用" + useCard.getCardType() + "入场");
|
||||
// log.setMemberCardId(useCard.getId());
|
||||
// log.setPayType(EnterVenuePayTypeEnum.MEMBER_CARD.value);
|
||||
// String orderSn = orderService.createEnterVenueOrder(venue, member.getId(), PayTypeEnum.MEMBER_CARD, venuePrice.getPrice());
|
||||
// // 会员卡入场,增加记录
|
||||
// createMemberMoneyLog(MoneyLogEnum.JOIN.value, venue.getPrice(), member.getId(), member.getPlatformId(), PayTypeEnum.MEMBER_CARD.value, useCard.getCardType(),
|
||||
// venue.getId(), venue.getType());
|
||||
// log.setOrderSn(orderSn);
|
||||
// memberEnterVenueLogService.save(log);
|
||||
// result.setStatus(1);
|
||||
// return result;
|
||||
// }
|
||||
// }
|
||||
// //没有会员卡 扣余额
|
||||
// //判断余额是否够
|
||||
// if (memberService.isMoneyEnough(member.getId(), venuePrice.getPrice())) {
|
||||
// logger.info("用户" + member.getNickname() + "使用余额进场");
|
||||
// result.setMoney(venuePrice.getPrice());
|
||||
// String orderSn = orderService.createEnterVenueOrder(venue, member.getId(), PayTypeEnum.BALANCE, venuePrice.getPrice());
|
||||
// log.setOrderSn(orderSn);
|
||||
// log.setPayType(EnterVenuePayTypeEnum.WEI_XIN.value);
|
||||
// memberEnterVenueLogService.save(log);
|
||||
// result.setStatus(2);
|
||||
// return result;
|
||||
// } else {
|
||||
// //余额不足
|
||||
// logger.info("用户" + member.getNickname() + "余额不足进场失败");
|
||||
// result.setStatus(-2);
|
||||
// return result;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public synchronized EnterResult enterVenue(Integer faceId, Integer deviceId) {
|
||||
EnterResult result = new EnterResult();
|
||||
synchronized (("enter" + faceId.toString()).intern()) {
|
||||
Date now = new Date();
|
||||
Device device = deviceService.findById(deviceId);
|
||||
Venue venue = venueMapper.findById(device.getVenueId());
|
||||
// 查询当前时间内,场馆对应的价格
|
||||
String time = DateUtilCard.nowTime().toString();
|
||||
VenuePrice venuePrice = venuePriceService.findPrice(device.getVenueId(), time);
|
||||
if (venuePrice == null) {
|
||||
logger.info("场馆暂未开放");
|
||||
result.setStatus(-2);
|
||||
return result;
|
||||
}
|
||||
if (venue.getStatus().intValue() == 1) {
|
||||
logger.info(venue.getName() + "被禁用,入场失败");
|
||||
result.setStatus(-2);
|
||||
return result;
|
||||
}
|
||||
Member member = memberService.findByFaceId(faceId);
|
||||
memberService.verify(member);
|
||||
if (venue == null || member == null) {
|
||||
result.setStatus(-1);
|
||||
return result;
|
||||
}
|
||||
//判断8小时之内 是否连续进场
|
||||
MemberEnterVenueLog enterVenueLog = memberEnterVenueLogService.findMemberLastLog(member.getId(), device.getVenueId());
|
||||
MemberEnterVenueLog log = new MemberEnterVenueLog();
|
||||
log.setMemberId(member.getId());
|
||||
log.setVeneuType(device.getVenueType());
|
||||
log.setVenueId(device.getVenueId());
|
||||
log.setPlatformId(member.getPlatformId());
|
||||
if (enterVenueLog != null) {
|
||||
if ((now.getTime() - enterVenueLog.getCreatedTime().getTime()) <= (8 * 60 * 60 * 1000)) {
|
||||
//小于8小时直接进场
|
||||
log.setOrderSn("");
|
||||
logger.info("用户:" + member.getNickname() + "小于8小时直接进场");
|
||||
memberEnterVenueLogService.save(log);
|
||||
result.setStatus(0);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
//进场之前 查看是否有会员卡
|
||||
List<MemberCard> cards = memberCardService.findByMemberId(device.getVenueId(), member.getId());
|
||||
if (cards.size() > 0) {
|
||||
//有会员卡 查看是否是免费卡 【// 发现这里的逻辑不是优先使用免费卡】
|
||||
MemberCard useCard = null;
|
||||
for (MemberCard card : cards) {
|
||||
if (!VipTypeEnum.FREECARD.value.equals(card.getCardType())) {
|
||||
useCard = card;
|
||||
break;
|
||||
} else {
|
||||
//查看该免费卡是否可用 (一天用一次)
|
||||
if (memberEnterVenueLogService.isFreeCardUseful(card.getId())) {
|
||||
useCard = card;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (useCard != null) {
|
||||
//使用会员卡入场
|
||||
logger.info("用户" + member.getNickname() + "使用" + useCard.getCardType() + "入场");
|
||||
log.setMemberCardId(useCard.getId());
|
||||
log.setPayType(EnterVenuePayTypeEnum.MEMBER_CARD.value);
|
||||
String orderSn = orderService.createEnterVenueOrder(venue, member.getId(), PayTypeEnum.MEMBER_CARD, venuePrice.getPrice());
|
||||
// 会员卡入场,增加记录
|
||||
createMemberMoneyLog(MoneyLogEnum.JOIN.value, venue.getPrice(), member.getId(), member.getPlatformId(), PayTypeEnum.MEMBER_CARD.value, useCard.getCardType(),
|
||||
venue.getId(), venue.getType());
|
||||
log.setOrderSn(orderSn);
|
||||
memberEnterVenueLogService.save(log);
|
||||
result.setStatus(1);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
//没有会员卡 扣余额
|
||||
//判断余额是否够
|
||||
if (memberService.isMoneyEnough(member.getId(), venuePrice.getPrice())) {
|
||||
logger.info("用户" + member.getNickname() + "使用余额进场");
|
||||
result.setMoney(venuePrice.getPrice());
|
||||
String orderSn = orderService.createEnterVenueOrder(venue, member.getId(), PayTypeEnum.BALANCE, venuePrice.getPrice());
|
||||
log.setOrderSn(orderSn);
|
||||
log.setPayType(EnterVenuePayTypeEnum.WEI_XIN.value);
|
||||
memberEnterVenueLogService.save(log);
|
||||
result.setStatus(2);
|
||||
return result;
|
||||
} else {
|
||||
//余额不足
|
||||
logger.info("用户" + member.getNickname() + "余额不足进场失败");
|
||||
result.setStatus(-2);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否可以成功入场
|
||||
* 二维码入场-判断是否成功入场
|
||||
*
|
||||
* @return 0成功 -1失败
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user