package svc import ( "applet/app/comm/db" "applet/app/comm/e" "applet/app/comm/svc" "applet/app/comm/utils" "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/implement" "code.fnuoos.com/go_rely_warehouse/zyos_model.git/src/models" "fmt" "github.com/gin-gonic/gin" ) func UserInfo(c *gin.Context) { user := svc.GetUser(c) operator := "0" role := []string{"comm"} if user.Info.Level == 3 { operator = "1" role = append(role, "operator") } res := map[string]interface{}{ "phone": user.Info.Phone, "is_operator": operator, "role": role, } e.OutSuc(c, res, nil) return } func Index(c *gin.Context) { user := svc.GetUser(c) allTaskCount, _ := svc.MasterDb(c).Where("uid=?", user.Info.Uid).Count(&models.CampTaskOperatorTask{}) sql := `SELECT SUM(ctupor.amount) as amount,SUM(IF(ctupor.uid=%d,ctupo.payment,0)) as own_payment,SUM(IF(ctupor.uid=%d,1,0)) as own_count,SUM(IF(ctupor.uid=%d,ctupor.amount,0)) as own_amount,ctupor.level FROM camp_task_user_promotion_order_relate ctupor LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid WHERE ctupor.oid in(select oid from camp_task_user_promotion_order_relate where uid=%d ) GROUP BY ctupor.level` sql = fmt.Sprintf(sql, user.Info.Uid, user.Info.Uid, user.Info.Uid, user.Info.Uid) nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql) var firstAmount float64 = 0 var secondAmount float64 = 0 var ownAmount float64 = 0 var count = 0 var sum float64 = 0 for _, v := range nativeString { if v["level"] == "0" { firstAmount += utils.StrToFloat64(v["amount"]) } if v["level"] == "1" { secondAmount += utils.StrToFloat64(v["amount"]) } ownAmount += utils.StrToFloat64(v["own_amount"]) sum += utils.StrToFloat64(v["own_payment"]) count += utils.StrToInt(v["own_count"]) } totalList := []map[string]string{ {"name": "佣金总金额", "value": utils.Float64ToStr(sum), "unit": "¥"}, {"name": "推广总订单数", "value": utils.IntToStr(count), "unit": ""}, {"name": "用户所得", "value": utils.Float64ToStr(firstAmount), "unit": "¥"}, {"name": "团长所得", "value": utils.Float64ToStr(secondAmount), "unit": "¥"}, {"name": "我的分成", "value": utils.Float64ToStr(ownAmount), "unit": "¥"}, } myTask := make([]map[string]string, 0) NewCampTaskOperatorTaskDb := implement.NewCampTaskOperatorTaskDb(svc.MasterDb(c)) myTaskList, _, _ := NewCampTaskOperatorTaskDb.FindCampTaskOperatorTaskGroup(user.Info.Uid, 1, 5, "") if myTaskList != nil { for _, v := range myTaskList { tmp := map[string]string{ "id": utils.IntToStr(v.CampTaskOperatorTask.TaskId), "name": v.Name, "icon": svc.ImageFormat(c, v.Logo), } myTask = append(myTask, tmp) } } hotTask := make([]map[string]string, 0) NewCampTaskListDb := implement.NewCampTaskListDb(svc.MasterDb(c)) hotTaskList, _ := NewCampTaskListDb.FindCampTaskList("", "", "1", 1, 5, "success_num desc,id desc") if hotTaskList != nil { for _, v := range *hotTaskList { tmp := map[string]string{ "id": utils.IntToStr(v.Id), "is_check": "0", "name": v.Name, "price": v.Price, "num": utils.IntToStr(v.Num), "icon": svc.ImageFormat(c, v.Logo), "timer": v.StartTime.Format("2006-01-02") + "至" + v.EndTime.Format("2006-01-02"), } counts, _ := svc.MasterDb(c).Where("uid=? and task_id=?", user.Info.Uid, v.Id).Count(&models.CampTaskOperatorTask{}) if counts > 0 { tmp["is_check"] = "1" } hotTask = append(hotTask, tmp) } } res := map[string]interface{}{ "total_list": totalList, "my_task_count": utils.Int64ToStr(allTaskCount), "hot_task": hotTask, "my_task": myTask, } e.OutSuc(c, res, nil) return }