浏览代码

Merge branch 'master' of http://git.iamberry.com/hexiugang/iamberry-common-parent

# Conflicts:
#	watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/order_list.ftl
wangxiang 7 年之前
父节点
当前提交
1885209e68
共有 18 个文件被更改,包括 301 次插入32 次删除
  1. 19 0
      watero-common-tool/src/main/java/com/iamberry/wechat/tools/OrderNOUtil.java
  2. 2 2
      watero-rent-service/src/main/java/com/iamberry/rent/service/machine/MachineServiceImpl.java
  3. 1 1
      watero-rst-web/src/main/resources/watero-rst-ioc.xml
  4. 13 0
      watero-wechat-interface/src/main/java/com/iamberry/wechat/face/order/ProbationShopOrderService.java
  5. 12 0
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProbationShopOrderMapper.java
  6. 42 12
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/probationShopOrderMapper.xml
  7. 4 4
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java
  8. 16 1
      watero-wechat-service/src/main/java/com/iamberry/wechat/service/order/ProbationShopOrderServiceImpl.java
  9. 61 1
      watero-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  10. 2 2
      watero-wechat-web/src/main/resources/iamberry-wechat-web-ioc.xml
  11. 1 1
      watero-wechat-web/src/main/resources/platform.properties
  12. 15 2
      wateroPF-wechat-interface/src/main/java/com/iamberry/wechat/face/order/ProbationShopOrderService.java
  13. 10 0
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProbationShopOrderMapper.java
  14. 24 0
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/probationShopOrderMapper.xml
  15. 6 5
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java
  16. 14 0
      wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/order/ProbationShopOrderServiceImpl.java
  17. 56 1
      wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java
  18. 3 0
      wateroPF-wechat-web/src/main/resources/platform.properties

+ 19 - 0
watero-common-tool/src/main/java/com/iamberry/wechat/tools/OrderNOUtil.java

@@ -28,4 +28,23 @@ public class OrderNOUtil {
 		code.append(chars[random.nextInt(chars.length)]);
 		return code.toString();
 	}
+
+	/**
+	 * Efast升级新订单生成规则
+	 * @param id
+	 * @param sdId
+	 * @return
+	 */
+	public static String createNewOrderCode(Integer id,String sdId) {
+		StringBuilder code = new StringBuilder();
+		//产生基本数据
+		code = code.append(StaticInfo.dateFormat.format(new Date()));
+		//避免同一秒内,操作多次
+		code.append(chars[random.nextInt(chars.length)]);
+		//避免多用户操作
+		code.append(id);
+		code.append(sdId);
+		code.append(chars[random.nextInt(chars.length)]);
+		return code.toString();
+	}
 }

+ 2 - 2
watero-rent-service/src/main/java/com/iamberry/rent/service/machine/MachineServiceImpl.java

@@ -627,8 +627,8 @@ public class MachineServiceImpl implements MachineService {
         return machineMapper.countMachineShare(machineShare);
     }
 
