Subversion Repositories SmartDukaan

Rev

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

Rev 22333 Rev 22336
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.ArrayList;
-
 
5
import java.util.Arrays;
5
import java.util.HashMap;
6
import java.util.HashMap;
6
import java.util.List;
7
import java.util.List;
7
import java.util.Map;
8
import java.util.Map;
8
 
9
 
9
import javax.servlet.http.HttpServletRequest;
10
import javax.servlet.http.HttpServletRequest;
Line 69... Line 70...
69
	@Autowired
70
	@Autowired
70
	private Mongo mongoClient;
71
	private Mongo mongoClient;
71
	
72
	
72
	@Autowired
73
	@Autowired
73
	ResponseSender<?> responseSender;
74
	ResponseSender<?> responseSender;
-
 
75
	
-
 
76
	List<String> filterableParams = Arrays.asList("brand");
74
 
77
 
75
	@RequestMapping(value = ProfitMandiConstants.URL_DEALS, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
78
	@RequestMapping(value = ProfitMandiConstants.URL_DEALS, method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
76
	@ApiImplicitParams({
79
	@ApiImplicitParams({
77
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
80
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
78
	@ApiOperation(value = "Get deals")
81
	@ApiOperation(value = "Get deals")
Line 138... Line 141...
138
	@ApiImplicitParams({
141
	@ApiImplicitParams({
139
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
142
			@ApiImplicitParam(name = "Auth-Token", value = "Auth-Token", required = true, dataType = "string", paramType = "header") })
140
	@RequestMapping(value = "/fofo", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
143
	@RequestMapping(value = "/fofo", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
141
	public ResponseEntity<?> getFofo(HttpServletRequest request, @RequestParam(value = "categoryId") String categoryId,
144
	public ResponseEntity<?> getFofo(HttpServletRequest request, @RequestParam(value = "categoryId") String categoryId,
142
			@RequestParam(value = "offset") String offset, @RequestParam(value = "limit") String limit,
145
			@RequestParam(value = "offset") String offset, @RequestParam(value = "limit") String limit,
143
			@RequestParam(value = "sort", required = false) String sort) throws Throwable {
146
			@RequestParam(value = "sort", required = false) String sort, @RequestParam(value = "brand", required = false) String brand) throws Throwable {
144
		List<FofoCatalogResponse> dealResponse = new ArrayList<>();
147
		List<FofoCatalogResponse> dealResponse = new ArrayList<>();
145
		UserInfo userInfo = (UserInfo) request.getAttribute("userInfo");
148
		UserInfo userInfo = (UserInfo) request.getAttribute("userInfo");
146
		if (userInfo.getRoleNames().contains(RoleType.FOFO.toString())) {
149
		if (userInfo.getRoleNames().contains(RoleType.FOFO.toString())) {
147
			List<Integer> tagIds = pricingService.getTagsIdsByRetailerId(userInfo.getUserId());
150
			List<Integer> tagIds = pricingService.getTagsIdsByRetailerId(userInfo.getUserId());
148
			RestClient rc  = new RestClient(SchemeType.HTTP, "dtr", 8984);
151
			RestClient rc  = new RestClient(SchemeType.HTTP, "dtr", 8984);
149
			Map<String, String> params = new HashMap<>();
152
			Map<String, String> params = new HashMap<>();
-
 
153
			List<String> mandatoryQ = new ArrayList<>();
-
 
154
			if(brand != null) {
-
 
155
				mandatoryQ.add(String.format("brands_s:(%s)", brand));
-
 
156
			}
150
			params.put("q", String.format("{!parent which=\"id:catalog*\"}tagId_i:(%s)", StringUtils.join(tagIds, " OR ")));
157
			mandatoryQ.add(String.format("{!parent which=\"id:catalog*\"}tagId_i:(%s)", StringUtils.join(tagIds, " OR ")));
-
 
158
			params.put("q", StringUtils.join(mandatoryQ," +"));
151
			params.put("fl", "*, [child parentFilter=id:catalog*]");
159
			params.put("fl", "*, [child parentFilter=id:catalog*]");
152
			params.put("sort", "rank_i asc");
160
			params.put("sort", "rank_i asc");
153
			params.put("start", String.valueOf(offset));
161
			params.put("start", String.valueOf(offset));
154
			params.put("rows", String.valueOf(limit));
162
			params.put("rows", String.valueOf(limit));
155
			params.put("wt", "json");
163
			params.put("wt", "json");