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<CommonQuestionListItemVO> 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<AppHelpCenterVO.QuestionItemVO> toQuestionItems(List<CommonQuestionListItemVO> questions) {
|
List<AppHelpCenterVO.QuestionItemVO> list = new ArrayList<AppHelpCenterVO.QuestionItemVO>();
|
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();
|
}
|
}
|