规范化类的名称

This commit is contained in:
2026-06-03 13:04:26 +08:00
parent c40d7aabcb
commit 6ce698eecc
8 changed files with 183 additions and 105 deletions

View File

@@ -3,11 +3,12 @@ package com.rj.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.rj.entity.FanManagement;
import com.rj.mapper.FanManagementMapper;
import com.rj.service.IFanManagementService;
import com.rj.entity.LbFanManagement;
import com.rj.mapper.LbFanManagementMapper;
import com.rj.service.ILbFanManagementService;
import com.rj.tenant.TenantContextHolder;
import lombok.extern.slf4j.Slf4j;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
@@ -20,30 +21,38 @@ import java.util.Map;
*/
@Slf4j
@Service
public class FanManagementServiceImpl
extends ServiceImpl<FanManagementMapper, FanManagement>
implements IFanManagementService {
public class LbFanManagementServiceImpl
extends ServiceImpl<LbFanManagementMapper, LbFanManagement>
implements ILbFanManagementService {
private static final DateTimeFormatter DATE_TIME_FORMATTER =
DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@Override
public Map<String, Object> add(FanManagement entity) {
public Map<String, Object> add(LbFanManagement entity) {
Map<String, Object> result = new HashMap<>();
try {
if (entity.getId() == null) {
trimStringFields(entity);
fillTenantIdIfAbsent(entity);
Map<String, Object> keyError = validateCompositeKey(entity);
if (keyError != null) {
return keyError;
}
Map<String, Object> idTenantError = fillAndValidateIdTenantId(entity);
if (idTenantError != null) {
return idTenantError;
}
if (existsByIdTenantId(entity.getIdTenantId())) {
result.put("success", false);
result.put("message", "粉丝ID不能为空");
result.put("message", "唯一ID已存在" + entity.getIdTenantId());
return result;
}
trimStringFields(entity);
if (entity.getShareNum() == null) {
entity.setShareNum(0);
}
if (entity.getCreatedAt() == null) {
entity.setCreatedAt(LocalDateTime.now());
}
fillTenantIdIfAbsent(entity);
boolean ok = this.save(entity);
result.put("success", ok);
@@ -52,6 +61,11 @@ public class FanManagementServiceImpl
result.put("data", entity);
}
return result;
} catch (DuplicateKeyException e) {
log.warn("粉丝管理新增重复键, idTenantId={}", entity.getIdTenantId());
result.put("success", false);
result.put("message", "唯一ID已存在" + entity.getIdTenantId());
return result;
} catch (Exception e) {
log.error("粉丝管理新增异常", e);
result.put("success", false);
@@ -61,22 +75,38 @@ public class FanManagementServiceImpl
}
@Override
public Map<String, Object> update(FanManagement entity) {
public Map<String, Object> update(LbFanManagement entity) {
Map<String, Object> result = new HashMap<>();
try {
if (entity.getId() == null) {
result.put("success", false);
result.put("message", "粉丝ID不能为空");
return result;
}
trimStringFields(entity);
fillTenantIdIfAbsent(entity);
Map<String, Object> keyError = validateCompositeKey(entity);
if (keyError != null) {
return keyError;
}
Map<String, Object> idTenantError = fillAndValidateIdTenantId(entity);
if (idTenantError != null) {
return idTenantError;
}
LbFanManagement existing = this.getById(entity.getIdTenantId());
if (existing == null) {
result.put("success", false);
result.put("message", "记录不存在id_tenant_id=" + entity.getIdTenantId());
return result;
}
if (entity.getCreatedAt() == null) {
entity.setCreatedAt(existing.getCreatedAt());
}
// 唯一主键与联合键字段不可变更
entity.setIdTenantId(existing.getIdTenantId());
entity.setTenantId(existing.getTenantId());
entity.setId(existing.getId());
boolean ok = this.updateById(entity);
result.put("success", ok);
result.put("message", ok ? "修改成功" : "修改失败,记录可能不存在");
result.put("message", ok ? "修改成功" : "修改失败");
if (ok) {
result.put("data", getOneByIdAndTenant(entity.getId(), entity.getTenantId()));
result.put("data", this.getById(entity.getIdTenantId()));
}
return result;
} catch (Exception e) {
@@ -88,20 +118,21 @@ public class FanManagementServiceImpl
}
@Override
public Map<String, Object> deleteById(Long id) {
public Map<String, Object> deleteByIdTenantId(String idTenantId) {
Map<String, Object> result = new HashMap<>();
try {
if (id == null) {
if (idTenantId == null || idTenantId.trim().isEmpty()) {
result.put("success", false);
result.put("message", "粉丝ID不能为空");
result.put("message", "唯一IDid_tenant_id不能为空");
return result;
}
boolean ok = this.removeById(id);
String key = idTenantId.trim();
boolean ok = this.removeById(key);
result.put("success", ok);
result.put("message", ok ? "删除成功" : "删除失败,记录可能不存在");
return result;
} catch (Exception e) {
log.error("粉丝管理删除异常, id={}", id, e);
log.error("粉丝管理删除异常, idTenantId={}", idTenantId, e);
result.put("success", false);
result.put("message", "删除异常:" + e.getMessage());
return result;
@@ -126,18 +157,18 @@ public class FanManagementServiceImpl
size = 10;
}
LambdaQueryWrapper<FanManagement> queryWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<LbFanManagement> queryWrapper = new LambdaQueryWrapper<>();
if (nickname != null && !nickname.trim().isEmpty()) {
queryWrapper.like(FanManagement::getNickname, nickname.trim());
queryWrapper.like(LbFanManagement::getNickname, nickname.trim());
}
if (mobile != null && !mobile.trim().isEmpty()) {
queryWrapper.like(FanManagement::getMobile, mobile.trim());
queryWrapper.like(LbFanManagement::getMobile, mobile.trim());
}
if (shareNumMin != null) {
queryWrapper.ge(FanManagement::getShareNum, shareNumMin);
queryWrapper.ge(LbFanManagement::getShareNum, shareNumMin);
}
if (shareNumMax != null) {
queryWrapper.le(FanManagement::getShareNum, shareNumMax);
queryWrapper.le(LbFanManagement::getShareNum, shareNumMax);
}
LocalDateTime start = parseDateTime(createdAtStart);
@@ -153,14 +184,14 @@ public class FanManagementServiceImpl
return result;
}
if (start != null) {
queryWrapper.ge(FanManagement::getCreatedAt, start);
queryWrapper.ge(LbFanManagement::getCreatedAt, start);
}
if (end != null) {
queryWrapper.le(FanManagement::getCreatedAt, end);
queryWrapper.le(LbFanManagement::getCreatedAt, end);
}
queryWrapper.orderByDesc(FanManagement::getCreatedAt);
queryWrapper.orderByDesc(LbFanManagement::getCreatedAt);
Page<FanManagement> page = this.page(new Page<>(current, size), queryWrapper);
Page<LbFanManagement> page = this.page(new Page<>(current, size), queryWrapper);
result.put("success", true);
result.put("message", "查询成功");
result.put("data", page.getRecords());
@@ -177,16 +208,53 @@ public class FanManagementServiceImpl
}
}
private FanManagement getOneByIdAndTenant(Long id, String tenantId) {
LambdaQueryWrapper<FanManagement> q = new LambdaQueryWrapper<>();
q.eq(FanManagement::getId, id);
if (tenantId != null && !tenantId.trim().isEmpty()) {
q.eq(FanManagement::getTenantId, tenantId.trim());
}
return this.getOne(q, false);
/**
* 生成唯一IDid + '_' + tenant_id
*/
public static String buildIdTenantId(Long id, String tenantId) {
return id + "_" + tenantId;
}
private void fillTenantIdIfAbsent(FanManagement entity) {
private Map<String, Object> validateCompositeKey(LbFanManagement entity) {
Map<String, Object> result = new HashMap<>();
if (entity.getTenantId() == null || entity.getTenantId().trim().isEmpty()) {
result.put("success", false);
result.put("message", "租户ID不能为空");
return result;
}
if (entity.getId() == null) {
result.put("success", false);
result.put("message", "粉丝ID不能为空");
return result;
}
return null;
}
/**
* 填充 id_tenant_id并与传入值校验一致
*/
private Map<String, Object> fillAndValidateIdTenantId(LbFanManagement entity) {
Map<String, Object> result = new HashMap<>();
String expected = buildIdTenantId(entity.getId(), entity.getTenantId());
if (entity.getIdTenantId() == null || entity.getIdTenantId().trim().isEmpty()) {
entity.setIdTenantId(expected);
return null;
}
String actual = entity.getIdTenantId().trim();
if (!expected.equals(actual)) {
result.put("success", false);
result.put("message", "id_tenant_id 与 id、tenant_id 不一致,应为:" + expected);
return result;
}
entity.setIdTenantId(actual);
return null;
}
private boolean existsByIdTenantId(String idTenantId) {
return this.getById(idTenantId) != null;
}
private void fillTenantIdIfAbsent(LbFanManagement entity) {
if (entity.getTenantId() == null || entity.getTenantId().trim().isEmpty()) {
String tenantId = TenantContextHolder.getTenantId();
if (tenantId != null && !tenantId.trim().isEmpty()) {
@@ -195,7 +263,10 @@ public class FanManagementServiceImpl
}
}
private void trimStringFields(FanManagement entity) {
private void trimStringFields(LbFanManagement entity) {
if (entity.getIdTenantId() != null) {
entity.setIdTenantId(entity.getIdTenantId().trim());
}
if (entity.getTenantId() != null) {
entity.setTenantId(entity.getTenantId().trim());
}