worldEvent 추가
event > rewardEvent로 변경
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
package com.caliverse.admin.domain.api;
|
||||
|
||||
import com.caliverse.admin.domain.request.EventRequest;
|
||||
import com.caliverse.admin.domain.response.EventResponse;
|
||||
import com.caliverse.admin.domain.service.EventService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Tag(name = "이벤트", description = "이벤트 조회 및 발송 관리 메뉴 api")
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/v1/event")
|
||||
public class EventController {
|
||||
|
||||
private final EventService eventService;
|
||||
// 리스트 조회
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<EventResponse> getList(
|
||||
@RequestParam Map<String, String> requestParam){
|
||||
|
||||
return ResponseEntity.ok().body(eventService.getList(requestParam));
|
||||
}
|
||||
// 상세 조회
|
||||
@GetMapping("/detail/{id}")
|
||||
public ResponseEntity<EventResponse> getDetail(
|
||||
@PathVariable("id") Long id){
|
||||
|
||||
return ResponseEntity.ok().body(eventService.getDetail(id));
|
||||
}
|
||||
@PostMapping
|
||||
public ResponseEntity<EventResponse> postEvent(
|
||||
@RequestBody EventRequest eventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(eventService.postEvent(eventRequest));
|
||||
}
|
||||
@PutMapping("/{id}")
|
||||
public ResponseEntity<EventResponse> updateEvent(
|
||||
@PathVariable("id")Long id, @RequestBody EventRequest eventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(eventService.updateEvent(id, eventRequest));
|
||||
}
|
||||
@DeleteMapping("/delete")
|
||||
public ResponseEntity<EventResponse> deleteEvent(
|
||||
@RequestBody EventRequest eventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(eventService.deleteEvent(eventRequest));
|
||||
}
|
||||
@PostMapping("/item")
|
||||
public ResponseEntity<EventResponse> getItem(
|
||||
@RequestBody Map<String, String> item) {
|
||||
return ResponseEntity.ok().body(eventService.getMetaItem(item.get("item")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.caliverse.admin.domain.api;
|
||||
|
||||
import com.caliverse.admin.domain.request.RewardEventRequest;
|
||||
import com.caliverse.admin.domain.response.RewardEventResponse;
|
||||
import com.caliverse.admin.domain.service.RewardEventService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Tag(name = "보상 이벤트", description = "보상 이벤트 조회 및 발송 관리 메뉴 api")
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/v1/event")
|
||||
public class RewardEventController {
|
||||
|
||||
private final RewardEventService rewardEventService;
|
||||
// 리스트 조회
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<RewardEventResponse> getList(
|
||||
@RequestParam Map<String, String> requestParam){
|
||||
|
||||
return ResponseEntity.ok().body(rewardEventService.getList(requestParam));
|
||||
}
|
||||
// 상세 조회
|
||||
@GetMapping("/detail/{id}")
|
||||
public ResponseEntity<RewardEventResponse> getDetail(
|
||||
@PathVariable("id") Long id){
|
||||
|
||||
return ResponseEntity.ok().body(rewardEventService.getDetail(id));
|
||||
}
|
||||
@PostMapping
|
||||
public ResponseEntity<RewardEventResponse> postEvent(
|
||||
@RequestBody RewardEventRequest rewardEventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(rewardEventService.postEvent(rewardEventRequest));
|
||||
}
|
||||
@PutMapping("/{id}")
|
||||
public ResponseEntity<RewardEventResponse> updateEvent(
|
||||
@PathVariable("id")Long id, @RequestBody RewardEventRequest rewardEventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(rewardEventService.updateEvent(id, rewardEventRequest));
|
||||
}
|
||||
@DeleteMapping("/delete")
|
||||
public ResponseEntity<RewardEventResponse> deleteEvent(
|
||||
@RequestBody RewardEventRequest rewardEventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(rewardEventService.deleteEvent(rewardEventRequest));
|
||||
}
|
||||
@PostMapping("/item")
|
||||
public ResponseEntity<RewardEventResponse> getItem(
|
||||
@RequestBody Map<String, String> item) {
|
||||
return ResponseEntity.ok().body(rewardEventService.getMetaItem(item.get("item")));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.caliverse.admin.domain.api;
|
||||
|
||||
import com.caliverse.admin.domain.request.WorldEventRequest;
|
||||
import com.caliverse.admin.domain.response.WorldEventResponse;
|
||||
import com.caliverse.admin.domain.service.WorldEventService;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
@Tag(name = "월드이벤트", description = "월드이벤트 api")
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/api/v1/world-event")
|
||||
public class WorldEventController {
|
||||
private final WorldEventService worldEventService;
|
||||
|
||||
@GetMapping("/list")
|
||||
public ResponseEntity<WorldEventResponse> getWorldEventList(
|
||||
@RequestParam Map<String, String> requestParam){
|
||||
return ResponseEntity.ok().body( worldEventService.getList(requestParam));
|
||||
}
|
||||
|
||||
@GetMapping("/detail/{id}")
|
||||
public ResponseEntity<WorldEventResponse> getWorldEventDetail(
|
||||
@PathVariable("id") Long id){
|
||||
return ResponseEntity.ok().body( worldEventService.getDetail(id));
|
||||
}
|
||||
|
||||
@PostMapping
|
||||
public ResponseEntity<WorldEventResponse> postWorldEvent(
|
||||
@RequestBody WorldEventRequest worldEventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(worldEventService.postWorldEvent(worldEventRequest));
|
||||
}
|
||||
|
||||
@PutMapping("/{id}")
|
||||
public ResponseEntity<WorldEventResponse> updateWorldEvent(
|
||||
@PathVariable("id")Long id, @RequestBody WorldEventRequest worldEventRequest){
|
||||
|
||||
return ResponseEntity.ok().body(worldEventService.updateWorldEvent(id, worldEventRequest));
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
public ResponseEntity<WorldEventResponse> deleteWorldEvent(
|
||||
@RequestParam Long id){
|
||||
|
||||
return ResponseEntity.ok().body(worldEventService.deleteWorldEvent(id));
|
||||
}
|
||||
}
|
||||
@@ -1,30 +1,29 @@
|
||||
package com.caliverse.admin.domain.dao.admin;
|
||||
|
||||
import com.caliverse.admin.domain.entity.Item;
|
||||
import com.caliverse.admin.domain.entity.Event;
|
||||
import com.caliverse.admin.domain.entity.Mail;
|
||||
import com.caliverse.admin.domain.entity.RewardEvent;
|
||||
import com.caliverse.admin.domain.entity.Message;
|
||||
import com.caliverse.admin.domain.request.EventRequest;
|
||||
import com.caliverse.admin.domain.request.RewardEventRequest;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public interface EventMapper {
|
||||
public interface RewardEventMapper {
|
||||
|
||||
List<Event> getEventList(Map map);
|
||||
List<RewardEvent> getEventList(Map map);
|
||||
int getAllCnt(Map map);
|
||||
int getTotal();
|
||||
Event getEventDetail(Long id);
|
||||
RewardEvent getEventDetail(Long id);
|
||||
|
||||
List<Message> getMessage(Long id);
|
||||
|
||||
List<Item> getItem(Long id);
|
||||
int postEvent(EventRequest mailRequest);
|
||||
int postEvent(RewardEventRequest mailRequest);
|
||||
|
||||
void insertMessage(Map map);
|
||||
void insertItem(Map map);
|
||||
int updateEvent(EventRequest mailRequest);
|
||||
int updateEvent(RewardEventRequest mailRequest);
|
||||
|
||||
int deleteMessage(Map map);
|
||||
|
||||
@@ -35,5 +34,5 @@ public interface EventMapper {
|
||||
int updateStatusEvent(Map map);
|
||||
int updateAddFlag(Long id);
|
||||
|
||||
List<Event> getScheduleEventList();
|
||||
List<RewardEvent> getScheduleEventList();
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.caliverse.admin.domain.dao.admin;
|
||||
|
||||
import com.caliverse.admin.domain.entity.WorldEvent;
|
||||
import com.caliverse.admin.domain.request.WorldEventRequest;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
public interface WorldEventMapper {
|
||||
|
||||
List<WorldEvent> getWorldEventList(Map map);
|
||||
int getTotal();
|
||||
WorldEvent getWorldEventDetail(Long id);
|
||||
|
||||
int postWorldEvent(WorldEventRequest worldEventRequest);
|
||||
int updateWorldEvent(WorldEventRequest worldEventRequest);
|
||||
int deleteWorldEvent(Map map);
|
||||
|
||||
int checkOverlap(WorldEventRequest worldEventRequest);
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.caliverse.admin.domain.request;
|
||||
|
||||
import com.caliverse.admin.domain.entity.Item;
|
||||
import com.caliverse.admin.domain.entity.Event;
|
||||
import com.caliverse.admin.domain.entity.RewardEvent;
|
||||
import com.caliverse.admin.domain.entity.Message;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.*;
|
||||
@@ -13,7 +13,7 @@ import java.util.List;
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class EventRequest {
|
||||
public class RewardEventRequest {
|
||||
|
||||
private Long id;
|
||||
@JsonProperty("mail_list")
|
||||
@@ -21,7 +21,7 @@ public class EventRequest {
|
||||
@JsonProperty("item_list")
|
||||
private List<Item> itemList; // 아이템
|
||||
@JsonProperty("event_type")
|
||||
private Event.EVENTTYPE eventType;
|
||||
private RewardEvent.EVENTTYPE eventType;
|
||||
@JsonProperty("start_dt")
|
||||
private LocalDateTime startDt; // 시작 시간
|
||||
@JsonProperty("end_dt")
|
||||
@@ -37,6 +37,6 @@ public class EventRequest {
|
||||
private LocalDateTime updateDt;
|
||||
|
||||
//삭제용 id
|
||||
private List<Event> list;
|
||||
private List<RewardEvent> list;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.caliverse.admin.domain.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class WorldEventRequest {
|
||||
|
||||
private Long id;
|
||||
private String title;
|
||||
@JsonProperty("start_dt")
|
||||
private LocalDateTime startDt;
|
||||
@JsonProperty("end_dt")
|
||||
private LocalDateTime endDt;
|
||||
@JsonProperty("global_event_action_id")
|
||||
private Integer globalEventActionId;
|
||||
@JsonProperty("personal_event_action_id")
|
||||
private Integer personalEventActionId;
|
||||
@JsonProperty("max_point")
|
||||
private Integer maxPoint;
|
||||
|
||||
@JsonProperty("create_by")
|
||||
private Long createBy;
|
||||
@JsonProperty("create_dt")
|
||||
private LocalDateTime createDt;
|
||||
@JsonProperty("update_by")
|
||||
private Long updateBy;
|
||||
@JsonProperty("update_dt")
|
||||
private LocalDateTime updateDt;
|
||||
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.caliverse.admin.domain.response;
|
||||
|
||||
import com.caliverse.admin.domain.entity.Event;
|
||||
import com.caliverse.admin.domain.entity.RewardEvent;
|
||||
import com.caliverse.admin.domain.entity.Item;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
@@ -15,7 +15,7 @@ import java.util.List;
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class EventResponse {
|
||||
public class RewardEventResponse {
|
||||
private int status;
|
||||
|
||||
private String result;
|
||||
@@ -31,10 +31,10 @@ public class EventResponse {
|
||||
private String message;
|
||||
|
||||
@JsonProperty("detail")
|
||||
private Event event;
|
||||
private RewardEvent rewardEvent;
|
||||
|
||||
@JsonProperty("list")
|
||||
private List<Event> eventList;
|
||||
private List<RewardEvent> rewardEventList;
|
||||
private int total;
|
||||
@JsonProperty("total_all")
|
||||
private int totalAll;
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.caliverse.admin.domain.response;
|
||||
|
||||
import com.caliverse.admin.domain.entity.MenuBanner;
|
||||
import com.caliverse.admin.domain.entity.WorldEvent;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class WorldEventResponse {
|
||||
private int status;
|
||||
|
||||
private String result;
|
||||
|
||||
@JsonProperty("data")
|
||||
private ResultData resultData;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
public static class ResultData{
|
||||
|
||||
private String message;
|
||||
|
||||
@JsonProperty("detail")
|
||||
private WorldEvent worldEvent;
|
||||
|
||||
@JsonProperty("list")
|
||||
private List<WorldEvent> worldEventList;
|
||||
|
||||
private int total;
|
||||
@JsonProperty("total_all")
|
||||
private int totalAll;
|
||||
@JsonProperty("page_no")
|
||||
private int pageNo;
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
package com.caliverse.admin.domain.service;
|
||||
|
||||
import com.caliverse.admin.domain.dao.admin.EventMapper;
|
||||
import com.caliverse.admin.domain.dao.admin.RewardEventMapper;
|
||||
import com.caliverse.admin.domain.datacomponent.MetaDataHandler;
|
||||
import com.caliverse.admin.domain.entity.*;
|
||||
import com.caliverse.admin.domain.entity.log.LogAction;
|
||||
import com.caliverse.admin.domain.entity.log.LogStatus;
|
||||
import com.caliverse.admin.domain.request.EventRequest;
|
||||
import com.caliverse.admin.domain.response.EventResponse;
|
||||
import com.caliverse.admin.domain.request.RewardEventRequest;
|
||||
import com.caliverse.admin.domain.response.RewardEventResponse;
|
||||
import com.caliverse.admin.dynamodb.service.DynamodbMailService;
|
||||
import com.caliverse.admin.dynamodb.service.DynamodbService;
|
||||
import com.caliverse.admin.global.common.annotation.BusinessProcess;
|
||||
@@ -20,7 +20,6 @@ import com.caliverse.admin.global.component.manager.BusinessProcessIdManager;
|
||||
import com.caliverse.admin.mongodb.service.MysqlHistoryLogService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.json.JSONObject;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.transaction.support.TransactionSynchronization;
|
||||
@@ -34,30 +33,30 @@ import java.util.Map;
|
||||
@Service
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
public class EventService {
|
||||
public class RewardEventService {
|
||||
private final DynamodbService dynamodbService;
|
||||
private final DynamodbMailService dynamodbMailService;
|
||||
|
||||
private final EventMapper eventMapper;
|
||||
private final RewardEventMapper rewardEventMapper;
|
||||
private final MetaDataHandler metaDataHandler;
|
||||
private final MysqlHistoryLogService mysqlHistoryLogService;
|
||||
private final BusinessProcessIdManager processIdManager;
|
||||
|
||||
@RequestLog
|
||||
public EventResponse getList(Map requestParam){
|
||||
public RewardEventResponse getList(Map requestParam){
|
||||
//페이징 처리
|
||||
requestParam = CommonUtils.pageSetting(requestParam);
|
||||
|
||||
List<Event> list = eventMapper.getEventList(requestParam);
|
||||
List<RewardEvent> list = rewardEventMapper.getEventList(requestParam);
|
||||
|
||||
int allCnt = eventMapper.getAllCnt(requestParam);
|
||||
int allCnt = rewardEventMapper.getAllCnt(requestParam);
|
||||
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.eventList(list)
|
||||
.total(eventMapper.getTotal())
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.rewardEventList(list)
|
||||
.total(rewardEventMapper.getTotal())
|
||||
.totalAll(allCnt)
|
||||
.pageNo(requestParam.get("page_no")!=null?
|
||||
Integer.valueOf(requestParam.get("page_no").toString()):1)
|
||||
@@ -67,24 +66,24 @@ public class EventService {
|
||||
}
|
||||
|
||||
@RequestLog
|
||||
public EventResponse getDetail(Long id){
|
||||
Event event = eventMapper.getEventDetail(id);
|
||||
public RewardEventResponse getDetail(Long id){
|
||||
RewardEvent rewardEvent = rewardEventMapper.getEventDetail(id);
|
||||
|
||||
event.setMailList(eventMapper.getMessage(id));
|
||||
List<Item> itemList = eventMapper.getItem(id);
|
||||
rewardEvent.setMailList(rewardEventMapper.getMessage(id));
|
||||
List<Item> itemList = rewardEventMapper.getItem(id);
|
||||
for(Item item : itemList){
|
||||
String itemName = metaDataHandler.getMetaItemNameData(Integer.parseInt(item.getItem()));
|
||||
item.setItemName(metaDataHandler.getTextStringData(itemName));
|
||||
}
|
||||
event.setItemList(itemList);
|
||||
rewardEvent.setItemList(itemList);
|
||||
|
||||
log.info("getDetail call User Email: {}, event_id: {}", CommonUtils.getAdmin().getEmail(), id);
|
||||
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.event(event)
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.rewardEvent(rewardEvent)
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
@@ -92,37 +91,37 @@ public class EventService {
|
||||
@BusinessProcess(action = LogAction.EVENT)
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
@RequestLog
|
||||
public EventResponse postEvent(EventRequest eventRequest){
|
||||
eventRequest.setCreateBy(CommonUtils.getAdmin().getId());
|
||||
public RewardEventResponse postEvent(RewardEventRequest rewardEventRequest){
|
||||
rewardEventRequest.setCreateBy(CommonUtils.getAdmin().getId());
|
||||
|
||||
int result = eventMapper.postEvent(eventRequest);
|
||||
log.info("postEvent AdminToolDB Event Save id: {}", eventRequest.getId());
|
||||
int result = rewardEventMapper.postEvent(rewardEventRequest);
|
||||
log.info("postEvent AdminToolDB Event Save id: {}", rewardEventRequest.getId());
|
||||
|
||||
long event_id = eventRequest.getId();
|
||||
long event_id = rewardEventRequest.getId();
|
||||
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("mailId",String.valueOf(event_id));
|
||||
|
||||
//아이템 저장
|
||||
if(eventRequest.getItemList()!= null && !eventRequest.getItemList().isEmpty()){
|
||||
eventRequest.getItemList().forEach(
|
||||
if(rewardEventRequest.getItemList()!= null && !rewardEventRequest.getItemList().isEmpty()){
|
||||
rewardEventRequest.getItemList().forEach(
|
||||
item -> {
|
||||
map.put("goodsId",item.getItem());
|
||||
map.put("itemCnt",String.valueOf(item.getItemCnt()));
|
||||
eventMapper.insertItem(map);
|
||||
rewardEventMapper.insertItem(map);
|
||||
}
|
||||
);
|
||||
}
|
||||
log.info("postEvent AdminToolDB Item Save Complete");
|
||||
|
||||
//메시지 저장
|
||||
if(eventRequest.getMailList()!= null && !eventRequest.getMailList().isEmpty()){
|
||||
eventRequest.getMailList().forEach(
|
||||
if(rewardEventRequest.getMailList()!= null && !rewardEventRequest.getMailList().isEmpty()){
|
||||
rewardEventRequest.getMailList().forEach(
|
||||
item -> {
|
||||
map.put("title",item.getTitle());
|
||||
map.put("content",item.getContent());
|
||||
map.put("language",item.getLanguage());
|
||||
eventMapper.insertMessage(map);
|
||||
rewardEventMapper.insertMessage(map);
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -130,9 +129,9 @@ public class EventService {
|
||||
|
||||
String prodId = processIdManager.getCurrentProcessId();
|
||||
|
||||
Event event = eventMapper.getEventDetail(event_id);
|
||||
event.setMailList(eventMapper.getMessage(event_id));
|
||||
event.setItemList(eventMapper.getItem(event_id));
|
||||
RewardEvent rewardEvent = rewardEventMapper.getEventDetail(event_id);
|
||||
rewardEvent.setMailList(rewardEventMapper.getMessage(event_id));
|
||||
rewardEvent.setItemList(rewardEventMapper.getItem(event_id));
|
||||
|
||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||
@Override
|
||||
@@ -144,7 +143,7 @@ public class EventService {
|
||||
LogStatus.SUCCESS,
|
||||
MysqlConstants.TABLE_NAME_EVENT,
|
||||
"",
|
||||
event
|
||||
rewardEvent
|
||||
);
|
||||
} catch (Exception e) {
|
||||
log.warn("Failed to log event creation: {}", e.getMessage());
|
||||
@@ -152,10 +151,10 @@ public class EventService {
|
||||
}
|
||||
});
|
||||
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.SAVE.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
@@ -164,52 +163,52 @@ public class EventService {
|
||||
@BusinessProcess(action = LogAction.EVENT)
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
@RequestLog
|
||||
public EventResponse updateEvent(Long id, EventRequest eventRequest) {
|
||||
eventRequest.setId(id);
|
||||
eventRequest.setUpdateBy(CommonUtils.getAdmin().getId());
|
||||
eventRequest.setUpdateDt(LocalDateTime.now());
|
||||
public RewardEventResponse updateEvent(Long id, RewardEventRequest rewardEventRequest) {
|
||||
rewardEventRequest.setId(id);
|
||||
rewardEventRequest.setUpdateBy(CommonUtils.getAdmin().getId());
|
||||
rewardEventRequest.setUpdateDt(LocalDateTime.now());
|
||||
|
||||
Long event_id = eventRequest.getId();
|
||||
Event before_info = eventMapper.getEventDetail(event_id);
|
||||
before_info.setMailList(eventMapper.getMessage(event_id));
|
||||
before_info.setItemList(eventMapper.getItem(event_id));
|
||||
Long event_id = rewardEventRequest.getId();
|
||||
RewardEvent before_info = rewardEventMapper.getEventDetail(event_id);
|
||||
before_info.setMailList(rewardEventMapper.getMessage(event_id));
|
||||
before_info.setItemList(rewardEventMapper.getItem(event_id));
|
||||
|
||||
int result = eventMapper.updateEvent(eventRequest);
|
||||
int result = rewardEventMapper.updateEvent(rewardEventRequest);
|
||||
|
||||
Map<String, String> map = new HashMap<>();
|
||||
map.put("mailId", String.valueOf(event_id));
|
||||
|
||||
// item 테이블 데이터 삭제 처리 by event_id
|
||||
eventMapper.deleteItem(map);
|
||||
rewardEventMapper.deleteItem(map);
|
||||
|
||||
// 아이템 업데이트
|
||||
if (eventRequest.getItemList() != null && !eventRequest.getItemList().isEmpty()) {
|
||||
eventRequest.getItemList().forEach(item -> {
|
||||
if (rewardEventRequest.getItemList() != null && !rewardEventRequest.getItemList().isEmpty()) {
|
||||
rewardEventRequest.getItemList().forEach(item -> {
|
||||
map.put("goodsId", item.getItem());
|
||||
map.put("itemCnt", String.valueOf(item.getItemCnt()));
|
||||
|
||||
eventMapper.insertItem(map);
|
||||
rewardEventMapper.insertItem(map);
|
||||
});
|
||||
}
|
||||
|
||||
// message 테이블 데이터 삭제 처리 by mail_id
|
||||
eventMapper.deleteMessage(map);
|
||||
rewardEventMapper.deleteMessage(map);
|
||||
|
||||
// 메시지 업데이트
|
||||
if (eventRequest.getMailList() != null && !eventRequest.getMailList().isEmpty()) {
|
||||
eventRequest.getMailList().forEach(item -> {
|
||||
if (rewardEventRequest.getMailList() != null && !rewardEventRequest.getMailList().isEmpty()) {
|
||||
rewardEventRequest.getMailList().forEach(item -> {
|
||||
map.put("title", item.getTitle());
|
||||
map.put("content", item.getContent());
|
||||
map.put("language", item.getLanguage());
|
||||
|
||||
eventMapper.insertMessage(map);
|
||||
rewardEventMapper.insertMessage(map);
|
||||
});
|
||||
}
|
||||
log.info("updateEvent AdminToolDB Event Update Complete id: {}", eventRequest.getId());
|
||||
log.info("updateEvent AdminToolDB Event Update Complete id: {}", rewardEventRequest.getId());
|
||||
|
||||
Event after_event = eventMapper.getEventDetail(event_id);
|
||||
after_event.setMailList(eventMapper.getMessage(event_id));
|
||||
after_event.setItemList(eventMapper.getItem(event_id));
|
||||
RewardEvent after_Reward_event = rewardEventMapper.getEventDetail(event_id);
|
||||
after_Reward_event.setMailList(rewardEventMapper.getMessage(event_id));
|
||||
after_Reward_event.setItemList(rewardEventMapper.getItem(event_id));
|
||||
|
||||
String prodId = processIdManager.getCurrentProcessId();
|
||||
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
|
||||
@@ -223,7 +222,7 @@ public class EventService {
|
||||
MysqlConstants.TABLE_NAME_EVENT,
|
||||
"",
|
||||
before_info,
|
||||
after_event
|
||||
after_Reward_event
|
||||
);
|
||||
} catch (Exception e) {
|
||||
log.warn("Failed to log event creation: {}", e.getMessage());
|
||||
@@ -231,10 +230,10 @@ public class EventService {
|
||||
}
|
||||
});
|
||||
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.UPDATE.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
@@ -243,54 +242,54 @@ public class EventService {
|
||||
@BusinessProcess(action = LogAction.EVENT)
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
@RequestLog
|
||||
public EventResponse deleteEvent(EventRequest eventRequest){
|
||||
public RewardEventResponse deleteEvent(RewardEventRequest rewardEventRequest){
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
|
||||
eventRequest.getList().forEach(
|
||||
rewardEventRequest.getList().forEach(
|
||||
item->{
|
||||
Long event_id = item.getId();
|
||||
Event event = eventMapper.getEventDetail(event_id);
|
||||
event.setMailList(eventMapper.getMessage(event_id));
|
||||
event.setItemList(eventMapper.getItem(event_id));
|
||||
RewardEvent rewardEvent = rewardEventMapper.getEventDetail(event_id);
|
||||
rewardEvent.setMailList(rewardEventMapper.getMessage(event_id));
|
||||
rewardEvent.setItemList(rewardEventMapper.getItem(event_id));
|
||||
|
||||
map.put("id",event_id);
|
||||
map.put("desc", item.getDeleteDesc());
|
||||
int result = eventMapper.deleteEvent(map);
|
||||
int result = rewardEventMapper.deleteEvent(map);
|
||||
log.info("updateEvent AdminTool Delete Complete id: {}", event_id);
|
||||
}
|
||||
);
|
||||
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.DELETE.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
public List<Event> getScheduleMailList(){
|
||||
return eventMapper.getScheduleEventList();
|
||||
public List<RewardEvent> getScheduleMailList(){
|
||||
return rewardEventMapper.getScheduleEventList();
|
||||
}
|
||||
public List<Message> getMessageList(Long id){
|
||||
return eventMapper.getMessage(id);
|
||||
return rewardEventMapper.getMessage(id);
|
||||
}
|
||||
|
||||
public List<Item> getItemList(Long id){
|
||||
return eventMapper.getItem(id);
|
||||
return rewardEventMapper.getItem(id);
|
||||
}
|
||||
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
public void updateEventStatus(Long id, Event.EVENTSTATUS status){
|
||||
public void updateEventStatus(Long id, RewardEvent.EVENTSTATUS status){
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("id", id);
|
||||
map.put("status", status.toString());
|
||||
eventMapper.updateStatusEvent(map);
|
||||
rewardEventMapper.updateStatusEvent(map);
|
||||
log.info("updateEventStatus event status changed: {}", status);
|
||||
}
|
||||
|
||||
//메타 아이템
|
||||
public EventResponse getMetaItem(String metaId){
|
||||
public RewardEventResponse getMetaItem(String metaId){
|
||||
long id = Long.parseLong(metaId);
|
||||
String item = metaDataHandler.getMetaItemNameData((int) id);
|
||||
boolean isItem = (item != null && !item.isEmpty());
|
||||
@@ -298,40 +297,40 @@ public class EventService {
|
||||
Item item_info = new Item();
|
||||
item_info.setItem(metaId);
|
||||
item_info.setItemName(metaDataHandler.getTextStringData(item));
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.ITEM_EXIST.getMessage())
|
||||
.itemInfo(item_info)
|
||||
.build())
|
||||
.build();
|
||||
}else
|
||||
return EventResponse.builder()
|
||||
return RewardEventResponse.builder()
|
||||
.status(CommonCode.ERROR.getHttpStatus())
|
||||
.result(CommonCode.ERROR.getResult())
|
||||
.resultData(EventResponse.ResultData.builder()
|
||||
.resultData(RewardEventResponse.ResultData.builder()
|
||||
.message(ErrorCode.NOT_ITEM.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
public void insertSystemMail(Event event){
|
||||
public void insertSystemMail(RewardEvent rewardEvent){
|
||||
try {
|
||||
long event_id = event.getId();
|
||||
event.setMailList(eventMapper.getMessage(event_id));
|
||||
event.setItemList(eventMapper.getItem(event_id));
|
||||
long event_id = rewardEvent.getId();
|
||||
rewardEvent.setMailList(rewardEventMapper.getMessage(event_id));
|
||||
rewardEvent.setItemList(rewardEventMapper.getItem(event_id));
|
||||
|
||||
dynamodbMailService.insertSystemMail(event);
|
||||
dynamodbMailService.insertSystemMail(rewardEvent);
|
||||
|
||||
eventMapper.updateAddFlag(event_id);
|
||||
updateEventStatus(event_id, Event.EVENTSTATUS.RUNNING);
|
||||
rewardEventMapper.updateAddFlag(event_id);
|
||||
updateEventStatus(event_id, RewardEvent.EVENTSTATUS.RUNNING);
|
||||
|
||||
log.info("insertSystemMail Save Complete: {}", event.getId());
|
||||
log.info("insertSystemMail Save Complete: {}", rewardEvent.getId());
|
||||
}catch (Exception e){
|
||||
log.error("insertSystemMail Exception: {}", e.getMessage());
|
||||
updateEventStatus(event.getId(), Event.EVENTSTATUS.FAIL);
|
||||
updateEventStatus(rewardEvent.getId(), RewardEvent.EVENTSTATUS.FAIL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.caliverse.admin.domain.service;
|
||||
|
||||
import com.caliverse.admin.domain.dao.admin.WorldEventMapper;
|
||||
import com.caliverse.admin.domain.entity.WorldEvent;
|
||||
import com.caliverse.admin.domain.entity.log.LogAction;
|
||||
import com.caliverse.admin.domain.request.WorldEventRequest;
|
||||
import com.caliverse.admin.domain.response.WorldEventResponse;
|
||||
import com.caliverse.admin.dynamodb.service.DynamodbRankService;
|
||||
import com.caliverse.admin.dynamodb.service.DynamodbService;
|
||||
import com.caliverse.admin.global.common.annotation.BusinessProcess;
|
||||
import com.caliverse.admin.global.common.annotation.RequestLog;
|
||||
import com.caliverse.admin.global.common.code.CommonCode;
|
||||
import com.caliverse.admin.global.common.code.ErrorCode;
|
||||
import com.caliverse.admin.global.common.code.SuccessCode;
|
||||
import com.caliverse.admin.global.common.utils.CommonUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class WorldEventService {
|
||||
|
||||
private final WorldEventMapper worldEventMapper;
|
||||
private final DynamodbService dynamodbService;
|
||||
|
||||
@RequestLog
|
||||
public WorldEventResponse getList(Map requestParam){
|
||||
|
||||
//페이징 처리
|
||||
requestParam = CommonUtils.pageSetting(requestParam);
|
||||
|
||||
List<WorldEvent> list = worldEventMapper.getWorldEventList(requestParam);
|
||||
|
||||
return WorldEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(WorldEventResponse.ResultData.builder()
|
||||
.worldEventList(list)
|
||||
.total(worldEventMapper.getTotal())
|
||||
.totalAll(list.size())
|
||||
.pageNo(requestParam.get("page_no")!=null?
|
||||
Integer.parseInt(requestParam.get("page_no").toString()):1)
|
||||
.build()
|
||||
)
|
||||
.build();
|
||||
}
|
||||
|
||||
@RequestLog
|
||||
public WorldEventResponse getDetail(Long id){
|
||||
WorldEvent worldEvent = worldEventMapper.getWorldEventDetail(id);
|
||||
|
||||
return WorldEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(WorldEventResponse.ResultData.builder()
|
||||
.worldEvent(worldEvent)
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
@BusinessProcess(action = LogAction.WORLD_EVENT)
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
@RequestLog
|
||||
public WorldEventResponse postWorldEvent(WorldEventRequest worldEventRequest){
|
||||
worldEventRequest.setCreateBy(CommonUtils.getAdmin().getId());
|
||||
|
||||
worldEventMapper.postWorldEvent(worldEventRequest);
|
||||
|
||||
long event_id = worldEventRequest.getId();
|
||||
HashMap<String,String> map = new HashMap<>();
|
||||
map.put("id",String.valueOf(event_id));
|
||||
|
||||
log.info("postWorldEvent Insert World Event id: {}", worldEventRequest.getId());
|
||||
|
||||
WorldEvent worldEvent = worldEventMapper.getWorldEventDetail(worldEventRequest.getId());
|
||||
|
||||
dynamodbService.insertWorldEventSchedule(worldEventRequest);
|
||||
|
||||
return WorldEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(WorldEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.SAVE.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
@BusinessProcess(action = LogAction.WORLD_EVENT)
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
@RequestLog
|
||||
public WorldEventResponse updateWorldEvent(Long id, WorldEventRequest worldEventRequest) {
|
||||
worldEventRequest.setId(id);
|
||||
worldEventRequest.setUpdateBy(CommonUtils.getAdmin().getId());
|
||||
worldEventRequest.setUpdateDt(LocalDateTime.now());
|
||||
|
||||
Long event_id = worldEventRequest.getId();
|
||||
WorldEvent before_info = worldEventMapper.getWorldEventDetail(event_id);
|
||||
|
||||
worldEventMapper.updateWorldEvent(worldEventRequest);
|
||||
|
||||
log.info("updateWorldEvent Update World Event Complete: {}", worldEventRequest.getId());
|
||||
|
||||
WorldEvent after_info = worldEventMapper.getWorldEventDetail(event_id);
|
||||
|
||||
dynamodbService.updateWorldEventSchedule(worldEventRequest);
|
||||
|
||||
return WorldEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(WorldEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.UPDATE.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
@BusinessProcess(action = LogAction.WORLD_EVENT)
|
||||
@Transactional(transactionManager = "transactionManager")
|
||||
@RequestLog
|
||||
public WorldEventResponse deleteWorldEvent(Long id){
|
||||
Map<String,Object> map = new HashMap<>();
|
||||
map.put("id",id);
|
||||
|
||||
WorldEvent worldEvent = worldEventMapper.getWorldEventDetail(id);
|
||||
|
||||
if(worldEvent.getStartDt().isBefore(LocalDateTime.now())){
|
||||
return WorldEventResponse.builder()
|
||||
.status(CommonCode.ERROR.getHttpStatus())
|
||||
.result(CommonCode.ERROR.getResult())
|
||||
.resultData(WorldEventResponse.ResultData.builder()
|
||||
.message(ErrorCode.START_DATE_OVER.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
worldEventMapper.deleteWorldEvent(map);
|
||||
|
||||
log.info("deleteWorldEvent Delete World Event Complete id: {}", id);
|
||||
|
||||
dynamodbService.deleteWorldEventSchedule(worldEvent);
|
||||
|
||||
return WorldEventResponse.builder()
|
||||
.status(CommonCode.SUCCESS.getHttpStatus())
|
||||
.result(CommonCode.SUCCESS.getResult())
|
||||
.resultData(WorldEventResponse.ResultData.builder()
|
||||
.message(SuccessCode.DELETE.getMessage())
|
||||
.build())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
174
src/main/resources/mappers/RankMapper.xml
Normal file
174
src/main/resources/mappers/RankMapper.xml
Normal file
@@ -0,0 +1,174 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.caliverse.admin.domain.dao.admin.RankMapper">
|
||||
<resultMap id="RankScheduleResultMap" type="com.caliverse.admin.domain.entity.RankingSchedule">
|
||||
<id property="id" column="id"/>
|
||||
<result property="rowNum" column="row_num"/>
|
||||
<result property="guid" column="guid"/>
|
||||
<result property="title" column="title"/>
|
||||
<result property="metaId" column="meta_id"/>
|
||||
<result property="eventActionId" column="event_action_id"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="startDt" column="start_dt"/>
|
||||
<result property="endDt" column="end_dt"/>
|
||||
<result property="baseDt" column="base_dt"/>
|
||||
<result property="refreshInterval" column="refresh_interval"/>
|
||||
<result property="initializationInterval" column="initialization_interval"/>
|
||||
<result property="snapshotInterval" column="snapshot_interval"/>
|
||||
<result property="deleted" column="deleted"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createDt" column="create_dt"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateDt" column="update_dt"/>
|
||||
</resultMap>
|
||||
|
||||
<!--리스트 조회-->
|
||||
<select id="getRankingScheduleList" resultMap="RankScheduleResultMap" parameterType="map">
|
||||
SELECT * FROM (
|
||||
SELECT (@row_number:=@row_number + 1) AS row_num, c.*
|
||||
FROM (
|
||||
SELECT
|
||||
a.id,
|
||||
a.guid,
|
||||
a.title,
|
||||
a.meta_id,
|
||||
a.event_action_id,
|
||||
CASE
|
||||
WHEN NOW() < a.start_dt THEN 'WAIT'
|
||||
WHEN NOW() >= a.start_dt AND NOW() <= a.end_dt THEN 'RUNNING'
|
||||
WHEN NOW() > a.end_dt THEN 'FINISH'
|
||||
END AS status,
|
||||
a.start_dt,
|
||||
a.end_dt,
|
||||
a.base_dt,
|
||||
a.refresh_interval,
|
||||
a.initialization_interval,
|
||||
a.snapshot_interval,
|
||||
(SELECT email FROM admin WHERE id = a.create_by) AS create_by,
|
||||
a.create_dt,
|
||||
(SELECT email FROM admin WHERE id = a.update_by) AS update_by,
|
||||
a.update_dt
|
||||
FROM ranking_schedule a
|
||||
WHERE 1 = 1
|
||||
AND a.deleted = 0
|
||||
|
||||
<if test="searchData != null and searchData != ''">
|
||||
AND a.title LIKE CONCAT('%',#{searchData},'%')
|
||||
</if>
|
||||
|
||||
<if test="status != null and status != ''">
|
||||
<choose>
|
||||
<when test="status != 'ALL'">
|
||||
AND CASE
|
||||
WHEN NOW() < a.start_dt THEN 'WAIT'
|
||||
WHEN NOW() >= a.start_dt AND NOW() <= a.end_dt THEN 'RUNNING'
|
||||
WHEN NOW() > a.end_dt THEN 'FINISH'
|
||||
END = #{status}
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
|
||||
<if test="startDate != null and startDate != '' and endDate !=null and endDate!= ''">
|
||||
AND a.start_dt >= #{startDate, jdbcType=TIMESTAMP}
|
||||
AND a.end_dt <= #{endDate, jdbcType=TIMESTAMP}
|
||||
</if>
|
||||
|
||||
) c,
|
||||
(SELECT @row_number:=0) AS t
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN c.status = 'RUNNING' THEN 0
|
||||
WHEN c.status = 'WAIT' THEN 1
|
||||
WHEN c.status = 'FINISH' THEN 2
|
||||
ELSE 3
|
||||
END,
|
||||
c.create_dt
|
||||
) result
|
||||
<if test="orderby != null and orderby != ''">
|
||||
ORDER BY row_num ${orderby}
|
||||
</if>
|
||||
<if test="pageSize != null and pageSize != ''">
|
||||
LIMIT ${pageSize} OFFSET ${offset}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getTotal" resultType="java.lang.Integer" parameterType="map">
|
||||
SELECT count(*) FROM ranking_schedule WHERE deleted = 0
|
||||
</select>
|
||||
|
||||
<!--이벤트 상세 조회-->
|
||||
<select id="getRankingScheduleDetail" parameterType="java.lang.Long" resultMap="RankScheduleResultMap" >
|
||||
SELECT
|
||||
a.id
|
||||
, a.guid
|
||||
, a.title
|
||||
, a.meta_id
|
||||
, a.event_action_id
|
||||
, a.start_dt
|
||||
, a.end_dt
|
||||
, a.base_dt
|
||||
, a.refresh_interval
|
||||
, a.initialization_interval
|
||||
, a.snapshot_interval
|
||||
, CASE
|
||||
WHEN NOW() < a.start_dt THEN 'WAIT'
|
||||
WHEN NOW() >= a.start_dt AND NOW() <= a.end_dt THEN 'RUNNING'
|
||||
WHEN NOW() > a.end_dt THEN 'FINISH'
|
||||
END AS status
|
||||
, (SELECT email FROM admin WHERE id = a.create_by ) AS create_by
|
||||
, a.create_dt
|
||||
, (SELECT email FROM admin WHERE id = a.update_by ) AS update_by
|
||||
, a.update_dt
|
||||
FROM ranking_schedule a
|
||||
WHERE a.id = #{id}
|
||||
AND deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="checkOverlap" parameterType="com.caliverse.admin.domain.request.RankRequest" resultType="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM ranking_schedule a
|
||||
WHERE a.meta_id = #{metaId}
|
||||
AND a.deleted = 0
|
||||
AND a.meta_id != #{metaId}
|
||||
AND (
|
||||
(#{startDt} BETWEEN a.start_dt AND a.end_dt)
|
||||
OR (#{endDt} BETWEEN a.start_dt AND a.end_dt)
|
||||
OR (a.start_dt BETWEEN #{startDt} AND #{endDt})
|
||||
OR (a.end_dt BETWEEN #{startDt} AND #{endDt})
|
||||
)
|
||||
</select>
|
||||
|
||||
|
||||
<!--저장-->
|
||||
<insert id="postRankingSchedule" parameterType="com.caliverse.admin.domain.request.RankRequest" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO ranking_schedule (guid, title, meta_id, event_action_id, start_dt, end_dt, base_dt, refresh_interval, initialization_interval, snapshot_interval, create_by, update_by)
|
||||
VALUES (#{guid}, #{title}, #{metaId}, #{eventActionId}, #{startDt}, #{endDt}, #{baseDt}, #{refreshInterval}, #{initializationInterval}, #{snapshotInterval}, #{createBy}, #{updateBy})
|
||||
</insert>
|
||||
|
||||
<!--수정-->
|
||||
<update id="updateRankingSchedule" parameterType="com.caliverse.admin.domain.request.RankRequest">
|
||||
UPDATE ranking_schedule
|
||||
SET title = #{title}
|
||||
, meta_id = #{metaId}
|
||||
, event_action_id = #{eventActionId}
|
||||
, start_dt = #{startDt}
|
||||
, end_dt = #{endDt}
|
||||
, base_dt = #{baseDt}
|
||||
, refresh_interval = #{refreshInterval}
|
||||
, initialization_interval = #{initializationInterval}
|
||||
, snapshot_interval = #{snapshotInterval}
|
||||
, update_by = #{updateBy}
|
||||
, update_dt = NOW()
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<!--삭제-->
|
||||
<update id="deleteRankingSchedule" parameterType="map">
|
||||
UPDATE ranking_schedule
|
||||
SET deleted = 1
|
||||
, update_by = #{updateBy}
|
||||
, update_dt = NOW()
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.caliverse.admin.domain.dao.admin.EventMapper">
|
||||
<resultMap id="EventResultMap" type="com.caliverse.admin.domain.entity.Event">
|
||||
<mapper namespace="com.caliverse.admin.domain.dao.admin.RewardEventMapper">
|
||||
<resultMap id="RewardEventResultMap" type="com.caliverse.admin.domain.entity.RewardEvent">
|
||||
<id property="id" column="id"/>
|
||||
<result property="rowNum" column="row_num"/>
|
||||
<result property="eventType" column="event_type"/>
|
||||
@@ -22,7 +22,7 @@
|
||||
</resultMap>
|
||||
|
||||
<!--이벤트 리스트 조회-->
|
||||
<select id="getEventList" resultMap="EventResultMap" parameterType="map">
|
||||
<select id="getEventList" resultMap="RewardEventResultMap" parameterType="map">
|
||||
SELECT *
|
||||
FROM(
|
||||
SELECT (@row_number:=@row_number + 1) AS row_num , c.* FROM
|
||||
@@ -146,7 +146,7 @@
|
||||
</select>
|
||||
|
||||
<!--이벤트 상세 조회-->
|
||||
<select id="getEventDetail" parameterType="java.lang.Long" resultMap="EventResultMap" >
|
||||
<select id="getEventDetail" parameterType="java.lang.Long" resultMap="RewardEventResultMap" >
|
||||
SELECT
|
||||
a.id
|
||||
, a.event_type
|
||||
@@ -181,7 +181,7 @@
|
||||
</select>
|
||||
|
||||
<!--이벤트 저장-->
|
||||
<insert id="postEvent" parameterType="com.caliverse.admin.domain.request.EventRequest" useGeneratedKeys="true" keyProperty="id">
|
||||
<insert id="postEvent" parameterType="com.caliverse.admin.domain.request.RewardEventRequest" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO event (event_type, start_dt, end_dt, create_by)
|
||||
VALUES (#{eventType}, #{startDt}, #{endDt}, #{createBy})
|
||||
</insert>
|
||||
@@ -201,7 +201,7 @@
|
||||
</insert>
|
||||
|
||||
<!--이벤트 수정-->
|
||||
<update id="updateEvent" parameterType="com.caliverse.admin.domain.request.EventRequest">
|
||||
<update id="updateEvent" parameterType="com.caliverse.admin.domain.request.RewardEventRequest">
|
||||
UPDATE event SET event_type = #{eventType}
|
||||
, start_dt = #{startDt}
|
||||
, end_dt = #{endDt}
|
||||
@@ -240,7 +240,7 @@
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<select id="getScheduleEventList" resultMap="EventResultMap">
|
||||
<select id="getScheduleEventList" resultMap="RewardEventResultMap">
|
||||
SELECT id,
|
||||
event_type,
|
||||
status,
|
||||
158
src/main/resources/mappers/WorldEventMapper.xml
Normal file
158
src/main/resources/mappers/WorldEventMapper.xml
Normal file
@@ -0,0 +1,158 @@
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.caliverse.admin.domain.dao.admin.WorldEventMapper">
|
||||
<resultMap id="WorldEventResultMap" type="com.caliverse.admin.domain.entity.WorldEvent">
|
||||
<id property="id" column="id"/>
|
||||
<result property="rowNum" column="row_num"/>
|
||||
<result property="title" column="title"/>
|
||||
<result property="globalEventActionId" column="global_event_action_id"/>
|
||||
<result property="personalEventActionId" column="personal_event_action_id"/>
|
||||
<result property="status" column="status"/>
|
||||
<result property="startDt" column="start_dt"/>
|
||||
<result property="endDt" column="end_dt"/>
|
||||
<result property="maxPoint" column="max_point"/>
|
||||
<result property="deleted" column="deleted"/>
|
||||
<result property="createBy" column="create_by"/>
|
||||
<result property="createDt" column="create_dt"/>
|
||||
<result property="updateBy" column="update_by"/>
|
||||
<result property="updateDt" column="update_dt"/>
|
||||
</resultMap>
|
||||
|
||||
<!--리스트 조회-->
|
||||
<select id="getWorldEventList" resultMap="WorldEventResultMap" parameterType="map">
|
||||
SELECT * FROM (
|
||||
SELECT (@row_number:=@row_number + 1) AS row_num, c.*
|
||||
FROM (
|
||||
SELECT
|
||||
a.id,
|
||||
a.title,
|
||||
a.global_event_action_id,
|
||||
a.personal_event_action_id,
|
||||
CASE
|
||||
WHEN NOW() < a.start_dt THEN 'WAIT'
|
||||
WHEN NOW() >= a.start_dt AND NOW() <= a.end_dt THEN 'RUNNING'
|
||||
WHEN NOW() > a.end_dt THEN 'FINISH'
|
||||
END AS status,
|
||||
a.start_dt,
|
||||
a.end_dt,
|
||||
max_point,
|
||||
(SELECT email FROM admin WHERE id = a.create_by) AS create_by,
|
||||
a.create_dt,
|
||||
(SELECT email FROM admin WHERE id = a.update_by) AS update_by,
|
||||
a.update_dt
|
||||
FROM world_event a
|
||||
WHERE 1 = 1
|
||||
AND a.deleted = 0
|
||||
|
||||
<if test="searchData != null and searchData != ''">
|
||||
AND a.title LIKE CONCAT('%',#{searchData},'%')
|
||||
</if>
|
||||
|
||||
<if test="status != null and status != ''">
|
||||
<choose>
|
||||
<when test="status != 'ALL'">
|
||||
AND CASE
|
||||
WHEN NOW() < a.start_dt THEN 'WAIT'
|
||||
WHEN NOW() >= a.start_dt AND NOW() <= a.end_dt THEN 'RUNNING'
|
||||
WHEN NOW() > a.end_dt THEN 'FINISH'
|
||||
END = #{status}
|
||||
</when>
|
||||
</choose>
|
||||
</if>
|
||||
|
||||
<if test="startDate != null and startDate != '' and endDate !=null and endDate!= ''">
|
||||
AND a.start_dt >= #{startDate, jdbcType=TIMESTAMP}
|
||||
AND a.end_dt <= #{endDate, jdbcType=TIMESTAMP}
|
||||
</if>
|
||||
|
||||
) c,
|
||||
(SELECT @row_number:=0) AS t
|
||||
ORDER BY
|
||||
CASE
|
||||
WHEN c.status = 'RUNNING' THEN 0
|
||||
WHEN c.status = 'WAIT' THEN 1
|
||||
WHEN c.status = 'FINISH' THEN 2
|
||||
ELSE 3
|
||||
END,
|
||||
c.create_dt
|
||||
) result
|
||||
<if test="orderby != null and orderby != ''">
|
||||
ORDER BY row_num ${orderby}
|
||||
</if>
|
||||
<if test="pageSize != null and pageSize != ''">
|
||||
LIMIT ${pageSize} OFFSET ${offset}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="getTotal" resultType="java.lang.Integer" parameterType="map">
|
||||
SELECT count(*) FROM world_event WHERE deleted = 0
|
||||
</select>
|
||||
|
||||
<!--이벤트 상세 조회-->
|
||||
<select id="getWorldEventDetail" parameterType="java.lang.Long" resultMap="WorldEventResultMap" >
|
||||
SELECT
|
||||
a.id
|
||||
, a.title
|
||||
, a.global_event_action_id
|
||||
, a.personal_event_action_id
|
||||
, a.start_dt
|
||||
, a.end_dt
|
||||
, a.max_point
|
||||
, CASE
|
||||
WHEN NOW() < a.start_dt THEN 'WAIT'
|
||||
WHEN NOW() >= a.start_dt AND NOW() <= a.end_dt THEN 'RUNNING'
|
||||
WHEN NOW() > a.end_dt THEN 'FINISH'
|
||||
END AS status
|
||||
, (SELECT email FROM admin WHERE id = a.create_by ) AS create_by
|
||||
, a.create_dt
|
||||
, (SELECT email FROM admin WHERE id = a.update_by ) AS update_by
|
||||
, a.update_dt
|
||||
FROM world_event a
|
||||
WHERE a.id = #{id}
|
||||
AND deleted = 0
|
||||
</select>
|
||||
|
||||
<select id="checkOverlap" parameterType="com.caliverse.admin.domain.request.WorldEventRequest" resultType="java.lang.Integer">
|
||||
SELECT COUNT(*)
|
||||
FROM world_event a
|
||||
WHERE a.global_event_action_id = #{globalEventActionId}
|
||||
AND a.deleted = 0
|
||||
AND a.global_event_action_id != #{globalEventActionId}
|
||||
AND (
|
||||
(#{startDt} BETWEEN a.start_dt AND a.end_dt)
|
||||
OR (#{endDt} BETWEEN a.start_dt AND a.end_dt)
|
||||
OR (a.start_dt BETWEEN #{startDt} AND #{endDt})
|
||||
OR (a.end_dt BETWEEN #{startDt} AND #{endDt})
|
||||
)
|
||||
</select>
|
||||
|
||||
|
||||
<!--저장-->
|
||||
<insert id="postWorldEvent" parameterType="com.caliverse.admin.domain.request.WorldEventRequest" useGeneratedKeys="true" keyProperty="id">
|
||||
INSERT INTO world_event (title, global_event_action_id, personal_event_action_id, start_dt, end_dt, max_point, create_by, update_by)
|
||||
VALUES (#{title}, #{globalEventActionId}, #{personalEventActionId}, #{startDt}, #{endDt}, #{maxPoint}, #{createBy}, #{updateBy})
|
||||
</insert>
|
||||
|
||||
<!--수정-->
|
||||
<update id="updateWorldEvent" parameterType="com.caliverse.admin.domain.request.WorldEventRequest">
|
||||
UPDATE world_event SET title = #{title}
|
||||
, global_event_action_id = #{globalEventActionId}
|
||||
, personal_event_action_id = #{personalEventActionId}
|
||||
, start_dt = #{startDt}
|
||||
, end_dt = #{endDt}
|
||||
, max_point = #{maxPoint}
|
||||
, update_by = #{updateBy}
|
||||
, update_dt = NOW()
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<!--삭제-->
|
||||
<update id="deleteWorldEvent" parameterType="map">
|
||||
UPDATE world_event
|
||||
SET deleted = 1
|
||||
, update_by = #{updateBy}
|
||||
, update_dt = NOW()
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user