mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-09 22:09:05 +00:00
feat(allocation): 实现分账订单相关功能
- 新增 AllocTransactionController 控制器,实现分账订单相关接口 - 新增 AllocQueryService 服务类,提供分账订单查询服务 - 修改 AllocTransactionManager,增加分页查询方法 - 更新 AllocTransactionMapper,添加分账订单相关映射- 修改 AllocTransaction 和 AllocDetail 实体类,实现结果转换接口
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
package org.dromara.daxpay.service.controller.allocation;
|
||||
|
||||
import cn.bootx.platform.core.rest.Res;
|
||||
import cn.bootx.platform.core.rest.param.PageParam;
|
||||
import cn.bootx.platform.core.rest.result.PageResult;
|
||||
import cn.bootx.platform.core.rest.result.Result;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.daxpay.core.param.allocation.transaction.AllocFinishParam;
|
||||
import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult;
|
||||
import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult;
|
||||
import org.dromara.daxpay.service.param.order.allocation.AllocOrderQuery;
|
||||
import org.dromara.daxpay.service.service.allocation.AllocationService;
|
||||
import org.dromara.daxpay.service.service.allocation.transaction.AllocQueryService;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分账订单控制器
|
||||
* @author xxm
|
||||
* @since 2024/4/7
|
||||
*/
|
||||
@Tag(name = "分账订单控制器")
|
||||
@RestController
|
||||
@RequestMapping("/allocation/transaction")
|
||||
@RequiredArgsConstructor
|
||||
public class AllocTransactionController {
|
||||
|
||||
private final AllocQueryService queryService;
|
||||
|
||||
private final AllocationService allocationService;
|
||||
|
||||
@Operation(summary = "分页")
|
||||
@GetMapping("/page")
|
||||
public Result<PageResult<AllocTransactionResult>> page(PageParam pageParam, AllocOrderQuery param){
|
||||
return Res.ok(queryService.page(pageParam,param));
|
||||
}
|
||||
|
||||
@Operation(summary = "分账明细列表")
|
||||
@GetMapping("/detail/findAll")
|
||||
public Result<List<AllocDetailResult>> findDetailsByOrderId(Long orderId){
|
||||
return Res.ok(queryService.findDetailsByOrderId(orderId));
|
||||
}
|
||||
|
||||
@Operation(summary = "查询详情")
|
||||
@GetMapping("/findById")
|
||||
public Result<AllocTransactionResult> findById(Long id){
|
||||
return Res.ok(queryService.findById(id));
|
||||
}
|
||||
|
||||
@Operation(summary = "查询明细详情")
|
||||
@GetMapping("/detail/findById")
|
||||
public Result<AllocDetailResult> findDetailById(Long id){
|
||||
return Res.ok(queryService.findDetailById(id));
|
||||
}
|
||||
|
||||
|
||||
@Operation(summary = "分账完结")
|
||||
@PostMapping("/finish")
|
||||
public Result<Void> finish(String allocNo){
|
||||
AllocFinishParam param = new AllocFinishParam();
|
||||
param.setAllocNo(allocNo);
|
||||
allocationService.finish(param);
|
||||
return Res.ok();
|
||||
}
|
||||
}
|
@@ -1,10 +1,16 @@
|
||||
package org.dromara.daxpay.service.dao.allocation.transaction;
|
||||
|
||||
import cn.bootx.platform.common.mybatisplus.impl.BaseManager;
|
||||
import cn.bootx.platform.common.mybatisplus.query.generator.QueryGenerator;
|
||||
import cn.bootx.platform.common.mybatisplus.util.MpUtil;
|
||||
import cn.bootx.platform.core.rest.param.PageParam;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.daxpay.service.common.entity.MchAppBaseEntity;
|
||||
import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction;
|
||||
import org.dromara.daxpay.service.param.order.allocation.AllocOrderQuery;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Optional;
|
||||
@@ -18,6 +24,16 @@ import java.util.Optional;
|
||||
@Repository
|
||||
@RequiredArgsConstructor
|
||||
public class AllocTransactionManager extends BaseManager<AllocTransactionMapper, AllocTransaction> {
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*/
|
||||
public Page<AllocTransaction> page(PageParam pageParam, AllocOrderQuery param){
|
||||
Page<AllocTransaction> mpPage = MpUtil.getMpPage(pageParam, AllocTransaction.class);
|
||||
QueryWrapper<AllocTransaction> generator = QueryGenerator.generator(param);
|
||||
return this.page(mpPage, generator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据商户分账单号查询数据
|
||||
*/
|
||||
|
@@ -1,13 +1,13 @@
|
||||
package org.dromara.daxpay.service.dao.allocation.transaction;
|
||||
|
||||
import com.github.yulichang.base.MPJBaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction;
|
||||
import org.mapstruct.Mapper;
|
||||
|
||||
/**
|
||||
*
|
||||
* @author xxm
|
||||
* @since 2024/11/14
|
||||
/**
|
||||
*
|
||||
* @author xxm
|
||||
* @since 2024/11/14
|
||||
*/
|
||||
@Mapper
|
||||
public interface AllocTransactionMapper extends MPJBaseMapper<AllocTransaction> {
|
||||
|
@@ -1,11 +1,14 @@
|
||||
package org.dromara.daxpay.service.entity.allocation.transaction;
|
||||
|
||||
import cn.bootx.platform.common.mybatisplus.function.ToResult;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.core.enums.AllocDetailResultEnum;
|
||||
import org.dromara.daxpay.core.enums.AllocReceiverTypeEnum;
|
||||
import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult;
|
||||
import org.dromara.daxpay.service.common.entity.MchAppBaseEntity;
|
||||
import org.dromara.daxpay.service.convert.allocation.AllocTransactionConvert;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -18,7 +21,7 @@ import java.time.LocalDateTime;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class AllocDetail extends MchAppBaseEntity {
|
||||
public class AllocDetail extends MchAppBaseEntity implements ToResult<AllocDetailResult> {
|
||||
|
||||
/** 分账订单ID */
|
||||
private Long allocationId;
|
||||
@@ -61,4 +64,12 @@ public class AllocDetail extends MchAppBaseEntity {
|
||||
|
||||
/** 分账完成时间 */
|
||||
private LocalDateTime finishTime;
|
||||
|
||||
/**
|
||||
* 转换
|
||||
*/
|
||||
@Override
|
||||
public AllocDetailResult toResult() {
|
||||
return AllocTransactionConvert.CONVERT.toResult(this);
|
||||
}
|
||||
}
|
||||
|
@@ -1,5 +1,6 @@
|
||||
package org.dromara.daxpay.service.entity.allocation.transaction;
|
||||
|
||||
import cn.bootx.platform.common.mybatisplus.function.ToResult;
|
||||
import com.baomidou.mybatisplus.annotation.FieldStrategy;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
@@ -9,7 +10,9 @@ import lombok.experimental.Accessors;
|
||||
import org.dromara.daxpay.core.enums.AllocTransactionResultEnum;
|
||||
import org.dromara.daxpay.core.enums.AllocTransactionStatusEnum;
|
||||
import org.dromara.daxpay.core.enums.ChannelEnum;
|
||||
import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult;
|
||||
import org.dromara.daxpay.service.common.entity.MchAppBaseEntity;
|
||||
import org.dromara.daxpay.service.convert.allocation.AllocTransactionConvert;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
@@ -23,7 +26,7 @@ import java.time.LocalDateTime;
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@TableName("pay_alloc_transaction")
|
||||
public class AllocTransaction extends MchAppBaseEntity {
|
||||
public class AllocTransaction extends MchAppBaseEntity implements ToResult<AllocTransactionResult> {
|
||||
|
||||
/** 分账单号 */
|
||||
private String allocNo;
|
||||
@@ -98,4 +101,12 @@ public class AllocTransaction extends MchAppBaseEntity {
|
||||
|
||||
/** 错误信息 */
|
||||
private String errorMsg;
|
||||
|
||||
/**
|
||||
* 转换
|
||||
*/
|
||||
@Override
|
||||
public AllocTransactionResult toResult() {
|
||||
return AllocTransactionConvert.CONVERT.toResult(this);
|
||||
}
|
||||
}
|
||||
|
@@ -0,0 +1,63 @@
|
||||
package org.dromara.daxpay.service.service.allocation.transaction;
|
||||
|
||||
import cn.bootx.platform.common.mybatisplus.util.MpUtil;
|
||||
import cn.bootx.platform.core.exception.DataNotExistException;
|
||||
import cn.bootx.platform.core.rest.param.PageParam;
|
||||
import cn.bootx.platform.core.rest.result.PageResult;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.daxpay.core.result.allocation.transaction.AllocDetailResult;
|
||||
import org.dromara.daxpay.core.result.allocation.transaction.AllocTransactionResult;
|
||||
import org.dromara.daxpay.service.dao.allocation.transaction.AllocDetailManager;
|
||||
import org.dromara.daxpay.service.dao.allocation.transaction.AllocTransactionManager;
|
||||
import org.dromara.daxpay.service.entity.allocation.transaction.AllocDetail;
|
||||
import org.dromara.daxpay.service.entity.allocation.transaction.AllocTransaction;
|
||||
import org.dromara.daxpay.service.param.order.allocation.AllocOrderQuery;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 分账订单查询服务类
|
||||
* @author xxm
|
||||
* @since 2024/5/30
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
public class AllocQueryService {
|
||||
|
||||
private final AllocDetailManager allocOrderDetailManager;
|
||||
|
||||
private final AllocTransactionManager allocationOrderManager;
|
||||
|
||||
/**
|
||||
* 分页查询
|
||||
*/
|
||||
public PageResult<AllocTransactionResult> page(PageParam pageParam, AllocOrderQuery param){
|
||||
return MpUtil.toPageResult(allocationOrderManager.page(pageParam, param));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询详情
|
||||
*/
|
||||
public AllocTransactionResult findById(Long id) {
|
||||
return allocationOrderManager.findById(id).map(AllocTransaction::toResult).orElseThrow(() -> new DataNotExistException("分账订单不存在"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单明细列表
|
||||
*/
|
||||
public List<AllocDetailResult> findDetailsByOrderId(Long orderId){
|
||||
return MpUtil.toListResult(allocOrderDetailManager.findAllByOrderId(orderId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询订单明细详情
|
||||
*/
|
||||
public AllocDetailResult findDetailById(Long id){
|
||||
return allocOrderDetailManager.findById(id).map(AllocDetail::toResult).orElseThrow(() -> new DataNotExistException("分账订单明细不存在"));
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user