package com.yeshi.fanli.dao.user.cloud;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.regex.Pattern;
|
|
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 com.yeshi.common.MongodbBaseDao;
|
import com.yeshi.fanli.entity.bus.user.cloud.UserCloudSendRecord;
|
import com.yeshi.fanli.util.StringUtil;
|
|
@Repository
|
public class UserCloudSendRecordDao extends MongodbBaseDao<UserCloudSendRecord> {
|
|
/**
|
* 查询已发送id
|
* @param uid
|
* @param sendId
|
* @param sendOrigin
|
* @return
|
*/
|
public List<UserCloudSendRecord> listByUidAndSendId(Long uid, String sendId){
|
Query query = new Query();
|
query.addCriteria(Criteria.where("uid").is(uid));
|
query.addCriteria(Criteria.where("sendId").is(sendId));
|
query.addCriteria(Criteria.where("sendOrigin").is(UserCloudSendRecord.ORIGIN_EVALUATE));
|
return findList(query);
|
}
|
|
|
/**
|
* 查询已发送id
|
* @param uid
|
* @param sendId
|
* @param sendOrigin
|
* @return
|
*/
|
public List<UserCloudSendRecord> getLastByUid(Long uid, Date lastTime){
|
Query query = new Query();
|
query.addCriteria(Criteria.where("uid").is(uid));
|
query.addCriteria(Criteria.where("sendWay").is(UserCloudSendRecord.SEND_WAY_AUTO));
|
query.addCriteria(Criteria.where("sendOrigin").is(UserCloudSendRecord.ORIGIN_EVALUATE));
|
query.addCriteria(Criteria.where("sendTime").gt(lastTime));
|
query.with(new Sort(Sort.Direction.ASC,"sendTime"));
|
|
return findList(query);
|
}
|
|
|
/**
|
* 查询
|
* @param start
|
* @param count
|
* @param key
|
* @param sendOrigin
|
* @return
|
*/
|
public List<UserCloudSendRecord> query(int start, int count, String key, Integer sendOrigin){
|
List<Criteria> list = new ArrayList<Criteria>();
|
if (sendOrigin != null)
|
list.add(Criteria.where("sendOrigin").is(sendOrigin));
|
|
if (!StringUtil.isNullOrEmpty(key)) {
|
list.add(new Criteria().orOperator( Criteria.where("uid")
|
.regex(Pattern.compile("^.*" + key + ".*$",
|
Pattern.CASE_INSENSITIVE))));
|
}
|
|
Query query = new Query();
|
if (list.size() > 0) {
|
Criteria[] cas = new Criteria[list.size()];
|
for (int i = 0; i < list.size(); i++)
|
cas[i] = list.get(i);
|
query.addCriteria(new Criteria().andOperator(cas));
|
}
|
query.with(new Sort(Sort.Direction.DESC,"sendTime"));
|
query.skip(start).limit(count);
|
return findList(query);
|
}
|
|
|
public long count(String key, Integer sendOrigin){
|
List<Criteria> list = new ArrayList<Criteria>();
|
if (sendOrigin != null)
|
list.add(Criteria.where("sendOrigin").is(sendOrigin));
|
|
if (!StringUtil.isNullOrEmpty(key)) {
|
list.add(new Criteria().orOperator( Criteria.where("uid")
|
.regex(Pattern.compile("^.*" + key + ".*$",
|
Pattern.CASE_INSENSITIVE))));
|
}
|
|
Query query = new Query();
|
if (list.size() > 0) {
|
Criteria[] cas = new Criteria[list.size()];
|
for (int i = 0; i < list.size(); i++)
|
cas[i] = list.get(i);
|
query.addCriteria(new Criteria().andOperator(cas));
|
}
|
return count(query);
|
}
|
|
|
public long countRecordNum(Long uid, Integer sendOrigin){
|
List<Criteria> list = new ArrayList<Criteria>();
|
if (uid != null)
|
list.add(Criteria.where("uid").is(uid));
|
if (sendOrigin != null)
|
list.add(Criteria.where("sendOrigin").is(sendOrigin));
|
|
Query query = new Query();
|
if (list.size() > 0) {
|
Criteria[] cas = new Criteria[list.size()];
|
for (int i = 0; i < list.size(); i++)
|
cas[i] = list.get(i);
|
query.addCriteria(new Criteria().andOperator(cas));
|
}
|
return count(query);
|
}
|
}
|