update
This commit is contained in:
@@ -27,6 +27,12 @@
|
|||||||
"dataType": "String",
|
"dataType": "String",
|
||||||
"columnWidth":30
|
"columnWidth":30
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"columnHeader":"Category",
|
||||||
|
"attrName": "category",
|
||||||
|
"dataType": "String",
|
||||||
|
"columnWidth":30
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"columnHeader":"Created Time",
|
"columnHeader":"Created Time",
|
||||||
"attrName": "createdAt",
|
"attrName": "createdAt",
|
||||||
|
|||||||
@@ -20,13 +20,6 @@
|
|||||||
"attrName": "emailName",
|
"attrName": "emailName",
|
||||||
"dataType": "String"
|
"dataType": "String"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"columnHeader":"Hotel Code",
|
|
||||||
"checkHeader":true,
|
|
||||||
"headerRowIdx":0,
|
|
||||||
"attrName": "hotelCode",
|
|
||||||
"dataType": "String"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"columnHeader":"Property Code",
|
"columnHeader":"Property Code",
|
||||||
"checkHeader":true,
|
"checkHeader":true,
|
||||||
@@ -47,6 +40,20 @@
|
|||||||
"headerRowIdx":0,
|
"headerRowIdx":0,
|
||||||
"attrName": "sortOrderVal",
|
"attrName": "sortOrderVal",
|
||||||
"dataType": "String"
|
"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,
|
"offsetRow": 1,
|
||||||
"offsetCol": 0,
|
"offsetCol": 0,
|
||||||
"objClassName": "com.mgm.mcrm.common.dtos.dataimport.appsetting.RoomTypeImportRow",
|
"objClassName": "com.mgm.mcrm.common.dtos.dataimport.appsetting.RoomTypeImportRow",
|
||||||
"columnDefs": [{
|
"columnDefs": [
|
||||||
"columnHeader":"Room Type",
|
{
|
||||||
|
"columnHeader":"Code",
|
||||||
"checkHeader":true,
|
"checkHeader":true,
|
||||||
"headerRowIdx":0,
|
"headerRowIdx":0,
|
||||||
"attrName": "name",
|
"attrName": "name",
|
||||||
@@ -19,6 +20,15 @@
|
|||||||
"headerRowIdx":0,
|
"headerRowIdx":0,
|
||||||
"attrName": "nameCN",
|
"attrName": "nameCN",
|
||||||
"dataType": "String"
|
"dataType": "String"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columnHeader":"Category",
|
||||||
|
"checkHeader":true,
|
||||||
|
"optionalHeader":true,
|
||||||
|
"headerRowIdx":0,
|
||||||
|
"attrName": "category",
|
||||||
|
"dataType": "String",
|
||||||
|
"columnWidth":30
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}]
|
}]
|
||||||
|
|||||||
@@ -20,15 +20,15 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<java.version>21</java.version>
|
<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>
|
<netty.version>4.2.18.Final</netty.version>
|
||||||
<httpclient5.version>5.6.4</httpclient5.version>
|
<httpclient5.version>5.6.4</httpclient5.version>
|
||||||
<httpclient5-win.version>5.2.3</httpclient5-win.version>
|
<httpclient5-win.version>5.2.3</httpclient5-win.version>
|
||||||
<httpcore5.version>5.4.3</httpcore5.version>
|
<httpcore5.version>5.4.3</httpcore5.version>
|
||||||
<activemq.version>6.2.7</activemq.version>
|
|
||||||
<fasterxml.jackson.version>2.22.3</fasterxml.jackson.version>
|
<fasterxml.jackson.version>2.22.3</fasterxml.jackson.version>
|
||||||
<tools.jackson.version>3.2.3</tools.jackson.version>
|
<tools.jackson.version>3.2.3</tools.jackson.version>
|
||||||
<log4j2.version>2.26.1</log4j2.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.source>${java.version}</maven.compiler.source>
|
||||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||||
<activemq.version>6.3.1</activemq.version>
|
<activemq.version>6.3.1</activemq.version>
|
||||||
@@ -94,6 +94,11 @@
|
|||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-mail</artifactId>
|
<artifactId>spring-boot-starter-mail</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>jakarta.validation</groupId>
|
||||||
|
<artifactId>jakarta.validation-api</artifactId>
|
||||||
|
<version>4.0.0-M1</version>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-validation</artifactId>
|
<artifactId>spring-boot-starter-validation</artifactId>
|
||||||
@@ -176,7 +181,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.auth0</groupId>
|
<groupId>com.auth0</groupId>
|
||||||
<artifactId>java-jwt</artifactId>
|
<artifactId>java-jwt</artifactId>
|
||||||
<version>4.5.0</version>
|
<version>4.6.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jsmpp</groupId>
|
<groupId>org.jsmpp</groupId>
|
||||||
@@ -251,6 +256,23 @@
|
|||||||
<source>${java.version}</source>
|
<source>${java.version}</source>
|
||||||
<target>${java.version}</target>
|
<target>${java.version}</target>
|
||||||
<encoding>UTF-8</encoding>
|
<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>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
|
|||||||
@@ -141,22 +141,22 @@ public class PlayerService {
|
|||||||
ServiceResult result = new ServiceResult();
|
ServiceResult result = new ServiceResult();
|
||||||
JSONObject requestObj = new JSONObject();
|
JSONObject requestObj = new JSONObject();
|
||||||
if(!StringUtils.isEmpty(playerId)) {
|
if(!StringUtils.isEmpty(playerId)) {
|
||||||
requestObj.put("playerId", playerId);
|
requestObj.put("PlayerId", playerId);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isEmpty(roomCate)) {
|
if(!StringUtils.isEmpty(roomCate)) {
|
||||||
requestObj.put("roomCat", roomCate);
|
requestObj.put("RoomCat", roomCate);
|
||||||
}
|
}
|
||||||
if(dateRange != null) {
|
if(dateRange != null) {
|
||||||
requestObj.put("dateRange", dateRange);
|
requestObj.put("DateRange", dateRange);
|
||||||
}
|
}
|
||||||
if(dates != null) {
|
if(dates != null) {
|
||||||
requestObj.put("dates", dates);
|
requestObj.put("Dates", dates);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isEmpty(bookingType)) {
|
if(!StringUtils.isEmpty(bookingType)) {
|
||||||
requestObj.put("bookingType", bookingType);
|
requestObj.put("BookingType", bookingType);
|
||||||
}
|
}
|
||||||
if(!StringUtils.isEmpty(property)) {
|
if(!StringUtils.isEmpty(property)) {
|
||||||
requestObj.put("property", property);
|
requestObj.put("Property", property);
|
||||||
}
|
}
|
||||||
HttpResponseResult httpResult = HttpUtil.invokeWebAPI(requestObj, "POST", request, null);
|
HttpResponseResult httpResult = HttpUtil.invokeWebAPI(requestObj, "POST", request, null);
|
||||||
String content = httpResult.getResponseContent();
|
String content = httpResult.getResponseContent();
|
||||||
|
|||||||
@@ -30,8 +30,8 @@ public class SysSettingService {
|
|||||||
|
|
||||||
public Boolean isAPPMock() {
|
public Boolean isAPPMock() {
|
||||||
SysSetting sysSetting = new SysSetting();
|
SysSetting sysSetting = new SysSetting();
|
||||||
// sysSetting = sysSettingDao.getBySettingKey("APP_MOCK");
|
sysSetting = sysSettingDao.getBySettingKey("APP_MOCK");
|
||||||
sysSetting.setSettingValue("1");
|
// sysSetting.setSettingValue("1");
|
||||||
Boolean isMock = Strings.CS.equals(sysSetting.getSettingValue(), "1");
|
Boolean isMock = Strings.CS.equals(sysSetting.getSettingValue(), "1");
|
||||||
return isMock;
|
return isMock;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,6 +134,8 @@ public class RoomCriteriaDaylightService {
|
|||||||
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
private static final int AUTO_SYNC_ALLOTMENT_DAYS = 15;
|
||||||
|
|
||||||
public ServiceResult createRoomCriteria(CfgRoomCriteriaDaylightRequest criteriaRequest) {
|
public ServiceResult createRoomCriteria(CfgRoomCriteriaDaylightRequest criteriaRequest) {
|
||||||
ServiceResult processResult = new ServiceResult();
|
ServiceResult processResult = new ServiceResult();
|
||||||
LocalDateTime createDate = LocalDateTime.now();
|
LocalDateTime createDate = LocalDateTime.now();
|
||||||
@@ -1521,4 +1523,93 @@ public class RoomCriteriaDaylightService {
|
|||||||
return calculateRequests;
|
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
|
@Resource
|
||||||
private SysLogOperationService sysAuditLogService;
|
private SysLogOperationService sysAuditLogService;
|
||||||
|
|
||||||
@CheckPermission(routerId="00502",permissionCode="ADD")
|
@CheckPermission(routerId="00602",permissionCode="ADD")
|
||||||
@OperationLog(eventCode = "request_reason_create")
|
@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)
|
@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) {
|
public AjaxResult createRequestReason(HttpServletRequest request, @RequestBody CfgRequestReason requestReason) {
|
||||||
@@ -69,7 +69,7 @@ public class RequestReasonController {
|
|||||||
return processResult;
|
return processResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@CheckPermission(routerId="00502",permissionCode="MODIFY")
|
@CheckPermission(routerId="00602",permissionCode="MODIFY")
|
||||||
@OperationLog(eventCode="request_reason_update")
|
@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)
|
@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) {
|
public AjaxResult updateRequestReason(HttpServletRequest request, @RequestBody CfgRequestReason requestReason) {
|
||||||
@@ -114,7 +114,7 @@ public class RequestReasonController {
|
|||||||
return processResult;
|
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)
|
@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) {
|
public AjaxResult getRequestReasonById(HttpServletRequest request, @RequestBody(required=false) Map<String,Object> queryParas) {
|
||||||
boolean isSuccess = false;
|
boolean isSuccess = false;
|
||||||
@@ -140,7 +140,7 @@ public class RequestReasonController {
|
|||||||
return processResult;
|
return processResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@CheckPermission(routerId="00502",permissionCode="REMOVE")
|
@CheckPermission(routerId="00602",permissionCode="REMOVE")
|
||||||
@OperationLog(eventCode="request_reason_delete")
|
@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)
|
@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) {
|
public AjaxResult deleteRequestReason(HttpServletRequest request, @RequestBody CfgRequestReason requestReason) {
|
||||||
@@ -184,7 +184,7 @@ public class RequestReasonController {
|
|||||||
return processResult;
|
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)
|
@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 {
|
public AjaxResult getRequestReasonByPage(HttpServletRequest request,@RequestBody(required=false) Map<String,Object> queryParas) throws Exception {
|
||||||
QueryFilter queryFilter = (queryParas!=null?new QueryFilter(queryParas):new QueryFilter(request));
|
QueryFilter queryFilter = (queryParas!=null?new QueryFilter(queryParas):new QueryFilter(request));
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import jakarta.servlet.http.HttpServletRequest;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.commons.lang3.Strings;
|
||||||
|
|
||||||
import java.time.Duration;
|
import java.time.Duration;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
@@ -55,6 +56,11 @@ public class JwtTokenUtil {
|
|||||||
Instant expDate = now.plus(Duration.ofMinutes(tokeExpiration));
|
Instant expDate = now.plus(Duration.ofMinutes(tokeExpiration));
|
||||||
String uuid = UUID.randomUUID().toString().replace("-","");
|
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()
|
String tokenString = JWT.create()
|
||||||
.withIssuer(issueSource)
|
.withIssuer(issueSource)
|
||||||
.withIssuedAt(now).withNotBefore(now).withExpiresAt(expDate).withJWTId(uuid)
|
.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.dataimport.appsetting.ExceptionOperaImportRow;
|
||||||
import com.mgm.mcrm.common.dtos.excelmodel.ImportDefine;
|
import com.mgm.mcrm.common.dtos.excelmodel.ImportDefine;
|
||||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||||
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
|
||||||
import com.mgm.mcrm.common.utils.ExcelUtils;
|
import com.mgm.mcrm.common.utils.ExcelUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.persistence.criteria.Predicate;
|
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.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.ZoneId;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
@@ -191,6 +192,7 @@ public class ExceptionOperaService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Specification<CfgExceptionOpera> buildSpecificationByQueryFilter(QueryFilter queryfilter) {
|
private Specification<CfgExceptionOpera> buildSpecificationByQueryFilter(QueryFilter queryfilter) {
|
||||||
|
LocalDate today = LocalDate.now();
|
||||||
return (root, criteriaQuery, cb) -> {
|
return (root, criteriaQuery, cb) -> {
|
||||||
List<Predicate> list = new ArrayList<>();
|
List<Predicate> list = new ArrayList<>();
|
||||||
if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
||||||
@@ -202,14 +204,10 @@ public class ExceptionOperaService {
|
|||||||
"%" + queryfilter.getString("searchId").trim().toUpperCase() + "%"));
|
"%" + queryfilter.getString("searchId").trim().toUpperCase() + "%"));
|
||||||
}
|
}
|
||||||
|
|
||||||
List<Long> availableBlockCodes = blockCodeDao.getAvailableBlockCodes(DateTimeUtil.getCurrentDateTime("yyyy-MM-dd"));
|
List<Long> availableBlockCodes = blockCodeDao.getAvailableBlockCodes(today.atStartOfDay());
|
||||||
if (availableBlockCodes == null) {
|
list.add(availableBlockCodes == null || availableBlockCodes.isEmpty()
|
||||||
availableBlockCodes = new ArrayList<>();
|
? cb.disjunction()
|
||||||
}
|
: root.get("blockCodeId").in(availableBlockCodes));
|
||||||
if (availableBlockCodes.isEmpty()) {
|
|
||||||
availableBlockCodes.add(-1L);
|
|
||||||
}
|
|
||||||
// list.add(root.get("blockCodeId").in(availableBlockCodes));
|
|
||||||
Predicate[] predicates = new Predicate[list.size()];
|
Predicate[] predicates = new Predicate[list.size()];
|
||||||
criteriaQuery.where(list.toArray(predicates));
|
criteriaQuery.where(list.toArray(predicates));
|
||||||
return cb.and(list.toArray(predicates));
|
return cb.and(list.toArray(predicates));
|
||||||
@@ -217,6 +215,7 @@ public class ExceptionOperaService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private Specification<CfgExceptionOperaView> buildSpecificationViewByQueryFilter(QueryFilter queryfilter) {
|
private Specification<CfgExceptionOperaView> buildSpecificationViewByQueryFilter(QueryFilter queryfilter) {
|
||||||
|
Date today = Date.from(LocalDate.now().atStartOfDay(ZoneId.systemDefault()).toInstant());
|
||||||
return (root, criteriaQuery, cb) -> {
|
return (root, criteriaQuery, cb) -> {
|
||||||
List<Predicate> list = new ArrayList<>();
|
List<Predicate> list = new ArrayList<>();
|
||||||
if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
if (StringUtils.isNotBlank(queryfilter.getString("searchName"))) {
|
||||||
@@ -227,7 +226,7 @@ public class ExceptionOperaService {
|
|||||||
list.add(cb.like(cb.upper(root.get("userId")),
|
list.add(cb.like(cb.upper(root.get("userId")),
|
||||||
"%" + queryfilter.getString("searchId").trim().toUpperCase() + "%"));
|
"%" + 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) {
|
if (queryfilter.getParaObject("pageIds") != null) {
|
||||||
List<Long> pageIds = (List<Long>) queryfilter.getParaObject("pageIds");
|
List<Long> pageIds = (List<Long>) queryfilter.getParaObject("pageIds");
|
||||||
list.add(root.get("id").in(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.dataimport.appsetting.OperaMappingImportRow;
|
||||||
import com.mgm.mcrm.common.dtos.excelmodel.ImportDefine;
|
import com.mgm.mcrm.common.dtos.excelmodel.ImportDefine;
|
||||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||||
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
|
||||||
import com.mgm.mcrm.common.utils.ExcelUtils;
|
import com.mgm.mcrm.common.utils.ExcelUtils;
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
import jakarta.persistence.criteria.CriteriaBuilder;
|
import jakarta.persistence.criteria.CriteriaBuilder;
|
||||||
import jakarta.persistence.criteria.Predicate;
|
import jakarta.persistence.criteria.Predicate;
|
||||||
|
import jakarta.persistence.criteria.Root;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.Strings;
|
import org.apache.commons.lang3.Strings;
|
||||||
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.BeanUtils;
|
||||||
@@ -145,8 +145,6 @@ public class OperaService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public DataTableResult<CfgOperaView> getOperaViewByPage(OperaPageRequest pageRequest) {
|
public DataTableResult<CfgOperaView> getOperaViewByPage(OperaPageRequest pageRequest) {
|
||||||
//--先主表找分页,然后再按照分页结果找View的对象
|
|
||||||
Specification<CfgOpera> listSpec = buildSpecification(pageRequest);
|
|
||||||
int pageSize = pageRequest.getPageSize();
|
int pageSize = pageRequest.getPageSize();
|
||||||
int pageStart = pageRequest.getStartRow() / pageSize;
|
int pageStart = pageRequest.getStartRow() / pageSize;
|
||||||
String sortProperties = pageRequest.getSortOrder();
|
String sortProperties = pageRequest.getSortOrder();
|
||||||
@@ -159,29 +157,16 @@ public class OperaService {
|
|||||||
sortProperties = sortProperties.replace("marketCode-", "marketCodeId-");
|
sortProperties = sortProperties.replace("marketCode-", "marketCodeId-");
|
||||||
sortProperties = sortProperties.replace("sourceCode-", "sourceCodeId-");
|
sortProperties = sortProperties.replace("sourceCode-", "sourceCodeId-");
|
||||||
sortProperties = sortProperties.replace("bookingType-", "bookingTypeId-");
|
sortProperties = sortProperties.replace("bookingType-", "bookingTypeId-");
|
||||||
String viewSortProperties = sortProperties;
|
|
||||||
sortProperties = sortProperties.replace("operaRoomType-asc", "");
|
sortProperties = sortProperties.replace("operaRoomType-asc", "");
|
||||||
sortProperties = sortProperties.replace("operaRoomType-desc", "");
|
sortProperties = sortProperties.replace("operaRoomType-desc", "");
|
||||||
pageRequest.setSortOrder(sortProperties);
|
pageRequest.setSortOrder(sortProperties);
|
||||||
Sort sort = DaoUtil.buildSortByString(pageRequest.getSortOrder(), "id");
|
Sort sort = DaoUtil.buildSortByString(pageRequest.getSortOrder(), "id");
|
||||||
Pageable pageable = PageRequest.of(pageStart, pageSize, sort);
|
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<>();
|
DataTableResult<CfgOperaView> dataResult = new DataTableResult<>();
|
||||||
dataResult.setTotalRecords(resultPage.getTotalElements());
|
dataResult.setTotalRecords(resultPage.getTotalElements());
|
||||||
dataResult.setPageSize(pageSize);
|
dataResult.setPageSize(pageSize);
|
||||||
List<CfgOperaView> resultList = new ArrayList<>();
|
dataResult.setRowData(resultPage.getContent());
|
||||||
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);
|
|
||||||
return dataResult;
|
return dataResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,106 +176,81 @@ public class OperaService {
|
|||||||
return operaViewDao.findAll(listSpec, sort);
|
return operaViewDao.findAll(listSpec, sort);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Specification<CfgOpera> buildSpecification(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() + "%"));
|
|
||||||
// }
|
|
||||||
if (StringUtils.isNotBlank(pageRequest.getSearchBlockCode())) {
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(root.get("blockCodeId"));
|
|
||||||
List<CfgBlockCodes> blockCode = blockCodeDao.getLikeByCode(pageRequest.getSearchBlockCode());
|
|
||||||
if (!blockCode.isEmpty()) {
|
|
||||||
for (CfgBlockCodes b : blockCode) {
|
|
||||||
in.value(b.getId());
|
|
||||||
}
|
|
||||||
list.add(in);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(pageRequest.getSearchMarketCode())) {
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(root.get("marketCodeId"));
|
|
||||||
List<CfgMarketCodes> marketCode = marketCodeDao.getLikeByCode(pageRequest.getSearchMarketCode().trim());
|
|
||||||
if (!marketCode.isEmpty()) {
|
|
||||||
for (CfgMarketCodes b : marketCode) {
|
|
||||||
in.value(b.getId());
|
|
||||||
}
|
|
||||||
list.add(in);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(pageRequest.getSearchRateCode())) {
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(root.get("rateCodeId"));
|
|
||||||
List<CfgRateCodes> rateCode = rateCodeDao.getLikeByCode(pageRequest.getSearchRateCode().trim());
|
|
||||||
if (!rateCode.isEmpty()) {
|
|
||||||
for (CfgRateCodes b : rateCode) {
|
|
||||||
in.value(b.getId());
|
|
||||||
}
|
|
||||||
list.add(in);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(pageRequest.getSearchDivision())) {
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(root.get("divisionId"));
|
|
||||||
List<CfgDivisions> division = divisionDao.getLikeByName(pageRequest.getSearchDivision().trim());
|
|
||||||
if (!division.isEmpty()) {
|
|
||||||
for (CfgDivisions b : division) {
|
|
||||||
in.value(b.getId());
|
|
||||||
}
|
|
||||||
list.add(in);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(pageRequest.getSearchDepartment())) {
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(root.get("departmentId"));
|
|
||||||
List<CfgDepartments> department = departmentDao.getLikeByName(pageRequest.getSearchDepartment().trim());
|
|
||||||
if (!department.isEmpty()) {
|
|
||||||
for (CfgDepartments b : department) {
|
|
||||||
in.value(b.getId());
|
|
||||||
}
|
|
||||||
list.add(in);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (StringUtils.isNotBlank(pageRequest.getSearchSection())) {
|
|
||||||
CriteriaBuilder.In<Long> in = cb.in(root.get("sectionId"));
|
|
||||||
List<CfgSections> section = sectionDao.getLikeByName(pageRequest.getSearchSection().trim());
|
|
||||||
if (!section.isEmpty()) {
|
|
||||||
for (CfgSections b : section) {
|
|
||||||
in.value(b.getId());
|
|
||||||
}
|
|
||||||
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) {
|
private Specification<CfgOperaView> buildSpecificationView(OperaPageRequest pageRequest) {
|
||||||
return (root, criteriaQuery, cb) -> {
|
return (root, criteriaQuery, cb) -> {
|
||||||
List<Predicate> list = new ArrayList<>();
|
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()));
|
list.add(cb.greaterThanOrEqualTo(root.get("endDate"), new Date()));
|
||||||
|
appendOperaSearchPredicates(list, cb, root, pageRequest);
|
||||||
if (pageRequest.getPageIds() != null) {
|
if (pageRequest.getPageIds() != null) {
|
||||||
list.add(root.get("id").in(pageRequest.getPageIds()));
|
list.add(root.get("id").in(pageRequest.getPageIds()));
|
||||||
}
|
}
|
||||||
|
return cb.and(list.toArray(new Predicate[0]));
|
||||||
Predicate[] predicates = new Predicate[list.size()];
|
|
||||||
criteriaQuery.where(list.toArray(predicates));
|
|
||||||
return cb.and(list.toArray(predicates));
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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());
|
||||||
|
if (!blockCode.isEmpty()) {
|
||||||
|
for (CfgBlockCodes b : blockCode) {
|
||||||
|
in.value(b.getId());
|
||||||
|
}
|
||||||
|
list.add(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pageRequest.getSearchMarketCode())) {
|
||||||
|
CriteriaBuilder.In<Long> in = cb.in(root.get("marketCodeId"));
|
||||||
|
List<CfgMarketCodes> marketCode = marketCodeDao.getLikeByCode(pageRequest.getSearchMarketCode().trim());
|
||||||
|
if (!marketCode.isEmpty()) {
|
||||||
|
for (CfgMarketCodes b : marketCode) {
|
||||||
|
in.value(b.getId());
|
||||||
|
}
|
||||||
|
list.add(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pageRequest.getSearchRateCode())) {
|
||||||
|
CriteriaBuilder.In<Long> in = cb.in(root.get("rateCodeId"));
|
||||||
|
List<CfgRateCodes> rateCode = rateCodeDao.getLikeByCode(pageRequest.getSearchRateCode().trim());
|
||||||
|
if (!rateCode.isEmpty()) {
|
||||||
|
for (CfgRateCodes b : rateCode) {
|
||||||
|
in.value(b.getId());
|
||||||
|
}
|
||||||
|
list.add(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pageRequest.getSearchDivision())) {
|
||||||
|
CriteriaBuilder.In<Long> in = cb.in(root.get("divisionId"));
|
||||||
|
List<CfgDivisions> division = divisionDao.getLikeByName(pageRequest.getSearchDivision().trim());
|
||||||
|
if (!division.isEmpty()) {
|
||||||
|
for (CfgDivisions b : division) {
|
||||||
|
in.value(b.getId());
|
||||||
|
}
|
||||||
|
list.add(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pageRequest.getSearchDepartment())) {
|
||||||
|
CriteriaBuilder.In<Long> in = cb.in(root.get("departmentId"));
|
||||||
|
List<CfgDepartments> department = departmentDao.getLikeByName(pageRequest.getSearchDepartment().trim());
|
||||||
|
if (!department.isEmpty()) {
|
||||||
|
for (CfgDepartments b : department) {
|
||||||
|
in.value(b.getId());
|
||||||
|
}
|
||||||
|
list.add(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(pageRequest.getSearchSection())) {
|
||||||
|
CriteriaBuilder.In<Long> in = cb.in(root.get("sectionId"));
|
||||||
|
List<CfgSections> section = sectionDao.getLikeByName(pageRequest.getSearchSection().trim());
|
||||||
|
if (!section.isEmpty()) {
|
||||||
|
for (CfgSections b : section) {
|
||||||
|
in.value(b.getId());
|
||||||
|
}
|
||||||
|
list.add(in);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public boolean deleteOpera(DeleteOperaRequest deleteOperaRequest) {
|
public boolean deleteOpera(DeleteOperaRequest deleteOperaRequest) {
|
||||||
operaDao.deleteById(deleteOperaRequest.getId());
|
operaDao.deleteById(deleteOperaRequest.getId());
|
||||||
|
|||||||
@@ -41,4 +41,6 @@ public interface PropertyDao extends JpaRepository<CfgProperties, Long> {
|
|||||||
CfgProperties getByName(String name);
|
CfgProperties getByName(String name);
|
||||||
|
|
||||||
CfgProperties findByDlPropertyId(String dlPropertyId);
|
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.data.jpa.domain.Specification;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.mgm.mcrm.common.utils.DaoUtil;
|
import com.mgm.mcrm.common.utils.DaoUtil;
|
||||||
|
import com.mgm.mcrm.common.utils.DateTimeUtil;
|
||||||
import com.mgm.mcrm.common.utils.ExcelUtils;
|
import com.mgm.mcrm.common.utils.ExcelUtils;
|
||||||
|
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@@ -327,14 +328,19 @@ public class PropertyService {
|
|||||||
for (int i = 0; i < importRows.size(); i++) {
|
for (int i = 0; i < importRows.size(); i++) {
|
||||||
PropertyImportRow pItem = importRows.get(i);
|
PropertyImportRow pItem = importRows.get(i);
|
||||||
CfgProperties newProperty = new CfgProperties();
|
CfgProperties newProperty = new CfgProperties();
|
||||||
|
newProperty.setShowCalendar(1);
|
||||||
|
newProperty.setStatus(1);
|
||||||
|
newProperty.setDisplayType(1);
|
||||||
newProperty.setName(pItem.getName());
|
newProperty.setName(pItem.getName());
|
||||||
newProperty.setEmailName(pItem.getEmailName());
|
newProperty.setEmailName(pItem.getEmailName());
|
||||||
newProperty.setCategory(pItem.getCategory());
|
newProperty.setCategory(pItem.getCategory());
|
||||||
newProperty.setCode(pItem.getCode());
|
newProperty.setCode(pItem.getCode());
|
||||||
newProperty.setHotelCode(pItem.getHotelCode());
|
newProperty.setHotelCode(pItem.getHotelCode());
|
||||||
newProperty.setSortOrder(Integer.valueOf(pItem.getSortOrder()));
|
newProperty.setSortOrder(Integer.valueOf(pItem.getSortOrder()));
|
||||||
newProperty.setCreatedAt(currentTime);
|
LocalDateTime createdAt = parseImportDateTime(pItem.getCreatedTime());
|
||||||
newProperty.setUpdatedAt(currentTime);
|
LocalDateTime updatedAt = parseImportDateTime(pItem.getUpdatedTime());
|
||||||
|
newProperty.setCreatedAt(createdAt != null ? createdAt : currentTime);
|
||||||
|
newProperty.setUpdatedAt(updatedAt != null ? updatedAt : currentTime);
|
||||||
newPropertyList.add(newProperty);
|
newPropertyList.add(newProperty);
|
||||||
}
|
}
|
||||||
propertyDao.saveAll(newPropertyList);
|
propertyDao.saveAll(newPropertyList);
|
||||||
@@ -350,4 +356,18 @@ public class PropertyService {
|
|||||||
}
|
}
|
||||||
return result;
|
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()) {
|
if (!roomTypeList.isEmpty()) {
|
||||||
totalRows = roomTypeList.size();
|
totalRows = roomTypeList.size();
|
||||||
for (RoomTypeImportRow roomTypeImportRow : roomTypeList) {
|
for (RoomTypeImportRow roomTypeImportRow : roomTypeList) {
|
||||||
|
if (StringUtils.isBlank(roomTypeImportRow.getCategory())) {
|
||||||
|
roomTypeImportRow.setCategory("OPERA");
|
||||||
|
}
|
||||||
String errMsg = "";
|
String errMsg = "";
|
||||||
boolean isPassed = true;
|
boolean isPassed = true;
|
||||||
if (StringUtils.isBlank(roomTypeImportRow.getName())) {
|
if (StringUtils.isBlank(roomTypeImportRow.getName())) {
|
||||||
@@ -267,6 +270,7 @@ public class RoomTypeService {
|
|||||||
CfgRoomTypes newRoomType = new CfgRoomTypes();
|
CfgRoomTypes newRoomType = new CfgRoomTypes();
|
||||||
newRoomType.setCode(pItem.getName());
|
newRoomType.setCode(pItem.getName());
|
||||||
newRoomType.setNameCN(pItem.getNameCN());
|
newRoomType.setNameCN(pItem.getNameCN());
|
||||||
|
newRoomType.setCategory(pItem.getCategory());
|
||||||
newRoomType.setCreatedAt(currentTime);
|
newRoomType.setCreatedAt(currentTime);
|
||||||
newRoomType.setUpdatedAt(currentTime);
|
newRoomType.setUpdatedAt(currentTime);
|
||||||
newRoomTypeList.add(newRoomType);
|
newRoomTypeList.add(newRoomType);
|
||||||
|
|||||||
@@ -10,6 +10,8 @@ public class PropertyImportRow {
|
|||||||
private String category;
|
private String category;
|
||||||
private String hotelCode;
|
private String hotelCode;
|
||||||
private String sortOrderVal;
|
private String sortOrderVal;
|
||||||
|
private String createdTime;
|
||||||
|
private String updatedTime;
|
||||||
private int sortOrder=0;
|
private int sortOrder=0;
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
@@ -66,5 +68,17 @@ public class PropertyImportRow {
|
|||||||
public void setSortOrder(int sortOrder) {
|
public void setSortOrder(int sortOrder) {
|
||||||
this.sortOrder = 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 errorMessage;
|
||||||
private String name;
|
private String name;
|
||||||
private String nameCN;
|
private String nameCN;
|
||||||
|
private String category;
|
||||||
|
|
||||||
|
public String getCategory() {
|
||||||
|
return category;
|
||||||
|
}
|
||||||
|
public void setCategory(String category) {
|
||||||
|
this.category = category;
|
||||||
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
|
|||||||
@@ -5,17 +5,10 @@ import com.mgm.mcrm.common.services.ConfigurableTrustHandler;
|
|||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
|
import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
|
||||||
import org.apache.hc.core5.ssl.SSLContexts;
|
|
||||||
|
|
||||||
import javax.net.ssl.*;
|
import javax.net.ssl.*;
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.security.KeyManagementException;
|
import java.security.KeyManagementException;
|
||||||
import java.security.KeyStore;
|
|
||||||
import java.security.KeyStoreException;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.security.cert.CertificateException;
|
|
||||||
|
|
||||||
public class HttpSslSupport {
|
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}
|
* 获取(或创建)指定协议版本的 {@link SSLContext}
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ public class SysLogBookingService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sysLogBooking.setChangeTo(changeTo);
|
sysLogBooking.setChangeTo(changeTo);
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
|
|
||||||
}
|
}
|
||||||
sysLogBookingDao.saveAll(sysLogBookingMapper.toSysLogBookingList(addList));
|
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) {
|
public ArrayList<SysLogBookingDto> saveEditLogBooking(BookingsDto book, HttpServletRequest request, BookingsDto originBook) {
|
||||||
ArrayList<SysLogBookingDto> addList = new ArrayList<>();
|
ArrayList<SysLogBookingDto> addList = new ArrayList<>();
|
||||||
SysLogBookingDto sysLogBooking = new SysLogBookingDto();
|
SysLogBookingDto sysLogBooking = new SysLogBookingDto();
|
||||||
@@ -148,13 +164,13 @@ public class SysLogBookingService {
|
|||||||
sysLogBooking.setEventCode("Player");
|
sysLogBooking.setEventCode("Player");
|
||||||
sysLogBooking.setChangeFrom(originBook.getPlayerId());
|
sysLogBooking.setChangeFrom(originBook.getPlayerId());
|
||||||
sysLogBooking.setChangeTo(book.getPlayerId());
|
sysLogBooking.setChangeTo(book.getPlayerId());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Strings.CS.equals(book.getConfirmationNo(), originBook.getConfirmationNo())) {
|
if(!Strings.CS.equals(book.getConfirmationNo(), originBook.getConfirmationNo())) {
|
||||||
sysLogBooking.setEventCode("Confirmation No");
|
sysLogBooking.setEventCode("Confirmation No");
|
||||||
sysLogBooking.setChangeFrom(originBook.getConfirmationNo());
|
sysLogBooking.setChangeFrom(originBook.getConfirmationNo());
|
||||||
sysLogBooking.setChangeTo(book.getConfirmationNo());
|
sysLogBooking.setChangeTo(book.getConfirmationNo());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getPropertyId(), originBook.getPropertyId())) {
|
if(!Objects.equals(book.getPropertyId(), originBook.getPropertyId())) {
|
||||||
sysLogBooking.setEventCode("Property");
|
sysLogBooking.setEventCode("Property");
|
||||||
@@ -162,7 +178,7 @@ public class SysLogBookingService {
|
|||||||
CfgProperties property = propertyService.getById(book.getPropertyId());
|
CfgProperties property = propertyService.getById(book.getPropertyId());
|
||||||
sysLogBooking.setChangeFrom(originProperty.getName());
|
sysLogBooking.setChangeFrom(originProperty.getName());
|
||||||
sysLogBooking.setChangeTo(property.getName());
|
sysLogBooking.setChangeTo(property.getName());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getRoomId(), originBook.getRoomId())) {
|
if(!Objects.equals(book.getRoomId(), originBook.getRoomId())) {
|
||||||
sysLogBooking.setEventCode("Room Type");
|
sysLogBooking.setEventCode("Room Type");
|
||||||
@@ -170,7 +186,7 @@ public class SysLogBookingService {
|
|||||||
CfgRooms room = roomService.getRoomById(book.getRoomId());
|
CfgRooms room = roomService.getRoomById(book.getRoomId());
|
||||||
sysLogBooking.setChangeFrom(originRoom.getName());
|
sysLogBooking.setChangeFrom(originRoom.getName());
|
||||||
sysLogBooking.setChangeTo(room.getName());
|
sysLogBooking.setChangeTo(room.getName());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getOtherFollowUpStatusId(), originBook.getOtherFollowUpStatusId())) {
|
if(!Objects.equals(book.getOtherFollowUpStatusId(), originBook.getOtherFollowUpStatusId())) {
|
||||||
sysLogBooking.setEventCode("Follow Up Status");
|
sysLogBooking.setEventCode("Follow Up Status");
|
||||||
@@ -187,7 +203,7 @@ public class SysLogBookingService {
|
|||||||
|
|
||||||
sysLogBooking.setChangeFrom(originFollowStatusName);
|
sysLogBooking.setChangeFrom(originFollowStatusName);
|
||||||
sysLogBooking.setChangeTo(followStatusName);
|
sysLogBooking.setChangeTo(followStatusName);
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if (!Objects.equals(book.getOtherRoomStatusId(), originBook.getOtherRoomStatusId())) {
|
if (!Objects.equals(book.getOtherRoomStatusId(), originBook.getOtherRoomStatusId())) {
|
||||||
sysLogBooking.setEventCode("Room Status");
|
sysLogBooking.setEventCode("Room Status");
|
||||||
@@ -197,14 +213,14 @@ public class SysLogBookingService {
|
|||||||
CfgOtherRoomStatus originRoomStatus = roomStatusDao.findById(Long.parseLong(String.valueOf(originBook.getOtherRoomStatusId())));
|
CfgOtherRoomStatus originRoomStatus = roomStatusDao.findById(Long.parseLong(String.valueOf(originBook.getOtherRoomStatusId())));
|
||||||
originRoomStatusName = originRoomStatus.getStatusName();
|
originRoomStatusName = originRoomStatus.getStatusName();
|
||||||
}
|
}
|
||||||
sysLogBooking.setChangeTo(roomStatusName);
|
|
||||||
if(book.getOtherRoomStatusId()!=null) {
|
if(book.getOtherRoomStatusId()!=null) {
|
||||||
CfgOtherRoomStatus roomStatus = roomStatusDao.findById(Long.parseLong(String.valueOf(book.getOtherRoomStatusId())));
|
CfgOtherRoomStatus roomStatus = roomStatusDao.findById(Long.parseLong(String.valueOf(book.getOtherRoomStatusId())));
|
||||||
roomStatusName = roomStatus.getStatusName();
|
roomStatusName = roomStatus.getStatusName();
|
||||||
}
|
}
|
||||||
|
|
||||||
sysLogBooking.setChangeFrom(originRoomStatusName);
|
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) {
|
if(book.getSegmentId() != null && !book.getSegmentId().equals(originBook.getSegmentId()) &&originBook.getSegmentId()!=null) {
|
||||||
sysLogBooking.setEventCode("Segment");
|
sysLogBooking.setEventCode("Segment");
|
||||||
@@ -220,25 +236,25 @@ public class SysLogBookingService {
|
|||||||
}
|
}
|
||||||
sysLogBooking.setChangeFrom(originSegmentName);
|
sysLogBooking.setChangeFrom(originSegmentName);
|
||||||
sysLogBooking.setChangeTo(segmentName);
|
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.setEventCode("Check In Date");
|
||||||
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getCheckinDate(), "yyyy-MM-dd"));
|
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getCheckinDate(), "yyyy-MM-dd"));
|
||||||
sysLogBooking.setChangeTo(DateTimeUtil.getDateByFormat(book.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.setEventCode("Check Out Date");
|
||||||
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getCheckoutDate(), "yyyy-MM-dd"));
|
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getCheckoutDate(), "yyyy-MM-dd"));
|
||||||
sysLogBooking.setChangeTo(DateTimeUtil.getDateByFormat(book.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())){
|
if(!Objects.equals(book.getRequestedCoDate(), originBook.getRequestedCoDate())){
|
||||||
sysLogBooking.setEventCode("Requested C/O date");
|
sysLogBooking.setEventCode("Requested C/O date");
|
||||||
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getRequestedCoDate(), "yyyy-MM-dd"));
|
sysLogBooking.setChangeFrom(DateTimeUtil.getDateByFormat(originBook.getRequestedCoDate(), "yyyy-MM-dd"));
|
||||||
sysLogBooking.setChangeTo(DateTimeUtil.getDateByFormat(book.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())) {
|
if (!Objects.equals(book.getBookingTypeId(), originBook.getBookingTypeId())) {
|
||||||
sysLogBooking.setEventCode("Booking Type");
|
sysLogBooking.setEventCode("Booking Type");
|
||||||
@@ -254,49 +270,49 @@ public class SysLogBookingService {
|
|||||||
}
|
}
|
||||||
sysLogBooking.setChangeFrom(oBookingTypeName);
|
sysLogBooking.setChangeFrom(oBookingTypeName);
|
||||||
sysLogBooking.setChangeTo(bookingTypeName);
|
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.setEventCode("Market Code");
|
||||||
sysLogBooking.setChangeFrom(originBook.getMarketCode());
|
sysLogBooking.setChangeFrom(originBook.getMarketCode());
|
||||||
sysLogBooking.setChangeTo(book.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.setEventCode("Booker");
|
||||||
sysLogBooking.setChangeFrom(originBook.getBooker());
|
sysLogBooking.setChangeFrom(originBook.getBooker());
|
||||||
sysLogBooking.setChangeTo(book.getBooker());
|
sysLogBooking.setChangeTo(book.getBooker());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getApprovedBy(), originBook.getApprovedBy())) {
|
if(!Objects.equals(book.getApprovedBy(), originBook.getApprovedBy())) {
|
||||||
sysLogBooking.setEventCode("Approver");
|
sysLogBooking.setEventCode("Approver");
|
||||||
sysLogBooking.setChangeFrom(originBook.getApprovedBy());
|
sysLogBooking.setChangeFrom(originBook.getApprovedBy());
|
||||||
sysLogBooking.setChangeTo(book.getApprovedBy());
|
sysLogBooking.setChangeTo(book.getApprovedBy());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getApprovalRemark(), originBook.getApprovalRemark())) {
|
if(!Objects.equals(book.getApprovalRemark(), originBook.getApprovalRemark())) {
|
||||||
sysLogBooking.setEventCode("Approval Remark");
|
sysLogBooking.setEventCode("Approval Remark");
|
||||||
sysLogBooking.setChangeFrom(originBook.getApprovalRemark());
|
sysLogBooking.setChangeFrom(originBook.getApprovalRemark());
|
||||||
sysLogBooking.setChangeTo(book.getApprovalRemark());
|
sysLogBooking.setChangeTo(book.getApprovalRemark());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getRemark(), originBook.getRemark())) {
|
if(!Objects.equals(book.getRemark(), originBook.getRemark())) {
|
||||||
sysLogBooking.setEventCode("Remark");
|
sysLogBooking.setEventCode("Remark");
|
||||||
sysLogBooking.setChangeFrom(originBook.getRemark());
|
sysLogBooking.setChangeFrom(originBook.getRemark());
|
||||||
sysLogBooking.setChangeTo(book.getRemark());
|
sysLogBooking.setChangeTo(book.getRemark());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getFeatureCode(), originBook.getFeatureCode())) {
|
if(!Objects.equals(book.getFeatureCode(), originBook.getFeatureCode())) {
|
||||||
sysLogBooking.setEventCode("Special Request");
|
sysLogBooking.setEventCode("Special Request");
|
||||||
sysLogBooking.setChangeFrom(originBook.getFeatureCode());
|
sysLogBooking.setChangeFrom(originBook.getFeatureCode());
|
||||||
sysLogBooking.setChangeTo(book.getFeatureCode());
|
sysLogBooking.setChangeTo(book.getFeatureCode());
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
if(!Objects.equals(book.getSharer(), originBook.getSharer())) {
|
if(!Objects.equals(book.getSharer(), originBook.getSharer())) {
|
||||||
sysLogBooking.setEventCode("Sharer");
|
sysLogBooking.setEventCode("Sharer");
|
||||||
JSONArray originSharerArr = JSONArray.parseArray(originBook.getSharer());
|
JSONArray originSharerArr = JSONArray.parseArray(originBook.getSharer());
|
||||||
ArrayList originSharerName = new ArrayList();
|
ArrayList originSharerName = new ArrayList();
|
||||||
if(!originSharerArr.isEmpty()) {
|
if(originSharerArr != null && !originSharerArr.isEmpty()) {
|
||||||
for(Object sharer : originSharerArr) {
|
for(Object sharer : originSharerArr) {
|
||||||
JSONObject sharerObj = (JSONObject) sharer;
|
JSONObject sharerObj = (JSONObject) sharer;
|
||||||
if(sharerObj.containsKey("name")) {
|
if(sharerObj.containsKey("name")) {
|
||||||
@@ -317,11 +333,11 @@ public class SysLogBookingService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
String getOriginSharerName = String.join(";", originSharerName);
|
String getOriginSharerName = String.join(";", originSharerName);
|
||||||
String getSharerName= String.join(";", String.join(";", sharerName));
|
String getSharerName= String.join(";", sharerName);
|
||||||
if(!Objects.equals(getOriginSharerName, getSharerName)) {
|
if(!Objects.equals(getOriginSharerName, getSharerName)) {
|
||||||
sysLogBooking.setChangeFrom(getOriginSharerName);
|
sysLogBooking.setChangeFrom(getOriginSharerName);
|
||||||
sysLogBooking.setChangeTo(getSharerName);
|
sysLogBooking.setChangeTo(getSharerName);
|
||||||
addList.add(sysLogBooking);
|
addList.add(cloneLog(sysLogBooking));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -280,4 +280,6 @@ public class BookingsDto implements Serializable {
|
|||||||
private String dlProfileId;
|
private String dlProfileId;
|
||||||
|
|
||||||
private String dlBlockId;
|
private String dlBlockId;
|
||||||
|
|
||||||
|
private Long approvalBookingId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -182,6 +182,8 @@ public class Bookings implements Serializable {
|
|||||||
private String dlPurchaseElementId;
|
private String dlPurchaseElementId;
|
||||||
@Column(name = "block_code")
|
@Column(name = "block_code")
|
||||||
private String blockCode;
|
private String blockCode;
|
||||||
|
@Column(name = "approval_booking_id")
|
||||||
|
private Long approvalBookingId;
|
||||||
|
|
||||||
//-- For export
|
//-- For export
|
||||||
@Transient
|
@Transient
|
||||||
|
|||||||
@@ -470,6 +470,7 @@ public class OtherBookingService {
|
|||||||
BookingsDto booking = new BookingsDto();
|
BookingsDto booking = new BookingsDto();
|
||||||
BookingsDto originBooking = new BookingsDto();
|
BookingsDto originBooking = new BookingsDto();
|
||||||
BookingsDto waitListBooking = new BookingsDto();
|
BookingsDto waitListBooking = new BookingsDto();
|
||||||
|
//BookingsDto approvalBooking = new BookingsDto();
|
||||||
|
|
||||||
// 使用request对象直接获取值
|
// 使用request对象直接获取值
|
||||||
Long bookId = otherPropertyCreateUpdateRequest.getId(); // 需要添加id字段到request对象
|
Long bookId = otherPropertyCreateUpdateRequest.getId(); // 需要添加id字段到request对象
|
||||||
@@ -706,6 +707,11 @@ public class OtherBookingService {
|
|||||||
waitListBooking.setConfirmationNo(confirmationNo);
|
waitListBooking.setConfirmationNo(confirmationNo);
|
||||||
bookingDao.save(bookingMapper.toBooking(waitListBooking));
|
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");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
String ciDate = selectDate.get(0);
|
String ciDate = selectDate.get(0);
|
||||||
String coDate = selectDate.get(1);
|
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 bookType = param.get("bookType")!=null? String.valueOf(param.get("bookType")):null;
|
||||||
String confirmationNo = param.get("confirmationNo")!=null? String.valueOf(param.get("confirmationNo")):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;
|
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;
|
Map<String, Object> member = null;
|
||||||
if (param.get("member") instanceof Map) {
|
if (param.get("member") instanceof Map) {
|
||||||
member = (Map<String, Object>) param.get("member");
|
member = (Map<String, Object>) param.get("member");
|
||||||
@@ -267,6 +268,7 @@ public class WaitlistService {
|
|||||||
booking.setCreatedAt(createDate);
|
booking.setCreatedAt(createDate);
|
||||||
booking.setCreatedBy(userId);
|
booking.setCreatedBy(userId);
|
||||||
booking.setSectionId(sectionId);
|
booking.setSectionId(sectionId);
|
||||||
|
booking.setSectionName(section);
|
||||||
booking.setRoomId(roomId);
|
booking.setRoomId(roomId);
|
||||||
|
|
||||||
|
|
||||||
@@ -366,7 +368,7 @@ public class WaitlistService {
|
|||||||
|
|
||||||
ArrayList<BookingsDto> booksList = new ArrayList<>();
|
ArrayList<BookingsDto> booksList = new ArrayList<>();
|
||||||
booksList.add(booking);
|
booksList.add(booking);
|
||||||
sysLogBookingService.saveLogBooking(booksList, request, "", "", "Create Booking Test waitlist", "");
|
sysLogBookingService.saveLogBooking(booksList, request, "", "", "Create Booking waitlist", "");
|
||||||
}
|
}
|
||||||
|
|
||||||
processResult.setSuccess(true);
|
processResult.setSuccess(true);
|
||||||
@@ -389,6 +391,7 @@ public class WaitlistService {
|
|||||||
String bookType = param.get("bookType")!=null? String.valueOf(param.get("bookType")):null;
|
String bookType = param.get("bookType")!=null? String.valueOf(param.get("bookType")):null;
|
||||||
String confirmationNo = param.get("confirmationNo")!=null? String.valueOf(param.get("confirmationNo")):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;
|
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;
|
String remarks = param.get("remarks")!=null? String.valueOf(param.get("remarks")):null;
|
||||||
|
|
||||||
Map<String, Object> member = null;
|
Map<String, Object> member = null;
|
||||||
@@ -519,6 +522,7 @@ public class WaitlistService {
|
|||||||
booking.setCreatedAt(createDate);
|
booking.setCreatedAt(createDate);
|
||||||
booking.setCreatedBy(userId);
|
booking.setCreatedBy(userId);
|
||||||
booking.setSectionId(sectionId);
|
booking.setSectionId(sectionId);
|
||||||
|
booking.setSectionName(section);
|
||||||
booking.setRoomId(roomId);
|
booking.setRoomId(roomId);
|
||||||
booking.setCategory("DAYLIGHT");
|
booking.setCategory("DAYLIGHT");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user