Subversion Repositories SmartDukaan

Rev

Rev 25948 | Rev 25973 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 25948 Rev 25952
Line 1... Line 1...
1
package com.spice.profitmandi.web.controller;
1
package com.spice.profitmandi.web.controller;
2
 
2
 
3
import java.time.LocalDateTime;
3
import java.time.LocalDateTime;
-
 
4
import java.util.ArrayList;
4
import java.util.List;
5
import java.util.List;
-
 
6
import java.util.Map;
-
 
7
import java.util.Set;
5
 
8
 
6
import javax.servlet.http.HttpServletRequest;
9
import javax.servlet.http.HttpServletRequest;
7
 
10
 
8
import org.apache.logging.log4j.LogManager;
11
import org.apache.logging.log4j.LogManager;
9
import org.apache.logging.log4j.Logger;
12
import org.apache.logging.log4j.Logger;
Line 17... Line 20...
17
import org.springframework.web.bind.annotation.RequestMapping;
20
import org.springframework.web.bind.annotation.RequestMapping;
18
import org.springframework.web.bind.annotation.RequestMethod;
21
import org.springframework.web.bind.annotation.RequestMethod;
19
import org.springframework.web.bind.annotation.RequestParam;
22
import org.springframework.web.bind.annotation.RequestParam;
20
 
23
 
21
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
24
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
22
import com.spice.profitmandi.common.model.ProfitMandiConstants;
25
import com.spice.profitmandi.common.model.CustomRetailer;
23
import com.spice.profitmandi.common.web.util.ResponseSender;
26
import com.spice.profitmandi.common.web.util.ResponseSender;
24
import com.spice.profitmandi.dao.entity.auth.AuthUser;
27
import com.spice.profitmandi.dao.entity.auth.AuthUser;
25
import com.spice.profitmandi.dao.entity.dtr.RechargeTransaction;
-
 
26
import com.spice.profitmandi.dao.entity.dtr.User;
28
import com.spice.profitmandi.dao.entity.dtr.User;
-
 
29
import com.spice.profitmandi.dao.entity.dtr.UserAccount;
-
 
30
import com.spice.profitmandi.dao.entity.user.FranchiseeActivity;
-
 
31
import com.spice.profitmandi.dao.entity.user.FranchiseeVisit;
27
import com.spice.profitmandi.dao.entity.user.Lead;
32
import com.spice.profitmandi.dao.entity.user.Lead;
28
import com.spice.profitmandi.dao.entity.user.LeadActivity;
33
import com.spice.profitmandi.dao.entity.user.LeadActivity;
29
import com.spice.profitmandi.dao.entity.user.Promoter;
34
import com.spice.profitmandi.dao.enumuration.dtr.FranchiseeActivityStatus;
30
import com.spice.profitmandi.dao.entity.user.Refferal;
35
import com.spice.profitmandi.dao.enumuration.dtr.FranchiseeVisitStatus;
31
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
36
import com.spice.profitmandi.dao.enumuration.dtr.LeadStatus;
32
import com.spice.profitmandi.dao.enumuration.dtr.RefferalStatus;
-
 
33
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
37
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
-
 
38
import com.spice.profitmandi.dao.repository.cs.CsService;
-
 
39
import com.spice.profitmandi.dao.repository.dtr.FranchiseeActivityRepository;
-
 
40
import com.spice.profitmandi.dao.repository.dtr.FranchiseeVisitRepository;
34
import com.spice.profitmandi.dao.repository.dtr.LeadActivityRepository;
41
import com.spice.profitmandi.dao.repository.dtr.LeadActivityRepository;
35
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;
42
import com.spice.profitmandi.dao.repository.dtr.LeadRepository;
36
import com.spice.profitmandi.dao.repository.dtr.RefferalRepository;
43
import com.spice.profitmandi.dao.repository.dtr.UserAccountRepository;
37
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
44
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
38
import com.spice.profitmandi.dao.repository.user.PromoterRepository;
45
import com.spice.profitmandi.service.user.RetailerService;
-
 
46
import com.spice.profitmandi.web.req.CreateFranchiseeRequest;
39
import com.spice.profitmandi.web.req.CreateRefferalRequest;
47
import com.spice.profitmandi.web.req.CreateRefferalRequest;
-
 
48
import com.spice.profitmandi.web.res.Partner;
40
 
49
 
