【 Base<T> 】IBaseDao 和 IBaseService 通用 基类 实现

IBaseDao<T>
package com.sys.dao;

import org.hibernate.LockOptions;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface IBaseDao<T> {

    /**
     * 保存一个对象
     *
     * @param o 对象
     * @return 对象的ID
     */
    public Serializable save(T o);

    /**
     * 删除一个对象
     *
     * @param o 对象
     */
    public void delete(T o);

    /**
     * 更新一个对象
     *
     * @param o 对象
     */
    public void update(T o);

    /**
     * 保存或更新一个对象
     *
     * @param o 对象
     */
    public void saveOrUpdate(T o);

    /**
     * 通过主键获得对象
     *
     * @param c  类名.class
     * @param id 主键
     * @return 对象
     */
    public T getById(Class<T> c, Serializable id);

    /**
     * 通过主键获得对象
     *
     * @param c  类名.class
     * @param id 主键
     * @return 对象
     */
    public T getById(Class<T> c, Serializable id, LockOptions lockOptions);

    /**
     * 通过HQL语句获取一个对象
     *
     * @param hql HQL语句
     * @return 对象
     */
    public T getByHql(String hql);

    /**
     * 通过HQL语句获取一个对象
     *
     * @param hql HQL语句
     * @return 对象
     */
    public T getByHql(String hql, LockOptions lockOptions);

    /**
     * 通过HQL语句获取一个对象
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return 对象
     */
    public T getByHql(String hql, Map<String, Object> params);


    /**
     * 通过HQL语句获取一个对象
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return 对象
     */
    public T getByHql(String hql, Map<String, Object> params, LockOptions lockOptions);

    /**
     * 获得对象列表
     *
     * @param hql HQL语句
     * @return List
     */
    public List<T> find(String hql);

    /**
     * 获得对象列表
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return List
     */
    public List<T> find(String hql, Map<String, Object> params);

    /**
     * 获得分页后的对象列表
     *
     * @param hql  HQL语句
     * @param page 要显示第几页
     * @param rows 每页显示多少条
     * @return List
     */
    public List<T> find(String hql, int pageNo, int pageSize);


    /**
     * 获得分页后的对象列表
     *
     * @param hql    HQL语句
     * @param params 参数
     * @param page   要显示第几页
     * @param rows   每页显示多少条
     * @return List
     */
    public List<T> find(String hql, Map<String, Object> params, int pageNo, int pageSize);

    /**
     * 统计数目
     *
     * @param hql HQL语句(select count(*) from T)
     * @return long
     */
    public Long count(String hql);

    /**
     * 统计数目
     *
     * @param hql    HQL语句(select count(*) from T where xx = :xx)
     * @param params 参数
     * @return long
     */
    public Long count(String hql, Map<String, Object> params);

    /**
     * 执行一条HQL语句
     *
     * @param hql HQL语句
     * @return 响应结果数目
     */
    public int executeHql(String hql);

    /**
     * 执行一条HQL语句
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return 响应结果数目
     */
    public int executeHql(String hql, Map<String, Object> params);

    /**
     * 获得结果集
     *
     * @param sql SQL语句
     * @return 结果集
     */
    public List<Map> findBySql(String sql);

    /**
     * 获得结果集
     *
     * @param sql  SQL语句
     * @param page 要显示第几页
     * @param rows 每页显示多少条
     * @return 结果集
     */
    public List<Map> findBySql(String sql, int pageNo, int pageSize);

    /**
     * 获得结果集
     *
     * @param sql    SQL语句
     * @param params 参数
     * @return 结果集
     */
    public List<Map> findBySql(String sql, Map<String, Object> params);

    /**
     * 获得结果集
     *
     * @param sql    SQL语句
     * @param params 参数
     * @param page   要显示第几页
     * @param rows   每页显示多少条
     * @return 结果集
     */
    public List<Map> findBySql(String sql, Map<String, Object> params, int pageNo, int pageSize);

    /**
     * 执行SQL语句
     *
     * @param sql SQL语句
     * @return 响应行数
     */
    public int executeSql(String sql);

    /**
     * 执行SQL语句
     *
     * @param sql    SQL语句
     * @param params 参数
     * @return 响应行数
     */
    public int executeSql(String sql, Map<String, Object> params);

    /**
     * 统计
     *
     * @param sql SQL语句
     * @return 数目
     */
    public Long countBySql(String sql);

    /**
     * 统计
     *
     * @param sql    SQL语句
     * @param params 参数
     * @return 数目
     */
    public Long countBySql(String sql, Map<String, Object> params);

    /**
     * 获得对象列表,多表查询时使用
     *
     * @param hql HQL语句
     * @return List
     */
    public List findByHqL(String hql);

    /**
     * 获得对象列表 ,多表查询时使用
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return List
     */
    public List findByHqL(String hql, Map<String, Object> params);

    /**
     * 获得分页后的对象列表,多表查询时使用
     *
     * @param hql  HQL语句
     * @param page 要显示第几页
     * @param rows 每页显示多少条
     * @return List
     */
    public List findByHqL(String hql, int pageNo, int pageSize);

    /**
     * 获得分页后的对象列表,多表查询时使用
     *
     * @param hql    HQL语句
     * @param params 参数
     * @param page   要显示第几页
     * @param rows   每页显示多少条
     * @return List
     */
    public List findByHqL(String hql, Map<String, Object> params, int pageNo, int pageSize);
}
View Code
BaseDaoImpl<T>
package com.sys.dao.impl;

