This commit is contained in:
Mauve
2026-09-11 10:10:08 +08:00
parent 078ba3c713
commit 1e995fec4d
15 changed files with 3104 additions and 35 deletions
+1 -1
View File
@@ -133,7 +133,7 @@
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
<version>1.23.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -122,7 +122,6 @@ public class ApprovalService {
@Autowired
private BookingControlMsgSender ctrlMsgSender;
@Lazy
@Autowired
private BookingService bookingService;
@@ -52,7 +52,6 @@ import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
@Slf4j
@Service
@@ -588,6 +587,9 @@ public class DaylightService {
if (string.contains("InProgress")) {
inProgressCount++;
}
// 让进程暂停1.5秒 by Mauve 20260909
TimeUnit.MILLISECONDS.sleep(1500L);
} while ((responseData.contains("InProgress") || responseData.contains("NotRun")) && notRunCount < 20 && inProgressCount < 50);
jsonObject = JSON.parseObject(responseData);
@@ -161,11 +161,11 @@ public class CreateBookingRequest {
this.requestString.append(" <c:CharacterValue>"+this.booking.getMiscCharge() +"</c:CharacterValue>");
this.requestString.append(" </c:UserDefinedValue>");
}
// if(this.booking.getApprovalReason()!=null) {
// this.requestString.append(" <c:UserDefinedValue valueName=\"App.Rea\">");
// this.requestString.append(" <c:CharacterValue>"+this.booking.getApprovalReason() +"</c:CharacterValue>");
// this.requestString.append(" </c:UserDefinedValue>");
// }
if(this.booking.getApprovalReason()!=null) {
this.requestString.append(" <c:UserDefinedValue valueName=\"App.Rea\">");
this.requestString.append(" <c:CharacterValue>"+this.booking.getApprovalReason() +"</c:CharacterValue>");
this.requestString.append(" </c:UserDefinedValue>");
}
this.requestString.append(" </r:UserDefinedValues>");
this.requestString.append(" </HotelReservation>");
this.requestString.append(" </CreateBookingRequest>");
@@ -26,4 +26,5 @@ public class BookingQueryRequest extends BaseQueryRequest {
private String permissionGroup;
private List<Long> searchRoomId;
private List<Long> searchRoomTypeId;
private String searchApproverId;
}
@@ -246,6 +246,18 @@ public class BookingsView implements Serializable {
private Integer bookingTypeId;
@Column(name="opera_profile_id")
private Long operaProfileId;
@Column(name="approval_reason")
private String approvalReason;
@Column(name="approver_id")
private String approverId;
@Column(name="approver_name")
private String approverName;
@Column(name="opera_comment")
private String operaComment;
@Column(name="fail_platform")
private String failPlatform;
@Column(name="booking_approval_reason")
private String bookingApprovalReason;
@Transient
private String status;
@@ -240,6 +240,7 @@ public class BookingService {
CfgProperties property = propertyDao.getById(propertyId);
String miscCharge = param.getMiscCharge();
String etaTime = param.getEtaTime();
String sectionName = param.getSectionName();
List<Bookings> resultBookings = new ArrayList<>();
@@ -306,7 +307,6 @@ public class BookingService {
booking.setRemark(remark);
booking.setBookType("0");
// booking.setDlBlockId(blockName);
booking.setBlockCode(blockName);
booking.setBooker(userName);
booking.setBedTypeMasterGroupId(bedTypeMasterGroupId);
@@ -315,8 +315,8 @@ public class BookingService {
booking.setSharer(JSONArray.toJSONString(sharer));
booking.setBookingTypeId(bookingTypeId);
booking.setMember(JSONObject.toJSONString(member));
booking.setCategory(property.getCategory());
booking.setSectionName(sectionName);
booking.setEta(etaTime);
// 设置mischarge
@@ -575,6 +575,7 @@ public class BookingService {
Integer depositType = param.getDepositType();
Integer isPost = param.getIsPost();
Long roomTypeId;
String sectionName = param.getSectionName();
CfgProperties property = propertyDao.getById(propertyId);
@@ -659,6 +660,7 @@ public class BookingService {
booking.setBookingTypeId(bookingTypeId);
booking.setMember(JSONObject.toJSONString(member));
booking.setCategory(property.getCategory());
booking.setSectionName(sectionName);
// 设置etaTime
if (StringUtils.isNotBlank(etaTime))
@@ -693,7 +695,7 @@ public class BookingService {
}
String bookRemark = dateItem.getRemark();
if (!StringUtils.isEmpty(bookRemark))
if (StringUtils.isNotEmpty(bookRemark))
booking.setRemark(bookRemark);
if (isPost != null) {
dateItem.setIsPost(isPost);
@@ -714,7 +716,6 @@ public class BookingService {
item = itemDao.findByTierIdAndRoomId(tier.getId(), roomId);
}
if (item != null)
booking.setItemCode(item.getId() != null ? item.getAmenityPackageCode() : null);
@@ -4560,6 +4561,10 @@ public class BookingService {
list.add(cb.like(cb.upper(root.get("approvedBy")),
"%" + queryFilter.getSearchApproverName().toUpperCase() + "%"));
}
if (StringUtils.isNotBlank(queryFilter.getSearchApproverId())) {
list.add(cb.like(cb.upper(root.get("approverId")),
"%" + queryFilter.getSearchApproverId().toUpperCase() + "%"));
}
if (StringUtils.isNotBlank(queryFilter.getSearchBookerName())) {
list.add(cb.like(cb.upper(root.get("booker")),
"%" + queryFilter.getSearchBookerName().toUpperCase() + "%"));
+1
View File
@@ -124,6 +124,7 @@ relying_party: MCRM_APP
ad_domain: willtechmacau.com
adfs_domain: adserver.willtechmacau.com
adfs_secret_key: uBdUx82vPHkDKb284d7NkjFoNcKWBuka
allow_key: U2FsdGVkX19JXgsp9IZ+cr6P67KVShdWWRX5niRURIk=
host_name: mcrm
adfs_request_timeout: 10000
adfs_login_timeout: 60000
+7
View File
@@ -1,3 +1,10 @@
spring:
profiles:
active: dev
# Calendar r566 pen-test follow-up; enable explicitly only in a controlled environment.
springdoc:
api-docs:
enabled: false
swagger-ui:
enabled: false
@@ -8,19 +8,19 @@
"ActionDate":"2025-10-20T00:00:00",
"OperaConfirmationNo":"Ascott;ForDefect001,Ascott;ForDefect002",
"TierName": "A",
"ChineseName": "陳大文",
"ChineseName": "陳大文",
"EnglishName": "Chan Tai Man",
"Salutation": "Mr.",
"HasArrivalRecord": 1,
"HasDepartureRecord": 0,
"HasInhouseRecord": 0,
"HasOthersRecord": 0,
"HasLimoRecord": 1,
"HasFlightRecord": 1,
"HasLimoRecord": -1,
"HasFlightRecord": 0,
"ETA": "15:00",
"BigWinFlag": 0,
"BigLossFlag": 0,
"NoPlayFlag": 0,
"NoPlayFlag": 2,
"MAId": 123456,
"MA": "Jojo Chan",
"Descriptions": [
@@ -35,19 +35,19 @@
"ActionDate":"2025-10-20T00:00:00",
"OperaConfirmationNo":"Ascott;101235,MO;102226",
"TierName": "A",
"ChineseName": "梁大文",
"ChineseName": "梁大文",
"EnglishName": "Leong Tai Man",
"Salutation": "Mr.",
"HasArrivalRecord": 1,
"HasDepartureRecord": 1,
"HasInhouseRecord": 1,
"HasOthersRecord": 0,
"HasLimoRecord": 0,
"HasFlightRecord": 1,
"HasLimoRecord": -1,
"HasFlightRecord": 0,
"ETA": "16:40",
"BigWinFlag": 0,
"BigLossFlag": 0,
"NoPlayFlag": 0,
"NoPlayFlag": 2,
"MAId": 123456,
"MA": "Jojo Chan",
"Descriptions": [
@@ -62,7 +62,7 @@
"ActionDate":"2025-10-20T00:00:00",
"OperaConfirmationNo":"2387461,235612,2134897",
"TierName": "A",
"ChineseName": "李美美",
"ChineseName": "李美美",
"EnglishName": "Lei MeiMei",
"Salutation": "MS.",
"HasArrivalRecord": 1,
@@ -74,7 +74,7 @@
"ETA": "15:59",
"BigWinFlag": 0,
"BigLossFlag": 0,
"NoPlayFlag": 0,
"NoPlayFlag": 2,
"MAId": 123456,
"MA": "Jojo Chan",
"Descriptions": [
@@ -88,7 +88,7 @@
"ActionDate":"2025-10-20T00:00:00",
"OperaConfirmationNo":"Ascott;123345",
"TierName": "A",
"ChineseName": "李美美",
"ChineseName": "李美美",
"EnglishName": "Rebecca",
"Salutation": "MS.",
"HasArrivalRecord": 0,
@@ -100,7 +100,7 @@
"ETA": "17:00",
"BigWinFlag": 0,
"BigLossFlag": 0,
"NoPlayFlag": 0,
"NoPlayFlag": 2,
"MAId": 123456,
"MA": "Jojo Chan",
"Descriptions": [
@@ -114,7 +114,7 @@
"ActionDate":"2025-10-16T00:00:00",
"OperaConfirmationNo":"2387461,235612,2134897",
"TierName": "A",
"ChineseName": "王莉莉",
"ChineseName": "王莉莉",
"EnglishName": "Wong Lily",
"Salutation": "MS.",
"HasArrivalRecord": 0,
@@ -140,7 +140,7 @@
"ActionDate":"2025-10-17T00:00:00",
"OperaConfirmationNo":"2387461,235612,2134897",
"TierName": "A",
"ChineseName": "陈旭文",
"ChineseName": "陈旭文",
"EnglishName": "Chen XuMan",
"Salutation": "MS.",
"HasArrivalRecord": 1,
@@ -166,7 +166,7 @@
"ActionDate":"2025-10-16T00:00:00",
"OperaConfirmationNo":"2387461,235612,2134897",
"TierName": "A",
"ChineseName": "陈旭文",
"ChineseName": "陈旭文",
"EnglishName": "Chen XuMan",
"Salutation": "MS.",
"HasArrivalRecord": 0,
@@ -192,7 +192,7 @@
"ActionDate":"2025-10-15T00:00:00",
"OperaConfirmationNo":"2387461,235612,2134897",
"TierName": "A",
"ChineseName": "陈旭文",
"ChineseName": "陈旭文",
"EnglishName": "Chen XuMan",
"Salutation": "MS.",
"HasArrivalRecord": 1,
@@ -15,8 +15,8 @@
"HasDepartureRecord": 0,
"HasInhouseRecord": 1,
"HasOthersRecord": 0,
"HasLimoRecord": 1,
"HasFlightRecord": 1,
"HasLimoRecord": -1,
"HasFlightRecord": 0,
"ETA": "13:45",
"BigWinFlag": 0,
"BigLossFlag": 1,
@@ -41,8 +41,8 @@
"HasDepartureRecord": 1,
"HasInhouseRecord": 1,
"HasOthersRecord": 0,
"HasLimoRecord": 1,
"HasFlightRecord": 1,
"HasLimoRecord": -1,
"HasFlightRecord": 0,
"ETA": "13:45",
"BigWinFlag": 1,
"BigLossFlag": 0,
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,438 @@
{
"StatusCode": "OK",
"StatusDescription": "Success",
"Records": [
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-21T00:00:00",
"RoomCriteria": "10000",
"RoomCount": 231,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-22T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 230,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-23T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 229,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-24T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 228,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-25T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 227,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-26T00:00:00",
"RoomCriteria": null,
"RoomCount": 226,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-27T00:00:00",
"RoomCriteria": "Waitlist",
"RoomCount": 225,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-28T00:00:00",
"RoomCriteria": "12000",
"RoomCount": 224,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-29T00:00:00",
"RoomCriteria": "10000",
"RoomCount": 223,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-30T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 222,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-07-31T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 238,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-01T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 237,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-02T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 236,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-03T00:00:00",
"RoomCriteria": null,
"RoomCount": 235,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-04T00:00:00",
"RoomCriteria": "Waitlist",
"RoomCount": 234,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-05T00:00:00",
"RoomCriteria": "12000",
"RoomCount": 233,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-06T00:00:00",
"RoomCriteria": "10000",
"RoomCount": 232,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-07T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 231,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-08T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 230,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-09T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 229,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-10T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 228,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-11T00:00:00",
"RoomCriteria": null,
"RoomCount": 227,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-12T00:00:00",
"RoomCriteria": "Waitlist",
"RoomCount": 226,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-13T00:00:00",
"RoomCriteria": "12000",
"RoomCount": 225,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-14T00:00:00",
"RoomCriteria": "10000",
"RoomCount": 224,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-15T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 223,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-16T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 222,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-17T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 238,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-18T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 237,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-19T00:00:00",
"RoomCriteria": null,
"RoomCount": 236,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-20T00:00:00",
"RoomCriteria": "Waitlist",
"RoomCount": 235,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-21T00:00:00",
"RoomCriteria": "12000",
"RoomCount": 234,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-22T00:00:00",
"RoomCriteria": "10000",
"RoomCount": 233,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-23T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 232,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-24T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 231,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-25T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 230,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-26T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 229,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-27T00:00:00",
"RoomCriteria": null,
"RoomCount": 228,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-28T00:00:00",
"RoomCriteria": "Waitlist",
"RoomCount": 227,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-29T00:00:00",
"RoomCriteria": "12000",
"RoomCount": 226,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-30T00:00:00",
"RoomCriteria": "10000",
"RoomCount": 225,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-08-31T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 224,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-09-01T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 223,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-09-02T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 222,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-09-03T00:00:00",
"RoomCriteria": "1000",
"RoomCount": 238,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-09-04T00:00:00",
"RoomCriteria": null,
"RoomCount": 237,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-09-05T00:00:00",
"RoomCriteria": "Waitlist",
"RoomCount": 236,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
},
{
"Property": "MGM Cotai",
"RoomType": "CR",
"Date": "2026-09-06T00:00:00",
"RoomCriteria": "12000",
"RoomCount": 235,
"PropertyLeader": "Kelvin",
"BookingDateQualificationFlag": 0
}
]
}
File diff suppressed because it is too large Load Diff