|
@@ -7,7 +7,6 @@ import (
|
|
|
"github.com/gorilla/sessions"
|
|
|
"go.mongodb.org/mongo-driver/bson"
|
|
|
"go.mongodb.org/mongo-driver/bson/primitive"
|
|
|
- "math"
|
|
|
mgo "mongodb"
|
|
|
qu "qfw/util"
|
|
|
"strconv"
|
|
@@ -474,7 +473,9 @@ func (f *Front) UserTaskList() {
|
|
|
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})
|
|
|
- progress := fmt.Sprint(math.Ceil(float64(tagNum)/float64(giveNum))*100) + "%"
|
|
|
+ progressFloat := float64(tagNum) / float64(giveNum)
|
|
|
+ value, _ := strconv.ParseFloat(fmt.Sprintf("%.2f", progressFloat), 64)
|
|
|
+ progress := fmt.Sprint(value*100) + "%"
|
|
|
l["s_progress"] = progress
|
|
|
//同步数据库
|
|
|
Mgo.UpdateById(TASKCOLLNAME, l["_id"], map[string]interface{}{"$set": map[string]interface{}{"s_progress": progress}})
|
|
@@ -506,9 +507,10 @@ func (f *Front) UserTaskRetrieve() {
|
|
|
defer qu.Catch()
|
|
|
user := f.GetSession("user").(map[string]interface{})
|
|
|
username := qu.ObjToString(user["s_login"])
|
|
|
- userTaskId := f.GetString("taskid") //用户任务id
|
|
|
- sourceTaskInfo := f.GetString("s_sourcetaskinfo") //临时表
|
|
|
- msg, count, success := RetrieveTaskByUser(sourceTaskInfo, username, userTaskId)
|
|
|
+ userTaskId := f.GetString("taskid") //用户任务id
|
|
|
+ qu.Debug("User Task Id:", userTaskId)
|
|
|
+ sourceInfo := f.GetString("s_sourceinfo") //数据源表
|
|
|
+ msg, count, success := RetrieveTaskByUser(sourceInfo, username, userTaskId)
|
|
|
//userTask, _ := Mgo.FindById(TASKCOLLNAME, userTaskId, nil)
|
|
|
f.ServeJson(map[string]interface{}{"success": success, "count": count, "msg": msg})
|
|
|
}
|
|
@@ -574,28 +576,27 @@ func UpdateSourceInfo(sourceinfo, groupTaskId string, userTaskIdInfo map[string]
|
|
|
}
|
|
|
|
|
|
// RetrieveTaskByUser 用户收回任务
|
|
|
-func RetrieveTaskByUser(sourceTaskInfo, username string, userTaskIds ...string) (allMsg string, allCount int, allSuccess bool) {
|
|
|
+func RetrieveTaskByUser(sourceInfo, username string, userTaskIds ...string) (allMsg string, allCount int, allSuccess bool) {
|
|
|
defer qu.Catch()
|
|
|
allSuccess = true
|
|
|
for _, taskId := range userTaskIds {
|
|
|
query := map[string]interface{}{
|
|
|
"s_usertaskid": taskId,
|
|
|
- "b_isgiveuser": true,
|
|
|
- "b_iscomplete": false,
|
|
|
+ "b_istag": false,
|
|
|
}
|
|
|
- count := Mgo.Count(sourceTaskInfo, query)
|
|
|
+ count := Mgo.Count(sourceInfo, query)
|
|
|
success := false
|
|
|
qu.Debug("Find Task Id:", taskId, " Retrieve Count:", count)
|
|
|
if count > 0 {
|
|
|
set := map[string]interface{}{
|
|
|
- "b_isgiveuser": false,
|
|
|
"i_updatetime": time.Now().Unix(),
|
|
|
}
|
|
|
unset := map[string]interface{}{
|
|
|
"s_usertaskid": "",
|
|
|
"s_userid": "",
|
|
|
+ "b_isgiveuser": "",
|
|
|
}
|
|
|
- success = Mgo.Update(sourceTaskInfo, query, map[string]interface{}{"$set": set, "$unset": unset}, false, false)
|
|
|
+ success = Mgo.Update(sourceInfo, query, map[string]interface{}{"$set": set, "$unset": unset}, false, false)
|
|
|
qu.Debug("User Task", taskId, "Retrieve Data:", success)
|
|
|
if success {
|
|
|
allCount += count
|