admin
2020-06-10 271ae63c20fcbe28d29c47f1881138ff6551a2a1
fanli/src/main/java/com/yeshi/fanli/dao/user/cloud/UserCloudSendRecordDao.java
@@ -1,13 +1,18 @@
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.fanli.dao.MongodbBaseDao;
import com.yeshi.fanli.entity.bus.user.cloud.UserCloudSendRecord;
import com.yeshi.fanli.util.StringUtil;
@Repository
public class UserCloudSendRecordDao  extends MongodbBaseDao<UserCloudSendRecord> {
@@ -19,12 +24,84 @@
    * @param sendOrigin
    * @return
    */
   public List<UserCloudSendRecord> listByUidAndSendId(Long uid, String sendId, String sendOrigin){
   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(sendOrigin));
      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);
   }
}