| 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");
|