maxiaoshan 3 年之前
父節點
當前提交
4f77b8b6dc
共有 3 個文件被更改,包括 75 次插入29 次删除
  1. 1 0
      src/front/front.go
  2. 62 1
      src/front/group.go
  3. 12 28
      src/front/user.go

+ 1 - 0
src/front/front.go

@@ -75,6 +75,7 @@ type Front struct {
 	groupTaskListByGroup xweb.Mapper `xweb:"/front/group/task/list"`       //用户组任务列表(用户组权限)
 	groupTaskDeliver     xweb.Mapper `xweb:"/front/group/task/deliver"`    //用户组任务交付
 	groupTaskExport      xweb.Mapper `xweb:"/front/group/task/export"`     //用户组任务导出
+	groupUserTaskList    xweb.Mapper `xweb:"/front/group/user/task/list"`  //用户组下用户任务列表
 }
 
 func (f *Front) Index() {

+ 62 - 1
src/front/group.go

@@ -90,6 +90,67 @@ func (f *Front) GroupTaskListByAdmin() {
 	}
 }
 
+// GroupUserTaskList 用户任务分发列表
+func (f *Front) GroupUserTaskList() {
+	defer qu.Catch()
+	//groupId := f.GetString("s_groupid") //用户组id
+	groupTaskId := f.GetString("grouptaskid") //用户组任务id
+	qu.Debug("groupTaskId:", groupTaskId)
+	if f.Method() == "POST" {
+		start, _ := f.GetInteger("start")
+		limit, _ := f.GetInteger("length")
+		draw, _ := f.GetInteger("draw")
+		status := f.GetString("s_status")
+		login := f.GetString("s_login")
+		//searchStr := f.GetString("search[value]")
+		//search := strings.TrimSpace(searchStr)
+		query := map[string]interface{}{
+			"s_stype":    "user",
+			"s_parentid": groupTaskId,
+		}
+		if status != "-1" { //任务状态
+			query["s_status"] = status
+		}
+		if login != "-1" { //用户账号
+			query["s_login"] = login
+		}
+		qu.Debug("Query:", query)
+		count := util.Mgo.Count(util.TASKCOLLNAME, query)
+		list, _ := util.Mgo.Find(util.TASKCOLLNAME, query, map[string]interface{}{"_id": -1}, nil, false, start, limit)
+		for _, l := range *list {
+			if status := qu.ObjToString(l["s_status"]); status == "进行中" { //更新任务进度
+				giveNum := qu.IntAll(l["i_givenum"])
+				sourceinfo := qu.ObjToString(l["s_sourceinfo"])
+				tagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": mongodb.BsonIdToSId(l["_id"]), "b_istag": true})
+				progressFloat := float64(tagNum) / float64(giveNum)
+				value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", progressFloat), 64)
+				progress := fmt.Sprint(value*100) + "%"
+				l["s_progress"] = progress
+				//同步数据库
+				util.Mgo.UpdateById(util.TASKCOLLNAME, l["_id"], map[string]interface{}{"$set": map[string]interface{}{"s_progress": progress}})
+			}
+		}
+		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
+	} else {
+		sourceinfo := f.GetString("s_sourceinfo")
+		qu.Debug(sourceinfo)
+		//统计数据量
+		isGiveNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": true})     //已分发量
+		isNotGiveNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": false}) //待分发量
+		isTagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})           //已标注数量
+		isNotTagNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": false})       //未标注数量
+		allNum := util.Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId})                              //数据总量
+		qu.Debug("数据总量:", allNum, "已分发量:", isGiveNum, "待分发量:", isNotGiveNum, "已标注量:", isTagNum, "未标注量:", isNotTagNum)
+		f.T["grouptaskid"] = groupTaskId
+		f.T["allNum"] = allNum
+		f.T["isGiveNum"] = isGiveNum
+		f.T["isNotGiveNum"] = isNotGiveNum
+		f.T["isTagNum"] = isTagNum
+		f.T["isNotTagNum"] = isNotTagNum
+		_ = f.Render("project/task_detail.html", &f.T)
+	}
+}
+
 // GroupTaskDeliver 用户组任务交付
 func (f *Front) GroupTaskDeliver() {
 	defer qu.Catch()
@@ -167,7 +228,6 @@ func (f *Front) GroupTaskExport() {
 			"$lte": completetime,
 		}
 	}
