diff --git a/FrontEnd/index.html b/FrontEnd/index.html
index 9684091..876f3f9 100644
--- a/FrontEnd/index.html
+++ b/FrontEnd/index.html
@@ -5,7 +5,7 @@
网维排班系统
-
查看今日值班表
+
查看今日值班表
发起换班
发起补班
diff --git a/handler/assignments.go b/handler/assignments.go
index 508ad58..555f2e2 100644
--- a/handler/assignments.go
+++ b/handler/assignments.go
@@ -18,28 +18,21 @@ var data *[7][]*model.Member
var mutex sync.RWMutex //lock for data
var err error
-// /api/getAssignment GET 获取当日值班表,返回html
+// /api/getAssignment GET 获取当日值班表
// 接受参数date,是需要生成值班表的日期
func GetAssignment(i echo.Context) error {
+ //如果没有参数,则生成当前时间
+ arg := carbon.Now()
//如果指定了参数,则生成参数指定的
if date := i.QueryParam("date"); date != "" {
- mutex.Lock()
- data, err = generateTable(carbon.Parse(date))
- mutex.Unlock()
-
- if err != nil {
- i.String(http.StatusInternalServerError, err.Error())
- return echo.ErrInternalServerError
- }
- goto render
+ arg = carbon.Parse(date)
}
- //如果没有参数,则生成当前时间
if (carbon.Now().ToDateString() != signals.Table.GetLastUpdated().ToDateString()) || signals.Table.IsNeedUpdate() == true {
mutex.Lock()
- data, err = generateTable(carbon.Now())
+ data, err = generateTable(arg)
mutex.Unlock()
if err != nil {
@@ -50,9 +43,8 @@ func GetAssignment(i echo.Context) error {
//signals.Table.SetUpdated(carbon.Now())
//测试时注释掉上面的状态更新方便调试
}
-render:
mutex.RLock()
- i.Render(http.StatusOK, "table.html", data)
+ i.JSON(200, data)
mutex.RUnlock()
return nil
@@ -69,7 +61,7 @@ func generateTable(time carbon.Carbon) (*[7][]*model.Member, error) {
//检查传入时间有没有问题
//TODO:这里好像有bug(对日期是否在值班时间内的判断部分),不过不怎么影响使用
if (week < 0) || (week > config.Week) {
- return nil, errors.New("Invalid date,the date must lie in our duty period(startTime~startTime+week*7)in config file")
+ return nil, errors.New("日期错误,日期需要在本学期的值班日期内并且格式正确")
}
// 为了实现更换值班的片区,写的一个闭包切片访问器
@@ -83,13 +75,13 @@ func generateTable(time carbon.Carbon) (*[7][]*model.Member, error) {
return nil, err
}
//添加标题
- table[0] = append(table[0], &model.Member{Name: "凤翔"})
- table[1] = append(table[1], &model.Member{Name: "朝晖"})
- table[2] = append(table[2], &model.Member{Name: "香晖AB"})
- table[3] = append(table[3], &model.Member{Name: "香晖CD"})
- table[4] = append(table[4], &model.Member{Name: "东门"})
- table[5] = append(table[5], &model.Member{Name: "北门"})
- table[6] = append(table[6], &model.Member{Name: "歧头"})
+ table[0] = append(table[0], &model.Member{Name: "凤翔", Access: 7})
+ table[1] = append(table[1], &model.Member{Name: "朝晖", Access: 7})
+ table[2] = append(table[2], &model.Member{Name: "香晖AB", Access: 7})
+ table[3] = append(table[3], &model.Member{Name: "香晖CD", Access: 7})
+ table[4] = append(table[4], &model.Member{Name: "东门", Access: 7})
+ table[5] = append(table[5], &model.Member{Name: "北门", Access: 7})
+ table[6] = append(table[6], &model.Member{Name: "歧头", Access: 7})
//初始化数据
for _, i := range members {
diff --git a/handler/init.go b/handler/init.go
new file mode 100644
index 0000000..a974322
--- /dev/null
+++ b/handler/init.go
@@ -0,0 +1,37 @@
+package handler
+
+//
+// import (
+// "github.com/gocarina/gocsv"
+// "os"
+// "zsxyww.com/scheduler/config"
+// //"zsxyww.com/scheduler/database"
+// "zsxyww.com/scheduler/model"
+// )
+//
+// func init() {
+// allMember, err := loadMembers()
+// if err != nil {
+// panic(err)
+// }
+// _ = allMember
+// }
+//
+// func loadMembers() ([]model.Member, error) {
+// data, err := os.OpenFile(config.File, os.O_RDWR|os.O_CREATE, os.ModePerm)
+// if err != nil {
+// return nil, err
+// }
+// defer data.Close()
+//
+// var m []model.Member
+//
+// err = gocsv.UnmarshalFile(data, m)
+// if err != nil {
+// return nil, err
+// }
+// //for index, member := range *m {
+// // fmt.Printf("%v:%v\n", index, member) // for debug concerns
+// //}
+// return m, nil
+// }
diff --git a/handler/unit/tweaks.go b/handler/unit/tweaks.go
index 48f498e..ffca8da 100644
--- a/handler/unit/tweaks.go
+++ b/handler/unit/tweaks.go
@@ -1,4 +1,4 @@
-package handler
+package uo
import (
"zsxyww.com/scheduler/model"
@@ -6,25 +6,41 @@ import (
// 增加一项tweak
func (uo *uoPrototype) addTweak(in *model.Tweak) error {
+ _ = uo.c.Create(in)
+ if uo.c.Error != nil {
+ return uo.c.Error
+ }
return nil
}
// 删除一项tweak
func (uo *uoPrototype) deleteTweak(in *model.Tweak) error {
+ if uo.c.Error != nil {
+ return uo.c.Error
+ }
return nil
}
// 查询一些tweak,通过IssueID
func (uo *uoPrototype) getTweakByIssueID(in *model.Tweak) (result []*model.Tweak, err error) {
+ if uo.c.Error != nil {
+ return nil, uo.c.Error
+ }
return nil, nil
}
// 查询一些tweak,通过一个日期
func (uo *uoPrototype) getTweakByTime(in *model.Tweak) (result []*model.Tweak, err error) {
+ if uo.c.Error != nil {
+ return nil, uo.c.Error
+ }
return nil, nil
}
// 查询一些tweak,通过一个工号
func (uo *uoPrototype) getTweakByID(in *model.Tweak) (result []*model.Tweak, err error) {
+ if uo.c.Error != nil {
+ return nil, uo.c.Error
+ }
return nil, nil
}
diff --git a/handler/unit/unit_entry.go b/handler/unit/unit_entry.go
index 889d752..5151a57 100644
--- a/handler/unit/unit_entry.go
+++ b/handler/unit/unit_entry.go
@@ -1,4 +1,4 @@
-package handler
+package uo
import (
"gorm.io/gorm"
@@ -11,6 +11,6 @@ type uoPrototype struct {
}
func init() {
- uo := uoPrototype{c: db.Main}
- _ = uo
+ Uo := &uoPrototype{c: db.Main}
+ _ = Uo
}
diff --git a/model/member.go b/model/member.go
index ccc4402..8f601b8 100644
--- a/model/member.go
+++ b/model/member.go
@@ -5,6 +5,7 @@ type Member struct {
Name string `csv:"姓名"`
Sex bool `csv:"性别"` //不要把女生安排进男生宿舍,male=True
FreeDay int `csv:"有空"` //哪天有空
+ FreeDay2 int `csv:"有空"`
Access int `csv:"权限"` //遵循报修系统的access enum ,用来标注管理层
Arranged bool `csv:"-"` //供分配程序使用的字段
Note int `csv:"-"` //正常=0,换班/补班=1,蹭班=2,供分配程序使用