41
import io.swagger.annotations.ApiImplicitParam;
50
import io.swagger.annotations.ApiImplicitParam;
42
import io.swagger.annotations.ApiImplicitParams;
51
import io.swagger.annotations.ApiImplicitParams;
43
 
52
 
44
@Controller
53
@Controller
Line 53... Line 62...
53
 
62
 
54
	@Autowired
63
	@Autowired
55
	private LeadRepository leadRepository;
64
	private LeadRepository leadRepository;
56
 
65
 
57
	@Autowired
66
	@Autowired
-
 
67
	private CsService csService;
-
 
68
 
-
 
69
	@Autowired
-
 
70
	private UserRepository userRepository;
-
 
71
 
-
 
72
	@Autowired
-
 
73
	private UserAccountRepository userAccountRepository;
-
 
74
 
-
 
75
	@Autowired
-
 
76
	private com.spice.profitmandi.dao.repository.user.UserRepository userUserRepository;
-
 
77
 
-
 
78
	@Autowired
-
 
79
	private RetailerService retailerService;
-
 
80
 
-
 
81
	@Autowired
58
	private LeadActivityRepository leadActivityRepository;
82
	private LeadActivityRepository leadActivityRepository;
59
 
83
 
-
 
84
	@Autowired
-
 
85
	private FranchiseeVisitRepository franchiseeVisitRepository;
-
 
86
 
-
 
87
	@Autowired
-
 
88
	private FranchiseeActivityRepository franchiseeActivityRepository;
-
 
89
 
