From bda241e92bda961c6152d81bd59fba6584402b76 Mon Sep 17 00:00:00 2001 From: xhxu Date: Tue, 21 Jun 2022 01:11:48 +0800 Subject: [PATCH] //tt push --- .../schedule/TtOrderPushErrorSchedule.java | 28 +++--- .../pay/impl/TtPayServiceApacheHttpImpl.java | 2 +- .../douyin/payv2/auth/TtPayCredentials.java | 2 +- ...InsideOrderPushDeliveryMsgServiceImpl.java | 88 +++++++++++++------ 4 files changed, 75 insertions(+), 45 deletions(-) diff --git a/mallinkSchedule/src/main/java/com/iformall/schedule/TtOrderPushErrorSchedule.java b/mallinkSchedule/src/main/java/com/iformall/schedule/TtOrderPushErrorSchedule.java index 6503895b9..78dddb7a4 100644 --- a/mallinkSchedule/src/main/java/com/iformall/schedule/TtOrderPushErrorSchedule.java +++ b/mallinkSchedule/src/main/java/com/iformall/schedule/TtOrderPushErrorSchedule.java @@ -23,19 +23,19 @@ public class TtOrderPushErrorSchedule { @Autowired private WxOrderService wxOrderService; -// @Async -// @Scheduled(cron = "0 0 1 * * ?") -// public void OrderPushErrorTaskSchedule() { -// List orderPushErrors = ttOrderPushErrorMapper.findList(new TtOrderPushError()); -// if(orderPushErrors != null && orderPushErrors.size() > 0){ -// for (TtOrderPushError error:orderPushErrors) { -// try{ -// wxOrderService.sendInsideOrderPushMsg(error,error.getId()); -// }catch(Exception e){ -// logger.error("订单同步重试error"); -// } -// } -// } -// } + @Async + @Scheduled(cron = "0 0 */2 * * ?") + public void OrderPushErrorTaskSchedule() { + List orderPushErrors = ttOrderPushErrorMapper.findList(new TtOrderPushError()); + if(orderPushErrors != null && orderPushErrors.size() > 0){ + for (TtOrderPushError error:orderPushErrors) { + try{ + wxOrderService.sendInsideOrderPushDeliveryMsg(error,null,error.getId()); + }catch(Exception e){ + logger.error("订单同步重试error"); + } + } + } + } } \ No newline at end of file diff --git a/mallinkService/src/main/java/com/iformall/douyin/pay/impl/TtPayServiceApacheHttpImpl.java b/mallinkService/src/main/java/com/iformall/douyin/pay/impl/TtPayServiceApacheHttpImpl.java index e6082e374..0eeef429e 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/pay/impl/TtPayServiceApacheHttpImpl.java +++ b/mallinkService/src/main/java/com/iformall/douyin/pay/impl/TtPayServiceApacheHttpImpl.java @@ -120,7 +120,7 @@ public class TtPayServiceApacheHttpImpl extends BaseTtPayServiceImpl { private StringEntity createEntry(String requestStr) { try { - return new StringEntity(new String(requestStr.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1)); + return new StringEntity(new String(requestStr.getBytes(StandardCharsets.UTF_8), StandardCharsets.UTF_8)); } catch (UnsupportedEncodingException e) { //cannot happen this.log.error(e.getMessage(), e); diff --git a/mallinkService/src/main/java/com/iformall/douyin/payv2/auth/TtPayCredentials.java b/mallinkService/src/main/java/com/iformall/douyin/payv2/auth/TtPayCredentials.java index dca5f3295..cc83b4e95 100644 --- a/mallinkService/src/main/java/com/iformall/douyin/payv2/auth/TtPayCredentials.java +++ b/mallinkService/src/main/java/com/iformall/douyin/payv2/auth/TtPayCredentials.java @@ -79,7 +79,7 @@ public class TtPayCredentials implements Credentials { String body = ""; // PATCH,POST,PUT - body = EntityUtils.toString(((HttpEntityEnclosingRequest) request).getEntity()); + body = EntityUtils.toString(((HttpEntityEnclosingRequest) request).getEntity(),StandardCharsets.UTF_8); return request.getRequestLine().getMethod() + "\n" + canonicalUrl + "\n" diff --git a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java index 8f50cb899..acbf226df 100644 --- a/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/msg/impl/FmInsideOrderPushDeliveryMsgServiceImpl.java @@ -59,6 +59,10 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { @Autowired private MaUtil maUtil; + @Autowired + private TtOrderPushErrorMapper ttOrderPushErrorMapper; + + @Override public void send(BaseMsg baseMsg) throws Exception{ @@ -72,39 +76,65 @@ public class FmInsideOrderPushDeliveryMsgServiceImpl implements MsgSendService { tenantEntity.setTenantId(msg.getTenantId()); tenantEntity.setParentTenantId(msg.getParentTenantId()); - WxCouponOrder couponOrder = wxCouponOrderService.getById(msg.getCouponOrderId(), tenantEntity.getTenantId()); - if(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode().equals(couponOrder.getCouponOrderStatus()) - && EnumPayWay.PAY_WAY_TT.getCode().equals(couponOrder.getPayVendor())){ - WxOrder order = wxOrderService.getById(couponOrder.getOrderId(), tenantEntity.getTenantId()); - String itemOrderId = (String) order.getExpParamValue("itemOrderId"); - WxMerchant merchant = wxMerchantService.getById(couponOrder.getBMerchantId()); - String shop_name = merchant.getName(); - String ext_valid_shop_id = couponOrder.getBMerchantId().toString(); - TtMerchantPoi poi = ttMerchantPoiService.getById(couponOrder.getBMerchantId()); - - - - WxAppinfo appinfo = wxAppinfoService.getCAppInfo(tenantEntity,EnumPayWay.PAY_WAY_TT.getPlat()); - WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); - TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount); - - TtOrderPushDeliveryRequest request = new TtOrderPushDeliveryRequest(); - List itemOrderList = new ArrayList<>(); - TtOrderPushDeliveryRequest.ItemOrder itemOrder = new TtOrderPushDeliveryRequest.ItemOrder(); - itemOrder.setItemOrderId(itemOrderId); - itemOrderList.add(itemOrder); - request.setItemOrderList(itemOrderList); - JSONObject poiInfo = new JSONObject(); - poiInfo.put("shop_name",shop_name); - poiInfo.put("ext_valid_shop_id",ext_valid_shop_id); - if(poi != null){ - poiInfo.put("valid_poi_id_str",poi.getPoiId()); + try{ + WxCouponOrder couponOrder = wxCouponOrderService.getById(msg.getCouponOrderId(), tenantEntity.getTenantId()); + if(EnumCouponOrderStatus.COUPON_ORDER_USED.getCode().equals(couponOrder.getCouponOrderStatus()) + && EnumPayWay.PAY_WAY_TT.getCode().equals(couponOrder.getPayVendor())){ + WxOrder order = wxOrderService.getById(couponOrder.getOrderId(), tenantEntity.getTenantId()); + String itemOrderId = (String) order.getExpParamValue("itemOrderId"); + WxMerchant merchant = wxMerchantService.getById(couponOrder.getBMerchantId()); + String shop_name = merchant.getName(); + String ext_valid_shop_id = couponOrder.getBMerchantId().toString(); + TtMerchantPoi poi = ttMerchantPoiService.getById(couponOrder.getBMerchantId()); + + + WxAppinfo appinfo = wxAppinfoService.getCAppInfo(tenantEntity,EnumPayWay.PAY_WAY_TT.getPlat()); + WxPayAccount payAccount = wxPayAccountService.getById(appinfo.getPayId()); + TtPayService ttPayService = maUtil.getTtPayService(appinfo, payAccount); + + TtOrderPushDeliveryRequest request = new TtOrderPushDeliveryRequest(); + List itemOrderList = new ArrayList<>(); + TtOrderPushDeliveryRequest.ItemOrder itemOrder = new TtOrderPushDeliveryRequest.ItemOrder(); + itemOrder.setItemOrderId(itemOrderId); + itemOrderList.add(itemOrder); + request.setItemOrderList(itemOrderList); + JSONObject poiInfo = new JSONObject(); + poiInfo.put("shop_name",shop_name); + poiInfo.put("ext_valid_shop_id",ext_valid_shop_id); + if(poi != null){ + poiInfo.put("valid_poi_id_str",poi.getPoiId()); + } + request.setPoiInfo(poiInfo.toJSONString()); + boolean b = ttPayService.pushDelivery(request); + if(b){ + ttOrderPushErrorMapper.deleteById(msg.getCouponOrderId()); + } } - request.setPoiInfo(poiInfo.toJSONString()); - ttPayService.pushDelivery(request); + }catch(Exception e){ + TtOrderPushError pushError = new TtOrderPushError(); + pushError.setId(msg.getCouponOrderId()); + pushError.updateTenantInfo(tenantEntity); + pushError.setErrMsg(e.getMessage()); + saveOrUpdate(pushError); } } + private void saveOrUpdate(TtOrderPushError pushError){ + Date now = new Date(); + TtOrderPushError pushError1 = ttOrderPushErrorMapper.selectById(pushError.getId()); + if(pushError1 != null){ + pushError1.setErrMsg(pushError.getErrMsg()); + pushError1.setUpdateDate(now); + ttOrderPushErrorMapper.updateById(pushError1); + }else{ + pushError.setCreateDate(now); + pushError.setUpdateDate(now); + ttOrderPushErrorMapper.insert(pushError); + } + } + + + }