package kr.wisestone.owl.service.impl; import com.google.common.collect.Lists; import kr.wisestone.owl.constant.Constants; import kr.wisestone.owl.domain.Payment; import kr.wisestone.owl.domain.ReservationDisableUser; import kr.wisestone.owl.domain.User; import kr.wisestone.owl.repository.ReservationDisableUserRepository; import kr.wisestone.owl.service.PaymentService; import kr.wisestone.owl.service.ReservationDisableUserService; import kr.wisestone.owl.service.UserService; import kr.wisestone.owl.util.CommonUtil; import kr.wisestone.owl.util.ConvertUtil; import kr.wisestone.owl.util.MapUtil; import kr.wisestone.owl.vo.UserVo; import kr.wisestone.owl.web.form.PaymentForm; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @Service public class ReservationDisableUserServiceImpl extends AbstractServiceImpl> implements ReservationDisableUserService { private static final Logger log = LoggerFactory.getLogger(ReservationDisableUserServiceImpl.class); @Autowired private ReservationDisableUserRepository reservationDisableUserRepository; @Autowired private PaymentService paymentService; @Autowired private UserService userService; @Override protected JpaRepository getRepository() { return this.reservationDisableUserRepository; } // 참여 대기 사용자 예약 @Override @Transactional public void add(PaymentForm paymentForm, Payment payment) { ReservationDisableUser reservationDisableUser = new ReservationDisableUser(); reservationDisableUser.setPayment(payment); reservationDisableUser.setUserIds(paymentForm.getReservationDisableUserIds()); this.reservationDisableUserRepository.saveAndFlush(reservationDisableUser); } // 참여 대기 사용자 목록 조회 @Override @Transactional(readOnly = true) public void findReservationDisableUser(Map params, Map resJsonData) { Payment payment = this.paymentService.getPayment(MapUtil.getLong(params, "id")); ReservationDisableUser reservationDisableUser = payment.getReservationDisableUser(); List userVos = Lists.newArrayList(); if (reservationDisableUser != null) { String [] userIds = reservationDisableUser.getUserIds().split(","); for (String userId : userIds) { if (!StringUtils.isEmpty(userId)) { User user = this.userService.getUser(Long.valueOf(userId)); UserVo userVo = ConvertUtil.copyProperties(user, UserVo.class); userVo.setByName(userVo.getName() + "(" + CommonUtil.decryptAES128(userVo.getAccount()) + ")"); userVo.setAccount(CommonUtil.decryptAES128(userVo.getAccount())); userVos.add(userVo); } } } resJsonData.put(Constants.RES_KEY_CONTENTS, userVos); } }