package com.ese.model.dao;
import com.ese.model.db.UserAccessModel;
import com.ese.utils.Utils;
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
@Repository
public class UserAccessDAO extends GenericDAO<UserAccessModel, Integer>{
public List<UserAccessModel> findByUserId(int userId){
List<UserAccessModel> userAccessModels = Utils.getEmptyList();
try {
Criteria criteria = getCriteria();
criteria.add(Restrictions.eq("staffModel.id", userId));
criteria.add(Restrictions.eq("isValid", 1));
userAccessModels = Utils.safetyList(criteria.list());
} catch (Exception e) {
log.debug("Exception error findByUserId : ", e);
}
return userAccessModels;
}
public List<UserAccessModel> findByMenuObjOrKey(int objId, String key){
List<UserAccessModel> userAccessModels = Utils.getEmptyList();
try {
Criteria criteria = getSession().createCriteria(UserAccessModel.class, "ua");
criteria.createAlias("ua.menuObjectModel", "mo");
if (!Utils.isZero(objId)){
criteria.add(Restrictions.eq("mo.parentId", objId));
}
if (!Utils.isNull(key) && !Utils.isZero(key.trim().length())){
Criterion objectCode = Restrictions.like("mo.code", "%" + key.trim() + "%");
Criterion objecyName = Restrictions.like("mo.name", "%"+key.trim()+"%");
criteria.add(Restrictions.or(objectCode,objecyName));
}
criteria.add(Restrictions.eq("isValid", 1));
userAccessModels = Utils.safetyList(criteria.list());
} catch (Exception e) {
log.debug("Exception error findByUserId : ", e);
}
return userAccessModels;
}
public List<UserAccessModel> findByPickingOrder(int staffId){
List<UserAccessModel> userAccessModels = Utils.getEmptyList();
try {
Criteria criteria = getSession().createCriteria(UserAccessModel.class, "ua");
criteria.add(Restrictions.eq("staffModel.id", staffId));
criteria.createAlias("ua.menuObjectModel", "mo");
Criterion overSeaOrder = Restrictions.like("mo.code", "031A");
Criterion domesticOrder = Restrictions.like("mo.code", "031B");
criteria.add(Restrictions.or(overSeaOrder,domesticOrder));
criteria.add(Restrictions.eq("isValid", 1));
userAccessModels = Utils.safetyList(criteria.list());
} catch (Exception e) {
log.debug("Exception error findByPickingOrder : ", e);
}
return userAccessModels;
}
public UserAccessModel findPostPickByPickingOrder(int staffId){
UserAccessModel userAccessModels = new UserAccessModel();
try {
Criteria criteria = getSession().createCriteria(UserAccessModel.class, "ua");
criteria.add(Restrictions.eq("staffModel.id", staffId));
criteria.createAlias("ua.menuObjectModel", "mo");
criteria.add(Restrictions.eq("mo.code", "031A"));
criteria.add(Restrictions.eq("isValid", 1));
userAccessModels = (UserAccessModel) criteria.uniqueResult();
} catch (Exception e) {
log.debug("Exception error findByPickingOrder : ", e);
}
return userAccessModels;
}
}