package com.jshop.dao.impl;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;
import com.jshop.dao.GoodsGroupTDao;
import com.jshop.entity.GoodsGroupT;
@Repository("goodsGroupTDao")
public class GoodsGroupTDaoImpl extends HibernateDaoSupport implements GoodsGroupTDao {
private static final Logger log = LoggerFactory.getLogger(GoodsGroupTDaoImpl.class);
@Override
public int addGoodsGroupT(GoodsGroupT group) {
log.debug("add GoodsGroupT");
try {
this.getHibernateTemplate().save(group);
log.debug("add GoodsGroupT success");
return 1;
} catch (DataAccessException e) {
log.debug("add failed");
throw e;
}
}
@Override
public int updateGoodsGroupT(final GoodsGroupT group) {
log.debug("update goodsGroupT");
final String queryString="update GoodsGroupT as ggt set ggt.memberprice=:memberprice, ggt.groupprice=:groupprice, ggt.pictureurl=:pictureurl, ggt.sendpoint=:sendpoint,ggt.detail=:detail,ggt.endtime=:endtime,ggt.begintime=:begintime, ggt.goodsname=:goodsname,ggt.cashstate=:cashstate,ggt.cashlimit=:cashlimit,ggt.limitbuy=:limitbuy,ggt.salequantity=:salequantity where ggt.groupid=:groupid";
try {
Integer integer = (Integer) this.getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
int i = 0;
Query query = session.createQuery(queryString);
query.setParameter("groupid", group.getGroupid());
query.setParameter("cashstate", group.getCashstate());
query.setParameter("cashlimit", group.getCashlimit());
query.setParameter("limitbuy", group.getLimitbuy());
query.setParameter("salequantity", group.getSalequantity());
query.setParameter("goodsname", group.getGoodsname());
query.setParameter("begintime", group.getBegintime());
query.setParameter("endtime",group.getEndtime());
query.setParameter("detail", group.getDetail());
query.setParameter("sendpoint", group.getSendpoint());
query.setParameter("pictureurl", group.getPictureurl());
query.setParameter("groupprice", group.getGroupprice());
query.setParameter("memberprice", group.getMemberprice());
// query.setParameter("totalordercount", group.getTotalOrderCount());
// query.setParameter("sordercount", group.getSOrderCount());
i= query.executeUpdate();
return i;
}
});
return integer;
} catch (DataAccessException e) {
log.debug("update goodsgroupT failed");
throw e;
}
}
@SuppressWarnings("unchecked")
@Override
public List<GoodsGroupT> findAllGoodsGroupT(final int currentPage, final int lineSize) {
log.debug("find all goodsGroupT");
try {
List<GoodsGroupT> list =this.getHibernateTemplate().executeFind(new HibernateCallback() {
String queryString="from GoodsGroupT order by createtime";
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(queryString);
query.setFirstResult((currentPage-1)*lineSize);
query.setMaxResults(lineSize);
List list=query.list();
return list;
}
});
if(list.size()>0&&list!=null){
log.debug("find all success");
return list;
}
return null;
} catch (DataAccessException e) {
log.debug("find all failed");
throw e;
}
}
@Override
public int delGoodsGroupT(final String[] list) {
log.debug("del goodsgroupt");
try {
this.getHibernateTemplate().execute(new HibernateCallback() {
String queryString="delete from GoodsGroupT as ggt where ggt.groupid=:groupid";
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(queryString);
int i = 0;
for(String s : list){
query.setParameter("groupid", s);
i=query.executeUpdate();
i++;
}
if(list.length==i){
log.debug("del success");
return i;
}else{
return 0;
}
}
});
} catch (DataAccessException e) {
log.debug("del failed");
throw e;
}
return 0;
}
@Override
public int countAllGoodsGroupT() {
log.debug("countAll GoodsGroupT");
try {
String queryString="select count(*) from GoodsGroupT ";
List list= this.getHibernateTemplate().find(queryString);
if(list.size()>0){
Object o =list.get(0);
long l =(Long) o;
return (int)l;
}
return 0;
} catch (DataAccessException e) {
log.debug("countAll failed");
throw e;
}
}
@SuppressWarnings("unchecked")
@Override
public List<GoodsGroupT> sortAllGoodsGroup(final int currentPage, final int lineSize,
final String queryString) {
try {
List<GoodsGroupT> list = this.getHibernateTemplate().executeFind(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
Query query = session.createQuery(queryString);
query.setFirstResult((currentPage-1)*lineSize);
query.setMaxResults(lineSize);
List list = query.list();
return list;
}
});
return list;
} catch (DataAccessException e) {
throw e;
}
}
@SuppressWarnings("unchecked")
@Override
public GoodsGroupT findGoodsGroupById(String groupid) {
try {
String queryString="from GoodsGroupT as ggt where ggt.groupid=:groupid ";
List<GoodsGroupT> list =this.getHibernateTemplate().findByNamedParam(queryString, "groupid", groupid);
if(!list.isEmpty()){
return list.get(0);
}
return null;
} catch (DataAccessException e) {
throw e;
}
}
@Override
public int updateState(final GoodsGroupT ggt) {
try {
final String queryString="update GoodsGroupT as ggt set ggt.state=:state where ggt.groupid=:groupid";
Integer integer = (Integer) this.getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
int i = 0;
Query query = session.createQuery(queryString);
query.setParameter("groupid", ggt.getGroupid());
query.setParameter("state", ggt.getState());
i=query.executeUpdate();
return i;
}
});
return integer;
} catch (DataAccessException e) {
throw e;
}
}
@SuppressWarnings("unchecked")
@Override
public List<GoodsGroupT> findGoodsGroupByState(String state) {
try {
String queryString="from GoodsGroupT as ggt where ggt.state=:state order by begintime desc";
List<GoodsGroupT> list = this.getHibernateTemplate().findByNamedParam(queryString, "state", state);
if(!list.isEmpty()){
return list;
}
return null;
} catch (DataAccessException e) {
throw e;
}
}
@Override
public int updateGoodsGroupHtmlPath(final String htmlpath, final String groupid) {
try {
final String queryString="update GoodsGroupT as ggt set ggt.htmlpath=:htmlpath where ggt.groupid=:groupid";
this.getHibernateTemplate().execute(new HibernateCallback() {
@Override
public Object doInHibernate(Session session) throws HibernateException,
SQLException {
int i=0;
Query query = session.createQuery(queryString);
query.setParameter("htmlpath", htmlpath);
query.setParameter("groupid",groupid);
i=query.executeUpdate();
return i;
}
});
} catch (DataAccessException e) {
throw e;
}
return 0;
}
}