很高兴为您提供帮助。下面是一个简单的云提醒管理系统的实现思路和代码示例:

  1. 系统需求

该系统需要提供以下功能:

  • 用户登录和注册
  • 用户可以添加、编辑、删除提醒事项
  • 用户可以查看自己的提醒事项列表
  • 用户可以设置提醒时间和提醒方式(邮件、短信、微信等)
  • 系统需要按照设置的时间发送提醒信息
  1. 技术选型

为了快速开发该系统,我们选择使用以下技术:

  • Spring Boot:用于快速构建应用程序
  • MyBatis Plus:用于简化数据访问层的操作
  • Layui:用于构建前端页面
  1. 数据库设计

我们需要设计两张表来存储用户和提醒事项:

  • 用户表(user)

|字段|类型|描述| |---|---|---| |id|bigint(20)|主键| |username|varchar(50)|用户名| |password|varchar(50)|密码|

  • 提醒事项表(reminder)

|字段|类型|描述| |---|---|---| |id|bigint(20)|主键| |user_id|bigint(20)|用户ID| |content|varchar(255)|提醒内容| |remind_time|datetime|提醒时间| |remind_method|varchar(50)|提醒方式|

  1. 代码实现

(1)创建Spring Boot项目

可以在官网下载Spring Boot的脚手架,也可以使用IDEA等工具创建。

(2)添加依赖

在pom.xml文件中添加以下依赖:

<dependencies>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- MyBatis Plus Starter -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.4.3.1</version>
    </dependency>

    <!-- MySQL Connector -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.25</version>
    </dependency>

    <!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.20</version>
        <scope>provided</scope>
    </dependency>

    <!-- Layui -->
    <dependency>
        <groupId>com.layui</groupId>
        <artifactId>layui</artifactId>
        <version>2.5.7</version>
        <scope>compile</scope>
    </dependency>
</dependencies>

(3)配置数据源

在application.properties文件中添加以下配置:

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/cloud_reminder?characterEncoding=UTF-8&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

(4)创建实体类

我们需要创建两个实体类User和Reminder,分别对应数据库中的user和reminder表。

User.java:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private String username;
    private String password;
}

Reminder.java:

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Reminder implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;
    private Long userId;
    private String content;
    private LocalDateTime remindTime;
    private String remindMethod;
}

(5)创建Mapper接口

我们需要创建两个Mapper接口UserMapper和ReminderMapper,分别对应数据库中的user和reminder表。

UserMapper.java:

public interface UserMapper extends BaseMapper<User> {
}

ReminderMapper.java:

public interface ReminderMapper extends BaseMapper<Reminder> {
    List<Reminder> selectByUserId(Long userId);
}

(6)创建Service接口和实现类

我们需要创建两个Service接口UserService和ReminderService,分别对应用户和提醒事项的操作。然后在创建实现类UserServiceImpl和ReminderServiceImpl。

UserService.java:

public interface UserService {
    User login(String username, String password);

    void register(User user);
}

UserServiceImpl.java:

@Service
public class UserServiceImpl implements UserService {
    @Autowired
    private UserMapper userMapper;

    @Override
    public User login(String username, String password) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("username", username).eq("password", password);
        return userMapper.selectOne(queryWrapper);
    }

    @Override
    public void register(User user) {
        userMapper.insert(user);
    }
}

ReminderService.java:

public interface ReminderService {
    void addReminder(Reminder reminder);

    void updateReminder(Reminder reminder);

    void deleteReminder(Long id);

    List<Reminder> getReminderList(Long userId);
}

ReminderServiceImpl.java:

@Service
public class ReminderServiceImpl implements ReminderService {
    @Autowired
    private ReminderMapper reminderMapper;

    @Override
    public void addReminder(Reminder reminder) {
        reminderMapper.insert(reminder);
    }

    @Override
    public void updateReminder(Reminder reminder) {
        reminderMapper.updateById(reminder);
    }

    @Override
    public void deleteReminder(Long id) {
        reminderMapper.deleteById(id);
    }

    @Override
    public List<Reminder> getReminderList(Long userId) {
        return reminderMapper.selectByUserId(userId);
    }
}

(7)创建控制器

我们需要创建两个控制器UserController和ReminderController,分别对应用户和提醒事项的操作。

UserController.java:

@RestController
@RequestMapping("/user")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping("/login")
    public ResultVO login(@RequestBody User user) {
        User loginUser = userService.login(user.getUsername(), user.getPassword());
        if (loginUser != null) {
            return ResultVO.success(loginUser);
        } else {
            return ResultVO.error("用户名或密码错误!");
        }
    }

    @PostMapping("/register")
    public ResultVO register(@RequestBody User user) {
        userService.register(user);
        return ResultVO.success();
    }
}

ReminderController.java:

@RestController
@RequestMapping("/reminder")
public class ReminderController {
    @Autowired
    private ReminderService reminderService;

    @PostMapping("/add")
    public ResultVO addReminder(@RequestBody Reminder reminder) {
        reminderService.addReminder(reminder);
        return ResultVO.success();
    }

    @PostMapping("/update")
    public ResultVO updateReminder(@RequestBody Reminder reminder) {
        reminderService.updateReminder(reminder);
        return ResultVO.success();
    }

    @PostMapping("/delete")
    public ResultVO deleteReminder(@RequestParam Long id) {
        reminderService.deleteReminder(id);
        return ResultVO.success();
    }

    @GetMapping("/list")
    public ResultVO getReminderList(@RequestParam Long userId) {
        List<Reminder> reminderList = reminderService.getReminderList(userId);
        return ResultVO.success(reminderList);
    }
}

(8)创建前端页面

我们使用Layui框架构建前端页面,具体代码可以参考官方文档。

(9)定时任务

我们需要在系统中添加一个定时任务,每隔一段时间检查数据库中的提醒事项,并按照设置的时间发送提醒信息。

@Component
public class ReminderTask {
    @Autowired
    private ReminderMapper reminderMapper;

    @Scheduled(cron = "0 0/1 * * * ?")
    public void execute() {
        LocalDateTime now = LocalDateTime.now();
        QueryWrapper<Reminder> queryWrapper = new QueryWrapper<>();
        queryWrapper.le("remind_time", now).ne("remind_method", "无");
        List<Reminder> reminderList = reminderMapper.selectList(queryWrapper);
        for (Reminder reminder : reminderList) {
            // 发送提醒信息
        }
    }
}
  1. 总结

通过以上步骤,我们成功地实现了一个简单的云提醒管理系统。当然,这只是一个基础的框架,你可以根据实际需求添加更多的功能和优化。希望本文能够对你有所帮助,谢谢阅读!

用springboot+mybatis plus +layui 写一个云提醒管理系统

原文地址: https://www.cveoy.top/t/topic/CRL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录