import com.sys.dao.IBaseDao;
import org.hibernate.LockOptions;
import org.hibernate.Query;
import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory;
import org.hibernate.transform.Transformers;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import javax.annotation.Resource;
import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Repository("baseDao")
public class BaseDaoImpl<T> implements IBaseDao<T> {

    @Resource(name = "sessionFactory")
    private SessionFactory sessionFactory;

    public SessionFactory getSessionFactory() {
        return sessionFactory;
    }

    @Autowired
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }

    @Override
    public Serializable save(T o) {
        return o == null ? null : sessionFactory.getCurrentSession().save(o);
    }

    @Override
    public void delete(T o) {
        if (o != null) {
            sessionFactory.getCurrentSession().delete(o);
        }
    }

    @Override
    public void update(T o) {
        if (o != null) {
            sessionFactory.getCurrentSession().update(o);
        }
    }

    @Override
    public void saveOrUpdate(T o) {
        if (o != null) {
            sessionFactory.getCurrentSession().saveOrUpdate(o);
        }
    }

    @Override
    public T getById(Class<T> c, Serializable id) {
        return (T) sessionFactory.getCurrentSession().get(c, id);
    }

    @Override
    public T getById(Class<T> c, Serializable id, LockOptions lockOptions) {
        return (T) sessionFactory.getCurrentSession().get(c, id, lockOptions);
    }

    @Override
    public T getByHql(String hql) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        List<T> list = query.list();
        if (list != null && list.size() > 0) {
            return list.get(0);
        }
        return null;
    }

    @Override
    public T getByHql(String hql, LockOptions lockOptions) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        query.setLockOptions(lockOptions);
        List<T> list = query.list();
        if (list != null && list.size() > 0) {
            return list.get(0);
        }
        return null;
    }

    @Override
    public T getByHql(String hql, Map<String, Object> params) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        List<T> list = query.list();
        if (list != null && list.size() > 0) {
            return list.get(0);
        }
        return null;
    }

    @Override
    public T getByHql(String hql, Map<String, Object> params, LockOptions lockOptions) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        query.setLockOptions(lockOptions);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        List<T> list = query.list();
        if (list != null && list.size() > 0) {
            return list.get(0);
        }
        return null;
    }

    @Override
    public List<T> find(String hql) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        return query.list();
    }

    @Override
    public List<T> find(String hql, Map<String, Object> params) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        return query.list();
    }

    @Override
    public List<T> find(String hql, int pageNo, int pageSize) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        return query.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize).list();
    }

    @Override
    public List<T> find(String hql, Map<String, Object> params, int pageNo, int pageSize) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        return query.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize).list();
    }

    @Override
    public Long count(String hql) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        return (Long) query.uniqueResult();
    }

    @Override
    public Long count(String hql, Map<String, Object> params) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        return (Long) query.uniqueResult();
    }

    @Override
    public int executeHql(String hql) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        return query.executeUpdate();
    }

    @Override
    public int executeHql(String hql, Map<String, Object> params) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        return query.executeUpdate();
    }

    @Override
    public List<Map> findBySql(String sql) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        return sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    }

    @Override
    public List<Map> findBySql(String sql, int pageNo, int pageSize) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        Query query = sqlQuery.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize);
        return query.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize)
                .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    }

    @Override
    public List<Map> findBySql(String sql, Map<String, Object> params) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                sqlQuery.setParameter(key, params.get(key));
            }
        }
        return sqlQuery.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    }

    @Override
    public List<Map> findBySql(String sql, Map<String, Object> params, int pageNo, int pageSize) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                sqlQuery.setParameter(key, params.get(key));
            }
        }
        return sqlQuery.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize)
                .setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();
    }

    @Override
    public int executeSql(String sql) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        return sqlQuery.executeUpdate();
    }

    @Override
    public int executeSql(String sql, Map<String, Object> params) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                sqlQuery.setParameter(key, params.get(key));
            }
        }
        return sqlQuery.executeUpdate();
    }

    @Override
    public Long countBySql(String sql) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        Object o = sqlQuery.uniqueResult();
        return Long.parseLong(o.toString());
    }

    @Override
    public Long countBySql(String sql, Map<String, Object> params) {
        SQLQuery sqlQuery = sessionFactory.getCurrentSession().createSQLQuery(sql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                sqlQuery.setParameter(key, params.get(key));
            }
        }
        Object o = sqlQuery.uniqueResult();
        return Long.parseLong(o.toString());
    }

    @Override
    public List findByHqL(String hql) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        return query.list();
    }

    @Override
    public List findByHqL(String hql, Map<String, Object> params) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        return query.list();
    }

    @Override
    public List findByHqL(String hql, int pageNo, int pageSize) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        return query.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize).list();
    }

    @Override
    public List findByHqL(String hql, Map<String, Object> params, int pageNo, int pageSize) {
        Query query = sessionFactory.getCurrentSession().createQuery(hql);
        if (params != null && !params.isEmpty()) {
            for (String key : params.keySet()) {
                query.setParameter(key, params.get(key));
            }
        }
        return query.setFirstResult((pageNo - 1) * pageSize).setMaxResults(pageSize).list();
    }
}
View Code
IBaseService<T>
package com.sys.service;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

