2025331日报

个人作业开发1

package com.example.dailyreport.ui.auth;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dailyreport.R;
import com.example.dailyreport.model.User;
import com.example.dailyreport.network.ApiResponse;
import com.example.dailyreport.network.ApiService;
import com.example.dailyreport.network.RetrofitClient;



import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class LoginActivity extends AppCompatActivity {
    private EditText etUsername, etPassword;

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

        etUsername = findViewById(R.id.etUsername);
        etPassword = findViewById(R.id.etPassword);
        Button btnLogin = findViewById(R.id.btnLogin);
        Button btnRegister = findViewById(R.id.btnRegister);

        btnLogin.setOnClickListener(v -> login());
        btnRegister.setOnClickListener(v ->
                startActivity(new Intent(this, RegisterActivity.class)));
    }

    private void login() {
        String username = etUsername.getText().toString();
        String password = etPassword.getText().toString();

        if (username.isEmpty() || password.isEmpty()) {
            Toast.makeText(this, "请填写完整信息", Toast.LENGTH_SHORT).show();
            return;
        }

        User user = new User();
        user.setName(username);
        user.setPsw(password);

        RetrofitClient.getInstance().getApiService().login(user)
                .enqueue(new Callback<ApiResponse<User>>() {
                    @Override
                    public void onResponse(Call<ApiResponse<User>> call,
                                           Response<ApiResponse<User>> response) {
                        ApiResponse<User> apiResponse = null;
                        if (response.isSuccessful() && response.body() != null) {
                            apiResponse = response.body();
                            // 增加更多日志输出
                            System.out.println("Response code: " + apiResponse.getCode());
                            System.out.println("Response msg: " + apiResponse.getMsg());
                            System.out.println("User data: " + (apiResponse.getData() != null ?
                                    "ID=" + apiResponse.getData().getId() + ", Name=" +
                                            apiResponse.getData().getName() : "null"));

                            // 检查code是否为字符串"200"
                            if ("200".equals(apiResponse.getCode())) {
                                User loginUser = apiResponse.getData();
                                if (loginUser != null) {
                                    // Fix the Menu class reference - use your custom Menu class
                                    Intent intent = new Intent(LoginActivity.this, com.example.dailyreport.ui.auth.Menu.class);
                                    intent.putExtra("userId", loginUser.getId());
                                    intent.putExtra("role", loginUser.getRole());
                                    startActivity(intent);
                                    finish();
                                }
                            } else {
                                String errorMsg = "登录失败";
                                try {
                                    if (response.errorBody() != null) {
                                        errorMsg = response.errorBody().string();
                                    }
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                                Toast.makeText(LoginActivity.this,
                                        errorMsg, Toast.LENGTH_SHORT).show();
                            }
                        } else {
                            Toast.makeText(LoginActivity.this,
                                    "登录失败: " + apiResponse.getMsg(), Toast.LENGTH_SHORT).show();
                        }
                    }

                    @Override
                    public void onFailure(Call<ApiResponse<User>> call, Throwable t) {
                        Toast.makeText(LoginActivity.this,
                                "网络错误: " + t.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
    }
}
package com.example.dailyreport.ui.auth;

import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import com.example.dailyreport.R;
import com.example.dailyreport.model.User;
import com.example.dailyreport.network.ApiResponse;
import com.example.dailyreport.network.RetrofitClient;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class RegisterActivity extends AppCompatActivity {
    private EditText etId, etName, etPassword, etPhone, etClass;
    private RadioButton rbStudent, rbTeacher;  // 添加这行

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

        initViews();
        Button btnRegister = findViewById(R.id.btnRegister);
        btnRegister.setOnClickListener(v -> register());
    }

    private void initViews() {
        etId = findViewById(R.id.etId);
        etName = findViewById(R.id.etName);
        etPassword = findViewById(R.id.etPassword);
        etPhone = findViewById(R.id.etPhone);
        etClass = findViewById(R.id.etClass);
        rbStudent = findViewById(R.id.rbStudent);  // 添加这行
        rbTeacher = findViewById(R.id.rbTeacher);  // 添加这行
    }

    private void register() {
        // 获取用户输入
        String id = etId.getText().toString();
        String username = etName.getText().toString();
        String password = etPassword.getText().toString();
        String phone = etPhone.getText().toString();
        String sclass = etClass.getText().toString();
        
        // 获取选中的角色
        String role = rbStudent.isChecked() ? "STUDENT" : "TEACHER";
        
        // 验证输入
        if (id.isEmpty() || username.isEmpty() || password.isEmpty() || phone.isEmpty() || sclass.isEmpty()) {
            Toast.makeText(this, "请填写完整信息", Toast.LENGTH_SHORT).show();
            return;
        }
        
        // 创建用户对象
        User user = new User();
        user.setId(id);
        user.setName(username);
        user.setPsw(password);
        user.setPhone(phone);
        user.setSclass(sclass);
        user.setRole(role);
        
        // 发送注册请求
        RetrofitClient.getInstance().getApiService().register(user)
            .enqueue(new Callback<ApiResponse<User>>() {
                @Override
                public void onResponse(Call<ApiResponse<User>> call, 
                                     Response<ApiResponse<User>> response) {
                    if (response.isSuccessful() && response.body() != null) {
                        ApiResponse<User> apiResponse = response.body();
                        if ("200".equals(apiResponse.getCode())) {
                            Toast.makeText(RegisterActivity.this, 
                                "注册成功", Toast.LENGTH_SHORT).show();
                            finish();
                        } else {
                            Toast.makeText(RegisterActivity.this, 
                                apiResponse.getMsg(), Toast.LENGTH_SHORT).show();
                        }
                    }
                }

                @Override
                public void onFailure(Call<ApiResponse<User>> call, Throwable t) {
                    Toast.makeText(RegisterActivity.this, 
                        "网络错误: " + t.getMessage(), Toast.LENGTH_SHORT).show();
                }
            });
    }
}
package com.example.dailyreport.ui.auth;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;

import com.example.dailyreport.R;
import com.example.dailyreport.ui.blog.DailySummaryActivity;
import com.example.dailyreport.ui.dailylog.DailyLogActivity;

import com.example.dailyreport.ui.statistics.StatisticsActivity;
import com.example.dailyreport.ui.weeklyplan.WeeklyPlanActivity;

public class Menu extends AppCompatActivity {
    private Button btnWeeklyGoal;
    private Button btnDailySummary;
    private Button btnDailyLog;
    private Button btnStatistics;
    private Button btnDailySummaryQuery;
    
    // 角色常量
    private static final String ROLE_STUDENT = "STUDENT";
    private static final String ROLE_TEACHER = "TEACHER";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);
        
        // 获取用户ID和角色
        String userId = getIntent().getStringExtra("userId");
        String role = getIntent().getStringExtra("role");
        
        if (userId == null) {
            Toast.makeText(this, "用户ID获取失败", Toast.LENGTH_SHORT).show();
            finish();
            return;
        }
        
        // 初始化按钮
        initButtons();
        
        // 根据角色设置按钮可见性
        setupButtonsByRole(role);
        
        // 设置按钮点击事件
        setupButtonListeners(userId);
    }
    
    private void initButtons() {
        btnWeeklyGoal = findViewById(R.id.btnWeeklyGoal);
        btnDailySummary = findViewById(R.id.btnDailySummary);
        btnDailyLog = findViewById(R.id.btnDailyLog);
        btnStatistics = findViewById(R.id.btnStatistics);
        btnDailySummaryQuery = findViewById(R.id.btnDailySummaryQuery);
    }
    
    private void setupButtonsByRole(String role) {
        if (ROLE_STUDENT.equals(role)) {
            // 学生角色:显示学生可见按钮,隐藏教师可见按钮
            btnWeeklyGoal.setVisibility(View.VISIBLE);
            btnDailySummary.setVisibility(View.VISIBLE);
            btnDailyLog.setVisibility(View.VISIBLE);
            btnStatistics.setVisibility(View.GONE);
            btnDailySummaryQuery.setVisibility(View.GONE);
        } else if (ROLE_TEACHER.equals(role)) {
            // 教师角色:隐藏学生可见按钮,显示教师可见按钮
            btnWeeklyGoal.setVisibility(View.GONE);
            btnDailySummary.setVisibility(View.GONE);
            btnDailyLog.setVisibility(View.GONE);
            btnStatistics.setVisibility(View.VISIBLE);
            btnDailySummaryQuery.setVisibility(View.VISIBLE);
        } else {
            // 默认情况:显示所有按钮
            Toast.makeText(this, "未知角色,显示所有功能", Toast.LENGTH_SHORT).show();
        }
    }
    
    private void setupButtonListeners(String userId) {
        btnWeeklyGoal.setOnClickListener(v -> {
            Intent intent = new Intent(Menu.this, WeeklyPlanActivity.class);
            intent.putExtra("userId", userId);
            startActivity(intent);
        });
        
        btnDailySummary.setOnClickListener(v -> {
            Intent intent = new Intent(Menu.this, DailySummaryActivity.class);
            intent.putExtra("userId", userId);
            startActivity(intent);
        });
        
        btnDailyLog.setOnClickListener(v -> {
            Intent intent = new Intent(Menu.this, DailyLogActivity.class);
            intent.putExtra("userId", userId);
            startActivity(intent);
        });
        
        // 为教师功能按钮添加点击事件
        btnStatistics.setOnClickListener(v -> {
            Intent intent = new Intent(Menu.this, StatisticsActivity.class);
            intent.putExtra("userId", userId);
            startActivity(intent);
        });

        btnDailySummaryQuery.setOnClickListener(v -> {
            Intent intent = new Intent(Menu.this, DailySummaryQueryActivity.class);
            startActivity(intent);
        });
    }
}
posted @ 2025-04-02 18:25  花落水无痕  阅读(8)  评论(0)    收藏  举报