Commit da31a884 by 程裕兵

feat:bind cashier record

parent ecbce47d
......@@ -27,11 +27,16 @@ public class BindStudioCashierRequest {
@NotEmpty(message = "收银流水ID不能为空")
private List<Long> ids;
@ApiModelProperty(value = "订单ID", required = true)
@NotBlank(message = "订单ID不能为空")
private String orderNo;
@ApiModelProperty(value = "订单号", required = true)
@NotBlank(message = "订单号不能为空")
private String businessNo;
@ApiModelProperty(value = "子订单号", required = true)
@NotBlank(message = "子订单号不能为空")
private String subOrderNo;
@ApiModelProperty(value = "扩展信息")
private JSONObject extra;
}
......@@ -35,9 +35,12 @@ public class StudioMerchantPayRequest {
@NotNull(message = "支付总金额不能为空")
private BigDecimal transAmount;
@ApiModelProperty(name = "业务订单")
@ApiModelProperty(name = "业务订单ID")
private String orderNo;
@ApiModelProperty(name = "业务订单号")
private String businessNo;
@ApiModelProperty(name = "业务子订单号")
private String subOrderNo;
......
......@@ -50,7 +50,8 @@ public class StudioCashierController implements StudioCashierApi {
@PostMapping(value = "/private/studioCashier/bind")
@Override
public JsonResult<Void> bind(@Valid @RequestBody BindStudioCashierRequest request) {
studioCashierService.bind(request.getIds(), request.getSubOrderNo(), request.getExtra());
studioCashierService.bind(request.getIds(), request.getOrderNo(), request.getBusinessNo(),
request.getSubOrderNo());
return JsonResult.success();
}
......
......@@ -56,11 +56,16 @@ public class StudioCashierRecord implements Serializable {
private String transNo;
/**
* 备注: 业务订单 是否允许为null: NO
* 备注: 业务订单Id 是否允许为null: NO
*/
private String orderNo;
/**
* 业务订单号
*/
private String businessNo;
/**
* 备注: 业务订单类型 是否允许为null: YES
*/
private String orderType;
......@@ -218,6 +223,8 @@ public class StudioCashierRecord implements Serializable {
public static final String ORDER_NO = "order_no";
public static final String BUSINESS_NO = "business_no";
public static final String SUB_ORDER_NO = "sub_order_no";
public static final String ORDER_TYPE = "order_type";
......
......@@ -17,7 +17,7 @@
<!-- 通用查询结果列 -->
<sql id="Base_Column_List">
id, trans_no, order_no, sub_order_no, order_type, trans_type, brand_id, studio_id, studio_name, merchant_id, merchant_no, channel_no, sub_channel, trans_amount, fee_rate, fee, actual_amount, trans_state, buyer_name, buyer_phone, goods, remark, exist_related_trans, related_trans_no, third_trans_no, fail_message, extra, trading_time, success_time, in_time, create_time, update_time
id, trans_no, order_no, business_no, sub_order_no, order_type, trans_type, brand_id, studio_id, studio_name, merchant_id, merchant_no, channel_no, sub_channel, trans_amount, fee_rate, fee, actual_amount, trans_state, buyer_name, buyer_phone, goods, remark, exist_related_trans, related_trans_no, third_trans_no, fail_message, extra, trading_time, success_time, in_time, create_time, update_time
</sql>
<select id="sumRefundActualAmountByPayTransNo" resultType="java.math.BigDecimal">
......
......@@ -30,7 +30,7 @@ public interface StudioCashierService {
* @param ids 流水ID集合
* @param subOrderNo 业务子订单号
*/
void bind(List<Long> ids, String subOrderNo, JSONObject extra);
void bind(List<Long> ids, String orderNo, String businessNo, String subOrderNo);
/**
* 解绑收银流水
......
......@@ -64,14 +64,16 @@ public class StudioCashierServiceImpl implements StudioCashierService {
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
@Override
public void bind(List<Long> ids, String subOrderNo, JSONObject extra) {
public void bind(List<Long> ids, String orderNo, String businessNo, String subOrderNo) {
List<StudioCashierRecord> records = studioCashierRecordRpService.getListByIds(ids);
if (records.stream().anyMatch(e -> StringUtil.isNotBlank(e.getSubOrderNo()))) {
throw new BizException(FinanceErrorEnums.EXIST_BIND_RECORD);
}
studioCashierRecordRpService.updateByIds(
StudioCashierRecord.builder().subOrderNo(subOrderNo)
.extra(Optional.ofNullable(extra).orElse(new JSONObject()).toJSONString())
StudioCashierRecord.builder()
.orderNo(orderNo)
.businessNo(businessNo)
.subOrderNo(subOrderNo)
.updateTime(new Date()).build(), ids);
}
......@@ -79,7 +81,8 @@ public class StudioCashierServiceImpl implements StudioCashierService {
@Override
public void unbind(List<Long> ids) {
studioCashierRecordRpService.updateByIds(
StudioCashierRecord.builder().subOrderNo("").updateTime(new Date()).build(), ids);
StudioCashierRecord.builder().orderNo("").businessNo("").subOrderNo("").updateTime(new Date())
.build(), ids);
}
@Override
......
......@@ -80,6 +80,7 @@ public class PayConvert {
.id(id)
.transNo(id.toString())
.orderNo(StringUtil.isBlank(params.getOrderNo()) ? id.toString() : params.getOrderNo())
.businessNo(params.getBusinessNo())
.subOrderNo(StringUtil.isBlank(params.getSubOrderNo()) ? "" : params.getSubOrderNo())
.orderType(params.getOrderType().getCode())
.transType(BrandCashierTransTypeEnum.PAY.getCode())
......
......@@ -35,9 +35,12 @@ public class StudioMerchantPayParams {
@NotNull(message = "支付总金额不能为空")
private BigDecimal transAmount;
@ApiModelProperty(name = "业务订单")
@ApiModelProperty(name = "业务订单ID")
private String orderNo;
@ApiModelProperty(name = "业务订单号")
private String businessNo;
@ApiModelProperty(name = "业务子订单号")
private String subOrderNo;
......
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