Ver código fonte

添加了前台查询订单的接口和推送百胜的接口

liuzhiwei 7 anos atrás
pai
commit
a7ee1945d0

+ 24 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentOrder.java

@@ -1,6 +1,10 @@
 package com.iamberry.wechat.core.entity.agentInfo;
 
+import com.iamberry.wechat.core.entity.PageBean;
+
+import java.util.ArrayList;
 import java.util.Date;
+import java.util.List;
 
 /**
  * 代理订货记录类
@@ -28,6 +32,26 @@ public class AgentOrder implements java.io.Serializable{
 
     private String agentOrderItemJson;  //订单项
 
+    private PageBean page;			    //分页
+
+    private List<AgentOrderItem> itemList = new ArrayList<AgentOrderItem>();    //订单项集合
+
+    public PageBean getPage() {
+        return page;
+    }
+
+    public void setPage(PageBean page) {
+        this.page = page;
+    }
+
+    public List<AgentOrderItem> getItemList() {
+        return itemList;
+    }
+
+    public void setItemList(List<AgentOrderItem> itemList) {
+        this.itemList = itemList;
+    }
+
     public String getAgentOrderid() {
         return agentOrderid;
     }

+ 9 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentOrderItem.java

@@ -22,9 +22,18 @@ public class AgentOrderItem implements java.io.Serializable{
     private Integer itemProductDiscount;    //商品优惠价
     private Integer itemProductPrice;       //商品原价
     private String itemProductPic;          //介绍图
+    private String itemProductSKU;          //产品sku
 
     private Integer productRentType;        //销售类型
 
+    public String getItemProductSKU() {
+        return itemProductSKU;
+    }
+
+    public void setItemProductSKU(String itemProductSKU) {
+        this.itemProductSKU = itemProductSKU;
+    }
+
     public Integer getItemId() {
         return itemId;
     }

+ 9 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/agentInfo/AgentTooth.java

@@ -17,6 +17,15 @@ public class AgentTooth implements java.io.Serializable{
     private Date agentCreateDate;   //创建时间
     private Integer agentStatus;    //线下状态
     private String agentOpenid;     //微信openid
+    private String agentHead;       //头像
+
+    public String getAgentHead() {
+        return agentHead;
+    }
+
+    public void setAgentHead(String agentHead) {
+        this.agentHead = agentHead;
+    }
 
     public Integer getAgentId() {
         return agentId;

+ 7 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/agentInfo/AgentPurchaseOrderService.java

@@ -25,6 +25,13 @@ public interface AgentPurchaseOrderService {
      */
     List<AgentOrderItem> listAgentOrderItemByOrderId(String orderId);
 
+    /**
+     * 查询代理商订单信息,可分页
+     * @param agentOrder
+     * @return
+     */
+    List<AgentOrder> listAgentOrder(AgentOrder agentOrder);
+
 }
 
 

+ 8 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/mq/EfastOrderService.java

@@ -38,6 +38,14 @@ public interface EfastOrderService {
 	 * @return
 	 */
 	public boolean addOrderInfoToEfast(MQMessage message) throws Exception;
+
+	/**
+	 *
+	 * @param message
+	 * @return
+	 * @throws Exception
+	 */
+	boolean addAgentOrderToEfast(MQMessage message) throws Exception;
 	
 	/**
 	 * 我们商城订单系统发货后,推送至百胜的订单池<pre>

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/agentInfo/AgentPurchaseOrderServiceImpl.java

@@ -105,4 +105,9 @@ public class AgentPurchaseOrderServiceImpl implements AgentPurchaseOrderService
         agentOrderItem.setAgentOrderid(orderId);
         return agentPurchaseOrderMapper.listAgentOrderItem(agentOrderItem);
     }
+
+    @Override
+    public List<AgentOrder> listAgentOrder(AgentOrder agentOrder) {
+        return agentPurchaseOrderMapper.listAgentOrder(agentOrder);
+    }
 }

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AgentPurchaseOrderMapper.java

@@ -31,4 +31,11 @@ public interface AgentPurchaseOrderMapper {
      */
     List<AgentOrderItem> listAgentOrderItem(AgentOrderItem agentOrderItem);
 
+    /**
+     * 查询代理商订单信息,可分页
+     * @param agentOrder
+     * @return
+     */
+    List<AgentOrder> listAgentOrder(AgentOrder agentOrder);
+
 }

