记得上下班打卡 | git大法好,push需谨慎

Commit ff53d559 authored by 胡佳晨's avatar 胡佳晨

修改 order的下单

parent 3ab353b6
...@@ -9,6 +9,11 @@ import com.liquidnet.service.base.ResponseDto; ...@@ -9,6 +9,11 @@ import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.base.SqlMapping; import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.UserPathDto; import com.liquidnet.service.base.UserPathDto;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto;
import com.liquidnet.service.dragon.service.IDragonOrdersService;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.manage.AddressVo; import com.liquidnet.service.goblin.dto.manage.AddressVo;
import com.liquidnet.service.goblin.dto.manage.GoblinOrderParam; import com.liquidnet.service.goblin.dto.manage.GoblinOrderParam;
...@@ -54,10 +59,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -54,10 +59,9 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
@Autowired @Autowired
GoblinOrderUtils orderUtils; GoblinOrderUtils orderUtils;
@Value("${liquidnet.service.order.url-pay.pay}") @Autowired
private String payUrl; IDragonOrdersService dragonOrdersService;
@Value("${liquidnet.service.order.url-pay.check}")
private String checkUrl;
@Value("${liquidnet.service.order.url-pay.goblinUrl}") @Value("${liquidnet.service.order.url-pay.goblinUrl}")
private String synUrl; private String synUrl;
...@@ -416,43 +420,44 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -416,43 +420,44 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
String payCode; String payCode;
if (preParam.getPriceActual().compareTo(BigDecimal.valueOf(0)) > 0 && !preParam.getPayType().equals("huifu")) { if (preParam.getPriceActual().compareTo(BigDecimal.valueOf(0)) > 0 && !preParam.getPayType().equals("huifu")) {
// 调用支付 // 调用支付
LinkedMultiValueMap<String, String> httpData = CollectionUtil.linkedMultiValueMapStringString(); if (preParam.getPayType().equalsIgnoreCase(DragonConstant.PayChannelEnum.WEPAY.getCode())) {
httpData.add("type", "PRODUCT"); if (preParam.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.JS.getCode()) || preParam.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.APPLET.getCode())) {
httpData.add("price", preParam.getPriceActual().toString()); if (StringUtil.isEmpty(preParam.getOpenId())) {
// httpData.add("price","0.01"); return ResponseDto.failure("微信支付openId不能为空!");
httpData.add("name", preParam.getStoreName()); }
httpData.add("detail", preParam.getSkuName()); }
httpData.add("orderCode", preParam.getOrderMasterCode());
httpData.add("orderId", preParam.getOrderIdList().substring(1));
httpData.add("clientIp", CurrentUtil.getCliIpAddr());
httpData.add("notifyUrl", synUrl);
httpData.add("createDate", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expireTime", preParam.getExpireTime() + "");
httpData.add("payType", preParam.getPayType());
httpData.add("deviceFrom", preParam.getDeviceFrom());
if (preParam.getDeviceFrom().equals("micropay")) {
httpData.add("authCode", preParam.getAuthCode());
} }
DragonPayBaseReqDto dragonPayBaseReqDto = DragonPayBaseReqDto.getNew();
dragonPayBaseReqDto.setPayType(preParam.getPayType());
dragonPayBaseReqDto.setDeviceFrom(preParam.getDeviceFrom());
if (preParam.getDeviceFrom().equals("js") || preParam.getDeviceFrom().equals("applet")) { if (preParam.getDeviceFrom().equals("js") || preParam.getDeviceFrom().equals("applet")) {
httpData.add("openId", preParam.getOpenId()); dragonPayBaseReqDto.setOpenId(preParam.getOpenId());
} }
// if (preParam.getPayType().equals("alipay") && preParam.getDeviceFrom().equals("wap")) { dragonPayBaseReqDto.setType("PRODUCT");
// httpData.add("showUrl", preParam.getShowUrl() + preParam.getOrderMasterCode()); dragonPayBaseReqDto.setPrice(preParam.getPriceActual());
// httpData.add("returnUrl", preParam.getReturnUrl() + preParam.getOrderMasterCode()); if (preParam.getDeviceFrom().equals("micropay")) {
// } dragonPayBaseReqDto.setAuthCode(preParam.getAuthCode());
// if (preParam.getPayType().equals("douyinpay")) { }
// httpData.add("showUrl", preParam.getShowUrl() + preParam.getOrderMasterCode()); String name = preParam.getStoreName();
// httpData.add("returnUrl", preParam.getReturnUrl() + preParam.getOrderMasterCode()); if (StringUtil.isNotNull(preParam.getStoreName()) && preParam.getStoreName().length() >= 32) {
// } name = name.substring(0, 32);
// if (preParam.getPayType().equals("unionpay")) { }
// httpData.add("returnUrl", preParam.getReturnUrl() + preParam.getOrderMasterCode()); dragonPayBaseReqDto.setName(name);
// } dragonPayBaseReqDto.setDetail("正在现场");
httpData.add("showUrl", preParam.getShowUrl() + preParam.getOrderMasterCode()); dragonPayBaseReqDto.setOrderCode(preParam.getOrderMasterCode());
httpData.add("returnUrl", preParam.getReturnUrl() + preParam.getOrderMasterCode()); String orderId = preParam.getOrderIdList().substring(1);
LinkedMultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); if (orderId != null) {
header.add("Accept", "application/json;charset=UTF-8"); dragonPayBaseReqDto.setOrderId(orderId);
String returnData = HttpUtil.post(payUrl, httpData, header); }
dragonPayBaseReqDto.setClientIp(CurrentUtil.getCliIpAddr());
dragonPayBaseReqDto.setNotifyUrl(synUrl);
dragonPayBaseReqDto.setReturnUrl(preParam.getReturnUrl() + preParam.getOrderMasterCode());
dragonPayBaseReqDto.setShowUrl(preParam.getShowUrl() + preParam.getOrderMasterCode());
dragonPayBaseReqDto.setCreateDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
dragonPayBaseReqDto.setExpireTime(preParam.getExpireTime() + "");
ResponseDto<DragonPayBaseRespDto> responseDto = dragonOrdersService.dragonPay(dragonPayBaseReqDto);
String returnData = JSON.toJSONString(responseDto);
log.info("调用 DRAGON 结果 = " + returnData); log.info("调用 DRAGON 结果 = " + returnData);
ResponseDto<GoblinPayInnerResultVo> dto = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<GoblinPayInnerResultVo>>() { ResponseDto<GoblinPayInnerResultVo> dto = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<GoblinPayInnerResultVo>>() {
}); });
...@@ -655,12 +660,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -655,12 +660,8 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if (storeOrderVo.getStatus() != GoblinStatusConst.Status.ORDER_STATUS_0.getValue()) { if (storeOrderVo.getStatus() != GoblinStatusConst.Status.ORDER_STATUS_0.getValue()) {
return ResponseDto.failure("订单无法支付");//订单 return ResponseDto.failure("订单无法支付");//订单
} }
MultiValueMap<String, String> header = CollectionUtil.linkedMultiValueMapStringString(); DragonPayOrderQueryRespDto checkVo = dragonOrdersService.checkOrderStatusByCode(storeOrderVo.getPayCode());
header.add("Accept", "application/json;charset=UTF-8"); if (checkVo.getStatus() == 1) {
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + storeOrderVo.getPayCode(), null, header);
ResponseDto<GoblinPayInnerResultVo> checkVo = JsonUtils.fromJson(returnCheckData, new TypeReference<ResponseDto<GoblinPayInnerResultVo>>() {
});
if (checkVo.getData().getStatus() == 1) {
return ResponseDto.failure("订单已支付"); return ResponseDto.failure("订单已支付");
} }
BigDecimal price = BigDecimal.ZERO; BigDecimal price = BigDecimal.ZERO;
...@@ -684,37 +685,37 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -684,37 +685,37 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
// } else // } else
if (!storeOrderVo.getPayType().equals("FREE")) { if (!storeOrderVo.getPayType().equals("FREE")) {
// 调用支付 // 调用支付
LinkedMultiValueMap<String, String> httpData = CollectionUtil.linkedMultiValueMapStringString(); if (param.getPayType().equalsIgnoreCase(DragonConstant.PayChannelEnum.WEPAY.getCode())) {
httpData.add("type", "PRODUCT"); if (param.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.JS.getCode()) || param.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.APPLET.getCode())) {
httpData.add("price", price.toString()); if (StringUtil.isEmpty(param.getOpenId())) {
httpData.add("name", redisUtils.getStoreInfoVo(storeOrderVo.getStoreId()).getStoreName()); return ResponseDto.failure("微信支付openId不能为空!");
httpData.add("detail", "查找最初订单"); }
httpData.add("orderCode", storeOrderVo.getMasterOrderCode()); }
// httpData.add("orderId", storeOrderVo.getOrderId()); }
httpData.add("clientIp", storeOrderVo.getIpAddress()); DragonPayBaseReqDto dragonPayBaseReqDto = DragonPayBaseReqDto.getNew();
httpData.add("notifyUrl", synUrl); dragonPayBaseReqDto.setPayType(param.getPayType());
httpData.add("createDate", storeOrderVo.getCreatedAt()); dragonPayBaseReqDto.setDeviceFrom(param.getDeviceFrom());
httpData.add("expireTime", storeOrderVo.getPayCountdownMinute().toString());
httpData.add("payType", param.getPayType());
httpData.add("deviceFrom", param.getDeviceFrom());
if (param.getDeviceFrom().equals("js") || param.getDeviceFrom().equals("applet")) { if (param.getDeviceFrom().equals("js") || param.getDeviceFrom().equals("applet")) {
httpData.add("openId", param.getOpenId()); dragonPayBaseReqDto.setOpenId(param.getOpenId());
} }
// if (param.getPayType().equals("alipay") && param.getDeviceFrom().equals("wap")) { dragonPayBaseReqDto.setType("PRODUCT");
// httpData.add("showUrl", param.getShowUrl() + storeOrderVo.getMasterOrderCode()); dragonPayBaseReqDto.setPrice(storeOrderVo.getPriceActual());
// httpData.add("returnUrl", param.getReturnUrl() + storeOrderVo.getMasterOrderCode()); String name = storeOrderVo.getStoreName();
// } if (StringUtil.isNotNull(storeOrderVo.getStoreName()) && storeOrderVo.getStoreName().length() >= 32) {
// if (param.getPayType().equals("douyinpay")) { name = name.substring(0, 32);
// httpData.add("showUrl", param.getShowUrl() + storeOrderVo.getMasterOrderCode()); }
// httpData.add("returnUrl", param.getReturnUrl() + storeOrderVo.getMasterOrderCode()); dragonPayBaseReqDto.setName(name);
// } dragonPayBaseReqDto.setDetail("正在现场");
// if (param.getPayType().equals("unionpay")) { dragonPayBaseReqDto.setOrderCode(storeOrderVo.getMasterOrderCode());
// httpData.add("returnUrl", param.getReturnUrl() + storeOrderVo.getMasterOrderCode()); dragonPayBaseReqDto.setClientIp(CurrentUtil.getCliIpAddr());
// } dragonPayBaseReqDto.setNotifyUrl(synUrl);
httpData.add("showUrl", param.getShowUrl() + storeOrderVo.getMasterOrderCode()); dragonPayBaseReqDto.setReturnUrl(param.getReturnUrl() + storeOrderVo.getMasterOrderCode());
httpData.add("returnUrl", param.getReturnUrl() + storeOrderVo.getMasterOrderCode()); dragonPayBaseReqDto.setShowUrl(param.getShowUrl() + storeOrderVo.getMasterOrderCode());
String returnData = HttpUtil.post(payUrl, httpData); dragonPayBaseReqDto.setCreateDate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
dragonPayBaseReqDto.setExpireTime(storeOrderVo.getPayCountdownMinute().toString());
ResponseDto<DragonPayBaseRespDto> responseDto = dragonOrdersService.dragonPay(dragonPayBaseReqDto);
String returnData = JSON.toJSONString(responseDto);
log.debug("调用 DRAGON 结果 = " + returnData); log.debug("调用 DRAGON 结果 = " + returnData);
ResponseDto<GoblinPayInnerResultVo> dto = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<GoblinPayInnerResultVo>>() { ResponseDto<GoblinPayInnerResultVo> dto = JsonUtils.fromJson(returnData, new TypeReference<ResponseDto<GoblinPayInnerResultVo>>() {
}); });
...@@ -889,12 +890,21 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -889,12 +890,21 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
if (!storeOrderVo.getUserId().equals(uid)) { if (!storeOrderVo.getUserId().equals(uid)) {
return null; return null;
} }
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + storeOrderVo.getPayCode(), null); DragonPayOrderQueryRespDto data = dragonOrdersService.checkOrderStatusByCode(storeOrderVo.getPayCode());
ResponseDto<SyncOrderParam> syncOrderDtoParam = JsonUtils.fromJson(returnCheckData, new TypeReference<ResponseDto<SyncOrderParam>>() { SyncOrderParam syncOrderDtoParam = SyncOrderParam.getNew();
}); syncOrderDtoParam.setCode(data.getCode());
if (syncOrderDtoParam.getData().getStatus() == 1) { syncOrderDtoParam.setOrderCode(data.getOrderCode());
syncOrderDtoParam.setOrderCodeId(data.getOrderCodeId());
syncOrderDtoParam.setOrderId(data.getOrderCodeId());
syncOrderDtoParam.setPaymentAt(data.getPaymentAt());
syncOrderDtoParam.setPaymentId(data.getPaymentId());
syncOrderDtoParam.setPaymentType(data.getPaymentType());
syncOrderDtoParam.setPrice(data.getPrice());
syncOrderDtoParam.setStatus(data.getStatus());
syncOrderDtoParam.setType(data.getType());
if (syncOrderDtoParam.getStatus() == 1) {
//处理订单 //处理订单
syncOrder(syncOrderDtoParam.getData()); syncOrder(syncOrderDtoParam);
return ResponseDto.success(1); return ResponseDto.success(1);
} else { } else {
return ResponseDto.success(0); return ResponseDto.success(0);
...@@ -910,12 +920,22 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService { ...@@ -910,12 +920,22 @@ public class GoblinOrderServiceImpl implements IGoblinOrderService {
} else { } else {
for (String orderId : orderIds) { for (String orderId : orderIds) {
GoblinStoreOrderVo storeOrderVo = redisUtils.getGoblinOrder(orderId); GoblinStoreOrderVo storeOrderVo = redisUtils.getGoblinOrder(orderId);
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + storeOrderVo.getPayCode(), null); DragonPayOrderQueryRespDto data = dragonOrdersService.checkOrderStatusByCode(storeOrderVo.getPayCode());
ResponseDto<SyncOrderParam> syncOrderDtoParam = JsonUtils.fromJson(returnCheckData, new TypeReference<ResponseDto<SyncOrderParam>>() { SyncOrderParam syncOrderDtoParam = SyncOrderParam.getNew();
}); syncOrderDtoParam.setCode(data.getCode());
if (syncOrderDtoParam.getData().getStatus() == 1) { syncOrderDtoParam.setOrderCode(data.getOrderCode());
syncOrderDtoParam.setOrderCodeId(data.getOrderCodeId());
syncOrderDtoParam.setOrderId(data.getOrderCodeId());
syncOrderDtoParam.setPaymentAt(data.getPaymentAt());
syncOrderDtoParam.setPaymentId(data.getPaymentId());
syncOrderDtoParam.setPaymentType(data.getPaymentType());
syncOrderDtoParam.setPrice(data.getPrice());
syncOrderDtoParam.setStatus(data.getStatus());
syncOrderDtoParam.setType(data.getType());
if (syncOrderDtoParam.getStatus() == 1) {
//处理订单 //处理订单
syncOrder(syncOrderDtoParam.getData()); syncOrder(syncOrderDtoParam);
return ResponseDto.success(1);
} else { } else {
return ResponseDto.success(0); return ResponseDto.success(0);
} }
......
package com.liquidnet.service.order.service.impl; package com.liquidnet.service.order.service.impl;
import com.liquidnet.common.cache.redis.util.RedisUtil; import com.alibaba.fastjson.JSON;
import com.liquidnet.common.sms.constant.SmsEnum; import com.liquidnet.common.sms.constant.SmsEnum;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.vo.AdamEntersVo; import com.liquidnet.service.adam.dto.vo.AdamEntersVo;
import com.liquidnet.service.adam.dto.vo.AdamRscPolymer01Vo;
import com.liquidnet.service.base.*; import com.liquidnet.service.base.*;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.kylin.constant.KylinRedisConst; import com.liquidnet.service.dragon.constant.DragonConstant;
import com.liquidnet.service.dragon.dto.DragonPayBaseReqDto;
import com.liquidnet.service.dragon.dto.DragonPayBaseRespDto;
import com.liquidnet.service.dragon.dto.DragonPayOrderQueryRespDto;
import com.liquidnet.service.dragon.service.IDragonOrdersService;
import com.liquidnet.service.kylin.constant.KylinTableStatusConst; import com.liquidnet.service.kylin.constant.KylinTableStatusConst;
import com.liquidnet.service.kylin.dto.param.*; import com.liquidnet.service.kylin.dto.param.*;
import com.liquidnet.service.kylin.dto.vo.KylinAgentVo; import com.liquidnet.service.kylin.dto.vo.KylinAgentVo;
...@@ -21,7 +24,6 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayInnerResultVo; ...@@ -21,7 +24,6 @@ import com.liquidnet.service.kylin.dto.vo.returns.PayInnerResultVo;
import com.liquidnet.service.kylin.dto.vo.returns.PayResultVo; import com.liquidnet.service.kylin.dto.vo.returns.PayResultVo;
import com.liquidnet.service.kylin.entity.*; import com.liquidnet.service.kylin.entity.*;
import com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService; import com.liquidnet.service.kylin.service.IKylinOrderTicketsOrderService;
import com.liquidnet.service.order.service.InnerService;
import com.liquidnet.service.order.utils.*; import com.liquidnet.service.order.utils.*;
import com.taobao.api.TaobaoClient; import com.taobao.api.TaobaoClient;
import com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest; import com.taobao.api.request.AlibabaDamaiMevOpenBatchpushticketRequest;
...@@ -56,12 +58,10 @@ import java.util.*; ...@@ -56,12 +58,10 @@ import java.util.*;
@Slf4j @Slf4j
public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderService { public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderService {
@Value("${liquidnet.url-pay.pay}")
private String payUrl;
@Value("${liquidnet.url-pay.check}")
private String checkUrl;
@Value("${liquidnet.url-pay.localUrl}") @Value("${liquidnet.url-pay.localUrl}")
private String synUrl; private String synUrl;
@Autowired
IDragonOrdersService dragonOrdersService;
@Autowired @Autowired
private DataUtils dataUtils; private DataUtils dataUtils;
...@@ -636,34 +636,36 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -636,34 +636,36 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
name = "正在现场"; name = "正在现场";
} }
// 调用支付 // 调用支付
LinkedMultiValueMap<String, String> httpData = ObjectUtil.cloneLinkedMultiValueMapStringAndString(); if (payOrderParam.getPayType().equalsIgnoreCase(DragonConstant.PayChannelEnum.WEPAY.getCode())) {
httpData.add("type", "TICKET"); if (payOrderParam.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.JS.getCode()) || payOrderParam.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.APPLET.getCode())) {
httpData.add("price", orderTickets.getPriceActual().toString()); if (StringUtil.isEmpty(payOrderParam.getOpenId())) {
httpData.add("name", name); return ResponseDto.failure("微信支付openId不能为空!");
httpData.add("detail", content); }
httpData.add("orderCode", orderTickets.getOrderCode()); }
httpData.add("clientIp", CurrentUtil.getCliIpAddr());
httpData.add("notifyUrl", synUrl);
httpData.add("createDate", orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
httpData.add("expireTime", (orderTickets.getPayCountdownMinute()) + "");
httpData.add("payType", payOrderParam.getPayType());
httpData.add("deviceFrom", payOrderParam.getDeviceFrom());
if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) {
httpData.add("openId", payOrderParam.getOpenId());
}
if (payOrderParam.getPayType().equals("alipay") && payOrderParam.getDeviceFrom().equals("wap")) {
httpData.add("showUrl", payOrderParam.getShowUrl() + orderTicketId);
httpData.add("returnUrl", payOrderParam.getReturnUrl() + orderTicketId);
} }
if (payOrderParam.getPayType().equals("douyinpay")) { DragonPayBaseReqDto dragonPayBaseReqDto = DragonPayBaseReqDto.getNew();
httpData.add("showUrl", payOrderParam.getShowUrl() + orderTicketId); dragonPayBaseReqDto.setPayType(payOrderParam.getPayType());
httpData.add("returnUrl", payOrderParam.getReturnUrl() + orderTicketId); dragonPayBaseReqDto.setDeviceFrom(payOrderParam.getDeviceFrom());
if (payOrderParam.getDeviceFrom().equals("js") || payOrderParam.getDeviceFrom().equals("applet")) {
dragonPayBaseReqDto.setOpenId(payOrderParam.getOpenId());
} }
if (payOrderParam.getPayType().equals("unionpay")) { dragonPayBaseReqDto.setType("TICKET");
httpData.add("returnUrl", payOrderParam.getReturnUrl() + orderTicketId); dragonPayBaseReqDto.setPrice(orderTickets.getPriceActual());
if (StringUtil.isNotNull(name) && name.length() >= 32) {
name = name.substring(0, 32);
} }
log.debug("调用 DRAGON 参数 = " + httpData.toString()); dragonPayBaseReqDto.setName(name);
String returnData = HttpUtil.post(payUrl, httpData); dragonPayBaseReqDto.setDetail("正在现场");
dragonPayBaseReqDto.setOrderCode(orderTickets.getOrderCode());
dragonPayBaseReqDto.setClientIp(CurrentUtil.getCliIpAddr());
dragonPayBaseReqDto.setNotifyUrl(synUrl);
dragonPayBaseReqDto.setReturnUrl(payOrderParam.getReturnUrl() + orderTicketId);
dragonPayBaseReqDto.setShowUrl(payOrderParam.getShowUrl() + orderTicketId);
dragonPayBaseReqDto.setCreateDate(orderTickets.getCreatedAt().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
dragonPayBaseReqDto.setExpireTime(orderTickets.getPayCountdownMinute() + "");
ResponseDto<DragonPayBaseRespDto> responseDto = dragonOrdersService.dragonPay(dragonPayBaseReqDto);
String returnData = JSON.toJSONString(responseDto);
log.debug("调用 DRAGON 结果 = " + returnData); log.debug("调用 DRAGON 结果 = " + returnData);
payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class); payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class);
payResultVo.getData().setOrderId(orderTicketId); payResultVo.getData().setOrderId(orderTicketId);
...@@ -747,9 +749,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -747,9 +749,8 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
return ResponseDto.failure(ErrorMapping.get("20026")); return ResponseDto.failure(ErrorMapping.get("20026"));
} }
} }
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + orderTicketData.getPayCode(), null); DragonPayOrderQueryRespDto checkVo = dragonOrdersService.checkOrderStatusByCode(orderTicketData.getPayCode());
PayResultVo checkVo = JsonUtils.fromJson(returnCheckData, PayResultVo.class); if (checkVo.getStatus() == 1) {
if (checkVo.getData().getStatus() == 1) {
return ResponseDto.failure(ErrorMapping.get("20027")); return ResponseDto.failure(ErrorMapping.get("20027"));
} }
if (!orderTicketData.getPayType().equals("no")) { if (!orderTicketData.getPayType().equals("no")) {
...@@ -757,42 +758,41 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -757,42 +758,41 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (orderTicketData.getEntitiesVoList().size() == 0) { if (orderTicketData.getEntitiesVoList().size() == 0) {
return ResponseDto.failure(ErrorMapping.get("20004")); return ResponseDto.failure(ErrorMapping.get("20004"));
} }
KylinOrderTicketEntitiesVo entitiesData = orderTicketData.getEntitiesVoList().get(0);
String name = dataUtils.getTicketPayTxt(orderTicketData.getTicketId()); String name = dataUtils.getTicketPayTxt(orderTicketData.getTicketId());
if (name.equals("")) { if (name.equals("")) {
name = "正在现场"; name = "正在现场";
} }
LinkedMultiValueMap<String, String> httpData = ObjectUtil.cloneLinkedMultiValueMapStringAndString(); if (payAgainParam.getPayType().equalsIgnoreCase(DragonConstant.PayChannelEnum.WEPAY.getCode())) {
httpData.add("type", "TICKET"); if (payAgainParam.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.JS.getCode()) || payAgainParam.getDeviceFrom().equalsIgnoreCase(DragonConstant.DeviceFromEnum.APPLET.getCode())) {
httpData.add("price", orderTicketData.getPriceActual().toString()); if (StringUtil.isEmpty(payAgainParam.getOpenId())) {
httpData.add("name", name); return ResponseDto.failure("微信支付openId不能为空!");
httpData.add("detail", entitiesData.getPerformanceTitle() + "-" + entitiesData.getTicketTitle() + "-" + entitiesData.getUseStart()); }
httpData.add("orderCode", orderTicketData.getOrderCode()); }
httpData.add("clientIp", CurrentUtil.getCliIpAddr());
httpData.add("notifyUrl", synUrl);
httpData.add("createDate", orderTicketData.getCreatedAt());
httpData.add("expireTime", orderTicketData.getPayCountdownMinute().toString());
httpData.add("payType", payAgainParam.getPayType());
httpData.add("deviceFrom", payAgainParam.getDeviceFrom());
if (payAgainParam.getDeviceFrom().equals("js") || payAgainParam.getDeviceFrom().equals("applet")) {
httpData.add("openId", payAgainParam.getOpenId());
}
if (payAgainParam.getPayType().equals("alipay") && payAgainParam.getDeviceFrom().equals("wap")) {
httpData.add("showUrl", payAgainParam.getShowUrl() + payAgainParam.getOrderId());
httpData.add("returnUrl", payAgainParam.getReturnUrl() + payAgainParam.getOrderId());
} }
if (payAgainParam.getPayType().equals("douyinpay")) { DragonPayBaseReqDto dragonPayBaseReqDto = DragonPayBaseReqDto.getNew();
httpData.add("showUrl", payAgainParam.getShowUrl() + payAgainParam.getOrderId()); dragonPayBaseReqDto.setPayType(payAgainParam.getPayType());
httpData.add("returnUrl", payAgainParam.getReturnUrl() + payAgainParam.getOrderId()); dragonPayBaseReqDto.setDeviceFrom(payAgainParam.getDeviceFrom());
if (payAgainParam.getDeviceFrom().equals("js") || payAgainParam.getDeviceFrom().equals("applet")) {
dragonPayBaseReqDto.setOpenId(payAgainParam.getOpenId());
} }
if (payAgainParam.getPayType().equals("unionpay")) { dragonPayBaseReqDto.setType("TICKET");
httpData.add("returnUrl", payAgainParam.getReturnUrl() + payAgainParam.getOrderId()); dragonPayBaseReqDto.setPrice(orderTicketData.getPriceActual());
if (StringUtil.isNotNull(name) && name.length() >= 32) {
name = name.substring(0, 32);
} }
String returnData = HttpUtil.post(payUrl, httpData); dragonPayBaseReqDto.setName(name);
dragonPayBaseReqDto.setDetail("正在现场");
dragonPayBaseReqDto.setOrderCode(orderTicketData.getOrderCode());
dragonPayBaseReqDto.setClientIp(CurrentUtil.getCliIpAddr());
dragonPayBaseReqDto.setNotifyUrl(synUrl);
dragonPayBaseReqDto.setReturnUrl(payAgainParam.getReturnUrl() + payAgainParam.getOrderId());
dragonPayBaseReqDto.setShowUrl(payAgainParam.getShowUrl() + payAgainParam.getOrderId());
dragonPayBaseReqDto.setCreateDate(orderTicketData.getCreatedAt());
dragonPayBaseReqDto.setExpireTime(orderTicketData.getPayCountdownMinute().toString());
ResponseDto<DragonPayBaseRespDto> responseDto = dragonOrdersService.dragonPay(dragonPayBaseReqDto);
String returnData = JSON.toJSONString(responseDto);
PayResultVo payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class); PayResultVo payResultVo = JsonUtils.fromJson(returnData, PayResultVo.class);
payResultVo.getData().setOrderId(orderTicketData.getOrderTicketsId()); payResultVo.getData().setOrderId(orderTicketData.getOrderTicketsId());
payResultVo.getData().setPrice(orderTicketData.getPriceActual()); payResultVo.getData().setPrice(orderTicketData.getPriceActual());
...@@ -1070,11 +1070,19 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ ...@@ -1070,11 +1070,19 @@ public class KylinOrderTicketsServiceImpl implements IKylinOrderTicketsOrderServ
if (orderTicketData == null) { if (orderTicketData == null) {
return ResponseDto.failure(ErrorMapping.get("20024")); return ResponseDto.failure(ErrorMapping.get("20024"));
} else { } else {
String returnCheckData = HttpUtil.get(checkUrl + "?code=" + orderTicketData.getPayCode(), null); DragonPayOrderQueryRespDto data = dragonOrdersService.checkOrderStatusByCode(orderTicketData.getPayCode());
SyncOrderDtoParam syncOrderDtoParam = JsonUtils.fromJson(returnCheckData, SyncOrderDtoParam.class); SyncOrderParam syncOrderDtoParam = SyncOrderParam.getNew();
if (syncOrderDtoParam.getData().getStatus() == 1) { syncOrderDtoParam.setCode(data.getCode());
syncOrderDtoParam.setOrderCode(data.getOrderCode());
syncOrderDtoParam.setPaymentAt(data.getPaymentAt());
syncOrderDtoParam.setPaymentId(data.getPaymentId());
syncOrderDtoParam.setPaymentType(data.getPaymentType());
syncOrderDtoParam.setPrice(data.getPrice());
syncOrderDtoParam.setStatus(data.getStatus());
syncOrderDtoParam.setType(data.getType());
if (syncOrderDtoParam.getStatus() == 1) {
//处理订单 //处理订单
syncOrder(syncOrderDtoParam.getData()); syncOrder(syncOrderDtoParam);
return ResponseDto.success(1); return ResponseDto.success(1);
} else { } else {
return ResponseDto.success(0); return ResponseDto.success(0);
......
...@@ -9,6 +9,9 @@ import com.liquidnet.service.base.SqlMapping; ...@@ -9,6 +9,9 @@ import com.liquidnet.service.base.SqlMapping;
import com.liquidnet.service.base.constant.MQConst; import com.liquidnet.service.base.constant.MQConst;
import com.liquidnet.service.candy.param.BackCouponParam; import com.liquidnet.service.candy.param.BackCouponParam;
import com.liquidnet.service.candy.vo.CandyUseResultVo; import com.liquidnet.service.candy.vo.CandyUseResultVo;
import com.liquidnet.service.dragon.dto.DragonRefundAppDto;
import com.liquidnet.service.dragon.service.IDragonOrderRefundsService;
import com.liquidnet.service.dragon.service.IDragonOrdersService;
import com.liquidnet.service.goblin.constant.GoblinStatusConst; import com.liquidnet.service.goblin.constant.GoblinStatusConst;
import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto; import com.liquidnet.service.goblin.dto.GoblinQueueBizIntegralDto;
import com.liquidnet.service.goblin.dto.GoblinQueueBizMongoDto; import com.liquidnet.service.goblin.dto.GoblinQueueBizMongoDto;
...@@ -36,8 +39,8 @@ public class GoblinOrderUtils { ...@@ -36,8 +39,8 @@ public class GoblinOrderUtils {
private String candyUrl; private String candyUrl;
@Value("${liquidnet.service.order.url-pay.goblinRefundUrl}") @Value("${liquidnet.service.order.url-pay.goblinRefundUrl}")
private String synUrl; private String synUrl;
@Value("${liquidnet.service.dragon.urls.refundApply}") @Autowired
private String refundApply; private IDragonOrderRefundsService dragonOrderRefundsService;
@Autowired @Autowired
QueueUtils queueUtils; QueueUtils queueUtils;
...@@ -228,11 +231,12 @@ public class GoblinOrderUtils { ...@@ -228,11 +231,12 @@ public class GoblinOrderUtils {
/** /**
* mongo操作入队列 * mongo操作入队列
*
* @param collect Mongo集合名 * @param collect Mongo集合名
* @param column Mongo集合中的字段属性名称 * @param column Mongo集合中的字段属性名称
* @param bizId Mongo集合中的字段属性值 * @param bizId Mongo集合中的字段属性值
* @param prefix Redis缓存中的Key前缀 * @param prefix Redis缓存中的Key前缀
* @param opType 操作类型[1-insert|2-update] * @param opType 操作类型[1-insert|2-update]
*/ */
public void setMongoList(String collect, String column, String bizId, String prefix, int opType) { public void setMongoList(String collect, String column, String bizId, String prefix, int opType) {
GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew(); GoblinQueueBizMongoDto goblinQueueBizMongoDto = GoblinQueueBizMongoDto.getNew();
...@@ -481,23 +485,21 @@ public class GoblinOrderUtils { ...@@ -481,23 +485,21 @@ public class GoblinOrderUtils {
} }
private String initRefund(GoblinStoreOrderVo orderVo, BigDecimal price, String refundCode) { private String initRefund(GoblinStoreOrderVo orderVo, BigDecimal price, String refundCode) {
MultiValueMap<String, String> params = CollectionUtil.linkedMultiValueMapStringString();
params.add("code", orderVo.getPayCode());
params.add("notifyUrl", synUrl);
params.add("orderCode", orderVo.getMasterOrderCode());
params.add("orderRefundCode", refundCode);
params.add("paymentId", orderVo.getPaymentId());
params.add("paymentType", orderVo.getPaymentType());
params.add("price", String.valueOf(price));
BigDecimal totalPrice = BigDecimal.ZERO; BigDecimal totalPrice = BigDecimal.ZERO;
totalPrice = totalPrice.add(price); totalPrice = totalPrice.add(price);
params.add("priceTotal", String.valueOf(totalPrice)); ResponseDto<DragonRefundAppDto> returnData = dragonOrderRefundsService.dragonRefund(
params.add("reason", "超时支付"); orderVo.getMasterOrderCode(),
MultiValueMap<String, String> headers = CollectionUtil.linkedMultiValueMapStringString(); orderVo.getPayCode(),
headers.add("Accept", "application/json;charset=UTF-8"); refundCode,
String returnString = HttpUtil.post(refundApply, params, headers); "超时支付",
synUrl,
price,
orderVo.getPaymentType(),
orderVo.getPaymentId(),
totalPrice);
String returnString = JSON.toJSONString(returnData);
log.debug("REFUND DATA = " + returnString); log.debug("REFUND DATA = " + returnString);
return returnString; return JsonUtils.toJson(returnString);
} }
//订单异常处理 //订单异常处理
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment