|
@@ -1,14 +1,19 @@
|
|
|
package com.zhongshu.reward.server.core.dao.Impl;
|
|
|
|
|
|
+import com.zhongshu.reward.client.model.InviteSuccessModel;
|
|
|
+import com.zhongshu.reward.client.model.TotalStatisticsModel;
|
|
|
import com.zhongshu.reward.client.type.ReceiptsStatus;
|
|
|
import com.zhongshu.reward.client.type.ReceiptsType;
|
|
|
import com.zhongshu.reward.server.core.dao.WalletReceiptsDao;
|
|
|
import com.zhongshu.reward.server.core.dao.extend.WalletReceiptsDaoExtend;
|
|
|
import com.zhongshu.reward.server.core.domain.WalletReceipts;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.hibernate.query.criteria.internal.compile.CriteriaCompiler;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.domain.Sort;
|
|
|
import org.springframework.data.mongodb.core.MongoTemplate;
|
|
|
+import org.springframework.data.mongodb.core.aggregation.Aggregation;
|
|
|
+import org.springframework.data.mongodb.core.aggregation.AggregationResults;
|
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
|
|
@@ -61,4 +66,23 @@ public class WalletReceiptsDaoImpl implements WalletReceiptsDaoExtend {
|
|
|
|
|
|
return mongoTemplate.find(query, WalletReceipts.class);
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<InviteSuccessModel> myInvite(String userId) {
|
|
|
+ Criteria criteria = new Criteria();
|
|
|
+ criteria.and("inviteUserId").is(userId);
|
|
|
+ criteria.and("status").in(List.of(ReceiptsStatus.WAIT, ReceiptsStatus.RECEIPTS));
|
|
|
+
|
|
|
+ Aggregation aggregation = Aggregation.newAggregation(
|
|
|
+ Aggregation.match(criteria),
|
|
|
+// Aggregation.project("_id","amountTotal"),
|
|
|
+ Aggregation.group("userId").sum("total").as("totalAmount"),
|
|
|
+ Aggregation.project().and("_id").as("userId").and("totalAmount").as("totalAmount")
|
|
|
+// Aggregation.group("tradeType").last("tradeType").as("_id")
|
|
|
+ );
|
|
|
+
|
|
|
+
|
|
|
+ AggregationResults<InviteSuccessModel> groupList = mongoTemplate.aggregate(aggregation, WalletReceipts.class, InviteSuccessModel.class);
|
|
|
+ return groupList.getMappedResults();
|
|
|
+ }
|
|
|
}
|