+ 4 - 2
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/agentInfoMapper.xml

@@ -158,9 +158,11 @@
     <!-- 查询代理商配置金额 -->
     <select id="getAgentTooth" parameterType="AgentTooth" resultType="AgentTooth">
         SELECT
-        <include refid="agentInfo"/>
+          <include refid="agentInfo"/>,
+          user_head agentHead
         FROM
-        tb_iamberry_agent_agentinfo
+          tb_iamberry_agent_agentinfo
+        LEFT JOIN tb_iamberry_user_userinfo ON agent_openid = user_openid
         <where>
             <if test="agentOpenid !=null and agentOpenid !=''">
                 agent_openid = #{agentOpenid}

+ 76 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/agentPurchaseOrderMapper.xml

@@ -50,4 +50,80 @@
             agent_orderid = #{agentOrderid}
     </select>
 
+    <!-- 查询代理商订单信息,可分页 -->
+    <select id="listAgentOrder" parameterType="AgentOrder" resultMap="agentOrderMap">
+      select
+        agent_orderid,
+        agent_id,
+        agent_yet_amount,
+        agent_amount,
+        agent_create_date,
+        agent_post_num,
+        agent_post_firm,
+        agent_status,
+        agent_send_date,
+        agent_address_info,
+        agent_address_postnum,
+        agent_address_tel,
+        agent_address_name,
+        agent_admin_remark,
+        agent_transaction_id,
+        agent_transaction_date
+      from
+        tb_iamberry_agent_order
+      <where>
+          <if test="agentOrderid != null and agentOrderid != ''">
+              agent_orderid = #{agentOrderid}
+          </if>
+      </where>
+        ORDER BY agent_create_date DESC
+        <if test="page!=null and page.pageSize>0 ">
+            LIMIT ${page.recordBegin},${page.pageSize}
+        </if>
+    </select>
+
+    <resultMap type="com.iamberry.wechat.core.entity.agentInfo.AgentOrder" id="agentOrderMap">
+        <id column="agent_orderid" property="agentOrderid"/>
+        <result column="agent_id" property="agentId"/>
+        <result column="agent_yet_amount" property="agentYetAmount"/>
+        <result column="agent_amount" property="agentAmount"/>
+        <result column="agent_create_date" property="agentCreateDate"/>
+        <result column="agent_post_num" property="agentPostNum"/>
+        <result column="agent_post_firm" property="agentPostFirm"/>
+        <result column="agent_status" property="agentStatus"/>
+        <result column="agent_send_date" property="agentSendDate"/>
+        <result column="agent_address_info" property="agentAddressInfo"/>
+        <result column="agent_address_postnum" property="agentAddressPostnum"/>
+        <result column="agent_address_tel" property="agentAddressTel"/>
+        <result column="agent_address_name" property="agentAddressName"/>
+        <result column="agent_admin_remark" property="agentAdminRemark"/>
+        <result column="agent_transaction_id" property="agentTransactionId"/>
+        <result column="agent_transaction_date" property="agentTransactionDate"/>
+        <collection property="itemList" column="agent_orderid" ofType="com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem" select="listAgentItem"/>
+    </resultMap>
+
+    <select id="listAgentItem" parameterType="String" resultType="AgentOrderItem">
+        SELECT
+            i.item_id itemId,
+            i.agent_orderid agentOrderid,
+            i.product_id productId,
+            i.color_id colorId,
+            i.product_type productType,
+            i.product_rent_type productRentType,
+            i.item_num itemNum,
+            i.item_total itemTotal,
+            i.item_create_date itemCreateDate,
+            i.item_product_name itemProductName,
+            i.item_color_name itemColorName,
+            i.item_product_discount itemProductDiscount,
+            i.item_product_price itemProductPrice,
+            i.item_product_pic  itemProductPic,
+            c.color_69code itemProductSKU
+        FROM
+            tb_iamberry_agent_order_item i
+        LEFT JOIN tb_iamberry_product_color c ON i.color_id = c.color_id
+        WHERE
+          agent_orderid = #{agentOrderid}
+    </select>
+
 </mapper>

