前言
- 💖💖作者:计算机程序员小杨
- 💙💙个人简介:我是一名计算机相关专业的从业者,擅长Java、微信小程序、Python、Golang、安卓Android等多个IT方向。会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。热爱技术,喜欢钻研新工具和框架,也乐于通过代码解决实际问题,大家有技术代码这一块的问题可以问我!
- 💛💛想说的话:感谢大家的关注与支持!
- 💕💕文末获取源码联系 计算机程序员小杨
- 💜💜
- 网站实战项目
- 安卓/小程序实战项目
- 大数据实战项目
- 深度学习实战项目
- 计算机毕业设计选题
- 💜💜
一.开发工具简介
- 后端开发语言:Java+Python(两个版本都支持)
- 后端框架:Spring Boot(Spring+SpringMVC+Mybatis)+Django(两个版本都支持)
- 前端:uni-app+微信小程序+安卓
- 数据库:MySQL
- 系统架构:C/S + B/S
- 开发工具:IDEA(Java的)或者PyCharm(Python的)+微信小程序开发工具
二.系统内容简介
本日常活动记录小程序是一款基于微信小程序开发的个人时间管理和生活记录应用系统。系统采用Java语言作为后端开发基础,运用Spring Boot框架整合Spring、SpringMVC和Mybatis技术栈,确保了系统的稳定性和可维护性。前端基于微信小程序平台开发,为用户提供便捷的移动端操作体验,数据存储采用MySQL数据库管理系统。该系统通过用户管理模块实现个人账户的注册登录和信息维护,活动分类管理和标签管理功能帮助用户建立个性化的活动组织体系,日常活动管理模块支持用户创建、编辑和删除各类日常任务和计划,完成记录管理功能记录用户的活动执行情况和完成度统计,系统管理模块负责整体系统的配置和数据维护工作。整个系统界面简洁直观,操作流程符合用户日常使用习惯,能够有效帮助用户规划和追踪个人日常活动,提升时间管理效率和生活品质。
三.系统功能演示
四.系统界面展示
五.系统源码展示
import org.apache.spark.sql.SparkSession;
import org.apache.spark.sql.Dataset;
import org.apache.spark.sql.Row;
@Service
public class DailyActivityService {
@Autowired
private ActivityMapper activityMapper;
@Autowired
private RecordMapper recordMapper;
@Autowired
private CategoryMapper categoryMapper;
public Result createDailyActivity(ActivityCreateRequest request) {
SparkSession spark = SparkSession.builder().appName("DailyActivityAnalysis").getOrCreate();
try {
Activity activity = new Activity();
activity.setUserId(request.getUserId());
activity.setTitle(request.getTitle());
activity.setDescription(request.getDescription());
activity.setCategoryId(request.getCategoryId());
activity.setTags(request.getTags());
activity.setPlannedStartTime(request.getPlannedStartTime());
activity.setPlannedEndTime(request.getPlannedEndTime());
activity.setPriority(request.getPriority());
activity.setStatus("pending");
activity.setCreateTime(new Date());
activity.setUpdateTime(new Date());
if (request.getTitle() == null || request.getTitle().trim().isEmpty()) {
return Result.error("活动标题不能为空");
}
if (request.getCategoryId() != null) {
Category category = categoryMapper.selectById(request.getCategoryId());
if (category == null) {
return Result.error("所选分类不存在");
}
}
if (request.getPlannedStartTime() != null && request.getPlannedEndTime() != null) {
if (request.getPlannedStartTime().after(request.getPlannedEndTime())) {
return Result.error("开始时间不能晚于结束时间");
}
}
List<Activity> conflictActivities = activityMapper.findConflictActivities(
request.getUserId(), request.getPlannedStartTime(), request.getPlannedEndTime());
if (!conflictActivities.isEmpty()) {
return Result.error("该时间段已有其他活动安排");
}
int result = activityMapper.insert(activity);
if (result > 0) {
Dataset<Row> activityData = spark.read().format("jdbc")
.option("url", "jdbc:mysql://localhost:3306/daily_activity")
.option("dbtable", "activity")
.option("user", "root")
.option("password", "password")
.load();
activityData.createOrReplaceTempView("activities");
Dataset<Row> userActivityCount = spark.sql("SELECT user_id, COUNT(*) as activity_count FROM activities GROUP BY user_id");
userActivityCount.show();
return Result.success("活动创建成功", activity);
} else {
return Result.error("活动创建失败");
}
} catch (Exception e) {
return Result.error("系统异常:" + e.getMessage());
} finally {
spark.stop();
}
}
public Result recordActivityCompletion(CompletionRequest request) {
SparkSession spark = SparkSession.builder().appName("CompletionAnalysis").getOrCreate();
try {
Activity activity = activityMapper.selectById(request.getActivityId());
if (activity == null) {
return Result.error("活动不存在");
}
if (!"pending".equals(activity.getStatus()) && !"in_progress".equals(activity.getStatus())) {
return Result.error("该活动已完成或已取消");
}
CompletionRecord record = new CompletionRecord();
record.setActivityId(request.getActivityId());
record.setUserId(activity.getUserId());
record.setActualStartTime(request.getActualStartTime());
record.setActualEndTime(request.getActualEndTime());
record.setCompletionRate(request.getCompletionRate());
record.setNotes(request.getNotes());
record.setCreateTime(new Date());
if (request.getCompletionRate() < 0 || request.getCompletionRate() > 100) {
return Result.error("完成率必须在0-100之间");
}
if (request.getActualStartTime() != null && request.getActualEndTime() != null) {
if (request.getActualStartTime().after(request.getActualEndTime())) {
return Result.error("实际开始时间不能晚于结束时间");
}
long duration = request.getActualEndTime().getTime() - request.getActualStartTime().getTime();
record.setDuration(duration / 60000); // 转换为分钟
}
int insertResult = recordMapper.insert(record);
if (insertResult > 0) {
String newStatus = request.getCompletionRate() >= 100 ? "completed" : "partially_completed";
activity.setStatus(newStatus);
activity.setUpdateTime(new Date());
activityMapper.updateById(activity);
Dataset<Row> recordData = spark.read().format("jdbc")
.option("url", "jdbc:mysql://localhost:3306/daily_activity")
.option("dbtable", "completion_record")
.option("user", "root")
.option("password", "password")
.load();
recordData.createOrReplaceTempView("records");
Dataset<Row> completionStats = spark.sql("SELECT user_id, AVG(completion_rate) as avg_completion FROM records GROUP BY user_id");
completionStats.show();
return Result.success("完成记录添加成功", record);
} else {
return Result.error("完成记录添加失败");
}
} catch (Exception e) {
return Result.error("系统异常:" + e.getMessage());
} finally {
spark.stop();
}
}
public Result manageCategorySystem(CategoryRequest request) {
SparkSession spark = SparkSession.builder().appName("CategoryAnalysis").getOrCreate();
try {
String operation = request.getOperation();
if ("create".equals(operation)) {
Category category = new Category();
category.setUserId(request.getUserId());
category.setName(request.getName());
category.setDescription(request.getDescription());
category.setColor(request.getColor());
category.setIcon(request.getIcon());
category.setSortOrder(request.getSortOrder());
category.setCreateTime(new Date());
if (request.getName() == null || request.getName().trim().isEmpty()) {
return Result.error("分类名称不能为空");
}
Category existCategory = categoryMapper.findByUserIdAndName(request.getUserId(), request.getName());
if (existCategory != null) {
return Result.error("该分类名称已存在");
}
int result = categoryMapper.insert(category);
if (result > 0) {
return Result.success("分类创建成功", category);
}
} else if ("update".equals(operation)) {
Category category = categoryMapper.selectById(request.getId());
if (category == null) {
return Result.error("分类不存在");
}
if (!category.getUserId().equals(request.getUserId())) {
return Result.error("无权限修改此分类");
}
category.setName(request.getName());
category.setDescription(request.getDescription());
category.setColor(request.getColor());
category.setIcon(request.getIcon());
category.setSortOrder(request.getSortOrder());
category.setUpdateTime(new Date());
int result = categoryMapper.updateById(category);
if (result > 0) {
Dataset<Row> categoryData = spark.read().format("jdbc")
.option("url", "jdbc:mysql://localhost:3306/daily_activity")
.option("dbtable", "category")
.option("user", "root")
.option("password", "password")
.load();
categoryData.createOrReplaceTempView("categories");
Dataset<Row> categoryStats = spark.sql("SELECT user_id, COUNT(*) as category_count FROM categories GROUP BY user_id");
categoryStats.show();
return Result.success("分类更新成功", category);
}
} else if ("delete".equals(operation)) {
Category category = categoryMapper.selectById(request.getId());
if (category == null) {
return Result.error("分类不存在");
}
List<Activity> relatedActivities = activityMapper.findByCategoryId(request.getId());
if (!relatedActivities.isEmpty()) {
return Result.error("该分类下还有活动,无法删除");
}
int result = categoryMapper.deleteById(request.getId());
if (result > 0) {
return Result.success("分类删除成功");
}
}
return Result.error("操作失败");
} catch (Exception e) {
return Result.error("系统异常:" + e.getMessage());
} finally {
spark.stop();
}
}
}
六.系统文档展示
结束
💕💕文末获取源码联系 计算机程序员小杨