|
- package hdl
-
- import (
- "applet/app/comm/db"
- "applet/app/comm/e"
- "applet/app/comm/svc"
- "applet/app/comm/utils"
- md2 "applet/app/operator/md"
- "applet/app/store/md"
- "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"
- "time"
- )
-
- func CenterBase(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"])
- }
- firstLv := "0"
- secondLv := "0"
- thirdLv := "0"
- sql1 := `SELECT COUNT(*) as count,u.level FROM user_relate ur
- LEFT JOIN user u on u.uid=ur.uid
- WHERE ur.parent_uid=%d GROUP BY u.level`
- sql1 = fmt.Sprintf(sql1, user.Info.Uid)
- nativeString1, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- for _, v := range nativeString1 {
- if v["level"] == "0" {
- firstLv = v["count"]
- }
- if v["level"] == "1" {
- secondLv = v["count"]
- }
- if v["level"] == "2" {
- thirdLv = v["count"]
- }
- }
- totalList := []map[string]string{
- {"name": "名下团长", "value": secondLv, "unit": "人", "type": "", "is_light": "0"},
- {"name": "名下普通用户", "value": firstLv, "unit": "人", "type": "", "is_light": "0"},
- {"name": "佣金总金额", "value": utils.Float64ToStr(sum), "unit": "¥", "type": "", "is_light": "1"},
- {"name": "推广总订单数", "value": utils.IntToStr(count), "unit": "", "type": "", "is_light": "0"},
- {"name": "我的分成", "value": utils.Float64ToStr(ownAmount), "unit": "¥", "type": "", "is_light": "1"},
- }
- if user.Info.Level == 3 {
- totalList = []map[string]string{
- {"name": "名下运营商", "value": thirdLv, "unit": "人", "type": "operator_detail", "is_light": "0"},
- {"name": "佣金总金额", "value": utils.Float64ToStr(sum), "unit": "¥", "type": "", "is_light": "1"},
- {"name": "推广总订单数", "value": utils.IntToStr(count), "unit": "", "type": "", "is_light": "0"},
- {"name": "我的分成", "value": utils.Float64ToStr(ownAmount), "unit": "¥", "type": "", "is_light": "1"},
- {"name": "项目数据", "value": "", "unit": "", "type": "project_detail", "is_light": "0"},
- }
- }
- 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)
- }
- }
- res := map[string]interface{}{
- "total_list": totalList,
- "my_task_count": utils.Int64ToStr(allTaskCount),
- "my_task": myTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func CenterList(c *gin.Context) {
- var args md2.OperatorTaskReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user := svc.GetUser(c)
- where := ""
- if args.SettleStateType != "" {
- where += " and ctupo.settle_state=" + args.SettleStateType
- }
- if args.Cid != "" {
- where += " and ctl.first_cid=" + args.Cid
- }
- if args.TaskId != "" {
- where += " and ctupo.task_id=" + args.TaskId
- }
- if args.ApplyType != "" {
- where += " and ctupo.state=" + args.ApplyType
- }
- if args.StartTime != "" {
- where += " and ctupo.create_time>='" + args.StartTime + "'"
- }
- if args.EndTime != "" {
- where += " and ctupo.create_time<>>='" + args.EndTime + "'"
- }
- sqlCount := `select count(*) as count FROM camp_task_user_promotion_order_relate ctupor
- LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid
- LEFT JOIN camp_task_list ctl on ctupo.task_id=ctl.id
- WHERE ctupor.uid=%d %s`
-
- sqlCount = fmt.Sprintf(sqlCount, user.Info.Uid, where)
- nativeStringCount, _ := db.QueryNativeString(svc.MasterDb(c), sqlCount)
- var total = 0
- hotTask := make([]map[string]string, 0)
- for _, v := range nativeStringCount {
- total = utils.StrToInt(v["count"])
- }
- sql := `select ctl.name as task_name,ul.level_name,ctc.name as cate_name,ctupo.payment,ctupor.oid,ctupo.name as user_name,ctupo.phone as user_phone,
- ctupo.state,ctupo.settle_state,ctupo.create_time,ctupor.amount
- FROM camp_task_user_promotion_order_relate ctupor
- LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid
- LEFT JOIN camp_task_list ctl on ctupo.task_id=ctl.id
- LEFT JOIN user_level ul on ctupo.user_lv=ul.id
- LEFT JOIN camp_task_cate ctc on ctl.first_cid=ctc.id
- WHERE ctupor.uid=%d %s order by ctupo.id desc %s`
- sql = fmt.Sprintf(sql, user.Info.Uid, where, "limit "+utils.IntToStr((utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size))+","+args.Size)
- nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- stateType := []string{"审核中", "审核通过", "审核拒绝"}
- settleStateType := []string{"未结算", "结算成功", "结算失败"}
- for _, v := range nativeString {
- tmp := map[string]string{
- "task_name": v["task_name"],
- "level_name": v["level_name"],
- "cate_name": v["cate_name"],
- "oid": v["oid"],
- "user_name": v["user_name"],
- "user_phone": v["user_phone"],
- "state": v["state"],
- "state_str": stateType[utils.StrToInt(v["state"])],
- "settle_state_str": settleStateType[utils.StrToInt(v["settle_state"])],
- "settle_state": v["settle_state"],
- "create_time": v["create_time"],
- "amount": v["amount"],
- }
- hotTask = append(hotTask, tmp)
- }
- task := make([]map[string]string, 0)
- taskList := make([]models.CampTaskList, 0)
- svc.MasterDb(c).Where("is_delete=?", 0).OrderBy("sort desc,id desc").Find(&taskList)
- for _, v := range taskList {
- tmp := map[string]string{
- "name": v.Name, "value": utils.IntToStr(v.Id),
- }
- task = append(task, tmp)
- }
-
- taskCate := make([]map[string]string, 0)
- taskCateList := make([]models.CampTaskCate, 0)
- svc.MasterDb(c).Where(" is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
- for _, v := range taskCateList {
- if v.Pid > 0 {
- continue
- }
- tmp := map[string]string{
- "name": v.Name, "value": utils.IntToStr(v.Id),
- }
- taskCate = append(taskCate, tmp)
- }
- res := map[string]interface{}{
- "cate_list": taskCate,
- "task_cate_list": task,
- "settle_state_type": []map[string]string{
- {"name": "未结算", "value": "0"},
- {"name": "已结算", "value": "1"},
- {"name": "结算拒绝", "value": "2"},
- },
- "state_type": []map[string]string{
- {"name": "未审核", "value": "0"},
- {"name": "审核成功", "value": "1"},
- {"name": "审核拒绝", "value": "2"},
- },
- "total": total, "list": hotTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func CenterOperatorList(c *gin.Context) {
- var args md2.OperatorTaskReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user := svc.GetUser(c)
- total := 0
- hotTask := make([]map[string]string, 0)
- sql := `SELECT
- u.nickname,
- u.uid,
- u.level_expire_at,
- u.level_arrive_at,
- COUNT(CASE WHEN u1.level = 0 THEN 1 END) as firstLv,
- COUNT(CASE WHEN u1.level = 1 THEN 1 END) as secondLv
- FROM user_relate ur
- LEFT JOIN user u ON u.uid = ur.uid
- LEFT JOIN user_relate ur1 ON ur1.parent_uid = ur.uid
- LEFT JOIN user u1 ON u1.uid = ur1.uid
- WHERE ur.parent_uid = %d AND u.level = 2
- GROUP BY u.uid, u.nickname, u.level_expire_at, u.level_arrive_at
- ORDER BY u.uid DESC %s`
- sql = fmt.Sprintf(sql, user.Info.Uid, "limit "+utils.IntToStr((utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size))+","+args.Size)
- nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- for _, v := range nativeString {
- timer := "0天"
- leave := utils.TimeStdParseUnix(v["level_expire_at"]) - time.Now().Unix()
- if leave > 0 {
- timer = utils.Int64ToStr(leave/86400) + "天"
- }
- if v["level_expire_at"] == v["level_arrive_at"] {
- timer = "永久"
- }
- commission, _ := svc.MasterDb(c).Where("uid=?", v["uid"]).Sum(&models.CampTaskUserPromotionOrderRelate{}, "amount")
- orderCount, _ := svc.MasterDb(c).Where("uid=?", v["uid"]).Count(&models.CampTaskUserPromotionOrderRelate{})
- tmp := map[string]string{
- "uid": v["uid"],
- "nickname": v["nickname"],
- "timer": timer,
- "first_lv_count": v["firstLv"],
- "second_lv_count": v["secondLv"],
- "order_count": utils.Int64ToStr(orderCount),
- "commission": utils.Float64ToStr(commission),
- }
- hotTask = append(hotTask, tmp)
- }
- sqlCount := `SELECT COUNT(*) as count,u.level FROM user_relate ur
- LEFT JOIN user u on u.uid=ur.uid
- WHERE ur.parent_uid=%d and u.level=2`
- sqlCount = fmt.Sprintf(sqlCount, user.Info.Uid)
- nativeStringCount, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- for _, v := range nativeStringCount {
- total = utils.StrToInt(v["count"])
- }
- res := map[string]interface{}{
- "total": total, "list": hotTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func CenterOperatorDetailList(c *gin.Context) {
- var args md2.OperatorTaskReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- total := 0
- hotTask := make([]map[string]string, 0)
- sql := `SELECT u.nickname,u.uid,u.phone,u.create_at
- FROM user_relate ur
- LEFT JOIN user u on u.uid=ur.uid
- WHERE ur.parent_uid=%s and u.level=%s order by u.uid desc %s`
- sql = fmt.Sprintf(sql, args.Uid, args.Level, "limit "+utils.IntToStr((utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size))+","+args.Size)
- nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- for _, v := range nativeString {
- tmp := map[string]string{
- "uid": v["uid"],
- "nickname": v["nickname"],
- "phone": v["phone"],
- "create_time": v["create_at"],
- }
- hotTask = append(hotTask, tmp)
- }
- sqlCount := `SELECT COUNT(*) as count,u.level FROM user_relate ur
- LEFT JOIN user u on u.uid=ur.uid
- WHERE ur.parent_uid=%s and u.level=%s`
- sqlCount = fmt.Sprintf(sqlCount, args.Uid, args.Level)
- nativeStringCount, _ := db.QueryNativeString(svc.MasterDb(c), sqlCount)
- for _, v := range nativeStringCount {
- total = utils.StrToInt(v["count"])
- }
- res := map[string]interface{}{
- "total": total, "list": hotTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func CenterOperatorDetailTaskList(c *gin.Context) {
- var args md2.OperatorTaskReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- where := ""
- if args.SettleStateType != "" {
- where += " and ctupo.settle_state=" + args.SettleStateType
- }
- if args.Cid != "" {
- where += " and ctl.first_cid=" + args.Cid
- }
- if args.TaskId != "" {
- where += " and ctupo.task_id=" + args.TaskId
- }
- if args.ApplyType != "" {
- where += " and ctupo.state=" + args.ApplyType
- }
- if args.StartTime != "" {
- where += " and ctupo.create_time>='" + args.StartTime + "'"
- }
- if args.EndTime != "" {
- where += " and ctupo.create_time<>>='" + args.EndTime + "'"
- }
- sqlCount := `select count(*) as count FROM camp_task_user_promotion_order_relate ctupor
- LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid
- LEFT JOIN camp_task_list ctl on ctupo.task_id=ctl.id
- WHERE ctupor.uid=%s %s`
-
- sqlCount = fmt.Sprintf(sqlCount, args.Uid, where)
- nativeStringCount, _ := db.QueryNativeString(svc.MasterDb(c), sqlCount)
- var total = 0
- hotTask := make([]map[string]string, 0)
- for _, v := range nativeStringCount {
- total = utils.StrToInt(v["count"])
- }
- sql := `select ctl.name as task_name,ul.level_name,ctc.name as cate_name,ctupo.payment,ctupor.oid,ctupo.name as user_name,ctupo.phone as user_phone,
- ctupo.state,ctupo.settle_state,ctupo.create_time,ctupor.amount
- FROM camp_task_user_promotion_order_relate ctupor
- LEFT JOIN camp_task_user_promotion_order ctupo on ctupo.oid=ctupor.oid
- LEFT JOIN camp_task_list ctl on ctupo.task_id=ctl.id
- LEFT JOIN user_level ul on ctupo.user_lv=ul.id
- LEFT JOIN camp_task_cate ctc on ctl.first_cid=ctc.id
- WHERE ctupor.uid=%s %s order by ctupo.id desc %s`
- sql = fmt.Sprintf(sql, args.Uid, where, "limit "+utils.IntToStr((utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size))+","+args.Size)
- nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- stateType := []string{"审核中", "审核通过", "审核拒绝"}
- settleStateType := []string{"未结算", "结算成功", "结算失败"}
- for _, v := range nativeString {
- tmp := map[string]string{
- "task_name": v["task_name"],
- "level_name": v["level_name"],
- "cate_name": v["cate_name"],
- "oid": v["oid"],
- "user_name": v["user_name"],
- "user_phone": v["user_phone"],
- "state": v["state"],
- "state_str": stateType[utils.StrToInt(v["state"])],
- "settle_state_str": settleStateType[utils.StrToInt(v["settle_state"])],
- "settle_state": v["settle_state"],
- "create_time": v["create_time"],
- "amount": v["amount"],
- }
- hotTask = append(hotTask, tmp)
- }
- task := make([]map[string]string, 0)
- taskList := make([]models.CampTaskList, 0)
- svc.MasterDb(c).Where("is_delete=?", 0).OrderBy("sort desc,id desc").Find(&taskList)
- for _, v := range taskList {
- tmp := map[string]string{
- "name": v.Name, "value": utils.IntToStr(v.Id),
- }
- task = append(task, tmp)
- }
-
- taskCate := make([]map[string]string, 0)
- taskCateList := make([]models.CampTaskCate, 0)
- svc.MasterDb(c).Where(" is_show=?", 1).OrderBy("sort desc,id desc").Find(&taskCateList)
- for _, v := range taskCateList {
- if v.Pid > 0 {
- continue
- }
- tmp := map[string]string{
- "name": v.Name, "value": utils.IntToStr(v.Id),
- }
- taskCate = append(taskCate, tmp)
- }
- res := map[string]interface{}{
- "cate_list": taskCate,
- "task_cate_list": task,
- "settle_state_type": []map[string]string{
- {"name": "未结算", "value": "0"},
- {"name": "已结算", "value": "1"},
- {"name": "结算拒绝", "value": "2"},
- },
- "state_type": []map[string]string{
- {"name": "未审核", "value": "0"},
- {"name": "审核成功", "value": "1"},
- {"name": "审核拒绝", "value": "2"},
- },
- "total": total, "list": hotTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
- func CenterOperatorProjectList(c *gin.Context) {
- var args md2.OperatorTaskReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- user := svc.GetUser(c)
- where := ""
- if args.ApplyType != "" {
- where += " and ctpul.state=" + args.ApplyType
- }
- if args.StartTime != "" {
- where += " and ctpul.create_time>='" + args.StartTime + "'"
- }
- if args.EndTime != "" {
- where += " and ctpul.create_time<>>='" + args.EndTime + "'"
- }
- sqlCount := `select count(*) as count FROM camp_task_project_user_like ctpul
- WHERE uid in(select uid from user_relate where parent_uid=%d) %s`
-
- sqlCount = fmt.Sprintf(sqlCount, user.Info.Uid, where)
- nativeStringCount, _ := db.QueryNativeString(svc.MasterDb(c), sqlCount)
- var total = 0
- hotTask := make([]map[string]string, 0)
- for _, v := range nativeStringCount {
- total = utils.StrToInt(v["count"])
- }
- sql := `select ctpul.state,ctpl.name as project_name,u.nickname,u.phone,ctpul.create_time,ctpul.remark,ctpul.id
- FROM camp_task_project_user_like ctpul
- LEFT JOIN camp_task_project_list ctpl on ctpul.project_id=ctpl.id
- LEFT JOIN user u on ctpul.uid=u.uid
- WHERE ctpul.uid in(select uid from user_relate where parent_uid=%d) %s order by ctpul.id desc %s`
- sql = fmt.Sprintf(sql, args.Uid, where, "limit "+utils.IntToStr((utils.StrToInt(args.P)-1)*utils.StrToInt(args.Size))+","+args.Size)
- nativeString, _ := db.QueryNativeString(svc.MasterDb(c), sql)
- stateType := []string{"审核中", "审核通过", "审核拒绝"}
- for _, v := range nativeString {
- tmp := map[string]string{
- "project_name": v["project_name"],
- "id": v["id"],
- "user_name": v["nickname"],
- "user_phone": v["phone"],
- "state": v["state"],
- "state_str": stateType[utils.StrToInt(v["state"])],
- "create_time": v["create_time"],
- "remark": v["remark"],
- }
- hotTask = append(hotTask, tmp)
- }
- res := map[string]interface{}{
- "state_type": []map[string]string{
- {"name": "未审核", "value": "0"},
- {"name": "审核成功", "value": "1"},
- {"name": "审核拒绝", "value": "2"},
- },
- "total": total, "list": hotTask,
- }
- e.OutSuc(c, res, nil)
- return
- }
-
- func CenterOperatorProjectDel(c *gin.Context) {
- var args md.DirectorDelReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- svc.MasterDb(c).In("id", args.Ids).Delete(&models.CampTaskProjectUserLike{})
- e.OutSuc(c, "success", nil)
- return
- }
- func CenterOperatorProjectRemark(c *gin.Context) {
- var args md.DirectorDelReq
- if err := c.ShouldBindJSON(&args); err != nil {
- e.OutErr(c, e.ERR_INVALID_ARGS)
- return
- }
- svc.MasterDb(c).In("id", args.Ids).Cols("remark").Update(&models.CampTaskProjectUserLike{Remark: args.Remark})
- e.OutSuc(c, "success", nil)
- return
- }
|