package com.srs.comprehensive.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.srs.common.core.domain.AjaxResult;
import com.srs.comprehensive.domain.SrsStudentInfoCheck;
import com.srs.comprehensive.mapper.SrsStudentInfoCheckMapper;
import com.srs.comprehensive.service.ISrsStudentInfoCheckService;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * 学生信息核对 Service 业务层处理
 *
 * @author srs
 * @date 2024-03-27
 */
@Service
public class SrsStudentInfoCheckServiceImpl extends ServiceImpl<SrsStudentInfoCheckMapper, SrsStudentInfoCheck> 
        implements ISrsStudentInfoCheckService {

    /**
     * 查询学生信息
     * @param stuNo 学号
     * @return 学生信息
     */
    @Override
    public SrsStudentInfoCheck getStuInfo(String stuNo) {
        if (!StringUtils.hasText(stuNo)) {
            return null;
        }
        
        LambdaQueryWrapper<SrsStudentInfoCheck> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(SrsStudentInfoCheck::getStuNo, stuNo);
        wrapper.eq(SrsStudentInfoCheck::getDelFlag, "0");
        
        return this.getOne(wrapper);
    }

    /**
     * 修改学生信息
     * @param srsStudentInfoCheck 学生信息
     * @return 结果
     */
    @Override
    public AjaxResult editStuInfo(SrsStudentInfoCheck srsStudentInfoCheck) {
        try {
            // 先查询是否存在
            SrsStudentInfoCheck existing = getStuInfo(srsStudentInfoCheck.getStuNo());
            
            if (existing != null) {
                // 存在则更新
                srsStudentInfoCheck.setId(existing.getId());
                this.updateById(srsStudentInfoCheck);
            } else {
                // 不存在则插入
                this.save(srsStudentInfoCheck);
            }
            
            return AjaxResult.success("修改成功");
        } catch (Exception e) {
            e.printStackTrace();
            return AjaxResult.error("修改失败：" + e.getMessage());
        }
    }

    /**
     * 查询学生信息列表
     * @param srsStudentInfoCheck 学生信息
     * @return 学生信息集合
     */
    @Override
    public List<SrsStudentInfoCheck> selectSrsStudentInfoCheckList(SrsStudentInfoCheck srsStudentInfoCheck) {
        LambdaQueryWrapper<SrsStudentInfoCheck> wrapper = new LambdaQueryWrapper<>();
        
        // 动态查询条件
        if (StringUtils.hasText(srsStudentInfoCheck.getStuNo())) {
            wrapper.eq(SrsStudentInfoCheck::getStuNo, srsStudentInfoCheck.getStuNo());
        }
        if (StringUtils.hasText(srsStudentInfoCheck.getMz())) {
            wrapper.eq(SrsStudentInfoCheck::getMz, srsStudentInfoCheck.getMz());
        }
        if (StringUtils.hasText(srsStudentInfoCheck.getZzmm())) {
            wrapper.eq(SrsStudentInfoCheck::getZzmm, srsStudentInfoCheck.getZzmm());
        }
        
        wrapper.eq(SrsStudentInfoCheck::getDelFlag, "0");
        
        return this.list(wrapper);
    }
}
