From 28cf328a098334b51a3e9d2d56f983fb8c862211 Mon Sep 17 00:00:00 2001
From: yujian <yujian@163.com>
Date: 星期六, 23 五月 2020 09:54:38 +0800
Subject: [PATCH] 足迹、收藏订单兼容新需求

---
 fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java |  158 +++++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 130 insertions(+), 28 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java b/fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java
index d6cfbb6..1b167d0 100644
--- a/fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java
+++ b/fanli/src/main/java/com/yeshi/fanli/dao/dynamic/GoodsEvaluateDao.java
@@ -1,5 +1,6 @@
 package com.yeshi.fanli.dao.dynamic;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.regex.Pattern;
@@ -10,10 +11,9 @@
 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.BasicDBObject;
-import com.mongodb.QueryOperators;
 import com.yeshi.fanli.entity.dynamic.GoodsEvaluate;
 import com.yeshi.fanli.util.StringUtil;
 
@@ -35,6 +35,21 @@
 		mongoTemplate.save(record);
 	}
 
+	
+	/**
+	 * 鐘舵�佸垏鎹�
+	 * 
+	 * @param record
+	 */
+	public void updateSatate(String id, int state) {
+		Query query = new Query();
+		query.addCriteria(Criteria.where("id").is(id));
+		
+		Update update = Update.update("state", state);
+		mongoTemplate.updateMulti(query, update, GoodsEvaluate.class);
+	}
+
+	
 	
 	/**
 	 * 鍒犻櫎
@@ -82,31 +97,57 @@
 	 * 
 	 * @return
 	 */