public interface IBaseService<T> {

    /**
     * 保存一个对象
     *
     * @param o 对象
     * @return 对象的ID
     */
    public Serializable save(T o);

    /**
     * 删除一个对象
     *
     * @param o 对象
     */
    public void delete(T o);

    /**
     * 更新一个对象
     *
     * @param o 对象
     */
    public void update(T o);

    /**
     * 保存或更新一个对象
     *
     * @param o 对象
     */
    public void saveOrUpdate(T o);

    /**
     * 通过主键获得对象
     *
     * @param c  类名.class
     * @param id 主键
     * @return 对象
     */
    public T getById(Class<T> c, Serializable id);

    /**
     * 通过HQL语句获取一个对象
     *
     * @param hql HQL语句
     * @return 对象
     */
    public T getByHql(String hql);

    /**
     * 通过HQL语句获取一个对象
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return 对象
     */
    public T getByHql(String hql, Map<String, Object> params);

    /**
     * 获得对象列表
     *
     * @param hql HQL语句
     * @return List
     */
    public List<T> find(String hql);

    /**
     * 获得对象列表
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return List
     */
    public List<T> find(String hql, Map<String, Object> params);

    /**
     * 获得分页后的对象列表
     *
     * @param hql  HQL语句
     * @param page 要显示第几页
     * @param rows 每页显示多少条
     * @return List
     */
    public List<T> find(String hql, int pageNo, int pageSize);

    /**
     * 获得分页后的对象列表
     *
     * @param hql    HQL语句
     * @param params 参数
     * @param page   要显示第几页
     * @param rows   每页显示多少条
     * @return List
     */
    public List<T> find(String hql, Map<String, Object> params, int pageNo, int pageSize);

