|
@@ -9,8 +9,11 @@ import com.github.microservice.types.payment.ChargeableType;
|
|
|
import com.zhongshu.card.client.model.payment.CreateOrderParam;
|
|
import com.zhongshu.card.client.model.payment.CreateOrderParam;
|
|
|
import com.zhongshu.card.client.model.payment.ExpenseFlowSearch;
|
|
import com.zhongshu.card.client.model.payment.ExpenseFlowSearch;
|
|
|
import com.zhongshu.card.client.openApi.model.ExpenseFlowOpenApiModel;
|
|
import com.zhongshu.card.client.openApi.model.ExpenseFlowOpenApiModel;
|
|
|
|
|
+import com.zhongshu.card.client.openApi.model.order.MarkPaidParam;
|
|
|
import com.zhongshu.card.client.openApi.model.order.OrderCreateParam;
|
|
import com.zhongshu.card.client.openApi.model.order.OrderCreateParam;
|
|
|
|
|
+import com.zhongshu.card.client.openApi.params.CloseOrderParam;
|
|
|
import com.zhongshu.card.client.openApi.params.ExpenseFlowOpenApiSearch;
|
|
import com.zhongshu.card.client.openApi.params.ExpenseFlowOpenApiSearch;
|
|
|
|
|
+import com.zhongshu.card.client.openApi.params.OrderNoParam;
|
|
|
import com.zhongshu.card.client.openApi.params.PaymentNoParam;
|
|
import com.zhongshu.card.client.openApi.params.PaymentNoParam;
|
|
|
import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;
|
|
import com.zhongshu.card.server.core.dao.devices.DeviceInfoDao;
|
|
|
import com.zhongshu.card.server.core.dao.org.UserCountDao;
|
|
import com.zhongshu.card.server.core.dao.org.UserCountDao;
|
|
@@ -174,17 +177,45 @@ public class OrderOpenApiService extends SuperService {
|
|
|
return ResultContent.buildSuccess(toModel(expenseFlow));
|
|
return ResultContent.buildSuccess(toModel(expenseFlow));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 订单号查询详情
|
|
|
|
|
+ * @param param
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public ResultContent<ExpenseFlowOpenApiModel> getDetailByOrderNo(OrderNoParam param) {
|
|
|
|
|
+ if (StringUtils.isEmpty(param.getOrderNo())) {
|
|
|
|
|
+ return ResultContent.buildFail("orderNo不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ ExpenseFlow expenseFlow = expenseFlowDao.findTopByOrderNoOrderByCreateTimeDesc(param.getOrderNo());
|
|
|
|
|
+ if (ObjectUtils.isEmpty(expenseFlow)) {
|
|
|
|
|
+ return ResultContent.buildFail("订单不存在");
|
|
|
|
|
+ }
|
|
|
|
|
+ return ResultContent.buildSuccess(toModel(expenseFlow));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 关闭订单
|
|
* 关闭订单
|
|
|
*
|
|
*
|
|
|
* @param param
|
|
* @param param
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
- public ResultContent closeOrder(PaymentNoParam param) {
|
|
|
|
|
|
|
+ public ResultContent closeOrderByPaymentNo(PaymentNoParam param) {
|
|
|
if (StringUtils.isEmpty(param.getPaymentNo())) {
|
|
if (StringUtils.isEmpty(param.getPaymentNo())) {
|
|
|
return ResultContent.buildFail("paymentNo不能为空");
|
|
return ResultContent.buildFail("paymentNo不能为空");
|
|
|
}
|
|
}
|
|
|
ExpenseFlow expenseFlow = expenseFlowDao.findTopByPaymentNo(param.getPaymentNo());
|
|
ExpenseFlow expenseFlow = expenseFlowDao.findTopByPaymentNo(param.getPaymentNo());
|
|
|
|
|
+ return closeOrder(expenseFlow, param);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ResultContent closeOrderByOrderNo(OrderNoParam param) {
|
|
|
|
|
+ if (StringUtils.isEmpty(param.getOrderNo())) {
|
|
|
|
|
+ return ResultContent.buildFail("orderNo不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ ExpenseFlow expenseFlow = expenseFlowDao.findTopByOrderNoOrderByCreateTimeDesc(param.getOrderNo());
|
|
|
|
|
+ return closeOrder(expenseFlow, param);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ public ResultContent closeOrder(ExpenseFlow expenseFlow, CloseOrderParam param) {
|
|
|
if (ObjectUtils.isEmpty(expenseFlow)) {
|
|
if (ObjectUtils.isEmpty(expenseFlow)) {
|
|
|
return ResultContent.buildFail("订单不存在");
|
|
return ResultContent.buildFail("订单不存在");
|
|
|
}
|
|
}
|
|
@@ -196,6 +227,48 @@ public class OrderOpenApiService extends SuperService {
|
|
|
return ResultContent.buildFail("订单已支付成功,不能关闭");
|
|
return ResultContent.buildFail("订单已支付成功,不能关闭");
|
|
|
}
|
|
}
|
|
|
expenseFlow.setOrderState(OrderState.CLOSED);
|
|
expenseFlow.setOrderState(OrderState.CLOSED);
|
|
|
|
|
+ expenseFlow.setCloseTime(System.currentTimeMillis());
|
|
|
|
|
+ if (param != null) {
|
|
|
|
|
+ expenseFlow.setCloseUserId(param.getCloseUserId());
|
|
|
|
|
+ expenseFlow.setCloseReason(param.getCloseReason());
|
|
|
|
|
+ }
|
|
|
|
|
+ expenseFlowDao.save(expenseFlow);
|
|
|
|
|
+ return ResultContent.buildSuccess();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 标记订单已支付
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public ResultContent markOrderPaid(MarkPaidParam param) {
|
|
|
|
|
+ if (StringUtils.isEmpty(param.getOrderNo())) {
|
|
|
|
|
+ return ResultContent.buildFail("orderNo不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ if (StringUtils.isEmpty(param.getUserId())) {
|
|
|
|
|
+ return ResultContent.buildFail("userId不能为空");
|
|
|
|
|
+ }
|
|
|
|
|
+ ExpenseFlow expenseFlow = expenseFlowDao.findTopByOrderNoOrderByCreateTimeDesc(param.getOrderNo());
|
|
|
|
|
+ if (ObjectUtils.isEmpty(expenseFlow)) {
|
|
|
|
|
+ return ResultContent.buildFail(String.format("订单不存在:%s", param.getOrderNo()));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (expenseFlow.getOrderState() != OrderState.WAIT_PAYMENT) {
|
|
|
|
|
+ String stateStr = "";
|
|
|
|
|
+ if (expenseFlow.getOrderState() != null) {
|
|
|
|
|
+ stateStr = expenseFlow.getOrderState().getRemark();
|
|
|
|
|
+ }
|
|
|
|
|
+ return ResultContent.buildFail(String.format("订单不能支付:%s", stateStr));
|
|
|
|
|
+ }
|
|
|
|
|
+ if (expenseFlow.getVerifyParamIsSuccess() == null || !expenseFlow.getVerifyParamIsSuccess()) {
|
|
|
|
|
+ return ResultContent.buildFail(String.format("订单不能支付:%s", expenseFlow.getVerifyParamMsg()));
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ expenseFlow.setOrderState(OrderState.HAVE_PAID);
|
|
|
|
|
+ expenseFlow.setPayRemark(param.getPayRemark());
|
|
|
|
|
+ expenseFlow.setIsPaySuccess(Boolean.TRUE);
|
|
|
|
|
+ expenseFlow.setPaymentStatus("已支付");
|
|
|
|
|
+ expenseFlow.setPayUserId(param.getUserId());
|
|
|
|
|
+ expenseFlow.setIsPaid(Boolean.TRUE);
|
|
|
|
|
+
|
|
|
expenseFlowDao.save(expenseFlow);
|
|
expenseFlowDao.save(expenseFlow);
|
|
|
return ResultContent.buildSuccess();
|
|
return ResultContent.buildSuccess();
|
|
|
}
|
|
}
|