2024.3.28(周四)进度

继续完善个人作业1learning的教师端查询功能

package com.example.learningrecords;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import com.example.learningrecords.R;
import com.example.learningrecords.dao.RecordDao;
import com.example.learningrecords.dao.StudentDao;
import com.example.learningrecords.entity.Record;
import com.example.learningrecords.entity.StuRecData;
import com.example.learningrecords.entity.Student;

import java.util.ArrayList;
import java.util.List;

public class teacher extends AppCompatActivity {

    private static final String TAG = "teacher";
    private EditText editTextStudentId;
    private EditText editTextWeekNumber;
    private TextView textViewDisplay;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_teacher);

        // 初始化视图组件
        editTextStudentId = findViewById(R.id.editTextStudentId);
        editTextWeekNumber = findViewById(R.id.editTextWeekNumber);
        textViewDisplay = findViewById(R.id.textViewDisplay);

        // 获取查询按钮
        Button buttonQuery = findViewById(R.id.buttonQuery);

        // 设置查询按钮点击事件
        buttonQuery.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                queryData();
            }
        });
    }

    // 查询数据的方法
    private void queryData() {
        new Thread(new Runnable() {
            @Override
            public void run() {
                if (TextUtils.isEmpty(editTextStudentId.getText()) && TextUtils.isEmpty(editTextWeekNumber.getText())) {
                    List<StuRecData> resultDataAll = queryAllData();
                    displayData("所有数据", resultDataAll);
                } else if (!TextUtils.isEmpty(editTextStudentId.getText()) && TextUtils.isEmpty(editTextWeekNumber.getText())) {
                    String studentId = editTextStudentId.getText().toString();
                    List<StuRecData> resultDataById = queryByStudentId(studentId);
                    displayData("Data by ID", resultDataById);
                } else if (TextUtils.isEmpty(editTextStudentId.getText()) && !TextUtils.isEmpty(editTextWeekNumber.getText())) {
                    int weekNum = Integer.parseInt(editTextWeekNumber.getText().toString());
                    List<StuRecData> resultDataByWeekNum = queryByWeekNum(weekNum);
                    displayData("Data by Week", resultDataByWeekNum);
                } else {
                    String studentId = editTextStudentId.getText().toString();
                    int weekNum = Integer.parseInt(editTextWeekNumber.getText().toString());
                    List<StuRecData> resultDataCombined = queryByStudentIdAndWeekNum(studentId, weekNum);
                    displayData("Data by ID&Week", resultDataCombined);
                }
            }
        }).start();
    }


    // 无参数查询,将所有数据查询出来
    private List<StuRecData> queryAllData() {
        List<StuRecData> resultData = new ArrayList<>();
        List<Record> allRecords = new RecordDao().findAllRecords();
        for (Record record : allRecords) {
            String studentId = record.getStudentId();
            Student student = new StudentDao().findStudent(studentId);
            if (student != null) {
                StuRecData stuRecData = createStuRecData(student, record);
                resultData.add(stuRecData);
            }
        }
        return resultData;
    }

    // 根据StudentId查询,将Record表中的对应id的打卡记录查询出来
    private List<StuRecData> queryByStudentId(String studentId) {
        List<StuRecData> resultData = new ArrayList<>();
        List<Record> records = new RecordDao().findRecordsByStudentId(studentId);
        for (Record record : records) {
            Student student = new StudentDao().findStudent(studentId);
            if (student != null) {
                StuRecData stuRecData = createStuRecData(student, record);
                resultData.add(stuRecData);
            }
        }
        return resultData;
    }

    // 根据weekNum查询,将record表中,对应weekNum的信息查询出来
    private List<StuRecData> queryByWeekNum(int weekNum) {
        List<StuRecData> resultData = new ArrayList<>();
        List<Record> records = new RecordDao().findRecordsByWeekNum(weekNum);
        for (Record record : records) {
            String studentId = record.getStudentId();
            Student student = new StudentDao().findStudent(studentId);
            if (student != null) {
                StuRecData stuRecData = createStuRecData(student, record);
                resultData.add(stuRecData);
            }
        }
        return resultData;
    }

    // 根据两种条件同时查询
    private List<StuRecData> queryByStudentIdAndWeekNum(String studentId, int weekNum) {
        List<StuRecData> resultData = new ArrayList<>();
        Record record = new RecordDao().findRecord(studentId, weekNum);
        if (record != null) {
            Student student = new StudentDao().findStudent(studentId);
            if (student != null) {
                StuRecData stuRecData = createStuRecData(student, record);
                resultData.add(stuRecData);
            }
        }
        return resultData;
    }

    // 创建 StuRecData 对象
    private StuRecData createStuRecData(Student student, Record record) {
        return new StuRecData(
                student.getId(),
                student.getName(),
                student.getClassName(),
                student.getSetRecord(),
                record.getWeekNum(),
                record.getStartTime(),
                record.getEndTime(),
                record.getRecording()
        );
    }

    // 显示查询结果
    // 显示查询结果
    private void displayData(final String title, final List<StuRecData> resultData) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                StringBuilder displayText = new StringBuilder();
                displayText.append(title).append(":\n");
                if (!resultData.isEmpty()) {
                    for (StuRecData data : resultData) {
                        displayText.append("学生ID:").append(data.getId())
                                .append("\n姓名:").append(data.getName())
                                .append("\n班级:").append(data.getClassName())
                                .append("\n打卡次数:").append(data.getSetRecord())
                                .append("\n周数:").append(data.getWeekNum())
                                .append("\n开始时间:").append(data.getStartTime())
                                .append("\n结束时间:").append(data.getEndTime())
                                .append("\n学习记录:").append(data.getRecording())
                                .append("\n\n");
                    }
                } else {
                    displayText.append("未找到相关数据\n\n");
                }
                textViewDisplay.setText(displayText.toString());
            }
        });
    }

}

 

posted @ 2024-04-08 21:31  记得关月亮  阅读(6)  评论(0)    收藏  举报