feat(spec58): 模块注册表后端与模块硬编码收敛(#60)
- 新增 gxmu/module 包:ModuleRegistry 实体/Mapper/Service,listEnabled 按 sort_number 升序,titleOf 未注册回退 module 原串 - 新增 GET /api/gxmu/module-registry/list(需登录),返回启用模块元数据 - ReviewFlowConfigServiceImpl / ReviewListServiceImpl 的模块名映射改读注册表,查不到回退原串 - DeclareGuardServiceImpl 的模块集合改为注册表驱动,含 enabled=0(停用模块存量仍可撤回/作废) - 启动期一致性校验:table_name≠module 或业务表缺失即启动失败,gxmu.module-registry.strict=false 可关闭 - 单测 13 例:注册表加载与排序、titleOf 回退、启动校验、module 名回退
This commit is contained in:
@@ -12,12 +12,11 @@ import com.gxwebsoft.common.system.entity.Organization;
|
||||
import com.gxwebsoft.common.system.service.OrganizationService;
|
||||
import com.gxwebsoft.common.core.web.PageParam;
|
||||
import com.gxwebsoft.common.core.web.PageResult;
|
||||
import com.gxwebsoft.gxmu.module.service.ModuleRegistryService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
@@ -31,27 +30,13 @@ import java.util.stream.Collectors;
|
||||
*/
|
||||
@Service
|
||||
public class ReviewFlowConfigServiceImpl extends ServiceImpl<ReviewFlowConfigMapper, ReviewFlowConfig> implements ReviewFlowConfigService {
|
||||
private static final Map<String, String> MODULE_NAME_MAP;
|
||||
|
||||
static {
|
||||
Map<String, String> moduleNameMap = new LinkedHashMap<>();
|
||||
moduleNameMap.put("cms_manuscript", "稿件");
|
||||
moduleNameMap.put("gxmu_sjqn", "十佳青年岗位能手");
|
||||
moduleNameMap.put("gxmu_sjtbzbsj", "十佳团支部书记");
|
||||
moduleNameMap.put("gxmu_wshqtw", "五四红旗团委");
|
||||
moduleNameMap.put("gxmu_wshqtzb", "五四红旗团支部");
|
||||
moduleNameMap.put("gxmu_yxgqtdgb", "优秀共青团干部");
|
||||
moduleNameMap.put("gxmu_yxgqty", "优秀共青团员");
|
||||
moduleNameMap.put("gxmu_tzbcy_form", "挑战杯");
|
||||
moduleNameMap.put("gxmu_qmgc_form", "青马工程");
|
||||
moduleNameMap.put("gxmu_wxxzx_project", "未来学术之星");
|
||||
MODULE_NAME_MAP = Collections.unmodifiableMap(moduleNameMap);
|
||||
}
|
||||
|
||||
@Resource
|
||||
private ReviewFlowService reviewFlowService;
|
||||
@Resource
|
||||
private OrganizationService organizationService;
|
||||
@Resource
|
||||
private ModuleRegistryService moduleRegistryService;
|
||||
|
||||
@Override
|
||||
public PageResult<ReviewFlowConfig> pageRel(ReviewFlowConfigParam param) {
|
||||
@@ -110,11 +95,21 @@ public class ReviewFlowConfigServiceImpl extends ServiceImpl<ReviewFlowConfigMap
|
||||
flowNameMap = reviewFlowService.listByIds(flowIds).stream()
|
||||
.collect(Collectors.toMap(ReviewFlow::getId, ReviewFlow::getTitle, (left, right) -> left));
|
||||
}
|
||||
// 模块标题以注册表为唯一来源;注册表里查不到的历史 module 回退原串,不让列表报错
|
||||
Map<String, String> moduleTitleMap = moduleRegistryService.titleMap();
|
||||
for (ReviewFlowConfig item : list) {
|
||||
item.setFlowName(flowNameMap.get(item.getFlowId()));
|
||||
item.setModuleName(MODULE_NAME_MAP.get(item.getModule()));
|
||||
item.setModuleName(moduleTitleOf(moduleTitleMap, item.getModule()));
|
||||
item.setOrganizationName(organizationNameMap.get(item.getOrganizationId()));
|
||||
}
|
||||
}
|
||||
|
||||
private String moduleTitleOf(Map<String, String> moduleTitleMap, String module) {
|
||||
if (module == null) {
|
||||
return null;
|
||||
}
|
||||
String title = moduleTitleMap.get(module);
|
||||
return title == null || title.isEmpty() ? module : title;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user