每日总结

屏幕截图 2026-01-06 031816
屏幕截图 2026-01-06 021844
package com.mentalhealth.service;

import com.mentalhealth.dto.ConsultantProfileDTO;
import com.mentalhealth.entity.Consultant;
import com.mentalhealth.entity.User;
import com.mentalhealth.repository.ConsultantRepository;
import com.mentalhealth.repository.UserRepository;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.Arrays;
import java.util.List;

@Service
@RequiredArgsConstructor
public class ConsultantManagementService {

private final ConsultantRepository consultantRepository;
private final UserRepository userRepository;

@Transactional
public Consultant createConsultantProfile(Long userId, ConsultantProfileDTO profileDTO) {
    User user = userRepository.findById(userId)
            .orElseThrow(() -> new RuntimeException("用户不存在"));

    Consultant consultant = new Consultant();
    consultant.setUser(user);
    consultant.setRealName(profileDTO.getRealName());
    consultant.setIdCard(profileDTO.getIdCard());
    consultant.setExperienceYears(profileDTO.getExperienceYears());
    consultant.setQualificationCert(profileDTO.getQualificationCert());
    consultant.setExpertiseAreas(profileDTO.getExpertiseAreas());
    consultant.setTherapyMethods(profileDTO.getTherapyMethods());
    consultant.setIntroduction(profileDTO.getIntroduction());
    consultant.setPricePerHour(profileDTO.getPricePerHour()); // 直接使用 Double
    consultant.setRating(0.0);
    consultant.setTotalSessions(0);
    consultant.setAvailable(true);
    consultant.setStatus("PENDING"); // 设置初始状态

    return consultantRepository.save(consultant);
}

@Transactional
public Consultant updateConsultantProfile(Long consultantId, ConsultantProfileDTO profileDTO) {
    Consultant consultant = consultantRepository.findById(consultantId)
            .orElseThrow(() -> new RuntimeException("咨询师不存在"));

    consultant.setRealName(profileDTO.getRealName());
    consultant.setExperienceYears(profileDTO.getExperienceYears());
    consultant.setQualificationCert(profileDTO.getQualificationCert());
    consultant.setExpertiseAreas(profileDTO.getExpertiseAreas());
    consultant.setTherapyMethods(profileDTO.getTherapyMethods());
    consultant.setIntroduction(profileDTO.getIntroduction());
    consultant.setPricePerHour(profileDTO.getPricePerHour()); // 直接使用 Double

    // 注意:available 字段在 ConsultantProfileDTO 中可能不存在,需要检查
    // consultant.setAvailable(profileDTO.getAvailable());

    return consultantRepository.save(consultant);
}

public List<Consultant> getTopRatedConsultants(int limit) {
    return consultantRepository.findAll().stream()
            .filter(Consultant::getAvailable)
            .filter(c -> "APPROVED".equals(c.getStatus())) // 只显示已批准的咨询师
            .sorted((c1, c2) -> Double.compare(c2.getRating(), c1.getRating()))
            .limit(limit)
            .collect(java.util.stream.Collectors.toList());
}

public List<String> getAllExpertiseAreas() {
    return Arrays.asList(
            "焦虑症", "抑郁症", "婚姻家庭", "亲子关系", "职场压力",
            "人际关系", "情绪管理", "创伤治疗", "睡眠问题", "成瘾问题"
    );
}

public List<String> getAllTherapyMethods() {
    return Arrays.asList(
            "认知行为疗法", "精神分析", "人本主义疗法", "家庭系统治疗",
            "艺术治疗", "沙盘游戏", "正念疗法", "短期焦点解决"
    );
}

}

posted @ 2025-11-01 21:32  李蕊lr  阅读(1)  评论(0)    收藏  举报