You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
TimeManager/src/timemanagerapp/lib/controller/WorkController.dart

106 lines
3.3 KiB

import 'package:timemanagerapp/entity/ScheduleForm.dart';
import '../database/dao/WorkDao.dart';
import '../entity/Work.dart';
import '../setting/Setting.dart';
import '../util/dataUtil.dart';
import 'NetWorkController.dart';
class WorkController {
IdGenerator idGenerator = IdGenerator();
List<Work> WorkList = []; //实时维护的courseList缓存
NetWorkController netWorkController = NetWorkController();
DateTime termstartdate = Setting.startdate; //Setting.getStartDate();
Future<List<Work>> getWorks() async {
//todo http获取
// List<Map<String, dynamic>> WorkMaps = await WorkDao().getWorks();
// List<Work> Works = []; // 用于存储转换后的Work对象列表
//
// for (var WorkMap in WorkMaps) {
// // 使用Work类的构造函数从Map创建Work对象
// Work work = Work(
// id: WorkMap['id'],
// userId: WorkMap['userId'],
// content: WorkMap['content'],
// WorkId: WorkMap['WorkId'],
// name: WorkMap['name'],
// startTime: DateTime.parse(WorkMap['startTime']),
// endTime: DateTime.parse(WorkMap['endTime']),
// );
// Works.add(Work);
// }
// WorkList = Works; // 将Work对象添加到列表中
return WorkList;
}
//addscheduleForm
Future<void> addScheduleForm(ScheduleForm scheduleForm,int teamId) async {
List<Work> WorkListToInsert = [];
int allWorkId = await idGenerator.generateId();
for (int week = scheduleForm.getStartWeek; week <= scheduleForm.getEndWeek; week++) {
for (int day in scheduleForm.selectedDays) {
// 计算具体的日期和时间
final startDate = termstartdate.add(Duration(
days: (7 * (week - 1) + day! - 1),
hours: scheduleForm.getStartTime.hour,
minutes: scheduleForm.getStartTime.minute
));
final endDate = termstartdate.add(Duration(
days: (7 * (week - 1) + day! - 1),
hours: scheduleForm.getEndTime.hour,
minutes: scheduleForm.getEndTime.minute,
));
Work work = Work(
id: await idGenerator.generateId(),
name: scheduleForm.getName,
workId: allWorkId,
userId: Setting.user!.getId!,
status: "未完成",
content: scheduleForm.getContent,
teamId: teamId,
functionaryId: 0, //???
endTime: endDate,
startTime: startDate,
);
WorkListToInsert.add(work);
}
await insertWorkList(WorkListToInsert);
}
}
// Future<int> insertWork(Work Work) async {
// return await WorkDao().insertWork(Work);
// }
//
Future<int> insertWorkList(List<Work> WorkList) async {
int result = 0;
// for (Work Work in WorkList) {
// result += await WorkDao().insertWork(Work);
// }
return result;
}
//
// //delete
// Future<int> deleteWorkByid(int id) async {
// return await WorkDao().deleteWorkByid(id);
// }
//
// Future<int> deleteWorkByWorkid(int Workid) async {
// return await WorkDao().deleteWorkByWorkid(Workid);
// }
//
// Future<int> deleteAllWorks() async {
// return await WorkDao().deleteAllWorks();
// }
//
// //update
// Future<int> updateWork(Work Work) async {
// return await WorkDao().updateWork(Work);
// }
}