Authored by Lixiaodi

Merge branch 'test6.8.5' of http://git.yoho.cn/ufo/yohoufo-fore into test6.8.5

@@ -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());
  1 +package com.yohoufo.order.service;
  2 +
  3 +import com.yohoufo.order.BaseTest;
  4 +import org.junit.Test;
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +
  8 +/**
  9 + * Created by chao.chen on 2019/1/22.
  10 + */
  11 +public class RuntimeExceptionTest extends BaseTest{
  12 + private Logger logger = LoggerFactory.getLogger(getClass());
  13 +
  14 + @Test
  15 + public void testPrintStack(){
  16 + try{
  17 + throw new RuntimeException("test RuntimeException");
  18 + }catch (Exception ex){
  19 + logger.warn("in testPrintStack occur error", ex);
  20 + }
  21 + doAfterOccurError();
  22 + }
  23 +
  24 + private void doAfterOccurError(){
  25 + System.out.println("always i thought code can reach here");
  26 + }
  27 +}