    /**
     * 统计数目
     *
     * @param hql HQL语句(select count(*) from T)
     * @return long
     */
    public Long count(String hql);

    /**
     * 统计数目
     *
     * @param hql    HQL语句(select count(*) from T where xx = :xx)
     * @param params 参数
     * @return long
     */
    public Long count(String hql, Map<String, Object> params);

    /**
     * 执行一条HQL语句
     *
     * @param hql HQL语句
     * @return 响应结果数目
     */
    public int executeHql(String hql);

    /**
     * 执行一条HQL语句
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return 响应结果数目
     */
    public int executeHql(String hql, Map<String, Object> params);

    /**
     * 获得结果集
     *
     * @param sql SQL语句
     * @return 结果集
     */
    public List<Map> findBySql(String sql);

    /**
     * 获得结果集
     *
     * @param sql  SQL语句
     * @param page 要显示第几页
     * @param rows 每页显示多少条
     * @return 结果集
     */
    public List<Map> findBySql(String sql, int pageNo, int pageSize);

    /**
     * 获得结果集
     *
     * @param sql    SQL语句
     * @param params 参数
     * @return 结果集
     */
    public List<Map> findBySql(String sql, Map<String, Object> params);

    /**
     * 获得结果集
     *
     * @param sql    SQL语句
     * @param params 参数
     * @param page   要显示第几页
     * @param rows   每页显示多少条
     * @return 结果集
     */
    public List<Map> findBySql(String sql, Map<String, Object> params, int pageNo, int pageSize);

    /**
     * 执行SQL语句
     *
     * @param sql SQL语句
     * @return 响应行数
     */
    public int executeSql(String sql);

    /**
     * 执行SQL语句
     *
     * @param sql    SQL语句
     * @param params 参数
     * @return 响应行数
     */
    public int executeSql(String sql, Map<String, Object> params);

    /**
     * 统计
     *
     * @param sql SQL语句
     * @return 数目
     */
    public Long countBySql(String sql);

    /**
     * 统计
     *
     * @param sql    SQL语句
     * @param params 参数
     * @return 数目
     */
    public Long countBySql(String sql, Map<String, Object> params);

    /**
     * 获得对象列表,多表查询时使用
     *
     * @param hql HQL语句
     * @return List
     */
    public List findByHqL(String hql);

    /**
     * 获得对象列表 ,多表查询时使用
     *
     * @param hql    HQL语句
     * @param params 参数
     * @return List
     */
    public List findByHqL(String hql, Map<String, Object> params);

    /**
     * 获得分页后的对象列表,多表查询时使用
     *
     * @param hql  HQL语句
     * @param page 要显示第几页
     * @param rows 每页显示多少条
     * @return List
     */
    public List findByHqL(String hql, int pageNo, int pageSize);

    /**
     * 获得分页后的对象列表,多表查询时使用
     *
     * @param hql    HQL语句
     * @param params 参数
     * @param page   要显示第几页
     * @param rows   每页显示多少条
     * @return List
     */
    public List findByHqL(String hql, Map<String, Object> params, int pageNo, int pageSize);
}
View Code
BaseServiceImpl<T>
package com.sys.service.impl;

import com.sys.dao.IBaseDao;
import com.sys.service.IBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Service("baseService")
@Transactional
public class BaseServiceImpl<T> implements IBaseService<T> {

    IBaseDao<T> baseDao;

    public IBaseDao getBaseDao() {
        return baseDao;
    }

    @Autowired
    public void setBaseDao(IBaseDao baseDao) {
        this.baseDao = baseDao;
    }

    @Override
    public Serializable save(T o) {
        return baseDao.save(o);
    }

    @Override
    public void delete(T o) {
        baseDao.delete(o);
    }

    @Override
    public void update(T o) {
        baseDao.update(o);
    }

    @Override
    public void saveOrUpdate(T o) {
        baseDao.saveOrUpdate(o);
    }

    @Override
    public T getById(Class<T> c, Serializable id) {
        return baseDao.getById(c, id);
    }

    @Override
    public T getByHql(String hql) {
        return baseDao.getByHql(hql);
    }

    @Override
    public T getByHql(String hql, Map<String, Object> params) {
        return baseDao.getByHql(hql, params);
    }

