TASK:限制同一个管理员不允许绑定不同组织的订阅计划
This commit is contained in:
@@ -104,6 +104,20 @@ public class SubscriptionPlanServiceImpl extends ServiceImpl<SubscriptionPlanMap
|
||||
if (account.getSystemUser().equals(8) || account.getSystemUser().equals(6)) {
|
||||
throw new BusinessException("Sub-accounts.cannot.be.admins");
|
||||
}
|
||||
|
||||
// 保证订阅计划绑定的管理员所属组织的唯一性
|
||||
checkAdminCrossOrg(subscriptionPlanDTO.getAdminAccId(), subscriptionPlanDTO.getOrganizationId());
|
||||
}
|
||||
|
||||
// 判断指定的管理员是否已绑定其他组织的订阅计划
|
||||
private void checkAdminCrossOrg(Long adminAccId, Long organizationId) {
|
||||
QueryWrapper<SubscriptionPlan> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.lambda().eq(SubscriptionPlan::getAdminAccId, adminAccId)
|
||||
.ne(SubscriptionPlan::getOrganizationId, organizationId);
|
||||
Long count = baseMapper.selectCount(queryWrapper);
|
||||
if (count > 0) {
|
||||
throw new BusinessException("administrator.user.is.already.bound.to.different.organization");
|
||||
}
|
||||
}
|
||||
|
||||
// 更新 到期时间、积分总量、已使用积分量
|
||||
@@ -217,6 +231,8 @@ public class SubscriptionPlanServiceImpl extends ServiceImpl<SubscriptionPlanMap
|
||||
private void handleBasicInfo(UpdateSubscriptionPlanDTO dto, SubscriptionPlan plan) {
|
||||
if (dto.getAdminAccId() != null
|
||||
&& !dto.getAdminAccId().equals(plan.getAdminAccId())) {
|
||||
// 保证订阅计划绑定的管理员所属组织的唯一性
|
||||
checkAdminCrossOrg(dto.getAdminAccId(), plan.getOrganizationId());
|
||||
plan.setAdminAccId(dto.getAdminAccId());
|
||||
}
|
||||
|
||||
@@ -224,6 +240,11 @@ public class SubscriptionPlanServiceImpl extends ServiceImpl<SubscriptionPlanMap
|
||||
&& !dto.getName().equals(plan.getName())) {
|
||||
plan.setName(dto.getName());
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(dto.getCountryOrRegion())
|
||||
&& !dto.getCountryOrRegion().equals(plan.getCountryOrRegion())) {
|
||||
plan.setCountryOrRegion(dto.getCountryOrRegion());
|
||||
}
|
||||
}
|
||||
|
||||
// ===================== 更新后处理 =====================
|
||||
|
||||
Reference in New Issue
Block a user