package com.mvc.dao.impl;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Query;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.mvc.dao.UserDao;
import com.mvc.entity.User;
import com.mvc.entity.UserDeptRelation;
import com.mvc.repository.DepartmentRepository;
import com.mvc.repository.UserRepository;
/**
* User相关Dao层接口实现
*
* @author wanghuimin
* @date 2016年9月7日
*/
@Repository("userDaoImpl")
public class UserDaoImpl implements UserDao {
@Autowired
@Qualifier("entityManagerFactory")
EntityManagerFactory emf;
@Autowired
DepartmentRepository departmentRepository;
@Autowired
UserRepository userRepository;
/**
* 删除用户
*/
public boolean updateState(Integer id) {
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
try {
String selectSql = " update user set `user_isdelete` = 1 where user_id =:user_id ";
Query query = em.createNativeQuery(selectSql);
query.setParameter("user_id", id);
query.executeUpdate();
String selectSql1 = " update user_dept_relation set `re_state`=1 where user_id=:user_id ";
Query query1 = em.createNativeQuery(selectSql1);
query1.setParameter("user_id", id);
query1.executeUpdate();
em.flush();
em.getTransaction().commit();
} finally {
em.close();
}
return true;
}
// 根据页数筛选全部用户列表
@SuppressWarnings("unchecked")
@Override
public List<User> findUserAllByPage(Integer offset, Integer end) {
EntityManager em = emf.createEntityManager();
String selectSql = "select * from User where user_isdelete=0";
selectSql += " order by user_id desc limit :offset, :end";
Query query = em.createNativeQuery(selectSql, User.class);
query.setParameter("offset", offset);
query.setParameter("end", end);
List<User> list = query.getResultList();
em.close();
return list;
}
// 只要设计部人员列表
@SuppressWarnings("unchecked")
@Override
public List<UserDeptRelation> findUserFromDesign() {
EntityManager em = emf.createEntityManager();
int deptid = departmentRepository.findOnlyUserDesign();
String selectSql = "select * from user_dept_relation where dept_id=" + deptid + " and re_state=0";
Query query = em.createNativeQuery(selectSql, UserDeptRelation.class);
List<UserDeptRelation> list = query.getResultList();
em.close();
return list;
}
}