/** * @Project: hehenian-biz-service * @Package com.hehenian.biz.facade.colorlife * @Title: ColorOrderFacadeImpl.java * @Description: TODO * @author: zhangyunhmf * @date 2014年10月30日 上午11:13:59 * @Copyright: HEHENIAN Co.,Ltd. All rights reserved. * @version V1.0 */ package com.hehenian.biz.facade.colorlife; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; import org.apache.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; import com.hehenian.biz.common.activity.dataobject.ActivityConfig; import com.hehenian.biz.common.util.CalculateUtils; /** * * @author: zhangyunhmf * @date 2014年10月30日 上午11:13:59 */ @Component("colorOrderFacade") public class ColorOrderFacadeImpl implements IColorOrderFacade { private static final Logger logger = Logger.getLogger(ColorOrderFacadeImpl.class); @Autowired private ActivityConfig activityConfig; @Autowired private ThreadPoolTaskExecutor taskExecutor; /* * (no-Javadoc) <p>Title: sendOrderStatus</p> <p>Description: </p> * * @param colorUserId * * @param orderSN * * @param orderAmount * * @param orderSubmitTime * * @param investStatus * * @param remark * * @return * * @see * com.hehenian.biz.facade.colorlife.IColorOrderFacade#sendOrderStatus(long, * java.lang.String, double, java.util.Date, java.lang.String, * java.lang.String) */ @Override public int sendOrderStatus(long colorUserId, String orderSN, double orderAmount, Date orderSubmitTime, String investStatus, String remark, long orderPaySn) { int retVal = checkPara(colorUserId, orderSN, orderAmount, orderSubmitTime, investStatus, orderPaySn); if( 0 != retVal){return retVal;} // 转unix 时间戳 long orderTime = orderSubmitTime.getTime() / 1000; final Map<String, String> parameterMap = new LinkedHashMap<String, String>(); parameterMap.put("userid", String.valueOf(colorUserId)); parameterMap.put("orderSn", orderSN); parameterMap.put("orderAmount", CalculateUtils.round(orderAmount)); parameterMap.put("orderSuccessTime", String.valueOf(orderTime)); parameterMap.put("orderPaySn", String.valueOf(orderPaySn)); parameterMap.put("orderStatus", investStatus); // parameterMap.put("remark", remark); try { taskExecutor.execute(new Runnable() { public void run() { try { String jsonString = ColorLifeManager.callColorOperate( activityConfig.getColorServiceURL(), activityConfig.getOrderSuccessURL(), activityConfig.getColorKey(), activityConfig.getColorSignSecret(), parameterMap); parameterMap.clear(); } catch (Exception e) { logger.error("投资回调彩生活的订单回调通知接口失败"); logger.error(e); } } }); return 0; // String jsonString = ColorLifeManager.callColorOperate( // activityConfig.getColorServiceURL(), // activityConfig.getOrderSuccessURL(), // activityConfig.getColorKey(), // activityConfig.getColorSignSecret(), parameterMap); // // // jsonString = HttpClientUtils.post(operationURL, parameterMap); // return ColorLifeReturnProcessor.parse(jsonString); } catch (Exception e) { logger.error("投资回调彩生活的订单回调通知接口失败"); logger.error(e); } return 1; } /** * 检查参数合法性 * * @param colorUserId * @param orderSN * @param orderAmount * @param orderSubmitTime * @param investStatus * @param orderPaySn * @return * @author: zhangyunhmf * @date: 2014年10月30日下午12:37:44 */ private int checkPara(long colorUserId, String orderSN, double orderAmount, Date orderSubmitTime, String investStatus, long orderPaySn) { if(colorUserId <= 0){ return 2; } if(null == orderSN || "".equals(orderSN)){ return 2; } if(orderAmount <= 0){ return 2; } if(null == orderSubmitTime ){ return 2; } if(null == investStatus){ return 2; } if (orderPaySn <= 0) { return 2; } return 0; } }