maxiaoshan 3 år sedan
förälder
incheckning
a55ebcd579
3 ändrade filer med 37 tillägg och 16 borttagningar
  1. 26 12
      src/front/project.go
  2. 6 4
      src/front/user.go
  3. 5 0
      src/util/common.go

+ 26 - 12
src/front/project.go

@@ -4,6 +4,7 @@ import (
 	"encoding/json"
 	"fmt"
 	"github.com/tealeg/xlsx"
+	"go.mongodb.org/mongo-driver/bson/primitive"
 	"io/ioutil"
 	"math"
 	"mime/multipart"
@@ -258,7 +259,7 @@ func (f *Front) ProjectTaskSave() {
 	var groupArr []map[string]interface{}
 	var taskArr []map[string]interface{}
 	var groupIdArr []string
-	groupIdMap := map[string]int{}
+	groupIdTask := map[string]util.Task{}
 	success := false
 	msg := ""
 	user := f.GetSession("user").(map[string]interface{})
@@ -280,8 +281,16 @@ func (f *Front) ProjectTaskSave() {
 			groupId := qu.ObjToString(groupInfo["s_groupid"])
 			groupIdArr = append(groupIdArr, groupId)
 			givenum := qu.IntAll(groupInfo["i_givenum"])
-			groupIdMap[groupId] = givenum
-			task := map[string]interface{}{
+			//groupIdMap[groupId] = givenum
+			_id := primitive.NewObjectID()
+			sid := mongodb.BsonIdToSId(_id)
+			gt := util.Task{
+				GroupId: groupId,
+				GiveNum: givenum,
+			}
+			groupIdTask[sid] = gt
+			groupTask := map[string]interface{}{
+				"_id":              _id,                                       //生成任务id
 				"s_projectid":      projectid,                                 //项目标识
 				"s_projectname":    projectname,                               //项目名称
 				"s_status":         "未开始",                                     //任务状态
@@ -297,7 +306,7 @@ func (f *Front) ProjectTaskSave() {
 				"s_sourcetaskinfo": sourcetaskinfo,                            //任务日志表
 				"s_stype":          "group",                                   //任务类型
 			}
-			taskArr = append(taskArr, task)
+			taskArr = append(taskArr, groupTask)
 		}
 	}
 	if len(taskArr) > 0 {
@@ -315,7 +324,7 @@ func (f *Front) ProjectTaskSave() {
 			success = util.Mgo.SaveBulk(util.TASKCOLLNAME, taskArr...)
 			if success {
 				msg = "任务分发成功"
-				UpdateSourceinfo(sourceinfo, sourcetaskinfo, stype, groupIdMap) //用户组分发任务成功后,给数据源打上用户组标识,同时生成任务临时表
+				UpdateSourceinfo(sourceinfo, sourcetaskinfo, stype, groupIdTask) //用户组分发任务成功后,给数据源打上用户组标识,同时生成任务临时表
 			}
 		}
 	}
@@ -341,6 +350,7 @@ func (f *Front) ProjectGetEntnameList() {
 }
 
 // ProjectTaskRepulse 用户组任务打回
+// TODO 关联用户组下所有用户任务的打回
 func (f *Front) ProjectTaskRepulse() {
 	defer qu.Catch()
 	success := false
@@ -397,6 +407,7 @@ func (f *Front) ProjectTaskRepulse() {
 }
 
 // ProjectTaskRetrieve 用户组任务收回
+// TODO 关联用户组下所有用户任务的收回
 func (f *Front) ProjectTaskRetrieve() {
 	defer qu.Catch()
 	success := false
@@ -564,9 +575,11 @@ func DeleleDataTagInfo(sourceinfo string) {
 }
 
 // UpdateSourceinfo 用户组分发任务成功后,给数据源打上用户组标识,同时生成任务临时表
-func UpdateSourceinfo(sourceinfo, sourcetaskinfo, stype string, groupIdMap map[string]int) {
+func UpdateSourceinfo(sourceinfo, sourcetaskinfo, stype string, groupIdInfo map[string]util.Task) {
 	defer qu.Catch()
-	for groupid, num := range groupIdMap {
+	for groupTaskId, tInfo := range groupIdInfo {
+		groupid := tInfo.GroupId
+		num := tInfo.GiveNum
 		sess := util.Mgo.GetMgoConn()
 		defer util.Mgo.DestoryMongoConn(sess)
 		ch := make(chan bool, 5)
@@ -608,11 +621,12 @@ func UpdateSourceinfo(sourceinfo, sourcetaskinfo, stype string, groupIdMap map[s
 					},
 				})
 				save := map[string]interface{}{
-					"s_infoid":     id,
-					"s_infotitle":  title,
-					"s_groupid":    groupid,
-					"i_createtime": time.Now().Unix(),
-					"s_complete":   false,
+					"s_infoid":      id,
+					"s_infotitle":   title,
+					"s_groupid":     groupid,
+					"i_createtime":  time.Now().Unix(),
+					"s_complete":    false,
+					"s_grouptaskid": groupTaskId,
 				}
 				lock.Lock()
 				updateArr = append(updateArr, update)

+ 6 - 4
src/front/user.go

@@ -106,13 +106,15 @@ func (f *Front) Logout() {
 // UerTaskList 用户任务分发列表
 func (f *Front) UerTaskList() {
 	defer qu.Catch()
-	groupId := f.GetString("s_groupid") //用户组id
-	taskId := f.GetString("id")         //用户组任务id
+	//groupId := f.GetString("s_groupid") //用户组id
+	taskId := f.GetString("id") //用户组任务id
 	if f.Method() == "POST" {
 
 	} else {
-		f.T["s_groupid"] = groupId
-		f.T["grouptaskid"] = taskId
+		//f.T["s_groupid"] = groupId
+		f.T["grouptaskid"] = taskId //用户组任务id
+		//统计数据量
+
 		_ = f.Render("/user/task.html", &f.T)
 	}
 }

+ 5 - 0
src/util/common.go

@@ -8,6 +8,11 @@ import (
 	qu "qfw/util"
 )
 
+type Task struct {
+	GroupId string
+	GiveNum int
+}
+
 //oss
 var (
 	ossEndpoint        = "oss-cn-beijing.aliyuncs.com" //正式环境用:oss-cn-beijing-internal.aliyuncs.com 测试:oss-cn-beijing.aliyuncs.com