+ 205 - 158
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java

@@ -8,6 +8,9 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
+import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
+import com.iamberry.wechat.service.mapper.AgentPurchaseOrderMapper;
 import net.sf.json.JSONObject;
 
 import org.apache.commons.lang3.StringEscapeUtils;
@@ -51,6 +54,8 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 
 	@Autowired
 	private ProductColorService productColorService;
+	@Autowired
+	private AgentPurchaseOrderMapper agentPurchaseOrderMapper;
 
 	@Override
 	public boolean selectEfastSendOrderInfo(MQMessage message) {
@@ -155,9 +160,6 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 
 		List<OrderItem> items = adminOrderService.getShopOrderItemByOrderId(order.getSalesOrderid());
 
-		//获取当前水机产品类型
-		ShopSystemRule rule = adminOrderService.getReluByRid(237);
-
 		// request url
 		String url = NameUtils.getConfig("efast_base_url");
 
@@ -180,7 +182,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 						couponMoney = couponType.getCouponReduce();
 						break;
 					case 2:
-						couponMoney = order.getSalesAmount() * couponType.getCouponReduce() / 100;
+						couponMoney = order.getSalesAmount() * couponType.getCouponReduce()/100;
 						break;
 				}
 			}
@@ -198,7 +200,7 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 				avgMoney += item.getItemNum().intValue() * item.getItemProductDiscount();
 			}
 			//计算均摊比例
-			avgPercentage = 1 - couponMoney / avgMoney;
+			avgPercentage = 1 - couponMoney/avgMoney;
 		}
 
 		/**
@@ -207,19 +209,19 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 		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("timestamp",DateTimeUtil.format(new Date(),"yyyyMMddHHmmss"));
 		requestData.put("app_act", message.getServiceOtherMessage()); // "efast.trade.new.add"
 
 		/**
 		 * 订单基本信息
 		 */
-		String[] addressDesc = order.getSalesAddressInfo().split("-");
+		String [] addressDesc = order.getSalesAddressInfo().split("-");
 
 		//判断收货地址从而选择仓库
 		String sd_id = NameUtils.getConfig("sd_id");
 
 		String address = addressDesc[3];
