Subversion Repositories SmartDukaan

Rev

Rev 27200 | Rev 27245 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
21723 ashik.ali 1
package com.spice.profitmandi.dao.repository.dtr;
21545 ashik.ali 2
 
22097 kshitij.so 3
import java.lang.reflect.Type;
4
import java.util.ArrayList;
23793 tejbeer 5
import java.util.Arrays;
24995 amit.gupta 6
import java.util.HashMap;
27120 amit.gupta 7
import java.util.Iterator;
22097 kshitij.so 8
import java.util.List;
22125 ashik.ali 9
import java.util.Map;
24995 amit.gupta 10
import java.util.stream.Collectors;
21545 ashik.ali 11
 
24031 amit.gupta 12
import org.apache.logging.log4j.LogManager;
23568 govind 13
import org.apache.logging.log4j.Logger;
23793 tejbeer 14
import org.bson.Document;
24031 amit.gupta 15
import org.json.JSONObject;
21545 ashik.ali 16
 
22097 kshitij.so 17
import com.google.gson.Gson;
18
import com.google.gson.reflect.TypeToken;
21545 ashik.ali 19
import com.mongodb.BasicDBObject;
20
import com.mongodb.DB;
21
import com.mongodb.DBCollection;
22097 kshitij.so 22
import com.mongodb.DBCursor;
21545 ashik.ali 23
import com.mongodb.DBObject;
24
import com.mongodb.MongoClient;
23793 tejbeer 25
import com.mongodb.client.AggregateIterable;
26
import com.mongodb.client.MongoCollection;
27
import com.mongodb.client.MongoDatabase;
21545 ashik.ali 28
import com.mongodb.util.JSON;
27122 amit.gupta 29
import com.spice.profitmandi.common.util.Utils;
24011 tejbeer 30
import com.spice.profitmandi.dao.entity.dtr.NotificationCampaigns;
25380 amit.gupta 31
import com.spice.profitmandi.dao.model.ContentPojo;
22097 kshitij.so 32
import com.spice.profitmandi.dao.model.FofoForm;
22496 amit.gupta 33
import com.spice.profitmandi.dao.model.RetailerFofoInterest;
21545 ashik.ali 34
 
