...
|
...
|
@@ -29,13 +29,13 @@ public class UnionOrderServiceImpl implements IUnionOrderService { |
|
|
|
|
|
private static final String UNION_ORDER_KEY = "union:orders";
|
|
|
|
|
|
private static final String UNION_TRAND = "YH_BD_ORDER_UNIONS";
|
|
|
private static final String UNION_TRAND = "YH:BD:ORDER:UNIONS";
|
|
|
|
|
|
private static final String UNION_ORDER_GOODS_KEY_PRE = "union:order_goods:";
|
|
|
|
|
|
private static final String UNION_TRANS_UNIONTYPE = "YH_BD_UNI_1_ORDER_";
|
|
|
private static final String UNION_TRANS_UNIONTYPE = "YH:BD:UNI:1:ORDER:";
|
|
|
|
|
|
private static final String UNION_NORMAL_TRANS_UNIONTYPE = "YH_BD_UNI_ALL_ORDER_";
|
|
|
private static final String UNION_NORMAL_TRANS_UNIONTYPE = "YH:BD:UNI:ALL:ORDER:";
|
|
|
|
|
|
@Autowired
|
|
|
private RedisListCache redisListCache;
|
...
|
...
|
@@ -77,35 +77,46 @@ public class UnionOrderServiceImpl implements IUnionOrderService { |
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public List<TransInfo> getTrandInfo(UnionOrderReqVO req){
|
|
|
public List<TransInfo> getTrandInfo(UnionOrderReqVO req) {
|
|
|
logger.info("Enter getTrandInfo: request param is {}", req);
|
|
|
int limit = req.getLimit();
|
|
|
limit = limit < 1 ? 20 : limit;
|
|
|
try{
|
|
|
try {
|
|
|
List<TransInfo> resList = new ArrayList<TransInfo>();
|
|
|
Long size = redisListCache.size(UNION_TRAND);
|
|
|
int sizeInt = size == null ? 0 : size.intValue();
|
|
|
limit = sizeInt < limit ? sizeInt : limit;
|
|
|
for(int i=0; i < limit; i++){
|
|
|
UnionTrans unionTrans = redisListCache.rightPop(UNION_TRAND, UnionTrans.class);
|
|
|
logger.info("getTrandInfo: get order list form bigdata redis: key is {}, result is {}", UNION_ORDER_KEY, unionTrans);
|
|
|
if(unionTrans == null){
|
|
|
continue;
|
|
|
if (sizeInt > 0) {
|
|
|
for (int i = 0; i < size; i++) {
|
|
|
UnionTrans unionTrans = redisListCache.rightPop(UNION_TRAND, UnionTrans.class);
|
|
|
String union_type = unionTrans.getUnion_type();
|
|
|
//首单交寄
|
|
|
String firstOrder = UNION_TRANS_UNIONTYPE + union_type;
|
|
|
//普通交寄
|
|
|
String normalOrder = UNION_NORMAL_TRANS_UNIONTYPE + union_type;
|
|
|
List<UnionActivityTrans> firstOrderList = new ArrayList<>();
|
|
|
Long firstOrderSize = redisListCache.size(firstOrder);
|
|
|
Long normalOrderSize = redisListCache.size(normalOrder);
|
|
|
if (firstOrderSize > 0) {
|
|
|
for (int j = 0; j < firstOrderSize; j++) {
|
|
|
UnionActivityTrans unionActivityTrans = redisListCache.rightPop(firstOrder, UnionActivityTrans.class);
|
|
|
firstOrderList.add(unionActivityTrans);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
logger.info("getFirstOrderList: from bigdata redis: key is {}, result size is {}", firstOrder, firstOrderList == null ? 0 : firstOrderList.size());
|
|
|
List<UnionActivityTrans> normalOrderList = new ArrayList<>();
|
|
|
if (normalOrderSize > 0) {
|
|
|
for (int k = 0; k < normalOrderSize; k++) {
|
|
|
UnionActivityTrans unionActivityTrans = redisListCache.rightPop(normalOrder, UnionActivityTrans.class);
|
|
|
normalOrderList.add(unionActivityTrans);
|
|
|
}
|
|
|
}
|
|
|
logger.info("getNormalOrderList: from bigdata redis: key is {}, result size is {}", normalOrder, normalOrderList == null ? 0 : normalOrderList.size());
|
|
|
resList = this.convertTrans(resList,firstOrderList, normalOrderList);
|
|
|
}
|
|
|
String union_type = unionTrans.getUnion_type();
|
|
|
//首单交寄
|
|
|
String firstOrder = UNION_TRANS_UNIONTYPE + union_type;
|
|
|
//普通交寄
|
|
|
String normalOrder = UNION_NORMAL_TRANS_UNIONTYPE+union_type;
|
|
|
List<UnionActivityTrans> firstOrderList = redisListCache.rightPop(firstOrder, List.class);
|
|
|
logger.info("getFirstOrderList: from bigdata redis: key is {}, result size is {}", firstOrder, firstOrderList == null ? 0 : firstOrderList.size());
|
|
|
List<UnionActivityTrans> normalOrderList = redisListCache.rightPop(normalOrder,List.class);
|
|
|
logger.info("getNormalOrderList: from bigdata redis: key is {}, result size is {}", normalOrder, normalOrderList == null ? 0 : normalOrderList.size());
|
|
|
resList = this.convertTrans(firstOrderList,normalOrderList);
|
|
|
}
|
|
|
|
|
|
return resList;
|
|
|
|
|
|
}catch(Exception e){
|
|
|
} catch (Exception e) {
|
|
|
logger.warn("getUnionOrders: get orders from bigdata redis failed, error is {}", e);
|
|
|
return null;
|
|
|
}
|
...
|
...
|
@@ -158,21 +169,21 @@ public class UnionOrderServiceImpl implements IUnionOrderService { |
|
|
return resList;
|
|
|
}
|
|
|
|
|
|
private List<TransInfo> convertTrans(List<UnionActivityTrans> firstOrderList,List<UnionActivityTrans> normalOrderList){
|
|
|
private List<TransInfo> convertTrans(List<TransInfo> resList,List<UnionActivityTrans> firstOrderList,List<UnionActivityTrans> normalOrderList){
|
|
|
if(CollectionUtils.isEmpty(firstOrderList)&&CollectionUtils.isEmpty(normalOrderList)){
|
|
|
return null;
|
|
|
}
|
|
|
List<TransInfo> transInfoList = new ArrayList<TransInfo>();
|
|
|
|
|
|
if(CollectionUtils.isNotEmpty(firstOrderList)){
|
|
|
for(UnionActivityTrans unionActivityTrans:firstOrderList){
|
|
|
TransInfo transInfo = new TransInfo();
|
|
|
//首单设为1
|
|
|
transInfo.setType("1");
|
|
|
transInfo.setUdid(unionActivityTrans.getUdid());
|
|
|
transInfo.setOrderAmount(unionActivityTrans.getOrderAmount());
|
|
|
transInfo.setOrderAmount(unionActivityTrans.getOrder_amount());
|
|
|
transInfo.setUid(unionActivityTrans.getUid());
|
|
|
transInfo.setOrdercode(unionActivityTrans.getOrdercode());
|
|
|
transInfoList.add(transInfo);
|
|
|
transInfo.setOrdercode(unionActivityTrans.getOrder_code());
|
|
|
resList.add(transInfo);
|
|
|
}
|
|
|
}
|
|
|
if(CollectionUtils.isNotEmpty(normalOrderList)){
|
...
|
...
|
@@ -181,12 +192,12 @@ public class UnionOrderServiceImpl implements IUnionOrderService { |
|
|
//正常单设为2
|
|
|
transInfo.setType("2");
|
|
|
transInfo.setUdid(unionActivityTran.getUdid());
|
|
|
transInfo.setOrderAmount(unionActivityTran.getOrderAmount());
|
|
|
transInfo.setOrderAmount(unionActivityTran.getOrder_amount());
|
|
|
transInfo.setUid(unionActivityTran.getUid());
|
|
|
transInfo.setOrdercode(unionActivityTran.getOrdercode());
|
|
|
transInfoList.add(transInfo);
|
|
|
transInfo.setOrdercode(unionActivityTran.getOrder_code());
|
|
|
resList.add(transInfo);
|
|
|
}
|
|
|
}
|
|
|
return transInfoList;
|
|
|
return resList;
|
|
|
}
|
|
|
} |
...
|
...
|
|