update
This commit is contained in:
@@ -27,6 +27,12 @@
|
||||
"dataType": "String",
|
||||
"columnWidth":30
|
||||
},
|
||||
{
|
||||
"columnHeader":"Category",
|
||||
"attrName": "category",
|
||||
"dataType": "String",
|
||||
"columnWidth":30
|
||||
},
|
||||
{
|
||||
"columnHeader":"Created Time",
|
||||
"attrName": "createdAt",
|
||||
|
||||
@@ -20,13 +20,6 @@
|
||||
"attrName": "emailName",
|
||||
"dataType": "String"
|
||||
},
|
||||
{
|
||||
"columnHeader":"Hotel Code",
|
||||
"checkHeader":true,
|
||||
"headerRowIdx":0,
|
||||
"attrName": "hotelCode",
|
||||
"dataType": "String"
|
||||
},
|
||||
{
|
||||
"columnHeader":"Property Code",
|
||||
"checkHeader":true,
|
||||
@@ -47,6 +40,20 @@
|
||||
"headerRowIdx":0,
|
||||
"attrName": "sortOrderVal",
|
||||
"dataType": "String"
|
||||
},
|
||||
{
|
||||
"columnHeader":"Created Time",
|
||||
"checkHeader":true,
|
||||
"headerRowIdx":0,
|
||||
"attrName": "createdTime",
|
||||
"dataType": "String"
|
||||
},
|
||||
{
|
||||
"columnHeader":"Updated Time",
|
||||
"checkHeader":true,
|
||||
"headerRowIdx":0,
|
||||
"attrName": "updatedTime",
|
||||
"dataType": "String"
|
||||
}
|
||||
]
|
||||
}]
|
||||
|
||||
@@ -6,8 +6,9 @@
|
||||
"offsetRow": 1,
|
||||
"offsetCol": 0,
|
||||
"objClassName": "com.mgm.mcrm.common.dtos.dataimport.appsetting.RoomTypeImportRow",
|
||||
"columnDefs": [{
|
||||
"columnHeader":"Room Type",
|
||||
"columnDefs": [
|
||||
{
|
||||
"columnHeader":"Code",
|
||||
"checkHeader":true,
|
||||
"headerRowIdx":0,
|
||||
"attrName": "name",
|
||||
@@ -19,6 +20,15 @@
|
||||
"headerRowIdx":0,
|
||||
"attrName": "nameCN",
|
||||
"dataType": "String"
|
||||
},
|
||||
{
|
||||
"columnHeader":"Category",
|
||||
"checkHeader":true,
|
||||
"optionalHeader":true,
|
||||
"headerRowIdx":0,
|
||||
"attrName": "category",
|
||||
"dataType": "String",
|
||||
"columnWidth":30
|
||||
}
|
||||
]
|
||||
}]
|
||||
|
||||
@@ -20,15 +20,15 @@
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<java.version>21</java.version>
|
||||
<tomcat.version>11.0.25</tomcat.version>
|
||||
<tomcat.version>11.0.26</tomcat.version>
|
||||
<netty.version>4.2.18.Final</netty.version>
|
||||
<httpclient5.version>5.6.4</httpclient5.version>
|
||||
<httpclient5-win.version>5.2.3</httpclient5-win.version>
|
||||
<httpcore5.version>5.4.3</httpcore5.version>
|
||||
<activemq.version>6.2.7</activemq.version>
|
||||
<fasterxml.jackson.version>2.22.3</fasterxml.jackson.version>
|
||||
<tools.jackson.version>3.2.3</tools.jackson.version>
|
||||
<log4j2.version>2.26.1</log4j2.version>
|
||||
<hibernate-validator.version>9.2.0.Beta1</hibernate-validator.version>
|
||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||
<activemq.version>6.3.1</activemq.version>
|
||||
@@ -94,6 +94,11 @@
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-mail</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jakarta.validation</groupId>
|
||||
<artifactId>jakarta.validation-api</artifactId>
|
||||
<version>4.0.0-M1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-validation</artifactId>
|
||||
@@ -176,7 +181,7 @@
|
||||
<dependency>
|
||||
<groupId>com.auth0</groupId>
|
||||
<artifactId>java-jwt</artifactId>
|
||||
<version>4.5.0</version>
|
||||
<version>4.6.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jsmpp</groupId>
|
||||
@@ -251,6 +256,23 @@
|
||||
<source>${java.version}</source>
|
||||
<target>${java.version}</target>
|
||||
<encoding>UTF-8</encoding>
|
||||
<annotationProcessorPaths>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
<version>${lombok.version}</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok-mapstruct-binding</artifactId>
|
||||
<version>0.2.0</version>
|
||||
</path>
|
||||
<path>
|
||||
<groupId>org.mapstruct</groupId>
|
||||
<artifactId>mapstruct-processor</artifactId>
|
||||
<version>1.6.3</version>
|
||||
</path>
|
||||
</annotationProcessorPaths>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
|
||||
@@ -141,22 +141,22 @@ public class PlayerService {
|
||||
ServiceResult result = new ServiceResult();
|
||||
JSONObject requestObj = new JSONObject();
|
||||
if(!StringUtils.isEmpty(playerId)) {
|
||||
requestObj.put("playerId", playerId);
|
||||
requestObj.put("PlayerId", playerId);
|
||||
}
|
||||
if(!StringUtils.isEmpty(roomCate)) {
|
||||
requestObj.put("roomCat", roomCate);
|
||||
requestObj.put("RoomCat", roomCate);
|
||||
}
|
||||
if(dateRange != null) {
|
||||
requestObj.put("dateRange", dateRange);
|
||||
requestObj.put("DateRange", dateRange);
|
||||
}
|
||||
if(dates != null) {
|
||||
requestObj.put("dates", dates);
|
||||
requestObj.put("Dates", dates);
|
||||
}
|
||||
if(!StringUtils.isEmpty(bookingType)) {
|
||||
requestObj.put("bookingType", bookingType);
|
||||
requestObj.put("BookingType", bookingType);
|
||||
}
|
||||
if(!StringUtils.isEmpty(property)) {
|
||||
requestObj.put("property", property);
|
||||
requestObj.put("Property", property);
|
||||
}
|
||||
HttpResponseResult httpResult = HttpUtil.invokeWebAPI(requestObj, "POST", request, null);
|
||||
String content = httpResult.getResponseContent();
|
||||
|
||||
@@ -30,8 +30,8 @@ public class SysSettingService {
|
||||
|
||||
public Boolean isAPPMock() {
|
||||
SysSetting sysSetting = new SysSetting();
|
||||
// sysSetting = sysSettingDao.getBySettingKey("APP_MOCK");
|
||||
sysSetting.setSettingValue("1");
|
||||
sysSetting = sysSettingDao.getBySettingKey("APP_MOCK");
|
||||
// sysSetting.setSettingValue("1");
|
||||
Boolean isMock = Strings.CS.equals(sysSetting.getSettingValue(), "1");
|
||||
return isMock;
|
||||
}
|
||||
|
||||
@@ -134,6 +134,8 @@ public class RoomCriteriaDaylightService {
|
||||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
||||
};
|
||||
|
||||
private static final int AUTO_SYNC_ALLOTMENT_DAYS = 15;
|
||||
|
||||
public ServiceResult createRoomCriteria(CfgRoomCriteriaDaylightRequest criteriaRequest) {
|
||||
ServiceResult processResult = new ServiceResult();
|
||||
LocalDateTime createDate = LocalDateTime.now();
|
||||
@@ -1521,4 +1523,93 @@ public class RoomCriteriaDaylightService {
|
||||
return calculateRequests;
|
||||
}
|
||||
|
||||
/**
|
||||
* 自动同步入口:当 cfg_room_criteria_daylight 完全为空时触发。
|
||||
* 遍历所有 category=DAYLIGHT 的物业,逐个以"今天 ~ 今天+15天"拉取其全部 block 的 allotment;
|
||||
* 单个物业出错或无 block 则跳过该物业,继续处理下一个。
|
||||
*/
|
||||
public AjaxResult syncAllDaylightAllotmentIfEmpty() {
|
||||
AjaxResult result = new AjaxResult();
|
||||
try {
|
||||
if (criteriaDaylightDao.count() > 0) {
|
||||
result.setSuccess(true);
|
||||
result.setMessage("Allotment already has data, skip auto sync");
|
||||
return result;
|
||||
}
|
||||
|
||||
List<CfgProperties> daylightProperties = propertyDao.findByCategory("DAYLIGHT");
|
||||
if (daylightProperties == null || daylightProperties.isEmpty()) {
|
||||
result.setSuccess(false);
|
||||
result.setMessage("No DAYLIGHT property found for auto allotment sync");
|
||||
return result;
|
||||
}
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||
LocalDate today = LocalDate.now();
|
||||
String fromDate = today.format(formatter);
|
||||
String toDate = today.plusDays(AUTO_SYNC_ALLOTMENT_DAYS).format(formatter);
|
||||
|
||||
int successCount = 0;
|
||||
int skipCount = 0;
|
||||
List<String> failedProperties = new ArrayList<>();
|
||||
for (CfgProperties property : daylightProperties) {
|
||||
String dlPropertyId = property.getDlPropertyId();
|
||||
Long propertyId = property.getId();
|
||||
if (StringUtils.isBlank(dlPropertyId) || propertyId == null) {
|
||||
skipCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
List<CfgBlockCodes> blockCodes = blockCodeDao.findAllByPropertyIdAndDlBlockIdIsNotNull(propertyId);
|
||||
if (blockCodes == null || blockCodes.isEmpty()) {
|
||||
log.warn("[AUTO_SYNC]No Daylight block code found for property[{}], skip", dlPropertyId);
|
||||
skipCount++;
|
||||
continue;
|
||||
}
|
||||
List<String> dlBlockCodeIds = new ArrayList<>();
|
||||
for (CfgBlockCodes blockCode : blockCodes) {
|
||||
dlBlockCodeIds.add(blockCode.getDlBlockId());
|
||||
}
|
||||
|
||||
SyncDaylightAllotmentRequest syncRequest = new SyncDaylightAllotmentRequest();
|
||||
syncRequest.setDlPropertyId(dlPropertyId);
|
||||
syncRequest.setFromDate(fromDate);
|
||||
syncRequest.setToDate(toDate);
|
||||
syncRequest.setDlBlockCodeIds(dlBlockCodeIds);
|
||||
|
||||
try {
|
||||
AjaxResult syncResult = this.syncCalendarAllotment(syncRequest);
|
||||
if (syncResult != null && syncResult.isSuccess()) {
|
||||
successCount++;
|
||||
log.info("[AUTO_SYNC]Property[{}] allotment sync done: {}", dlPropertyId, syncResult.getMessage());
|
||||
} else {
|
||||
failedProperties.add(dlPropertyId);
|
||||
log.warn("[AUTO_SYNC]Property[{}] allotment sync failed: {}", dlPropertyId,
|
||||
syncResult != null ? syncResult.getMessage() : "null result");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
failedProperties.add(dlPropertyId);
|
||||
log.error("[AUTO_SYNC]Property[{}] allotment sync error, skip this property: {}", dlPropertyId, e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
StringBuilder message = new StringBuilder();
|
||||
message.append("Auto allotment sync finished. dateRange=").append(fromDate)
|
||||
.append("~").append(toDate)
|
||||
.append(", success=").append(successCount)
|
||||
.append(", skip=").append(skipCount)
|
||||
.append(", fail=").append(failedProperties.size());
|
||||
if (!failedProperties.isEmpty()) {
|
||||
message.append(", failed properties=[").append(StringUtils.join(failedProperties, ",")).append("]");
|
||||
}
|
||||
result.setSuccess(failedProperties.isEmpty() && successCount > 0);
|
||||
result.setMessage(message.toString());
|
||||
} catch (Exception err) {
|
||||
result.setSuccess(false);
|
||||
result.setMessage("Failed to auto sync Daylight allotment:" + err.getMessage());
|
||||
log.error("Failed to auto sync Daylight allotment :{}", err.getMessage());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@ public class RequestReasonController {
|
||||
@Resource
|
||||
private SysLogOperationService sysAuditLogService;
|
||||
|
||||
@CheckPermission(routerId="00502",permissionCode="ADD")
|
||||
@CheckPermission(routerId="00602",permissionCode="ADD")
|
||||
@OperationLog(eventCode = "request_reason_create")
|
||||
@RequestMapping(value = "/approval/request_reason/create", method = RequestMethod.POST, produces = "application/json;charset=UTF-8",consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public AjaxResult createRequestReason(HttpServletRequest request, @RequestBody CfgRequestReason requestReason) {
|
||||
@@ -69,7 +69,7 @@ public class RequestReasonController {
|
||||
return processResult;
|
||||
}
|
||||
|
||||
@CheckPermission(routerId="00502",permissionCode="MODIFY")
|
||||
@CheckPermission(routerId="00602",permissionCode="MODIFY")
|
||||
@OperationLog(eventCode="request_reason_update")
|
||||
@RequestMapping(value = "/approval/request_reason/update", method = RequestMethod.POST, produces = "application/json;charset=UTF-8",consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public AjaxResult updateRequestReason(HttpServletRequest request, @RequestBody CfgRequestReason requestReason) {
|
||||
@@ -114,7 +114,7 @@ public class RequestReasonController {
|
||||
return processResult;
|
||||
}
|
||||
|
||||
@CheckPermission(routerId="00502",permissionCode="VIEW")
|
||||
@CheckPermission(routerId="00602",permissionCode="VIEW")
|
||||
@RequestMapping(value = "/approval/request_reason/get", method = RequestMethod.POST, produces = "application/json;charset=UTF-8",consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public AjaxResult getRequestReasonById(HttpServletRequest request, @RequestBody(required=false) Map<String,Object> queryParas) {
|
||||
boolean isSuccess = false;
|
||||
@@ -140,7 +140,7 @@ public class RequestReasonController {
|
||||
return processResult;
|
||||
}
|
||||
|
||||
@CheckPermission(routerId="00502",permissionCode="REMOVE")
|
||||
@CheckPermission(routerId="00602",permissionCode="REMOVE")
|
||||
@OperationLog(eventCode="request_reason_delete")
|
||||
@RequestMapping(value = "/approval/request_reason/delete", method = RequestMethod.POST, produces = "application/json;charset=UTF-8",consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public AjaxResult deleteRequestReason(HttpServletRequest request, @RequestBody CfgRequestReason requestReason) {
|
||||
@@ -184,7 +184,7 @@ public class RequestReasonController {
|
||||
return processResult;
|
||||
}
|
||||
|
||||
@CheckPermission(routerId="00502",permissionCode="VIEW")
|
||||
@CheckPermission(routerId="00602",permissionCode="VIEW")
|
||||
@RequestMapping(value = "/approval/request_reason/get_page", produces = "application/json;charset=UTF-8",consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public AjaxResult getRequestReasonByPage(HttpServletRequest request,@RequestBody(required=false) Map<String,Object> queryParas) throws Exception {
|
||||
QueryFilter queryFilter = (queryParas!=null?new QueryFilter(queryParas):new QueryFilter(request));
|
||||
|
||||
@@ -13,6 +13,7 @@ import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Strings;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.time.Instant;
|
||||
@@ -55,6 +56,11 @@ public class JwtTokenUtil {
|
||||
Instant expDate = now.plus(Duration.ofMinutes(tokeExpiration));
|
||||
String uuid = UUID.randomUUID().toString().replace("-","");
|
||||
|
||||
//在Gen Token之前 將@mgm.mo 後綴去掉
|
||||
if (user.getLoginId() != null){
|
||||
user.setLoginId(Strings.CI.replace(user.getLoginId(),"@mgm.mo", ""));
|
||||
}
|
||||
|
||||
String tokenString = JWT.create()
|
||||
.withIssuer(issueSource)
|
||||
.withIssuedAt(now).withNotBefore(now).withExpiresAt(expDate).withJWTId(uuid)
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.mgm.mcrm.common.dtos.dataimport.ValidateResult;
|
||||
import com.mgm.mcrm.common.dtos.dataimport.appsetting.ExceptionOperaImportRow;
|
||||
import com.mgm.mcrm.common.dtos.excelmodel.ImportDefine;
|
||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
||||
import com.mgm.mcrm.common.utils.ExcelUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.persistence.criteria.Predicate;
|
||||
@@ -37,6 +36,8 @@ import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.ZoneId;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@@ -191,6 +192,7 @@ public class ExceptionOperaService {
|
||||
}
|
||||
|
||||
private Specification<CfgExceptionOpera> buildSpecificationByQueryFilter(QueryFilter queryfilter) {
|
||||
LocalDate today = LocalDate.now();
|
||||
return (root, criteriaQuery, cb) -> {
|
||||
List<Predicate> list = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
||||
@@ -202,14 +204,10 @@ public class ExceptionOperaService {
|
||||
"%" + queryfilter.getString("searchId").trim().toUpperCase() + "%"));
|
||||
}
|
||||
|
||||
List<Long> availableBlockCodes = blockCodeDao.getAvailableBlockCodes(DateTimeUtil.getCurrentDateTime("yyyy-MM-dd"));
|
||||
if (availableBlockCodes == null) {
|
||||
availableBlockCodes = new ArrayList<>();
|
||||
}
|
||||
if (availableBlockCodes.isEmpty()) {
|
||||
availableBlockCodes.add(-1L);
|
||||
}
|
||||
// list.add(root.get("blockCodeId").in(availableBlockCodes));
|
||||
List<Long> availableBlockCodes = blockCodeDao.getAvailableBlockCodes(today.atStartOfDay());
|
||||
list.add(availableBlockCodes == null || availableBlockCodes.isEmpty()
|
||||
? cb.disjunction()
|
||||
: root.get("blockCodeId").in(availableBlockCodes));
|
||||
Predicate[] predicates = new Predicate[list.size()];
|
||||
criteriaQuery.where(list.toArray(predicates));
|
||||
return cb.and(list.toArray(predicates));
|
||||
@@ -217,6 +215,7 @@ public class ExceptionOperaService {
|
||||
}
|
||||
|
||||
private Specification<CfgExceptionOperaView> buildSpecificationViewByQueryFilter(QueryFilter queryfilter) {
|
||||
Date today = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||
return (root, criteriaQuery, cb) -> {
|
||||
List<Predicate> list = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
||||
@@ -227,7 +226,7 @@ public class ExceptionOperaService {
|
||||
list.add(cb.like(cb.upper(root.get("userId")),
|
||||
"%" + queryfilter.getString("searchId").trim().toUpperCase() + "%"));
|
||||
}
|
||||
list.add(cb.greaterThanOrEqualTo(root.get("endDate"), new Date()));
|
||||
list.add(cb.greaterThanOrEqualTo(root.get("endDate"), today));
|
||||
if (queryfilter.getParaObject("pageIds") != null) {
|
||||
List<Long> pageIds = (List<Long>) queryfilter.getParaObject("pageIds");
|
||||
list.add(root.get("id").in(pageIds));
|
||||
|
||||
@@ -29,11 +29,11 @@ import com.mgm.mcrm.common.dtos.dataimport.ValidateResult;
|
||||
import com.mgm.mcrm.common.dtos.dataimport.appsetting.OperaMappingImportRow;
|
||||
import com.mgm.mcrm.common.dtos.excelmodel.ImportDefine;
|
||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
||||
import com.mgm.mcrm.common.utils.ExcelUtils;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||
import jakarta.persistence.criteria.Predicate;
|
||||
import jakarta.persistence.criteria.Root;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.lang3.Strings;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -145,8 +145,6 @@ public class OperaService {
|
||||
}
|
||||
|
||||
public DataTableResult<CfgOperaView> getOperaViewByPage(OperaPageRequest pageRequest) {
|
||||
//--先主表找分页,然后再按照分页结果找View的对象
|
||||
Specification<CfgOpera> listSpec = buildSpecification(pageRequest);
|
||||
int pageSize = pageRequest.getPageSize();
|
||||
int pageStart = pageRequest.getStartRow() / pageSize;
|
||||
String sortProperties = pageRequest.getSortOrder();
|
||||
@@ -159,29 +157,16 @@ public class OperaService {
|
||||
sortProperties = sortProperties.replace("marketCode-", "marketCodeId-");
|
||||
sortProperties = sortProperties.replace("sourceCode-", "sourceCodeId-");
|
||||
sortProperties = sortProperties.replace("bookingType-", "bookingTypeId-");
|
||||
String viewSortProperties = sortProperties;
|
||||
sortProperties = sortProperties.replace("operaRoomType-asc", "");
|
||||
sortProperties = sortProperties.replace("operaRoomType-desc", "");
|
||||
pageRequest.setSortOrder(sortProperties);
|
||||
Sort sort = DaoUtil.buildSortByString(pageRequest.getSortOrder(), "id");
|
||||
Pageable pageable = PageRequest.of(pageStart, pageSize, sort);
|
||||
Page<CfgOpera> resultPage = operaDao.findAll(listSpec, pageable);
|
||||
Page<CfgOperaView> resultPage = operaViewDao.findAll(buildSpecificationView(pageRequest), pageable);
|
||||
DataTableResult<CfgOperaView> dataResult = new DataTableResult<>();
|
||||
dataResult.setTotalRecords(resultPage.getTotalElements());
|
||||
dataResult.setPageSize(pageSize);
|
||||
List<CfgOperaView> resultList = new ArrayList<>();
|
||||
List<CfgOpera> masterPageData = resultPage.getContent();
|
||||
if (masterPageData != null && !masterPageData.isEmpty()) {
|
||||
List<Long> ids = new ArrayList<>();
|
||||
for (CfgOpera item : masterPageData) {
|
||||
ids.add(item.getId());
|
||||
}
|
||||
|
||||
pageRequest.setPageIds(ids);
|
||||
pageRequest.setSortOrder(viewSortProperties);
|
||||
resultList = this.listOperaView(pageRequest);
|
||||
}
|
||||
dataResult.setRowData(resultList);
|
||||
dataResult.setRowData(resultPage.getContent());
|
||||
return dataResult;
|
||||
}
|
||||
|
||||
@@ -191,13 +176,19 @@ public class OperaService {
|
||||
return operaViewDao.findAll(listSpec, sort);
|
||||
}
|
||||
|
||||
private Specification<CfgOpera> buildSpecification(OperaPageRequest pageRequest) {
|
||||
private Specification<CfgOperaView> buildSpecificationView(OperaPageRequest pageRequest) {
|
||||
return (root, criteriaQuery, cb) -> {
|
||||
List<Predicate> list = new ArrayList<>();
|
||||
// if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
||||
// list.add(cb.like(cb.upper(root.get("opera_id")),
|
||||
// "%" + queryfilter.getString("searchName").toUpperCase() + "%"));
|
||||
// }
|
||||
list.add(cb.greaterThanOrEqualTo(root.get("endDate"), new Date()));
|
||||
appendOperaSearchPredicates(list, cb, root, pageRequest);
|
||||
if (pageRequest.getPageIds() != null) {
|
||||
list.add(root.get("id").in(pageRequest.getPageIds()));
|
||||
}
|
||||
return cb.and(list.toArray(new Predicate[0]));
|
||||
};
|
||||
}
|
||||
|
||||
private void appendOperaSearchPredicates(List<Predicate> list, CriteriaBuilder cb, Root<CfgOperaView> root, OperaPageRequest pageRequest) {
|
||||
if (StringUtils.isNotBlank(pageRequest.getSearchBlockCode())) {
|
||||
CriteriaBuilder.In<Long> in = cb.in(root.get("blockCodeId"));
|
||||
List<CfgBlockCodes> blockCode = blockCodeDao.getLikeByCode(pageRequest.getSearchBlockCode());
|
||||
@@ -258,37 +249,6 @@ public class OperaService {
|
||||
list.add(in);
|
||||
}
|
||||
}
|
||||
List<Long> availableBlockCodes = blockCodeDao.getAvailableBlockCodes(DateTimeUtil.getCurrentDateTime("yyyy-MM-dd HH:mm:ss"));
|
||||
if (availableBlockCodes == null) {
|
||||
availableBlockCodes = new ArrayList<>();
|
||||
}
|
||||
if (availableBlockCodes.isEmpty()) {
|
||||
availableBlockCodes.add(-1L);
|
||||
}
|
||||
// list.add(root.get("blockCodeId").in(availableBlockCodes));
|
||||
Predicate[] predicates = new Predicate[list.size()];
|
||||
criteriaQuery.where(list.toArray(predicates));
|
||||
return cb.and(list.toArray(predicates));
|
||||
};
|
||||
}
|
||||
|
||||
private Specification<CfgOperaView> buildSpecificationView(OperaPageRequest pageRequest) {
|
||||
return (root, criteriaQuery, cb) -> {
|
||||
List<Predicate> list = new ArrayList<>();
|
||||
// if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
||||
// list.add(cb.like(cb.upper(root.get("opera_id")),
|
||||
// "%" + queryfilter.getString("searchName").toUpperCase() + "%"));
|
||||
// }
|
||||
list.add(cb.greaterThanOrEqualTo(root.get("endDate"), new Date()));
|
||||
|
||||
if (pageRequest.getPageIds() != null) {
|
||||
list.add(root.get("id").in(pageRequest.getPageIds()));
|
||||
}
|
||||
|
||||
Predicate[] predicates = new Predicate[list.size()];
|
||||
criteriaQuery.where(list.toArray(predicates));
|
||||
return cb.and(list.toArray(predicates));
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -41,4 +41,6 @@ public interface PropertyDao extends JpaRepository<CfgProperties, Long> {
|
||||
CfgProperties getByName(String name);
|
||||
|
||||
CfgProperties findByDlPropertyId(String dlPropertyId);
|
||||
|
||||
List<CfgProperties> findByCategory(String category);
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ import org.springframework.data.domain.Sort.Direction;
|
||||
import org.springframework.data.jpa.domain.Specification;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
||||
import com.mgm.mcrm.common.utils.ExcelUtils;
|
||||
|
||||
@Slf4j
|
||||
@@ -327,14 +328,19 @@ public class PropertyService {
|
||||
for (int i = 0; i < importRows.size(); i++) {
|
||||
PropertyImportRow pItem = importRows.get(i);
|
||||
CfgProperties newProperty = new CfgProperties();
|
||||
newProperty.setShowCalendar(1);
|
||||
newProperty.setStatus(1);
|
||||
newProperty.setDisplayType(1);
|
||||
newProperty.setName(pItem.getName());
|
||||
newProperty.setEmailName(pItem.getEmailName());
|
||||
newProperty.setCategory(pItem.getCategory());
|
||||
newProperty.setCode(pItem.getCode());
|
||||
newProperty.setHotelCode(pItem.getHotelCode());
|
||||
newProperty.setSortOrder(Integer.valueOf(pItem.getSortOrder()));
|
||||
newProperty.setCreatedAt(currentTime);
|
||||
newProperty.setUpdatedAt(currentTime);
|
||||
LocalDateTime createdAt = parseImportDateTime(pItem.getCreatedTime());
|
||||
LocalDateTime updatedAt = parseImportDateTime(pItem.getUpdatedTime());
|
||||
newProperty.setCreatedAt(createdAt != null ? createdAt : currentTime);
|
||||
newProperty.setUpdatedAt(updatedAt != null ? updatedAt : currentTime);
|
||||
newPropertyList.add(newProperty);
|
||||
}
|
||||
propertyDao.saveAll(newPropertyList);
|
||||
@@ -350,4 +356,18 @@ public class PropertyService {
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private LocalDateTime parseImportDateTime(String value) {
|
||||
if (StringUtils.isBlank(value)) {
|
||||
return null;
|
||||
}
|
||||
LocalDateTime parsed = DateTimeUtil.getDateFromString(value, "yyyy-MM-dd'T'HH:mm:ss.SSS");
|
||||
if (parsed == null) {
|
||||
parsed = DateTimeUtil.getDateFromString(value, "yyyy-MM-dd'T'HH:mm:ss");
|
||||
}
|
||||
if (parsed == null) {
|
||||
parsed = DateTimeUtil.getDateFromString(value, "yyyy-MM-dd HH:mm:ss");
|
||||
}
|
||||
return parsed;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -177,6 +177,9 @@ public class RoomTypeService {
|
||||
if (!roomTypeList.isEmpty()) {
|
||||
totalRows = roomTypeList.size();
|
||||
for (RoomTypeImportRow roomTypeImportRow : roomTypeList) {
|
||||
if (StringUtils.isBlank(roomTypeImportRow.getCategory())) {
|
||||
roomTypeImportRow.setCategory("OPERA");
|
||||
}
|
||||
String errMsg = "";
|
||||
boolean isPassed = true;
|
||||
if (StringUtils.isBlank(roomTypeImportRow.getName())) {
|
||||
@@ -267,6 +270,7 @@ public class RoomTypeService {
|
||||
CfgRoomTypes newRoomType = new CfgRoomTypes();
|
||||
newRoomType.setCode(pItem.getName());
|
||||
newRoomType.setNameCN(pItem.getNameCN());
|
||||
newRoomType.setCategory(pItem.getCategory());
|
||||
newRoomType.setCreatedAt(currentTime);
|
||||
newRoomType.setUpdatedAt(currentTime);
|
||||
newRoomTypeList.add(newRoomType);
|
||||
|
||||
@@ -10,6 +10,8 @@ public class PropertyImportRow {
|
||||
private String category;
|
||||
private String hotelCode;
|
||||
private String sortOrderVal;
|
||||
private String createdTime;
|
||||
private String updatedTime;
|
||||
private int sortOrder=0;
|
||||
|
||||
public String getName() {
|
||||
@@ -66,5 +68,17 @@ public class PropertyImportRow {
|
||||
public void setSortOrder(int sortOrder) {
|
||||
this.sortOrder = sortOrder;
|
||||
}
|
||||
public String getCreatedTime() {
|
||||
return createdTime;
|
||||
}
|
||||
public void setCreatedTime(String createdTime) {
|
||||
this.createdTime = createdTime;
|
||||
}
|
||||
public String getUpdatedTime() {
|
||||
return updatedTime;
|
||||
}
|
||||
public void setUpdatedTime(String updatedTime) {
|
||||
this.updatedTime = updatedTime;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,14 @@ public class RoomTypeImportRow {
|
||||
private String errorMessage;
|
||||
private String name;
|
||||
private String nameCN;
|
||||
private String category;
|
||||
|
||||
public String getCategory() {
|
||||
return category;
|
||||
}
|
||||
public void setCategory(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
|
||||
@@ -5,17 +5,10 @@ import com.mgm.mcrm.common.services.ConfigurableTrustHandler;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
|
||||
import org.apache.hc.core5.ssl.SSLContexts;
|
||||
|
||||
import javax.net.ssl.*;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.KeyStore;
|
||||
import java.security.KeyStoreException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
import java.security.cert.CertificateException;
|
||||
|
||||
public class HttpSslSupport {
|
||||
|
||||
@@ -91,33 +84,6 @@ public class HttpSslSupport {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用自定义证书(trustStore)初始化 SSLContext
|
||||
*/
|
||||
public HttpSslSupport customSSL(String keyStorePath, String keyStorepass) {
|
||||
FileInputStream instream = null;
|
||||
try {
|
||||
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
|
||||
instream = new FileInputStream(new File(keyStorePath));
|
||||
trustStore.load(instream, keyStorepass.toCharArray());
|
||||
// 相信自己的 CA 和所有自签名证书
|
||||
this.sc = SSLContexts.custom()
|
||||
.loadTrustMaterial(trustStore, (chain, authType) -> true)
|
||||
.build();
|
||||
return this;
|
||||
} catch (KeyManagementException | KeyStoreException |
|
||||
NoSuchAlgorithmException | CertificateException | IOException e) {
|
||||
throw new RuntimeException("初始化自定义 SSLContext 失败", e);
|
||||
} finally {
|
||||
if (instream != null) {
|
||||
try {
|
||||
instream.close();
|
||||
} catch (IOException ignore) {
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取(或创建)指定协议版本的 {@link SSLContext}
|
||||
|
||||
@@ -116,7 +116,7 @@ public class SysLogBookingService {
|
||||
}
|
||||
|
||||
sysLogBooking.setChangeTo(changeTo);
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
|
||||
}
|
||||
sysLogBookingDao.saveAll(sysLogBookingMapper.toSysLogBookingList(addList));
|
||||
@@ -126,6 +126,22 @@ public class SysLogBookingService {
|
||||
|
||||
}
|
||||
|
||||
// 每条变更记录都必须使用独立实例,避免同一个引用被后续分支反复覆盖/重复入库
|
||||
private SysLogBookingDto cloneLog(SysLogBookingDto src) {
|
||||
SysLogBookingDto copy = new SysLogBookingDto();
|
||||
copy.setId(src.getId());
|
||||
copy.setOccurTime(src.getOccurTime());
|
||||
copy.setEventCode(src.getEventCode());
|
||||
copy.setChangeFrom(src.getChangeFrom());
|
||||
copy.setChangeTo(src.getChangeTo());
|
||||
copy.setLoginName(src.getLoginName());
|
||||
copy.setLoginId(src.getLoginId());
|
||||
copy.setBookId(src.getBookId());
|
||||
copy.setSortOccurtime(src.getSortOccurtime());
|
||||
copy.setIpAddress(src.getIpAddress());
|
||||
return copy;
|
||||
}
|
||||
|
||||
public ArrayList<SysLogBookingDto> saveEditLogBooking(BookingsDto book, HttpServletRequest request, BookingsDto originBook) {
|
||||
ArrayList<SysLogBookingDto> addList = new ArrayList<>();
|
||||
SysLogBookingDto sysLogBooking = new SysLogBookingDto();
|
||||
@@ -148,13 +164,13 @@ public class SysLogBookingService {
|
||||
sysLogBooking.setEventCode("Player");
|
||||
sysLogBooking.setChangeFrom(originBook.getPlayerId());
|
||||
sysLogBooking.setChangeTo(book.getPlayerId());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Strings.CS.equals(book.getConfirmationNo(), originBook.getConfirmationNo())) {
|
||||
sysLogBooking.setEventCode("Confirmation No");
|
||||
sysLogBooking.setChangeFrom(originBook.getConfirmationNo());
|
||||
sysLogBooking.setChangeTo(book.getConfirmationNo());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getPropertyId(), originBook.getPropertyId())) {
|
||||
sysLogBooking.setEventCode("Property");
|
||||
@@ -162,7 +178,7 @@ public class SysLogBookingService {
|
||||
CfgProperties property = propertyService.getById(book.getPropertyId());
|
||||
sysLogBooking.setChangeFrom(originProperty.getName());
|
||||
sysLogBooking.setChangeTo(property.getName());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getRoomId(), originBook.getRoomId())) {
|
||||
sysLogBooking.setEventCode("Room Type");
|
||||
@@ -170,7 +186,7 @@ public class SysLogBookingService {
|
||||
CfgRooms room = roomService.getRoomById(book.getRoomId());
|
||||
sysLogBooking.setChangeFrom(originRoom.getName());
|
||||
sysLogBooking.setChangeTo(room.getName());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getOtherFollowUpStatusId(), originBook.getOtherFollowUpStatusId())) {
|
||||
sysLogBooking.setEventCode("Follow Up Status");
|
||||
@@ -187,7 +203,7 @@ public class SysLogBookingService {
|
||||
|
||||
sysLogBooking.setChangeFrom(originFollowStatusName);
|
||||
sysLogBooking.setChangeTo(followStatusName);
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if (!Objects.equals(book.getOtherRoomStatusId(), originBook.getOtherRoomStatusId())) {
|
||||
sysLogBooking.setEventCode("Room Status");
|
||||
@@ -197,14 +213,14 @@ public class SysLogBookingService {
|
||||
CfgOtherRoomStatus originRoomStatus = roomStatusDao.findById(Long.parseLong(String.valueOf(originBook.getOtherRoomStatusId())));
|
||||
originRoomStatusName = originRoomStatus.getStatusName();
|
||||
}
|
||||
sysLogBooking.setChangeTo(roomStatusName);
|
||||
if(book.getOtherRoomStatusId()!=null) {
|
||||
CfgOtherRoomStatus roomStatus = roomStatusDao.findById(Long.parseLong(String.valueOf(book.getOtherRoomStatusId())));
|
||||
roomStatusName = roomStatus.getStatusName();
|
||||
}
|
||||
|
||||
sysLogBooking.setChangeFrom(originRoomStatusName);
|
||||
addList.add(sysLogBooking);
|
||||
sysLogBooking.setChangeTo(roomStatusName);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(book.getSegmentId() != null && !book.getSegmentId().equals(originBook.getSegmentId()) &&originBook.getSegmentId()!=null) {
|
||||
sysLogBooking.setEventCode("Segment");
|
||||
@@ -220,25 +236,25 @@ public class SysLogBookingService {
|
||||
}
|
||||
sysLogBooking.setChangeFrom(originSegmentName);
|
||||
sysLogBooking.setChangeTo(segmentName);
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!book.getCheckinDate().equals(originBook.getCheckinDate())) {
|
||||
if(!Objects.equals(book.getCheckinDate(), originBook.getCheckinDate())) {
|
||||
sysLogBooking.setEventCode("Check In Date");
|
||||
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getCheckinDate(), "yyyy-MM-dd"));
|
||||
sysLogBooking.setChangeTo(DateTimeUtil.getDateByFormat(book.getCheckinDate(), "yyyy-MM-dd"));
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!book.getCheckoutDate().equals(originBook.getCheckoutDate())) {
|
||||
if(!Objects.equals(book.getCheckoutDate(), originBook.getCheckoutDate())) {
|
||||
sysLogBooking.setEventCode("Check Out Date");
|
||||
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getCheckoutDate(), "yyyy-MM-dd"));
|
||||
sysLogBooking.setChangeTo(DateTimeUtil.getDateByFormat(book.getCheckoutDate(), "yyyy-MM-dd"));
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getRequestedCoDate(), originBook.getRequestedCoDate())){
|
||||
sysLogBooking.setEventCode("Requested C/O date");
|
||||
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getRequestedCoDate(), "yyyy-MM-dd"));
|
||||
sysLogBooking.setChangeTo(DateTimeUtil.getDateByFormat(book.getRequestedCoDate(), "yyyy-MM-dd"));
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if (!Objects.equals(book.getBookingTypeId(), originBook.getBookingTypeId())) {
|
||||
sysLogBooking.setEventCode("Booking Type");
|
||||
@@ -254,49 +270,49 @@ public class SysLogBookingService {
|
||||
}
|
||||
sysLogBooking.setChangeFrom(oBookingTypeName);
|
||||
sysLogBooking.setChangeTo(bookingTypeName);
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!book.getMarketCode().equals(originBook.getMarketCode())) {
|
||||
if(!Objects.equals(book.getMarketCode(), originBook.getMarketCode())) {
|
||||
sysLogBooking.setEventCode("Market Code");
|
||||
sysLogBooking.setChangeFrom(originBook.getMarketCode());
|
||||
sysLogBooking.setChangeTo(book.getMarketCode());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!book.getBooker().equals(originBook.getBooker())) {
|
||||
if(!Objects.equals(book.getBooker(), originBook.getBooker())) {
|
||||
sysLogBooking.setEventCode("Booker");
|
||||
sysLogBooking.setChangeFrom(originBook.getBooker());
|
||||
sysLogBooking.setChangeTo(book.getBooker());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getApprovedBy(), originBook.getApprovedBy())) {
|
||||
sysLogBooking.setEventCode("Approver");
|
||||
sysLogBooking.setChangeFrom(originBook.getApprovedBy());
|
||||
sysLogBooking.setChangeTo(book.getApprovedBy());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getApprovalRemark(), originBook.getApprovalRemark())) {
|
||||
sysLogBooking.setEventCode("Approval Remark");
|
||||
sysLogBooking.setChangeFrom(originBook.getApprovalRemark());
|
||||
sysLogBooking.setChangeTo(book.getApprovalRemark());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getRemark(), originBook.getRemark())) {
|
||||
sysLogBooking.setEventCode("Remark");
|
||||
sysLogBooking.setChangeFrom(originBook.getRemark());
|
||||
sysLogBooking.setChangeTo(book.getRemark());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getFeatureCode(), originBook.getFeatureCode())) {
|
||||
sysLogBooking.setEventCode("Special Request");
|
||||
sysLogBooking.setChangeFrom(originBook.getFeatureCode());
|
||||
sysLogBooking.setChangeTo(book.getFeatureCode());
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
if(!Objects.equals(book.getSharer(), originBook.getSharer())) {
|
||||
sysLogBooking.setEventCode("Sharer");
|
||||
JSONArray originSharerArr = JSONArray.parseArray(originBook.getSharer());
|
||||
ArrayList originSharerName = new ArrayList();
|
||||
if(!originSharerArr.isEmpty()) {
|
||||
if(originSharerArr != null && !originSharerArr.isEmpty()) {
|
||||
for(Object sharer : originSharerArr) {
|
||||
JSONObject sharerObj = (JSONObject) sharer;
|
||||
if(sharerObj.containsKey("name")) {
|
||||
@@ -317,11 +333,11 @@ public class SysLogBookingService {
|
||||
}
|
||||
}
|
||||
String getOriginSharerName = String.join(";", originSharerName);
|
||||
String getSharerName= String.join(";", String.join(";", sharerName));
|
||||
String getSharerName= String.join(";", sharerName);
|
||||
if(!Objects.equals(getOriginSharerName, getSharerName)) {
|
||||
sysLogBooking.setChangeFrom(getOriginSharerName);
|
||||
sysLogBooking.setChangeTo(getSharerName);
|
||||
addList.add(sysLogBooking);
|
||||
addList.add(cloneLog(sysLogBooking));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -280,4 +280,6 @@ public class BookingsDto implements Serializable {
|
||||
private String dlProfileId;
|
||||
|
||||
private String dlBlockId;
|
||||
|
||||
private Long approvalBookingId;
|
||||
}
|
||||
|
||||
@@ -182,6 +182,8 @@ public class Bookings implements Serializable {
|
||||
private String dlPurchaseElementId;
|
||||
@Column(name = "block_code")
|
||||
private String blockCode;
|
||||
@Column(name = "approval_booking_id")
|
||||
private Long approvalBookingId;
|
||||
|
||||
//-- For export
|
||||
@Transient
|
||||
|
||||
@@ -470,6 +470,7 @@ public class OtherBookingService {
|
||||
BookingsDto booking = new BookingsDto();
|
||||
BookingsDto originBooking = new BookingsDto();
|
||||
BookingsDto waitListBooking = new BookingsDto();
|
||||
//BookingsDto approvalBooking = new BookingsDto();
|
||||
|
||||
// 使用request对象直接获取值
|
||||
Long bookId = otherPropertyCreateUpdateRequest.getId(); // 需要添加id字段到request对象
|
||||
@@ -706,6 +707,11 @@ public class OtherBookingService {
|
||||
waitListBooking.setConfirmationNo(confirmationNo);
|
||||
bookingDao.save(bookingMapper.toBooking(waitListBooking));
|
||||
}
|
||||
//if(originBooking.getApprovalBookingId()!=null) {
|
||||
// approvalBooking = bookingMapper.toBookingDto(bookingDao.getById(originBooking.getApprovalBookingId()));
|
||||
// approvalBooking.setConfirmationNo(confirmationNo);
|
||||
// bookingDao.save(bookingMapper.toBooking(approvalBooking));
|
||||
//}
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
String ciDate = selectDate.get(0);
|
||||
String coDate = selectDate.get(1);
|
||||
|
||||
@@ -137,6 +137,7 @@ public class WaitlistService {
|
||||
String bookType = param.get("bookType")!=null? String.valueOf(param.get("bookType")):null;
|
||||
String confirmationNo = param.get("confirmationNo")!=null? String.valueOf(param.get("confirmationNo")):null;
|
||||
Long sectionId = param.get("sectionId")!=null? Long.valueOf(String.valueOf(param.get("sectionId"))):null;
|
||||
String section = param.get("userSection")!=null? String.valueOf(param.get("userSection")):null;
|
||||
Map<String, Object> member = null;
|
||||
if (param.get("member") instanceof Map) {
|
||||
member = (Map<String, Object>) param.get("member");
|
||||
@@ -267,6 +268,7 @@ public class WaitlistService {
|
||||
booking.setCreatedAt(createDate);
|
||||
booking.setCreatedBy(userId);
|
||||
booking.setSectionId(sectionId);
|
||||
booking.setSectionName(section);
|
||||
booking.setRoomId(roomId);
|
||||
|
||||
|
||||
@@ -366,7 +368,7 @@ public class WaitlistService {
|
||||
|
||||
ArrayList<BookingsDto> booksList = new ArrayList<>();
|
||||
booksList.add(booking);
|
||||
sysLogBookingService.saveLogBooking(booksList, request, "", "", "Create Booking Test waitlist", "");
|
||||
sysLogBookingService.saveLogBooking(booksList, request, "", "", "Create Booking waitlist", "");
|
||||
}
|
||||
|
||||
processResult.setSuccess(true);
|
||||
@@ -389,6 +391,7 @@ public class WaitlistService {
|
||||
String bookType = param.get("bookType")!=null? String.valueOf(param.get("bookType")):null;
|
||||
String confirmationNo = param.get("confirmationNo")!=null? String.valueOf(param.get("confirmationNo")):null;
|
||||
Long sectionId = param.get("sectionId")!=null? Long.valueOf(String.valueOf(param.get("sectionId"))):null;
|
||||
String section = param.get("userSection")!=null? String.valueOf(param.get("userSection")):null;
|
||||
String remarks = param.get("remarks")!=null? String.valueOf(param.get("remarks")):null;
|
||||
|
||||
Map<String, Object> member = null;
|
||||
@@ -519,6 +522,7 @@ public class WaitlistService {
|
||||
booking.setCreatedAt(createDate);
|
||||
booking.setCreatedBy(userId);
|
||||
booking.setSectionId(sectionId);
|
||||
booking.setSectionName(section);
|
||||
booking.setRoomId(roomId);
|
||||
booking.setCategory("DAYLIGHT");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user