学习进度条

今日所花时间:一小时
今日代码量:100行
博客量:一篇
了解到的知识点: 继续学习androidStudio 完成学习记录APP的开发

controller层代码(User和ProgrammingRecord)

UserController

package com.example.searchdemo.controller;

import com.example.searchdemo.pojo.User;
import com.example.searchdemo.mapper.UserMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@CrossOrigin
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    // 用户注册
    @PostMapping("/register")
    public String register(@RequestBody User user) {
        User existingUser = userMapper.selectUserByStudentId(user.getStudentId());
        if (existingUser != null) {
            // 用户已存在,仅更新其他信息(不更新用户名和密码)
            user.setUsername(existingUser.getUsername());
            user.setPassword(existingUser.getPassword());
            user.setId(existingUser.getId());
            int updatedRows = userMapper.updateUserWithoutUsername(user);
            if (updatedRows > 0) {
                return "用户信息已更新,请重新登录";
            } else {
                return "用户信息更新失败";
            }
        } else {
            // 新用户注册
            int insertedRows = userMapper.insertUser(user);
            if (insertedRows > 0) {
                return "用户注册成功,请重新登录";
            } else {
                return "用户注册失败";
            }
        }
    }

    // 用户登录
    @PostMapping("/login")
    public String login(@RequestBody User user) {
        User existingUser = userMapper.selectUserByStudentIdAndPassword(user.getStudentId(), user.getPassword());
        if (existingUser != null) {
            return "登录成功";
        } else {
            return "用户名或密码错误";
        }
    }
}

ProgrammingRecordController

package com.example.searchdemo.controller;

import com.example.searchdemo.pojo.ProgrammingRecord;
import com.example.searchdemo.mapper.ProgrammingRecordMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/programmingRecord")
public class ProgrammingRecordController {

    @Autowired
    private ProgrammingRecordMapper programmingRecordMapper;

    // 每日编程记录
    @PostMapping("/addRecord")
    public String addProgrammingRecord(@RequestBody ProgrammingRecord programmingRecord) {
        // 检查 user_id 是否为 null
        if (programmingRecord.getUserId() == null) {
            return "user_id 不能为空";
        }
        int insertedRows = programmingRecordMapper.insertProgrammingRecord(programmingRecord);
        if (insertedRows > 0) {
            return "每日编程记录添加成功";
        } else {
            return "每日编程记录添加失败";
        }
    }
}

mapper层(User和ProgrammingRecord)

UserMapper

package com.example.searchdemo.mapper;

import com.example.searchdemo.pojo.User;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
public interface UserMapper {

    // 插入新用户,包含密码
    @Insert("insert into `user` (`student_id`, `username`, `phone`, `class_name`, `unit`, `password`, `create_time`, `update_time`) " +
            "values (#{studentId}, #{username}, #{phone}, #{className}, #{unit}, #{password}, now(), now())")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int insertUser(User user);

    // 根据学号查询用户
    @Select("select * from `user` where `student_id` = #{studentId}")
    User selectUserByStudentId(String studentId);

    // 更新用户信息(不更新用户名和密码)
    @Update("update `user` set `phone` = #{phone}, `class_name` = #{className}, `unit` = #{unit}, `update_time` = now() where `id` = #{id}")
    int updateUserWithoutUsername(User user);

    // 根据学号和密码查询用户
    @Select("select * from `user` where `student_id` = #{studentId} and `password` = #{password}")
    User selectUserByStudentIdAndPassword(String studentId, String password);
}

ProgrammingRecordMapper

package com.example.searchdemo.mapper;

import com.example.searchdemo.pojo.ProgrammingRecord;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

@Mapper
@Repository
public interface ProgrammingRecordMapper {

    // 插入每日编程记录
    @Insert("insert into `programming_record` (`user_id`, `record_date`, `psp_stage`, `content`, `time_spent`, `create_time`) " +
            "values (#{userId}, #{recordDate}, #{pspStage}, #{content}, #{timeSpent}, now())")
    @Options(useGeneratedKeys = true, keyProperty = "id")
    int insertProgrammingRecord(ProgrammingRecord programmingRecord);
}

今天只实现了部分功能,其他功能还要抽时间继续做。

posted @ 2025-03-18 22:19  haoyinuo  阅读(15)  评论(0)    收藏  举报