修改话费订单导出

dev-discount
袁野 2 years ago
parent 67ef0ab6e9
commit a74da6f088
  1. 3
      hai-bweb/src/main/java/com/bweb/excelListener/ImportRechargeOrderListener.java
  2. 6
      hai-service/src/main/java/com/hai/config/CommonSysConfig.java
  3. 40
      hai-service/src/main/java/com/hai/config/HuiLianTongConfig.java
  4. 5
      hai-service/src/main/java/com/hai/config/RechargeConfig.java
  5. 163
      hai-service/src/main/java/com/hai/service/impl/OutRechargeOrderServiceImpl.java

@ -40,7 +40,7 @@ public class ImportRechargeOrderListener extends AnalysisEventListener<ExportOut
OutRechargeOrder rechargeOrder = outRechargeOrderService.findByOrderNo(data.getOrderNo()); OutRechargeOrder rechargeOrder = outRechargeOrderService.findByOrderNo(data.getOrderNo());
if (rechargeOrder.getRechargeStatus() != 201 || rechargeOrder.getRechargeType() != 2) { if (rechargeOrder.getRechargeStatus() != 203 || rechargeOrder.getRechargeType() != 2) {
data.setErrorMessage("当前订单状态错误。"); data.setErrorMessage("当前订单状态错误。");
errorData.add(data); errorData.add(data);
return; return;
@ -56,7 +56,6 @@ public class ImportRechargeOrderListener extends AnalysisEventListener<ExportOut
errorData.add(data); errorData.add(data);
return; return;
} }
} }

@ -61,7 +61,7 @@ public class CommonSysConfig {
private String czOrderNotify; private String czOrderNotify;
private String lyApiKey; private String lyApiKey;
private String lyNotifyUrl; private String LyNotifyUrl;
private String lyMemberId; private String lyMemberId;
private String LyPostUrl; private String LyPostUrl;
@ -467,10 +467,10 @@ public class CommonSysConfig {
} }
public String getLyNotifyUrl() { public String getLyNotifyUrl() {
return lyNotifyUrl; return LyNotifyUrl;
} }
public void setLyNotifyUrl(String lyNotifyUrl) { public void setLyNotifyUrl(String lyNotifyUrl) {
this.lyNotifyUrl = lyNotifyUrl; LyNotifyUrl = lyNotifyUrl;
} }
} }

@ -13,6 +13,7 @@ import com.hai.dao.HighGasOrderPushMapper;
import com.hai.entity.HighCouponCodeOther; import com.hai.entity.HighCouponCodeOther;
import com.hai.entity.HighGasOrderPush; import com.hai.entity.HighGasOrderPush;
import com.hai.entity.HighUserCoupon; import com.hai.entity.HighUserCoupon;
import com.hai.enum_type.OrderPushType;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; 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); JSONObject object1 = HttpsUtils.doHuiLianTongPost(CommonSysConst.getSysConfig().getHuiliantongUrl() + "/coupon/api/coupon_corp/couJointDist?" + paramStr);
new Thread(() -> { new Thread(() -> {
if (object1 != null && object1.getString("result").equals("success")) { try {
JSONArray dataArray = object1.getJSONArray("data"); if (object1 != null && object1.getString("result").equals("success")) {
for (Object data : dataArray) { JSONArray dataArray = object1.getJSONArray("data");
JSONObject dataObject = (JSONObject) data; for (Object data : dataArray) {
Map<String, Object> mapPost = new HashMap<>(); JSONObject dataObject = (JSONObject) data;
mapPost.put("orderNo" , orderNo); Map<String, Object> mapPost = new HashMap<>();
mapPost.put("distCouCount" , "1"); mapPost.put("orderNo" , orderNo);
mapPost.put("phone" , userPhone); mapPost.put("distCouCount" , "1");
mapPost.put("distributorId" , "1JnL8YMV"); mapPost.put("phone" , userPhone);
mapPost.put("couNo" , dataObject.getString("couNo")); mapPost.put("distributorId" , "1JnL8YMV");
mapPost.put("status" , "20"); mapPost.put("couNo" , dataObject.getString("couNo"));
mapPost.put("couTypeCode" , dataObject.getString("couTypeCode")); mapPost.put("status" , "20");
mapPost.put("validStartDate" , dataObject.getDate("validStartDate")); mapPost.put("couTypeCode" , dataObject.getString("couTypeCode"));
mapPost.put("validEndDate" , dataObject.getDate("validEndDate")); mapPost.put("validStartDate" , dataObject.getDate("validStartDate"));
try { mapPost.put("validEndDate" , dataObject.getDate("validEndDate"));
HuiLianTongUnionCardConfig.syncPayOrder(mapPost); JSONObject o = HuiLianTongUnionCardConfig.syncPayOrder(mapPost);
} catch (Exception e) { System.out.println("订单同步请求参数---------" + mapPost);
e.printStackTrace(); System.out.println("订单同步请求结果---------" + o);
} }
} }
} catch (Exception e) {
e.printStackTrace();
} }
}).start(); }).start();

