diff --git a/hai-bweb/src/main/java/com/bweb/excelListener/ImportRechargeOrderListener.java b/hai-bweb/src/main/java/com/bweb/excelListener/ImportRechargeOrderListener.java index 6bc3aae8..75beca3b 100644 --- a/hai-bweb/src/main/java/com/bweb/excelListener/ImportRechargeOrderListener.java +++ b/hai-bweb/src/main/java/com/bweb/excelListener/ImportRechargeOrderListener.java @@ -40,7 +40,7 @@ public class ImportRechargeOrderListener extends AnalysisEventListener map = new HashMap<>(); - map.put("status" , String.valueOf(102)); + map.put("payStatus" , String.valueOf(102)); map.put("rechargeStatus" , String.valueOf(204)); List orderList = outRechargeOrderService.getListRechargeOrder(map); - if (orderList != null && orderList.size() > 0) { + System.out.println("订单数量------------------------------------------------------------------------------" + orderList.size()); + if (orderList.size() > 0) { for (OutRechargeOrder order : orderList) { try { // 查询充值子订单 Map childOrderMap = new HashMap<>(); - childOrderMap.put("parent_order_id" , order.getId()); childOrderMap.put("status" , 102); diff --git a/hai-service/src/main/java/com/hai/config/CommonSysConfig.java b/hai-service/src/main/java/com/hai/config/CommonSysConfig.java index 08e575ed..a6489d12 100644 --- a/hai-service/src/main/java/com/hai/config/CommonSysConfig.java +++ b/hai-service/src/main/java/com/hai/config/CommonSysConfig.java @@ -61,7 +61,7 @@ public class CommonSysConfig { private String czOrderNotify; private String lyApiKey; - private String lyNotifyUrl; + private String LyNotifyUrl; private String lyMemberId; private String LyPostUrl; @@ -467,10 +467,10 @@ public class CommonSysConfig { } public String getLyNotifyUrl() { - return lyNotifyUrl; + return LyNotifyUrl; } public void setLyNotifyUrl(String lyNotifyUrl) { - this.lyNotifyUrl = lyNotifyUrl; + LyNotifyUrl = lyNotifyUrl; } } diff --git a/hai-service/src/main/java/com/hai/config/HuiLianTongConfig.java b/hai-service/src/main/java/com/hai/config/HuiLianTongConfig.java index 8e061298..a109f02a 100644 --- a/hai-service/src/main/java/com/hai/config/HuiLianTongConfig.java +++ b/hai-service/src/main/java/com/hai/config/HuiLianTongConfig.java @@ -13,6 +13,7 @@ import com.hai.dao.HighGasOrderPushMapper; import com.hai.entity.HighCouponCodeOther; import com.hai.entity.HighGasOrderPush; import com.hai.entity.HighUserCoupon; +import com.hai.enum_type.OrderPushType; import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Configuration; @@ -136,26 +137,29 @@ public class HuiLianTongConfig { JSONObject object1 = HttpsUtils.doHuiLianTongPost(CommonSysConst.getSysConfig().getHuiliantongUrl() + "/coupon/api/coupon_corp/couJointDist?" + paramStr); new Thread(() -> { - if (object1 != null && object1.getString("result").equals("success")) { - JSONArray dataArray = object1.getJSONArray("data"); - for (Object data : dataArray) { - JSONObject dataObject = (JSONObject) data; - Map mapPost = new HashMap<>(); - mapPost.put("orderNo" , orderNo); - mapPost.put("distCouCount" , "1"); - mapPost.put("phone" , userPhone); - mapPost.put("distributorId" , "1JnL8YMV"); - mapPost.put("couNo" , dataObject.getString("couNo")); - mapPost.put("status" , "20"); - mapPost.put("couTypeCode" , dataObject.getString("couTypeCode")); - mapPost.put("validStartDate" , dataObject.getDate("validStartDate")); - mapPost.put("validEndDate" , dataObject.getDate("validEndDate")); - try { - HuiLianTongUnionCardConfig.syncPayOrder(mapPost); - } catch (Exception e) { - e.printStackTrace(); + try { + if (object1 != null && object1.getString("result").equals("success")) { + JSONArray dataArray = object1.getJSONArray("data"); + for (Object data : dataArray) { + JSONObject dataObject = (JSONObject) data; + Map mapPost = new HashMap<>(); + mapPost.put("orderNo" , orderNo); + mapPost.put("distCouCount" , "1"); + mapPost.put("phone" , userPhone); + mapPost.put("distributorId" , "1JnL8YMV"); + mapPost.put("couNo" , dataObject.getString("couNo")); + mapPost.put("status" , "20"); + mapPost.put("couTypeCode" , dataObject.getString("couTypeCode")); + mapPost.put("validStartDate" , dataObject.getDate("validStartDate")); + mapPost.put("validEndDate" , dataObject.getDate("validEndDate")); + JSONObject o = HuiLianTongUnionCardConfig.syncPayOrder(mapPost); + System.out.println("订单同步请求参数---------" + mapPost); + System.out.println("订单同步请求结果---------" + o); + } } + } catch (Exception e) { + e.printStackTrace(); } }).start(); diff --git a/hai-service/src/main/java/com/hai/config/RechargeConfig.java b/hai-service/src/main/java/com/hai/config/RechargeConfig.java index fcb87dbd..003dc7bc 100644 --- a/hai-service/src/main/java/com/hai/config/RechargeConfig.java +++ b/hai-service/src/main/java/com/hai/config/RechargeConfig.java @@ -63,7 +63,7 @@ public class RechargeConfig { paramMap.put("out_trade_num" , object.getString("out_trade_num")); paramMap.put("product_id" , object.getString("product_id")); paramMap.put("mobile" , object.getString("mobile")); - paramMap.put("notify_url" , CommonSysConst.getSysConfig().getLyNotifyUrl()); + paramMap.put("notify_url" , object.getString("notifyUrl")); paramMap.put("userid" , CommonSysConst.getSysConfig().getLyMemberId()); paramMap.put("sign", WxUtils.generateSignatureLy(paramMap , CommonSysConst.getSysConfig().getLyApiKey() , WXPayConstants.SignType.MD5)); return HttpsUtils.doPost(CommonSysConst.getSysConfig().getLyPostUrl()+ "index/recharge", paramMap); @@ -108,8 +108,7 @@ public class RechargeConfig { map.put("app_key" , CommonSysConst.getSysConfig().getJjAppKey()); map.put("timestamp" , timestamp.substring(0,timestamp.length()-3)); map.put("is_fast" , object.getString("is_fast")); - map.put("notify_url" , CommonSysConst.getSysConfig().getJjNotifyUrl()); - + map.put("notify_url" , object.getString("notifyUrl")); String signStr = WxUtils.generateSignatureAppSecret(map, CommonSysConst.getSysConfig().getJjAppSecret() , WXPayConstants.SignType.MD5); map.put("sign" , signStr); diff --git a/hai-service/src/main/java/com/hai/service/impl/HltUnionCardVipServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/HltUnionCardVipServiceImpl.java index 72e407f7..1a9facf7 100644 --- a/hai-service/src/main/java/com/hai/service/impl/HltUnionCardVipServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/HltUnionCardVipServiceImpl.java @@ -199,7 +199,7 @@ public class HltUnionCardVipServiceImpl implements HltUnionCardVipService { HuiLianTongUnionCardConfig.submitSms(phone , "“E信通春节关怀”3张4元话费券、99折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。"); } else { if (equityLevel == 1) { - HuiLianTongUnionCardConfig.submitSms(phone , "“E信通会员专属”3张4元话费券、2张96折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。"); + HuiLianTongUnionCardConfig.submitSms(phone , "“E信通会员专属”3张4元话费券、2张99折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。"); } else { HuiLianTongUnionCardConfig.submitSms(phone , "“工会卡用户专属”2元话费券、2张96折加油券已到账,打开“嗨森逛”微信小程序>我的>我的优惠券即可直接使用,到账之日起1月内(30天)有效。"); } diff --git a/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java b/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java index 5fa951ac..30846ad2 100644 --- a/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java +++ b/hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java @@ -587,6 +587,7 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService { public void rechargeOrderToRefund(Long orderId) throws Exception { OutRechargeOrder order = outRechargeOrderService.findByOrderId(orderId); + System.out.println("发起退款------------------------------------------------------------------------------" + orderId); // 101.待支付 102.已支付 100.已完成 104.已取消 105.已退款 if (order.getPayStatus() != 102) { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法退款,订单不处于已支付状态"); @@ -597,88 +598,84 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService { throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法退款,订单处于充值中状态"); } - // 1:支付宝 2:微信 3:汇联通工会卡 4:银联 5:银联分期 - if (order.getPayType() == null) { - // 退还积分 - if (order.getIntegralNum() != null) { - highUserService.goldHandle(order.getUserId(), order.getIntegralNum().intValue(), 1, 3, order.getId()); - if (order.getPayRealPrice().compareTo(new BigDecimal(0)) == 0) { - order.setPayStatus(105); - order.setRechargeStatus(203); - order.setRefundTime(new Date()); - outRechargeOrderService.updateOrder(order); - } + // 退还积分 + if (order.getIntegralNum().compareTo(new BigDecimal(0)) > 0) { + highUserService.goldHandle(order.getUserId(), order.getIntegralNum().intValue(), 1, 3, order.getId()); + if (order.getPayRealPrice().compareTo(new BigDecimal(0)) == 0) { + order.setPayStatus(105); + order.setRechargeStatus(203); + order.setRefundTime(new Date()); + outRechargeOrderService.updateOrder(order); } - } else { - // 微信退款 - if (order.getPayType() == 2) { - Map param = new HashMap<>(); - param.put("appid", "wx637bd6f7314daa46"); - param.put("mch_id", "1289663601"); - param.put("sub_mch_id", "1614670195"); - param.put("nonce_str", WxUtils.makeNonStr()); - param.put("transaction_id", order.getPaySerialNo()); - param.put("out_refund_no", "HFR" + new Date().getTime()); - param.put("total_fee", String.valueOf(order.getPayRealPrice().multiply(new BigDecimal("100")).intValue())); - param.put("refund_fee", String.valueOf(order.getPayRealPrice().multiply(new BigDecimal("100")).intValue())); - param.put("sign_type", "HMAC-SHA256"); - - String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5", WXPayConstants.SignType.HMACSHA256); - param.put("sign", signStr); - - String resultXmL = doRefundRequest(param.get("mch_id"), WxUtils.mapToXml(param)); - OrderRefundModel orderRefundModel = XmlUtil.getObjectFromXML(resultXmL, OrderRefundModel.class); - if (orderRefundModel.getResult_code().equals("SUCCESS")) { - order.setPayStatus(105); - order.setRechargeStatus(203); - order.setRefundTime(new Date()); - order.setOutRefundNo(orderRefundModel.getOut_refund_no()); - order.setRefundId(orderRefundModel.getRefund_id()); - order.setRefundFee(new BigDecimal(orderRefundModel.getRefund_fee()).divide(new BigDecimal("100"))); - outRechargeOrderService.updateOrder(order); - } else { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!错误代码:" + orderRefundModel.getErr_code() + ",错误描述" + orderRefundModel.getErr_code_des()); - } + } + // 微信退款 + if (order.getPayType() == 2) { + Map param = new HashMap<>(); + param.put("appid", "wx637bd6f7314daa46"); + param.put("mch_id", "1289663601"); + param.put("sub_mch_id", "1614670195"); + param.put("nonce_str", WxUtils.makeNonStr()); + param.put("transaction_id", order.getPaySerialNo()); + param.put("out_refund_no", "HFR" + new Date().getTime()); + param.put("total_fee", String.valueOf(order.getPayRealPrice().multiply(new BigDecimal("100")).intValue())); + param.put("refund_fee", String.valueOf(order.getPayRealPrice().multiply(new BigDecimal("100")).intValue())); + param.put("sign_type", "HMAC-SHA256"); + + String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5", WXPayConstants.SignType.HMACSHA256); + param.put("sign", signStr); + + String resultXmL = doRefundRequest(param.get("mch_id"), WxUtils.mapToXml(param)); + OrderRefundModel orderRefundModel = XmlUtil.getObjectFromXML(resultXmL, OrderRefundModel.class); + if (orderRefundModel.getResult_code().equals("SUCCESS")) { + order.setPayStatus(105); + order.setRechargeStatus(203); + order.setRefundTime(new Date()); + order.setOutRefundNo(orderRefundModel.getOut_refund_no()); + order.setRefundId(orderRefundModel.getRefund_id()); + order.setRefundFee(new BigDecimal(orderRefundModel.getRefund_fee()).divide(new BigDecimal("100"))); + outRechargeOrderService.updateOrder(order); + } else { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!错误代码:" + orderRefundModel.getErr_code() + ",错误描述" + orderRefundModel.getErr_code_des()); } + } - // 工会卡退款 - if (order.getPayType() == 3) { - JSONObject jsonObject = HuiLianTongUnionCardConfig.refund("HFR" + new Date().getTime(), order.getOrderNo()); - - if (jsonObject == null) { - jsonObject = HuiLianTongUnionCardConfig.refund("HFR" + new Date().getTime(), order.getOrderNo()); - } - - JSONObject dataObject = HuiLianTongUnionCardConfig.resolveResponse(jsonObject.getString("data")); - - if (dataObject.getBoolean("success") || Objects.equals(dataObject.getString("message"), "原交易已撤销,不可再次操作")) { - order.setPayStatus(105); - order.setRechargeStatus(203); - order.setRefundTime(new Date()); - order.setOutRefundNo("HFR" + new Date().getTime()); - order.setRefundFee(order.getPayRealPrice()); - order.setRefundId(dataObject.getString("orderId")); - outRechargeOrderService.updateOrder(order); + // 工会卡退款 + if (order.getPayType() == 3) { + JSONObject jsonObject = HuiLianTongUnionCardConfig.refund("HFR" + new Date().getTime(), order.getOrderNo()); - } else { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, dataObject.getString("message")); - } + if (jsonObject == null) { + jsonObject = HuiLianTongUnionCardConfig.refund("HFR" + new Date().getTime(), order.getOrderNo()); } - // 银联退款 - if (order.getPayType() == 4) { - // 订单退款 - JSONObject refund = UnionPayConfig.zwrefund(UnionPayConfig.MER_ID2, UnionPayConfig.TERM_ID2, order.getOrderNo(), order.getPaySerialNo(), order.getPayRealPrice().multiply(new BigDecimal("100")).longValue()); - if (!refund.getString("resultcode").equals("W6")) { - throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, refund.getString("returnmsg")); - } + JSONObject dataObject = HuiLianTongUnionCardConfig.resolveResponse(jsonObject.getString("data")); + + if (dataObject.getBoolean("success") || Objects.equals(dataObject.getString("message"), "原交易已撤销,不可再次操作")) { order.setPayStatus(105); order.setRechargeStatus(203); order.setRefundTime(new Date()); - order.setOutRefundNo(refund.getString("oriwtorderid")); + order.setOutRefundNo("HFR" + new Date().getTime()); order.setRefundFee(order.getPayRealPrice()); + order.setRefundId(dataObject.getString("orderId")); outRechargeOrderService.updateOrder(order); + + } else { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, dataObject.getString("message")); + } + } + + // 银联退款 + if (order.getPayType() == 4) { + // 订单退款 + JSONObject refund = UnionPayConfig.zwrefund(UnionPayConfig.MER_ID2, UnionPayConfig.TERM_ID2, order.getOrderNo(), order.getPaySerialNo(), order.getPayRealPrice().multiply(new BigDecimal("100")).longValue()); + if (!refund.getString("resultcode").equals("W6")) { + throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, refund.getString("returnmsg")); } + order.setPayStatus(105); + order.setRechargeStatus(203); + order.setRefundTime(new Date()); + order.setOutRefundNo(refund.getString("oriwtorderid")); + order.setRefundFee(order.getPayRealPrice()); + outRechargeOrderService.updateOrder(order); } @@ -755,21 +752,46 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService { outRechargeChildOrderService.updateOrder(childOrder); type = childOrder.getRechargePlatform(); + } else { + // 查询充值子订单 + Map childOrderMap103 = new HashMap<>(); + + childOrderMap.put("parent_order_id", outRechargeOrder.getId()); + childOrderMap.put("status", 103); + + List childOrderList103 = outRechargeChildOrderService.getListRechargeChildOrder(childOrderMap103); + if (childOrderList103.size() > 0) { + type = childOrderList103.get(0).getRechargePlatform(); + } + } + + if (type == 2) { + type = 1; + } else { + type++; } JSONObject object = new JSONObject(); String orderNo = "CZ" + DateUtil.date2String(new Date(), "yyyyMMddHHmmss") + IDGenerator.nextId(5); - String[] rechargePlatform = outRechargePrice.getRechargePlatform().split("-"); + String string = outRechargePrice.getRechargePlatform().substring(1,outRechargePrice.getRechargePlatform().length()-1); + + String[] rechargePlatform = string.split("-"); + + if (string.length() == 1) { + type = Integer.parseInt(string); + } for (String s : rechargePlatform) { // 尖椒充值 - if (s.equals("1") && (type == 2 || type == 0)) { + if (s.equals("1") && type == 1) { object.put("out_order_id", orderNo); object.put("amount", outRechargePrice.getRechargePrice()); object.put("mobile", outRechargeOrder.getRechargeContent()); - if (outRechargePrice.getRechargeType() == 1) { + object.put("notifyUrl", CommonSysConst.getSysConfig().getJjNotifyUrl()); + System.out.println("outRechargeOrder-----------------------------------------------------------------------------------------------------------------------------------------------------" + outRechargePrice.getRechargeType()); + if (outRechargeOrder.getRechargeType() == 1) { object.put("is_fast", 1); } JSONObject returnObject = RechargeConfig.rechargeOrderByJj(object); @@ -782,11 +804,14 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService { rechargePlatformType = 1; break; } - if (s.equals("2") && (type == 1 || type == 0)) { + // 龙阅充值 + if (s.equals("2") && type == 2) { object.put("out_trade_num", orderNo); object.put("product_id", outRechargePrice.getGoodsId()); object.put("mobile", outRechargeOrder.getRechargeContent()); + object.put("notifyUrl", CommonSysConst.getSysConfig().getLyNotifyUrl()); JSONObject returnObject = RechargeConfig.rechargeOrderByLy(object); + System.out.println("龙阅请求回调地址---------------------" + CommonSysConst.getSysConfig().getLyNotifyUrl()); object.put("return_content", returnObject); if (returnObject != null && returnObject.getLong("errno") == 0) { childOrder.setStatus(102);