updated
This commit is contained in:
@@ -2,6 +2,7 @@ package com.mgm.mcrm.reservation.services;
|
||||
|
||||
import java.util.*;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.mgm.mcrm.admin.repositories.SysUserDao;
|
||||
@@ -17,6 +18,8 @@ import com.mgm.mcrm.basesetting.daylight.repositories.BlockDao;
|
||||
import com.mgm.mcrm.basesetting.daylight.repositories.DaylightViewDao;
|
||||
import com.mgm.mcrm.basesetting.daylight.repositories.ItemInventoryDao;
|
||||
import com.mgm.mcrm.basesetting.daylight.repositories.TierDao;
|
||||
import com.mgm.mcrm.basesetting.opera.models.CfgOperaView;
|
||||
import com.mgm.mcrm.basesetting.opera.repositories.OperaViewDao;
|
||||
import com.mgm.mcrm.basesetting.property.models.CfgProperties;
|
||||
import com.mgm.mcrm.basesetting.property.repositories.PropertyDao;
|
||||
import com.mgm.mcrm.basesetting.property.services.PropertyService;
|
||||
@@ -24,7 +27,11 @@ import com.mgm.mcrm.basesetting.room.models.CfgRoomFeatures;
|
||||
import com.mgm.mcrm.basesetting.room.models.CfgRoomTypes;
|
||||
import com.mgm.mcrm.basesetting.room.models.CfgRooms;
|
||||
import com.mgm.mcrm.basesetting.room.repositories.*;
|
||||
import com.mgm.mcrm.basesetting.team.models.CfgSections;
|
||||
import com.mgm.mcrm.basesetting.team.models.CfgTeamStructure;
|
||||
import com.mgm.mcrm.basesetting.team.repositories.AppUserDao;
|
||||
import com.mgm.mcrm.basesetting.team.repositories.SectionDao;
|
||||
import com.mgm.mcrm.basesetting.team.repositories.TeamStructureDao;
|
||||
import com.mgm.mcrm.common.dtos.DataTableResult;
|
||||
import com.mgm.mcrm.common.dtos.QueryFilter;
|
||||
import com.mgm.mcrm.common.dtos.ServiceResult;
|
||||
@@ -61,28 +68,9 @@ import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.auth0.jwt.JWT;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
||||
|
||||
|
||||
|
||||
@Service
|
||||
public class BookingService {
|
||||
|
||||
@@ -128,6 +116,12 @@ public class BookingService {
|
||||
private SysGroupService sysGroupService;
|
||||
@Resource
|
||||
private BookingMapper bookingMapper;
|
||||
@Resource
|
||||
private TeamStructureDao teamStructureDao;
|
||||
@Resource
|
||||
private SectionDao sectionDao;
|
||||
@Resource
|
||||
private OperaViewDao operaViewDao;
|
||||
|
||||
public ServiceResult createBooking(Map<String,Object> param, HttpServletRequest request) {
|
||||
ServiceResult processResult= new ServiceResult();
|
||||
@@ -160,13 +154,18 @@ public class BookingService {
|
||||
String oldToken = request.getHeader("Authorization");
|
||||
// oldToken = oldToken.substring(6);
|
||||
String userId = JWT.decode(oldToken).getClaim("login_id").asString();
|
||||
Long sectionId = 2L;
|
||||
|
||||
List<CfgDaylightView> operas = daylightViewDao.findByPropertyIdAndBookingTypeId(propertyId,blockId);
|
||||
List<CfgDaylightView> teamOpera = new ArrayList();
|
||||
CfgDaylightView opera = new CfgDaylightView();
|
||||
for(CfgDaylightView o :operas) {
|
||||
for(CfgRoomTypes r :o.getDaylightRoomType()) {
|
||||
Map<String, Object> user = (Map<String, Object>) param.get("user");
|
||||
Long teamStructureId = user.get("teamStructureId") != null ? Long.valueOf(String.valueOf(param.get("teamStructureId"))) : null;
|
||||
CfgTeamStructure cfgTeamStructure = teamStructureDao.findById(teamStructureId).orElse(null);
|
||||
Long sectionId = cfgTeamStructure.getSectionId();
|
||||
|
||||
CfgSections cfgSections = sectionDao.findById(sectionId).orElse(null);
|
||||
|
||||
List<CfgOperaView> operas = operaViewDao.findByPropertyIdAndBookingTypeId(propertyId,blockId);
|
||||
List<CfgOperaView> teamOpera = new ArrayList<>();
|
||||
CfgOperaView opera = new CfgOperaView();
|
||||
for(CfgOperaView o :operas) {
|
||||
for(CfgRoomTypes r :o.getOperaRoomType()) {
|
||||
if(Objects.equals(r.getId(), roomTypeId)) {
|
||||
teamOpera.add(o);
|
||||
}
|
||||
@@ -174,11 +173,13 @@ public class BookingService {
|
||||
}
|
||||
|
||||
String blockCode = null;
|
||||
for(CfgDaylightView o :teamOpera) {
|
||||
LocalDateTime startTime = o.getStartDate();
|
||||
LocalDateTime endTime = o.getEndDate();
|
||||
if((startTime.isBefore(checkinDate) || startTime.isEqual(checkinDate))
|
||||
&& (endTime.isAfter(checkoutDate) || endTime.isEqual(checkoutDate))) {
|
||||
Date checkinAsDate = Date.from(checkinDate.atZone(ZoneId.systemDefault()).toInstant());
|
||||
Date checkoutAsDate = Date.from(checkoutDate.atZone(ZoneId.systemDefault()).toInstant());
|
||||
for(CfgOperaView o :teamOpera) {
|
||||
Date startTime = o.getStartDate();
|
||||
Date endTime = o.getEndDate();
|
||||
if((!startTime.after(checkinAsDate))
|
||||
&& (!endTime.before(checkoutAsDate))) {
|
||||
blockCode = o.getBlockCodeName();
|
||||
opera = o;
|
||||
}
|
||||
@@ -195,7 +196,7 @@ public class BookingService {
|
||||
booking.setHotelCode(property.getCode());
|
||||
booking.setRoomTypeId(roomTypeId);
|
||||
// booking.setOperaProfileId(Long.valueOf(String.valueOf(operaId.get(0))));
|
||||
booking.setDlBlockId(blockCode);
|
||||
booking.setBlockCode(blockCode);
|
||||
booking.setRatePlanCode(opera.getRateCode().getCode());
|
||||
booking.setRoomTypeCode(roomType.getCode());
|
||||
booking.setMarketCode(opera.getMarketCode().getCode());
|
||||
@@ -215,6 +216,7 @@ public class BookingService {
|
||||
booking.setItemCode(item.getId()!=null?item.getDlCode():null);
|
||||
booking.setFeatureCode(special);
|
||||
booking.setRoom(room.getName());
|
||||
booking.setSectionName(cfgSections.getName());
|
||||
|
||||
booking.setCategory(property.getCategory());
|
||||
|
||||
@@ -224,6 +226,108 @@ public class BookingService {
|
||||
processResult.setReturnData(booking);
|
||||
return processResult;
|
||||
}
|
||||
|
||||
private ServiceResult createDayligtBooking(Map<String,Object> param, HttpServletRequest request) {
|
||||
ServiceResult processResult= new ServiceResult();
|
||||
LocalDateTime createDate = LocalDateTime.now();
|
||||
Bookings booking = new Bookings();
|
||||
String playerId = String.valueOf(param.get("playerId"));
|
||||
Long blockId = Long.valueOf(String.valueOf(param.get("blockId")));
|
||||
Long propertyId = Long.valueOf(String.valueOf(param.get("propertyId")));
|
||||
Long roomId = Long.valueOf(String.valueOf(param.get("roomId")));
|
||||
Long roomTypeId = Long.valueOf(String.valueOf(param.get("roomTypeId")));
|
||||
String special = param.get("specialIds")!=null?String.valueOf(param.get("specialIds")):null;
|
||||
String sharer = param.get("sharer")!=null?String.valueOf(param.get("sharer")):null;
|
||||
String remark = param.get("remark")!=null?String.valueOf(param.get("remark")):null;
|
||||
Boolean isWaitlist = Boolean.valueOf(String.valueOf(param.get("isWaitlist")));
|
||||
HashMap member = (HashMap)param.get("member");
|
||||
List operaId = (List)member.get("nameId");
|
||||
List selectDate = (List)param.get("selectDate");
|
||||
LocalDateTime checkinDate = DateTimeUtil.getDateFromString(String.valueOf(selectDate.get(0)), "yyyy-MM-dd");
|
||||
LocalDateTime checkoutDate = DateTimeUtil.getDateFromString(String.valueOf(selectDate.get(1)), "yyyy-MM-dd");
|
||||
String numOfNight = DateTimeUtil.getDiffDate(checkinDate, checkoutDate, "day");
|
||||
CfgProperties property = propertyDao.findById(propertyId).orElse(null);
|
||||
CfgBlocks block = blockDao.getById(blockId);
|
||||
CfgRooms room = roomDao.getById(roomId);
|
||||
CfgRoomTypes roomType = roomTypeDao.getById(roomTypeId);
|
||||
CfgTiers tier = tierDao.findByTierName(String.valueOf(member.get("tier")));
|
||||
CfgItemInventory item = new CfgItemInventory();
|
||||
if(tier!=null&&blockId!=null&&roomTypeId!=null) {
|
||||
item = itemDao.findByTierIdAndRoomId(Long.valueOf(tier.getId()),roomId);
|
||||
}
|
||||
String oldToken = request.getHeader("Authorization");
|
||||
// oldToken = oldToken.substring(6);
|
||||
String userId = JWT.decode(oldToken).getClaim("login_id").asString();
|
||||
Map<String, Object> user = (Map<String, Object>) param.get("user");
|
||||
Long teamStructureId = user.get("teamStructureId") != null ? Long.valueOf(String.valueOf(param.get("teamStructureId"))) : null;
|
||||
CfgTeamStructure cfgTeamStructure = teamStructureDao.findById(teamStructureId).orElse(null);
|
||||
Long sectionId = cfgTeamStructure.getSectionId();
|
||||
|
||||
CfgSections cfgSections = sectionDao.findById(sectionId).orElse(null);
|
||||
|
||||
List<CfgDaylightView> operas = daylightViewDao.findByPropertyIdAndBookingTypeId(propertyId,blockId);
|
||||
List<CfgDaylightView> teamOpera = new ArrayList();
|
||||
CfgDaylightView opera = new CfgDaylightView();
|
||||
for(CfgDaylightView o :operas) {
|
||||
for(CfgRoomTypes r :o.getDaylightRoomType()) {
|
||||
if(Objects.equals(r.getId(), roomTypeId)) {
|
||||
teamOpera.add(o);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String blockCode = null;
|
||||
for(CfgDaylightView o :teamOpera) {
|
||||
LocalDateTime startTime = o.getStartDate();
|
||||
LocalDateTime endTime = o.getEndDate();
|
||||
if((startTime.isBefore(checkinDate) || startTime.isEqual(checkinDate))
|
||||
&& (endTime.isAfter(checkoutDate) || endTime.isEqual(checkoutDate))) {
|
||||
blockCode = o.getBlockCodeName();
|
||||
opera = o;
|
||||
}
|
||||
}
|
||||
|
||||
booking.setId(null);
|
||||
booking.setPlayerId(playerId);
|
||||
booking.setMemberTitle(String.valueOf(member.get("salutation")));
|
||||
// booking.setMemberFirstName(memberFirstName);
|
||||
booking.setMemberLastName(String.valueOf(member.get("name")));
|
||||
booking.setCheckinDate(checkinDate);
|
||||
booking.setCheckoutDate(checkoutDate);
|
||||
booking.setPropertyId(propertyId);
|
||||
booking.setHotelCode(property.getCode());
|
||||
booking.setRoomTypeId(roomTypeId);
|
||||
// booking.setOperaProfileId(Long.valueOf(String.valueOf(operaId.get(0))));
|
||||
booking.setBlockCode(blockCode);
|
||||
booking.setRatePlanCode(opera.getRateCode().getCode());
|
||||
booking.setRoomTypeCode(roomType.getCode());
|
||||
booking.setMarketCode(opera.getMarketCode().getCode());
|
||||
booking.setDlSourceId(opera.getSourceCode().getDlSourceId());
|
||||
booking.setSourceCode(opera.getSourceCode().getCode());
|
||||
booking.setCreatedAt(createDate);
|
||||
booking.setCreatedBy(JWT.decode(oldToken).getSubject());
|
||||
booking.setSectionId(sectionId);
|
||||
booking.setApproveStatus(isWaitlist?"W":"PN");
|
||||
booking.setRemark(remark);
|
||||
booking.setBookType("0");
|
||||
booking.setBlock(block.getName());
|
||||
booking.setNumOfNight(Integer.valueOf(numOfNight));
|
||||
// booking.setTeamName(team.getCode());
|
||||
booking.setBooker(userId);
|
||||
booking.setSharer(sharer);
|
||||
booking.setItemCode(item.getId()!=null?item.getDlCode():null);
|
||||
booking.setFeatureCode(special);
|
||||
booking.setRoom(room.getName());
|
||||
booking.setSectionName(cfgSections.getName());
|
||||
|
||||
booking.setCategory(property.getCategory());
|
||||
|
||||
Bookings newBooking= bookingDao.save(booking);
|
||||
|
||||
processResult.setSuccess(true);
|
||||
processResult.setReturnData(booking);
|
||||
return processResult;
|
||||
}
|
||||
|
||||
public ServiceResult updateBooking(Bookings booking) {
|
||||
ServiceResult processResult= new ServiceResult();
|
||||
|
||||
Reference in New Issue
Block a user