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<Expert>()
|
.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;
|
}
|
}
|