-	query = map[string]interface{}{}
 	qu.Debug("Query:", query)
 	count := util.Mgo.Count(util.TASKCOLLNAME, query)
 	if count > 0 {
@@ -186,6 +246,7 @@ func (f *Front) GroupTaskExport() {
 			"s_groupname":    1,
 			"s_personname":   1,
 			"i_givenum":      1,
+			"s_status":       1,
 			"i_starttime":    1,
 			"i_completetime": 1,
 		}

+ 12 - 28
src/front/user.go

@@ -477,39 +477,38 @@ func (f *Front) UserTaskSave() {
 	f.ServeJson(map[string]interface{}{"success": success, "msg": msg})
 }
 
-// UserTaskList 用户任务分发列表
+// UserTaskList 用户任务列表
 func (f *Front) UserTaskList() {
 	defer qu.Catch()
-	//groupId := f.GetString("s_groupid") //用户组id
-	groupTaskId := f.GetString("grouptaskid") //用户组任务id
-	qu.Debug("groupTaskId:", groupTaskId)
+	user := f.GetSession("user").(map[string]interface{})
+	s_personid := qu.ObjToString(user["_id"])
 	if f.Method() == "POST" {
 		start, _ := f.GetInteger("start")
 		limit, _ := f.GetInteger("length")
 		draw, _ := f.GetInteger("draw")
 		status := f.GetString("s_status")
-		login := f.GetString("s_login")
-		//searchStr := f.GetString("search[value]")
-		//search := strings.TrimSpace(searchStr)
+		searchStr := f.GetString("search[value]")
+		search := strings.TrimSpace(searchStr)
 		query := map[string]interface{}{
 			"s_stype":    "user",
-			"s_parentid": groupTaskId,
+			"s_personid": s_personid,
 		}
 		if status != "-1" { //任务状态
 			query["s_status"] = status
 		}
-		if login != "-1" { //用户账号
-			query["s_login"] = login
+		if search != "" {
+			query["$or"] = []interface{}{
+				map[string]interface{}{"s_projectname": map[string]interface{}{"$regex": search}},
+			}
 		}
 		qu.Debug("Query:", query)
 		count := Mgo.Count(TASKCOLLNAME, query)
 		list, _ := Mgo.Find(TASKCOLLNAME, query, map[string]interface{}{"_id": -1}, nil, false, start, limit)
 		for _, l := range *list {
 			if status := qu.ObjToString(l["s_status"]); status == "进行中" { //更新任务进度
-				personid := qu.ObjToString(l["s_personid"])
 				giveNum := qu.IntAll(l["i_givenum"])
 				sourceinfo := qu.ObjToString(l["s_sourceinfo"])
-				tagNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_userid": personid, "b_istag": true})
+				tagNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_usertaskid": mgo.BsonIdToSId(l["_id"]), "b_istag": true})
 				progressFloat := float64(tagNum) / float64(giveNum)
 				value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", progressFloat), 64)
 				progress := fmt.Sprint(value*100) + "%"
@@ -520,22 +519,7 @@ func (f *Front) UserTaskList() {
 		}
 		f.ServeJson(map[string]interface{}{"draw": draw, "data": *list, "recordsFiltered": count, "recordsTotal": count})
 	} else {
-		sourceinfo := f.GetString("s_sourceinfo")
-		qu.Debug(sourceinfo)
-		//统计数据量
-		isGiveNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": true})     //已分发量
-		isNotGiveNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_isgiveuser": false}) //待分发量
-		isTagNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": true})           //已标注数量
-		isNotTagNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId, "b_istag": false})       //未标注数量
-		allNum := Mgo.Count(sourceinfo, map[string]interface{}{"s_grouptaskid": groupTaskId})                              //数据总量
-		qu.Debug("数据总量:", allNum, "已分发量:", isGiveNum, "待分发量:", isNotGiveNum, "已标注量:", isTagNum, "未标注量:", isNotTagNum)
-		f.T["grouptaskid"] = groupTaskId
-		f.T["allNum"] = allNum
-		f.T["isGiveNum"] = isGiveNum
-		f.T["isNotGiveNum"] = isNotGiveNum
-		f.T["isTagNum"] = isTagNum
-		f.T["isNotTagNum"] = isNotTagNum
-		_ = f.Render("project/task_detail.html", &f.T)
+		_ = f.Render("project/task_user_list.html", &f.T)
 	}
 }