    @Override
    public List<T> find(String hql) {
        return baseDao.find(hql);
    }

    @Override
    public List<T> find(String hql, Map<String, Object> params) {
        return baseDao.find(hql, params);
    }

    @Override
    public List<T> find(String hql, int pageNo, int pageSize) {
        return baseDao.find(hql, pageNo, pageSize);
    }

    @Override
    public List<T> find(String hql, Map<String, Object> params, int pageNo, int pageSize) {
        return baseDao.find(hql, params, pageNo, pageSize);
    }

    @Override
    public Long count(String hql) {
        return baseDao.count(hql);
    }

    @Override
    public Long count(String hql, Map<String, Object> params) {
        return baseDao.count(hql, params);
    }

    @Override
    public int executeHql(String hql) {
        return baseDao.executeHql(hql);
    }

    @Override
    public int executeHql(String hql, Map<String, Object> params) {
        return baseDao.executeHql(hql, params);
    }

    @Override
    public List<Map> findBySql(String sql) {
        return baseDao.findBySql(sql);
    }

    @Override
    public List<Map> findBySql(String sql, int pageNo, int pageSize) {
        return baseDao.findBySql(sql, pageNo, pageSize);
    }

    @Override
    public List<Map> findBySql(String sql, Map<String, Object> params) {
        return baseDao.findBySql(sql, params);
    }

    @Override
    public List<Map> findBySql(String sql, Map<String, Object> params, int pageNo, int pageSize) {
        return baseDao.findBySql(sql, params, pageNo, pageSize);
    }

    @Override
    public int executeSql(String sql) {
        return baseDao.executeSql(sql);
    }

    @Override
    public int executeSql(String sql, Map<String, Object> params) {
        return baseDao.executeSql(sql, params);
    }

    @Override
    public Long countBySql(String sql) {
        return baseDao.countBySql(sql);
    }

    @Override
    public Long countBySql(String sql, Map<String, Object> params) {
        return baseDao.countBySql(sql, params);
    }

    @Override
    public List findByHqL(String hql) {
        return baseDao.findByHqL(hql);
    }

    @Override
    public List findByHqL(String hql, Map<String, Object> params) {
        return baseDao.findByHqL(hql, params);
    }

    @Override
    public List findByHqL(String hql, int pageNo, int pageSize) {
        return baseDao.findByHqL(hql, pageNo, pageSize);
    }

    @Override
    public List findByHqL(String hql, Map<String, Object> params, int pageNo, int pageSize) {
        return baseDao.findByHqL(hql, params, pageNo, pageSize);
    }
}
View Code
ISystemUserService
package com.sys.service;

import com.model.TSystem_user;
import com.pageModel.SysUserInf;
import com.utils.AjaxResult;
import com.pageModel.DatagridForLayUI;

import java.util.List;

public interface ISystemUserService extends IBaseService<TSystem_user> {
    /**
     * 获取datagrid数据
     *
     * @param SysUserInf
     * @param writeOperInsCd
     * @return
     * @throws Exception
     */
    public DatagridForLayUI datagrid(SysUserInf SysUserInf, String writeOperInsCd) throws Exception;

    /**
     * 新增
     *
     * @param inf
     * @return
     */
    public SysUserInf add(SysUserInf inf);

    /**
     * 删除
     *
     * @param ids
     */
    public void remove(String ids);

    /**
     * 修改
     *
     * @param
     */
    public AjaxResult modify(SysUserInf inf);

    /**
     * 信息验证
     *
     * @param inf
     * @return
     */
    public AjaxResult verifyInfo(SysUserInf inf);

    /**
     * 密码重置
     *
     * @param operCd
     * @return
     */
    public AjaxResult redoPwd(String operCd);

    /**
     * 用户登录
     *
     * @param SysUserInf
     * @return
     */
    public AjaxResult userLogin(SysUserInf SysUserInf);

    /**
     * 修改密码
     *
     * @param SysUserInf
     * @return
     */
    public AjaxResult changepwd(SysUserInf SysUserInf);

    /**
     * 获取所有用户数据
     *
     * @return
     */
    public List<SysUserInf> getList();
}
View Code
SystemUserServiceImpl
package com.sys.service.impl;

