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 com.ld.igds.models.DicFoodOrigin; 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 getDicArea(Page page, Map param) throws Exception { String hql = " from " + DicArea.class.getName() + " where 1=1"; Map args = new HashMap(); if (null != param) { String str = (String) param.get("code"); if (StringUtils.isNotEmpty(str)) { hql += " and code like :code"; args.put("code", "%" + str + "%"); } str = (String) param.get("name"); if (StringUtils.isNotEmpty(str)) { hql += " and name like :name"; args.put("name", "%" + str + "%"); } str = (String) param.get("disabledTag"); if (StringUtils.isNotEmpty(str)) { hql += " and disabledTag = :disabledTag"; args.put("disabledTag", str); } str = (String) param.get("key"); if (StringUtils.isNoneEmpty(str)) { hql += " and (name like :name or code like:code or simple like:simple) "; args.put("name", "%" + str + "%"); args.put("code", "%" + str + "%"); args.put("simple", "%" + str.toUpperCase() + "%"); } } String coutHql = "select count(*) " + hql; hql += " order by code"; if (args.isEmpty()) { this.pagingQuery(page, hql, coutHql); } else { this.pagingQuery(page, hql, coutHql, args); } } }