package com.weinet.***.dao;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.jdbc.support.rowset.SqlRowSet;
import org.springframework.stereotype.Component;
import com.weinet.***.model.FixedProperty;
import com.weinet.***.model.MemberSource;
import com.weinet.***.ui.***UI;
import com.weinet.***.utils.PaginatedResult;
/**
* 會員來源
* @author ZJ
*
*/
@Component("MemberSourceDAO")
public class MemberSourceDAO extends BasicDAO {
@PersistenceContext
EntityManager entityManager;
/**
* 分頁查詢財產
* @param pageNo
* @param pageSize
* @param queryName 根據來源名稱查詢
* @return
*/
public PaginatedResult<MemberSource> searchMemberSource(int pageNo, int pageSize, String queryName){
PaginatedResult<MemberSource> paginatedResult = new PaginatedResult<MemberSource>(pageNo, pageSize);
calculateLines(paginatedResult, queryName);
String sql = "select a.id, a.white_label_id, a.store_id, a.source_name, a.source_short_name, a.creator, "
+ " a.create_date, a.url, a.director, a.phone_number, a.start_date, a.end_date, a.deleted, a.remark "
+ " from member_source a "
+" where a.deleted=0 and a.white_label_id= ";
if((queryName==null)||queryName.equals("")){
StringBuilder sqlSelect = new StringBuilder(sql);
sqlSelect.append(***UI.getCurrentUserWhiteLabel().getId());
sqlSelect.append(" order by a.id desc ");
sqlSelect.append(" limit ");
sqlSelect.append((pageNo-1)*pageSize);
sqlSelect.append(",");
sqlSelect.append(pageSize);
SqlRowSet rs = getMysqlJdbcTemplate().queryForRowSet(sqlSelect.toString());
readMemberSource(paginatedResult, rs);
}else{
StringBuilder sqlSelect = new StringBuilder(sql);
sqlSelect.append(***UI.getCurrentUserWhiteLabel().getId());
sqlSelect.append(" and a.source_name like ");
sqlSelect.append(" '%"+queryName.trim()+"%' ");
sqlSelect.append(" order by a.id desc ");
sqlSelect.append(" limit ");
sqlSelect.append((pageNo-1)*pageSize);
sqlSelect.append(",");
sqlSelect.append(pageSize);
SqlRowSet rs = getMysqlJdbcTemplate().queryForRowSet(sqlSelect.toString());
readMemberSource(paginatedResult, rs);
}
return paginatedResult;
}
public void readMemberSource(PaginatedResult<MemberSource> paginatedResult,
SqlRowSet rs) {
List<MemberSource> list = new ArrayList<MemberSource>();
while(rs.next()){
MemberSource memberSource = new MemberSource();
memberSource.setId(rs.getLong(1));
memberSource.setWhiteLabelId(rs.getInt(2));
memberSource.setStoreId(rs.getInt(3));
memberSource.setSourceName(rs.getString(4));
memberSource.setSourceShortName(rs.getString(5));
memberSource.setCreator(rs.getString(6));
memberSource.setCreateDate(rs.getDate(7));
memberSource.setUrl(rs.getString(8));
memberSource.setDirector(rs.getString(9));
memberSource.setPhoneNumber(rs.getString(10));
memberSource.setStartDate(rs.getDate(11));
memberSource.setEndDate(rs.getDate(12));
memberSource.setDeleted(rs.getBoolean(13));
memberSource.setRemark(rs.getString(14));
list.add(memberSource);
}
paginatedResult.setResultList(list);
}
public void calculateLines(PaginatedResult<MemberSource> paginatedResult, String queryName) {
String queryTotalCount = "select count(a) from MemberSource a "
+" where a.deleted=0 and a.whiteLabelId=?1 ";
if((queryName==null)||queryName.equals("")){
Query query = entityManager.createQuery(queryTotalCount);
query.setParameter(1, ***UI.getCurrentUserWhiteLabel().getId());
paginatedResult.setTotalCount((long) query.getSingleResult());
}else{
queryTotalCount = queryTotalCount + " and a.sourceName=?2 ";
Query query = entityManager.createQuery(queryTotalCount);
query.setParameter(1, ***UI.getCurrentUserWhiteLabel().getId());
query.setParameter(2, queryName.trim());
paginatedResult.setTotalCount((long) query.getSingleResult());
}
}
}
hibernate查詢和jdbc查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.