package com.yeshi.fanli.dao.user;
|
|
import com.ks.lijin.query.BaseDaoQuery;
|
import com.yeshi.common.MongodbBaseDao;
|
import com.yeshi.fanli.entity.SystemFunction;
|
import com.yeshi.fanli.entity.bus.homemodule.DeviceSex;
|
import com.yeshi.fanli.entity.bus.user.UserFunctionsLimit;
|
import com.yeshi.fanli.util.db.MongoSortFactory;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.mongodb.core.query.Criteria;
|
import org.springframework.data.mongodb.core.query.Query;
|
import org.springframework.stereotype.Repository;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Repository
|
public class UserFunctionsLimitDao extends MongodbBaseDao<UserFunctionsLimit> {
|
|
|
private Criteria[] getWheres(DaoQuery daoQuery) {
|
List<Criteria> whereList = new ArrayList<>();
|
if (daoQuery.function != null) {
|
whereList.add(Criteria.where("function").is(daoQuery.function));
|
}
|
if (daoQuery.minCreateTime != null) {
|
whereList.add(Criteria.where("createTime").gte(daoQuery.minCreateTime));
|
}
|
|
if (daoQuery.maxCreateTime != null) {
|
whereList.add(Criteria.where("createTime").lt(daoQuery.maxCreateTime));
|
}
|
|
if (daoQuery.uid != null) {
|
whereList.add(Criteria.where("uid").is(daoQuery.uid));
|
}
|
|
if (daoQuery.nowDate != null) {
|
whereList.add(Criteria.where("startTime").lte(daoQuery.nowDate));
|
whereList.add(Criteria.where("endTime").gt(daoQuery.nowDate));
|
}
|
|
Criteria[] wheres = new Criteria[whereList.size()];
|
whereList.toArray(wheres);
|
return wheres;
|
}
|
|
public List<UserFunctionsLimit> list(DaoQuery daoQuery) {
|
Query query = new Query();
|
query.addCriteria(new Criteria().andOperator(getWheres(daoQuery)));
|
query.skip((int) daoQuery.start);
|
query.limit(daoQuery.count);
|
|
if (daoQuery.sortList != null && daoQuery.sortList.size() > 0)
|
query.with(new Sort(MongoSortFactory.createFromSqlSort(daoQuery.sortList)));
|
return findList(query);
|
}
|
|
public long count(DaoQuery daoQuery) {
|
Query query = new Query();
|
query.addCriteria(new Criteria().andOperator(getWheres(daoQuery)));
|
return count(query);
|
}
|
|
|
public static class DaoQuery extends BaseDaoQuery {
|
public Date nowDate;
|
public Long uid;
|
public SystemFunction function;
|
}
|
|
}
|