60
	@RequestMapping(value = "/lead", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
90
	@RequestMapping(value = "/lead", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
61
	@ApiImplicitParams({
91
	@ApiImplicitParams({
62
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
92
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
63
	public ResponseEntity<?> LeadUser(HttpServletRequest request,
93
	public ResponseEntity<?> LeadUser(HttpServletRequest request,
64
			@RequestBody CreateRefferalRequest createRefferalRequest) throws Exception {
94
			@RequestBody CreateRefferalRequest createRefferalRequest) throws Exception {
Line 70... Line 100...
70
		lead.setCity(createRefferalRequest.getCity());
100
		lead.setCity(createRefferalRequest.getCity());
71
		lead.setAddress(createRefferalRequest.getAddress());
101
		lead.setAddress(createRefferalRequest.getAddress());
72
		lead.setCreatedTimestamp(LocalDateTime.now());
102
		lead.setCreatedTimestamp(LocalDateTime.now());
73
		lead.setUpdatedTimestamp(LocalDateTime.now());
103
		lead.setUpdatedTimestamp(LocalDateTime.now());
74
		lead.setStatus(createRefferalRequest.getStatus());
104
		lead.setStatus(createRefferalRequest.getStatus());
75
		
105
 
76
		AuthUser authUser = authRepository.selectByGmailId(createRefferalRequest.getReffereeEmail());
106
		AuthUser authUser = authRepository.selectByGmailId(createRefferalRequest.getReffereeEmail());
77
		String authUserName = authUser.getFirstName() + " " + authUser.getLastName();
107
		String authUserName = authUser.getFirstName() + " " + authUser.getLastName();
78
		lead.setCreatedBy(authUserName);
108
		lead.setCreatedBy(authUserName);
79
		lead.setAuthId(authUser.getId());
109
		lead.setAuthId(authUser.getId());
80
 
110
 
Line 149... Line 179...
149
		}
179
		}
150
 
180
 
151
		return responseSender.ok(true);
181
		return responseSender.ok(true);
152
 
182
 
153
	}
183
	}
-
 
184
 
-
 
185
	@RequestMapping(value = "/getPartnersList", method = RequestMethod.GET)
-
 
186
	@ApiImplicitParams({
-
 
187
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
188
	public ResponseEntity<?> getPartners(HttpServletRequest request, @RequestParam(name = "gmailId") String gmailId)
-
 
189
			throws ProfitMandiBusinessException {
-
 
190
 
-
 
191
		AuthUser authUser = authRepository.selectByGmailId("adeelyazdani.pmps@gmail.com");
-
 
192
 
-
 
193
		Map<String, Set<String>> storeGuyMap = csService.getAuthUserPartnerEmailMapping();
-
 
194
 
-
 
195
		Set<String> emails = storeGuyMap.get(authUser.getEmailId());
-
 
196
		LOGGER.info("emails" + emails);
-
 
197
		List<User> users = userRepository.selectAllByEmailIds(new ArrayList<>(emails));
-
 
198
		List<Partner> partners = new ArrayList<>();
-
 
199
		for (User user : users) {
-
 
200
 
-
 
201
			UserAccount uc = userAccountRepository.selectSaholicByUserId(user.getId());
-
 
202
			com.spice.profitmandi.dao.entity.user.User userInfo = userUserRepository.selectById(uc.getAccountKey());
-
 
203
			CustomRetailer customRetailer = retailerService.getFofoRetailer(userInfo.getId());
-
 
204
 
-
 
205
			Partner partner = new Partner();
-
 
206
			partner.setBusinessName(customRetailer.getBusinessName());
-
 
207
			partner.setPartnerId(customRetailer.getPartnerId());
-
 
208
			partner.setCartId(customRetailer.getCartId());
-
 
209
			partner.setEmail(customRetailer.getEmail());
-
 
210
			partner.setGstNumber(customRetailer.getGstNumber());
-
 
211
			partner.setDisplayName(customRetailer.getDisplayName());
-
 
212
			partner.setCity(customRetailer.getAddress().getCity());
-
 
213
			partner.setUserId(user.getId());
-
 
214
			partners.add(partner);
-
 
215
		}
-
 
216
		LOGGER.info("partners" + partners);
-
 
217
		return responseSender.ok(partners);
-
 
218
	}
-
 
219
 
-
 
220
	@RequestMapping(value = "/franchise-first-visit", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
221
	@ApiImplicitParams({
-
 
222
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
223
	public ResponseEntity<?> FranchiseFirstVisit(HttpServletRequest request,
-
 
224
			@RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Exception {
-
 
225
 
-
 
226
		FranchiseeVisit franchiseeVisit = new FranchiseeVisit();
-
 
227
		franchiseeVisit.setFofoId(createFranchiseeRequest.getFofoId());
-
 
228
		CustomRetailer customRetailer = retailerService.getFofoRetailer(createFranchiseeRequest.getFofoId());
-
 
229
 
-
 
230
		franchiseeVisit.setPartnerName(customRetailer.getBusinessName());
-
 
231
		franchiseeVisit.setAgenda(createFranchiseeRequest.getAgenda());
-
 
232
		franchiseeVisit.setCreatedTimestamp(LocalDateTime.now());
-
 
233
		franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());
-
 
234
		franchiseeVisit.setStatus(FranchiseeVisitStatus.OPEN);
-
 
235
		franchiseeVisit.setSchelduleTimestamp(createFranchiseeRequest.getFirstSchelduleTimestamp());
-
 
236
		// change
-
 
237
		AuthUser authUser = authRepository.selectByGmailId("adeelyazdani.pmps@gmail.com");
-
 
238
 
-
 
239
		String authUserName = authUser.getFirstName() + " " + authUser.getLastName();
-
 
240
		franchiseeVisit.setCreatedBy(authUserName);
-
 
241
		franchiseeVisit.setAuthId(authUser.getId());
-
 
242
 
-
 
243
		franchiseeVisitRepository.persist(franchiseeVisit);
-
 
244
 
-
 
245
		return responseSender.ok(true);
-
 
246
	}
-
 
247
 
-
 
248
	@RequestMapping(value = "/franchise-visit", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
249
	@ApiImplicitParams({
-
 
250
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
251
	public ResponseEntity<?> FranchiseVisit(HttpServletRequest request,
-
 
252
			@RequestBody CreateFranchiseeRequest createFranchiseeRequest) throws Exception {
-
 
253
 
-
 
254
		FranchiseeVisit franchiseeVisit = franchiseeVisitRepository.selectById(createFranchiseeRequest.getId());
-
 
255
		franchiseeVisit.setFofoId(createFranchiseeRequest.getFofoId());
-
 
256
		CustomRetailer customRetailer = retailerService.getFofoRetailer(createFranchiseeRequest.getFofoId());
-
 
257
 
-
 
258
		franchiseeVisit.setPartnerName(customRetailer.getBusinessName());
-
 
259
		franchiseeVisit.setAgenda(createFranchiseeRequest.getAgenda());
-
 
260
		franchiseeVisit.setPartnerRemark(createFranchiseeRequest.getPartnerRemark());
-
 
261
		franchiseeVisit.setOutsideVisibity(createFranchiseeRequest.getOutsideVisibity());
-
 
262
		franchiseeVisit.setInstoreVisibility(createFranchiseeRequest.getInstoreVisibility());
-
 
263
		franchiseeVisit.setOutsideStock(createFranchiseeRequest.getOutsideStock());
-
 
264
		franchiseeVisit.setSystemKnowledge(createFranchiseeRequest.getSystemKnowledge());
-
 
265
		franchiseeVisit.setWorkingDevice(createFranchiseeRequest.getWorkingDevice());
-
 
266
		franchiseeVisit.setWorkingPrinter(createFranchiseeRequest.getWorkingPrinter());
-
 
267
		franchiseeVisit.setCarryBags(createFranchiseeRequest.getCarryBags());
-
 
268
		franchiseeVisit.setSmartdukaanTshirt(createFranchiseeRequest.getSmartdukaanTshirt());
-
 
269
		franchiseeVisit.setLatestDummies(createFranchiseeRequest.getLatestDummies());
-
 
270
		franchiseeVisit.setInvestment(createFranchiseeRequest.getInvestment());
-
 
271
		franchiseeVisit.setMtd(createFranchiseeRequest.getMtd());
-
 
272
		franchiseeVisit.setHygiene(createFranchiseeRequest.getHygiene());
-
 
273
		franchiseeVisit.setCreatedTimestamp(LocalDateTime.now());
-
 
274
		franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());
-
 
275
		if (createFranchiseeRequest.getAction().equals(FranchiseeActivityStatus.FOLLOWUP)) {
-
 
276
			franchiseeVisit.setStatus(FranchiseeVisitStatus.OPEN);
-
 
277
		} else {
-
 
278
			franchiseeVisit.setStatus(FranchiseeVisitStatus.CLOSE);
-
 
279
		}
-
 
280
 
-
 
281
		// AuthUser authUser =
-
 
282
		// authRepository.selectByGmailId(createFranchiseeRequest.getCreatedBy());
-
 
283
		// change
-
 
284
		AuthUser authUser = authRepository.selectByGmailId("adeelyazdani.pmps@gmail.com");
-
 
285
 
-
 
286
		String authUserName = authUser.getFirstName() + " " + authUser.getLastName();
-
 
287
		franchiseeVisit.setCreatedBy(authUserName);
-
 
288
		franchiseeVisit.setAuthId(authUser.getId());
-
 
289
 
-
 
290
		franchiseeVisitRepository.persist(franchiseeVisit);
-
 
291
 
-
 
292
		FranchiseeActivity franchiseeActivity = new FranchiseeActivity();
-
 
293
		franchiseeActivity.setAction(createFranchiseeRequest.getAction());
-
 
294
		franchiseeActivity.setFranchiseeVisitd(franchiseeVisit.getId());
-
 
295
		franchiseeActivity.setResolution(createFranchiseeRequest.getResolution());
-
 
296
		if (createFranchiseeRequest.getAction().equals(FranchiseeActivityStatus.FOLLOWUP)) {
-
 
297
			franchiseeActivity.setSchelduleTimestamp(createFranchiseeRequest.getSchelduleTimestamp());
-
 
298
		} else {
-
 
299
			franchiseeActivity.setSchelduleTimestamp(null);
-
 
300
		}
-
 
301
		franchiseeActivity.setCreatedTimestamp(LocalDateTime.now());
-
 
302
		franchiseeActivityRepository.persist(franchiseeActivity);
-
 
303
 
-
 
304
		franchiseeVisit.setFranchiseActivityId(franchiseeActivity.getId());
-
 
305
		return responseSender.ok(true);
-
 
306
	}
-
 
307
 
-
 
308
	@RequestMapping(value = "/getFranchiseVisit", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
309
	@ApiImplicitParams({
-
 
310
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
311
	public ResponseEntity<?> getFranchiseVisit(HttpServletRequest request,
-
 
312
			@RequestParam(name = "gmailId") String gmailId, @RequestParam(name = "status") FranchiseeVisitStatus status,
-
 
313
			@RequestParam(name = "offset", defaultValue = "0") int offset,
-
 
314
			@RequestParam(name = "limit", defaultValue = "10") int limit) throws ProfitMandiBusinessException {
-
 
315
		AuthUser authUser = authRepository.selectByGmailId("adeelyazdani.pmps@gmail.com");
-
 
316
 
-
 
317
		List<FranchiseeVisit> franchiseeVisits = franchiseeVisitRepository.selectByAuthIdAndStatus(authUser.getId(),
-
 
318
				status, offset, limit);
-
 
319
 
-
 
320
		for (FranchiseeVisit fv : franchiseeVisits) {
-
 
321
			if (fv.getFranchiseActivityId() != 0) {
-
 
322
				FranchiseeActivity fA = franchiseeActivityRepository.selectById(fv.getFranchiseActivityId());
-
 
323
				fv.setFranchiseeActivity(fA);
-
 
324
			}
-
 
325
		}
-
 
326
 
-
 
327
		return responseSender.ok(franchiseeVisits);
-
 
328
 
-
 
329
	}
-
 
330
 
-
 
331
	@RequestMapping(value = "/getFranchiseActivity", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
332
	@ApiImplicitParams({
-
 
333
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
334
	public ResponseEntity<?> getFranchiseActivity(HttpServletRequest request, @RequestParam(name = "id") int id)
-
 
335
			throws ProfitMandiBusinessException {
-
 
336
 
-
 
337
		List<FranchiseeActivity> franchiseeActivities = franchiseeActivityRepository.selectByFranchiseeVisitId(id);
-
 
338
 
-
 
339
		return responseSender.ok(franchiseeActivities);
-
 
340
 
-
 
341
	}
-
 
342
 
-
 
343
	@RequestMapping(value = "/getFranchiseeInfo", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
344
	@ApiImplicitParams({
-
 
345
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
346
	public ResponseEntity<?> getFranchiseeInfo(HttpServletRequest request, @RequestParam(name = "id") int id)
-
 
347
			throws ProfitMandiBusinessException {
-
 
348
		FranchiseeVisit franchiseeVisit = franchiseeVisitRepository.selectById(id);
-
 
349
 
-
 
350
		return responseSender.ok(franchiseeVisit);
-
 
351
 
-
 
352
	}
-
 
353
 
-
 
354
	@RequestMapping(value = "/franchise-visit-update", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
-
 
355
	@ApiImplicitParams({
-
 
356
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
-
 
357
	public ResponseEntity<?> franchiseVisitUpdate(HttpServletRequest request, @RequestParam(name = "id") int id,
-
 
358
			@RequestParam(name = "action") FranchiseeActivityStatus action,
-
 
359
			@RequestParam(name = "resolution") String resolution,
-
 
360
			@RequestParam(name = "schelduleTimestamp") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME) LocalDateTime schelduleTimestamp)
-
 
361
			throws ProfitMandiBusinessException {
-
 
362
		FranchiseeVisit franchiseeVisit = franchiseeVisitRepository.selectById(id);
-
 
363
 
-
 
364
		FranchiseeActivity franchiseeActivity = new FranchiseeActivity();
-
 
365
 
-
 
366
		if (action == FranchiseeActivityStatus.FOLLOWUP) {
-
 
367
			franchiseeActivity.setResolution(resolution);
-
 
368
			franchiseeActivity.setFranchiseeVisitd(franchiseeVisit.getId());
-
 
369
			franchiseeActivity.setAction(action);
-
 
370
			franchiseeActivity.setSchelduleTimestamp(schelduleTimestamp);
-
 
371
			franchiseeActivity.setCreatedTimestamp(LocalDateTime.now());
-
 
372
			franchiseeActivityRepository.persist(franchiseeActivity);
-
 
373
			franchiseeVisit.setFranchiseActivityId(franchiseeActivity.getId());
-
 
374
			franchiseeVisit.setStatus(FranchiseeVisitStatus.OPEN);
-
 
375
			franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());
-
 
376
			franchiseeVisitRepository.persist(franchiseeVisit);
-
 
377
 
-
 
378
		} else {
-
 
379
			franchiseeActivity.setResolution(resolution);
-
 
380
			franchiseeActivity.setFranchiseeVisitd(franchiseeVisit.getId());
-
 
381
			franchiseeActivity.setAction(action);
-
 
382
			franchiseeActivity.setSchelduleTimestamp(null);
-
 
383
			franchiseeActivity.setCreatedTimestamp(LocalDateTime.now());
-
 
384
			franchiseeActivityRepository.persist(franchiseeActivity);
-
 
385
			franchiseeVisit.setFranchiseActivityId(franchiseeActivity.getId());
-
 
386
			franchiseeVisit.setStatus(FranchiseeVisitStatus.CLOSE);
-
 
387
			franchiseeVisit.setUpdatedTimestamp(LocalDateTime.now());
-
 
388
			franchiseeVisitRepository.persist(franchiseeVisit);
-
 
389
 
-
 
390
		}
-
 
391
 
-
 
392
		return responseSender.ok(true);
-
 
393
 
-
 
394
	}
154
}
395
}