@Override
  @Transactional(propagation = Propagation.REQUIRED)
  public CustomerOrderTransDto paymentByMemberCashvalue(
      MemberCashValuePaymentDto memberCashValuePaymentDto) throws Exception {
    if (memberCashValuePaymentDto.getCustomerId() == null
        || memberCashValuePaymentDto.getItemNos().length == 0
        || memberCashValuePaymentDto.getTotalAmount() == null)
      throw new GTACommonException(GTAError.MemberError.MEMBER_NOT_FOUND);

    if (memberCashValuePaymentDto.getOrderQty() == null) memberCashValuePaymentDto.setOrderQty(1);
    if (StringUtils.isEmpty(memberCashValuePaymentDto.getPaymentMethod()))
      memberCashValuePaymentDto.setPaymentMethod(Constant.CASH_Value);

    Long customerId = memberCashValuePaymentDto.getCustomerId();
    Member member = memberDao.getMemberByCustomerId(customerId);
    MemberCashvalue memberCashvalue = null;
    if (StringUtils.isEmpty(memberCashValuePaymentDto.getPaymentMethod())
        || memberCashValuePaymentDto.getPaymentMethod().equals(Constant.CASH_Value)) {
      memberCashvalue = updateMemberCashValueData(member, memberCashValuePaymentDto);
    }
    CustomerOrderTransDto customerOrderTransDto =
        saveCustomerOrderTrans(customerId, memberCashValuePaymentDto);
    if (null != memberCashvalue)
      customerOrderTransDto.setAvailableBalance(memberCashvalue.getAvailableBalance());
    return customerOrderTransDto;
  }