-	public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType) {
+	public List<GoodsEvaluate> query(int start, int count, String key, Integer state, int dynamicType, String typeEnum) {
 		Query query = new Query();
-		query.addCriteria(Criteria.where("dynamicType").is(dynamicType));
+		List<Criteria> list = new ArrayList<Criteria>();
+		list.add(Criteria.where("dynamicType").is(dynamicType));
+		
 		if (state != null) {
-			query.addCriteria(Criteria.where("state").is(state));
+			list.add(Criteria.where("state").is(state));
 		}
+		
+		if (!StringUtil.isNullOrEmpty(typeEnum))
+			list.add(Criteria.where("type").is(typeEnum));
+		
 		if (!StringUtil.isNullOrEmpty(key))
-			query.addCriteria(new Criteria().orOperator(
+			list.add(new Criteria().orOperator(
 					       Criteria.where("title").regex(Pattern.compile("^.*" + key + ".*$", Pattern.CASE_INSENSITIVE))));
-     
+		
+		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.skip(start).limit(count);
         query.with(new Sort(Sort.Direction.DESC,"weight")).with(new Sort(Sort.Direction.DESC,"createTime"));
 		return mongoTemplate.find(query, GoodsEvaluate.class);
 	}
 
-	public long count(String key, Integer state, int dynamicType) {
+	public long count(String key, Integer state, int dynamicType, String typeEnum) {
 		Query query = new Query();
-		query.addCriteria(Criteria.where("dynamicType").is(dynamicType));
-
+		List<Criteria> list = new ArrayList<Criteria>();
+		list.add(Criteria.where("dynamicType").is(dynamicType));
+		
 		if (state != null) {
-			query.addCriteria(Criteria.where("state").is(state));
+			list.add(Criteria.where("state").is(state));
 		}
+		
+		if (!StringUtil.isNullOrEmpty(typeEnum))
+			list.add(Criteria.where("type").is(typeEnum));
+		
 		if (!StringUtil.isNullOrEmpty(key))
-			query.addCriteria(new Criteria().orOperator(
+			list.add(new Criteria().orOperator(
 					       Criteria.where("title").regex(Pattern.compile("^.*" + key + ".*$", Pattern.CASE_INSENSITIVE))));
+		
+		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 mongoTemplate.count(query, GoodsEvaluate.class);
 	}
 
@@ -120,12 +161,22 @@
 	public List<GoodsEvaluate> queryValid(int start, int count, int dynamicType) {
 		Date now = new Date();
 		Query query = new Query();
-		query.addCriteria(Criteria.where("dynamicType").is(dynamicType));
-		query.addCriteria(Criteria.where("state").is(1));
-		query.addCriteria(Criteria.where("startTime").lte(now));
-		query.addCriteria(Criteria.where("endTime").gte(now));
+		List<Criteria> list = new ArrayList<Criteria>();
+		
+		list.add(Criteria.where("dynamicType").is(dynamicType));
+		list.add(Criteria.where("state").is(1));
+		list.add(Criteria.where("startTime").lte(now));
+		list.add(Criteria.where("endTime").gte(now));
+		
+		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.skip(start).limit(count);
-		query.with(new Sort(Sort.Direction.DESC,"weight")).with(new Sort(Sort.Direction.DESC,"createTime"));
+		query.with(new Sort(Sort.Direction.DESC,"weight")).with(new Sort(Sort.Direction.DESC,"startTime"));
 		return mongoTemplate.find(query, GoodsEvaluate.class);
 	}
 
@@ -137,10 +188,19 @@
 	public long countValid(int dynamicType) {
 		Date now = new Date();
 		Query query = new Query();
-		query.addCriteria(Criteria.where("dynamicType").is(dynamicType));
-		query.addCriteria(Criteria.where("state").is(1));
-		query.addCriteria(Criteria.where("startTime").lte(now));
-		query.addCriteria(Criteria.where("endTime").gte(now));
+		List<Criteria> list = new ArrayList<Criteria>();
+		
+		list.add(Criteria.where("dynamicType").is(dynamicType));
+		list.add(Criteria.where("state").is(1));
+		list.add(Criteria.where("startTime").lte(now));
+		list.add(Criteria.where("endTime").gte(now));
+		
+		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 mongoTemplate.count(query, GoodsEvaluate.class);
 	}
 	
@@ -154,9 +214,18 @@
 	 */
 	public List<GoodsEvaluate> querySingleExist() {
 		Query query = new Query();
-		query.addCriteria(Criteria.where("dynamicType").is(1));
-		query.addCriteria(Criteria.where("state").is(1));
-		query.addCriteria(Criteria.where("goods.goodsType").is(1));
+		List<Criteria> list = new ArrayList<Criteria>();
+		
+		list.add(Criteria.where("dynamicType").is(1));
+		list.add(Criteria.where("state").is(1));
+		list.add(Criteria.where("goods.goodsType").is(1));
+		
+		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 mongoTemplate.find(query, GoodsEvaluate.class);
 	}
 	
@@ -170,10 +239,19 @@
 	 */
 	public List<GoodsEvaluate> queryExist(int goodsType, Long goodsId) {
 		Query query = new Query();
-		query.addCriteria(Criteria.where("dynamicType").is(1));
-		query.addCriteria(Criteria.where("state").is(1));
-		query.addCriteria(Criteria.where("imgList.goods.goodsId").is(goodsId));
-		query.addCriteria(Criteria.where("imgList.goods.goodsType").is(goodsType));
+		List<Criteria> list = new ArrayList<Criteria>();
+		list.add(Criteria.where("dynamicType").is(1));
+		list.add(Criteria.where("state").is(1));
+		list.add(Criteria.where("imgList.goods.goodsId").is(goodsId));
+		list.add(Criteria.where("imgList.goods.goodsType").is(goodsType));
+		
+		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 mongoTemplate.find(query, GoodsEvaluate.class);
 	}
 
@@ -192,4 +270,28 @@
 		query.with(new Sort(Sort.Direction.ASC,"createTime"));
 		return mongoTemplate.find(query, GoodsEvaluate.class);
 	}
+	
+	
+	/**
+	 * 鏌ヨ鏈夋晥
+	 * @param start
+	 * @param count
+	 * @param key
+	 * @return
+	 */
+	public List<GoodsEvaluate> removeDownGoods() {
+		Query query = new Query();
+		List<Criteria> list = new ArrayList<Criteria>();
+		list.add(Criteria.where("type").is("single"));
+		list.add(Criteria.where("goods.state").is(1));
+		
+		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 mongoTemplate.find(query, GoodsEvaluate.class);
+	}
 }

--
Gitblit v1.8.0