feat(commission): 新增佣金30天提现冻结机制
- KeyboardTenantCommissionDO 增加 withdrawableAt、withdrawableProcessed 字段 - TenantBalanceDO 增加 withdrawableBalance 字段并注释掉 Oracle 自增序列 - 计算任务在结算时写入可提现时间并默认未处理 - 新增 CommissionWithdrawableJob 定时把到期佣金从冻结余额转到可提现余额 - TenantServiceImpl 创建代理租户时调用 TenantBalanceApi 初始化钱包 - 提供 TenantBalanceApi 及实现,支持初始化与余额转换
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package com.yolo.keyboard.module.system.api.tenantbalance;
|
||||
|
||||
/**
|
||||
* 租户余额 API 接口
|
||||
*
|
||||
* @author ziin
|
||||
*/
|
||||
public interface TenantBalanceApi {
|
||||
|
||||
/**
|
||||
* 初始化租户钱包
|
||||
*
|
||||
* @param tenantId 租户ID
|
||||
*/
|
||||
void initTenantBalance(Long tenantId);
|
||||
|
||||
}
|
||||
@@ -22,6 +22,7 @@ import com.yolo.keyboard.module.system.dal.dataobject.tenant.TenantDO;
|
||||
import com.yolo.keyboard.module.system.dal.dataobject.tenant.TenantPackageDO;
|
||||
import com.yolo.keyboard.module.system.dal.mysql.tenant.TenantMapper;
|
||||
import com.yolo.keyboard.module.system.api.invitecode.UserInviteCodeApi;
|
||||
import com.yolo.keyboard.module.system.api.tenantbalance.TenantBalanceApi;
|
||||
import com.yolo.keyboard.module.system.enums.permission.RoleCodeEnum;
|
||||
import com.yolo.keyboard.module.system.enums.permission.RoleTypeEnum;
|
||||
import com.yolo.keyboard.module.system.service.permission.MenuService;
|
||||
@@ -79,6 +80,9 @@ public class TenantServiceImpl implements TenantService {
|
||||
@Autowired(required = false)
|
||||
private UserInviteCodeApi userInviteCodeApi;
|
||||
|
||||
@Autowired(required = false)
|
||||
private TenantBalanceApi tenantBalanceApi;
|
||||
|
||||
@Override
|
||||
public List<Long> getTenantIdList() {
|
||||
List<TenantDO> tenants = tenantMapper.selectList();
|
||||
@@ -143,6 +147,10 @@ public class TenantServiceImpl implements TenantService {
|
||||
if ("代理".equals(createReqVO.getTenantType()) && userInviteCodeApi != null) {
|
||||
userInviteCodeApi.createInviteCodeForAgent(userId, tenant.getId());
|
||||
}
|
||||
// 为代理租户初始化钱包
|
||||
if ("代理".equals(createReqVO.getTenantType()) && tenantBalanceApi != null) {
|
||||
tenantBalanceApi.initTenantBalance(tenant.getId());
|
||||
}
|
||||
});
|
||||
return tenant.getId();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user