@ -63,7 +63,7 @@ public class RechargeConfig {
paramMap.put("out_trade_num" , object.getString("out_trade_num")); paramMap.put("out_trade_num" , object.getString("out_trade_num"));
paramMap.put("product_id" , object.getString("product_id")); paramMap.put("product_id" , object.getString("product_id"));
paramMap.put("mobile" , object.getString("mobile")); 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("userid" , CommonSysConst.getSysConfig().getLyMemberId());
paramMap.put("sign", WxUtils.generateSignatureLy(paramMap , CommonSysConst.getSysConfig().getLyApiKey() , WXPayConstants.SignType.MD5)); paramMap.put("sign", WxUtils.generateSignatureLy(paramMap , CommonSysConst.getSysConfig().getLyApiKey() , WXPayConstants.SignType.MD5));
return HttpsUtils.doPost(CommonSysConst.getSysConfig().getLyPostUrl()+ "index/recharge", paramMap); 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("app_key" , CommonSysConst.getSysConfig().getJjAppKey());
map.put("timestamp" , timestamp.substring(0,timestamp.length()-3)); map.put("timestamp" , timestamp.substring(0,timestamp.length()-3));
map.put("is_fast" , object.getString("is_fast")); 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); String signStr = WxUtils.generateSignatureAppSecret(map, CommonSysConst.getSysConfig().getJjAppSecret() , WXPayConstants.SignType.MD5);
map.put("sign" , signStr); map.put("sign" , signStr);

