package com.yeshi.fanli.dao.order;
|
|
import java.util.ArrayList;
|
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.mongodb.BasicDBList;
|
import com.mongodb.BasicDBObject;
|
import com.mongodb.DBCollection;
|
import com.mongodb.DBObject;
|
import com.mongodb.GroupCommand;
|
import com.yeshi.fanli.entity.order.OrderMoneyDailyCount;
|
|
@Repository
|
public class OrderMoneyDailyCountDao {
|
|
@Resource
|
private MongoTemplate mongoTemplate;
|
|
/**
|
* 新增
|
*
|
* @param record
|
*/
|
public void save(OrderMoneyDailyCount record) {
|
if (record == null) {
|
return;
|
}
|
mongoTemplate.save(record);
|
}
|
|
/**
|
* 查询ID
|
*
|
* @param id
|
* @return
|
*/
|
public OrderMoneyDailyCount getById(String id) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("id").is(id));
|
return mongoTemplate.findOne(query, OrderMoneyDailyCount.class);
|
}
|
|
/**
|
* 选择更新
|
*
|
* @param info
|
*/
|
public void updateSelective(OrderMoneyDailyCount info) {
|
Query query = new Query();
|
query.addCriteria(Criteria.where("id").is(info.getId()));
|
Update update = new Update();
|
if (info.getIncome() != null)
|
update.set("income", info.getIncome());
|
if (info.getIncomeTeam() != null)
|
update.set("incomeTeam", info.getIncomeTeam());
|
if (info.getOrderNum() != null)
|
update.set("orderNum", info.getOrderNum());
|
if (info.getOrderNumTeam() != null)
|
update.set("orderNumTeam", info.getOrderNumTeam());
|
update.set("updateTime", new Date());
|
mongoTemplate.updateMulti(query, update, OrderMoneyDailyCount.class);
|
}
|
|
// 查询
|
public List<OrderMoneyDailyCount> query(Long uid, Date minDay, Date maxDay) {
|
Query query = new Query();
|
List<Criteria> list = new ArrayList<Criteria>();
|
list.add(Criteria.where("uid").is(uid));
|
|
if (minDay != null) {
|
list.add(Criteria.where("bossSuperId").lte(uid));
|
}
|
|
if (maxDay != null) {
|
list.add(Criteria.where("bossSuperId").gte(uid));
|
}
|
|
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.ASC, "countDay"));
|
return mongoTemplate.find(query, OrderMoneyDailyCount.class);
|
}
|
|
|
//
|
// public List<PlaybackEntity> queryPlaybackRecord(FunctionUseQueryEntity queryEntity) {
|
// Criteria criteria = Criteria.where("createTime").gte(queryEntity.getStartTime()).lte(queryEntity.getEndTime())
|
// .and("status").is(1);
|
// Query query = Query.query(criteria);
|
//
|
// BasicDBObject initial = new BasicDBObject();
|
// initial.put("playbackNum", 0);
|
//
|
// String reduce = getReduce();
|
// // 进行按天、周、月分组
|
// String keyf = getKeyf(queryEntity);
|
//
|
// DBCollection collection = mongoTemplate.getCollection(COLLNAME);
|
//
|
// GroupCommand xx = new GroupCommand(collection, keyf, query.getQueryObject(), initial, reduce, null);
|
//
|
// BasicDBList objects = (BasicDBList) collection.group(xx);
|
//
|
// List<PlaybackEntity> results = new ArrayList<PlaybackEntity>();
|
// if (objects != null) {
|
// for (int i = 0; i < objects.size(); i++) {
|
// PlaybackEntity play = new PlaybackEntity();
|
// DBObject obj = (DBObject) objects.get(i);
|
// play.setFormateTime((String) obj.get("strData"));
|
// play.setPlaybackNum((Double) obj.get("playbackNum"));
|
// results.add(play);
|
// }
|
// }
|
// return results;
|
// }
|
//
|
// private String getKeyf(FunctionUseQueryEntity queryEntity) {
|
// StringBuilder keyfBuilder = new StringBuilder();
|
// keyfBuilder.append("function(doc){ ").append(" var date = new Date(doc.createTime); ");
|
// if (DateTypeEnum.DATE.getValue().equals(queryEntity.getType())) {
|
// keyfBuilder.append(
|
// " var dateKey = '' + date.getFullYear()+ '-' + (date.getMonth()+1) + '-' + date.getDate();");
|
// } else if (DateTypeEnum.MONTH.getValue().equals(queryEntity.getType())) {
|
// keyfBuilder.append(" var dateKey = '' + date.getFullYear()+ '-' + (date.getMonth()+1);");
|
// }
|
// keyfBuilder.append(" return {'strData':dateKey}; ").append(" }");
|
// return keyfBuilder.toString();
|
// }
|
//
|
// private String getReduce() {
|
// StringBuilder reduceBuilder = new StringBuilder();
|
// reduceBuilder.append("function Reduce(doc, out) { ").append(" out.playbackNum += 1; ").append(" }");
|
// return reduceBuilder.toString();
|
// }
|
|
}
|