-		if (addressDesc[3] != null) {
+		if (addressDesc[3]!=null) {
 			Pattern p = Pattern.compile("\\s*|\t|\r|\n");
 			Matcher m = p.matcher(addressDesc[3]);
 			if (m.find()) {
@@ -238,179 +240,224 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 			provinceName = "重庆";
 		}
 		Map<String, Object> orderData = new HashMap<String, Object>();
-		orderData.put("add_time", DateTimeUtil.format(order.getSalesCreateDate()));        // 时间
-		orderData.put("address", address);                                                // 收货地址
-		orderData.put("city_name", addressDesc[1]);                                    // 城市
-		orderData.put("consignee", order.getSalesAddressName());                        // 收货人
-		orderData.put("district_name", addressDesc[2]);                                    // 区域
-		orderData.put("email", "");                                                        // email
-		orderData.put("goods_amount", (order.getSalesAmount() / 100.0));                    // 商品总价
-		//orderData.put("goods_count", items.size());                                        // 产品数量
-		orderData.put("mobile", order.getSalesAddressTel());                            // 手机号码
-		orderData.put("money_paid", (money / 100.0));                                        // 已付款
-		orderData.put("oid", order.getSalesOrderid());                                    // 订单号
-		orderData.put("order_amount", (money / 100.0));                                    // 应付款,应付款金额要与已付款金额相同
-
-		/**
-		 * 产品信息
-		 */
-		String[] productType = null;
-		if (rule != null && rule.getRuleDesc() != null) {
-			String type = rule.getRuleDesc().split(":")[1];
-			productType = type.split(",");
-		}
+		orderData.put("add_time", DateTimeUtil.format(order.getSalesCreateDate()));		// 时间
+		orderData.put("address", address);												// 收货地址
+		orderData.put("city_name", addressDesc[1]); 									// 城市
+		orderData.put("consignee", order.getSalesAddressName());						// 收货人
+		orderData.put("district_name", addressDesc[2]);									// 区域
+		orderData.put("email", "");														// email
+		orderData.put("goods_amount", (order.getSalesAmount()/100.0));					// 商品总价
+		orderData.put("goods_count", items.size());										// 产品数量
+		orderData.put("mobile", order.getSalesAddressTel());							// 手机号码
+		orderData.put("money_paid", (money/100.0));										// 已付款
+		orderData.put("oid", order.getSalesOrderid());									// 订单号
+		orderData.put("order_amount", (money/100.0));									// 应付款,应付款金额要与已付款金额相同
 
-		List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
-		List<Map<String, Object>> filterMap = new ArrayList<Map<String, Object>>();
-		boolean mapFlag = false;        //标识是否推送百胜
-		boolean filterFlag = false;        //标识是否推送百胜
-		int filterMoney = 0;                //除水机外的金额
-		int orderItem = 0;
-		int filterItem = 0;
 
 		/**
 		 * 产品信息
 		 */
+		List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
 		for (OrderItem item : items) {
 			Map<String, Object> orders1 = new HashMap<String, Object>();
-			orders1.put("goods_name", item.getItemProductName());                            // 产品名称
+			orders1.put("goods_name", item.getItemProductName());							// 产品名称
 			orders1.put("goods_number", item.getItemNum());									// 产品数量
-			orders1.put("goods_price", (item.getItemProductPrice() / 100.0));                    // 产品原价
-			orders1.put("outer_sku", item.getProduectRemark());                                // 产品SKU
-			orders1.put("payment_ft", (item.getItemProductDiscount() / 100.0 * avgPercentage * item.getItemNum()));                // 产品分摊价
-			orders1.put("discount",(item.getItemProductDiscount() / 100.0));
-			if (productType != null) {
-				boolean productFlag = false; //用来判断当前产品是否为水机
-				for (int i = 0; i < productType.length; i++) {
-					if (item.getItemProductType() == Integer.parseInt(productType[i])) {
-						mapFlag = true;
-						productFlag = true;
-					}
-				}
-				if (productFlag) {
-					for (int i = 0; i < item.getItemNum(); i++) {
-						orders1.put("goods_number", 1);
-						maps.add(orders1);
-					}
-				} else {
-					filterFlag = true;
-					filterMap.add(orders1);
-					filterItem += item.getItemNum();
-					filterMoney += item.getItemProductDiscount() / 100 * item.getItemNum();
-				}
-			} else {
-				maps.add(orders1);
-				mapFlag = true;
-			}
+			orders1.put("goods_price", (item.getItemProductPrice()/100.0));					// 产品原价
+			orders1.put("outer_sku", item.getProduectRemark());								// 产品SKU
+			orders1.put("payment_ft", (item.getItemProductDiscount()/100.0*avgPercentage*item.getItemNum()));				// 产品分摊价
+			maps.add(orders1);
 		}
 
-		//orderData.put("orders", maps);													// 订单产品
-		orderData.put("pay_name", "weixinpay");                                            // 支付方式
+		orderData.put("orders", maps);													// 订单产品
+		orderData.put("pay_name", "weixinpay");											// 支付方式
 		orderData.put("pay_time", DateTimeUtil.format(order.getSalesTransactionDate()));// 支付时间
-		orderData.put("postscript", order.getSalesUserRemark());                        // 买家留言
-		orderData.put("province_name", provinceName);                                    // 省份
-		orderData.put("sd_id", sd_id);                                                    // 对应 efast 店铺 id
-		orderData.put("shipping_fee", 0);                                                // 快递费
-		orderData.put("shipping_name", "yto");                                            // 快递公司代码
-		orderData.put("tel", "");                                            // 我司电话
-		orderData.put("to_buyer", "");                                                    // 商家备注
-		orderData.put("total_amount", (order.getSalesAmount() / 100.0));                    // 订单总额
-		orderData.put("user_name", order.getSalesOpenid());                            // 买家账户   百胜根据user_name来判断是否有重复,传openId是为了防止重复
-		orderData.put("zipcode", order.getSalesAddressPostnum());                        // 邮编
-
-		boolean returnFlag = true;
-		//推送水机产品订单
-		if (mapFlag) {
-			for (int j = 0; j < maps.size(); j++) {
-				Map<String, Object> map = maps.get(j);
-				List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>();
-				orderData.put("oid", order.getSalesOrderid() + j);
-				orderData.put("user_name", order.getSalesOpenid() + j);
-				orderData.put("goods_amount", map.get("goods_price"));
-				orderData.put("money_paid", map.get("discount"));
-				orderData.put("order_amount", map.get("discount"));
-				orderData.put("total_amount", map.get("discount"));
-				orderData.put("goods_count", map.get("goods_number"));
-				mapList.add(map);
-				orderData.put("orders", mapList);
-				com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
-				String orderDataStr = null;
-				try {
-					orderDataStr = mapper.writeValueAsString(orderData);
-				} catch (JsonProcessingException e2) {
-					e2.printStackTrace();
-				}
+		orderData.put("postscript", order.getSalesUserRemark());						// 买家留言
+		orderData.put("province_name", provinceName);									// 省份
+		orderData.put("sd_id", sd_id);													// 对应 efast 店铺 id
+		orderData.put("shipping_fee", 0);												// 快递费
+		orderData.put("shipping_name", "yto");											// 快递公司代码
+		orderData.put("tel", "");											// 我司电话
+		orderData.put("to_buyer", "");													// 商家备注
+		orderData.put("total_amount", (order.getSalesAmount()/100.0));					// 订单总额
+		orderData.put("user_name", order.getSalesOpenid());							// 买家账户   百胜根据user_name来判断是否有重复,传openId是为了防止重复
+		orderData.put("zipcode", order.getSalesAddressPostnum());						// 邮编
 
-				requestData.put("info", orderDataStr);
 
-				try {
-					String result = HttpClient431Util.doGet(requestData, url);
-					result = StringEscapeUtils.unescapeJava(result); // unicode 编码
-					logger.info("add-推送订单号为:" + order.getSalesOrderid() + j + "的订单,百胜返回信息:" + result);
-					// parse JSON String to Object
-					JSONObject jsonObject = JSONObject.fromObject(result);
-					JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
-					String oderSn = respData.getString("oder_sn");
-					if (oderSn != null) {
-						String msg = respData.getString("msg");
-						if (!"success".equals(msg)) {
-							returnFlag = false;
-						}
-					}
-					logger.error(this, "add-推送订单号为:" + order.getSalesOrderid() + j + "的订单,百胜返回信息:" + result);
-					//throw new Exception(respData.getString("msg"));
-				} catch (Exception e) {
-					//e.printStackTrace();
+		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
+		String orderDataStr = null;;
+		try {
+			orderDataStr = mapper.writeValueAsString(orderData);
+		} catch (JsonProcessingException e2) {
+			e2.printStackTrace();
+		}
+
+		requestData.put("info", orderDataStr);
+
+		try {
+			String result = HttpClient431Util.doGet(requestData, url);
+			result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+			logger.info("add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
+			// parse JSON String to Object
+			JSONObject jsonObject = JSONObject.fromObject(result);
+			JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+			String oderSn = respData.getString("oder_sn");
+			if (oderSn != null) {
+				String msg = respData.getString("msg");
+				if ("success".equals(msg)) {
+					return true;
 				}
 			}
+			logger.error(this, "add-推送订单号为:" + order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
+			throw new Exception(respData.getString("msg"));
+		} catch (Exception e) {
+			throw e;
+		}
+	}
+
+	@Override
+	public boolean addAgentOrderToEfast(MQMessage message) throws Exception {
+		// orderInfo
+		AgentOrder agentOrder = new AgentOrder();
+		agentOrder.setAgentOrderid(message.getServiceToMessage());
+		//获取订单集合
+		List<AgentOrder> agentList = agentPurchaseOrderMapper.listAgentOrder(agentOrder);
+		if (agentList == null || agentList.size() == 0) {
+			return false;
+		}
+		agentOrder = agentList.get(0);
+		//获取订单项列表
+		List<AgentOrderItem> items = agentOrder.getItemList();
+
+		// request url
+		String url = NameUtils.getConfig("efast_base_url");
+
+		// set Requeset Data
+		Map<String, String> requestData = new HashMap<String, String>();
+
+		int money = agentOrder.getAgentYetAmount();
+
+		double couponMoney = 0;
+		double avgPercentage = 0.0;  //均摊比例
+
+		//计算分摊金额比例
+		if (items != null && items.size() > 0) {
+			double avgMoney = 0;
+			for (AgentOrderItem item : items) {
+				avgMoney += item.getItemNum().intValue() * item.getItemProductDiscount();
+			}
+			//计算均摊比例
+			avgPercentage = 1 - couponMoney/avgMoney;
 		}
 
-		//推送除了水机以外的产品订单
-		if (filterFlag) {
-			orderData.put("oid", "ZP" + order.getSalesOrderid());
-			orderData.put("user_name", "ZP" + order.getSalesOpenid());
-			orderData.put("goods_amount", filterMoney);
-			orderData.put("money_paid", filterMoney);
-			orderData.put("order_amount", filterMoney);
-			orderData.put("total_amount", filterMoney);
-			orderData.put("goods_count", filterItem);
-			orderData.put("orders", filterMap);                                                //非水机等订单产品
-			com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
-			String orderDataStr = null;
-			try {
-				orderDataStr = mapper.writeValueAsString(orderData);
-			} catch (JsonProcessingException e2) {
-				e2.printStackTrace();
+		/**
+		 * 系统级参数
+		 */
+		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"
+
+		/**
+		 * 订单基本信息
+		 */
+		String [] addressDesc = agentOrder.getAgentAddressInfo().split("-");
+
+		//判断收货地址从而选择仓库
+		String sd_id = NameUtils.getConfig("sd_id");
+
+		String address = addressDesc[3];
+		if (addressDesc[3]!=null) {
+			Pattern p = Pattern.compile("\\s*|\t|\r|\n");
+			Matcher m = p.matcher(addressDesc[3]);
+			if (m.find()) {
+				address = m.replaceAll("");
 			}
+		}
 
-			requestData.put("info", orderDataStr);
-
-			try {
-				String result = HttpClient431Util.doGet(requestData, url);
-				result = StringEscapeUtils.unescapeJava(result); // unicode 编码
-				logger.info("add-推送订单号为:" + "ZP" +  order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
-				// parse JSON String to Object
-				JSONObject jsonObject = JSONObject.fromObject(result);
-				JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
-				String oderSn = respData.getString("oder_sn");
-				if (oderSn != null) {
-					String msg = respData.getString("msg");
-					if (!"success".equals(msg)) {
-						returnFlag = false;
-					}
+		String provinceName = addressDesc[0];
+		if (addressDesc[0].indexOf("北京") != -1) {
+			provinceName = "北京";
+		} else if (addressDesc[0].indexOf("上海") != -1) {
+			provinceName = "上海";
+		} else if (addressDesc[0].indexOf("天津") != -1) {
+			provinceName = "天津";
+		} else if (addressDesc[0].indexOf("重庆") != -1) {
+			provinceName = "重庆";
+		}
+		Map<String, Object> orderData = new HashMap<String, Object>();
+		orderData.put("add_time", DateTimeUtil.format(agentOrder.getAgentCreateDate()));		// 时间
+		orderData.put("address", address);												// 收货地址
+		orderData.put("city_name", addressDesc[1]); 									// 城市
+		orderData.put("consignee", agentOrder.getAgentAddressName());					// 收货人
+		orderData.put("district_name", addressDesc[2]);									// 区域
+		orderData.put("email", "");														// email
+		orderData.put("goods_amount", (agentOrder.getAgentAmount()/100.0));				// 商品总价
+		orderData.put("goods_count", items.size());										// 产品数量
+		orderData.put("mobile", agentOrder.getAgentAddressTel());						// 手机号码
+		orderData.put("money_paid", (money/100.0));										// 已付款
+		orderData.put("oid", agentOrder.getAgentOrderid());								// 订单号
+		orderData.put("order_amount", (money/100.0));									// 应付款,应付款金额要与已付款金额相同
+
+		/**
+		 * 产品信息
+		 */
+		List<Map<String, Object>> maps = new ArrayList<Map<String, Object>>();
+		for (AgentOrderItem item : items) {
+			Map<String, Object> orders1 = new HashMap<String, Object>();
+			orders1.put("goods_name", item.getItemProductName());							// 产品名称
+			orders1.put("goods_number", item.getItemNum());									// 产品数量
+			orders1.put("goods_price", (item.getItemProductPrice()/100.0));					// 产品原价
+			orders1.put("outer_sku", item.getItemProductSKU());								// 产品SKU
+			orders1.put("payment_ft", (item.getItemProductDiscount()/100.0*avgPercentage*item.getItemNum()));				// 产品分摊价
+			maps.add(orders1);
+		}
+
+		orderData.put("orders", maps);													// 订单产品
+		orderData.put("pay_name", "weixinpay");											// 支付方式
+		orderData.put("pay_time", DateTimeUtil.format(agentOrder.getAgentTransactionDate()));// 支付时间
+		orderData.put("postscript", "");						// 买家留言
+		orderData.put("province_name", provinceName);									// 省份
+		orderData.put("sd_id", sd_id);													// 对应 efast 店铺 id
+		orderData.put("shipping_fee", 0);												// 快递费
+		orderData.put("shipping_name", "yto");											// 快递公司代码
+		orderData.put("tel", "");														// 我司电话
+		orderData.put("to_buyer", "");													// 商家备注
+		orderData.put("total_amount", (agentOrder.getAgentAmount()/100.0));				// 订单总额
+		orderData.put("user_name", agentOrder.getAgentId());							// 买家账户   百胜根据user_name来判断是否有重复,传openId是为了防止重复
+		orderData.put("zipcode", agentOrder.getAgentAddressPostnum());					// 邮编
+
+
+		com.fasterxml.jackson.databind.ObjectMapper mapper = new ObjectMapper();
+		String orderDataStr = null;;
+		try {
+			orderDataStr = mapper.writeValueAsString(orderData);
+		} catch (JsonProcessingException e2) {
+			e2.printStackTrace();
+		}
+
+		requestData.put("info", orderDataStr);
+
+		try {
+			String result = HttpClient431Util.doGet(requestData, url);
+			result = StringEscapeUtils.unescapeJava(result); // unicode 编码
+			logger.info("add-推送订单号为:" + agentOrder.getAgentOrderid() + "的订单,百胜返回信息:" + result);
+			// parse JSON String to Object
+			JSONObject jsonObject = JSONObject.fromObject(result);
+			JSONObject respData = JSONObject.fromObject(jsonObject.get("resp_data"));
+			String oderSn = respData.getString("oder_sn");
+			if (oderSn != null) {
+				String msg = respData.getString("msg");
+				if ("success".equals(msg)) {
+					return true;
 				}
-				logger.error(this, "add-推送订单号为:" + "ZP" +  order.getSalesOrderid() + "的订单,百胜返回信息:" + result);
-				//throw new Exception(respData.getString("msg"));
-			} catch (Exception e) {
-				//e.printStackTrace();
 			}
+			logger.error(this, "add-推送订单号为:" + agentOrder.getAgentOrderid() + "的订单,百胜返回信息:" + result);
+			throw new Exception(respData.getString("msg"));
+		} catch (Exception e) {
+			throw e;
 		}
-		return returnFlag;
 	}
-	
-	
-	
-	
 
 	@Override
 	public boolean addProbationOrderToEfast(MQMessage message) throws Exception {

+ 40 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/agentInfo/AgentOrderHandler.java

@@ -1,11 +1,14 @@
 package com.iamberry.wechat.handles.agentInfo;
 
+import com.iamberry.wechat.core.entity.PageBean;
 import com.iamberry.wechat.core.entity.ResultMsg;
+import com.iamberry.wechat.core.entity.WechatUtils;
 import com.iamberry.wechat.core.entity.agentInfo.AgentConfig;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrder;
 import com.iamberry.wechat.core.entity.agentInfo.AgentOrderItem;
 import com.iamberry.wechat.core.entity.agentInfo.AgentTooth;
 import com.iamberry.wechat.core.entity.cart.SendPayDto;
+import com.iamberry.wechat.core.entity.member.Member;
 import com.iamberry.wechat.core.entity.pay.PayResult;
 import com.iamberry.wechat.core.entity.product.Product;
 import com.iamberry.wechat.face.agentInfo.AgentInfoService;
@@ -15,14 +18,17 @@ import com.iamberry.wechat.face.pay.PayService;
 import com.iamberry.wechat.tools.NameUtils;
 import com.iamberry.wechat.tools.OrderNOUtil;
 import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.utils.Result;
 import net.sf.json.JSONArray;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -242,5 +248,38 @@ public class AgentOrderHandler {
         return true;
     }
 
-
+    @ResponseBody
+    @RequestMapping("/select_agent_order_list")
+    public ResultMsg selectAgentOrderList(HttpServletRequest request,
+                                          @RequestParam(value= "pageSize",defaultValue= "10" ,required=false) Integer pageSize,
+                                          @RequestParam(value = "pageNO", defaultValue = "1") Integer pageNO) throws Exception {
+        ResultMsg msg = new ResultMsg();
+        Map<String,Object> map = new HashMap<String,Object>();
+        Member member =  WechatUtils.getUserBySession(request);
+        AgentTooth agent = new AgentTooth();
+        agent.setAgentOpenid(member.getUserOpenid());
+        //获取代理商信息
+        agent = agentInfoService.getAgentTooth(agent);
+        if (agent == null) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("您不是代理商,没有采购订单!");
+            return msg;
+        }
+        AgentOrder agentOrder = new AgentOrder();
+        agentOrder.setAgentId(agent.getAgentId());
+        PageBean page = new PageBean();
+        page.setPageNumber(pageNO);
+        page.setPageSize(pageSize);
+        page.initRecordBegin();
+        agentOrder.setPage(page);
+        //获取订单集合
+        List<AgentOrder> agentList = agentPurchaseOrderService.listAgentOrder(agentOrder);
+        map.put("agent",agent);
+        map.put("agentList",agentList);
+        msg.setData(map);
+        msg.setResultCode(ResultInfo.SUCCESSCODE);
+        msg.setStatus(true);
+        return msg;
+    }
 }