initial commit: lottery 项目集(三工程统一管理)

- apps/lotteryServer, lotteryCapture, lotteryOpen 三个业务工程
- 忽略 archive/, tools/, infra/data/ 大目录与敏感配置文件
- 移除 lotteryServer 原嵌套 git,并入顶层统一管理
This commit is contained in:
feng0207
2026-09-17 19:03:32 +08:00
commit 3fc4dcc777
2251 changed files with 459578 additions and 0 deletions
@@ -0,0 +1,506 @@
package javautils.jdbc.hibernate;
import javautils.jdbc.PageList;
import javautils.jdbc.util.BatchSQLUtil;
import org.hibernate.*;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Projection;
import org.hibernate.criterion.Projections;
import org.hibernate.jdbc.Work;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;
@Component
@SuppressWarnings("unchecked")
public class HibernateSuperDao<T> {
private static final Logger logger = LoggerFactory.getLogger(HibernateSuperDao.class);
@Autowired
private SessionFactory sessionFactory;
public Session getCurrentSession() {
return sessionFactory.getCurrentSession();
}
/**
* 保存
* @param entity
* @return
*/
@Transactional
public boolean save(final Object entity) {
boolean flag = false;
try {
getCurrentSession().save(entity);
flag = true;
} catch (Exception e) {
logger.error("保存实体类异常", e);
}
return flag;
}
/**
* 更新
* @param entity
* @return
*/
@Transactional
public boolean update(final Object entity) {
boolean flag = false;
try {
getCurrentSession().update(entity);
flag = true;
} catch (Exception e) {
logger.error("更新实体类异常", e);
}
return flag;
}
/**
* 更新
* @param hql
* @param values
* @return
*/
@Transactional
public boolean update(final String hql, final Object[] values) {
boolean flag = false;
try {
Query query = getCurrentSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(String.valueOf(i), values[i]);
}
int result = query.executeUpdate();
flag = result > 0 ? true : false;
} catch (Exception e) {
logger.error("更新实体类异常", e);
}
return flag;
}
/**
* 删除
* @param entity
* @return
*/
public boolean delete(final Object entity) {
boolean flag = false;
try {
getCurrentSession().delete(entity);
flag = true;
} catch (Exception e) {
logger.error("删除实体类异常", e);
}
return flag;
}
/**
* 删除
* @param hql
* @param values
* @return
*/
@Transactional
public boolean delete(final String hql, final Object[] values) {
boolean flag = false;
try {
Query query = getCurrentSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(String.valueOf(i), values[i]);
}
int result = query.executeUpdate();
flag = result > 0 ? true : false;
} catch (Exception e) {
logger.error("删除实体类异常", e);
}
return flag;
}
/**
* 查询
* @param hql
* @return
*/
@Transactional(readOnly = true)
public List<T> list(final String hql) {
try {
Query query = getCurrentSession().createQuery(hql);
return query.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 查询
* @param hql
* @param start
* @param limit
* @return
*/
@Transactional(readOnly = true)
public List<T> list(final String hql, final int start, final int limit) {
try {
Query query = getCurrentSession().createQuery(hql);
if(start >= 0 && limit > 0) {
query.setFirstResult(start);
query.setMaxResults(limit);
}
return query.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 唯一结果查询
* @param hql
* @return
*/
@Transactional(readOnly = true)
public Object unique(final String hql) {
try {
Query query = getCurrentSession().createQuery(hql);
return query.uniqueResult();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 唯一结果查询
* @param hql
* @param values
* @return
*/
@Transactional(readOnly = true)
public Object unique(final String hql, final Object[] values) {
try {
Query query = getCurrentSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(String.valueOf(i), values[i]);
}
return query.uniqueResult();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 查询
* @param hql
* @param values
* @return
*/
@Transactional(readOnly = true)
public List<T> list(final String hql, final Object[] values) {
try {
Query query = getCurrentSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(String.valueOf(i), values[i]);
}
return query.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 查询
* @param hql
* @param values
* @return
*/
@Transactional(readOnly = true)
public List<?> listObject(final String hql, final Object[] values) {
try {
Query query = getCurrentSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(String.valueOf(i), values[i]);
}
return query.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 查询
* @param hql
* @param values
* @param start
* @param limit
* @return
*/
@Transactional(readOnly = true)
public List<T> list(final String hql, final Object[] values, final int start, final int limit) {
try {
Query query = getCurrentSession().createQuery(hql);
for (int i = 0; i < values.length; i++) {
query.setParameter(String.valueOf(i), values[i]);
}
if(start >= 0 && limit > 0) {
query.setFirstResult(start);
query.setMaxResults(limit);
}
return query.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* SQL查询
* @param sql
* @return
*/
@Transactional(readOnly = true)
public List<?> findWithSql(final String sql) {
try {
SQLQuery query = getCurrentSession().createSQLQuery(sql);
return query.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* SQL查询
* @param sql
* @return
*/
@Transactional(readOnly = true)
public Object uniqueWithSqlCount(final String sql) {
try {
SQLQuery query = getCurrentSession().createSQLQuery(sql);
return query.uniqueResult();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 分页查询
* @param querySql
* @param countSql
* @param start
* @param limit
* @return
*/
@Transactional(readOnly = true)
public PageList findPageList(final String querySql, final String countSql, final int start, final int limit) {
try {
PageList pList = new PageList();
// 查询总数
SQLQuery countQuery = getCurrentSession().createSQLQuery(countSql);
Number result = (Number) countQuery.uniqueResult();
int count = result.intValue();
pList.setCount(count);
// 查询集合
SQLQuery listQuery = getCurrentSession().createSQLQuery(querySql);
if(start >= 0 && limit > 0) {
listQuery.setFirstResult(start);
listQuery.setMaxResults(limit);
}
List<T> list = listQuery.list();
pList.setList(list);
return pList;
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* 分页查询
* @param clazz
* @param criterions
* @param orders
* @param start
* @param limit
* @return
*/
@Transactional(readOnly = true)
public PageList findPageList(final Class<T> clazz, final List<Criterion> criterions, final List<Order> orders, final int start, final int limit) {
try {
PageList pList = new PageList();
Criteria criteria = getCurrentSession().createCriteria(clazz);
for (Criterion criterion : criterions) {
criteria.add(criterion);
}
for (Order order : orders) {
criteria.addOrder(order);
}
// 查询总数
criteria.setProjection(Projections.rowCount());
Number result = (Number) criteria.uniqueResult();
int count = result.intValue();
pList.setCount(count);
criteria.setProjection(null);
// 查询集合
if(start >= 0 && limit > 0) {
criteria.setFirstResult(start);
criteria.setMaxResults(limit);
}
List<T> list = criteria.list();
pList.setList(list);
return pList;
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* Criteria查询
* @param clazz
* @param criterions
* @param orders
* @return
*/
@Transactional(readOnly = true)
public List<T> findByCriteria(final Class<T> clazz, final List<Criterion> criterions, final List<Order> orders) {
try {
Criteria criteria = getCurrentSession().createCriteria(clazz);
for (Criterion criterion : criterions) {
criteria.add(criterion);
}
for (Order order : orders) {
criteria.addOrder(order);
}
return criteria.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* Criteria查询
* @param clazz
* @param criterions
* @param orders
* @param limit
* @return
*/
@Transactional(readOnly = true)
public List<T> findByCriteria(final Class<T> clazz, final List<Criterion> criterions, final List<Order> orders, final int start, final int limit) {
try {
Criteria criteria = getCurrentSession().createCriteria(clazz);
for (Criterion criterion : criterions) {
criteria.add(criterion);
}
for (Order order : orders) {
criteria.addOrder(order);
}
if(start >= 0 && limit > 0) {
criteria.setFirstResult(start);
criteria.setMaxResults(limit);
}
return criteria.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* Criteria查询
* @param clazz
* @param criterions
* @param orders
* @param projection
* @param start
* @param limit
* @return
*/
@Transactional(readOnly = true)
public List<?> findByCriteria(final Class<T> clazz, final List<Criterion> criterions, final List<Order> orders, final Projection projection, final int start, final int limit) {
try {
Criteria criteria = getCurrentSession().createCriteria(clazz);
for (Criterion criterion : criterions) {
criteria.add(criterion);
}
for (Order order : orders) {
criteria.addOrder(order);
}
criteria.setProjection(projection);
if(start >= 0 && limit > 0) {
criteria.setFirstResult(start);
criteria.setMaxResults(limit);
}
return criteria.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
/**
* Criteria查询
* @param clazz
* @param criterions
* @param orders
* @param projection
* @param start
* @param limit
* @return
*/
@Transactional(readOnly = true)
public List<?> findByCriteria(final Class<T> clazz, final List<Criterion> criterions, final List<Order> orders, final Projection projection) {
try {
Criteria criteria = getCurrentSession().createCriteria(clazz);
for (Criterion criterion : criterions) {
criteria.add(criterion);
}
for (Order order : orders) {
criteria.addOrder(order);
}
criteria.setProjection(projection);
return criteria.list();
} catch (Exception e) {
logger.error("查询出错", e);
}
return null;
}
@Transactional
public boolean doWork(final String sql, final List<Object[]> params) {
boolean flag = false;
try {
getCurrentSession().doWork(new Work() {
@Override
public void execute(Connection connection) throws SQLException {
BatchSQLUtil sqlUtil = new BatchSQLUtil(connection, sql);
for (Object[] param : params) {
sqlUtil.addCount(param);
}
sqlUtil.commit();
}
});
flag = true;
} catch (Exception e) {
logger.error("doWork出错", e);
}
return flag;
}
}