package com.ks.lucky.dao;
|
|
import com.ks.lib.common.dao.MongodbBaseDao;
|
import com.ks.lib.common.util.MongoDBQueryUtil;
|
import com.ks.lucky.pojo.DO.LuckySponsorAd;
|
import com.ks.lucky.query.LuckySponsorAdQuery;
|
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.data.mongodb.core.query.Update;
|
import org.springframework.stereotype.Repository;
|
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
@Repository
|
public class LuckySponsorAdDao extends MongodbBaseDao<LuckySponsorAd> {
|
public void updateSelective(LuckySponsorAd bean) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("id").is(bean.getId()));
|
Update update = new Update();
|
if (bean.getAdType() != null) {
|
update.set("adType", bean.getAdType());
|
}
|
if (bean.getSponsorId() != null) {
|
update.set("sponsorId", bean.getSponsorId());
|
}
|
if (bean.getState() != null) {
|
update.set("state", bean.getState());
|
}
|
if (bean.getStateDesc() != null) {
|
update.set("stateDesc", bean.getStateDesc());
|
}
|
if (bean.getVerifyTime() != null) {
|
update.set("verifyTime", bean.getVerifyTime());
|
}
|
if (bean.getVerifySuccessTime() != null) {
|
update.set("verifySuccessTime", bean.getVerifySuccessTime());
|
}
|
|
if (bean.getAlipayLifeAdInfo() != null) {
|
update.set("alipayLifeAdInfo", bean.getAlipayLifeAdInfo());
|
}
|
|
update.set("updateTime", new Date());
|
update(query, update);
|
}
|
|
private Criteria[] getWheres(LuckySponsorAdQuery query) {
|
List<Criteria> andWhere = new ArrayList<>();
|
if (query.type != null) {
|
andWhere.add(Criteria.where("adType").is(query.type));
|
}
|
if (query.sponsorId != null) {
|
andWhere.add(Criteria.where("sponsorId").is(query.sponsorId));
|
}
|
|
if (query.key != null) {
|
andWhere.add(Criteria.where("sponsorId").regex(query.key));
|
}
|
|
if (query.minCreateTime != null) {
|
andWhere.add(Criteria.where("createTime").gte(query.minCreateTime));
|
}
|
|
if (query.maxCreateTime != null) {
|
andWhere.add(Criteria.where("createTime").lt(query.maxCreateTime));
|
}
|
|
|
Criteria[] wheres = new Criteria[andWhere.size()];
|
andWhere.toArray(wheres);
|
return wheres;
|
}
|
|
public List<LuckySponsorAd> list(LuckySponsorAdQuery query) {
|
Query dbQuery = new Query();
|
dbQuery.addCriteria(new Criteria().andOperator(getWheres(query)));
|
dbQuery.skip(query.start);
|
dbQuery.limit(query.count);
|
|
if (query.sortList != null && query.sortList.size() > 0) {
|
dbQuery.with(Sort.by(MongoDBQueryUtil.convertSQLSort(query.sortList)));
|
}
|
|
return findList(dbQuery);
|
}
|
|
public long count(LuckySponsorAdQuery query) {
|
Query dbQuery = new Query();
|
dbQuery.addCriteria(new Criteria().andOperator(getWheres(query)));
|
return count(dbQuery);
|
}
|
|
|
public List<LuckySponsorAd> list(List<String> ids) {
|
List<Criteria> andWhere = new ArrayList<>();
|
for (String id : ids) {
|
andWhere.add(Criteria.where("id").is(id));
|
}
|
Criteria[] wheres = new Criteria[andWhere.size()];
|
andWhere.toArray(wheres);
|
Query dbQuery = new Query();
|
dbQuery.addCriteria(new Criteria().orOperator(wheres));
|
return findList(dbQuery);
|
}
|
}
|