|
@@ -10,6 +10,8 @@ import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import org.slf4j.Logger;
|
|
|
|
+import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Propagation;
|
|
@@ -45,6 +47,8 @@ import com.ym.mec.util.date.DateUtil;
|
|
@Service
|
|
@Service
|
|
public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantPaymentOrder> implements TenantPaymentOrderService {
|
|
public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantPaymentOrder> implements TenantPaymentOrderService {
|
|
|
|
|
|
|
|
+ private static final Logger logger = LoggerFactory.getLogger(TenantPaymentOrderServiceImpl.class);
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private TenantPaymentOrderDao tenantPaymentOrderDao;
|
|
private TenantPaymentOrderDao tenantPaymentOrderDao;
|
|
|
|
|
|
@@ -122,6 +126,8 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
|
|
|
|
TenantPaymentOrder tenantPaymentOrder = new TenantPaymentOrder();
|
|
TenantPaymentOrder tenantPaymentOrder = new TenantPaymentOrder();
|
|
tenantPaymentOrder.setUserId(userId);
|
|
tenantPaymentOrder.setUserId(userId);
|
|
|
|
+ tenantPaymentOrder.setTransMinutes(tenantEntryActivities.getPurchaseMinutes());
|
|
|
|
+ tenantPaymentOrder.setGiveMinutes(tenantEntryActivities.getGiveMinutes());
|
|
tenantPaymentOrder.setOrderNo(idGeneratorService.generatorId("tenant_payment") + "");
|
|
tenantPaymentOrder.setOrderNo(idGeneratorService.generatorId("tenant_payment") + "");
|
|
tenantPaymentOrder.setType(TenantPaymentType.RECHARGE);
|
|
tenantPaymentOrder.setType(TenantPaymentType.RECHARGE);
|
|
tenantPaymentOrder.setExpectAmount(tenantEntryActivities.getDiscountPrice());
|
|
tenantPaymentOrder.setExpectAmount(tenantEntryActivities.getDiscountPrice());
|
|
@@ -145,8 +151,8 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
try {
|
|
try {
|
|
|
|
|
|
Map<String, Object> payMap = payService.getPayMap(tenantPaymentOrder.getExpectAmount(), tenantPaymentOrder.getOrderNo(), baseApiUrl
|
|
Map<String, Object> payMap = payService.getPayMap(tenantPaymentOrder.getExpectAmount(), tenantPaymentOrder.getOrderNo(), baseApiUrl
|
|
- + "/api-teacher/teacherOrder/notify", baseApiUrl + "/#/paymentResult?orderNo=" + tenantPaymentOrder.getOrderNo(),
|
|
|
|
- "商户入驻", "商户充值", userId, classFee, organId);
|
|
|
|
|
|
+ + "/api-teacher/teacherOrder/notify", baseApiUrl + "/#/paymentResult?orderNo=" + tenantPaymentOrder.getOrderNo(), "商户入驻", "商户充值", userId,
|
|
|
|
+ classFee, organId);
|
|
|
|
|
|
Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
|
|
Map<String, BigDecimal> routingFee = (Map<String, BigDecimal>) payMap.get("routingFee");
|
|
tenantPaymentOrder.setComAmount(routingFee.get("COM"));
|
|
tenantPaymentOrder.setComAmount(routingFee.get("COM"));
|
|
@@ -182,8 +188,8 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
}
|
|
}
|
|
|
|
|
|
// 更新账户表信息
|
|
// 更新账户表信息
|
|
- sysTenantAccountService.update(userId, tenantEntryActivities.getPurchaseMinutes() + tenantEntryActivities.getGiveMinutes(), TransType.RECHARGE, "",
|
|
|
|
- tenantEntryActivities.getDiscountPrice(), "");
|
|
|
|
|
|
+ sysTenantAccountService.update(userId, tenantEntryActivities.getPurchaseMinutes() + tenantEntryActivities.getGiveMinutes(),
|
|
|
|
+ tenantPaymentOrder.getOrderNo(), TransType.RECHARGE, "", tenantEntryActivities.getDiscountPrice(), "");
|
|
} else {
|
|
} else {
|
|
|
|
|
|
}
|
|
}
|
|
@@ -222,14 +228,14 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
RsqMsg rsqMsg = new RsqMsg(requestMap);
|
|
RsqMsg rsqMsg = new RsqMsg(requestMap);
|
|
|
|
|
|
Msg queryRs = yqPayFeignService.orderQuery(rsqMsg);
|
|
Msg queryRs = yqPayFeignService.orderQuery(rsqMsg);
|
|
-
|
|
|
|
|
|
+ logger.info("支付状态查询结果:{}", queryRs);
|
|
if (queryRs.getCode().equals("88")) {
|
|
if (queryRs.getCode().equals("88")) {
|
|
// 更新订单状态
|
|
// 更新订单状态
|
|
String[] statusArr = { "0", "1", "7" };
|
|
String[] statusArr = { "0", "1", "7" };
|
|
String responseParameters = queryRs.getResponseParameters();
|
|
String responseParameters = queryRs.getResponseParameters();
|
|
- List<Map<String, String>> responseList = JSON.parseObject(responseParameters, List.class);
|
|
|
|
- for (Map<String, String> response : responseList) {
|
|
|
|
- Map<String, String> rpMap = response;
|
|
|
|
|
|
+ List<Map<String, Object>> responseList = JSON.parseObject(responseParameters, List.class);
|
|
|
|
+ for (Map<String, Object> response : responseList) {
|
|
|
|
+ Map<String, Object> rpMap = response;
|
|
String channelType = rpMap.get("channelType").equals("1") ? "WXPay" : (rpMap.get("channelType").equals("2") ? "Alipay" : "quickPay");
|
|
String channelType = rpMap.get("channelType").equals("1") ? "WXPay" : (rpMap.get("channelType").equals("2") ? "Alipay" : "quickPay");
|
|
rpMap.put("channelType", channelType);
|
|
rpMap.put("channelType", channelType);
|
|
|
|
|
|
@@ -240,7 +246,7 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
|
|
if (Arrays.asList(statusArr).contains(rpMap.get("tradeState"))) {
|
|
try {
|
|
try {
|
|
DealStatusEnum status = rpMap.get("tradeState").equals("1") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAILED;
|
|
DealStatusEnum status = rpMap.get("tradeState").equals("1") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAILED;
|
|
- TenantPaymentOrder order = tenantPaymentOrderDao.findOrderByOrderNo(rpMap.get("merOrderNo"));
|
|
|
|
|
|
+ TenantPaymentOrder order = tenantPaymentOrderDao.findOrderByOrderNo(rpMap.get("merOrderNo").toString());
|
|
if (order == null || !order.getStatus().equals(DealStatusEnum.ING)) {
|
|
if (order == null || !order.getStatus().equals(DealStatusEnum.ING)) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
@@ -248,12 +254,12 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
if (status.equals(DealStatusEnum.SUCCESS)) {
|
|
if (status.equals(DealStatusEnum.SUCCESS)) {
|
|
order.setPayTime(new Date());
|
|
order.setPayTime(new Date());
|
|
} else {
|
|
} else {
|
|
- order.setMemo(rpMap.get("remarks"));
|
|
|
|
|
|
+ order.setMemo(rpMap.get("remarks").toString());
|
|
}
|
|
}
|
|
order.setStatus(status);
|
|
order.setStatus(status);
|
|
- order.setTransNo(rpMap.get("orderNo"));
|
|
|
|
|
|
+ order.setTransNo(rpMap.get("orderNo").toString());
|
|
order.setPaymentBusinessChannel(channelType);
|
|
order.setPaymentBusinessChannel(channelType);
|
|
- order.setActualAmount(new BigDecimal(rpMap.get("payAmount")));
|
|
|
|
|
|
+ order.setActualAmount(new BigDecimal(rpMap.get("totalMoney").toString()));
|
|
paymentForCallback(order);
|
|
paymentForCallback(order);
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
@@ -318,4 +324,9 @@ public class TenantPaymentOrderServiceImpl extends BaseServiceImpl<Long, TenantP
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public TenantPaymentOrder queryByOrderNo(String orderNo) {
|
|
|
|
+ return tenantPaymentOrderDao.findOrderByOrderNo(orderNo);
|
|
|
|
+ }
|
|
}
|
|
}
|