|
|
@@ -10,13 +10,11 @@ import com.github.microservice.models.type.PaymentType;
|
|
|
import com.zhongshu.card.client.model.payment.ExpenseFlowCount;
|
|
|
import com.zhongshu.card.client.model.payment.ExpenseFlowModel;
|
|
|
import com.zhongshu.card.client.model.payment.ExpenseFlowSearch;
|
|
|
+import com.zhongshu.card.client.model.payment.ExpenseRefundParam;
|
|
|
import com.zhongshu.card.client.ret.ResultContent;
|
|
|
import com.zhongshu.card.client.ret.ResultMessage;
|
|
|
import com.zhongshu.card.client.service.payment.ExpenseFlowService;
|
|
|
-import com.zhongshu.card.client.utils.type.DataState;
|
|
|
-import com.zhongshu.card.client.utils.type.OrderType;
|
|
|
-import com.zhongshu.card.client.utils.type.RechargeType;
|
|
|
-import com.zhongshu.card.client.utils.type.UserState;
|
|
|
+import com.zhongshu.card.client.utils.type.*;
|
|
|
import com.zhongshu.card.client.utils.type.school.CardState;
|
|
|
import com.zhongshu.card.server.core.dao.school.CardInfoDao;
|
|
|
import com.zhongshu.card.server.core.dao.org.UserCountDao;
|
|
|
@@ -177,6 +175,7 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
entity.setPaymentStatus("支付成功");
|
|
|
entity.setIsPaySuccess(Boolean.TRUE);
|
|
|
entity.setPayRemark("支付成功");
|
|
|
+ entity.setOrderType(OrderType.HAVE_PAID);
|
|
|
} else {
|
|
|
String msg = content.getMsg();
|
|
|
if (StringUtils.isNotEmpty(msg) && msg.contains("Connection reset")) {
|
|
|
@@ -185,6 +184,7 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
entity.setPaymentStatus(msg);
|
|
|
entity.setIsPaySuccess(Boolean.FALSE);
|
|
|
entity.setPayRemark(content.getMsg());
|
|
|
+ entity.setOrderType(OrderType.PAID_ERROR);
|
|
|
}
|
|
|
expenseFlowDao.save(entity);
|
|
|
return ResultContent.buildSuccess();
|
|
|
@@ -529,6 +529,47 @@ public class ExpenseFlowServiceImpl extends SuperService implements ExpenseFlowS
|
|
|
return ResultContent.buildSuccess(model);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 商家端用户退款
|
|
|
+ *
|
|
|
+ * @param param
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public ResultContent expenseShopRefund(ExpenseRefundParam param) {
|
|
|
+ ExpenseFlow expenseFlow = expenseFlowDao.findTopById(param.getId());
|
|
|
+ if (ObjectUtils.isEmpty(expenseFlow)) {
|
|
|
+ return ResultContent.buildSuccess(String.format(ResultMessage.DATA_NOT_EXIST, param.getId()));
|
|
|
+ }
|
|
|
+ if (expenseFlow.getOrderType() == OrderType.HAVE_PAID) {
|
|
|
+ return ResultContent.buildFail(String.format("订单状态不是已支付状态,不能退款"));
|
|
|
+ }
|
|
|
+ // 调用支付中心退款
|
|
|
+ AmountUpdateParam updateParam = new AmountUpdateParam();
|
|
|
+ updateParam.setOid(expenseFlow.getProjectOid());
|
|
|
+ updateParam.setUserId(expenseFlow.getUserId());
|
|
|
+ updateParam.setShopId(expenseFlow.getShopOid());
|
|
|
+ updateParam.setSchoolId(expenseFlow.getSchoolOid());
|
|
|
+ updateParam.setTotal(expenseFlow.getPayAmount());
|
|
|
+ updateParam.setOutTradeNo(expenseFlow.getPaymentNo());
|
|
|
+
|
|
|
+ // 调用支付中心退款
|
|
|
+ com.zhongshu.payment.client.ret.ResultContent content = walletFeignService.refund(updateParam);
|
|
|
+ expenseFlow.setIsRefund(Boolean.TRUE);
|
|
|
+ expenseFlow.setRefundRemark(param.getRemark());
|
|
|
+ expenseFlow.setRefundTime(System.currentTimeMillis());
|
|
|
+ if (content.isSuccess()) {
|
|
|
+ // 退款人
|
|
|
+ expenseFlow.setRefundUserId(getCurrentUserId());
|
|
|
+ expenseFlow.setOrderType(OrderType.REFUNDED);
|
|
|
+ expenseFlow.setRefundState(RefundState.Refunded);
|
|
|
+ expenseFlow.setRefuseRemark("退款成功");
|
|
|
+ expenseFlowDao.save(expenseFlow);
|
|
|
+ return ResultContent.buildSuccess();
|
|
|
+ } else {
|
|
|
+ return ResultContent.buildFail(String.format("%s", content.getMsg()));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
public ExpenseFlowModel toModel(ExpenseFlow entity) {
|
|
|
ExpenseFlowModel model = new ExpenseFlowModel();
|
|
|
if (ObjectUtils.isNotEmpty(entity)) {
|