Przeglądaj źródła

Merge branch 'master' of http://git.iamberry.com/liuzhiwei/iamberry-common-tooth

# Conflicts:
#	tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml
#	tooth-wechat-web/src/main/resources/jdbc.properties
liujiankang 7 lat temu
rodzic
commit
1aecb9fef4
22 zmienionych plików z 1069 dodań i 582 usunięć
  1. 10 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java
  2. 10 3
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/order/OrderItem.java
  3. 9 0
      tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/product/ProductColor.java
  4. 3 2
      tooth-common-core/tooth-common-core.iml
  5. 2 1
      tooth-common-tool/src/main/java/com/iamberry/app/tool/des/MD5.java
  6. 7 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/order/AdminOrderService.java
  7. 6 0
      tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/porduct/ProductService.java
  8. 6 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AdminOrderMapper.java
  9. 5 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProductMapper.java
  10. 0 42
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml
  11. 25 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/productMapper.xml
  12. 9 1
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java
  13. 8 1
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/AdminOrderDao.java
  14. 11 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java
  15. 7 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/ProductServiceImpl.java
  16. 6 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/dao/ProductDao.java
  17. 7 0
      tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/dao/impl/ProductDAOImpl.java
  18. 0 524
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/polyapi/ExternalDockPolyApi.java
  19. 925 0
      tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/polyapi/ExternalDockPolyApiHandler.java
  20. 6 6
      tooth-wechat-web/src/main/resources/jdbc.properties
  21. 5 2
      tooth-wechat-web/src/main/resources/platform.properties
  22. 2 0
      tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/order/order.jsp

+ 10 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/order/Order.java

