This commit is contained in:
Mauve
2026-09-08 15:12:29 +08:00
commit 078ba3c713
672 changed files with 56677 additions and 0 deletions
@@ -0,0 +1,270 @@
package com.mgm.mcrm.player.controllers;
import java.sql.Date;
import java.util.ArrayList;
import java.util.List;
import com.mgm.mcrm.authorization.dtos.LoginUserInfo;
import com.mgm.mcrm.authorization.models.SysRouterPermission;
import com.mgm.mcrm.authorization.services.SysGroupPermissionService;
import com.mgm.mcrm.booking.dtos.BookingDto;
import com.mgm.mcrm.booking.models.Bookings;
import com.mgm.mcrm.common.constants.SysCommon;
import com.mgm.mcrm.common.dtos.BaseApiResponse;
import com.mgm.mcrm.common.dtos.mgm_api.TodoDashboardResult;
import com.mgm.mcrm.common.dtos.mgm_api.TodoDateListResult;
import com.mgm.mcrm.common.dtos.mgm_api.TodoDetailResult;
import com.mgm.mcrm.logging.models.SysLogETA;
import com.mgm.mcrm.player.dtos.request.*;
import com.mgm.mcrm.player.dtos.response.GetDashboardResponse;
import com.mgm.mcrm.player.dtos.response.GetTodoDetailResponse;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.Strings;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import com.mgm.mcrm.common.dtos.mgm_api.PlayerProfileEntry;
import com.mgm.mcrm.player.services.PlayerService;
import com.mgm.mcrm.player.services.TodoService;
import com.mgm.mcrm.logging.services.SysLogETAService;
@RestController
@CrossOrigin(origins = "*")
@RequestMapping("/api")
public class TodoController {
@Resource
private TodoService todoService;
@Resource
private PlayerService playerService;
@Resource
private SysLogETAService sysLogETAService;
@Resource
private SysGroupPermissionService sysGroupPermissionService;
@RequestMapping(value = "/app/todo/get_dashboard_data", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResponseEntity<BaseApiResponse<TodoDashboardResult>> getTodoDashboard(HttpServletRequest request, @RequestBody GetDashboardRequest getDashboardRequest) throws Exception {
LoginUserInfo loginUser = SysCommon.parseUserFromToken(request);
String userId = loginUser.getLoginId();
String groupName = loginUser.getGroupName();
BaseApiResponse<TodoDashboardResult> result = new BaseApiResponse<>();
boolean viewTodoDashboard = sysGroupPermissionService.checkGroupPermission(groupName, "10001_04");
viewTodoDashboard = true;
if(viewTodoDashboard) {
GetDashboardResponse getDashboardResponse = todoService.getTodoDashboard(userId);
if(getDashboardResponse.isSuccess()) {
result.setSuccess(true);
result.setData(getDashboardResponse.getReturnData());
}else {
result.setSuccess(false);
result.setMessage(getDashboardResponse.getErrorMessage());
result.setCode(getDashboardResponse.getErrorCode());
}
}else {
result.setSuccess(false);
result.setCode("NO_PERMISSION");
}
return ResponseEntity.status(HttpStatus.OK).body(result);
}
@RequestMapping(value = "/app/todo/get_todolist_details", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResponseEntity<BaseApiResponse<TodoDetailResult>> getTodoDetail(HttpServletRequest request, @RequestBody GetTodoDetailRequest getTodoDetailRequest) throws Exception {
String playerId = getTodoDetailRequest.getPlayerId();
String todoSegment = getTodoDetailRequest.getTodosegment();
String todoCategory = getTodoDetailRequest.getTodoCategory();
String date = getTodoDetailRequest.getDate();
date = date.split("T")[0];
BaseApiResponse<TodoDetailResult> result = new BaseApiResponse<>();
GetTodoDetailResponse getTodoDetailResponse = todoService.getTodoDetail(playerId,todoCategory,todoSegment,date);
if(getTodoDetailResponse.isSuccess()) {
result.setSuccess(true);
result.setData(getTodoDetailResponse.getReturnData());
}else {
result.setSuccess(false);
result.setCode(getTodoDetailResponse.getErrorCode());
}
return ResponseEntity.status(HttpStatus.OK).body(result);
}
@RequestMapping(value = "/app/todo/get_todolist", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResponseEntity<BaseApiResponse<TodoDateListResult>> getTodoList(HttpServletRequest request, @RequestBody GetTodoListRequest params) throws Exception {
LoginUserInfo loginUser = SysCommon.parseUserFromToken(request);
String type = params.getTodoSegment();
String category = params.getTodoCategory();
Date startDate = Date.valueOf(params.getStartDate());
Date endDate = Date.valueOf(params.getEndDate());
String userId = loginUser.getLoginId();
String groupName = loginUser.getGroupName();
boolean viewTodoList = sysGroupPermissionService.checkGroupPermission(groupName, "10001_03");
BaseApiResponse<TodoDateListResult> result = new BaseApiResponse<>();
viewTodoList = true;
if(viewTodoList) {
BaseApiResponse<TodoDateListResult> serviceResult = todoService.getTodoList(userId,category,type,startDate,endDate);
if(serviceResult.isSuccess()) {
result.setSuccess(true);
result.setData(serviceResult.getData());
}else {
result.setSuccess(false);
result.setCode(serviceResult.getCode());
}
}else {
result.setSuccess(false);
result.setCode("NO_PERMISSION");
}
return ResponseEntity.status(HttpStatus.OK).body(result);
}
@RequestMapping(value = "/app/todo/change_date", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResponseEntity<BaseApiResponse<BookingDto>> changeDate(HttpServletRequest request, @RequestBody TodoChangeDateRequest bookingParams) throws Exception {
BaseApiResponse<BookingDto> result = new BaseApiResponse<>();
result.setRequestData(bookingParams);
LoginUserInfo loginUser = SysCommon.parseUserFromToken(request);
String userId = loginUser.getLoginId();
String groupName = loginUser.getGroupName();
//--get group permissions
boolean cancelBooking = true;
List<SysRouterPermission> userPermissions = new ArrayList<SysRouterPermission>();
userPermissions = sysGroupPermissionService.getRouterPermissionsByGroupName(groupName);
if(userPermissions!=null && !userPermissions.isEmpty()) {
for(SysRouterPermission per:userPermissions) {
if(Strings.CS.equals(per.getId(), "10001_02") ) cancelBooking = true;
}
}
String playerId = bookingParams.getPlayerId()!=null? bookingParams.getPlayerId():null;
BaseApiResponse<PlayerProfileEntry> findPlayerProfileResult = playerService.findPlayerProfileByPlayerIdAndUserId(playerId, userId);
if(findPlayerProfileResult.isSuccess()) {
PlayerProfileEntry profile = findPlayerProfileResult.getData();
Integer code = profile.getCodedFlag();
if(code==1 && cancelBooking) {
BaseApiResponse<BookingDto> changeDateResult = todoService.changeBookingDate(bookingParams,request);
if(changeDateResult.isSuccess()) {
result.setSuccess(true);
result.setMessage(!StringUtils.isEmpty(changeDateResult.getMessage())?changeDateResult.getMessage():"Edit Success");
result.setData(changeDateResult.getData());
result.setRequestData(changeDateResult.getData());
}else {
result.setSuccess(false);
result.setMessage(changeDateResult.getMessage());
result.setCode(changeDateResult.getCode());
}
}else {
result.setSuccess(false);
result.setCode("NO_PERMISSION");
result.setMessage("No permission to cancel");
}
}else {
result.setSuccess(false);
result.setCode("CALL_API_ERROR");
result.setMessage(findPlayerProfileResult.getMessage());
}
return ResponseEntity.status(HttpStatus.OK).body(result);
}
@RequestMapping(value = "/app/todo/submit_ETA", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResponseEntity<BaseApiResponse<Bookings>> submitETA(HttpServletRequest request,
@RequestBody TodoSubmitETARequest params) throws Exception {
LoginUserInfo loginUser = SysCommon.parseUserFromToken(request);
String userId = loginUser.getLoginId();
String playerId = params.getPlayerId();
String etaTime = params.getEtaTime();
Long id = params.getId();
List<EtaRecordInfo> recordInfos = params.getRecordInfo();
BaseApiResponse<Bookings> result = new BaseApiResponse<>();
if(StringUtils.isNotEmpty(etaTime)) {
// 18:34 -> 18:34:00
// 18:34:00 -> 18:34:00
String[] split = etaTime.split(":");
if (split.length < 3) {
etaTime = etaTime + ":00";
} else {
etaTime = split[0] + ":" + split[1] + ":" + split[2];
}
}
BaseApiResponse<Bookings> submitResult = todoService.submitETA(etaTime, recordInfos, id);
SysLogETA sysLogETA = new SysLogETA();
java.util.Date now = new java.util.Date();
if(submitResult.isSuccess()) {
sysLogETA.setStatus(1);
result.setSuccess(true);
// result.setData(submitResult.getData());
}else {
sysLogETA.setStatus(0);
result.setSuccess(false);
result.setCode(submitResult.getCode());
}
sysLogETA.setUserId(userId);
sysLogETA.setPlayerId(playerId);
sysLogETA.setInputDateTime(etaTime.substring(0, 5));
sysLogETA.setCreatedAt(now);
sysLogETA.setUpdatedAt(now);
sysLogETAService.save(sysLogETA);
return ResponseEntity.status(HttpStatus.OK).body(result);
}
@RequestMapping(value = "/app/todo/cancel_booking", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")
public ResponseEntity<BaseApiResponse<Object>> cancelBooking(HttpServletRequest request,
@RequestBody TodoCancelBookingRequest cancelRequest) throws Exception {
LoginUserInfo loginUser = SysCommon.parseUserFromToken(request);
BaseApiResponse<Object> result = new BaseApiResponse<>();
//--
result.setRequestData(cancelRequest);
String userId = loginUser.getLoginId();
String groupName = loginUser.getGroupName();
//--get group permissions
boolean cancelBooking = true;
List<SysRouterPermission> userPermissions = sysGroupPermissionService.getRouterPermissionsByGroupName(groupName);
if(!userPermissions.isEmpty()) {
for(SysRouterPermission per:userPermissions) {
if(Strings.CS.equals(per.getId(), "10001_02") ) cancelBooking = true;
}
}
String playerId = cancelRequest.getPlayerId();
BaseApiResponse<PlayerProfileEntry> findPlayerProfileResult = playerService.findPlayerProfileByPlayerIdAndUserId(playerId, userId);
if(findPlayerProfileResult.isSuccess()) {
PlayerProfileEntry profile = findPlayerProfileResult.getData();
Integer code = profile.getCodedFlag();
if(code==1 && cancelBooking) {
BaseApiResponse<Object> cancelResult = todoService.cancelBooking(cancelRequest,request);
if(cancelResult.isSuccess()) {
result.setSuccess(true);
result.setMessage(!StringUtils.isEmpty(cancelResult.getMessage())?cancelResult.getMessage():"Cancel Success");
result.setData(cancelResult.getData());
result.setRequestData(cancelResult.getData());
}else {
result.setSuccess(false);
result.setMessage(cancelResult.getMessage());
result.setCode(cancelResult.getCode());
}
}else {
result.setSuccess(false);
result.setCode("NO_PERMISSION");
result.setMessage("No permission to cancel");
}
}else {
result.setSuccess(false);
result.setCode("CALL_API_ERROR");
result.setMessage(findPlayerProfileResult.getMessage());
}
return ResponseEntity.status(HttpStatus.OK).body(result);
}
}