package com.napa.pulse.dao.impl;
import com.google.gson.Gson;
import com.napa.pulse.dao.interfaces.ReviewDAO;
import com.napa.pulse.dao.interfaces.SessionDAO;
import com.napa.pulse.dto.*;
import com.napa.pulse.entity.security.User;
import com.napa.pulse.enums.EPTSRules;
import com.napa.pulse.exception.PulseException;
import com.napa.pulse.rowmappers.IntegerRowMapper;
import com.napa.pulse.service.interfaces.CommonService;
import com.napa.pulse.utils.PulseConstants;
import com.napa.pulse.utils.SiteQueueMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
import org.springframework.jdbc.core.namedparam.SqlParameterSource;
import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
import java.util.*;
import java.util.stream.Collectors;
import static org.apache.commons.lang.StringUtils.isNotEmpty;
import static org.apache.commons.lang.StringUtils.isNotBlank;
/**
* @author Tathagata
*
* Created on 05/12/2015
*/
@Repository
public class ReviewDAOImpl implements ReviewDAO {
private static final Logger LOGGER = LoggerFactory.getLogger(ReviewDAOImpl.class);
private final Gson gson = new Gson();
@Autowired
private CommonService commonService;
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
SiteQueueMap siteQueueMap;
@Autowired
SessionDAO sessionDAO;
// @Autowired
// User user;
ArrayList ProductIds=new ArrayList();
@Override
public List