admin
2024-01-23 81da61b828e29b7745e1382dfbbaeb685dc083ef
fanli/src/main/java/com/yeshi/fanli/dao/dynamic/DynamicInfoDao.java
@@ -1,214 +1,240 @@
package com.yeshi.fanli.dao.dynamic;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
@Repository
public class DynamicInfoDao  {
   @Resource
   private MongoTemplate mongoTemplate;
   /**
    * 新增
    * @param record
    */
   public void insert(DynamicInfo record) {
      if (record == null) {
         return;
      }
      mongoTemplate.insert(record);
   }
   /**
    * 更新分享次数
    * @param record
    */
   public void updateShareCount(DynamicInfo record) {
      if (record == null) {
         return;
      }
      // 查询数据是存在
      Query query = new Query();
      query.addCriteria(Criteria.where("id").is(record.getId()));
      // 更新分享次数
      Update update = Update.update("shareCount", record.getShareCount());
      mongoTemplate.updateMulti(query, update, DynamicInfo.class);
   }
   /**
    * 更新分享次数
    * @param record
    */
   public void updateGoodInfo(DynamicInfo record) {
      if (record == null) {
         return;
      }
      // 查询数据是存在
      Query query = new Query();
      query.addCriteria(Criteria.where("id").is(record.getId()));
      if (record.getClassId() == 1) {
         Update update = Update.update("imgs", record.getImgs()).set("desc", record.getDesc());
         mongoTemplate.updateMulti(query, update, DynamicInfo.class);
      } else {
         Update update = Update.update("imgs", record.getImgs());
         mongoTemplate.updateMulti(query, update, DynamicInfo.class);
      }
   }
   /**
    * 根据id查询数据
    * @param id
    * @return
    */
   public DynamicInfo getById(String id) {
      Query query = new Query();
      query.addCriteria(Criteria.where("id").is(id));
      DynamicInfo info = mongoTemplate.findOne(query, DynamicInfo.class);
      return info;
   }
   /**
    * 根据id查询数据
    * @param id
    * @return
    */
   public DynamicInfo getByActivityId(Long activityId) {
      Query query = new Query();
      query.addCriteria(Criteria.where("activityId").is(activityId));
      DynamicInfo info = mongoTemplate.findOne(query, DynamicInfo.class);
      return info;
   }
   /**
    * 删除
    *
    * @param id
    * @return
    */
   public void deleteById(String id) {
      DynamicInfo info = getById(id);
      if (info == null ) {
         return;
      }
      mongoTemplate.remove(info);
   }
   /**
    * 删除根据时间
    *
    * @param id
    * @return
    */
   public void removeByDate(Date createTime) {
      Query query = new Query();
        query.addCriteria(Criteria.where("createTime").lt(createTime));
        query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("createTime").lt(createTime),
                   Criteria.where("classId").ne(4L)
                   )
            );
      mongoTemplate.remove(query);
   }
   /**
    * 查询
    * @param clazz
    * @return
    */
   public List<DynamicInfo> query(Long cid, Long subId) {
      Query query = new Query();
        if (subId == null) {
           query.addCriteria(Criteria.where("classId").is(cid));
        } else {
           query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("classId").is(cid),
                   Criteria.where("subclassId").is(subId)
                   )
            );
        }
        List<DynamicInfo> list = mongoTemplate.find(query, DynamicInfo.class);
      return list;
   }
   /**
    * 查询所有数据
    * @param clazz
    * @return
    */
   public List<DynamicInfo> query(int start, int count, Long cid, Long subId) {
      Query query = new Query();
        if (subId == null) {
           query.addCriteria(Criteria.where("classId").is(cid));
        } else {
           query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("classId").is(cid),
                   Criteria.where("subclassId").is(subId)
                   )
            );
        }
        //分页
        query.skip(start).limit(count);
        //排序
        query.with(new Sort(Sort.Direction.DESC,"createTime"));
        List<DynamicInfo> list = mongoTemplate.find(query, DynamicInfo.class);
      return list;
   }
   public long count(Long cid, Long subId) {
      Query query = new Query();
        if (subId == null) {
           query.addCriteria(Criteria.where("classId").is(cid));
        } else {
           query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("classId").is(cid),
                   Criteria.where("subclassId").is(subId)
                   )
            );
        }
       return mongoTemplate.count(query, DynamicInfo.class);
   }
   /**
    * 查询所有数据
    * @param clazz
    * @return
    */
   public List<DynamicInfo> queryAll() {
      return (List<DynamicInfo>) mongoTemplate.findAll(DynamicInfo.class);
   }
}
package com.yeshi.fanli.dao.dynamic;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.stereotype.Repository;
import com.yeshi.fanli.entity.dynamic.DynamicInfo;
import com.yeshi.fanli.log.LogHelper;
@Repository
public class DynamicInfoDao  {
   @Resource
   private MongoTemplate mongoTemplate;
   /**
    * 新增
    * @param record
    */
   public void insert(DynamicInfo record) {
      if (record == null) {
         return;
      }
      mongoTemplate.insert(record);
   }
   /**
    * 更新分享次数
    * @param record
    */
   public void updateShareCount(DynamicInfo record) {
      if (record == null) {
         return;
      }
      // 查询数据是存在
      Query query = new Query();
      query.addCriteria(Criteria.where("id").is(record.getId()));
      // 更新分享次数
      Update update = Update.update("shareCount", record.getShareCount());
      mongoTemplate.updateMulti(query, update, DynamicInfo.class);
   }
   /**
    * 更新分享次数
    * @param record
    */
   public void updateGoodInfo(DynamicInfo record) {
      if (record == null) {
         return;
      }
      // 查询数据是存在
      Query query = new Query();
      query.addCriteria(Criteria.where("id").is(record.getId()));
      if (record.getClassId() == 1) {
         Update update = Update.update("imgs", record.getImgs()).set("desc", record.getDesc());
         mongoTemplate.updateMulti(query, update, DynamicInfo.class);
      } else {
         Update update = Update.update("imgs", record.getImgs());
         mongoTemplate.updateMulti(query, update, DynamicInfo.class);
      }
   }
   /**
    * 根据id查询数据
    * @param id
    * @return
    */
   public DynamicInfo getById(String id) {
      Query query = new Query();
      query.addCriteria(Criteria.where("id").is(id));
      DynamicInfo info = mongoTemplate.findOne(query, DynamicInfo.class);
      return info;
   }
   /**
    * 根据id查询数据
    * @param id
    * @return
    */
   public DynamicInfo getByActivityId(Long activityId) {
      Query query = new Query();
      query.addCriteria(Criteria.where("activityId").is(activityId));
      DynamicInfo info = mongoTemplate.findOne(query, DynamicInfo.class);
      return info;
   }
   /**
    * 删除
    *
    * @param id
    * @return
    */
   public void deleteById(String id) {
      DynamicInfo info = getById(id);
      if (info == null ) {
         return;
      }
      mongoTemplate.remove(info);
   }
   /**
    * 删除根据时间
    *
    * @param id
    * @return
    */
   public void removeByDate(Date createTime) {
      LogHelper.test("removeByDate--开始执行动态删除---");
      for(int i = 0; i < 20; i++) {
         Query query = new Query();
           query.addCriteria(Criteria.where("createTime").lt(createTime));
           query.skip(0).limit(100);
           LogHelper.test("removeByDate--查询---");
           List<DynamicInfo> list = mongoTemplate.find(query, DynamicInfo.class);
           if (list == null || list.size() == 0) {
              break;
           }
           LogHelper.test("removeByDate--for删除---" + list.size());
           for (DynamicInfo info: list) {
              mongoTemplate.remove(info);
           }
      }
      LogHelper.test("removeByDate--结束动态删除---");
   }
   /**
    * 查询
    * @param clazz
    * @return
    */
   public List<DynamicInfo> query(Long cid, Long subId) {
      Query query = new Query();
        if (subId == null) {
           query.addCriteria(Criteria.where("classId").is(cid));
        } else {
           query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("classId").is(cid),
                   Criteria.where("subclassId").is(subId)
                   )
            );
        }
        List<DynamicInfo> list = mongoTemplate.find(query, DynamicInfo.class);
      return list;
   }
   /**
    * 查询所有数据
    * @param clazz
    * @return
    */
   public List<DynamicInfo> query(int start, int count, Long cid, Long subId) {
      Query query = new Query();
        if (subId == null) {
           query.addCriteria(Criteria.where("classId").is(cid));
        } else {
           query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("classId").is(cid),
                   Criteria.where("subclassId").is(subId)
                   )
            );
        }
        //分页
        query.skip(start).limit(count);
        //排序
        query.with(new Sort(Sort.Direction.DESC,"createTime"));
        List<DynamicInfo> list = mongoTemplate.find(query, DynamicInfo.class);
      return list;
   }
   public long count(Long cid, Long subId) {
      Query query = new Query();
        if (subId == null) {
           query.addCriteria(Criteria.where("classId").is(cid));
        } else {
           query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("classId").is(cid),
                   Criteria.where("subclassId").is(subId)
                   )
            );
        }
       return mongoTemplate.count(query, DynamicInfo.class);
   }
   /**
    * 查询所有数据
    * @param clazz
    * @return
    */
   public List<DynamicInfo> queryAll() {
      return (List<DynamicInfo>) mongoTemplate.findAll(DynamicInfo.class);
   }
   /**
    * 查询所有数据
    * @param clazz
    * @return
    */
   public List<DynamicInfo> queryExistsAuctionId() {
      Query query = new Query();
      query.addCriteria(
               new Criteria().andOperator(
                   Criteria.where("imgs.goods").exists(true),
                   Criteria.where("imgs.goods.auctionId").exists(false)
                   )
            );
        List<DynamicInfo> list = mongoTemplate.find(query, DynamicInfo.class);
      return list;
   }
}