mirror of
https://gitee.com/dromara/dax-pay.git
synced 2025-09-07 21:17:42 +00:00
feat 商户相关功能
This commit is contained in:
@@ -47,7 +47,7 @@ Dax-Pay是Bootx-Platform的子项目之一,主要是对支付收单和账务
|
||||
| 支付策略 | Strategy | 对支付通道和支付方式进行封装,可以完成一种支付操作 |
|
||||
| 聚合支付 | | 通常是扫码或收款时,根据客户使用应用的不同,自动识别是哪种支付通道,并进行支付 |
|
||||
| 组合支付 | | 同时使用多种支付通道进行支付,如同时使用余额+现金+储值卡+微信支付进行支付 |
|
||||
| 商户 | merchant | |
|
||||
| 商户 | Merchant | |
|
||||
| 商户应用 | mchApp | |
|
||||
| 分账 | | |
|
||||
| 对账 | | |
|
||||
|
||||
@@ -43,4 +43,18 @@ public interface PayChannelCode {
|
||||
/** 异步支付通道 */
|
||||
List<Integer> ASYNC_TYPE = Arrays.asList(ALI, WECHAT, UNION_PAY, APPLE_PAY);
|
||||
|
||||
/** 支付排序列表 */
|
||||
List<Integer> SORT_LIST = Arrays.asList(
|
||||
ALI,
|
||||
WECHAT,
|
||||
UNION_PAY,
|
||||
CASH,
|
||||
WALLET,
|
||||
VOUCHER,
|
||||
CREDIT_CARD,
|
||||
APPLE_PAY,
|
||||
CHANNEL_PAY,
|
||||
AGGREGATION
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,10 @@ import lombok.experimental.Accessors;
|
||||
@TableName("pay_mch_app_config")
|
||||
public class MchAppPayConfig extends MpBaseEntity implements EntityBaseFunction<MchAppPayConfigDto> {
|
||||
|
||||
/** 关联配置ID */
|
||||
@DbColumn(comment = "关联应用ID")
|
||||
private Long appId;
|
||||
|
||||
/** 关联配置ID */
|
||||
@DbColumn(comment = "关联配置ID")
|
||||
private Long configId;
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package cn.bootx.platform.daxpay.core.merchant.entity;
|
||||
|
||||
import cn.bootx.mybatis.table.modify.annotation.DbColumn;
|
||||
import cn.bootx.mybatis.table.modify.annotation.DbTable;
|
||||
import cn.bootx.mybatis.table.modify.mybatis.mysq.annotation.MySqlIndex;
|
||||
import cn.bootx.mybatis.table.modify.mybatis.mysq.constants.MySqlIndexType;
|
||||
import cn.bootx.platform.common.core.function.EntityBaseFunction;
|
||||
import cn.bootx.platform.common.mybatisplus.base.MpBaseEntity;
|
||||
import cn.bootx.platform.daxpay.core.merchant.convert.MchApplicationConvert;
|
||||
@@ -16,7 +19,9 @@ import lombok.experimental.Accessors;
|
||||
* @author xxm
|
||||
* @date 2023-05-19
|
||||
*/
|
||||
@DbTable(comment = "商户应用")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@MySqlIndex(columns = "app_no",type = MySqlIndexType.UNIQUE,comment = "应用编码唯一索引")
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
@TableName("pay_application")
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package cn.bootx.platform.daxpay.core.merchant.entity;
|
||||
|
||||
import cn.bootx.mybatis.table.modify.annotation.DbColumn;
|
||||
import cn.bootx.mybatis.table.modify.annotation.DbTable;
|
||||
import cn.bootx.mybatis.table.modify.mybatis.mysq.annotation.MySqlIndex;
|
||||
import cn.bootx.mybatis.table.modify.mybatis.mysq.constants.MySqlIndexType;
|
||||
import cn.bootx.platform.common.core.function.EntityBaseFunction;
|
||||
@@ -23,6 +24,7 @@ import lombok.experimental.FieldNameConstants;
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@FieldNameConstants
|
||||
@Data
|
||||
@DbTable(comment = "商户")
|
||||
@Accessors(chain = true)
|
||||
@TableName("pay_merchant")
|
||||
public class MerchantInfo extends MpBaseEntity implements EntityBaseFunction<MerchantInfoDto> {
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
package cn.bootx.platform.daxpay.core.merchant.service;
|
||||
|
||||
import cn.bootx.platform.common.core.exception.DataNotExistException;
|
||||
import cn.bootx.platform.common.core.rest.PageResult;
|
||||
import cn.bootx.platform.common.core.rest.param.PageParam;
|
||||
import cn.bootx.platform.common.core.util.ResultConvertUtil;
|
||||
import cn.bootx.platform.common.mybatisplus.util.MpUtil;
|
||||
import cn.bootx.platform.daxpay.code.pay.PayChannelCode;
|
||||
import cn.bootx.platform.daxpay.core.merchant.dao.MchAppPayConfigManager;
|
||||
import cn.bootx.platform.daxpay.core.merchant.entity.MchAppPayConfig;
|
||||
import cn.bootx.platform.daxpay.dto.merchant.MchAppPayConfigDto;
|
||||
import cn.bootx.platform.daxpay.param.merchant.MchAppPayConfigParam;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import lombok.val;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 商户应用支付配置
|
||||
@@ -28,48 +27,24 @@ public class MchAppPayConfigService {
|
||||
private final MchAppPayConfigManager mchAppPayConfigManager;
|
||||
|
||||
/**
|
||||
* 添加
|
||||
* 根据应用ID删除
|
||||
*/
|
||||
public void add(MchAppPayConfigParam param){
|
||||
MchAppPayConfig mchAppPayConfig = MchAppPayConfig.init(param);
|
||||
mchAppPayConfigManager.save(mchAppPayConfig);
|
||||
public void deleteByAppId(Long appId){
|
||||
mchAppPayConfigManager.deleteByField(MchAppPayConfig::getAppId,appId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
* 支付渠道配置列表
|
||||
*/
|
||||
public void update(MchAppPayConfigParam param){
|
||||
MchAppPayConfig mchAppPayConfig = mchAppPayConfigManager.findById(param.getId()).orElseThrow(DataNotExistException::new);
|
||||
|
||||
BeanUtil.copyProperties(param,mchAppPayConfig, CopyOptions.create().ignoreNullValue());
|
||||
mchAppPayConfigManager.updateById(mchAppPayConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* 分页
|
||||
*/
|
||||
public PageResult<MchAppPayConfigDto> page(PageParam pageParam,MchAppPayConfigParam mchAppPayConfigParam){
|
||||
return MpUtil.convert2DtoPageResult(mchAppPayConfigManager.page(pageParam,mchAppPayConfigParam));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单条
|
||||
*/
|
||||
public MchAppPayConfigDto findById(Long id){
|
||||
return mchAppPayConfigManager.findById(id).map(MchAppPayConfig::toDto).orElseThrow(DataNotExistException::new);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取全部
|
||||
*/
|
||||
public List<MchAppPayConfigDto> findAll(){
|
||||
return ResultConvertUtil.dtoListConvert(mchAppPayConfigManager.findAll());
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
public void delete(Long id){
|
||||
mchAppPayConfigManager.deleteById(id);
|
||||
public List<MchAppPayConfigDto> ListByApp(PageParam pageParam,Long appId){
|
||||
val mchAppPayConfigMap = mchAppPayConfigManager.findAllByField(MchAppPayConfig::getAppId, appId)
|
||||
.stream()
|
||||
.map(MchAppPayConfig::toDto)
|
||||
.collect(Collectors.toMap(MchAppPayConfigDto::getChannel, Function.identity()));
|
||||
// 进行排序并返回
|
||||
return PayChannelCode.SORT_LIST.stream()
|
||||
.map(mchAppPayConfigMap::get)
|
||||
.filter(Objects::nonNull)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,4 +73,6 @@ public class MchApplicationService {
|
||||
public void delete(Long id){
|
||||
mchApplicationManager.deleteById(id);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -17,10 +17,12 @@ import lombok.experimental.Accessors;
|
||||
@Accessors(chain = true)
|
||||
public class MchAppPayConfigDto extends BaseDto {
|
||||
|
||||
@Schema(description = "关联应用ID")
|
||||
private Long appId;
|
||||
@Schema(description = "关联配置ID")
|
||||
private Long configId;
|
||||
@Schema(description = "支付通道类型")
|
||||
private String channel;
|
||||
private Integer channel;
|
||||
@Schema(description = "支付通道名称")
|
||||
private String channelName;
|
||||
@Schema(description = "状态")
|
||||
|
||||
@@ -29,8 +29,8 @@ public class MerchantInfoDto extends BaseDto {
|
||||
private String contactName;
|
||||
@Schema(description = "联系人手机号")
|
||||
private String contactTel;
|
||||
@Schema(description = "是否停用")
|
||||
private String deactivate;
|
||||
@Schema(description = "状态类型")
|
||||
private String state;
|
||||
@Schema(description = "商户备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@ public class MerchantInfoParam {
|
||||
private String contactName;
|
||||
@Schema(description = "联系人手机号")
|
||||
private String contactTel;
|
||||
@Schema(description = "是否停用")
|
||||
private String deactivate;
|
||||
@Schema(description = "状态类型")
|
||||
private String state;
|
||||
@Schema(description = "商户备注")
|
||||
private String remark;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user