import cn.hutool.core.util.StrUtil;
import com.model.TSystem_user;
import com.pageModel.SessionInfo;
import com.sun.net.httpserver.HttpContext;
import com.utils.AjaxResult;
import com.pageModel.DatagridForLayUI;
import com.pageModel.SysUserInf;
import com.sys.service.ISystemUserService;
import com.utils.Contans;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
@Transactional
public class SystemUserServiceImpl extends BaseServiceImpl<TSystem_user> implements ISystemUserService {
    @Override
    public DatagridForLayUI datagrid(SysUserInf SysUserInf, String writeOperInsCd) throws Exception {
        return null;
    }

    @Override
    public SysUserInf add(SysUserInf inf) {
        TSystem_user tSystem_user = new TSystem_user();
        BeanUtils.copyProperties(inf, tSystem_user);
        save(tSystem_user);
        BeanUtils.copyProperties(tSystem_user, inf);
        return inf;
    }

    @Override
    public void remove(String ids) {
        String[] nids = ids.split(",");
        String sql = "update tv_system_user set isdel='1' t where t.sys_code in (";
        for (int i = 0; i < nids.length; i++) {
            if (i > 0) {
                sql += ",";
            }
            sql += "'" + nids[i] + "'";
        }
        sql += ")";
        executeSql(sql);
    }

    @Override
    public AjaxResult modify(SysUserInf inf) {
        TSystem_user dbUser = getById(TSystem_user.class, inf.getSysCode());
        if (null == dbUser) {
            return new AjaxResult(false, "修改失败:找不到要修改的信息");
        }
        TSystem_user newObj = new TSystem_user();
        BeanUtils.copyProperties(inf, newObj);
        update(newObj);
        return new AjaxResult();
    }

    @Override
    public AjaxResult verifyInfo(SysUserInf inf) {
        Map<String, Object> params = new HashMap<>();
        if (!StrUtil.isEmpty(inf.getSysCode().toString())) {
            params.put("sysCode", inf.getSysCode());
        }
        Long count = super.count("select count(*) from TSystem_user t where t.sysCode =:sysCode ", params);
        return count > 0 ? new AjaxResult(false, "新增失败:用户名已经存在") : new AjaxResult(true, "成功!");
    }

    @Override
    public AjaxResult redoPwd(String sysCode) {
        return null;
    }

    @Override
    public AjaxResult userLogin(SysUserInf SysUserInf) {
        AjaxResult ajaxResult = new AjaxResult();
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("login_Id", SysUserInf.getLogin_Id());
        params.put("login_Pwd", SysUserInf.getLogin_Pwd());
        TSystem_user tSystem_user = getByHql("from TSystem_user where login_Id=:login_Id and login_Pwd=:login_Pwd ", params);
        if (tSystem_user == null) {
            return new AjaxResult(false, "用户名或者密码不正确");
        }
        SessionInfo sessionInfo = new SessionInfo();
        BeanUtils.copyProperties(tSystem_user, SysUserInf);
        sessionInfo.setSysUserInf(SysUserInf);
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        HttpSession session = request.getSession();
        session.setAttribute(Contans.SESSION_BEAN, sessionInfo);
        return ajaxResult;
    }

    @Override
    public AjaxResult changepwd(SysUserInf SysUserInf) {
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("sys_code", SysUserInf.getLogin_Id());
        params.put("login_pwd", SysUserInf.getLogin_Pwd());
        String sql = "update tv_system_user set login_pwd=:login_pwd where sys_code=:sys_code";
        executeSql(sql, params);
        return new AjaxResult(true, "密码修改成功");
    }

    @Override
    public List<SysUserInf> getList() {
        List<SysUserInf> list = new ArrayList<>();
        String hql = "from TSystem_user ";
        List<TSystem_user> tSystem_users = find(hql);
        for (TSystem_user user : tSystem_users) {
            SysUserInf info = new SysUserInf();
            BeanUtils.copyProperties(user, info);
            list.add(info);
        }
        return list;
    }
}
View Code

猜你喜欢

转载自www.cnblogs.com/kikyoqiang/p/12506563.html