daoimpl

package com.launch.yqyc.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Projections;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer;
import org.springframework.stereotype.Repository;

import com.launch.core.dao.impl.BaseDaoImpl;
import com.launch.core.util.PagingHelper;
import com.launch.yqyc.Constants;
import com.launch.yqyc.dao.SysUserDao;
import com.launch.yqyc.model.SysUser;

/**
* <p>
* SysUserDaoImpl
* </p>
* <p>
* 实现系统用户的CRUD操作的DAO接口方法
* </p>
* @author zhanghongbo
* @since 1.0
* @version $Id: SysUserDaoImpl.java 2012-7-20 17:51:22 $
*/
@Repository("sysUserDao")
public class SysUserDaoImpl extends BaseDaoImpl<SysUser, String> implements SysUserDao
{
@Autowired
private OracleSequenceMaxValueIncrementer seqVideoSystemIdGenerator;

/**
* 默认构造器
*/
public SysUserDaoImpl()
{
}

/**
* 根据用户名、用户类型分页查询匹配的用户列表
* @param page 分页对象
* @param sysUser 用户对象
* @return
*/
public PagingHelper findPage(PagingHelper page, SysUser sysUser)
{
Criterion criterion = null;
List<Criterion> criterionList = new ArrayList<Criterion>();
if (sysUser != null)
{
// 模糊匹配序列号
if(StringUtils.isNotBlank(sysUser.getSerialNo())){
criterion = Restrictions.like("serialNo", StringUtils.trim(sysUser.getSerialNo()), MatchMode.ANYWHERE);
criterionList.add(criterion);
}
// 模糊匹配用户名
if (StringUtils.isNotBlank(sysUser.getUserName()))
{
criterion = Restrictions.like("userName", StringUtils.trim(sysUser.getUserName()), MatchMode.ANYWHERE);
criterionList.add(criterion);
}
// 用户类型
if (sysUser.getUserType() != null)
{
if (sysUser.getUserType() == Constants.USER_TYPE_COMMON)
{
criterion = Restrictions.le("userType", Constants.USER_TYPE_EXPERT); // 普通用户列表
}
else
{
criterion = Restrictions.eq("userType", sysUser.getUserType());
}
criterionList.add(criterion);
}
// 精确匹配用户状态
if (sysUser.getStatus() != null)
{
criterion = Restrictions.eq("status", sysUser.getStatus());
criterionList.add(criterion);
}
}

Criterion[] criterions = criterionList.toArray(new Criterion[criterionList.size()]);
page = findPage(page, criterions);
return page;
}

/**
* 获取用户列表
* @param sysUser 用户对象
* @return
*/
@SuppressWarnings("unchecked")
@Override
public List<SysUser> findSysUserList(SysUser sysUser)
{
Criterion criterion = null;
List<Criterion> criterionList = new ArrayList<Criterion>();
if (sysUser != null)
{
// 模糊匹配用户名
if (StringUtils.isNotBlank(sysUser.getUserName()))
{
criterion = Restrictions.like("userName", StringUtils.trim(sysUser.getUserName()), MatchMode.ANYWHERE);
criterionList.add(criterion);
}
// 用户类型
if (sysUser.getUserType() != null)
{
if (sysUser.getUserType() == Constants.USER_TYPE_COMMON)
{
criterion = Restrictions.le("userType", Constants.USER_TYPE_EXPERT); // 普通用户列表
}
else
{
criterion = Restrictions.eq("userType", sysUser.getUserType());
}
criterionList.add(criterion);
}
// 精确匹配用户状态
if (sysUser.getStatus() != null)
{
criterion = Restrictions.eq("status", sysUser.getStatus());
criterionList.add(criterion);
}
}

Criterion[] criterions = criterionList.toArray(new Criterion[criterionList.size()]);
Criteria criteria = createCriteria(criterions);

return criteria.list();
}

/**
* 根据用户名,密码查找用户
* @param userName 用户名
* @param userPassword 密码
* @return
*/
@Override
public SysUser getUser(String userName, String userPassword)
{
String hql = "select t from SysUser t where t.userName=:userName and t.userPassword = :userPassword";
Query query = getSession().createQuery(hql).setParameter("userName", userName);
query.setParameter("userPassword", userPassword);
return (SysUser) query.uniqueResult();
}

/**
* 根据序列号,硬盘序列号,网卡地址查找用户
* @param serialNo 序列号
* @param diskSerial 硬盘序列号
* @param macAddr 网卡地址
* @return
*/
@Override
public SysUser getUser(String serialNo, String diskSerial, String macAddr)
{
String hql = "select t from SysUser t where t.serialNo=:serialNo and t.diskSerial = :diskSerial and t.macAddr=:macAddr";
Query query = getSession().createQuery(hql);
query.setParameter("serialNo", serialNo);
query.setParameter("diskSerial", diskSerial);
query.setParameter("macAddr", macAddr);
return (SysUser) query.uniqueResult();
}

/**
* 根据盒子序列号找用户List
* @param serialNo 序列号
* @return
*/
@SuppressWarnings("unchecked")
@Override
public List<SysUser> findUserList(String serialNo)
{
Criteria criteria = getSession().createCriteria(entityClass).add(Restrictions.eq("serialNo", serialNo));
return criteria.list();
}

/**
* 根据用户的状态和用户类型查找用户
* @param status 状态
* @param userType 用户类型
* @return
*/
@SuppressWarnings("unchecked")
@Override
public List<SysUser> findUserList(int userType, int status)
{
Criteria criteria = getSession().createCriteria(entityClass).add(Restrictions.eq("userType", userType)).add(Restrictions.eq("status", status));
return criteria.list();
}

/**
* 获取4s/专家的视频序列号
*/
@Override
public int getVideoSystemId()
{
return seqVideoSystemIdGenerator.nextIntValue();
}

/**
* 根据盒子序列号和用户状态查找用户
* @param serialNo 序列号
* @param status 状态
* @return
*/
@Override
public SysUser getUser(String serialNo, int status)
{
Criteria criteria = getSession().createCriteria(entityClass).add(Restrictions.eq("serialNo", serialNo)).add(Restrictions.eq("status", status));
return (SysUser) criteria.uniqueResult();
}

/**
* 获取视频序列号产生器对象
* @param getSeqVideoSystemIdGenerator
* @return
*/
public OracleSequenceMaxValueIncrementer getSeqVideoSystemIdGenerator()
{
return seqVideoSystemIdGenerator;
}

@Override
public Integer getTotalCount(Integer userType, Integer status)
{
Long count = (Long) getSession().createCriteria(entityClass).setProjection(Projections.rowCount()).add(Restrictions.eq("userType", userType))
.add(Restrictions.eq("status", status)).uniqueResult();
return new Integer(count.intValue());

}


/**
* 根据序列号查找总数
* @param Str
* @return
*/
public Integer getTotalCount(String serialNo)
{
Long count = (Long) getSession().createCriteria(entityClass).setProjection(Projections.rowCount()).add(Restrictions.eq("serialNo", serialNo)).uniqueResult();
return new Integer(count.intValue());
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值