Authored by gemingdan

Merge branch 'master' into gray

package com.yoho.unions.server.service.impl;
import com.yoho.core.common.utils.JsonUtil;
import com.yoho.unions.common.utils.HttpUtils;
import com.yoho.unions.dal.IUserOrdersDAO;
import com.yoho.unions.server.service.IOrderPushService;
import com.yoho.unions.vo.OrderInfo;
import com.yoho.unions.vo.OrdersGood;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.tuple.Pair;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Created by mingdan.ge on 2019/11/25.
*/
@Service
public class ChineseANS2SImpl implements IOrderPushService {
static Logger logger = LoggerFactory.getLogger(ChineseANS2SImpl.class);
static final String preUrl = "https://www.chinesean.com/affiliate/tracking3.do?pId=19865";
@Autowired
private IUserOrdersDAO userOrdersDAO;
@Override
public void pushOrder(List<OrderInfo> orderInfos){
orderInfos.forEach(o->{
//https://www.chinesean.com/affiliate/tracking3.do?pId=PROGRAMID&tracking=REFID&cpa=&cpl=&cps=AMOUNT,TIERID&txId=TXID
BigDecimal amount = new BigDecimal(0);
if (CollectionUtils.isNotEmpty(o.getOrdersGoods())) {
logger.info("ChineseANS2SImpl.pushOrder test,order is {}.",JsonUtil.objectToJSON(o.getOrdersGoods()));
for(OrdersGood g:o.getOrdersGoods()){
amount.add(g.getRealPayFee());
logger.info("ChineseANS2SImpl.pushOrder test,order is {},amount is {}.",JsonUtil.objectToJSON(g),amount);
}
}
String url=preUrl+"&tracking="+o.getParentOrderCode()+"cpa=&cpl=&cps="+amount+",TIERID"+"&txId="+o.getUnionData();
Pair<Integer, String> pair = HttpUtils.httpGet(url);
if (pair.getLeft() != 200) {
logger.error("ChineseANS2SImpl.pushOrder error,url is ,result is {},pair is {},order is {}.",url,pair, JsonUtil.objectToJSON(o));
}else {
logger.info("ChineseANS2SImpl.pushOrder end,url is ,result is {},pair is {},order is {}.",url,pair,JsonUtil.objectToJSON(o));
//批量更新推送成功的订单状态为1
List<String> pushedCodes = new ArrayList<>();
pushedCodes.add(o.getParentOrderCode());
//批量更新推送成功的订单状态为1
userOrdersDAO.batchUpdatePush(pushedCodes);
}
});
}
}
... ...
... ... @@ -2,6 +2,7 @@ package com.yoho.unions.server.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yoho.core.common.utils.JsonUtil;
import com.yoho.service.model.union.UnionTrans;
import com.yoho.unions.common.redis.RedisHashCache;
import com.yoho.unions.common.redis.RedisListCache;
... ... @@ -87,7 +88,7 @@ public class UnionOrderServiceImpl implements IUnionOrderService{
limit = sizeInt < limit ? sizeInt : limit;
for(int i=0; i < limit; i++){
UnionOrders unionOrder = redisListCache.rightPop(UNION_ORDER_KEY, UnionOrders.class);
logger.info("getUnionOrders: get order list form bigdata redis: key is {}, result is {}", UNION_ORDER_KEY, unionOrder);
logger.info("getUnionOrders: get order list form bigdata redis: key is {}, result is {}", UNION_ORDER_KEY, JsonUtil.objectToJSON(unionOrder));
if(unionOrder == null){
continue;
}
... ...
... ... @@ -54,6 +54,8 @@
<entry key="3001" value-ref="fanliServiceImpl"/>
<entry key="3063" value-ref="fanliServiceImpl"/>
<entry key="3419" value-ref="panshiServiceImpl"/>
<entry key="100000000017546" value-ref="chineseANS2SImpl"/>
<entry key="100000000017548" value-ref="chineseANS2SImpl"/>
</util:map>
<!-- 输出对象转JSON支持 -->
... ...