@ -596,91 +596,86 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
if (order.getRechargeStatus() == 201) { if (order.getRechargeStatus() == 201) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法退款,订单处于充值中状态"); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "无法退款,订单处于充值中状态");
} }
// 退还积分
// 1:支付宝 2:微信 3:汇联通工会卡 4:银联 5:银联分期 if (order.getIntegralNum() != null) {
if (order.getPayType() == null) { highUserService.goldHandle(order.getUserId(), order.getIntegralNum().intValue(), 1, 3, order.getId());
// 退还积分 if (order.getPayRealPrice().compareTo(new BigDecimal(0)) == 0) {
if (order.getIntegralNum() != null) { order.setPayStatus(105);
highUserService.goldHandle(order.getUserId(), order.getIntegralNum().intValue(), 1, 3, order.getId()); order.setRechargeStatus(203);
if (order.getPayRealPrice().compareTo(new BigDecimal(0)) == 0) { order.setRefundTime(new Date());
order.setPayStatus(105); outRechargeOrderService.updateOrder(order);
order.setRechargeStatus(203);
order.setRefundTime(new Date());
outRechargeOrderService.updateOrder(order);
}
} }
} else { }
// 微信退款 // 微信退款
if (order.getPayType() == 2) { if (order.getPayType() == 2) {
Map<String, String> param = new HashMap<>(); Map<String, String> param = new HashMap<>();
param.put("appid", "wx637bd6f7314daa46"); param.put("appid", "wx637bd6f7314daa46");
param.put("mch_id", "1289663601"); param.put("mch_id", "1289663601");
param.put("sub_mch_id", "1614670195"); param.put("sub_mch_id", "1614670195");
param.put("nonce_str", WxUtils.makeNonStr()); param.put("nonce_str", WxUtils.makeNonStr());
param.put("transaction_id", order.getPaySerialNo()); param.put("transaction_id", order.getPaySerialNo());
param.put("out_refund_no", "HFR" + new Date().getTime()); param.put("out_refund_no", "HFR" + new Date().getTime());
param.put("total_fee", String.valueOf(order.getPayRealPrice().multiply(new BigDecimal("100")).intValue())); 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("refund_fee", String.valueOf(order.getPayRealPrice().multiply(new BigDecimal("100")).intValue()));
param.put("sign_type", "HMAC-SHA256"); param.put("sign_type", "HMAC-SHA256");
String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5", WXPayConstants.SignType.HMACSHA256); String signStr = WxUtils.generateSignature(param, "Skufk5oi85wDFGl888i6wsRSTkdd5df5", WXPayConstants.SignType.HMACSHA256);
param.put("sign", signStr); param.put("sign", signStr);
String resultXmL = doRefundRequest(param.get("mch_id"), WxUtils.mapToXml(param)); String resultXmL = doRefundRequest(param.get("mch_id"), WxUtils.mapToXml(param));
OrderRefundModel orderRefundModel = XmlUtil.getObjectFromXML(resultXmL, OrderRefundModel.class); OrderRefundModel orderRefundModel = XmlUtil.getObjectFromXML(resultXmL, OrderRefundModel.class);
if (orderRefundModel.getResult_code().equals("SUCCESS")) { if (orderRefundModel.getResult_code().equals("SUCCESS")) {
order.setPayStatus(105); order.setPayStatus(105);
order.setRechargeStatus(203); order.setRechargeStatus(203);
order.setRefundTime(new Date()); order.setRefundTime(new Date());
order.setOutRefundNo(orderRefundModel.getOut_refund_no()); order.setOutRefundNo(orderRefundModel.getOut_refund_no());
order.setRefundId(orderRefundModel.getRefund_id()); order.setRefundId(orderRefundModel.getRefund_id());
order.setRefundFee(new BigDecimal(orderRefundModel.getRefund_fee()).divide(new BigDecimal("100"))); order.setRefundFee(new BigDecimal(orderRefundModel.getRefund_fee()).divide(new BigDecimal("100")));
outRechargeOrderService.updateOrder(order); outRechargeOrderService.updateOrder(order);
} else { } else {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!错误代码:" + orderRefundModel.getErr_code() + ",错误描述" + orderRefundModel.getErr_code_des()); throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, "退款失败!错误代码:" + orderRefundModel.getErr_code() + ",错误描述" + orderRefundModel.getErr_code_des());
}
} }
}
// 工会卡退款 // 工会卡退款
if (order.getPayType() == 3) { if (order.getPayType() == 3) {
JSONObject jsonObject = HuiLianTongUnionCardConfig.refund("HFR" + new Date().getTime(), order.getOrderNo()); 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);
} else { if (jsonObject == null) {
throw ErrorHelp.genException(SysCode.System, ErrorCode.COMMON_ERROR, dataObject.getString("message")); jsonObject = HuiLianTongUnionCardConfig.refund("HFR" + new Date().getTime(), order.getOrderNo());
}
} }
// 银联退款 JSONObject dataObject = HuiLianTongUnionCardConfig.resolveResponse(jsonObject.getString("data"));
if (order.getPayType() == 4) {
// 订单退款 if (dataObject.getBoolean("success") || Objects.equals(dataObject.getString("message"), "原交易已撤销,不可再次操作")) {
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.setPayStatus(105);
order.setRechargeStatus(203); order.setRechargeStatus(203);
order.setRefundTime(new Date()); order.setRefundTime(new Date());
order.setOutRefundNo(refund.getString("oriwtorderid")); order.setOutRefundNo("HFR" + new Date().getTime());
order.setRefundFee(order.getPayRealPrice()); order.setRefundFee(order.getPayRealPrice());
order.setRefundId(dataObject.getString("orderId"));
outRechargeOrderService.updateOrder(order); 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);
}
if (order.getMemDiscountId() != null) { if (order.getMemDiscountId() != null) {
HighDiscountUserRel rel = highDiscountUserRelService.getRelById(order.getMemDiscountId()); HighDiscountUserRel rel = highDiscountUserRelService.getRelById(order.getMemDiscountId());
@ -755,6 +750,23 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
outRechargeChildOrderService.updateOrder(childOrder); outRechargeChildOrderService.updateOrder(childOrder);
type = childOrder.getRechargePlatform(); type = childOrder.getRechargePlatform();
} else {
// 查询充值子订单
Map<String, Object> childOrderMap103 = new HashMap<>();
childOrderMap.put("parent_order_id", outRechargeOrder.getId());
childOrderMap.put("status", 103);
List<OutRechargeChildOrder> childOrderList103 = outRechargeChildOrderService.getListRechargeChildOrder(childOrderMap103);
if (childOrderList103.size() > 0) {
type = childOrderList103.get(0).getRechargePlatform();
}
}
if (type == 2) {
type = 1;
} else {
type++;
} }
JSONObject object = new JSONObject(); JSONObject object = new JSONObject();
@ -765,10 +777,12 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
for (String s : rechargePlatform) { 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("out_order_id", orderNo);
object.put("amount", outRechargePrice.getRechargePrice()); object.put("amount", outRechargePrice.getRechargePrice());
object.put("mobile", outRechargeOrder.getRechargeContent()); object.put("mobile", outRechargeOrder.getRechargeContent());
object.put("notifyUrl", CommonSysConst.getSysConfig().getJjNotifyUrl());
System.out.println("尖椒请求回调地址---------------------" + CommonSysConst.getSysConfig().getJjNotifyUrl());
if (outRechargePrice.getRechargeType() == 1) { if (outRechargePrice.getRechargeType() == 1) {
object.put("is_fast", 1); object.put("is_fast", 1);
} }
@ -782,11 +796,14 @@ public class OutRechargeOrderServiceImpl implements OutRechargeOrderService {
rechargePlatformType = 1; rechargePlatformType = 1;
break; break;
} }
if (s.equals("2") && (type == 1 || type == 0)) { // 龙阅充值
if (s.equals("2") && type == 2) {
object.put("out_trade_num", orderNo); object.put("out_trade_num", orderNo);
object.put("product_id", outRechargePrice.getGoodsId()); object.put("product_id", outRechargePrice.getGoodsId());
object.put("mobile", outRechargeOrder.getRechargeContent()); object.put("mobile", outRechargeOrder.getRechargeContent());
object.put("notifyUrl", CommonSysConst.getSysConfig().getLyNotifyUrl());
JSONObject returnObject = RechargeConfig.rechargeOrderByLy(object); JSONObject returnObject = RechargeConfig.rechargeOrderByLy(object);
System.out.println("龙阅请求回调地址---------------------" + CommonSysConst.getSysConfig().getLyNotifyUrl());
object.put("return_content", returnObject); object.put("return_content", returnObject);
if (returnObject != null && returnObject.getLong("errno") == 0) { if (returnObject != null && returnObject.getLong("errno") == 0) {
childOrder.setStatus(102); childOrder.setStatus(102);

Loading…
Cancel
Save