|
@@ -22,6 +22,7 @@ import java.util.stream.Collectors;
|
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.entity.OrderSkuSync;
|
|
|
+import com.ym.mec.thirdparty.exception.ThirdpartyException;
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -480,11 +481,11 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void updateOrder(Map<String, String> rpMap) throws Exception {
|
|
|
- DealStatusEnum status = "1".equals(rpMap.get("tradeState")) ? DealStatusEnum.SUCCESS : DealStatusEnum.FAILED;
|
|
|
+ DealStatusEnum status = "1".equals(rpMap.get("tradeState")) ? SUCCESS : DealStatusEnum.FAILED;
|
|
|
StudentPaymentOrder order = findOrderByOrderNo(rpMap.get("merOrderNo"));
|
|
|
//关闭或失败的订单查询订单成功,订单改成成功,钱退到余额
|
|
|
- if (order != null && (order.getStatus().equals(DealStatusEnum.CLOSE) || order.getStatus().equals(DealStatusEnum.FAILED)) && status.equals(DealStatusEnum.SUCCESS)) {
|
|
|
- String memo = order.getStatus().equals(DealStatusEnum.CLOSE) ? "关闭订单" : "失败订单";
|
|
|
+ if (order != null && (order.getStatus().equals(CLOSE) || order.getStatus().equals(DealStatusEnum.FAILED)) && status.equals(SUCCESS)) {
|
|
|
+ String memo = order.getStatus().equals(CLOSE) ? "关闭订单" : "失败订单";
|
|
|
memo = memo + ",实际支付成功,退到用户余额";
|
|
|
//更新订单状态
|
|
|
order.setStatus(status);
|
|
@@ -511,7 +512,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- if (status.equals(DealStatusEnum.SUCCESS)) {
|
|
|
+ if (status.equals(SUCCESS)) {
|
|
|
order.setPayTime(new Date());
|
|
|
} else {
|
|
|
order.setMemo(rpMap.get("remarks"));
|
|
@@ -529,7 +530,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
callOrderCallBack(order);
|
|
|
|
|
|
- if (status.equals(DealStatusEnum.SUCCESS)
|
|
|
+ if (status.equals(SUCCESS)
|
|
|
&& StringUtils.isNotBlank(order.getPaymentChannel())
|
|
|
&& (order.getPaymentChannel().equals(PaymentChannelEnum.ADAPAY.getCode()) || order.getPaymentChannel().equals(PaymentChannelEnum.YEEPAY.getCode()))
|
|
|
&& !rpMap.containsKey("simulation")) {
|
|
@@ -892,7 +893,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
List<StudentPaymentOrderExportDto> orders = studentPaymentOrderDao.getUserApplyOrders(studentId, musicGroupId);
|
|
|
StudentRegistration studentRegister = studentRegistrationService.getStudentRegister(musicGroupId, studentId);
|
|
|
for (StudentPaymentOrderExportDto order : orders) {
|
|
|
- if ((DealStatusEnum.ING.equals(order.getStatus()) || DealStatusEnum.SUCCESS.equals(order.getStatus())) &&
|
|
|
+ if ((DealStatusEnum.ING.equals(order.getStatus()) || SUCCESS.equals(order.getStatus())) &&
|
|
|
studentRegister.getPayingStatus().equals(2)) {
|
|
|
order.setPayingStatus(2);
|
|
|
}
|
|
@@ -1137,7 +1138,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return BaseController.failed(HttpStatus.CONTINUE, "您有支付中的订单,是否继续支付");
|
|
|
}
|
|
|
//处理关闭订单
|
|
|
- order.setStatus(DealStatusEnum.CLOSE);
|
|
|
+ order.setStatus(CLOSE);
|
|
|
order.setMemo("关闭订单");
|
|
|
|
|
|
|
|
@@ -1210,7 +1211,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
StudentRegistration studentRegistration = studentRegistrationService.getStudentRegister(musicGroupId, userId);
|
|
|
//获取学员在乐团的状态,如果是在读,那么不处理人数
|
|
|
if (studentRegistration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.APPLY) {
|
|
|
- List<StudentPaymentOrder> oldStudentPaymentOrderList = this.queryByCondition(GroupType.MUSIC, musicGroupId, userId, DealStatusEnum.SUCCESS, OrderTypeEnum.APPLY);
|
|
|
+ List<StudentPaymentOrder> oldStudentPaymentOrderList = this.queryByCondition(GroupType.MUSIC, musicGroupId, userId, SUCCESS, OrderTypeEnum.APPLY);
|
|
|
//判断是否有成功的订单,如果有,表示已经处理过人数
|
|
|
if (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0) {
|
|
|
List<StudentPaymentOrderDetail> orderDetail = studentPaymentOrderDetailService.getOrderDetail(order.getId());
|
|
@@ -1369,7 +1370,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
if (studentPaymentOrder.getActualAmount().compareTo(BigDecimal.ZERO) == 0) {
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ studentPaymentOrder.setStatus(SUCCESS);
|
|
|
}
|
|
|
studentPaymentOrder.setGroupType(GroupType.MALL_SELL);
|
|
|
studentPaymentOrder.setUserId(model.getUserId());
|
|
@@ -1490,7 +1491,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
Map<Integer, String> map = new HashMap<>();
|
|
|
map.put(userId, userId.toString());
|
|
|
|
|
|
- if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
+ if (studentPaymentOrder.getStatus() == SUCCESS) {
|
|
|
try {
|
|
|
contractService.transferProduceContract(userId, null, studentPaymentOrder.getType());
|
|
|
} catch (Exception e) {
|
|
@@ -1614,7 +1615,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
rechargeDetail.setAmount(amount);
|
|
|
rechargeDetail.setBalance(cashAccount.getBalance().add(amount));
|
|
|
rechargeDetail.setComment("缴费前充值");
|
|
|
- rechargeDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ rechargeDetail.setStatus(SUCCESS);
|
|
|
rechargeDetail.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
rechargeDetail.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
|
|
|
rechargeDetail.setUserId(userId);
|
|
@@ -1629,12 +1630,12 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
paymentDetail.setAmount(amount.negate());
|
|
|
paymentDetail.setBalance(cashAccount.getBalance());
|
|
|
paymentDetail.setComment("商品销售");
|
|
|
- paymentDetail.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ paymentDetail.setStatus(SUCCESS);
|
|
|
paymentDetail.setTransNo(studentPaymentOrder.getTransNo());
|
|
|
paymentDetail.setType(PlatformCashAccountDetailTypeEnum.GOODS_SELL);
|
|
|
paymentDetail.setUserId(userId);
|
|
|
sysUserCashAccountDetailService.insert(paymentDetail);
|
|
|
- } else if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
|
|
|
+ } else if (studentPaymentOrder.getStatus() == CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
|
|
|
|
|
|
if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "商城购买支付失败");
|
|
@@ -1782,6 +1783,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Transactional
|
|
|
public OrderCancelModel cancelOrder(StudentPaymentOrder order, String reason) {
|
|
|
OrderCancelModel model = new OrderCancelModel();
|
|
|
+ model.setSuccess(true);
|
|
|
try {
|
|
|
HfMerchantConfig hfMerchantConfig = hfMerchantConfigService.queryByTenantId(order.getTenantId(), order.getPaymentChannel());
|
|
|
if(hfMerchantConfig == null){
|
|
@@ -1818,22 +1820,28 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
model.setStatus(false);
|
|
|
order.setStatus(CLOSE);
|
|
|
order.setMemo(reason);
|
|
|
- } else {
|
|
|
+ } else if (status.equals("pending")){
|
|
|
// 执行关单操作
|
|
|
+ Map<String, String> closeInfo = new HashMap<>();
|
|
|
if(StringUtils.equals(order.getPaymentChannel(), PaymentChannelEnum.ADAPAY.getCode())) {
|
|
|
- Payment.closeWithKey(order.getTransNo(),"", hfMerchantConfig.getMerKey());
|
|
|
+ closeInfo = Payment.closeWithKey(order.getTransNo(), "", hfMerchantConfig.getMerKey());
|
|
|
}else if(StringUtils.equals(order.getPaymentChannel(), PaymentChannelEnum.YEEPAY.getCode())) {
|
|
|
- yeepayPaymentService.close(hfMerchantConfig, order.getTransNo(),"", order.getOrderNo());
|
|
|
+ closeInfo = yeepayPaymentService.close(hfMerchantConfig, order.getTransNo(), "", order.getOrderNo());
|
|
|
}
|
|
|
+ boolean success = "success".equals(closeInfo.get("status"));
|
|
|
model.setStatus(false);
|
|
|
order.setStatus(CLOSE);
|
|
|
+ model.setSuccess(success);
|
|
|
+ model.setMessage(closeInfo.get("msg"));
|
|
|
+ }
|
|
|
+ if (model.getSuccess()) {
|
|
|
+ TenantContextHolder.setTenantId(order.getTenantId());
|
|
|
+ callOrderCallBack(order);
|
|
|
+ TenantContextHolder.clearTenantId();
|
|
|
}
|
|
|
- TenantContextHolder.setTenantId(order.getTenantId());
|
|
|
- callOrderCallBack(order);
|
|
|
- TenantContextHolder.clearTenantId();
|
|
|
- model.setSuccess(true);
|
|
|
- } catch (Exception e) {
|
|
|
+ }catch (Exception e) {
|
|
|
model.setSuccess(false);
|
|
|
+ model.setMessage(e.getMessage());
|
|
|
logger.error("订单[{}]取消失败", order.getTransNo(), e);
|
|
|
}
|
|
|
return model;
|