35
public class Mongo {
22384 amit.gupta 36
 
23568 govind 37
	private static final Logger LOGGER = LogManager.getLogger(Mongo.class);
21545 ashik.ali 38
 
22165 amit.gupta 39
	private static final String CONTENT = "CONTENT";
21545 ashik.ali 40
	private static final String SITE_CONTENT = "siteContent";
41
	private static final String CATALOG_DB = "Catalog";
42
	private static final String MASTER_DATA = "MasterData";
22097 kshitij.so 43
	private static final String FOFO_DB = "Fofo";
22335 amit.gupta 44
	private static final String FOFO_BRANDS = "brands";
22446 amit.gupta 45
	private static final String PROFITMANDI_BANNERS = "banners";
22496 amit.gupta 46
	private static final String RETAILER_FOFO_INTEREST = "RetailerFofoInterest";
22097 kshitij.so 47
	private static final String FOFO_FORM_COLLECTION = "RegistrationForm";
24011 tejbeer 48
	private static final String NOTIFICATION_CAMPAIGNS = "notificationcampaigns";
49
	private static final String USER_DB = "User";
21545 ashik.ali 50
	private static final int MONGO_PORT = 27017;
25380 amit.gupta 51
 
52
	private static final Gson gson = new Gson();
27120 amit.gupta 53
	private static final List<String> BLOCKED_BRANDS = Arrays.asList("Realme");
25560 amit.gupta 54
	public static final Map<Integer, List<String>> PARTNER_BLoCKED_BRANDS = new HashMap<>();
27120 amit.gupta 55
	public static final Map<Integer, List<String>> PARTNER_ALLOWED_BRANDS = new HashMap<>();
56
 
22165 amit.gupta 57
 
24995 amit.gupta 58
	static {
26343 tejbeer 59
		PARTNER_BLoCKED_BRANDS.put(175135597, Arrays.asList("Vivo"));
60
		PARTNER_BLoCKED_BRANDS.put(175135183, Arrays.asList("Vivo"));
61
		PARTNER_BLoCKED_BRANDS.put(175137445, Arrays.asList("Vivo"));
62
		PARTNER_BLoCKED_BRANDS.put(175137557, Arrays.asList("Vivo"));
63
		PARTNER_BLoCKED_BRANDS.put(175138281, Arrays.asList("Vivo"));
64
		PARTNER_BLoCKED_BRANDS.put(175138441, Arrays.asList("Vivo"));
65
		PARTNER_BLoCKED_BRANDS.put(175138447, Arrays.asList("Vivo"));
66
		PARTNER_BLoCKED_BRANDS.put(175138570, Arrays.asList("Vivo"));
67
		// TITU
68
		PARTNER_BLoCKED_BRANDS.put(175138610, Arrays.asList("Vivo"));
69
		PARTNER_BLoCKED_BRANDS.put(175138611, Arrays.asList("Vivo"));
70
		PARTNER_BLoCKED_BRANDS.put(175138639, Arrays.asList("Vivo"));
71
		PARTNER_BLoCKED_BRANDS.put(175138716, Arrays.asList("Vivo"));
27216 amit.gupta 72
		//DY Venturs
73
		PARTNER_BLoCKED_BRANDS.put(175138874, Arrays.asList("Vivo"));
26811 amit.gupta 74
		//Pardeep Telecom
26869 amit.gupta 75
		//PARTNER_BLoCKED_BRANDS.put(175138843, Arrays.asList("Vivo"));
26343 tejbeer 76
		// PARTNER_BLoCKED_BRANDS.put(175138733,Arrays.asList("Vivo"));
26600 amit.gupta 77
		//Venus Agencies
78
		//PARTNER_BLoCKED_BRANDS.put(175138801, Arrays.asList("Vivo"));
26459 tejbeer 79
		//PARTNER_BLoCKED_BRANDS.put(175138717, Arrays.asList("Vivo"));
26343 tejbeer 80
		PARTNER_BLoCKED_BRANDS.put(175138803, Arrays.asList("Vivo"));
81
		PARTNER_BLoCKED_BRANDS.put(175138821, Arrays.asList("Vivo"));
82
		// PARTNER_BLoCKED_BRANDS.put(175138820,Arrays.asList("Vivo"));
83
		PARTNER_BLoCKED_BRANDS.put(175138718, Arrays.asList("Vivo"));
84
		PARTNER_BLoCKED_BRANDS.put(175138637, Arrays.asList("Vivo"));
27216 amit.gupta 85
		//Gaurav Electronics
86
		PARTNER_BLoCKED_BRANDS.put(175138637, Arrays.asList("Vivo"));
26343 tejbeer 87
		// PARTNER_BLoCKED_BRANDS.put(175138814,Arrays.asList("Vivo"));
26421 tejbeer 88
		//PARTNER_BLoCKED_BRANDS.put(175138833, Arrays.asList("Vivo"));
26397 amit.gupta 89
		//Durga Enterprises
26459 tejbeer 90
		//PARTNER_BLoCKED_BRANDS.put(175138832, Arrays.asList("Vivo"));
27120 amit.gupta 91
		PARTNER_ALLOWED_BRANDS.put(172157716, Arrays.asList("Realme"));
27216 amit.gupta 92
		//DY Ventures
93
		PARTNER_ALLOWED_BRANDS.put(175138874, Arrays.asList("Realme"));
27120 amit.gupta 94
		PARTNER_ALLOWED_BRANDS.put(175135227, Arrays.asList("Realme"));
95
		PARTNER_ALLOWED_BRANDS.put(175135707, Arrays.asList("Realme"));
96
		PARTNER_ALLOWED_BRANDS.put(175135923, Arrays.asList("Realme"));
97
		PARTNER_ALLOWED_BRANDS.put(175138372, Arrays.asList("Realme"));
98
		PARTNER_ALLOWED_BRANDS.put(175138520, Arrays.asList("Realme"));
99
		PARTNER_ALLOWED_BRANDS.put(175138522, Arrays.asList("Realme"));
100
		PARTNER_ALLOWED_BRANDS.put(175138541, Arrays.asList("Realme"));
101
		PARTNER_ALLOWED_BRANDS.put(175138674, Arrays.asList("Realme"));
102
		PARTNER_ALLOWED_BRANDS.put(175138716, Arrays.asList("Realme"));
103
		PARTNER_ALLOWED_BRANDS.put(175138801, Arrays.asList("Realme"));
104
		PARTNER_ALLOWED_BRANDS.put(175138812, Arrays.asList("Realme"));
105
		PARTNER_ALLOWED_BRANDS.put(175138813, Arrays.asList("Realme"));
106
		PARTNER_ALLOWED_BRANDS.put(175138814, Arrays.asList("Realme"));
107
		PARTNER_ALLOWED_BRANDS.put(175138816, Arrays.asList("Realme"));
108
		PARTNER_ALLOWED_BRANDS.put(175138820, Arrays.asList("Realme"));
109
		PARTNER_ALLOWED_BRANDS.put(175138836, Arrays.asList("Realme"));
110
		PARTNER_ALLOWED_BRANDS.put(175138838, Arrays.asList("Realme"));
111
		PARTNER_ALLOWED_BRANDS.put(175138840, Arrays.asList("Realme"));
112
		PARTNER_ALLOWED_BRANDS.put(175138842, Arrays.asList("Realme"));
113
		PARTNER_ALLOWED_BRANDS.put(175138843, Arrays.asList("Realme"));
114
		PARTNER_ALLOWED_BRANDS.put(175138847, Arrays.asList("Realme"));
115
		PARTNER_ALLOWED_BRANDS.put(175138858, Arrays.asList("Realme"));
116
		PARTNER_ALLOWED_BRANDS.put(175138859, Arrays.asList("Realme"));
117
		PARTNER_ALLOWED_BRANDS.put(175138860, Arrays.asList("Realme"));
118
		PARTNER_ALLOWED_BRANDS.put(175138862, Arrays.asList("Realme"));
119
		PARTNER_ALLOWED_BRANDS.put(175138863, Arrays.asList("Realme"));
120
		PARTNER_ALLOWED_BRANDS.put(175138865, Arrays.asList("Realme"));
121
		PARTNER_ALLOWED_BRANDS.put(175138868, Arrays.asList("Realme"));
27194 amit.gupta 122
		PARTNER_ALLOWED_BRANDS.put(175138829, Arrays.asList("Realme"));
27200 amit.gupta 123
		PARTNER_ALLOWED_BRANDS.put(175138864, Arrays.asList("Realme"));
26343 tejbeer 124
 
24995 amit.gupta 125
	}
126
 
22162 amit.gupta 127
	private MongoClient mongoClient;
128
	private MongoClient contentMongoClient;
129
 
22171 amit.gupta 130
	public Mongo(String mongoHost, String contentMongoHost) {
22165 amit.gupta 131
		try {
22170 amit.gupta 132
			LOGGER.info("mongoHost => {}, contentMongoHost {} ", mongoHost, contentMongoHost);
22165 amit.gupta 133
			mongoClient = new MongoClient(mongoHost, MONGO_PORT);
22169 amit.gupta 134
			contentMongoClient = new MongoClient(contentMongoHost, MONGO_PORT);
22165 amit.gupta 135
		} catch (Exception e) {
136
			e.printStackTrace();
137
		}
21545 ashik.ali 138
	}
24031 amit.gupta 139
 
25380 amit.gupta 140
	public ContentPojo getEntityById(long id) throws Exception {
22162 amit.gupta 141
		DB db = contentMongoClient.getDB(CONTENT);
21545 ashik.ali 142
		DBCollection collection = db.getCollection(SITE_CONTENT);
143
		BasicDBObject obj = new BasicDBObject();
144
		obj.append("_id", id);
145
		DBObject result = collection.findOne(obj);
22165 amit.gupta 146
		if (result == null) {
21545 ashik.ali 147
			throw new Exception();
148
		}
26480 amit.gupta 149
		ContentPojo cp = gson.fromJson(new BasicDBObject(result.toMap()).toJson(), ContentPojo.class);
26530 amit.gupta 150
		if(cp.getDefaultImageUrl()!=null) {
151
			cp.setDefaultImageUrl(cp.getDefaultImageUrl().replaceAll("saholic", "smartdukaan"));
152
		}
26480 amit.gupta 153
		return cp;
21545 ashik.ali 154
	}
25380 amit.gupta 155
 
24995 amit.gupta 156
	public List<DBObject> getMongoBrands(int fofoId, String email, int categoryId) {
157
		List<DBObject> brandsDisplay = this.getBrandsToDisplay(categoryId);
27122 amit.gupta 158
		if(fofoId==Utils.SYSTEM_PARTNER_ID) {
159
			return brandsDisplay; 
160
		}
27120 amit.gupta 161
		Iterator<DBObject> brandsDisplayIterator = brandsDisplay.iterator();
162
		List<String> partnerAllowedBrands = PARTNER_ALLOWED_BRANDS.get(fofoId);
163
		while(brandsDisplayIterator.hasNext()) {
164
			String brand = brandsDisplayIterator.next().get("name").toString();
165
			if(BLOCKED_BRANDS.contains(brand)) {
166
				if(partnerAllowedBrands == null || !partnerAllowedBrands.contains(brand)) {
167
					brandsDisplayIterator.remove();
168
				}
169
			}
170
		}
25560 amit.gupta 171
		if (PARTNER_BLoCKED_BRANDS.containsKey(fofoId)) {
172
			List<String> blockedBrands = PARTNER_BLoCKED_BRANDS.get(fofoId);
24995 amit.gupta 173
			brandsDisplay = brandsDisplay.stream().filter(x -> !blockedBrands.contains(x.get("name")))
174
					.collect(Collectors.toList());
175
		}
176
		return brandsDisplay;
25380 amit.gupta 177
 
24995 amit.gupta 178
	}
22165 amit.gupta 179
 
25380 amit.gupta 180
	public ContentPojo getEntityByName(String name) throws Exception {
22385 amit.gupta 181
		LOGGER.info("Name --- {}", name);
22384 amit.gupta 182
		DB db = contentMongoClient.getDB(CONTENT);
183
		DBCollection collection = db.getCollection(SITE_CONTENT);
184
		BasicDBObject obj = new BasicDBObject();
185
		obj.append("title", name);
25380 amit.gupta 186
		DBObject result = collection.findOne();
22384 amit.gupta 187
		if (result == null) {
188
			throw new Exception();
189
		}
25380 amit.gupta 190
		return gson.fromJson(new BasicDBObject(result.toMap()).toJson(), ContentPojo.class);
22384 amit.gupta 191
	}
192
 
25380 amit.gupta 193
	public void persistEntity(ContentPojo contentPojo) {
194
		DB db = contentMongoClient.getDB(CONTENT);
195
		DBCollection collection = db.getCollection(SITE_CONTENT);
196
		insertOrUpdateById(collection, contentPojo.getId(), contentPojo);
197
 
198
	}
199
 
200
	private static <T> void insertOrUpdateById(DBCollection collection, long id, T obj) {
201
		DBObject dbo = BasicDBObject.parse(gson.toJson(obj));
202
		dbo.put("_id", id);
203
		collection.update(new BasicDBObject("_id", id), dbo, true, false);
204
	}
205
 
22165 amit.gupta 206
	public JSONObject getItemsByBundleId(long bundleId) throws Exception {
22162 amit.gupta 207
		DB db = mongoClient.getDB(CATALOG_DB);
21545 ashik.ali 208
		DBCollection collection = db.getCollection(MASTER_DATA);
209
		BasicDBObject obj = new BasicDBObject();
210
		BasicDBObject in_query = new BasicDBObject();
211
		obj.append("skuBundleId", bundleId);
22165 amit.gupta 212
		in_query.append("$in", new int[] { 1, 2, 3, 4, 5, 6, 7 });
21545 ashik.ali 213
		obj.append("source_id", in_query);
214
		DBObject result = collection.findOne(obj);
22165 amit.gupta 215
		if (result == null) {
21545 ashik.ali 216
			throw new Exception();
217
		}
218
		return new JSONObject(JSON.serialize(result));
219
	}
22165 amit.gupta 220
 
221
	public JSONObject getItemByID(long id) throws Exception {
22162 amit.gupta 222
		DB db = mongoClient.getDB(CATALOG_DB);
21545 ashik.ali 223
		DBCollection collection = db.getCollection(MASTER_DATA);
224
		BasicDBObject obj = new BasicDBObject();
225
		obj.append("_id", id);
226
		DBObject result = collection.findOne(obj);
22165 amit.gupta 227
		if (result == null) {
21545 ashik.ali 228
			throw new Exception();
229
		}
230
		return new JSONObject(JSON.serialize(result));
231
	}
22165 amit.gupta 232
 
233
	public void persistFofoRegInfo(FofoForm ff) {
234
		DB db = mongoClient.getDB(FOFO_DB);
22097 kshitij.so 235
		DBCollection collection = db.getCollection(FOFO_FORM_COLLECTION);
22165 amit.gupta 236
		if (ff.get_id() == 0) {
22097 kshitij.so 237
			BasicDBObject orderBy = new BasicDBObject();
238
			orderBy.put("_id", -1);
239
			DBCursor cursor = collection.find().sort(orderBy).limit(1);
240
			long id = 1l;
241
			while (cursor.hasNext()) {
242
				FofoForm existingFofo = gson.fromJson(cursor.next().toString(), FofoForm.class);
243
				id = existingFofo.get_id() + 1;
244
			}
245
			ff.set_id(id);
246
		}
25380 amit.gupta 247
		DBObject dbObject = (DBObject) JSON.parse(gson.toJson(ff));
22097 kshitij.so 248
		collection.save(dbObject);
249
	}
22165 amit.gupta 250
 
22162 amit.gupta 251
	public List<FofoForm> getFofoForms(int offset, int limit) {
22165 amit.gupta 252
		List<FofoForm> ffList = new ArrayList<FofoForm>();
22162 amit.gupta 253
		DB db = mongoClient.getDB(FOFO_DB);
22097 kshitij.so 254
		DBCollection collection = db.getCollection(FOFO_FORM_COLLECTION);
255
		BasicDBObject orderBy = new BasicDBObject();
256
		orderBy.put("_id", -1);
257
		DBCursor dbc = collection.find().sort(orderBy).limit(limit).skip(offset);
258
		while (dbc.hasNext()) {
259
			ffList.add(convertJSONToPojo(dbc.next().toString()));
260
		}
261
		return ffList;
262
	}
22165 amit.gupta 263
 
264
	public String getFofoFormJsonStringByFofoId(int fofoId) {
22162 amit.gupta 265
		DB db = mongoClient.getDB(FOFO_DB);
22097 kshitij.so 266
		BasicDBObject filter = new BasicDBObject();
267
		filter.append("_id", fofoId);
268
		DBCollection collection = db.getCollection(FOFO_FORM_COLLECTION);
22105 ashik.ali 269
		DBObject fofoDbOject = collection.findOne(filter);
22165 amit.gupta 270
		if (fofoDbOject != null) {
22161 amit.gupta 271
			return fofoDbOject.toString();
272
		} else {
273
			return null;
274
		}
22097 kshitij.so 275
	}
22165 amit.gupta 276
 
277
	public String getFofoFormJsonStringByEmail(String email) {
22162 amit.gupta 278
		DB db = mongoClient.getDB(FOFO_DB);
22155 amit.gupta 279
		BasicDBObject filter = new BasicDBObject();
280
		filter.append("registeredEmail1", email);
281
		DBCollection collection = db.getCollection(FOFO_FORM_COLLECTION);
282
		DBObject fofoDbOject = collection.findOne(filter);
22165 amit.gupta 283
		if (fofoDbOject != null) {
22161 amit.gupta 284
			return fofoDbOject.toString();
285
		} else {
286
			return null;
287
		}
22155 amit.gupta 288
	}
22165 amit.gupta 289
 
290
	public String getFofoFormsJsonString() {
22162 amit.gupta 291
		DB db = mongoClient.getDB(FOFO_DB);
22125 ashik.ali 292
		DBCollection collection = db.getCollection(FOFO_FORM_COLLECTION);
293
		DBCursor cursor = collection.find();
294
		StringBuilder fofoFormsJsonString = new StringBuilder();
295
		fofoFormsJsonString.append("[");
22165 amit.gupta 296
		while (cursor.hasNext()) {
22125 ashik.ali 297
			fofoFormsJsonString.append(cursor.next().toString());
22165 amit.gupta 298
			if (cursor.hasNext()) {
22125 ashik.ali 299
				fofoFormsJsonString.append(",");
300
			}
301
		}
302
		fofoFormsJsonString.append("]");
303
		return fofoFormsJsonString.toString();
304
	}
22165 amit.gupta 305
 
22162 amit.gupta 306
	public FofoForm getFofoForm(int fofoId) {
22097 kshitij.so 307
		String fofoFormJsonString = getFofoFormJsonStringByFofoId(fofoId);
308
		System.out.println(fofoFormJsonString);
309
		return new Gson().fromJson(fofoFormJsonString, FofoForm.class);
22165 amit.gupta 310
		// return convertJSONToPojo(fofoDbOject.toString());
22097 kshitij.so 311
	}
22165 amit.gupta 312
 
22162 amit.gupta 313
	public FofoForm getFofoForm(String email) {
22155 amit.gupta 314
		String fofoFormJsonString = getFofoFormJsonStringByEmail(email);
315
		System.out.println(fofoFormJsonString);
316
		return new Gson().fromJson(fofoFormJsonString, FofoForm.class);
22165 amit.gupta 317
		// return convertJSONToPojo(fofoDbOject.toString());
22155 amit.gupta 318
	}
21545 ashik.ali 319
 
22165 amit.gupta 320
	private static FofoForm convertJSONToPojo(String json) {
22097 kshitij.so 321
 
22165 amit.gupta 322
		Type type = new TypeToken<FofoForm>() {
323
		}.getType();
22097 kshitij.so 324
 
22165 amit.gupta 325
		return new Gson().fromJson(json, type);
326
 
22097 kshitij.so 327
	}
22165 amit.gupta 328
 
329
	public void updateColumnsById(Map<String, Integer> map, int fofoId) {
22162 amit.gupta 330
		DB db = mongoClient.getDB(FOFO_DB);
22125 ashik.ali 331
		BasicDBObject filter = new BasicDBObject();
332
		filter.append("_id", fofoId);
333
		DBCollection collection = db.getCollection(FOFO_FORM_COLLECTION);
334
		BasicDBObject updateFields = new BasicDBObject();
22165 amit.gupta 335
		for (Map.Entry<String, Integer> entry : map.entrySet()) {
22125 ashik.ali 336
			updateFields.append(entry.getKey(), entry.getValue());
337
		}
338
		BasicDBObject newDocument = new BasicDBObject();
339
		newDocument.append("$set", updateFields);
340
		collection.update(filter, newDocument);
341
	}
24031 amit.gupta 342
 
343
	public List<DBObject> getBrandsToDisplay(int categoryId) {
22335 amit.gupta 344
		DB db = mongoClient.getDB(FOFO_DB);
345
		BasicDBObject filter = new BasicDBObject();
346
		filter.append("active", true);
24031 amit.gupta 347
		if (categoryId != 0) {
348
			filter.append("categoryId", categoryId);
349
		}
22335 amit.gupta 350
		return db.getCollection(FOFO_BRANDS).find(filter).toArray();
351
	}
26343 tejbeer 352
 
26309 amit.gupta 353
	public List<DBObject> getAllBrandsToDisplay(int categoryId) {
354
		DB db = mongoClient.getDB(FOFO_DB);
355
		BasicDBObject filter = new BasicDBObject();
356
		if (categoryId != 0) {
357
			filter.append("categoryId", categoryId);
358
		}
359
		return db.getCollection(FOFO_BRANDS).find(filter).toArray();
360
	}
24031 amit.gupta 361
 
22447 amit.gupta 362
	public List<DBObject> getBannersByType(String bannerType) {
26661 amit.gupta 363
		DB db = mongoClient.getDB(FOFO_DB);
22446 amit.gupta 364
		BasicDBObject filter = new BasicDBObject();
22449 amit.gupta 365
		filter.append("type", bannerType);
22992 amit.gupta 366
		BasicDBObject orderBy = new BasicDBObject();
23008 amit.gupta 367
		orderBy.put("rank", 1);
22992 amit.gupta 368
		return db.getCollection(PROFITMANDI_BANNERS).find(filter).sort(orderBy).toArray();
22446 amit.gupta 369
	}
23793 tejbeer 370
 
371
	@SuppressWarnings("unchecked")
372
	public List<Document> getSubcategoriesToDisplay() {
373
		MongoDatabase db = mongoClient.getDatabase("Catalog");
374
		System.out.println("Connection to MongoDB database successfully");
375
		MongoCollection<Document> collection = db.getCollection("Deals");
24031 amit.gupta 376
 
377
		Document object = new Document().append("$match", new Document().append("category_id", 6).append("showDeal", 1)
378
				.append("dealRankPoints", new Document("$gt", 0)));
23793 tejbeer 379
		Document ob = new Document("$group",
24031 amit.gupta 380
				new Document().append("_id",
381
						new Document().append("subCategoryId", "$subCategoryId").append("subCategory", "$subCategory"))
382
						.append("count", new Document("$sum", 1)));
23793 tejbeer 383
		List<Document> pipeline = Arrays.asList(object, ob);
384
		AggregateIterable<Document> cursor = collection.aggregate(pipeline);
385
 
386
		List<Document> resultDocuments = new ArrayList<>();
387
		for (Document dbo : cursor) {
388
			System.out.println(dbo.toString());
389
			LOGGER.info("categories" + dbo.toString());
390
			resultDocuments.add(dbo);
391
		}
392
		return resultDocuments;
393
	}
394
 
22496 amit.gupta 395
	public boolean saveRetailerInterestOnFofo(RetailerFofoInterest retailerInterest) {
396
		DB db = mongoClient.getDB(FOFO_DB);
397
		Gson gs = new Gson();
398
		DBCollection fofoInterestCollection = db.getCollection(RETAILER_FOFO_INTEREST);
399
		DBObject dbObject = (DBObject) JSON.parse(gs.toJson(retailerInterest));
400
		fofoInterestCollection.save(dbObject);
401
		return true;
402
	}
23793 tejbeer 403
 
22496 amit.gupta 404
	public boolean hasRetailerShownInterest(int userId) {
405
		DB db = mongoClient.getDB(FOFO_DB);
406
		BasicDBObject filter = new BasicDBObject();
23793 tejbeer 407
		filter.append("userId", userId);
22496 amit.gupta 408
		DBCollection fofoInterestCollection = db.getCollection(RETAILER_FOFO_INTEREST);
23793 tejbeer 409
		return fofoInterestCollection.findOne(filter) != null;
22496 amit.gupta 410
	}
24031 amit.gupta 411
 
24011 tejbeer 412
	public void persistNotificationCmpInfo(NotificationCampaigns ff) {
24383 amit.gupta 413
		DB db = mongoClient.getDB(USER_DB);
24011 tejbeer 414
		DBCollection collection = db.getCollection(NOTIFICATION_CAMPAIGNS);
415
		if (ff.get_id() == 0) {
416
			BasicDBObject orderBy = new BasicDBObject();
417
			orderBy.put("_id", -1);
418
			DBCursor cursor = collection.find().sort(orderBy).limit(1);
419
			long id = 1l;
420
			while (cursor.hasNext()) {
421
				Gson gson = new Gson();
24031 amit.gupta 422
				NotificationCampaigns existingFofo = gson.fromJson(cursor.next().toString(),
423
						NotificationCampaigns.class);
24011 tejbeer 424
				id = existingFofo.get_id() + 1;
425
			}
426
			ff.set_id(id);
427
		}
428
		Gson gs = new Gson();
429
		DBObject dbObject = (DBObject) JSON.parse(gs.toJson(ff));
430
		collection.save(dbObject);
431
	}
22097 kshitij.so 432
 
21545 ashik.ali 433
}