Commit 7abf77d8 by 程裕兵

feat:refund

parent 5f094ca6
...@@ -19,6 +19,7 @@ import com.jiejing.fitness.finance.api.merchant.request.UnbindStudioMerchantRequ ...@@ -19,6 +19,7 @@ import com.jiejing.fitness.finance.api.merchant.request.UnbindStudioMerchantRequ
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantApplyVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantApplyVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantAuthSubChannelVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantAuthSubChannelVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantBindXcxAppIdVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantBindXcxAppIdVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantVO;
import com.jiejing.paycenter.common.model.vo.PayVO; import com.jiejing.paycenter.common.model.vo.PayVO;
...@@ -99,7 +100,7 @@ public interface StudioMerchantApi { ...@@ -99,7 +100,7 @@ public interface StudioMerchantApi {
@ApiOperation(value = "退款前置校验", tags = {TAG}) @ApiOperation(value = "退款前置校验", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/checkBeforeRefund") @PostMapping(value = "/private/studioMerchant/checkBeforeRefund")
JsonResult<StudioMerchantRefundVO> checkBeforeRefund(StudioMerchantRefundRequest request); JsonResult<StudioMerchantCheckRefundVO> checkBeforeRefund(StudioMerchantRefundRequest request);
@ApiOperation(value = "退款", tags = {TAG}) @ApiOperation(value = "退款", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/refund") @PostMapping(value = "/private/studioMerchant/refund")
......
...@@ -19,6 +19,7 @@ import com.jiejing.fitness.finance.api.merchant.request.UnbindStudioMerchantRequ ...@@ -19,6 +19,7 @@ import com.jiejing.fitness.finance.api.merchant.request.UnbindStudioMerchantRequ
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantApplyVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantApplyVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantAuthSubChannelVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantAuthSubChannelVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantBindXcxAppIdVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantBindXcxAppIdVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantVO;
import com.jiejing.paycenter.common.model.vo.PayVO; import com.jiejing.paycenter.common.model.vo.PayVO;
...@@ -117,7 +118,7 @@ public class StudioMerchantApiFallback implements FallbackFactory<StudioMerchant ...@@ -117,7 +118,7 @@ public class StudioMerchantApiFallback implements FallbackFactory<StudioMerchant
} }
@Override @Override
public JsonResult<StudioMerchantRefundVO> checkBeforeRefund(StudioMerchantRefundRequest request) { public JsonResult<StudioMerchantCheckRefundVO> checkBeforeRefund(StudioMerchantRefundRequest request) {
return JsonResult.rpcError(); return JsonResult.rpcError();
} }
......
package com.jiejing.fitness.finance.api.merchant.request; package com.jiejing.fitness.finance.api.merchant.request;
import com.alibaba.fastjson.JSONObject;
import com.jiejing.fitness.enums.finance.PayOrderTypeEnum; import com.jiejing.fitness.enums.finance.PayOrderTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -26,6 +27,10 @@ public class StudioMerchantRefundRequest { ...@@ -26,6 +27,10 @@ public class StudioMerchantRefundRequest {
@NotNull(message = "场馆ID不能为空") @NotNull(message = "场馆ID不能为空")
private Long studioId; private Long studioId;
@ApiModelProperty(name = "订单类型", required = true)
@NotNull(message = "订单类型不能为空")
private PayOrderTypeEnum orderType;
@ApiModelProperty(name = "退款总金额(元)", required = true) @ApiModelProperty(name = "退款总金额(元)", required = true)
@NotNull(message = "退款总金额不能为空") @NotNull(message = "退款总金额不能为空")
private BigDecimal transAmount; private BigDecimal transAmount;
...@@ -38,15 +43,16 @@ public class StudioMerchantRefundRequest { ...@@ -38,15 +43,16 @@ public class StudioMerchantRefundRequest {
@NotBlank(message = "退款原因不能为空") @NotBlank(message = "退款原因不能为空")
private String refundReason; private String refundReason;
@ApiModelProperty(name = "上层业务退款单号", required = true) @ApiModelProperty(name = "上层业务退款ID")
@NotBlank(message = "上层业务退款单号不能为空")
private String orderNo; private String orderNo;
@ApiModelProperty(name = "上层业务退款订单号")
private String businessNo;
@ApiModelProperty(name = "上层业务子订单号") @ApiModelProperty(name = "上层业务子订单号")
private String subOrderNo; private String subOrderNo;
@ApiModelProperty(name = "订单类型", required = true) @ApiModelProperty(name = "业务扩展信息")
@NotNull(message = "订单类型不能为空") private JSONObject extra;
private PayOrderTypeEnum orderType;
} }
package com.jiejing.fitness.finance.api.merchant.vo;
import com.jiejing.common.swagger.EnumMapping;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.Arrays;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
/**
* @author chengyubing
* @since 2024/5/10 13:40
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "场馆商户退款校验VO")
public class StudioMerchantCheckRefundVO {
@EnumMapping(enumClass = CheckRefundCodeEnum.class)
@ApiModelProperty(value = "退款前置校验code")
private String code;
@ApiModelProperty(name = "失败原因")
private String failMessage;
@Getter
@AllArgsConstructor
public enum CheckRefundCodeEnum {
/**
* 退款校验CODE,退款失败CODE
*/
SUCCESS("校验成功"),
NOT_CURRENT_MERCHANT("不是当前商户号收款,金额无法线上原路退回。如仍需退款请私下处理,系统会产生新的收支"),
DATE_LIMIT("仅支持350天内交易进行退款,金额无法线上原路退回。如仍需退款请私下处理,系统会产生新的收支"),
TIME_LIMIT("当前时间段不支持退款,金额无法线上原路退回。如仍需退款请私下处理,系统会产生新的收支"),
AMOUNT_LIMIT("乐动收银可退金额不足,请先通过扫码收款收款后再进行退款或者线下处理退款"),
OTHER_ERROR("其他错误"),
;
private final String code = name();
private final String message;
public static CheckRefundCodeEnum getByCode(String code) {
return Arrays.stream(CheckRefundCodeEnum.values()).filter(e -> e.getCode().equals(code)).findFirst()
.orElse(OTHER_ERROR);
}
public static boolean isSuccess(String code) {
return CheckRefundCodeEnum.SUCCESS == getByCode(code);
}
public static boolean isFail(String code) {
return !isSuccess(code);
}
}
}
...@@ -2,15 +2,12 @@ package com.jiejing.fitness.finance.api.merchant.vo; ...@@ -2,15 +2,12 @@ package com.jiejing.fitness.finance.api.merchant.vo;
import com.jiejing.common.swagger.EnumMapping; import com.jiejing.common.swagger.EnumMapping;
import com.jiejing.paycenter.common.enums.common.TransStateEnums; import com.jiejing.paycenter.common.enums.common.TransStateEnums;
import com.jiejing.paycenter.common.enums.error.PayErrorEnums;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import java.util.Arrays;
import java.util.Date; import java.util.Date;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
/** /**
...@@ -40,40 +37,4 @@ public class StudioMerchantRefundVO { ...@@ -40,40 +37,4 @@ public class StudioMerchantRefundVO {
@ApiModelProperty(name = "完成时间") @ApiModelProperty(name = "完成时间")
private Date successTime; private Date successTime;
@EnumMapping(enumClass = CheckRefundCodeEnum.class)
@ApiModelProperty(value = "具体的错误码", notes = "退款校验或者退款失败时此code有值")
private String code;
@Getter
@AllArgsConstructor
public enum CheckRefundCodeEnum {
/**
* 退款校验CODE,退款失败CODE
*/
SUCCESS("校验成功"),
NOT_CURRENT_MERCHANT("不是当前商户号收款,金额无法线上原路退回。如仍需退款请私下处理,系统会产生新的收支"),
DATE_LIMIT("仅支持350天内交易进行退款,金额无法线上原路退回。如仍需退款请私下处理,系统会产生新的收支"),
TIME_LIMIT("当前时间段不支持退款,金额无法线上原路退回。如仍需退款请私下处理,系统会产生新的收支"),
AMOUNT_LIMIT("乐动收银可退金额不足,请先通过扫码收款收款后再进行退款或者线下处理退款"),
OTHER_ERROR("其他错误"),
;
private final String code = name();
private final String message;
public static CheckRefundCodeEnum getByCode(String code) {
return Arrays.stream(CheckRefundCodeEnum.values()).filter(e -> e.getCode().equals(code)).findFirst()
.orElse(OTHER_ERROR);
}
public static boolean isSuccess(String code) {
return CheckRefundCodeEnum.SUCCESS == getByCode(code);
}
public static boolean isFail(String code) {
return !isSuccess(code);
}
}
} }
...@@ -21,6 +21,7 @@ import com.jiejing.fitness.finance.api.merchant.request.UnbindStudioMerchantRequ ...@@ -21,6 +21,7 @@ import com.jiejing.fitness.finance.api.merchant.request.UnbindStudioMerchantRequ
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantApplyVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantApplyVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantAuthSubChannelVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantAuthSubChannelVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantBindXcxAppIdVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantBindXcxAppIdVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantVO;
import com.jiejing.fitness.finance.service.merchant.StudioMerchantService; import com.jiejing.fitness.finance.service.merchant.StudioMerchantService;
...@@ -182,7 +183,7 @@ public class StudioMerchantController implements StudioMerchantApi { ...@@ -182,7 +183,7 @@ public class StudioMerchantController implements StudioMerchantApi {
@ApiOperation(value = "退款前置校验", tags = {TAG}) @ApiOperation(value = "退款前置校验", tags = {TAG})
@PostMapping(value = "/private/studioMerchant/checkBeforeRefund") @PostMapping(value = "/private/studioMerchant/checkBeforeRefund")
@Override @Override
public JsonResult<StudioMerchantRefundVO> checkBeforeRefund( public JsonResult<StudioMerchantCheckRefundVO> checkBeforeRefund(
@RequestBody @Valid StudioMerchantRefundRequest request) { @RequestBody @Valid StudioMerchantRefundRequest request) {
StudioMerchantRefundParams params = BeanUtil.map(request, StudioMerchantRefundParams.class); StudioMerchantRefundParams params = BeanUtil.map(request, StudioMerchantRefundParams.class);
return JsonResult.success(refundService.checkBeforeMerchantRefund(params)); return JsonResult.success(refundService.checkBeforeMerchantRefund(params));
......
package com.jiejing.fitness.finance.service.pay; package com.jiejing.fitness.finance.service.pay;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
import com.jiejing.fitness.finance.service.pay.params.StudioMerchantRefundParams; import com.jiejing.fitness.finance.service.pay.params.StudioMerchantRefundParams;
import com.jiejing.paycenter.common.event.RefundEvent; import com.jiejing.paycenter.common.event.RefundEvent;
...@@ -17,7 +18,7 @@ public interface RefundService { ...@@ -17,7 +18,7 @@ public interface RefundService {
* @param params 参数 * @param params 参数
* @return 结果 * @return 结果
*/ */
StudioMerchantRefundVO checkBeforeMerchantRefund(StudioMerchantRefundParams params); StudioMerchantCheckRefundVO checkBeforeMerchantRefund(StudioMerchantRefundParams params);
/** /**
* 商户退款 * 商户退款
......
package com.jiejing.fitness.finance.service.pay.convert; package com.jiejing.fitness.finance.service.pay.convert;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.jiejing.common.exception.BizException; import com.jiejing.common.exception.BizException;
import com.jiejing.common.utils.convert.BeanUtil; import com.jiejing.common.utils.convert.BeanUtil;
import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum; import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum;
import com.jiejing.fitness.enums.finance.BrandCashierTransTypeEnum; import com.jiejing.fitness.enums.finance.BrandCashierTransTypeEnum;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO.CheckRefundCodeEnum; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO.CheckRefundCodeEnum;
import com.jiejing.fitness.finance.repository.entity.StudioCashierRecord; import com.jiejing.fitness.finance.repository.entity.StudioCashierRecord;
import com.jiejing.fitness.finance.service.enums.FinanceErrorEnums; import com.jiejing.fitness.finance.service.enums.FinanceErrorEnums;
import com.jiejing.fitness.finance.service.pay.params.StudioMerchantRefundParams; import com.jiejing.fitness.finance.service.pay.params.StudioMerchantRefundParams;
...@@ -18,6 +20,7 @@ import com.jiejing.paycenter.common.event.RefundEvent; ...@@ -18,6 +20,7 @@ import com.jiejing.paycenter.common.event.RefundEvent;
import com.jiejing.paycenter.common.model.vo.RefundVO; import com.jiejing.paycenter.common.model.vo.RefundVO;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.Optional;
/** /**
* @author chengyubing * @author chengyubing
...@@ -35,9 +38,9 @@ public class RefundConvert { ...@@ -35,9 +38,9 @@ public class RefundConvert {
return StudioCashierRecord.builder() return StudioCashierRecord.builder()
.id(id) .id(id)
.transNo(id.toString()) .transNo(id.toString())
.orderType(params.getOrderType().getCode())
.orderNo(params.getOrderNo()) .orderNo(params.getOrderNo())
.businessNo(params.getBusinessNo()) .businessNo(params.getBusinessNo())
.orderType(params.getOrderType().getCode())
.subOrderNo(params.getSubOrderNo()) .subOrderNo(params.getSubOrderNo())
.transType(BrandCashierTransTypeEnum.REFUND.getCode()) .transType(BrandCashierTransTypeEnum.REFUND.getCode())
.brandId(pay.getBrandId()) .brandId(pay.getBrandId())
...@@ -58,6 +61,7 @@ public class RefundConvert { ...@@ -58,6 +61,7 @@ public class RefundConvert {
.remark(params.getRefundReason()) .remark(params.getRefundReason())
.existRelatedTrans(true) .existRelatedTrans(true)
.relatedTransNo(params.getPayTransNo()) .relatedTransNo(params.getPayTransNo())
.extra(Optional.of(params.getExtra()).map(e -> JSON.toJSONString(e)).orElse("{}"))
.tradingTime(now) .tradingTime(now)
.createTime(now) .createTime(now)
.updateTime(now) .updateTime(now)
...@@ -122,23 +126,19 @@ public class RefundConvert { ...@@ -122,23 +126,19 @@ public class RefundConvert {
.failMessage(vo.getFailMessage()) .failMessage(vo.getFailMessage())
.refundState(vo.getRefundState()) .refundState(vo.getRefundState())
.successTime(vo.getSuccessTime()) .successTime(vo.getSuccessTime())
.code(TransStateEnums.FAIL == TransStateEnums.getByCode(vo.getRefundState())
? CheckRefundCodeEnum.OTHER_ERROR.getCode() : null)
.build(); .build();
} }
public static StudioMerchantRefundVO convertRefundVO(CheckRefundCodeEnum code) { public static StudioMerchantCheckRefundVO convertRefundVO(CheckRefundCodeEnum code) {
return StudioMerchantRefundVO.builder().code(code.getCode()).failMessage(code.getMessage()).build(); return StudioMerchantCheckRefundVO.builder().code(code.getCode()).failMessage(code.getMessage()).build();
} }
public static RefundEvent convertRefundEvent(StudioCashierRecord refund, StudioMerchantRefundVO vo) { public static RefundEvent convertRefundEvent(StudioCashierRecord refund, StudioMerchantCheckRefundVO vo) {
return RefundEvent.builder() return RefundEvent.builder()
.id(refund.getId()) .id(refund.getId())
.transNo(refund.getTransNo()) .transNo(refund.getTransNo())
.thirdTransNo(vo.getThirdTransNo()) .refundState(BrandCashierTransStateEnum.REFUND_FAIL.getCode())
.refundState(convertTransState(vo.getRefundState()).getCode())
.failMessage(vo.getFailMessage()) .failMessage(vo.getFailMessage())
.successTime(vo.getSuccessTime())
.updateTime(new Date()) .updateTime(new Date())
.build(); .build();
} }
......
...@@ -7,8 +7,9 @@ import com.jiejing.common.utils.collection.CollectionUtil; ...@@ -7,8 +7,9 @@ import com.jiejing.common.utils.collection.CollectionUtil;
import com.jiejing.common.utils.time.TimeUtil; import com.jiejing.common.utils.time.TimeUtil;
import com.jiejing.fitness.enums.auth.AuthDomainEnum; import com.jiejing.fitness.enums.auth.AuthDomainEnum;
import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum; import com.jiejing.fitness.enums.finance.BrandCashierTransStateEnum;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantCheckRefundVO.CheckRefundCodeEnum;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO; import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO;
import com.jiejing.fitness.finance.api.merchant.vo.StudioMerchantRefundVO.CheckRefundCodeEnum;
import com.jiejing.fitness.finance.repository.entity.PartyToMerchant; import com.jiejing.fitness.finance.repository.entity.PartyToMerchant;
import com.jiejing.fitness.finance.repository.entity.StudioCashierRecord; import com.jiejing.fitness.finance.repository.entity.StudioCashierRecord;
import com.jiejing.fitness.finance.repository.service.StudioCashierRecordRpService; import com.jiejing.fitness.finance.repository.service.StudioCashierRecordRpService;
...@@ -81,7 +82,7 @@ public class RefundServiceImpl implements RefundService { ...@@ -81,7 +82,7 @@ public class RefundServiceImpl implements RefundService {
private Executor executor; private Executor executor;
@Override @Override
public StudioMerchantRefundVO checkBeforeMerchantRefund(StudioMerchantRefundParams params) { public StudioMerchantCheckRefundVO checkBeforeMerchantRefund(StudioMerchantRefundParams params) {
Long payId = Long.parseLong(params.getPayTransNo()); Long payId = Long.parseLong(params.getPayTransNo());
StudioCashierRecord pay = studioCashierRecordRpService.getById(payId) StudioCashierRecord pay = studioCashierRecordRpService.getById(payId)
.orElseThrow(() -> new BizException(FinanceErrorEnums.NOT_EXIST)); .orElseThrow(() -> new BizException(FinanceErrorEnums.NOT_EXIST));
...@@ -110,10 +111,14 @@ public class RefundServiceImpl implements RefundService { ...@@ -110,10 +111,14 @@ public class RefundServiceImpl implements RefundService {
StudioCashierRecord refund = this.initRefundRecord(params); StudioCashierRecord refund = this.initRefundRecord(params);
StudioMerchantRefundVO checkResult = this.checkBeforeMerchantRefund(params); StudioMerchantCheckRefundVO checkResult = this.checkBeforeMerchantRefund(params);
if (CheckRefundCodeEnum.isFail(checkResult.getCode())) { if (CheckRefundCodeEnum.isFail(checkResult.getCode())) {
this.refundCallback(RefundConvert.convertRefundEvent(refund, checkResult)); this.refundCallback(RefundConvert.convertRefundEvent(refund, checkResult));
return checkResult; return StudioMerchantRefundVO.builder()
.transNo(refund.getTransNo())
.refundState(TransStateEnums.FAIL.getCode())
.failMessage(checkResult.getFailMessage())
.build();
} }
RefundPayRequest request = RefundConvert.convert(params, refund); RefundPayRequest request = RefundConvert.convert(params, refund);
......
package com.jiejing.fitness.finance.service.pay.params; package com.jiejing.fitness.finance.service.pay.params;
import com.alibaba.fastjson.JSONObject;
import com.jiejing.fitness.enums.finance.PayOrderTypeEnum; import com.jiejing.fitness.enums.finance.PayOrderTypeEnum;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -26,6 +27,10 @@ public class StudioMerchantRefundParams { ...@@ -26,6 +27,10 @@ public class StudioMerchantRefundParams {
@NotNull(message = "场馆ID不能为空") @NotNull(message = "场馆ID不能为空")
private Long studioId; private Long studioId;
@ApiModelProperty(name = "订单类型", required = true)
@NotNull(message = "订单类型不能为空")
private PayOrderTypeEnum orderType;
@ApiModelProperty(name = "退款总金额(元)", required = true) @ApiModelProperty(name = "退款总金额(元)", required = true)
@NotNull(message = "退款总金额不能为空") @NotNull(message = "退款总金额不能为空")
private BigDecimal transAmount; private BigDecimal transAmount;
...@@ -38,8 +43,7 @@ public class StudioMerchantRefundParams { ...@@ -38,8 +43,7 @@ public class StudioMerchantRefundParams {
@NotBlank(message = "退款原因不能为空") @NotBlank(message = "退款原因不能为空")
private String refundReason; private String refundReason;
@ApiModelProperty(name = "上层业务退款ID", required = true) @ApiModelProperty(name = "上层业务退款ID")
@NotBlank(message = "上层业务退款ID不能为空")
private String orderNo; private String orderNo;
@ApiModelProperty(name = "上层业务退款订单号") @ApiModelProperty(name = "上层业务退款订单号")
...@@ -48,8 +52,7 @@ public class StudioMerchantRefundParams { ...@@ -48,8 +52,7 @@ public class StudioMerchantRefundParams {
@ApiModelProperty(name = "上层业务子订单号") @ApiModelProperty(name = "上层业务子订单号")
private String subOrderNo; private String subOrderNo;
@ApiModelProperty(name = "订单类型", required = true) @ApiModelProperty(name = "业务扩展信息")
@NotNull(message = "订单类型不能为空") private JSONObject extra;
private PayOrderTypeEnum orderType;
} }
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