@@ -63,6 +63,8 @@ public class Order implements java.io.Serializable{
 	
 	private Date beginDate;	//开始时间
 	private Date endDate;		//结束时间
+	private Integer selectDateType; 		//按照什么时间查询   订单修改时间=1,订单创建时间=2
+
 	private int deadline;		//返利期限,以秒为单位,必须大于此时间才能返利
 	private Integer placeId;		//线下代理信息表id,奖励积分时要用到
 	private Integer itemSum;			//商品总数,定时任务按订单商品数量总数量奖励积分和金额
@@ -394,4 +396,12 @@ public class Order implements java.io.Serializable{
 	public void setUserResource(String userResource) {
 		this.userResource = userResource;
 	}
+
+	public Integer getSelectDateType() {
+		return selectDateType;
+	}
+
+	public void setSelectDateType(Integer selectDateType) {
+		this.selectDateType = selectDateType;
+	}
 }

+ 10 - 3
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/order/OrderItem.java

@@ -43,9 +43,10 @@ public class OrderItem implements Serializable {
 	//			5:青色	6:蓝色	7:紫色	8:白色
 	
 	private String produectRemark;		//产品备注,存放百胜商品69码的
-	
 
+	private String colorPolyCode;		//菠萝派对应的商品编号
 	
+
 	public Integer getItemColorId() {
 		return itemColorId;
 	}
@@ -170,6 +171,12 @@ public class OrderItem implements Serializable {
 	public void setProductStatus(Integer productStatus) {
 		this.productStatus = productStatus;
 	}
-	
-	
+
+	public String getColorPolyCode() {
+		return colorPolyCode;
+	}
+
+	public void setColorPolyCode(String colorPolyCode) {
+		this.colorPolyCode = colorPolyCode;
+	}
 }

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

@@ -28,6 +28,7 @@ public class ProductColor implements java.io.Serializable{
 	
 	private Integer colorPrice;			//产品市场价
 	private String color69Code;			//产品69码
+	private String colorPolyCode;		//菠萝派对应的商品编号
 	@DateTimeFormat(pattern="yyyy-MM-dd")
 	@JsonFormat(pattern="yyyy-MM-dd",timezone = "GMT+8")
 	private Date colorCretaeTime;		//创建时间
@@ -179,6 +180,14 @@ public class ProductColor implements java.io.Serializable{
 		this.colorStatus = colorStatus;
 	}
 
+	public String getColorPolyCode() {
+		return colorPolyCode;
+	}
+
+	public void setColorPolyCode(String colorPolyCode) {
+		this.colorPolyCode = colorPolyCode;
+	}
+
 	@Override
 	public String toString() {
 		return "ProductColor [colorId=" + colorId + ", colorProductId="

+ 3 - 2
tooth-common-core/tooth-common-core.iml

@@ -5,7 +5,7 @@
       <configuration />
     </facet>
   </component>
-  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7">
+  <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_7" inherit-compiler-output="false">
     <output url="file://$MODULE_DIR$/target/classes" />
     <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
@@ -13,9 +13,10 @@
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
       <excludeFolder url="file://$MODULE_DIR$/target" />
     </content>
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
     <orderEntry type="sourceFolder" forTests="false" />
     <orderEntry type="module" module-name="tooth-common-tool" />
+    <orderEntry type="module" module-name="tooth-common-tool" />
     <orderEntry type="library" name="Maven: com.auth0:java-jwt:2.2.1" level="project" />
     <orderEntry type="library" name="Maven: com.github.pagehelper:pagehelper:5.1.2" level="project" />
     <orderEntry type="library" name="Maven: com.github.jsqlparser:jsqlparser:1.0" level="project" />

+ 2 - 1
tooth-common-tool/src/main/java/com/iamberry/app/tool/des/MD5.java

@@ -210,6 +210,7 @@ public class MD5 {
 	public static String GetMD5Code(String strObj) throws Exception{
 		MessageDigest md = MessageDigest.getInstance(KEY_MD5);
 		// md.digest() 该函数返回值为存放哈希值结果的byte数组
-		return byteToString(md.digest(strObj.getBytes()));
+		return byteToString(md.digest(strObj.getBytes("UTF-8")));
 	}
+
 }

+ 7 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/order/AdminOrderService.java

@@ -24,10 +24,17 @@ public interface AdminOrderService {
 	//后台订单列表查询
 	public List<Order> selectShopOrder(Order order);
 
+	//菠萝派查询单个订单
+	public Order selectShopOrderByPolaById(String orderId);
 	//菠萝派查询订单
 	public List<Order> selectShopOrderByPola(Order order);
 	//菠萝派根据订单id查询订单项
 	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId);
+	//菠萝派查询订单
+	public Integer selectOrderNum(Order order);
+	//菠萝派修改订单
+	public Integer updateOrderByPola(Order order);
+
 
 	//根据页面条件查询订单列表
 	public List<Order> selectShopOrderByOrderId(Order order);

+ 6 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/porduct/ProductService.java

@@ -23,6 +23,12 @@ public interface ProductService {
 	 * @return
 	 */
 	public List<Product> selectAllProductInfo(Product product);
+
+
+	/**
+	 * 获取所有商品数量
+	 */
+	public Integer selectAllProductNum(Product product);
 	
 	/**
 	 * 根据productId 查询单个产品

+ 6 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/AdminOrderMapper.java

@@ -29,10 +29,16 @@ public interface AdminOrderMapper {
 	//根据页面条件查询订单列表
 	public List<Order> selectShopOrderByOrderId(Order order);
 
+	//菠萝派查询单个订单
+	public Order selectShopOrderByPolaById(String orderId);
 	//菠萝派查询订单
 	public List<Order> selectShopOrderByPola(Order order);
 	//菠萝派根据订单id查询订单项
 	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId);
+	//菠萝派查询订单
+	public Integer selectOrderNum(Order order);
+	//菠萝派修改订单
+	public Integer updateOrderByPola(Order order);
 
 	//根据订单id查询订单
 	public Order getShopOrderByOrderId(String orderId);

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ProductMapper.java

@@ -20,6 +20,11 @@ public interface ProductMapper {
 	 * @return
 	 */
 	public List<Product> selectAllProductInfo(Product product);
+
+	/**
+	 * 获取所有商品数量
+	 */
+	public Integer selectAllProductNum(Product product);
 	
 	/**
 	 * 查所有产品的id和name 用来创建产品的下拉框

+ 0 - 42
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml

@@ -762,46 +762,4 @@ PUBLIC
 		ORDER BY ITEM_ID DESC
 	</select>
 
-	<select id="selectNumberBacklog" resultType="NumberBacklogDto">
-		SELECT
-			(CASE WHEN a.sendTheGoods is null THEN 0 ELSE a.sendTheGoods END) as sendTheGoods,
-			(CASE WHEN b.returnGoods is null THEN 0 ELSE b.returnGoods END) as returnGoods,
-			(CASE WHEN c.returnRefund is null THEN 0 ELSE c.returnRefund END) as returnRefund,
-			(CASE WHEN d.exchange is null THEN 0 ELSE d.exchange END) as exchange
-			FROM
-				(
-					(
-						SELECT
-							sum(1) AS sendTheGoods
-						FROM
-							tb_iamberry_shop_sales_order
-						WHERE
-							sales_status = 2
-					) AS a
-					CROSS JOIN (
-						SELECT
-							sum(1) AS returnGoods
-						FROM
-							tb_iamberry_shop_sales_order
-						WHERE
-							sales_status = 3
-					) AS b
-					CROSS JOIN (
-						SELECT
-							sum(1) AS returnRefund
-						FROM
-							tb_iamberry_shop_sales_order
-						WHERE
-							sales_status = 6
-					) AS c
-					CROSS JOIN (
-						SELECT
-							sum(1) AS exchange
-						FROM
-							tb_iamberry_shop_sales_order
-						WHERE
-							sales_status = 11
-					) AS d
-				)
-	</select>
 </mapper>

+ 25 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/productMapper.xml

@@ -32,6 +32,29 @@
 		TYPE_STATE typeState
 	</sql>
 
+	<!-- 查询商品数量 -->
+	<select id="selectAllProductNum" resultType="Integer" parameterType="product">
+		SELECT
+			COUNT(PRODUCT_ID)
+		FROM TB_IAMBERRY_PRODUCT_INFO
+		JOIN TB_IAMBERRY_PRODUCT_TYPE ON PRODUCT_TYPE = TYPE_ID
+		<where>
+			<if test="productName != null and productName != ''">
+				PRODUCT_NAME LIKE CONCAT('%',#{productName},'%')
+			</if>
+			<if test="productType != null and productType.typeId !=null and productType.typeId !=''">
+				and PRODUCT_TYPE=#{productType.typeId}
+			</if>
+			<if test="beginDate != null and beginDate != ''">
+				<![CDATA[AND DATE_FORMAT(PRODUCT_CREATE_DATE, '%Y-%m-%d') >= DATE_FORMAT(#{beginDate},'%Y-%m-%d')]]>
+			</if>
+			<if test="endDate != null and endDate != ''">
+				<![CDATA[AND DATE_FORMAT(PRODUCT_CREATE_DATE, '%Y-%m-%d') <= DATE_FORMAT(#{endDate},'%Y-%m-%d')]]>
+			</if>
+		</where>
+		ORDER BY product_sort_num
+	</select>
+
 	<!-- 查询所有的产品并分页 -->
 	<select id="selectAllProductInfo" resultMap="productColorMap" parameterType="product">
 		SELECT
@@ -47,6 +70,7 @@
 			PRODUCT_SORT_NUM,
 			PRODUCT_COLOR_DES,
 			PRODUCT_REMARK,
+			PRODUCT_DISCOUNT,
 			PRODUCT_RENT_TYPE,
 			TYPE_ID,
 			TYPE_NAME 
@@ -89,6 +113,7 @@
 		<result column="PRODUCT_INTRODUCE_IMG" property="productIntroduceImg"/>
 		<result column="PRODUCT_PARAMETER_IMG" property="productParameterImg"/>
 		<result column="PRODUCT_REMARK" property="productRemark"/>
+		<result column="PRODUCT_DISCOUNT" property="productDiscount"/>
 		<result column="PRODUCT_TYPE" property="productType.typeId"/>
 		<result column="PRODUCT_RENT_TYPE" property="productRentType"/>
 		<collection property="colorList" column="PRODUCT_ID" ofType="ProductColor" select="selectAllColorInfo"/>

+ 9 - 1
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java

@@ -95,6 +95,9 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		return this.adminOrderDao.selectShopOrder(order);
 	}
 
+	public Order selectShopOrderByPolaById(String orderId){
+		return this.adminOrderDao.selectShopOrderByPolaById(orderId);
+	}
 	public List<Order> selectShopOrderByPola(Order order) {
 		order.getPage().initRecordBegin();
 		return this.adminOrderDao.selectShopOrderByPola(order);
@@ -102,7 +105,12 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId) {
 		return this.adminOrderDao.getShopOrderItemByOrderIdToPola(orderId);
 	}
-
+	public Integer selectOrderNum(Order order){
+		return this.adminOrderDao.selectOrderNum(order);
+	}
+	public Integer updateOrderByPola(Order order){
+		return this.adminOrderDao.updateOrderByPola(order);
+	}
 
 	public List<Order> selectShopOrderByOrderId(Order order) {
 		// TODO Auto-generated method stub

+ 8 - 1
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/AdminOrderDao.java

@@ -25,11 +25,18 @@ public interface AdminOrderDao {
 	//后台订单列表查询
 	public List<Order> selectShopOrder(Order order);
 
+	//菠萝派查询单个订单
+	public Order selectShopOrderByPolaById(String orderId);
 	//菠萝派查询订单
 	public List<Order> selectShopOrderByPola(Order order);
 	//菠萝派根据订单id查询订单项
 	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId);
-	
+	//菠萝派查询订单
+	public Integer selectOrderNum(Order order);
+	//菠萝派修改订单
+	public Integer updateOrderByPola(Order order);
+
+
 	//根据页面条件查询订单列表
 	public List<Order> selectShopOrderByOrderId(Order order);
 	

+ 11 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/impl/AdminOrderDaoImpl.java

@@ -42,6 +42,9 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 		return this.adminOrderMapper.selectShopOrder(order);
 	}
 
+	public Order selectShopOrderByPolaById(String orderId){
+		return this.adminOrderMapper.selectShopOrderByPolaById(orderId);
+	}
 	public List<Order> selectShopOrderByPola(Order order) {
 		order.getPage().initRecordBegin();
 		return this.adminOrderMapper.selectShopOrderByPola(order);
@@ -51,6 +54,14 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 		return this.adminOrderMapper.getShopOrderItemByOrderIdToPola(orderId);
 	}
 
+	public Integer selectOrderNum(Order order){
+		return this.adminOrderMapper.selectOrderNum(order);
+	}
+
+	public Integer updateOrderByPola(Order order){
+		return this.adminOrderMapper.updateOrderByPola(order);
+	}
+
 	@Override
 	public List<Order> selectShopOrderByOrderId(Order order) {
 		// TODO Auto-generated method stub

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/ProductServiceImpl.java

@@ -54,6 +54,13 @@ public class ProductServiceImpl implements ProductService{
 		product.getPage().initRecordBegin();
 		return productDao.selectAllProductInfo(product);
 	}
+
+	/**
+	 * 获取所有商品数量
+	 */
+	public Integer selectAllProductNum(Product product){
+		return productDao.selectAllProductNum(product);
+	}
 	
 	/**
 	 * 根据productId 查询单个产品

+ 6 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/dao/ProductDao.java

@@ -19,6 +19,12 @@ public interface ProductDao {
 	 * @return
 	 */
 	public List<Product> selectAllProductInfo(Product product);
+
+
+	/**
+	 * 获取所有商品数量
+	 */
+	public Integer selectAllProductNum(Product product);
 	
 	/**
 	 * 根据productId 查询单个产品

+ 7 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/product/dao/impl/ProductDAOImpl.java

@@ -31,6 +31,13 @@ public class ProductDAOImpl implements ProductDao{
 	public List<Product> selectAllProductInfo(Product product){
 		return productMapper.selectAllProductInfo(product);
 	}
+
+	/**
+	 * 获取所有商品数量
+	 */
+	public Integer selectAllProductNum(Product product){
+		return productMapper.selectAllProductNum(product);
+	}
 	
 	/**
 	 * 根据productId 查询单个产品

+ 0 - 524
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/polyapi/ExternalDockPolyApi.java

@@ -1,524 +0,0 @@
-package com.iamberry.wechat.handles.polyapi;
-
-
-import com.alibaba.fastjson.JSON;
-import com.iamberry.app.tool.des.MD5;
-import com.iamberry.wechat.core.entity.coupon.CouponItem;
-import com.iamberry.wechat.core.entity.coupon.CouponType;
-import com.iamberry.wechat.core.entity.order.Order;
-import com.iamberry.wechat.core.entity.order.OrderItem;
-import com.iamberry.wechat.face.cart.CartService;
-import com.iamberry.wechat.face.order.AdminOrderService;
-import com.iamberry.wechat.filters.WechatFilter;
-import com.iamberry.wechat.tools.NameUtils;
-import com.iamberry.wechat.tools.SendMessageUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-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.ResponseBody;
-
-import javax.servlet.http.HttpServletRequest;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.*;
-
-/**
- * 对接菠萝派接口,用与回调订单
- */
-@Controller
-public class ExternalDockPolyApi {
-
-    private static Logger logger = LoggerFactory.getLogger(ExternalDockPolyApi.class);
-
-    @Autowired
-    private AdminOrderService adminOrderService;
-
-    /**
-     * DES对称加密
-     */
-    private static MD5 md5 = new MD5();
-
-
-    private final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-
-    /**
-     * 请求示例:
-     * appkey=438b2f6ff103422a98a9349507293bb2
-     * &method=Differ.JH.Business.GetOrder&token=95a8d1a00b6dfbadc3da07805131931e
-     * &bizcontent={"OrderStatus":"JH_01","PlatOrderNo":"20182270207","StartTime":"2016-07-26 10:59:10","EndTime":"2016-08-02 10:59:10","TimeType":"JH_02","PageIndex":"1","PageSize":"20"}
-     * &token=9415c33b04d24c7dae320b0185f42fb0
-     * &sign=347e07a557e2720256e64e1e828eff1b
-     */
-
-    /**
-     *  请求响应
-     * @param request
-     * @return
-     * @throws Exception
-     */
-    @ResponseBody
-    @RequestMapping("/select_order")
-    public Map<String,Object> getOrder(HttpServletRequest request) throws Exception {
-
-        Map<String,Object> map = new HashMap<String,Object>();
-        Map<String,Object> requstMap = new HashMap<String,Object>();
-        try{
-            requstMap =  verification(request);
-        }catch (Exception e){
-            map.put("code","40000");
-            map.put("message","请求未能识别");
-            map.put("submessage","参数不对");
-            map.put("numtotalorder","0");
-            return map;
-        }
-
-        String method =  request.getParameter("method");
-        switch (method){
-            case "Differ.JH.Business.GetOrder" :  //订单下载
-                map = getSalesOrder(requstMap);
-                break;
-            case "Differ.JH.Business.CheckRefundStatus" :  //退款检测 :即使没有退款功能,该接口也需要有,否则影响发货流程,可以统一返回没有退款)
-                //map = getSalesOrder(requstMap);
-                break;
-            case "Differ.JH.Business.Send" :  //订单发货
-                break;
-            case "Differ.JH.Business.UpdateSellerMemo" :  //修改订单备注
-                break;
-            case "Differ.JH.Business.DownloadProduct" :  //商品下载
-                break;
-            case "Differ.JH.Business.SyncStock" :  //商品库存同步
-                break;
-            case "Differ.JH.Business.GetRefund" :  //退货退款单下载
-                break;
-            default:
-                map.put("code","40000");
-                map.put("message","请求未能识别");
-                map.put("submessage","参数不对");
-                map.put("numtotalorder","");
-                break;
-        }
-        return map;
-    }
-
-    /**
-     * 订单查询(订单下载)
-     * @param requstMap
-     * @return
-     */
-    private Map<String,Object> getSalesOrder(Map<String,Object> requstMap){
-        Map<String,Object> map = new HashMap<String,Object>();
-
-        /*订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)*/
-        String orderStatus = (String) requstMap.get("OrderStatus");
-        String platOrderNo = (String) requstMap.get("PlatOrderNo"); //平台订单号,若不为空,则代表查询单个订单的数据,查询单个订单时,可不传时间、状态等
-        String startTime = (String) requstMap.get("StartTime");
-        String endTime =  (String) requstMap.get("EndTime");
-        String timeType = (String) requstMap.get("TimeType");  //订单时间类别(订单修改时间=JH_01,订单创建时间=JH_02) (管家抓单默认JH_01)
-        Integer pageIndex = Integer.valueOf(requstMap.get("PageIndex").toString());
-        Integer pageSize = Integer.valueOf(requstMap.get("PageSize").toString());
-
-        Order order = new Order();
-        if(platOrderNo != null && !"".equals(platOrderNo)){
-            order.setSalesOrderid(platOrderNo);
-        }
-        /*设置订单状态*/
-        this.setStatus(order,orderStatus);
-
-        order.getPage().setPageSize(pageSize);
-        order.getPage().setPageNumber(pageIndex);
-        order.getPage().initRecordBegin();
-        try {
-            order.setBeginDate(sdf.parse(startTime));
-            order.setEndDate(sdf.parse(endTime));
-        }catch (ParseException e){
-            map.put("code","40000");
-            map.put("message","时间格式不对");
-            map.put("submessage","时间格式不对");
-            map.put("numtotalorder","");
-            return map;
-        }
-
-        List<Order> orderList = adminOrderService.selectShopOrderByPola(order);
-        List<Map<String,Object>> orders = new ArrayList<>();
-        map.put("code","10000");
-        map.put("message","SUCCESS");
-        for(Order or : orderList){
-            List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderIdToPola(or.getSalesOrderid());
-            or.setOrderItemList(orderItemList);
-            orders.add(getOrderMap(or));
-        }
-        map.put("orders",orders);
-        map.put("numtotalorder",orderList.size());
-        logger.info("------返回订单个数:" + orderList.size() + "---------");
-        return map;
-    }
-
-    /**
-     * 订单退款状态查询
-     * @param requstMap
-     * @return
-     */
-    private Map<String,Object> getOrderRefundStatus(Map<String,Object> requstMap){
-        Map<String,Object> map = new HashMap<String,Object>();
-        String orderId = (String) requstMap.get("OrderID"); //平台订单号
-
-        Order order = new Order();
-        List<Order> orderList = new ArrayList<>();
-        if(orderId != null && !"".equals(orderId)){
-            order.setSalesOrderid(orderId);
-            orderList = adminOrderService.selectShopOrderByPola(order);
-            if(orderList != null && orderList.size() > 0){
-                order = orderList.get(0);
-            }else{
-                map.put("code","40000");
-                map.put("message","未查询到该订单");
-                map.put("submessage","未查询到该订单");
-                return map;
-            }
-        }else{
-            map.put("code","40000");
-            map.put("message","订单号不能为空");
-            map.put("submessage","订单号不能为空");
-            return map;
-        }
-        Map<String,Object> orderMap = new HashMap<String,Object>();
-        //退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,
-        // 买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
-        orderMap.put("refundStatus ","");
-        return map;
-    }
-
-    /***
-     * 拼接map
-     * @param order
-     * @return
-     */
-    private  Map<String,Object> getOrderMap(Order order){
-        String[] addressInfo = order.getSalesAddressInfo().split("-");
-        String town = "";  //获取街道
-
-        if(addressInfo.length > 3){
-            Integer qu = order.getSalesAddressInfo().indexOf(addressInfo[3]);
-            town = order.getSalesAddressInfo().substring(qu,order.getSalesAddressInfo().length());
-        }
-
-        Map<String,Object> orderMap = new HashMap<String,Object>();
-        orderMap.put("PlatOrderNo",order.getSalesOrderid()); //订单号
-        orderMap.put("tradeStatus",this.getStatus(order.getSalesStatus())); //订单状态
-        orderMap.put("tradeStatusdescription",this.getDescription(order.getSalesStatus()));   //订单交易说明, 可选
-        orderMap.put("tradetime",sdf.format(order.getSalesCreateDate())); //订单生成时间  必选 //交易时间(格式:yyyy-MM-dd HH:mm:ss)
-        orderMap.put("payorderno","");  //支付单号
-        orderMap.put("country","CN");   //国家简称
-        orderMap.put("province",addressInfo[0]);    //省  必填
-        orderMap.put("city",addressInfo[1]);        //市 必填
-        orderMap.put("area",addressInfo[2]);        //区 必填
-        orderMap.put("town",town);
-        orderMap.put("address",order.getSalesAddressInfo());    //全部地址 必填
-        orderMap.put("zip",order.getSalesAddressPostnum());     //邮编
-        orderMap.put("phone",order.getSalesAddressTel());       //手机号码   必填
-        orderMap.put("mobile","");
-        orderMap.put("email","");
-        orderMap.put("customerremark",order.getSalesUserRemark());      //买家备注
-        orderMap.put("sellerremark","");
-        orderMap.put("postfee",0);     //邮资
-        orderMap.put("goodsfee",0);    //货款金额
-        double yetAmount = order.getSalesYetAmount().intValue() / 100;
-        double amount = order.getSalesAmount().intValue() / 100;
-        orderMap.put("totalmoney",yetAmount);   //合计应收(针对卖家)
-        orderMap.put("favourablemoney",amount-yetAmount);        //订单总优惠金额
-        orderMap.put("commissionvalue",0);  //佣金
-        orderMap.put("taxamount","");   //订单税费总额
-        orderMap.put("tariffamount","");   //订单关税金额
-        orderMap.put("addedvalueamount","");   //订单增值税金额
-        orderMap.put("consumptiondutyamount","");   //订单消费税金额
-        orderMap.put("sendstyle",this.getSendstyle(order.getSalesPostFirm()));   //货运方式  可选
-        orderMap.put("qq","");
-        // TODO: 2018/2/2  订单未支付,没有支付时间,是否在未支付状态也需要支付时间
-        if(order.getSalesTransactionDate() != null){
-            orderMap.put("paytime",sdf.format(order.getSalesTransactionDate()));     //支付时间  ,必填 支付时间(格式:yyyy-MM-dd HH:mm:ss)
-        }
-        orderMap.put("invoicetitle","");    //发票抬头
-        orderMap.put("codservicefee","");   //纳税人识别号
-        orderMap.put("sellerflag","");  //COD服务费
-        orderMap.put("couponprice",""); //货币类型
-        orderMap.put("cardtype","");    //证件类型(身份证=JH_01,护照=JH_02,港澳通行证=JH_03)
-        orderMap.put("idcard","");      //证件号码
-        orderMap.put("idcardtruename","");      //证件真实姓名
-        orderMap.put("receivername","");      //收货人真实姓名
-        orderMap.put("nick",order.getUserNickname());      //必填  买家昵称
-        orderMap.put("whsecode","");      //商品所在仓库编号
-        orderMap.put("IsHwgFlag","");      //是否为海外购(是=1;否=0)
-        orderMap.put("ShouldPayType","多种结算");      //必填  结算方式(可选值有:担保交易;银行收款;现金收款;货到付款;欠款记应收;客户预付款;多种结算)
-        List<Map<String,Object>> goodinfos = new ArrayList<>();
-        for (OrderItem orderItem: order.getOrderItemList()){
-            Map<String,Object> orderItemMap = new HashMap<String,Object>();
-            orderItemMap.put("ProductId",orderItem.getProduectRemark()); //必填 平台商品ID或SKUID(SKUID优先)
-            orderItemMap.put("suborderno",orderItem.getItemId());  //子订单号(若需要支持拆单发货,则必填)
-            orderItemMap.put("tradegoodsno",orderItem.getProduectRemark());    //必填  部商家编码或外部SKU编码(SKU编码优先)。注意,如果要与管家对接,这里一般返回管家的商品编码,作为平台的外部商家编码,与管家商品映射。
-            orderItemMap.put("tradegoodsname",orderItem.getItemProductName());  //必填 商品交易名称
-            orderItemMap.put("tradegoodsspec",orderItem.getProductColor());  //颜色    必填   商品交易规格
-            orderItemMap.put("goodscount",orderItem.getItemNum());  //必填  商品数量  int
-            double money = orderItem.getItemProductDiscount().intValue() / 100;
-            orderItemMap.put("price",money);       //单价 必填  decimal
-            orderItemMap.put("discountmoney",0);   //子订单优惠金额  decimal
-            orderItemMap.put("taxamount",0);    //商品税费  decimal
-            orderItemMap.put("refundStatus",this.getRefundStatus(order.getSalesStatus()));    //退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
-            orderItemMap.put("Status",this.getOrderItemStatus(order.getSalesStatus()));      //子订单交易状态(其他=JH_99,等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05)
-            orderItemMap.put("remark","");  //货品备注
-            goodinfos.add(orderItemMap);
-        }
-        orderMap.put("goodinfos",goodinfos);
-        return orderMap;
-    }
-
-
-    /**
-     * 设置查询的订单状态
-     *
-     * 本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
-     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
-     *
-     * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
-     *
-     * @param order
-     * @param status
-     */
-    private void setStatus(Order order,String status){
-        switch (status){
-            case "JH_01":
-                order.setSalesStatus(1);
-                break;
-            case "JH_02":
-                order.setSalesStatus(2);
-                break;
-            case "JH_03":
-                order.setSalesStatus(12);
-                break;
-            case "JH_04":
-                order.setSalesStatus(12);
-                break;
-            case "JH_05":
-                order.setSalesStatus(8);
-                break;
-            case "JH_99":
-                break;
-            default:
-                break;
-        }
-    }
-
-    /**
-     * 返回订单状态
-     *
-     * 状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
-     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
-     *
-     * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
-     *
-     * @param status
-     * @return
-     */
-    private String getStatus(int status){
-        switch (status){
-            case 0:
-                return "JH_05";
-            case 1:
-               return "JH_01";
-            case 2:
-                return "JH_02";
-            case 3:
-                return "JH_03";
-            case 4:
-                return "JH_05";
-            case 5:
-                return "JH_03";
-            case 6:
-                return "JH_03";
-            case 7:
-                return "JH_03";
-            case 8:
-               return "JH_05";
-            case 9:
-               return "JH_03";
-            case 10:
-                return "JH_05";
-            case 11:
-                return "JH_03";
-            case 12:
-                return "JH_04";
-        }
-        return "JH_05";
-    }
-
-    /**
-     * 返回子订单退款状态(可选值)
-     *
-     * 本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
-     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
-     *
-     * 退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,
-     * 卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
-     *
-     * @param status
-     * @return
-     */
-    private String getRefundStatus(int status){
-        switch (status){
-            case 0:
-                return "";
-            case 1:
-                return "";
-            case 2:
-                return "";
-            case 3:
-                return "JH_01";
-            case 4:
-                return "JH_06";
-            case 5:
-                return "";
-            case 6:
-                return "";
-            case 7:
-                return "JH_02";
-            case 8:
-                return "JH_06";
-            case 9:
-                return "";
-            case 10:
-                return "";
-            case 11:
-                return "";
-            case 12:
-                return "";
-        }
-        return "";
-    }
-
-    /**
-     * 返回子订单状态(可选值)
-     *
-     * 本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
-     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
-     *
-     * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
-     *
-     * @param status
-     * @return
-     */
-    private String getOrderItemStatus(int status){
-        switch (status){
-            case 0:
-                return "";
-            case 1:
-                return "JH_01";
-            case 2:
-                return "JH_02";
-            case 3:
-                return "";
-            case 4:
-                return "JH_05";
-            case 5:
-                return "";
-            case 6:
-                return "";
-            case 7:
-                return "";
-            case 8:
-                return "JH_05";
-            case 9:
-                return "";
-            case 10:
-                return "";
-            case 11:
-                return "";
-            case 12:
-                return "JH_04";
-        }
-        return "";
-    }
-
-    /**
-     * 获取订单交易说明
-     * 状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
-     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
-     * @param status
-     * @return
-     */
-    private String getDescription(int status){
-        switch (status){
-            case 0:
-                return "取消订单";
-            case 1:
-                return "等待买家付款";
-            case 2:
-                return "等待发货";
-            case 3:
-                return "退款申请中";
-            case 4:
-                return "已退款";
-            case 5:
-                return "已发货";
-            case 6:
-                return "申请退货中";
-            case 7:
-                return "退货中";
-            case 8:
-                return "订单已退货";
-            case 9:
-                return "换货中";
-            case 10:
-                return "换货完成";
-            case 11:
-                return "申请换货中";
-            case 12:
-                return "订单完成";
-        }
-        return "";
-    }
-
-    /**
-     * 返回配送方式
-     * @param sendsStyle
-     * @return
-     */
-    private String getSendstyle(String sendsStyle){
-        return SendMessageUtil.hashmap.get(sendsStyle);
-    }
-
-
-    /**
-     * 校验请求和返回参数
-     * @param request
-     * @return
-     */
-    private Map<String,Object> verification(HttpServletRequest request) throws Exception {
-
-        String bizcontent =  request.getParameter("bizcontent");
-        String appkey =  request.getParameter("appkey");
-        String method =  request.getParameter("method");
-        String token =  request.getParameter("token");
-        String sign =  request.getParameter("sign");
-
-        String polyapiAppKey = NameUtils.getConfig("polyapi_appKey");
-        String polyapiAppSecret = NameUtils.getConfig("polyapi_AppSecret");
-        if(appkey != null && appkey.equals(polyapiAppKey)){
-            /**
-             * 签名验证:
-             * 将除Sign参数外的所有“参数 参数值”进行字典排序生成串,而后将AppSecret加到该串的首尾,将得到的字符串转小写,进行MD5加密,此时的生成的串即为Sign。
-             */
-           String signatureText = polyapiAppSecret + "appkey" + appkey + "bizcontent" + bizcontent + "method" + method + "token" + token + polyapiAppSecret;
-           signatureText = signatureText.toLowerCase();
-           String signaTrue =  md5.GetMD5Code(signatureText);
-           if(sign == null || !sign.equals(signaTrue)){
-               logger.info("-----------签名验证失败---------------,签名参数:"+signatureText);
-               throw new Exception("签名验证失败");
-           }
-            logger.info("-----------验证签名通过---------------");
-        }
-        Map requstMap = (Map) JSON.parse(bizcontent);
-        return requstMap;
-    }
-
-}

+ 925 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/polyapi/ExternalDockPolyApiHandler.java

@@ -0,0 +1,925 @@
+package com.iamberry.wechat.handles.polyapi;
+
+
+import com.alibaba.fastjson.JSON;
+import com.iamberry.app.tool.des.MD5;
+import com.iamberry.wechat.core.entity.order.Order;
+import com.iamberry.wechat.core.entity.order.OrderItem;
+import com.iamberry.wechat.core.entity.product.Product;
+import com.iamberry.wechat.core.entity.product.ProductColor;
+import com.iamberry.wechat.face.order.AdminOrderService;
+import com.iamberry.wechat.face.porduct.ProductService;
+import com.iamberry.wechat.tools.NameUtils;
+import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.tools.SendMessageUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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.ResponseBody;
+
+import javax.servlet.http.HttpServletRequest;
+import java.awt.*;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 对接菠萝派接口
+ */
+@Controller
+public class ExternalDockPolyApiHandler {
+
+    private static Logger logger = LoggerFactory.getLogger(ExternalDockPolyApiHandler.class);
+
+    @Autowired
+    private AdminOrderService adminOrderService;
+
+    @Autowired
+    private ProductService productService;
+
+    @Autowired
+    private SendMessageUtil sendMessageUtil;
+
+
+    /**
+     * DES对称加密
+     */
+    private static MD5 md5 = new MD5();
+
+
+    private final static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+    /**
+     * 请求示例:
+     * appkey=438b2f6ff103422a98a9349507293bb2
+     * &method=Differ.JH.Business.GetOrder
+     * &bizcontent={"OrderStatus":"JH_01","PlatOrderNo":"20182270207","StartTime":"2016-07-26 10:59:10","EndTime":"2016-08-02 10:59:10","TimeType":"JH_02","PageIndex":"1","PageSize":"20"}
+     * &token=9415c33b04d24c7dae320b0185f42fb0
+     * &sign=347e07a557e2720256e64e1e828eff1b
+     */
+
+    /**
+     *  请求响应
+     * @param request
+     * @return
+     * @throws Exception
+     */
+    @ResponseBody
+    @RequestMapping("/select_order")
+    public Map<String,Object> getOrder(HttpServletRequest request) throws Exception {
+
+        Map<String,Object> map = new HashMap<String,Object>();
+        Map<String,Object> requstMap = new HashMap<String,Object>();
+        try{
+            requstMap =  verification(request);
+        }catch (Exception e){
+            map.put("code","40000");
+            map.put("message","请求未能识别");
+            map.put("submessage","参数有误");
+            map.put("numtotalorder",0);
+            return map;
+        }
+
+        if(requstMap == null ){
+            map.put("code","40000");
+            map.put("message","请求未能识别");
+            map.put("submessage","参数有误");
+            map.put("numtotalorder",0);
+            return map;
+        }
+
+        String method =  request.getParameter("method");
+        switch (method){
+            case "Differ.JH.Business.GetOrder" :  //订单下载
+                map = selectSalesOrder(requstMap);
+                break;
+            case "Differ.JH.Business.CheckRefundStatus" :  //退款检测 :即使没有退款功能,该接口也需要有,否则影响发货流程,可以统一返回没有退款)
+                map = selectOrderRefundStatus(requstMap);
+                break;
+            case "Differ.JH.Business.Send" :  //订单发货
+                map = orderDelivery(requstMap);
+                break;
+            case "Differ.JH.Business.UpdateSellerMemo" :  //修改订单备注
+                map = updateOrderRemark(requstMap);
+                break;
+            case "Differ.JH.Business.DownloadProduct" :  //商品下载
+                //map = downProduct(requstMap);
+                break;
+            case "Differ.JH.Business.SyncStock" :  //商品库存同步
+                break;
+            case "Differ.JH.Business.GetRefund" :  //退货退款单下载
+                map = downRefundOrder(requstMap);
+                break;
+            default:
+                map.put("code","40000");
+                map.put("message","请求未能识别");
+                map.put("submessage","参数有误");
+                map.put("numtotalorder",0);
+                break;
+        }
+        return map;
+    }
+
+    /**
+     * 订单查询(订单下载)
+     * @param requstMap
+     * @return
+     */
+    private Map<String,Object> selectSalesOrder(Map<String,Object> requstMap){
+        Map<String,Object> map = new HashMap<String,Object>();
+
+        /*订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)*/
+        String orderStatus = (String) requstMap.get("OrderStatus");
+        String platOrderNo = (String) requstMap.get("PlatOrderNo"); //平台订单号,若不为空,则代表查询单个订单的数据,查询单个订单时,可不传时间、状态等
+        String startTime = (String) requstMap.get("StartTime");
+        String endTime =  (String) requstMap.get("EndTime");
+        String timeType = (String) requstMap.get("TimeType");  //订单时间类别(订单修改时间=JH_01,订单创建时间=JH_02) (管家抓单默认JH_01)
+        Integer pageIndex = Integer.valueOf(requstMap.get("PageIndex").toString());
+        Integer pageSize = Integer.valueOf(requstMap.get("PageSize").toString());
+
+        Order order = new Order();
+        if(platOrderNo != null && !"".equals(platOrderNo)){
+            order.setSalesOrderid(platOrderNo);
+        }
+
+        // TODO: 2018/2/7  只查询代发货的信息,
+       if(orderStatus == null || "".equals(orderStatus) || "JH_01".equals(orderStatus) || "JH_03".equals(orderStatus)
+               || "JH_04".equals(orderStatus) || "JH_05".equals(orderStatus) ){
+           List<Map<String,Object>> orders = new ArrayList<>();
+           map.put("code","10000");
+           map.put("message","SUCCESS");
+           map.put("orders",orders);
+           map.put("numtotalorder",0);
+       }else if("JH_99".equals(orderStatus)){
+           orderStatus = "JH_02";
+       }
+
+       //设置订单状态
+       this.setStatus(order,orderStatus);
+
+       //只查询创建时间的订单
+        order.setSelectDateType(2);
+
+        try {
+            order.setBeginDate(sdf.parse(startTime));
+            order.setEndDate(sdf.parse(endTime));
+        }catch (ParseException e){
+            logger.info("=========日期转换失败=========");
+            map.put("code","40000");
+            map.put("message","查询出错");
+            map.put("submessage","查询出错");
+            map.put("numtotalorder",0);
+            return map;
+        }
+
+        order.getPage().setPageSize(pageSize);
+        order.getPage().setPageNumber(pageIndex);
+        order.getPage().initRecordBegin();
+        Integer orderNum = adminOrderService.selectOrderNum(order);
+        List<Order> orderList = adminOrderService.selectShopOrderByPola(order);
+        List<Map<String,Object>> orders = new ArrayList<>();
+        map.put("code","10000");
+        map.put("message","SUCCESS");
+        for(Order or : orderList){
+            List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderIdToPola(or.getSalesOrderid());
+            or.setOrderItemList(orderItemList);
+            try {
+                orders.add(getOrderMap(or));
+            }catch (Exception e){
+                logger.info("订单无法被转换为接口所需要的数据!");
+            }
+        }
+        map.put("orders",orders);
+        map.put("numtotalorder",orderNum);
+        logger.info("------返回订单个数:" + orderList.size() + "---------");
+        return map;
+    }
+
+    /**
+     * 订单退款状态查询
+     * @param requstMap
+     * @return
+     */
+    private Map<String,Object> selectOrderRefundStatus(Map<String,Object> requstMap){
+        Map<String,Object> map = new HashMap<String,Object>();
+        String orderId = (String) requstMap.get("OrderID"); //平台订单号
+
+        Order order;
+        if(orderId != null && !"".equals(orderId)){
+            order = adminOrderService.selectShopOrderByPolaById(orderId);
+            if(order == null){
+                map.put("code","40000");
+                map.put("message","未查询到该订单");
+                map.put("submessage","未查询到该订单");
+                return map;
+            }
+        }else{
+            map.put("code","40000");
+            map.put("message","订单号不能为空");
+            map.put("submessage","订单号不能为空");
+            return map;
+        }
+        map.put("refundStatus",this.getOrderRefundStatus(order.getSalesStatus()));     //退款状态   必填
+        String refundStatusdescription = "";
+        if(order.getSalesReturnDes() != null){
+            refundStatusdescription = order.getSalesReturnDes();
+        }
+        map.put("refundStatusdescription",refundStatusdescription);  //选填 退款说明
+        List<Map<String,Object>> childrenrefundStatus = new ArrayList<>();
+        List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderIdToPola(order.getSalesOrderid());
+        for(OrderItem orderItem : orderItemList){
+            Map<String,Object> childrenrefund = new HashMap<String, Object>();
+            childrenrefund.put("refundno","");      //退款订单号    可选
+            childrenrefund.put("ProductName",orderItem.getItemProductName());      //退款商品名称    可选
+            childrenrefund.put("refundStatus",this.getOrderRefundStatus(order.getSalesStatus()));      //退款状态    可选
+            childrenrefund.put("refundStatusdescription",refundStatusdescription);      //选填 退款说明
+            childrenrefundStatus.add(childrenrefund);
+        }
+        map.put("childrenrefundStatus",childrenrefundStatus);  //子订单退款说明
+        map.put("code","10000");
+        map.put("message","返回订单退款状态成功,订单id:"+  order.getSalesOrderid() +"订单状态为:"+ this.getDescription(order.getSalesStatus()));
+        map.put("submessage","返回订单退款状态成功");
+        return map;
+    }
+
+    /**
+     * 订单发货
+     * @param requstMap
+     * @return
+     */
+    private Map<String,Object> orderDelivery(Map<String,Object> requstMap){
+        Map<String,Object> map = new HashMap<String,Object>();
+        /*订单发货类别(自己联系物流=JH_01,在线下单=JH_02,无需物流=JH_03,自定义物流=JH_04,家装发货=JH_05,国际物流=JH_06)*/
+        String SendType = (String) requstMap.get("SendType");
+        String LogisticName = (String) requstMap.get("LogisticName"); //快递名称
+        String LogisticType = (String) requstMap.get("LogisticType"); //快递类别(JH前缀为国内快递 ,JHI为国际快递)详见物流公司代码对照表
+        String LogisticNo = (String) requstMap.get("LogisticNo"); //快递运单号
+        String PlatOrderNo = (String) requstMap.get("PlatOrderNo"); //平台订单号
+        Integer IsSplit = Integer.valueOf(requstMap.get("IsSplit").toString()) ; //是否拆单发货(拆单=1 ,不拆单=0)
+        /*平台子订单交易单号,支持订单拆分为不同商品不同数量发货,
+            多个商品用"|"隔开, 为空则视为整单发货
+            包含子订单编号和商品发货数量,格式suborderno1:count1|suborderno2:count2发货数量需为大于0的整数
+        */
+        String SubPlatOrderNo = (String) requstMap.get("SubPlatOrderNo");
+        String SenderName = (String) requstMap.get("SenderName"); //发货人姓名
+        String SenderTel = (String) requstMap.get("SenderTel"); //发货人联系电话
+        String SenderAddress = (String) requstMap.get("SenderAddress"); //发货人地址(省市区之间以空格分隔)
+        Integer IsHwgFlag = Integer.valueOf(requstMap.get("IsHwgFlag").toString()); //是否为海外购(是=1;否=0)
+
+        Order order;
+        if(PlatOrderNo != null && !"".equals(PlatOrderNo)) {
+            order = adminOrderService.selectShopOrderByPolaById(PlatOrderNo);
+            if(order == null){
+                map.put("code","40000");
+                map.put("message","未查询到该订单");
+                map.put("submessage","未查询到该订单");
+                return map;
+            }
+        }else{
+            map.put("code","40000");
+            map.put("message","订单号不能为空");
+            map.put("submessage","订单号不能为空");
+            return map;
+        }
+        Boolean flag = false;
+        if(order.getSalesStatus() == 2){ //判断订单是否支持发货
+            Order or = new Order();
+            or.setSalesOrderid(PlatOrderNo);
+            or.setSalesPostFirm(this.selectFirm(LogisticType));      //设置快递公司
+            or.setSalesPostNum(LogisticNo);       //设置快递单号
+            or.setSalesStatus(5);        //发货
+            flag = adminOrderService.deliverOrderByOrderId(or);
+            //给用户发送消息-已发货的通知
+            String  firm = this.selectFirm(LogisticType);  //快递公司
+            String  num = LogisticNo;       //快递单号
+            try {
+
+                /*微信推送发货信息*/
+                sendMessageUtil.orderSendSuccess(
+                        "尊敬的朵粉,您的订单已发货,物流信息:",
+                        order.getSalesOrderid(),
+                        SendMessageUtil.hashmap.get(firm),
+                        num,
+                        order.getSalesAddressInfo(),
+                        "如有问题请致电400-678-1860或直接在微信留言,soodo上朵将第一时间为您服务!(点击查看订单详情)",
+                        order.getSalesOpenid(),
+                        ResultInfo.ORDER_DETAIL+order.getSalesOrderid()
+                );
+            } catch (Exception e) {
+                logger.info("订单号:"+ order.getSalesOrderid() +"的订单已发货,发送微信消息失败!");
+                logger.info("失败原因:订单编号"+order.getSalesOrderid() + "快递公司:"+SendMessageUtil.hashmap.get(firm) +"快递单号"+num+"地址" +order.getSalesAddressInfo()+"openid:"+order.getSalesOpenid()+"remark:"+ResultInfo.ORDER_DETAIL+order.getSalesOrderid());
+            }
+        }
+        if(flag){
+            map.put("code","10000");
+            map.put("message","订单发货成功");
+            map.put("submessage","订单发货成功");
+        }else{
+            logger.info("订单发货失败,不支持发货操作,订单id:" + order.getSalesOrderid());
+            map.put("code","40000");
+            map.put("message","参数有误");
+            map.put("submessage","订单不支持发货操作");
+        }
+        return map;
+    }
+
+    /**
+     * 修改备注
+     * @param requstMap
+     * @return
+     */
+    private Map<String,Object> updateOrderRemark(Map<String,Object> requstMap){
+        Map<String,Object> map = new HashMap<String,Object>();
+
+        String orderId = (String) requstMap.get("PlatOrderNo");     //订单id
+        String remark = (String) requstMap.get("SellerMemo");      //备注
+        //卖家旗帜(无=JH_None,灰=JH_Gray,红=JH_Red,黄=JH_Yellow,绿=JH_Green,蓝=JH_Blue,紫=JH_Purple)
+        String sellerFlag = (String) requstMap.get("SellerFlag");
+
+        Order order = new Order();
+        order.setSalesOrderid(orderId);
+        if(orderId != null && !"".equals(orderId)) {
+            order = adminOrderService.selectShopOrderByPolaById(orderId);
+            if(order == null){
+                map.put("code","40000");
+                map.put("message","未查询到该订单");
+                map.put("submessage","未查询到该订单");
+                return map;
+            }
+        }else{
+            map.put("code","40000");
+            map.put("message","订单号不能为空");
+            map.put("submessage","订单号不能为空");
+            return map;
+        }
+        Order or = new Order();
+        or.setSalesOrderid(orderId);
+        or.setSalesUserRemark(remark);
+        Integer flag  = adminOrderService.updateOrderByPola(or);
+        if(flag > 0){
+            map.put("code","10000");
+            map.put("message","修改订单备注成功");
+            map.put("submessage","修改订单备注成功");
+        }else{
+            logger.info("修改订单备注失败,订单id:" + order.getSalesOrderid());
+            map.put("code","40000");
+            map.put("message","参数有误");
+            map.put("submessage","修改订单备注失败");
+        }
+        return map;
+    }
+
+    /**
+     *  退货退款单下载
+     * @param requstMap
+     * @return
+     */
+    private Map<String,Object> downRefundOrder(Map<String,Object> requstMap){
+        Map<String,Object> map = new HashMap<String,Object>();
+
+        String beginTime = (String) requstMap.get("BeginTime");     //开始时间
+        String endTime = (String) requstMap.get("EndTime");     //结束时间
+        String pageIndex = (String) requstMap.get("PageIndex");     //页码(默认值:1)
+        String pageSize = (String) requstMap.get("PageSize");     //每页条数(默认值:10)
+
+//        map.put("code","10000");
+//        map.put("message","退货退款单下载");
+//        map.put("submessage","退货退款单下载");
+
+        return map;
+    }
+
+    /**
+     * 获取商品
+     * @param requstMap
+     * @return
+     */
+    private Map<String,Object> downProduct(Map<String,Object> requstMap){
+        Map<String,Object> map = new HashMap<String,Object>();
+
+        Integer productId = null;
+        String ProductId = requstMap.get("ProductId").toString();
+        if(ProductId != null && !"".equals(ProductId) ){
+            productId = Integer.valueOf(ProductId);     //可选,商品外部商家编码(注,网店管家目前尚未支持此参数的查询)
+        }
+        String productName = (String) requstMap.get("ProductName");     //商品名称
+        String status = (String) requstMap.get("Status");     //商品状态(已上架商品=JH_01,已下架商品=JH_02,所有商品=JH_99)
+        Integer pageIndex = Integer.valueOf(requstMap.get("PageIndex").toString()) ;     //开始时间
+        Integer pageSize = Integer.valueOf(requstMap.get("PageSize").toString());     //开始时间
+
+        Product product = new Product();
+
+        if(status == null || "".equals(status) || "JH_99".equals(status)){
+            product.setProductStatus(1);
+        }else  if("JH_02".equals(status)){
+            List<Map<String,Object>>  goodslist = new ArrayList<>();
+            map.put("code","40000");
+            map.put("totalcount",0);
+            map.put("goodslist",goodslist);
+            map.put("message","获取商品集合成功");
+            map.put("submessage","获取商品集合成功");
+            return map;
+        }
+        product.setProductId(productId);
+        product.getPage().setPageSize(pageSize);
+        product.getPage().setPageNumber(pageIndex);
+        List<Product> productList = productService.selectAllProductInfo(product);
+
+        Integer num = productService.selectAllProductNum(product);
+        if(num < 1){
+            num = 1;
+        }
+        map.put("totalcount",num);         //商品总数量(默认值:1)
+        List<Map<String,Object>>  goodslist = new ArrayList<>();
+        for (Product pt : productList){
+            Map<String,Object> goods = new HashMap<String,Object>();
+            goods.put("PlatProductID",String.valueOf(pt.getProductId()));      //平台商品ID 必填
+            goods.put("name",pt.getProductName());               //商品名称 必填
+            //外部商家编码(注:若与管家对接,这里需要返回与管家商品相匹配的编号,方便管家商品与平台商品的匹配)
+            goods.put("OuterID",String.valueOf(pt.getProductId()));      //
+            double discount = pt.getProductDiscount().intValue() / 100;
+            goods.put("price",discount);      //商品价格
+            // TODO: 2018/2/8 商品库存待确定
+            goods.put("num",10000);      //商品数量
+            goods.put("pictureurl","");      //图片URL  可选
+            goods.put("whsecode","");      //商品所在仓库编号  可选
+            List<ProductColor> colors = pt.getColorList(); //获取颜色集合
+            List<Map<String,Object>>  colorList = new ArrayList<>();
+            for(ProductColor productColor : colors){
+                Map<String,Object> colorMap = new HashMap<String,Object>();
+                colorMap.put("SkuID",String.valueOf(productColor.getColorId()));      //平台规格ID
+
+                // TODO: 2018/2/21 判断是否是货号编码
+                //规格外部商家编码(注:若与管家对接,这里需要返回与管家商品相匹配的编号,方便管家商品与平台商品的匹配)
+                colorMap.put("skuOuterID",productColor.getColorPolyCode());
+                double colorDiscount = productColor.getColorDiscount().intValue() / 100;
+                colorMap.put("skuprice",colorDiscount);      //规格价格
+                colorMap.put("skuQuantity",10000);      //规格数量
+                colorMap.put("skuname",productColor.getColorName());      //规格名称
+                colorMap.put("colors","");      //规格属性  可选
+                colorMap.put("skupictureurl","");      //规格图片URL  可选
+                colorList.add(colorMap);
+            }
+            goods.put("skus",colorList);      //规格集合
+            goodslist.add(goods);
+        }
+        map.put("goodslist",goodslist);
+        map.put("code","10000");
+        map.put("message","获取商品集合成功");
+        map.put("submessage","获取商品集合成功");
+        return map;
+    }
+
+    /**
+     * 获取快递公司代号,
+     * @param LogisticType
+     * @return
+     */
+    private String selectFirm(String LogisticType){
+        switch (LogisticType){
+            case "JH_001": //EMS
+                return "ems";
+            case "JH_002": //圆通
+                return "yto";
+            case "JH_003": //韵达
+                return "yunda";
+            case "JH_004": //天天快递
+                return "ttkdex";
+            case "JH_005": //申通
+                return "sto";
+            case "JH_006": //中通
+                return "zto";
+            case "JH_007": //宅急送
+                return "zjs";
+//            case "JH_008": //快捷快递
+//                return "";
+//            case "JH_009": //全峰快递
+//                return "";
+//            case "JH_010": //国通快递
+//                return "";
+//            case "JH_011": //德邦物流
+//                return "";
+            case "JH_012": //百世汇通
+                return "htky";
+//            case "JH_013": //优速快递
+//                return "";
+            case "JH_014": //顺丰
+                return "sf";
+//            case "JH_015": //中铁快运
+//                return "";
+            case "JH_019": //龙邦速递
+                return "longbanwuliu";
+            case "JH_028": //汇通快运
+                return "htky";
+//            case "JH_037": //邮政包裹平邮
+//                return "";
+//            case "JH_046": //京东快递
+//                return "";
+            case "JH_092": //EMS经济快递
+                return "ems";
+//            case "JH_115": //万象
+//                return "";
+//            case "JH_091": //百世物流
+//                return "";
+            default:
+                return LogisticType;
+        }
+    }
+
+    /**
+     * 查询退款状态
+     *
+     *  本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货  6:申请退货中
+     *  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
+     *
+     * 退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,
+     * 买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
+     *
+     * @param status
+     * @return
+     */
+    private String getOrderRefundStatus(Integer status){
+        switch (status){
+            case 0:
+                return "JH_07";
+            case 1:
+                return "JH_07";
+            case 2:
+                return "JH_07";
+            case 3:
+                return "JH_01";
+            case 4:
+                return "JH_06";
+            case 5:
+                return "JH_07";
+            case 6:
+                return "JH_01";
+            case 7:
+                return "JH_02";
+            case 8:
+                return "JH_06";
+            case 9:
+                return "JH_07";
+            case 10:
+                return "JH_07";
+            case 11:
+                return "JH_07";
+            case 12:
+                return "JH_07";
+            default:
+                return "JH_07";
+        }
+    }
+
+    /***
+     * 订单下载 拼接map
+     * 如果不用传参数请去掉,否则有可能会报错
+     * @param order
+     * @return
+     */
+    private  Map<String,Object> getOrderMap(Order order){
+        String[] addressInfo = order.getSalesAddressInfo().split("-");
+        String town = "";  //获取街道
+
+        if(addressInfo.length > 3){
+            Integer qu = order.getSalesAddressInfo().indexOf(addressInfo[3]);
+            town = order.getSalesAddressInfo().substring(qu,order.getSalesAddressInfo().length());
+        }
+
+        Map<String,Object> orderMap = new HashMap<String,Object>();
+        orderMap.put("PlatOrderNo",order.getSalesOrderid()); //订单号
+        orderMap.put("tradeStatus",this.getStatus(order.getSalesStatus())); //订单状态
+        orderMap.put("tradeStatusdescription",this.getDescription(order.getSalesStatus()));   //订单交易说明, 可选
+        orderMap.put("tradetime",sdf.format(order.getSalesCreateDate())); //订单生成时间  必选 //交易时间(格式:yyyy-MM-dd HH:mm:ss)
+        orderMap.put("payorderno","");  //支付单号
+        orderMap.put("country","CN");   //国家简称
+        orderMap.put("province",addressInfo[0]);    //省  必填
+        orderMap.put("city",addressInfo[1]);        //市 必填
+        orderMap.put("area",addressInfo[2]);        //区 必填
+        orderMap.put("town",town);
+        orderMap.put("address",order.getSalesAddressInfo());    //全部地址 必填
+        orderMap.put("zip",order.getSalesAddressPostnum());     //邮编
+        orderMap.put("phone",order.getSalesAddressTel());       //手机号码   必填
+        //orderMap.put("mobile","");
+       // orderMap.put("email","");
+        String remark = order.getSalesUserRemark();
+        if(remark == null){
+            orderMap.put("customerremark","");      //买家备注
+        }else{
+            orderMap.put("customerremark",order.getSalesUserRemark());      //买家备注
+        }
+        //orderMap.put("sellerremark","");
+        orderMap.put("postfee",0);     //邮资
+        orderMap.put("goodsfee",0);    //货款金额
+        double yetAmount = order.getSalesYetAmount().intValue() / 100;
+        double amount = order.getSalesAmount().intValue() / 100;
+        orderMap.put("totalmoney",yetAmount);   //合计应收(针对卖家)
+        orderMap.put("favourablemoney",amount-yetAmount);        //订单总优惠金额
+        orderMap.put("commissionvalue",0);  //佣金
+        //orderMap.put("taxamount","");   //订单税费总额
+        //orderMap.put("tariffamount","");   //订单关税金额
+       // orderMap.put("addedvalueamount","");   //订单增值税金额
+       // orderMap.put("consumptiondutyamount","");   //订单消费税金额
+
+        orderMap.put("sendstyle",this.getSendstyle(order.getSalesPostFirm()));   //货运方式  可选
+        //orderMap.put("qq","");
+        if(order.getSalesTransactionDate() != null){
+            orderMap.put("paytime",sdf.format(order.getSalesTransactionDate()));     //支付时间  ,必填 支付时间(格式:yyyy-MM-dd HH:mm:ss)
+        }
+        //orderMap.put("invoicetitle","");    //发票抬头
+        //orderMap.put("codservicefee","");   //纳税人识别号
+        //orderMap.put("couponprice",""); //货币类型
+        //orderMap.put("cardtype","");    //证件类型(身份证=JH_01,护照=JH_02,港澳通行证=JH_03)
+        //orderMap.put("idcard","");      //证件号码
+        //orderMap.put("idcardtruename","");      //证件真实姓名
+        orderMap.put("receivername",order.getSalesAddressName());      //收货人真实姓名
+        orderMap.put("nick",order.getUserNickname());      //必填  买家昵称
+        //orderMap.put("whsecode","");      //商品所在仓库编号
+        //orderMap.put("IsHwgFlag","");      //是否为海外购(是=1;否=0)
+        orderMap.put("ShouldPayType","担保交易");      //必填  结算方式(可选值有:担保交易;银行收款;现金收款;货到付款;欠款记应收;客户预付款;多种结算)
+        List<Map<String,Object>> goodinfos = new ArrayList<>();
+        for (OrderItem orderItem: order.getOrderItemList()){
+            Map<String,Object> orderItemMap = new HashMap<String,Object>();
+            orderItemMap.put("ProductId",orderItem.getColorPolyCode()); //必填 平台商品ID或SKUID(SKUID优先)
+            orderItemMap.put("suborderno",orderItem.getItemId());  //子订单号(若需要支持拆单发货,则必填)
+            orderItemMap.put("tradegoodsno",orderItem.getColorPolyCode());    //必填  部商家编码或外部SKU编码(SKU编码优先)。注意,如果要与管家对接,这里一般返回管家的商品编码,作为平台的外部商家编码,与管家商品映射。
+            orderItemMap.put("tradegoodsname",orderItem.getItemProductName());  //必填 商品交易名称
+            orderItemMap.put("tradegoodsspec",orderItem.getProductColor());  //颜色    必填   商品交易规格
+            orderItemMap.put("goodscount",orderItem.getItemNum());  //必填  商品数量  int
+            double money = orderItem.getItemProductDiscount().intValue() / 100;
+            orderItemMap.put("price",money);       //单价 必填  decimal
+            orderItemMap.put("discountmoney",0);   //子订单优惠金额  decimal
+            orderItemMap.put("taxamount",0);    //商品税费  decimal
+            orderItemMap.put("refundStatus",this.getRefundStatus(order.getSalesStatus()));    //退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
+            orderItemMap.put("Status",this.getOrderItemStatus(order.getSalesStatus()));      //子订单交易状态(其他=JH_99,等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05)
+            orderItemMap.put("remark","");  //货品备注
+            goodinfos.add(orderItemMap);
+        }
+        orderMap.put("goodinfos",goodinfos);
+        return orderMap;
+    }
+
+
+    /**
+     * 设置查询的订单状态
+     *
+     * 本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
+     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
+     *
+     * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
+     *
+     * @param order
+     * @param status
+     */
+    private void setStatus(Order order,String status){
+        switch (status){
+            case "JH_01":
+                order.setSalesStatus(1);
+                break;
+            case "JH_02":
+                order.setSalesStatus(2);
+                break;
+            case "JH_03":
+                order.setSalesStatus(12);
+                break;
+            case "JH_04":
+                order.setSalesStatus(12);
+                break;
+            case "JH_05":
+                order.setSalesStatus(8);
+                break;
+            case "JH_99":
+                break;
+            default:
+                order.setSalesStatus(2);
+                break;
+        }
+    }
+
+    /**
+     * 返回订单状态
+     *
+     * 状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
+     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
+     *
+     * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
+     *
+     * @param status
+     * @return
+     */
+    private String getStatus(int status){
+        switch (status){
+            case 0:
+                return "JH_05";
+            case 1:
+               return "JH_01";
+            case 2:
+                return "JH_02";
+            case 3:
+                return "JH_03";
+            case 4:
+                return "JH_05";
+            case 5:
+                return "JH_03";
+            case 6:
+                return "JH_03";
+            case 7:
+                return "JH_03";
+            case 8:
+               return "JH_05";
+            case 9:
+               return "JH_03";
+            case 10:
+                return "JH_05";
+            case 11:
+                return "JH_03";
+            case 12:
+                return "JH_04";
+            default:
+                return "JH_05";
+        }
+    }
+
+    /**
+     * 返回子订单退款状态(可选值)
+     *
+     * 本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
+     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
+     *
+     * 退款状态(没有退款=JH_07,买家已经申请退款等待卖家同意=JH_01,卖家已经同意退款等待买家退货=JH_02,买家已经退货等待卖家确认收货=JH_03,
+     * 卖家拒绝退款=JH_04,退款关闭=JH_05,退款成功=JH_06,其他=JH_99)
+     *
+     * @param status
+     * @return
+     */
+    private String getRefundStatus(int status){
+        switch (status){
+            case 0:
+                return "";
+            case 1:
+                return "";
+            case 2:
+                return "";
+            case 3:
+                return "JH_01";
+            case 4:
+                return "JH_06";
+            case 5:
+                return "";
+            case 6:
+                return "";
+            case 7:
+                return "JH_02";
+            case 8:
+                return "JH_06";
+            case 9:
+                return "";
+            case 10:
+                return "";
+            case 11:
+                return "";
+            case 12:
+                return "";
+            default:
+                return "";
+        }
+    }
+
+    /**
+     * 返回子订单状态(可选值)
+     *
+     * 本系统状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
+     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
+     *
+     * 订单交易状态(等待买家付款=JH_01,等待卖家发货=JH_02,等待买家确认收货=JH_03,交易成功=JH_04,交易关闭=JH_05,所有订单=JH_99)
+     *
+     * @param status
+     * @return
+     */
+    private String getOrderItemStatus(int status){
+        switch (status){
+            case 0:
+                return "";
+            case 1:
+                return "JH_01";
+            case 2:
+                return "JH_02";
+            case 3:
+                return "";
+            case 4:
+                return "JH_05";
+            case 5:
+                return "";
+            case 6:
+                return "";
+            case 7:
+                return "";
+            case 8:
+                return "JH_05";
+            case 9:
+                return "";
+            case 10:
+                return "";
+            case 11:
+                return "";
+            case 12:
+                return "JH_04";
+            default:
+                return "";
+        }
+    }
+
+    /**
+     * 获取订单交易说明
+     * 状态  0:取消订单  1:待支付  2:已支付、待发货  3:退款申请中  4:已退款  5:已发货
+     * 6:申请退货中  7:退货中  8:订单退货,订单关闭  9:换货中  10:换货完成  11申请换货中  12订单完成
+     * @param status
+     * @return
+     */
+    private String getDescription(int status){
+        switch (status){
+            case 0:
+                return "取消订单";
+            case 1:
+                return "等待买家付款";
+            case 2:
+                return "等待发货";
+            case 3:
+                return "退款申请中";
+            case 4:
+                return "已退款";
+            case 5:
+                return "已发货";
+            case 6:
+                return "申请退货中";
+            case 7:
+                return "退货中";
+            case 8:
+                return "订单已退货";
+            case 9:
+                return "换货中";
+            case 10:
+                return "换货完成";
+            case 11:
+                return "申请换货中";
+            case 12:
+                return "订单完成";
+            default:
+                return "其他";
+        }
+    }
+
+    /**
+     * 返回配送方式
+     * @param sendsStyle
+     * @return
+     */
+    private String getSendstyle(String sendsStyle){
+        String sendStyle = SendMessageUtil.hashmap.get(sendsStyle);
+        if(sendStyle == null){
+            sendStyle = "";
+        }
+        return sendStyle;
+    }
+
+
+    /**
+     * 校验请求和返回参数
+     * @param request
+     * @return
+     */
+    private Map<String,Object> verification(HttpServletRequest request) throws Exception {
+
+        String bizcontent =  request.getParameter("bizcontent");
+        String appkey =  request.getParameter("appkey");
+        String method =  request.getParameter("method");
+        String token =  request.getParameter("token");
+        String sign =  request.getParameter("sign");
+
+        String polyapiAppKey = NameUtils.getConfig("polyapi_appKey");
+        String polyapiAppSecret = NameUtils.getConfig("polyapi_AppSecret");
+        if(appkey != null && appkey.equals(polyapiAppKey)){
+            /**
+             * 签名验证:
+             * 将除Sign参数外的所有“参数 参数值”进行字典排序生成串,而后将AppSecret加到该串的首尾,将得到的字符串转小写,进行MD5加密,此时的生成的串即为Sign。
+             */
+           String signatureText = polyapiAppSecret + "appkey" + appkey + "bizcontent" + bizcontent + "method" + method + "token" + token + polyapiAppSecret;
+           signatureText = signatureText.toLowerCase();
+           String signaTrue = md5.GetMD5Code(signatureText);
+           if(sign == null || !sign.equals(signaTrue)){
+               logger.info("-----------签名验证失败---------------,signaTrue:"+signaTrue);
+               logger.info("-----------签名验证失败---------------,sign:"+sign);
+               throw new Exception("签名验证失败");
+           }
+           logger.info("-----------菠萝派调用接口,签名验证通过。接口调用方法名:"+method);
+        }
+        Map requstMap = (Map) JSON.parse(bizcontent);
+        return requstMap;
+    }
+
+}

+ 6 - 6
tooth-wechat-web/src/main/resources/jdbc.properties

@@ -1,13 +1,13 @@
 jdbc.driver=com.mysql.jdbc.Driver
 #��ʽ��
-jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-jdbc.username=tooth
-jdbc.password=Tooth123223
+#jdbc.url=jdbc:mysql://iamberry.mysql.rds.aliyuncs.com/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+#jdbc.username=tooth
+#jdbc.password=Tooth123223
 
 #���ؿ�
-#jdbc.url=jdbc:mysql://192.168.1.254:3306/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
-#jdbc.username=root
-#jdbc.password=root
+jdbc.url=jdbc:mysql://192.168.1.254:3306/tooth?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull
+jdbc.username=root
+jdbc.password=root
 
 #���Կ�
 #jdbc.url=jdbc:mysql://watero2db.mysql.rds.aliyuncs.com/test_watero_pf?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true&autoReconnect=true&failOverReadOnly=false&zeroDateTimeBehavior=convertToNull

+ 5 - 2
tooth-wechat-web/src/main/resources/platform.properties

@@ -202,6 +202,9 @@ REPLACE_SECURITY_IMAGE=http://192.168.1.129:8080/watero/common/images/security.j
 SUCCESSINFO=SUCCESS
 
 #polyapi
-polyapi_appKey=438b2f6ff103422a98a9349507293bb2
-polyapi_AppSecret=5ee2084de90043be989d4d99d0dd0eaa
+#polyapi_appKey=438b2f6ff103422a98a9349507293bb2
+#polyapi_AppSecret=5ee2084de90043be989d4d99d0dd0eaa
+polyapi_appKey=ee7ed449b6f846f2bb73eed486a079c0
+polyapi_AppSecret=db59a82e86b14617ae1e922dcd177c8b
+polyapi_token=ed21ebb230534885a137aa1173f8ec66
 #polyapi

+ 2 - 0
tooth-wechat-web/src/main/webapp/WEB-INF/views/admin/order/order.jsp

@@ -120,6 +120,7 @@
 				  <thead>
 				  	<tr  class="f-14" style="font-weight: bold;">
 				  		<th>商品名称</th>
+						<th>商品颜色</th>
 				  		<th>商品图片</th>
 				  		<th>原价(¥)</th>
 				  		<th>优惠价(¥)</th>
@@ -132,6 +133,7 @@
 				  <c:forEach items="${orderItemList }" var="list">
 				  	<tr>
 				  		<td>${list.itemProductName }</td>
+						<td>${list.productColor }</td>
 				  		<td><img alt="图片" src="${list.itemProductPic}" style="width: 40px; height: 40px;"></td>
 				  		<td><fmt:formatNumber type="number" value="${list.itemProductPrice/100}" pattern="0.00" maxFractionDigits="2"/></td>
 				  		<td><fmt:formatNumber type="number" value="${list.itemProductDiscount/100}" pattern="0.00" maxFractionDigits="2"/></td>