package com.tcm.training.admin.app.live.service; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.tcm.training.admin.app.live.vo.AppLiveExpertVO; import com.tcm.training.admin.live.entity.Expert; import com.tcm.training.admin.live.mapper.ExpertMapper; import org.springframework.stereotype.Service; /** * APP 养生直播专家服务。 */ @Service public class AppLiveExpertService { private static final int EXPERT_STATUS_ENABLED = 1; private final ExpertMapper expertMapper; /** * 注入专家查询能力。 */ public AppLiveExpertService(ExpertMapper expertMapper) { this.expertMapper = expertMapper; } /** * 获取 APP 专家详情,仅允许读取已启用专家。 */ public AppLiveExpertVO detail(Long expertId) { Expert expert = expertMapper.selectOne(new LambdaQueryWrapper() .eq(Expert::getId, expertId) .eq(Expert::getDeleted, 0) .eq(Expert::getStatus, EXPERT_STATUS_ENABLED) .last("limit 1")); if (expert == null) { throw new IllegalArgumentException("授课专家不存在"); } return toExpertVO(expert); } /** * 将专家实体转换为 APP 专家响应。 */ public AppLiveExpertVO toExpertVO(Expert expert) { if (expert == null) { return null; } AppLiveExpertVO expertVO = new AppLiveExpertVO(); expertVO.setId(expert.getId()); expertVO.setName(expert.getName()); expertVO.setAvatar(expert.getAvatar()); expertVO.setSpecialty(expert.getSpecialty()); expertVO.setIntro(expert.getIntro()); return expertVO; } }