package com.tcm.training.admin.app.system.service; import com.tcm.training.admin.app.system.vo.AppHelpCenterVO; import com.tcm.training.admin.common.PageResponse; import com.tcm.training.admin.system.service.CommonQuestionAppService; import com.tcm.training.admin.system.service.SystemSettingsAppService; import com.tcm.training.admin.system.vo.CommonQuestionDetailVO; import com.tcm.training.admin.system.vo.CommonQuestionListItemVO; import com.tcm.training.admin.system.vo.SystemSettingsVO; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; /** * APP 帮助中心服务。 */ @Service public class AppHelpCenterService { private static final int DEFAULT_PAGE = 1; private static final int DEFAULT_PAGE_SIZE = 100; private final SystemSettingsAppService systemSettingsAppService; private final CommonQuestionAppService commonQuestionAppService; /** * 注入 APP 帮助中心所需依赖。 */ public AppHelpCenterService(SystemSettingsAppService systemSettingsAppService, CommonQuestionAppService commonQuestionAppService) { this.systemSettingsAppService = systemSettingsAppService; this.commonQuestionAppService = commonQuestionAppService; } /** * 获取帮助中心首页聚合数据。 */ public AppHelpCenterVO getHelpCenter() { SystemSettingsVO settings = systemSettingsAppService.current(); PageResponse questionPage = commonQuestionAppService.page(DEFAULT_PAGE, DEFAULT_PAGE_SIZE, null); AppHelpCenterVO result = new AppHelpCenterVO(); result.setServicePhone(trimToEmpty(settings == null ? null : settings.getServicePhone())); result.setServiceOnlineTime(trimToEmpty(settings == null ? null : settings.getServiceOnlineTime())); result.setQuestions(toQuestionItems(questionPage == null ? null : questionPage.getList())); return result; } /** * 获取单个常见问题详情。 */ public CommonQuestionDetailVO getQuestionDetail(Long id) { return commonQuestionAppService.detail(id); } /** * 将常见问题列表裁剪为帮助中心首页需要的字段。 */ private List toQuestionItems(List questions) { List list = new ArrayList(); if (questions == null) { return list; } for (CommonQuestionListItemVO question : questions) { AppHelpCenterVO.QuestionItemVO item = new AppHelpCenterVO.QuestionItemVO(); item.setId(question.getId()); item.setTitle(trimToEmpty(question.getTitle())); list.add(item); } return list; } /** * 将可空文本归一化为空字符串。 */ private String trimToEmpty(String value) { if (value == null) { return ""; } return value.trim(); } }