|
@@ -337,7 +337,155 @@ public class ResponseWechatPayHandler {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 销售订单支付回调方法 -- tooth订单返回
|
|
|
|
+ */
|
|
|
|
+ //@RequestMapping("/testOrderPayBack")
|
|
|
|
+ public synchronized void testOrderPayBack(HttpServletRequest request,
|
|
|
|
+ HttpServletResponse response, String orderId, String openId) throws IOException {
|
|
|
|
+ String orderIdMD5 = orderId;
|
|
|
|
+ if (true) {
|
|
|
|
+ /*免费领取充电器支付邮费---start*/
|
|
|
|
+ if (orderIdMD5.startsWith("mflq")) {
|
|
|
|
+ ChargerReceive cr = new ChargerReceive();
|
|
|
|
+ cr.setReceiveOrderId(orderIdMD5);
|
|
|
|
+ cr.setReceiveStatus(2);
|
|
|
|
+ cr.setReceiveTransactionId("");
|
|
|
|
+ cr.setReceiveTransactionDate(new Date());
|
|
|
|
+ Integer flag = chargReceiveService.updateByOrderId(cr);
|
|
|
|
+ if (flag < 1) {
|
|
|
|
+ System.out.println("免费领取充电器支付邮费回调修改记录失败!");
|
|
|
|
+ }
|
|
|
|
+ /*免费领取充电器支付邮费---end*/
|
|
|
|
+ } else {
|
|
|
|
+ Date nowDate = new Date();
|
|
|
|
+ // 组装数据
|
|
|
|
+ Order order = new Order();
|
|
|
|
+ order.setSalesOrderid(orderIdMD5);
|
|
|
|
+ order.setSalesStatus(2); // 已支付
|
|
|
|
+ order.setSalesTransactionId(""); // 微信支付ID
|
|
|
|
+ order.setSalesTransactionDate(new Date()); // 微信支付时间
|
|
|
|
+ order.setSalesOpenid(openId);
|
|
|
|
+
|
|
|
|
+ Order or = adminOrderService.getShopOrderByOrderId(orderIdMD5);
|
|
|
|
+ if (or.getSalesStatus() != 1) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 修改订单状态
|
|
|
|
+ int count = cartService.updateOrderStatus(order);
|
|
|
|
+
|
|
|
|
+ /*计算使用优惠券优惠的金额*/
|
|
|
|
+ Integer couponAmount = 0;
|
|
|
|
+ //修改优惠券状态
|
|
|
|
+ order = cartService.selectOrderInfoById(order);
|
|
|
|
+ String couponId = order.getCouponId();
|
|
|
|
+ if (couponId != null && !couponId.equals("")) {
|
|
|
|
+ CouponItem couponItem = new CouponItem();
|
|
|
|
+ couponItem.setCouponItemId(couponId);
|
|
|
|
+ couponItem.setCouponUseStatus(2);
|
|
|
|
+ couponItem.setCouponUseDate(new Date());
|
|
|
|
+ couponItemService.updateCouponItemById(couponItem);
|
|
|
|
+
|
|
|
|
+ CouponItemDto couponItemDto = couponItemService.getCouponItemById(couponId);
|
|
|
|
+ if (couponItemDto.getCouponType() == 1) { //按照金额
|
|
|
|
+ couponAmount = couponItemDto.getCouponReduce() / 100;
|
|
|
|
+ } else if (couponItemDto.getCouponType() == 2) { ////按照折扣
|
|
|
|
+ couponAmount = or.getSalesAmount() - or.getSalesAmount() / (couponItemDto.getCouponReduce() / 100) / 100;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*-- 计算积分 ----*/
|
|
|
|
+ List<OrderItem> orderItemList = adminOrderService.getShopOrderItemByOrderId(orderIdMD5);
|
|
|
|
+ Integer allIntegral = 0; //总积分
|
|
|
|
+ Integer allBrushAmount = 0; //牙刷总金额与优惠券相减 -- 未乘以3
|
|
|
|
+
|
|
|
|
+ for (int i = 0; i < orderItemList.size(); i++) {
|
|
|
|
+ OrderItem orderItem = orderItemList.get(i);
|
|
|
|
+ Integer amount = orderItem.getItemProductDiscount() / 100; //商品优惠价
|
|
|
|
+ if (orderItem.getItemProductType() == 100) { //类型为电动牙刷
|
|
|
|
+ Integer integral = amount * (orderItem.getItemNum() * 3 - orderItem.getItemNum()); //计算牙刷*2的金额
|
|
|
|
+ allIntegral += integral;
|
|
|
|
+ } else {
|
|
|
|
+ Integer integral = amount * (orderItem.getItemNum() * 3);
|
|
|
|
+ allBrushAmount += integral;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (couponAmount > 0) { //有优惠券减去优惠券的金额 -- 先用牙刷总金额减去优惠券
|
|
|
|
+ allBrushAmount += -couponAmount;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * start
|
|
|
|
+ * 两种情况:
|
|
|
|
+ * 1) 刷头金额低于抵扣金额时:支付金额*2;
|
|
|
|
+ * 2) 刷头金额高于等于抵扣金额时:399*2
|
|
|
|
+ */
|
|
|
|
+ if(allBrushAmount < 0){ //刷头金额低于抵扣金额 ==> 牙刷金额*2 + (刷头金额 - 优惠券)*2
|
|
|
|
+ allIntegral += allBrushAmount * 2; //牙刷减去(优惠券减去刷头的金额)
|
|
|
|
+ }else{ //刷头金额高于等于抵扣金额
|
|
|
|
+ //allIntegral += allBrushAmount * 3; //----- 删除
|
|
|
|
+ }
|
|
|
|
+ /*-----end-----*/
|
|
|
|
+
|
|
|
|
+ ratFWLogger.error(this, "订单:" + orderIdMD5 + "订单使用优惠卷金额:" + couponAmount + "所得积分为:" + allIntegral);
|
|
|
|
+ boolean flag = apparatusService.addStayIntegral(or.getSalesOpenid(), 3, allIntegral, or.getSalesOrderid(),null);
|
|
|
|
+ ratFWLogger.info("积分是否入账:" + flag);
|
|
|
|
+ /*----------计算积分-----------*/
|
|
|
|
+
|
|
|
|
+ if (count < 1) {
|
|
|
|
+ ratFWLogger.info("修改订单失败:" + flag);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // 给订单的回调修改状态
|
|
|
|
+ try {
|
|
|
|
+ MQMessage message = new MQMessage();
|
|
|
|
+ message.setServiceToMessage(orderIdMD5);
|
|
|
|
+ message.setServiceOtherMessage("");
|
|
|
|
+ message.setServiceIsSend(2); // 没有推送的信息
|
|
|
|
+ message.setServiceStatus(1); // 推送成功
|
|
|
|
+ message.setServiceHandlerObjectName("cartServiceImpl");
|
|
|
|
+ message.setServiceHandlerMethodName("supdateStateByOrderId");
|
|
|
|
+ message.setServiceType(1);
|
|
|
|
+ mQservice.insertMQMessage(message);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ // TODO: handle exception
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// //推送消息到微信
|
|
|
|
+// DecimalFormat df = new DecimalFormat("0.00");
|
|
|
|
+// String payMoney = df.format((float) or.getSalesYetAmount() / 100) + "元";
|
|
|
|
+// try {
|
|
|
|
+// sendMessageUtil.probationPaySuccess(
|
|
|
|
+// ResultInfo.PAYSUCCESS,
|
|
|
|
+// payMoney,
|
|
|
|
+// orderItemList.get(0).getItemProductName() + "...",
|
|
|
|
+// ResultInfo.sendRemark1,
|
|
|
|
+// order.getSalesOpenid(),
|
|
|
|
+// ResultInfo.ORDER_DETAIL + order.getSalesOrderid());
|
|
|
|
+// } catch (Exception e) {
|
|
|
|
+// System.out.println("推送支付成功消息失败!");
|
|
|
|
+// }
|
|
|
|
+ //System.out.println("===========pay 201 插入返利到百胜完成==============");
|
|
|
|
+// try { //修改用户购买记录为已购买
|
|
|
|
+// memberService.updateIsBaughtByOpenid(openId, 2);
|
|
|
|
+// //更新用户绑定状态
|
|
|
|
+// Member member = memberService.getMemberByUserOpenId(order.getSalesOpenid());
|
|
|
|
+// if (member.getUserIsFlag() != null && member.getUserIsFlag() == 1) {
|
|
|
|
+// member.setUserIsFlag(2);//终身绑定
|
|
|
|
+// homeService.updateMemberIsFlagByOpenid(member);
|
|
|
|
+// }
|
|
|
|
+// QrcodeResult qr = temporaryQrcodeService.applyTempQrcode(order.getSalesOpenid());//为用户生成二维码
|
|
|
|
+// inLongLogger.info("为用户-->" + order.getSalesOpenid() + ",生成二维码:" + qr.getQroceUrl());
|
|
|
|
+// } catch (Exception e) {
|
|
|
|
+// System.out.println("修改已购买状态和终身绑定失败!");
|
|
|
|
+// e.printStackTrace();
|
|
|
|
+// }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* 解析xml片段为Map
|
|
* 解析xml片段为Map
|
|
* @param xml
|
|
* @param xml
|