Showing
1 changed file
with
50 additions
and
18 deletions
@@ -62,6 +62,12 @@ public class SkupListService { | @@ -62,6 +62,12 @@ public class SkupListService { | ||
62 | @Autowired | 62 | @Autowired |
63 | private SellerOrderGoodsViewMapper sellerOrderGoodsViewMapper; | 63 | private SellerOrderGoodsViewMapper sellerOrderGoodsViewMapper; |
64 | 64 | ||
65 | + @Autowired | ||
66 | + private ProductProxyService productProxyService; | ||
67 | + | ||
68 | + @Autowired | ||
69 | + private SellerOrderPrepareProcessor sellerOrderPrepareProcessor; | ||
70 | + | ||
65 | static Integer getMinSkupId(String skupList){ | 71 | static Integer getMinSkupId(String skupList){ |
66 | Integer lastSkup = null; | 72 | Integer lastSkup = null; |
67 | if (StringUtils.isNotBlank(skupList)){ | 73 | if (StringUtils.isNotBlank(skupList)){ |
@@ -202,7 +208,7 @@ public class SkupListService { | @@ -202,7 +208,7 @@ public class SkupListService { | ||
202 | 208 | ||
203 | Integer status = SkupStatus.CAN_SELL.getCode(); | 209 | Integer status = SkupStatus.CAN_SELL.getCode(); |
204 | Integer uid = request.getUid(); | 210 | Integer uid = request.getUid(); |
205 | - boolean isEntry = userProxyService.isEntryShop(request.getUid()); | 211 | + boolean isEntry = userProxyService.isEntryShop(uid); |
206 | if (!isEntry){ | 212 | if (!isEntry){ |
207 | logger.warn("getEntryGoodsSizeList not entry seller, req {}", request); | 213 | logger.warn("getEntryGoodsSizeList not entry seller, req {}", request); |
208 | return respBuilder.build(); | 214 | return respBuilder.build(); |
@@ -215,11 +221,12 @@ public class SkupListService { | @@ -215,11 +221,12 @@ public class SkupListService { | ||
215 | sogCondition.setStatus(status); | 221 | sogCondition.setStatus(status); |
216 | // | 222 | // |
217 | int total = sellerOrderGoodsViewMapper.selectEntryCntByUidStatusGBSku(sogCondition); | 223 | int total = sellerOrderGoodsViewMapper.selectEntryCntByUidStatusGBSku(sogCondition); |
218 | - respBuilder.total(total) | ||
219 | - .pagetotal((total % limit == 0) ? (total / limit) : (total / limit + 1)); | 224 | + respBuilder.total(total); |
220 | if (total == 0){ | 225 | if (total == 0){ |
221 | return respBuilder.build(); | 226 | return respBuilder.build(); |
222 | } | 227 | } |
228 | + int pageTotal = (total % limit == 0) ? (total / limit) : (total / limit + 1); | ||
229 | + respBuilder.pagetotal(pageTotal); | ||
223 | int offset = (request.getPage() - 1) * limit; | 230 | int offset = (request.getPage() - 1) * limit; |
224 | List<SellerOrderGoods> sogList = sellerOrderGoodsViewMapper.selectEntryListByUidStatusGBSku(sogCondition, | 231 | List<SellerOrderGoods> sogList = sellerOrderGoodsViewMapper.selectEntryListByUidStatusGBSku(sogCondition, |
225 | offset, limit); | 232 | offset, limit); |
@@ -231,12 +238,12 @@ public class SkupListService { | @@ -231,12 +238,12 @@ public class SkupListService { | ||
231 | final SellerType sellerType = SellerType.ENTRY; | 238 | final SellerType sellerType = SellerType.ENTRY; |
232 | List<OrderListInfo> orderListInfos = buildPrdSkuList(productId, sogList, sellerType); | 239 | List<OrderListInfo> orderListInfos = buildPrdSkuList(productId, sogList, sellerType); |
233 | respBuilder.data(orderListInfos); | 240 | respBuilder.data(orderListInfos); |
234 | - ProductInfo productInfo = buildProductInfo(sogList); | 241 | + ProductInfo productInfo = buildProductInfo(uid, status, sogList, pageTotal); |
235 | respBuilder.productInfo(productInfo); | 242 | respBuilder.productInfo(productInfo); |
236 | return respBuilder.build(); | 243 | return respBuilder.build(); |
237 | } | 244 | } |
238 | 245 | ||
239 | - ProductInfo buildProductInfo(List<SellerOrderGoods> sogList){ | 246 | + ProductInfo buildProductInfo(Integer uid, Integer status, List<SellerOrderGoods> sogList, int pageTotal){ |
240 | ProductInfo productInfo = new ProductInfo(); | 247 | ProductInfo productInfo = new ProductInfo(); |
241 | SellerOrderGoods sog = sogList.get(0); | 248 | SellerOrderGoods sog = sogList.get(0); |
242 | productInfo.setProductId(sog.getProductId()); | 249 | productInfo.setProductId(sog.getProductId()); |
@@ -246,24 +253,49 @@ public class SkupListService { | @@ -246,24 +253,49 @@ public class SkupListService { | ||
246 | String imageUrl = ImageUrlAssist.getAllProductPicUrl(sog.getImageUrl(), "goodsimg", "center", "d2hpdGU="); | 253 | String imageUrl = ImageUrlAssist.getAllProductPicUrl(sog.getImageUrl(), "goodsimg", "center", "d2hpdGU="); |
247 | productInfo.setImageUrl(imageUrl); | 254 | productInfo.setImageUrl(imageUrl); |
248 | // | 255 | // |
249 | - Set<Integer> sizeIds = new HashSet<>(sogList.size()); | ||
250 | - int storageNum = 0; | ||
251 | - for(SellerOrderGoods csog : sogList){ | ||
252 | - storageNum += csog.getStorageNum(); | ||
253 | - Integer sizeId; | ||
254 | - if (!sizeIds.contains(sizeId=csog.getSizeId())){ | ||
255 | - sizeIds.add(sizeId); | 256 | + |
257 | + int storageNum = 0, sizeNum = 0; | ||
258 | + if (pageTotal==1) { | ||
259 | + Set<Integer> sizeIds = new HashSet<>(sogList.size()); | ||
260 | + for (SellerOrderGoods csog : sogList) { | ||
261 | + storageNum += csog.getStorageNum(); | ||
262 | + Integer sizeId; | ||
263 | + if (!sizeIds.contains(sizeId = csog.getSizeId())) { | ||
264 | + sizeIds.add(sizeId); | ||
265 | + } | ||
256 | } | 266 | } |
267 | + sizeNum = sizeIds.size(); | ||
257 | } | 268 | } |
258 | - productInfo.setSizeNum(sizeIds.size()); | 269 | + if (pageTotal>1){ |
270 | + SellerOrderGoods psogOfMerge = fetchSellerOrderGoodsFromDB(uid, Arrays.asList(status), sog.getProductId()); | ||
271 | + if (psogOfMerge != null) { | ||
272 | + storageNum = psogOfMerge.getStorageNum(); | ||
273 | + sizeNum = psogOfMerge.getSizeNum(); | ||
274 | + } | ||
275 | + } | ||
276 | + //fetch from db if page num larger than 1 | ||
277 | + productInfo.setSizeNum(sizeNum); | ||
259 | productInfo.setStorageNum(storageNum); | 278 | productInfo.setStorageNum(storageNum); |
260 | return productInfo; | 279 | return productInfo; |
261 | } | 280 | } |
262 | 281 | ||
263 | - @Autowired | ||
264 | - private ProductProxyService productProxyService; | ||
265 | - @Autowired | ||
266 | - private SellerOrderPrepareProcessor sellerOrderPrepareProcessor; | 282 | + /** |
283 | + * | ||
284 | + * @param uid | ||
285 | + * @param statusList | ||
286 | + * @param productId | ||
287 | + * @return | ||
288 | + */ | ||
289 | + private SellerOrderGoods fetchSellerOrderGoodsFromDB(int uid, | ||
290 | + List<Integer> statusList, | ||
291 | + Integer productId){ | ||
292 | + SellerOrderGoods psogOfMerge = sellerOrderGoodsViewMapper.selectByUidStatusGBSkc(uid, statusList, productId); | ||
293 | + logger.info("fetchSellerOrderGoodsFromDB uid {} statusList {} prd id {}", uid, statusList, productId); | ||
294 | + return psogOfMerge; | ||
295 | + } | ||
296 | + | ||
297 | + | ||
298 | + | ||
267 | 299 | ||
268 | public Map<String,String> buildOverPriceTipsMap(Collection<Integer> storageIds, List<SellerOrderGoods> sogList, | 300 | public Map<String,String> buildOverPriceTipsMap(Collection<Integer> storageIds, List<SellerOrderGoods> sogList, |
269 | Map<Integer, StorageInfoResp> getStorageDataMap){ | 301 | Map<Integer, StorageInfoResp> getStorageDataMap){ |
@@ -380,7 +412,7 @@ public class SkupListService { | @@ -380,7 +412,7 @@ public class SkupListService { | ||
380 | productInfo.setProductId(productId=sellerOrderGoods.getProductId()); | 412 | productInfo.setProductId(productId=sellerOrderGoods.getProductId()); |
381 | productInfo.setEntryFlag(true); | 413 | productInfo.setEntryFlag(true); |
382 | // | 414 | // |
383 | - SellerOrderGoods psogOfMerge = sellerOrderGoodsViewMapper.selectByUidStatusGBSkc(uid,statusList,productId); | 415 | + SellerOrderGoods psogOfMerge = fetchSellerOrderGoodsFromDB(uid,statusList,productId); |
384 | if (psogOfMerge != null){ | 416 | if (psogOfMerge != null){ |
385 | productInfo.setStorageNum(psogOfMerge.getStorageNum()); | 417 | productInfo.setStorageNum(psogOfMerge.getStorageNum()); |
386 | productInfo.setSizeNum(psogOfMerge.getSizeNum()); | 418 | productInfo.setSizeNum(psogOfMerge.getSizeNum()); |
-
Please register or login to post a comment