-	@Override
-	@Scheduled(cron = "0/10 * * * * ?")//每10秒执行一次
+	/*@Override
+	@Scheduled(cron = "0/10 * * * * ?")//每10秒执行一次*/
 	public synchronized void handlerNextCommand() {
 		// TODO Auto-generated method stub
         List<MachineInfo> listNextCommandMachine = machineMapper.listNextCommandMachine();

+ 1 - 1
watero-rst-web/src/main/resources/watero-rst-ioc.xml

@@ -26,7 +26,7 @@
     <aop:aspectj-autoproxy proxy-target-class="true"/>
 
 	<!-- 开启注解启动定时器 -->
-    <!--<task:annotation-driven/>-->
+    <task:annotation-driven/>
 
 	<!-- DataSource -->
 	<import resource="classpath:watero-rst-db.xml"/>

+ 13 - 0
watero-wechat-interface/src/main/java/com/iamberry/wechat/face/order/ProbationShopOrderService.java

@@ -2,6 +2,7 @@ package com.iamberry.wechat.face.order;
 
 import java.util.List;
 
+import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.ProbationCode;
 import com.iamberry.wechat.core.entity.order.ProbationOrderDto;
 import com.iamberry.wechat.core.entity.probation.ProbationAwardRelu;
@@ -92,4 +93,16 @@ public interface ProbationShopOrderService {
 	 * @return
 	 */
 	public Integer selectProbationOrderCountByTel(String probationTel);
+
+	/**
+	 * 查询未拉取的订单
+	 * @return
+	 */
+    public List<Order> selectProbationShopOrderList();
+
+	/**
+	 * 更新拉取成功的订单
+	 * @return
+	 */
+	public void updateProbationShopOrder(Order order);
 }

+ 12 - 0
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProbationShopOrderMapper.java

@@ -137,4 +137,16 @@ public interface ProbationShopOrderMapper {
 	 * @return
 	 */
 	public Integer selectPartnerProbationNum(String openId);
+
+	/**
+	 * 查询未拉取的订单
+	 * @return
+	 */
+	public List<Order> selectProbationShopOrderList();
+
+	/**
+	 * 更新拉取成功的订单
+	 * @return
+	 */
+	public void updateProbationShopOrder(Order order);
 }

+ 42 - 12
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/probationShopOrderMapper.xml

@@ -363,20 +363,50 @@
 		AND 
 			o.PROBATION_STATUS in (1,2,3,4,5)
  	</select>
- 	
+
  	<!-- 查询合伙人下线试用订单数量 -->
  	<select id="selectPartnerProbationNum" resultType="Integer" parameterType="String">
- 		SELECT 
-			COUNT(DISTINCT o.PROBATION_ORDERID) 
-		FROM 
-			TB_IAMBERRY_PROBATION_SHOP_ORDER o 
-			LEFT JOIN TB_IAMBERRY_USER_USERINFO u ON o.PROBATION_OPENID = u.USER_OPENID 
-			LEFT JOIN TB_IAMBERRY_PLACE_INFO p ON u.USER_DEALERS = p.PLACE_PIDS 
-			LEFT JOIN TB_IAMBERRY_PLACE_INFO i ON p.PLACE_PID = i.PLACE_ID 
-			LEFT JOIN TB_IAMBERRY_PLACE_INFO pi ON i.PLACE_PID = pi.PLACE_ID 
-		WHERE 
-			pi.PLACE_OPENID = #{openId} 
-		AND 
+ 		SELECT
+			COUNT(DISTINCT o.PROBATION_ORDERID)
+		FROM
+			TB_IAMBERRY_PROBATION_SHOP_ORDER o
+			LEFT JOIN TB_IAMBERRY_USER_USERINFO u ON o.PROBATION_OPENID = u.USER_OPENID
+			LEFT JOIN TB_IAMBERRY_PLACE_INFO p ON u.USER_DEALERS = p.PLACE_PIDS
+			LEFT JOIN TB_IAMBERRY_PLACE_INFO i ON p.PLACE_PID = i.PLACE_ID
+			LEFT JOIN TB_IAMBERRY_PLACE_INFO pi ON i.PLACE_PID = pi.PLACE_ID
+		WHERE
+			pi.PLACE_OPENID = #{openId}
+		AND
 			o.PROBATION_STATUS in (1,2,3,4,5)
  	</select>
+
+	<!-- 查询合伙人下线试用订单数量 -->
+	<!--查询销售产品价格-->
+	<resultMap type="com.iamberry.wechat.core.entity.order.Order" id="selectProbationShopOrderListResult">
+		<result property="salesOrderid" column="sales_orderid" />
+		<result property="salesPostFirm" column="sales_post_firm" />
+		<result property="salesPostNum" column="sales_post_num" />
+	</resultMap>
+	<select id="selectProbationShopOrderList" resultMap="selectProbationShopOrderListResult">
+		SELECT
+			o.sales_orderid,
+			o.sales_post_firm,
+			o.sales_post_num
+		FROM
+			tb_iamberry_shop_sales_order o
+		WHERE
+			o.sales_post_num is null
+		AND
+			o.sales_post_firm is null
+	</select>
+
+	<!-- 更新拉取成功的订单 -->
+	<update id="updateProbationShopOrder" parameterType="com.iamberry.wechat.core.entity.order.Order">
+		update  tb_iamberry_shop_sales_order
+		set
+		sales_post_num= #{salesPostNum},
+		sales_post_firm= #{salesPostFirm}
+		where
+		sales_orderid = #{salesOrderid}
+	</update>
   </mapper>

+ 4 - 4
watero-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java

@@ -162,8 +162,8 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		
 		// request url
 		//String url = NameUtils.getConfig("efast_base_url");
-		// "http://test.iamberry.com//mallorder/order";
 		String url = NameUtils.getConfig("rst_base_url");
+		// "http://test.iamberry.com//mallorder/order";
 
 		// set Requeset Data
 		Map<String, String> requestData = new HashMap<String, String>();
@@ -287,7 +287,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		
 		
 		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
-		String orderDataStr = null;
+		String orderDataStr = null;;
 		try {
 			orderDataStr = mapper.writeValueAsString(orderData);
 		} catch (JsonProcessingException e2) {
@@ -413,7 +413,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		
 		
 		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
-		String orderDataStr = null;
+		String orderDataStr = null;;
 		try {
 			orderDataStr = mapper.writeValueAsString(orderData);
 		} catch (JsonProcessingException e2) {
@@ -657,7 +657,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 			logger.info("get-订单号为:" + message.getServiceToMessage() + "的订单,百胜返回信息:" + resultJson);
 			JSONObject jsonObject=JSONObject.fromObject(resultJson);
 			JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
-			
+
 			String returnOrderStatus=respData.getString("return_order_status");			//退单状态
 			if("1".equals(returnOrderStatus)){//1表示已确认退单
 				Order order = new Order();

+ 16 - 1
watero-wechat-service/src/main/java/com/iamberry/wechat/service/order/ProbationShopOrderServiceImpl.java

@@ -3,6 +3,7 @@ package com.iamberry.wechat.service.order;
 import java.util.ArrayList;
 import java.util.List;
 
+import com.iamberry.wechat.tools.NameUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -132,6 +133,7 @@ public class ProbationShopOrderServiceImpl implements ProbationShopOrderService{
 	@Override
 	public Integer insertSalesOrder(String probationOrderId, Integer userId) {
 		// TODO Auto-generated method stub
+		String sdId = NameUtils.getConfig("sd_id");
 		if (probationOrderId == null || "".equals(probationOrderId)) {
 			return 0;
 		}
@@ -145,7 +147,8 @@ public class ProbationShopOrderServiceImpl implements ProbationShopOrderService{
 		}
 		//将使用订单封装到销售订单中
 		Order order = new Order();
-		order.setSalesOrderid(OrderNOUtil.createOrderCode(userId));
+		//Efast升级新订单生成规则
+		order.setSalesOrderid(OrderNOUtil.createNewOrderCode(userId,sdId));
 		order.setSalesOpenid(probationOrder.getProbationOpenid());
 		order.setSalesPorderid(probationOrder.getProbationOrderid());
 		order.setSalesYetAmount(probationOrder.getProbationYetAmount());
@@ -191,4 +194,16 @@ public class ProbationShopOrderServiceImpl implements ProbationShopOrderService{
 		return probationShopOrderMapper.selectProbationOrderCountByTel(probationTel);
 	}
 
+	/**
+	 * 查询未拉取的订单
+	 * @return
+	 */
+	public List<Order> selectProbationShopOrderList(){
+		return (List<Order>)probationShopOrderMapper.selectProbationShopOrderList();
+	}
+
+	public void updateProbationShopOrder(Order order){
+		probationShopOrderMapper.updateProbationShopOrder(order);
+	}
+
 }

+ 61 - 1
watero-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -3,11 +3,19 @@ package com.iamberry.wechat.handles.mq;
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.iamberry.wechat.core.entity.order.Order;
+import com.iamberry.wechat.tools.HttpClient431Util;
+import com.iamberry.wechat.tools.NameUtils;
+import net.sf.json.JSONObject;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -129,7 +137,59 @@ public class MQTask implements InitializingBean {
 		}
 		logger.info("------------task invoke success-----------");
 	}
-	
+
+	/**
+	 * 根据订单号拉取物流信息
+	 * @throws Exception
+	 */
+	//@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
+	@Scheduled(cron = "0 0/2 * * * ?")//每2分钟执行一次
+	//@Scheduled(cron = "*/10 * * * * ?")
+	public void syncLgisticsInfoByOrderId() throws Exception {
+		System.out.println("---------------- 根据订单号拉取物流信息开始 ---------------");
+		logger.info("---------------- 根据订单号拉取物流信息开始 ---------------");
+		lock.lock();
+		List<Order> orderList = null;
+		String url = NameUtils.getConfig("rst_base_url");
+		String sdId = NameUtils.getConfig("sd_id");
+		Map<String, Object> orderData = new HashMap<String, Object>();
+		Map<String, String> requestData = new HashMap<String, String>();
+		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
+		try {
+			logger.info("---------------- selectProbationShopOrderList begin ---------------");
+			orderList = probationShopOrderService.selectProbationShopOrderList();
+			if(orderList != null && orderList.size() > 0){
+				for (Order order:orderList) {
+					String salesOrderid = order.getSalesOrderid();
+					orderData.put("orderId", salesOrderid);
+					orderData.put("sd_id", sdId);
+					requestData.put("app_act", "rst.trade.logistics.get");
+					String orderDataStr = mapper.writeValueAsString(orderData);
+					requestData.put("info", orderDataStr);
+					String result = HttpClient431Util.doPost(requestData, url);
+					result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+					logger.info("拉取订单号为:" + order.getSalesOrderid() + "的订单,rst返回信息:" + result);
+					System.out.println("拉取订单号为:" + order.getSalesOrderid() + "的订单,rst返回信息:" + result);
+					JSONObject jsonObject = JSONObject.fromObject(result);
+					String msg = jsonObject.getString("msg");
+					logger.info("---------"+msg+"---------");
+					if ("seccess".equals(msg)) {
+						String salesPostFirm = jsonObject.getString("salesPostFirm");
+						String salesPostNum = jsonObject.getString("salesPostNum");
+						order.setSalesPostFirm(salesPostFirm);
+						order.setSalesPostNum(salesPostNum);
+						probationShopOrderService.updateProbationShopOrder(order);
+					}
+				}
+			}
+		}catch (Exception e){
+			logger.error("拉取订单异常",e.getMessage());
+		}finally {
+			lock.unlock();
+		}
+		logger.info("---------------- 根据订单号拉取物流信息结束 ---------------");
+	}
+
 	/**
 	 * 订阅消息
 	 */

+ 2 - 2
watero-wechat-web/src/main/resources/iamberry-wechat-web-ioc.xml

@@ -50,8 +50,8 @@
 	<!-- 加载静态资源 -->
 	<bean id="loadResultInfo" class="com.iamberry.wechat.tools.loadResultUtil" lazy-init="false"></bean>
 	
-	<!-- 开启注解启动定时器
-    <task:annotation-driven/>  -->
+	<!-- 开启注解启动定时器 -->
+    <task:annotation-driven/>
     
     <!-- 将30天后奖励积分的定时任务的xml引入
 	<import resource="classpath:iamberry-wechat-service-orderTesk.xml"></import>  -->

+ 1 - 1
watero-wechat-web/src/main/resources/platform.properties

@@ -119,7 +119,7 @@ rst_base_url=http://test.iamberry.com/rst/mcahine/getMachineInfo?barCode=
 # efast_base_url
 efast_base_url=http://121.199.165.244/efast_test/efast_api/webservice/web/index.php
 # rst_base_url
-rst_base_url=http://test.iamberry.com//mallorder/order
+rst_base_url=http://test.iamberry.com/rst/mallorder/order
 # order_field
 order_field=order_sn,deal_code,order_status,shipping_status,pay_status,process_status,is_send,is_locked,is_separate,consignee,address,zipcode,tel,mobile,shipping_name,pay_name,invoice_no,order_amount ,money_paid,user_id ,orders.goods_sn,orders.goods_name,orders.goods_number,orders.goods_price,orders.goods_barcode,orders.payment_ft,pay_time,to_buyer,postscript,order_amount,user_nick,money_paid,shipping_fee
 # binding downlod

+ 15 - 2
wateroPF-wechat-interface/src/main/java/com/iamberry/wechat/face/order/ProbationShopOrderService.java

@@ -2,6 +2,7 @@ package com.iamberry.wechat.face.order;
 
 import java.util.List;
 
+import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.core.entity.order.ProbationCode;
 import com.iamberry.wechat.core.entity.order.ProbationOrderDto;
 import com.iamberry.wechat.core.entity.probation.ProbationAwardRelu;
@@ -78,10 +79,11 @@ public interface ProbationShopOrderService {
 	 * @return
 	 */
 	public ProbationOrderDto selectProbationOrderByOrderId(String orderId);
-	
+
 	/**
 	 * 添加销售订单信息
-	 * @param order
+	 * @param probationOrderId
+	 * @param userId
 	 * @return
 	 */
 	public Integer insertSalesOrder(String probationOrderId, Integer userId);
@@ -92,4 +94,15 @@ public interface ProbationShopOrderService {
 	 * @return
 	 */
 	public Integer selectProbationOrderCountByTel(String probationTel);
+
+	/**
+	 * 查詢訂單表
+	 * @return
+	 */
+    public List<Order> selectWateroPFOrderList();
+
+	/**
+	 * 更新訂單表
+	 */
+	public void updateWateroPFOrder(Order order);
 }

+ 10 - 0
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProbationShopOrderMapper.java

@@ -137,4 +137,14 @@ public interface ProbationShopOrderMapper {
 	 * @return
 	 */
 	public Integer selectPartnerProbationNum(String openId);
+
+	/**
+	 * 查詢訂單表
+	 * @return
+	 */
+    public List<Order> selectWateroPFOrderList();
+	/**
+	 * 更新訂單表
+	 */
+	public void updateWateroPFOrder(Order order);
 }

+ 24 - 0
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/probationShopOrderMapper.xml

@@ -379,4 +379,28 @@
 		AND 
 			o.PROBATION_STATUS in (1,2,3,4,5)
  	</select>
+
+	<!--查詢訂單表-->
+	<select id="selectProbationShopOrderList" resultMap="selectProbationShopOrderListResult">
+		SELECT
+		o.sales_orderid,
+		o.sales_post_firm,
+		o.sales_post_num
+		FROM
+		tb_iamberry_shop_sales_order o
+		WHERE
+		o.sales_post_num is null
+		AND
+		o.sales_post_firm is null
+	</select>
+
+	<!-- 更新拉取成功的订单 -->
+	<update id="updateProbationShopOrder" parameterType="com.iamberry.wechat.core.entity.order.Order">
+		update  tb_iamberry_shop_sales_order
+		set
+		sales_post_num= #{salesPostNum},
+		sales_post_firm= #{salesPostFirm}
+		where
+		sales_orderid = #{salesOrderid}
+	</update>
   </mapper>

+ 6 - 5
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java

@@ -159,8 +159,8 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		ShopSystemRule rule = adminOrderService.getReluByRid(237);
 
 		// request url
-		String url = NameUtils.getConfig("efast_base_url");
-
+		//String url = NameUtils.getConfig("efast_base_url");
+		String url = NameUtils.getConfig("rst_base_url");
 		// set Requeset Data
 		Map<String, String> requestData = new HashMap<String, String>();
 
@@ -204,11 +204,12 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		/**
 		 * 系统级参数
 		 */
-		requestData.put("app_nick", NameUtils.getConfig("app_nick"));
+		/*requestData.put("app_nick", NameUtils.getConfig("app_nick"));
 		requestData.put("app_key", NameUtils.getConfig("app_key"));
 		requestData.put("app_secret", NameUtils.getConfig("app_secret"));
 		requestData.put("timestamp", DateTimeUtil.format(new Date(), "yyyyMMddHHmmss"));
-		requestData.put("app_act", message.getServiceOtherMessage()); // "efast.trade.new.add"
+		requestData.put("app_act", message.getServiceOtherMessage());*/ // "efast.trade.new.add"
+		requestData.put("app_act", "rst.trade.new.add");
 
 		/**
 		 * 订单基本信息
@@ -312,7 +313,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		orderData.put("sd_id", sd_id);                                                    // 对应 efast 店铺 id
 		orderData.put("shipping_fee", 0);                                                // 快递费
 		orderData.put("shipping_name", "yto");                                            // 快递公司代码
-		orderData.put("tel", "");                                            // 我司电话
+		orderData.put("tel", order.getSalesAddressTel());                                            // 我司电话
 		orderData.put("to_buyer", "");                                                    // 商家备注
 		orderData.put("total_amount", (order.getSalesAmount() / 100.0));                    // 订单总额
 		orderData.put("user_name", order.getSalesOpenid());                            // 买家账户   百胜根据user_name来判断是否有重复,传openId是为了防止重复

+ 14 - 0
wateroPF-wechat-service/src/main/java/com/iamberry/wechat/service/order/ProbationShopOrderServiceImpl.java

@@ -191,4 +191,18 @@ public class ProbationShopOrderServiceImpl implements ProbationShopOrderService{
 		return probationShopOrderMapper.selectProbationOrderCountByTel(probationTel);
 	}
 
+	/**
+	 * 查詢訂單表
+	 * @return
+	 */
+	public List<Order> selectWateroPFOrderList(){
+		return probationShopOrderMapper.selectWateroPFOrderList();
+	}
+
+	/**
+	 * 更新訂單表
+	 */
+	public void updateWateroPFOrder(Order order){
+		probationShopOrderMapper.updateWateroPFOrder(order);
+	}
 }

+ 56 - 1
wateroPF-wechat-web/src/main/java/com/iamberry/wechat/handles/mq/MQTask.java

@@ -9,11 +9,15 @@ import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import com.fasterxml.jackson.databind.ObjectMapper;
 import com.iamberry.wechat.core.entity.admin.ShopSystemRule;
+import com.iamberry.wechat.core.entity.order.Order;
 import com.iamberry.wechat.face.admin.SystemService;
 import com.iamberry.wechat.tools.HttpClient431Util;
 import com.iamberry.wechat.tools.NameUtils;
+import net.sf.json.JSONObject;
 import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang3.StringEscapeUtils;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
@@ -137,7 +141,58 @@ public class MQTask implements InitializingBean {
 		}
 		logger.info("------------task invoke success-----------");
 	}
-	
+
+	/**
+	 * 根据订单号拉取物流信息
+	 * @throws Exception
+	 */
+	//@Scheduled(cron = "0 0 */1 * * ?")//每小时执行一次
+	@Scheduled(cron = "0 0/2 * * * ?")//每2分钟执行一次
+	//@Scheduled(cron = "*/10 * * * * ?")
+	public void syncLgisticsInfoByOrderId() throws Exception {
+		logger.info("---------------- 根据订单号拉取物流信息开始 ---------------");
+		lock.lock();
+		List<Order> orderList = null;
+		String url = NameUtils.getConfig("rst_base_url");
+		String sdId = NameUtils.getConfig("sd_id");
+		Map<String, Object> orderData = new HashMap<String, Object>();
+		Map<String, String> requestData = new HashMap<String, String>();
+		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
+		try {
+			logger.info("---------------- selectProbationShopOrderList begin ---------------");
+			orderList = probationShopOrderService.selectWateroPFOrderList();
+			if(orderList != null && orderList.size() > 0){
+				for (Order order:orderList) {
+					String salesOrderid = order.getSalesOrderid();
+					orderData.put("orderId", salesOrderid);
+					orderData.put("sd_id", sdId);
+					requestData.put("app_act", "rst.trade.logistics.get");
+					String orderDataStr = mapper.writeValueAsString(orderData);
+					requestData.put("info", orderDataStr);
+					String result = HttpClient431Util.doPost(requestData, url);
+					result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+					logger.info("拉取订单号为:" + order.getSalesOrderid() + "的订单,rst返回信息:" + result);
+					JSONObject jsonObject = JSONObject.fromObject(result);
+					String msg = jsonObject.getString("msg");
+					logger.info("---------"+msg+"---------");
+					if ("seccess".equals(msg)) {
+						String salesPostFirm = jsonObject.getString("salesPostFirm");
+						String salesPostNum = jsonObject.getString("salesPostNum");
+						order.setSalesPostFirm(salesPostFirm);
+						order.setSalesPostNum(salesPostNum);
+						probationShopOrderService.updateWateroPFOrder(order);
+					}
+				}
+			}
+		}catch (Exception e){
+			logger.error("拉取订单异常",e.getMessage());
+		}finally {
+			lock.unlock();
+		}
+		logger.info("---------------- 根据订单号拉取物流信息结束 ---------------");
+	}
+
+
 	/**
 	 * 订阅消息
 	 */

文件差异内容过多而无法显示
+ 3 - 0
wateroPF-wechat-web/src/main/resources/platform.properties