feat(creator): 后台录入创作者即通过并可直接开号
This commit is contained in:
1 parent
af0bf7f90e
commit
9b2833dfd3
3 files changed
+13
-13
No files matched your search
+4
-4
@@ -70,8 +70,8 @@ public class CreatorAdminController {
|
|||||||
return Result.ok(creatorService.audit(id, req, SecurityUtils.getUserId()));
|
return Result.ok(creatorService.audit(id, req, SecurityUtils.getUserId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 手工录入创作者主体(C 端申请入驻还没实现,先用它打通链路)。 */
|
/** 手工录入创作者主体:录入即通过,可直接开号。 */
|
||||||
@Operation(summary = "手工录入创作者主体")
|
@Operation(summary = "手工录入创作者主体(录入即通过)")
|
||||||
@PostMapping
|
@PostMapping
|
||||||
@PreAuthorize("@ss.hasPermission('creator:audit')")
|
@PreAuthorize("@ss.hasPermission('creator:audit')")
|
||||||
@OperationLog(module = "创作者管理", action = "新增创作者")
|
@OperationLog(module = "创作者管理", action = "新增创作者")
|
||||||
@@ -79,8 +79,8 @@ public class CreatorAdminController {
|
|||||||
return Result.ok(creatorService.create(req));
|
return Result.ok(creatorService.create(req));
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 开通创作者账号:仅审核通过可开;已开通则幂等返回,不重复建号。 */
|
/** 开通创作者账号:不再校验入驻审核,仅冻结状态拒绝;已开通则幂等返回。 */
|
||||||
@Operation(summary = "开通创作者账号(仅审核通过可开通,幂等)")
|
@Operation(summary = "开通创作者账号(仅冻结状态拒绝,幂等)")
|
||||||
@PostMapping("/{id}/account")
|
@PostMapping("/{id}/account")
|
||||||
@PreAuthorize("@ss.hasPermission('creator:account')")
|
@PreAuthorize("@ss.hasPermission('creator:account')")
|
||||||
@OperationLog(module = "创作者管理", action = "开通创作者账号")
|
@OperationLog(module = "创作者管理", action = "开通创作者账号")
|
||||||
|
|||||||
+4
-5
@@ -21,10 +21,10 @@ import org.springframework.util.StringUtils;
|
|||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创作者账号:后台给审核通过的创作者开一个**独立后台账号**,他登录后直接落创作者中心。
|
* 创作者账号:后台直接给创作者开一个**独立后台账号**,他登录后直接落创作者中心。
|
||||||
*
|
*
|
||||||
* 约定:
|
* 约定:
|
||||||
* - 只有 `approved` 的创作者能开通(没审核过就发账号等于绕过入驻);
|
* - 账号由后台直接发放,不再校验入驻审核状态(仅冻结的创作者不能开号);
|
||||||
* - **幂等**:已经绑定了 `admin_user_id` 就不重复建号,返回 `created=false` 且不回明文密码,
|
* - **幂等**:已经绑定了 `admin_user_id` 就不重复建号,返回 `created=false` 且不回明文密码,
|
||||||
* 运营要重发就用「重置密码」;
|
* 运营要重发就用「重置密码」;
|
||||||
* - 初始密码是**一次性明文**:只在开通 / 重置的响应里出现一次,库里存 BCrypt 哈希,
|
* - 初始密码是**一次性明文**:只在开通 / 重置的响应里出现一次,库里存 BCrypt 哈希,
|
||||||
@@ -49,10 +49,9 @@ public class CreatorAccountService {
|
|||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public CreatorAccountRespVO open(Long creatorId, String usernameOverride) {
|
public CreatorAccountRespVO open(Long creatorId, String usernameOverride) {
|
||||||
Creator creator = requireCreator(creatorId);
|
Creator creator = requireCreator(creatorId);
|
||||||
if (!CreatorService.STATUS_APPROVED.equals(creator.getStatus())) {
|
if (CreatorService.STATUS_FROZEN.equals(creator.getStatus())) {
|
||||||
throw new ServiceException(ErrorCode.OPERATION_NOT_ALLOWED,
|
throw new ServiceException(ErrorCode.OPERATION_NOT_ALLOWED,
|
||||||
"只有审核通过的创作者才能开通账号,当前状态:"
|
"创作者已冻结,请先解冻后再开通账号");
|
||||||
+ CreatorService.statusText(creator.getStatus()));
|
|
||||||
}
|
}
|
||||||
if (creator.getAdminUserId() != null && creator.getAdminUserId() > 0) {
|
if (creator.getAdminUserId() != null && creator.getAdminUserId() > 0) {
|
||||||
AdminUser existing = adminUserService.getExisting(creator.getAdminUserId());
|
AdminUser existing = adminUserService.getExisting(creator.getAdminUserId());
|
||||||
|
|||||||
+5
-4
@@ -63,8 +63,8 @@ public class CreatorService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 后台手工录入创作者主体(C 端申请入驻还没做,先用它打通链路)。
|
* 后台手工录入创作者主体。
|
||||||
* 新录入的主体是 pending,必须走一次入驻审核通过才能开通账号。
|
* 录入即开通:直接置为 approved,不再走入驻审核(账号由后台直接发放)。
|
||||||
*/
|
*/
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Long create(CreatorSaveReqVO req) {
|
public Long create(CreatorSaveReqVO req) {
|
||||||
@@ -83,9 +83,10 @@ public class CreatorService {
|
|||||||
creator.setCountryCode(StringUtils.hasText(req.getCountryCode()) ? req.getCountryCode() : "ID");
|
creator.setCountryCode(StringUtils.hasText(req.getCountryCode()) ? req.getCountryCode() : "ID");
|
||||||
creator.setUserId(req.getUserId() == null ? 0L : req.getUserId());
|
creator.setUserId(req.getUserId() == null ? 0L : req.getUserId());
|
||||||
creator.setAdminUserId(0L);
|
creator.setAdminUserId(0L);
|
||||||
creator.setStatus(STATUS_PENDING);
|
creator.setStatus(STATUS_APPROVED);
|
||||||
creator.setAuditNote("");
|
creator.setAuditNote("后台直接开通");
|
||||||
creator.setAuditBy(0L);
|
creator.setAuditBy(0L);
|
||||||
|
creator.setAuditAt(LocalDateTime.now());
|
||||||
creator.setSettlementCurrency("IDR");
|
creator.setSettlementCurrency("IDR");
|
||||||
creator.setBankAccount("");
|
creator.setBankAccount("");
|
||||||
creator.setTaxNo("");
|
creator.setTaxNo("");
|
||||||
|
|||||||
Reference in new issue
Block a user