package com.yeshi.fanli.dao.user.msg;
|
|
import com.ks.lijin.query.BaseDaoQuery;
|
import com.yeshi.common.MongodbBaseDao;
|
import com.yeshi.fanli.entity.bus.msg.MsgOverViews;
|
import com.yeshi.fanli.entity.bus.msg.MsgTypeEnum;
|
import org.springframework.data.domain.Sort;
|
import org.springframework.data.mongodb.core.mapping.Field;
|
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.List;
|
|
@Repository
|
public class MsgOverViewsDao extends MongodbBaseDao<MsgOverViews> {
|
|
|
private Criteria[] getWheres(DaoQuery daoQuery) {
|
List<Criteria> whereList = new ArrayList<>();
|
|
if (daoQuery.uid != null) {
|
whereList.add(Criteria.where("uid").is(daoQuery.uid));
|
}
|
if (daoQuery.identityCode != null) {
|
whereList.add(Criteria.where("identityCode").is(daoQuery.identityCode));
|
}
|
if (daoQuery.msgType != null) {
|
whereList.add(Criteria.where("msgType").is(daoQuery.msgType));
|
}
|
|
|
Criteria[] wheres = new Criteria[whereList.size()];
|
whereList.toArray(wheres);
|
return wheres;
|
}
|
|
public List<MsgOverViews> list(DaoQuery daoQuery) {
|
Query query = new Query();
|
query.addCriteria(new Criteria().andOperator(getWheres(daoQuery)));
|
query.skip((int) daoQuery.start);
|
query.limit(daoQuery.count);
|
query.with(new Sort(Sort.Direction.DESC, "updateTime"));
|
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 Long uid;
|
public MsgTypeEnum msgType;
|
public Long identityCode;
|
}
|
}
|