package com.ld.igds.view.service; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.bstek.dorado.data.provider.Page; import com.ld.igds.models.DicArea; import org.apache.commons.lang3.StringUtils; import org.hibernate.Session; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class HDicAreaService extends HibernateDao { public List listDicArea(String type) { String hql = " from " + DicArea.class.getName(); Map args = new HashMap(); if (StringUtils.isNotEmpty(type)) { hql += " and type = :type"; args.put("type", type); } hql += " order by code"; return this.query(hql, args); } public String saveDicArea(DicArea data) { Session session = this.getSessionFactory().openSession(); try { session.saveOrUpdate(data); } finally { session.flush(); session.close(); } return null; } public String delDicArea(DicArea data) { Session session = this.getSessionFactory().openSession(); try { session.delete(data); } finally { session.flush(); session.close(); } return null; } public DicArea listDicAreaByName(String name) { String hql = " from " + DicArea.class.getName() + " where 1=1"; Map args = new HashMap(); if (StringUtils.isNotEmpty(name)) { hql += " and name like :name"; args.put("name", "%" + name + "%"); } hql += " order by code"; List list = this.query(hql, args); if (null == list || list.isEmpty()) { return null; } return list.get(0); } public DicArea listDicAreaByCode(String code) { if (StringUtils.isEmpty(code)) { return null; } String hql = " from " + DicArea.class.getName() + " where code =:code"; Map args = new HashMap(); args.put("code", code); hql += " order by code"; List list = this.query(hql, args); if (null == list || list.isEmpty()) { return null; } return list.get(0); } public void pageList(Page page, String key) throws Exception { String hql = " from " + DicArea.class.getName(); Map args = new HashMap<>(); List list; String countHql; if (StringUtils.isNotEmpty(key)) { hql += " where (name like :key1 or simple like:key2)"; args.put("key1", "%" + key + "%"); args.put("key2", "%" + key.toUpperCase() + "%"); countHql = "select count(1) " + hql; hql += " order by code"; this.pagingQuery(page, hql, countHql, args); } else { countHql = "select count(1) " + hql; hql += " order by code"; this.pagingQuery(page, hql, countHql); } } }