package com.ld.igds.door.service; import com.bstek.bdf2.core.orm.hibernate.HibernateDao; import com.ld.igds.models.DoorSensor; import com.ld.igds.util.ContextUtil; import org.apache.commons.lang.StringUtils; import org.hibernate.Session; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.List; import java.util.Map; @Component public class HDoorSensorServiceImpl extends HibernateDao { @Autowired private CoreDoorSensorService coreDoorSensorService; public List getList(Map param) { if(param == null){ param = new HashMap<>(); } String hql = " from " + DoorSensor.class.getName() + " where companyId=:companyId "; Map parameterMap = new HashMap(); String companyId = (String) param.get("companyId"); if (StringUtils.isEmpty(companyId)){ companyId = ContextUtil.getCompanyId(); } parameterMap.put("companyId", companyId); String deptId = (String) param.get("deptId"); if(StringUtils.isNotEmpty(deptId)){ parameterMap.put("deptId", deptId); hql += " and deptId=:deptId"; } hql += " order by depotId + 0 ,id "; List list = this.query(hql, parameterMap); return list; } public void saveData(DoorSensor data) { Session session = this.getSessionFactory().openSession(); try { if(StringUtils.isEmpty(data.getId())){ data.setId(ContextUtil.getUUID()); data.setDeptId(ContextUtil.subDeptId(ContextUtil.getLoginUser())); } if (StringUtils.isEmpty(data.getCompanyId())) { data.setCompanyId(ContextUtil.getCompanyId()); } //conf.setUpdateUser(ContextUtil.getLoginUserCName()); session.saveOrUpdate(data); flushCache(data.getCompanyId()); } finally { session.flush(); session.close(); } } public String delData(DoorSensor data) { if (null == data.getCompanyId()) { return null; } Session session = this.getSessionFactory().openSession(); try { session.delete(data); } finally { session.flush(); session.close(); } flushCache(data.getCompanyId()); return null; } public void flushCache(String companyId) { if (StringUtils.isEmpty(companyId)) { companyId = ContextUtil.getCompanyId(); } Map param = new HashMap<>(); param.put("companyId", companyId); List list = getList(param); coreDoorSensorService.setCache(list, companyId); } }