diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 1de3fa38b..765e52e64 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -1016,9 +1016,12 @@ public class OrderService { MemberAdapayRecord memberAdapayRecord = new MemberAdapayRecord(); memberAdapayRecord.setMemberId(memberId); memberAdapayRecord.setPaymentId(adapayCallbackRecord.getPaymentId()); - memberAdapayRecord.setPaymentOrderNo(adapayCallbackRecord.getOrderNo()); + memberAdapayRecord.setPaymentOrderNo(adapayCallbackRecord.getOutTransId()); memberAdapayRecord.setScenarioType(ScenarioEnum.BALANCE.getValue()); memberAdapayRecord.setPayAmt(amount); + memberAdapayRecord.setRefundAmt(BigDecimal.ZERO); + memberAdapayRecord.setSpendAmt(BigDecimal.ZERO); + memberAdapayRecord.setBalanceAmt(amount); memberAdapayRecordService.insertSelective(memberAdapayRecord); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java index 099945643..b02c45ce0 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/MemberAdapayRecord.java @@ -1,16 +1,13 @@ package com.jsowell.pile.domain; +import lombok.*; + import java.math.BigDecimal; import java.util.Date; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; /** - * 会员汇付支付记录表 - */ + * 会员汇付支付记录表 + */ @Getter @Setter @Builder @@ -20,62 +17,67 @@ public class MemberAdapayRecord { private Integer id; /** - * 会员id - */ + * 会员id + */ private String memberId; /** - * 场景类型(order, balance) - */ + * 场景类型(order, balance) + */ private String scenarioType; /** - * 汇付支付id - */ + * 汇付支付id + */ private String paymentId; /** - * 汇付支付单号 - */ + * 汇付支付单号 + */ private String paymentOrderNo; /** - * 支付金额 - */ + * 支付金额 + */ private BigDecimal payAmt; /** - * 退款金额 - */ + * 退款金额 + */ private BigDecimal refundAmt; /** - * 消费金额 - */ + * 消费金额 + */ private BigDecimal spendAmt; /** - * 创建人 - */ + * 剩余金额 + */ + private BigDecimal balanceAmt; + + /** + * 创建人 + */ private String createBy; /** - * 创建时间 - */ + * 创建时间 + */ private Date createTime; /** - * 更新人 - */ + * 更新人 + */ private String updateBy; /** - * 更新时间 - */ + * 更新时间 + */ private Date updateTime; /** - * 删除标识 - */ + * 删除标识 + */ private String delFlag; } \ No newline at end of file diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberAdapayRecordMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberAdapayRecordMapper.java index 75fbe6cb4..f987f6433 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberAdapayRecordMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberAdapayRecordMapper.java @@ -1,12 +1,14 @@ package com.jsowell.pile.mapper; import com.jsowell.pile.domain.MemberAdapayRecord; -import java.util.List; import org.apache.ibatis.annotations.Param; +import java.util.List; + public interface MemberAdapayRecordMapper { /** * insert record to table selective + * * @param record the record * @return insert count */ @@ -14,6 +16,7 @@ public interface MemberAdapayRecordMapper { /** * select by primary key + * * @param id primary key * @return object by primary key */ @@ -21,6 +24,7 @@ public interface MemberAdapayRecordMapper { /** * update record selective + * * @param record the updated record * @return update count */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index c1d48058b..f0c27a4a5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -632,6 +632,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { public void settleOrder(TransactionRecordsData data, OrderBasicInfo orderBasicInfo) { logger.info("结算订单start data:{}, orderBasicInfo:{}", data.toString(), orderBasicInfo.toString()); String orderCode = orderBasicInfo.getOrderCode(); + String memberId = orderBasicInfo.getMemberId(); // 判断订单状态 if (StringUtils.equals(orderBasicInfo.getOrderStatus(), OrderStatusEnum.ORDER_COMPLETE.getValue())) { @@ -1111,6 +1112,29 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { return result; } + /** + * 余额支付订单,使用余额支付转账 + * @param orderBasicInfo + * @param adapayMemberAccount + * @return + */ + public OrderSettleResult doBalancePaymentV2(OrderBasicInfo orderBasicInfo, AdapayMemberAccount adapayMemberAccount) throws BaseAdaPayException { + // 计算应该支付金额,和手续费 + SplitSettleAmountVO splitSettleAmountVO = splitSettleAmount(orderBasicInfo.getSettleAmount()); + BigDecimal feeAmount = splitSettleAmountVO.getFeeAmount(); + BigDecimal tradeAmount = splitSettleAmountVO.getTradeAmount(); + logger.info("余额支付订单使用余额支付转账, orderCode:{}, inMemberId:{}, transAmt:{}", orderBasicInfo.getOrderCode(), orderBasicInfo, tradeAmount); + + // 查询会员的余额充值记录 + + // 分账 + + // 更新余额充值记录 + + + return null; + } + /** * 延迟交易订单 交易确认 * @param orderBasicInfo 订单 diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml index f4ec2a99e..00b829000 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberAdapayRecordMapper.xml @@ -12,6 +12,7 @@ + @@ -21,7 +22,7 @@ id, member_id, scenario_type, payment_id, payment_order_no, pay_amt, refund_amt, - spend_amt, create_by, create_time, update_by, update_time, del_flag + spend_amt, balance_amt, create_by, create_time, update_by, update_time, del_flag - + insert into member_adapay_record - - id, - member_id, @@ -58,6 +56,9 @@ spend_amt, + + balance_amt, + create_by, @@ -75,9 +76,6 @@ - - #{id,jdbcType=INTEGER}, - #{memberId,jdbcType=VARCHAR}, @@ -99,6 +97,9 @@ #{spendAmt,jdbcType=DECIMAL}, + + #{balanceAmt,jdbcType=DECIMAL}, + #{createBy,jdbcType=VARCHAR}, @@ -141,6 +142,9 @@ spend_amt = #{spendAmt,jdbcType=DECIMAL}, + + balance_amt = #{balanceAmt,jdbcType=DECIMAL}, + create_by = #{createBy,jdbcType=VARCHAR}, @@ -198,6 +202,11 @@ when id = #{item.id,jdbcType=INTEGER} then #{item.spendAmt,jdbcType=DECIMAL} + + + when id = #{item.id,jdbcType=INTEGER} then #{item.balanceAmt,jdbcType=DECIMAL} + + when id = #{item.id,jdbcType=INTEGER} then #{item.createBy,jdbcType=VARCHAR} @@ -229,47 +238,81 @@ #{item.id,jdbcType=INTEGER} - + insert into member_adapay_record - (id, member_id, scenario_type, payment_id, payment_order_no, pay_amt, refund_amt, - spend_amt, create_by, create_time, update_by, update_time, del_flag) + (member_id, scenario_type, payment_id, payment_order_no, pay_amt, refund_amt, spend_amt, + balance_amt, create_by, create_time, update_by, update_time, del_flag) values - (#{item.id,jdbcType=INTEGER}, #{item.memberId,jdbcType=VARCHAR}, #{item.scenarioType,jdbcType=VARCHAR}, - #{item.paymentId,jdbcType=VARCHAR}, #{item.paymentOrderNo,jdbcType=VARCHAR}, #{item.payAmt,jdbcType=DECIMAL}, - #{item.refundAmt,jdbcType=DECIMAL}, #{item.spendAmt,jdbcType=DECIMAL}, #{item.createBy,jdbcType=VARCHAR}, + (#{item.memberId,jdbcType=VARCHAR}, #{item.scenarioType,jdbcType=VARCHAR}, #{item.paymentId,jdbcType=VARCHAR}, + #{item.paymentOrderNo,jdbcType=VARCHAR}, #{item.payAmt,jdbcType=DECIMAL}, #{item.refundAmt,jdbcType=DECIMAL}, + #{item.spendAmt,jdbcType=DECIMAL}, #{item.balanceAmt,jdbcType=DECIMAL}, #{item.createBy,jdbcType=VARCHAR}, #{item.createTime,jdbcType=TIMESTAMP}, #{item.updateBy,jdbcType=VARCHAR}, #{item.updateTime,jdbcType=TIMESTAMP}, #{item.delFlag,jdbcType=VARCHAR}) - + insert into member_adapay_record - (id, member_id, scenario_type, payment_id, payment_order_no, pay_amt, refund_amt, - spend_amt, create_by, create_time, update_by, update_time, del_flag) + + + id, + + member_id, + scenario_type, + payment_id, + payment_order_no, + pay_amt, + refund_amt, + spend_amt, + balance_amt, + create_by, + create_time, + update_by, + update_time, + del_flag, + values - (#{id,jdbcType=INTEGER}, #{memberId,jdbcType=VARCHAR}, #{scenarioType,jdbcType=VARCHAR}, - #{paymentId,jdbcType=VARCHAR}, #{paymentOrderNo,jdbcType=VARCHAR}, #{payAmt,jdbcType=DECIMAL}, - #{refundAmt,jdbcType=DECIMAL}, #{spendAmt,jdbcType=DECIMAL}, #{createBy,jdbcType=VARCHAR}, - #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, - #{delFlag,jdbcType=VARCHAR}) + + + #{id,jdbcType=INTEGER}, + + #{memberId,jdbcType=VARCHAR}, + #{scenarioType,jdbcType=VARCHAR}, + #{paymentId,jdbcType=VARCHAR}, + #{paymentOrderNo,jdbcType=VARCHAR}, + #{payAmt,jdbcType=DECIMAL}, + #{refundAmt,jdbcType=DECIMAL}, + #{spendAmt,jdbcType=DECIMAL}, + #{balanceAmt,jdbcType=DECIMAL}, + #{createBy,jdbcType=VARCHAR}, + #{createTime,jdbcType=TIMESTAMP}, + #{updateBy,jdbcType=VARCHAR}, + #{updateTime,jdbcType=TIMESTAMP}, + #{delFlag,jdbcType=VARCHAR}, + on duplicate key update - id = #{id,jdbcType=INTEGER}, - member_id = #{memberId,jdbcType=VARCHAR}, - scenario_type = #{scenarioType,jdbcType=VARCHAR}, - payment_id = #{paymentId,jdbcType=VARCHAR}, - payment_order_no = #{paymentOrderNo,jdbcType=VARCHAR}, - pay_amt = #{payAmt,jdbcType=DECIMAL}, - refund_amt = #{refundAmt,jdbcType=DECIMAL}, - spend_amt = #{spendAmt,jdbcType=DECIMAL}, - create_by = #{createBy,jdbcType=VARCHAR}, - create_time = #{createTime,jdbcType=TIMESTAMP}, - update_by = #{updateBy,jdbcType=VARCHAR}, - update_time = #{updateTime,jdbcType=TIMESTAMP}, - del_flag = #{delFlag,jdbcType=VARCHAR} + + + id = #{id,jdbcType=INTEGER}, + + member_id = #{memberId,jdbcType=VARCHAR}, + scenario_type = #{scenarioType,jdbcType=VARCHAR}, + payment_id = #{paymentId,jdbcType=VARCHAR}, + payment_order_no = #{paymentOrderNo,jdbcType=VARCHAR}, + pay_amt = #{payAmt,jdbcType=DECIMAL}, + refund_amt = #{refundAmt,jdbcType=DECIMAL}, + spend_amt = #{spendAmt,jdbcType=DECIMAL}, + balance_amt = #{balanceAmt,jdbcType=DECIMAL}, + create_by = #{createBy,jdbcType=VARCHAR}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_by = #{updateBy,jdbcType=VARCHAR}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + del_flag = #{delFlag,jdbcType=VARCHAR}, + - + insert into member_adapay_record @@ -297,6 +340,9 @@ spend_amt, + + balance_amt, + create_by, @@ -339,6 +385,9 @@ #{spendAmt,jdbcType=DECIMAL}, + + #{balanceAmt,jdbcType=DECIMAL}, + #{createBy,jdbcType=VARCHAR}, @@ -381,6 +430,9 @@ spend_amt = #{spendAmt,jdbcType=DECIMAL}, + + balance_amt = #{balanceAmt,jdbcType=DECIMAL}, + create_by = #{createBy,jdbcType=VARCHAR},