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);
|
}
|
|
}
|
|