Bladeren bron

修改积分修改的定时任务

wangxiaoming 7 jaren geleden
bovenliggende
commit
c3606f4ed7

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

@@ -44,8 +44,7 @@ public class OrderItem implements Serializable {
 	
 	private String produectRemark;		//产品备注,存放百胜商品69码的
 	
-	
-	
+
 	
 	public Integer getItemColorId() {
 		return itemColorId;

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

@@ -23,6 +23,11 @@ public interface AdminOrderService {
 	//后台订单列表查询
 	public List<Order> selectShopOrder(Order order);
 
+	//菠萝派查询订单
+	public List<Order> selectShopOrderByPola(Order order);
+	//菠萝派根据订单id查询订单项
+	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId);
+
 	//根据页面条件查询订单列表
 	public List<Order> selectShopOrderByOrderId(Order order);
 

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

@@ -27,7 +27,12 @@ public interface AdminOrderMapper {
 	
 	//根据页面条件查询订单列表
 	public List<Order> selectShopOrderByOrderId(Order order);
-	
+
+	//菠萝派查询订单
+	public List<Order> selectShopOrderByPola(Order order);
+	//菠萝派根据订单id查询订单项
+	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId);
+
 	//根据订单id查询订单
 	public Order getShopOrderByOrderId(String orderId);
 	

+ 62 - 1
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/adminOrderMapper.xml

@@ -90,7 +90,7 @@ PUBLIC
 		ORDER BY O.SALES_CREATE_DATE DESC 
 		LIMIT ${page.recordBegin},${page.pageSize}
 	</select>
-	
+
 	<!-- 根据订单号,获取订单所属人 -->
 	<select id="selectSalesOpenIdByOrderId" parameterType="String" resultType="String">
 		SELECT
@@ -701,4 +701,65 @@ PUBLIC
 			date_format(o.sales_create_date,'%Y-%m')
 	</select>
 
+	<select id="selectShopOrderByPola" parameterType="Order" resultType="Order">
+		SELECT
+			O.SALES_ORDERID salesOrderid,
+			O.SALES_ADDRESS_NAME salesAddressName,
+			U.USER_NICKNAME userNickname,
+			O.SALES_ADDRESS_TEL salesAddressTel,
+			O.SALES_AMOUNT salesAmount,
+			O.SALES_RATE_AMOUNT salesRateAmount,
+			O.SALES_INTEGRAL_NUM salesIntegralNum,
+			O.SALES_YET_AMOUNT salesYetAmount,
+			O.SALES_STATUS salesStatus,
+			O.SALES_CREATE_DATE salesCreateDate,
+			O.SALES_POST_NUM salesPostNum,
+			O.SALES_POST_FIRM salesPostFirm,
+			O.SALES_ADMIN_REMARK salesAdminRemark,
+			O.SALES_COLOR_TYPE salesColorType,
+			O.SALES_USER_REMARK salesUserRemark,
+			O.SALES_IS_RFUND salesIsRfund,
+			O.sales_transaction_date salesTransactionDate,
+			O.sales_address_info salesAddressInfo,
+			O.sales_address_postnum salesAddressPostnum,
+			U.USER_RES_TYPE userResource
+		FROM
+			TB_IAMBERRY_SHOP_SALES_ORDER O
+		LEFT JOIN TB_IAMBERRY_USER_USERINFO U ON O.SALES_OPENID = U.USER_OPENID
+		WHERE
+			O.SALES_ORDER_TYPE = 1
+		AND O.SALES_STATUS !=  1
+		AND O.SALES_STATUS !=  0
+		<if test="salesStatus != null and salesStatus != -1">
+			AND O.SALES_STATUS = #{salesStatus}
+		</if>
+		<if test="salesOrderid != null and salesOrderid!=''">
+			AND O.SALES_ORDERID = #{salesOrderid}
+		</if>
+		<if test="beginDate != null and beginDate!=''">
+			AND O.sales_create_date &gt;= #{beginDate}
+		</if>
+		<if test="endDate != null and endDate!=''">
+			AND O.sales_create_date &lt;= #{endDate}
+		</if>
+		ORDER BY O.SALES_CREATE_DATE DESC
+		LIMIT ${page.recordBegin},${page.pageSize}
+	</select>
+
+	<!-- 根据orderId获取订单项数据 -->
+	<select id="getShopOrderItemByOrderIdToPola" parameterType="String" resultType="OrderItem">
+		SELECT
+		I.item_id itemId,
+		I.ITEM_PRODUCT_NAME itemProductName, I.ITEM_PRODUCT_PIC itemProductPic, I.ITEM_PRODUCT_PRICE itemProductPrice,
+		I.ITEM_PRODUCT_DISCOUNT itemProductDiscount, I.ITEM_NUM itemNum, I.ITEM_TOTAL itemTotal, C.COLOR_NAME productColor,
+		C.COLOR_69CODE produectRemark, I.ITEM_PRODUCT_TYPE itemProductType
+		FROM
+		TB_IAMBERRY_SHOP_ORDER_ITEM I LEFT JOIN TB_IAMBERRY_PRODUCT_INFO P
+		ON I.ITEM_PRODUCT_ID = P.PRODUCT_ID
+		LEFT JOIN TB_IAMBERRY_PRODUCT_COLOR C ON I.ITEM_COLOR_ID = C.COLOR_ID
+		WHERE
+		ITEM_SALES_ORDERID = #{0}
+		ORDER BY ITEM_ID DESC
+	</select>
+
 </mapper>

+ 0 - 3
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mq/EfastOrderServiceImpl.java

@@ -102,7 +102,6 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 				//推送微信发货消息
 				//给用户发送消息-已发货的通知
 
-				//Order orderByaddress = adminOrderService.selectOrderStatusByOrderId(order.getSalesOrderid());
 				if(orderByaddress.getSalesStatus() == 2){
 					try {
 						sendMessageUtil.orderSendSuccess("尊敬的朵粉,您的订单已发货,物流信息:",order.getSalesOrderid(), SendMessageUtil.hashmap.get(respData.getString("shipping_name")),
@@ -169,8 +168,6 @@ public class EfastOrderServiceImpl implements EfastOrderService {
 
 		List<OrderItem> items = adminOrderService.getShopOrderItemByOrderId(or.getSalesOrderid());
 		or = adminOrderService.getShopOrderByOrderId(or.getSalesOrderid());
-
-
 	}
 
 	@Override

+ 10 - 15
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/AdminOrderServiceImpl.java

@@ -94,7 +94,15 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		return this.adminOrderDao.selectShopOrder(order);
 	}
 
-	
+	public List<Order> selectShopOrderByPola(Order order) {
+		order.getPage().initRecordBegin();
+		return this.adminOrderDao.selectShopOrderByPola(order);
+	}
+	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId) {
+		return this.adminOrderDao.getShopOrderItemByOrderIdToPola(orderId);
+	}
+
+
 	public List<Order> selectShopOrderByOrderId(Order order) {
 		// TODO Auto-generated method stub
 		return this.adminOrderDao.selectShopOrderByOrderId(order);
@@ -144,13 +152,7 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		// TODO Auto-generated method stub
 		//修改订单状态为已发货状态
 		int num = this.adminOrderDao.deliverOrderByOrderId(order);
-		//添加更换刷头提示信息
-		int count = adminOrderService.addAgentOrderHint(order);
-		if (num > 0 && count > 0) {
-			return true;
-		} else {
-			return false;
-		}
+		return true;
 	}
 
 	
@@ -158,13 +160,6 @@ public class AdminOrderServiceImpl implements AdminOrderService {
 		// TODO Auto-generated method stub
 		int num = adminOrderDao.updateOrderDeliver(order);
 		return num;
-		//添加更换刷头提示信息
-//		int count = adminOrderService.addAgentOrderHint(order);
-//		if (num > 0 && count > 0) {
-//			return 1;
-//		} else {
-//			return 0;
-//		}
 	}
 
 	@Override

+ 5 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/order/dao/AdminOrderDao.java

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

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

@@ -41,6 +41,15 @@ public class AdminOrderDaoImpl implements AdminOrderDao {
 		return this.adminOrderMapper.selectShopOrder(order);
 	}
 
+	public List<Order> selectShopOrderByPola(Order order) {
+		order.getPage().initRecordBegin();
+		return this.adminOrderMapper.selectShopOrderByPola(order);
+	}
+
+	public List<OrderItem> getShopOrderItemByOrderIdToPola(String orderId) {
+		return this.adminOrderMapper.getShopOrderItemByOrderIdToPola(orderId);
+	}
+
 	@Override
 	public List<Order> selectShopOrderByOrderId(Order order) {
 		// TODO Auto-generated method stub

+ 5 - 4
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/admin/AdminOrderHandlers.java

@@ -564,10 +564,10 @@ public class AdminOrderHandlers {
                 // 执行修改操作
                 order.setSalesStatus(orderUtil.getOrderStatusByStr(actionDto.getToOrderStatus()));
                 if (adminOrderService.deliverOrderByOrderId(order)) {
-                    mv.addObject("msgObj", new MessageDto(true, "操作成功", "请到百胜系统确认该订单是否经确认,如果没有确认,该订单仍是待发货状态!"));
-                    logger.info("准备为用户推送模版信息!");
+                    mv.addObject("msgObj", new MessageDto(true, "操作成功", "订单已发货"));
+                    //logger.info("准备为用户推送模版信息!");
                     // 给百胜推送信息
-                    try {
+                   /* try {
                         MQMessage message = new MQMessage();
                         message.setServiceToMessage(orderId);
                         message.setServiceOtherMessage(actionDto.getPostFirm() + "-" + actionDto.getPostNum());
@@ -579,7 +579,8 @@ public class AdminOrderHandlers {
                         mQservice.insertMQMessage(message);
                     } catch (Exception e) {
                         // TODO: handle exception
-                    }
+                    }*/
+
                     //给用户发送消息-已发货的通知
                     try {
                         sendMessageUtil.orderSendSuccess("尊敬的朵粉,您的订单已发货,物流信息:",orderId,SendMessageUtil.hashmap.get(actionDto.getPostFirm()),

+ 25 - 3
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/order/OrderHandler.java

@@ -11,6 +11,7 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import com.iamberry.wechat.core.entity.integral.StayIntegral;
+import com.iamberry.wechat.core.entity.mq.MQMessage;
 import com.iamberry.wechat.core.entity.product.ProductColor;
 import com.iamberry.wechat.core.entity.product.QrcodeGift;
 import com.iamberry.wechat.face.integral.UseIntegralService;
@@ -66,9 +67,11 @@ import com.iamberry.wechat.tools.ValidatorUtil;
  * Update Date:2016年4月20日
  */
 @Controller
-@RequestMapping("/wechat/order")
+@RequestMapping("/order")
+//@RequestMapping("/wechat/order")
 public class OrderHandler {
 
+
 	@Autowired
 	private CartService cartService;
 
@@ -83,7 +86,8 @@ public class OrderHandler {
 
 	@Autowired
 	private PayService payService;
-
+	@Autowired
+	private MQServiceProxy mQservice;
 	@Autowired
 	private MemberService memberService;
 	@Autowired
@@ -278,7 +282,10 @@ public class OrderHandler {
 		SendPayDto dto = new SendPayDto();
 		dto.setSuccess(false);
 
-		Member member = WechatUtils.getUserBySession(request); // 当前用户
+//		Member member = WechatUtils.getUserBySession(request); // 当前用户
+		String openId  = "oZ9pv02WMRQgyDVRY1a_daYecwHI";
+		Member member = memberService.getMemberByUserOpenId(openId);
+
 
 		/** 数据格式校验 */
 		if (member == null || member.getUserOpenid() == null) {// 校验当前用户信息是否丢失
@@ -460,6 +467,21 @@ public class OrderHandler {
 				return msg;
 			}
 		} else if(flag && mustPay==0){
+
+			// 给百胜推送信息
+			try {
+				MQMessage message = new MQMessage();
+				message.setServiceToMessage(order.getSalesOrderid());
+				message.setServiceOtherMessage("efast.trade.new.add");
+				message.setServiceIsSend(2);			// 没有推送的信息
+				message.setServiceStatus(1); 			// 推送成功
+				message.setServiceType(1); 				// 添加订单信息
+				message.setServiceHandlerObjectName("efastOrderServiceImpl");
+				message.setServiceHandlerMethodName("addOrderInfoToEfast");
+				mQservice.insertMQMessage(message);
+			} catch (Exception e) {
+			}
+
 			dto.setInfo("isOK");
 			dto.setSuccess(true);
 			dto.setOrderId(order.getSalesOrderid());

+ 0 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/pay/ResponseWechatPayHandler.java

@@ -202,7 +202,6 @@ public class ResponseWechatPayHandler {
 					/*----------计算积分-----------
 					*  x * (n1*3 - n1) + y * (n2*3)  - coupon*3 + 400
 					*/
-
 					List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(orderIdMD5);
 					Integer allIntegral = 0;  //总积分
 					for(int i=0;i<orderItemList.size();i++){

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

@@ -0,0 +1,524 @@
+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;
+    }
+
+}

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

@@ -199,4 +199,9 @@ WWW_INDEX=http://www.watero.cn
 # goods_save_path
 GOODS_SAVE_PATH=/common/images/uploadimages/
 REPLACE_SECURITY_IMAGE=http://192.168.1.129:8080/watero/common/images/security.jpg
-SUCCESSINFO=SUCCESS
+SUCCESSINFO=SUCCESS
+
+#polyapi
+polyapi_appKey=438b2f6ff103422a98a9349507293bb2
+polyapi_AppSecret=5ee2084de90043be989d4d99d0dd0eaa
+#polyapi