|
@@ -3,11 +3,12 @@ package db
|
|
|
import (
|
|
|
"context"
|
|
|
"fmt"
|
|
|
- "github.com/issue9/conv"
|
|
|
- "github.com/sirupsen/logrus"
|
|
|
"time"
|
|
|
"youngee_b_api/model/gorm_model"
|
|
|
"youngee_b_api/model/http_model"
|
|
|
+
|
|
|
+ "github.com/issue9/conv"
|
|
|
+ "github.com/sirupsen/logrus"
|
|
|
)
|
|
|
|
|
|
func GetWorkspaceNums(ctx context.Context, enterpriseID int64) (*http_model.WorkspaceNums, error) {
|
|
@@ -45,74 +46,29 @@ func GetWorkspaceNums(ctx context.Context, enterpriseID int64) (*http_model.Work
|
|
|
return &workspaceNums, nil
|
|
|
}
|
|
|
|
|
|
-func GetWorkspacePieNums(ctx context.Context, enterpriseID int64) (*http_model.WorkspacePieNums, error) {
|
|
|
- var workspaceNums http_model.WorkspacePieNums
|
|
|
- var DataPendingNum, LinkPendingNum, ScriptPendingNum int64
|
|
|
- db := GetReadDB(ctx)
|
|
|
- var DataProjectIDs []int64
|
|
|
- db = db.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&DataProjectIDs)
|
|
|
- db1 := GetReadDB(ctx)
|
|
|
- db1.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 14", DataProjectIDs).Count(&DataPendingNum)
|
|
|
-
|
|
|
- db2 := GetReadDB(ctx)
|
|
|
- var scriptProjectIDs []int64
|
|
|
- db2 = db2.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&scriptProjectIDs)
|
|
|
- db3 := GetReadDB(ctx)
|
|
|
- db3.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 8", scriptProjectIDs).Count(&ScriptPendingNum)
|
|
|
-
|
|
|
- db4 := GetReadDB(ctx)
|
|
|
- var linkProjectIDs []int64
|
|
|
- db4 = db4.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&linkProjectIDs)
|
|
|
- db5 := GetReadDB(ctx)
|
|
|
- db5 = db5.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 12", linkProjectIDs).Count(&LinkPendingNum)
|
|
|
-
|
|
|
- workspaceNums.DataPendingNum = DataPendingNum
|
|
|
- workspaceNums.LinkPendingNum = LinkPendingNum
|
|
|
- workspaceNums.ScriptPendingNum = ScriptPendingNum
|
|
|
- return &workspaceNums, nil
|
|
|
-}
|
|
|
-
|
|
|
-func GetWorkspacePieNums2(ctx context.Context, enterpriseID int64) (*http_model.WorkspacePieNums2, error) {
|
|
|
- var workspaceNums http_model.WorkspacePieNums2
|
|
|
- var SketchPendingNum, AccSelecting, ShipmentPendingNum int64
|
|
|
- db := GetReadDB(ctx)
|
|
|
- var sketchProjectIDs []int64
|
|
|
- db = db.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&sketchProjectIDs)
|
|
|
- db5 := GetReadDB(ctx)
|
|
|
- db5.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 10", sketchProjectIDs).Count(&SketchPendingNum)
|
|
|
- fmt.Println("SketchPendingNum:", SketchPendingNum)
|
|
|
-
|
|
|
- var RecruitingProjectIDs []int64
|
|
|
- db1 := GetReadDB(ctx)
|
|
|
- db1 = db1.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 4", enterpriseID).Find(&RecruitingProjectIDs)
|
|
|
- db4 := GetReadDB(ctx)
|
|
|
- db4.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_status = 1", RecruitingProjectIDs).Count(&AccSelecting)
|
|
|
-
|
|
|
- db2 := GetReadDB(ctx)
|
|
|
- var LogisticProjectIDs []int64
|
|
|
- db2 = db2.Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_status = 9", enterpriseID).Find(&LogisticProjectIDs)
|
|
|
- db3 := GetReadDB(ctx)
|
|
|
- db3.Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 4", LogisticProjectIDs).Count(&ShipmentPendingNum)
|
|
|
-
|
|
|
- workspaceNums.SketchPendingNum = SketchPendingNum
|
|
|
- workspaceNums.AccSelecting = AccSelecting
|
|
|
- workspaceNums.ShipmentPendingNum = ShipmentPendingNum
|
|
|
- return &workspaceNums, nil
|
|
|
-}
|
|
|
-
|
|
|
-func GetWorkspaceDDLproject(ctx context.Context, enterpriseID int64) (*http_model.WorkspaceDDLprojectdata, error) {
|
|
|
+func GetWorkspaceDDLproject(ctx context.Context, enterpriseID, pageSize, pageNum int64) (*http_model.WorkspaceDDLprojectdata, error) {
|
|
|
var projectInfos []gorm_model.ProjectInfo
|
|
|
//DDLproject := http_model.WorkspaceDDLprojectdata{}
|
|
|
db := GetReadDB(ctx)
|
|
|
ddl := conv.MustString(time.Now())[0:10] + "%"
|
|
|
- err := db.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ? AND project_status = 4 AND recruit_ddl like ?", enterpriseID, ddl).
|
|
|
- Or("enterprise_id = ? AND project_status = 6 AND auto_fail_at like ?", enterpriseID, ddl).Find(&projectInfos).Error
|
|
|
- if err != nil {
|
|
|
- logrus.WithContext(ctx).Errorf("[Project db] Update ProjectInfo error,err:%+v", err)
|
|
|
+ db = db.Model(gorm_model.ProjectInfo{}).Where("enterprise_id = ?", enterpriseID)
|
|
|
+ db = db.Where("project_status = 4 AND recruit_ddl like ?", ddl).Or("project_status = 6 AND auto_fail_at like ?", ddl).Or("project_status = 3 AND pass_at like ?", ddl).Or("project_status = 10 AND finish_at like ?", ddl)
|
|
|
+ // 查询总数
|
|
|
+ var total int64
|
|
|
+ if err := db.Count(&total).Error; err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceDDLproject db] error query mysql total, err:%+v", err)
|
|
|
return nil, err
|
|
|
}
|
|
|
+ // 查询该页数据
|
|
|
+ limit := pageSize
|
|
|
+ offset := pageSize * pageNum // assert pageNum start with 0
|
|
|
wsDDLprojectData := http_model.WorkspaceDDLprojectdata{}
|
|
|
- wsDDLprojectData.Total = conv.MustString(len(projectInfos))
|
|
|
+ err := db.Order("project_id").Limit(int(limit)).Offset(int(offset)).Find(&projectInfos).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceDDLproject db] Find Pagesize DDLProjectInfo error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+ wsDDLprojectData.Total = conv.MustString(total)
|
|
|
for _, projectInfo := range projectInfos {
|
|
|
DDLProjectPreview := new(http_model.DDLProjectPreview)
|
|
|
DDLProjectPreview.ProjectId = conv.MustString(projectInfo.ProjectID)
|
|
@@ -125,9 +81,109 @@ func GetWorkspaceDDLproject(ctx context.Context, enterpriseID int64) (*http_mode
|
|
|
if projectInfo.AutoFailAt != nil {
|
|
|
DDLProjectPreview.AutoFailAt = conv.MustString(projectInfo.AutoFailAt)[0:19]
|
|
|
}
|
|
|
+ if projectInfo.PassAt != nil {
|
|
|
+ DDLProjectPreview.PassAt = conv.MustString(projectInfo.PassAt)[0:19]
|
|
|
+ }
|
|
|
+ if projectInfo.FinishAt != nil {
|
|
|
+ DDLProjectPreview.FinishAt = conv.MustString(projectInfo.FinishAt)[0:19]
|
|
|
+ }
|
|
|
DDLProjectPreview.RecruitNum = conv.MustString(projectInfo.RecruitNum)
|
|
|
wsDDLprojectData.DDLProjectPreview = append(wsDDLprojectData.DDLProjectPreview, DDLProjectPreview)
|
|
|
}
|
|
|
- fmt.Printf("GGGGGGGGGG %+v \n", len(projectInfos))
|
|
|
+ fmt.Printf("GGGGGGGGGG %+v %+v %+v \n", len(projectInfos), pageSize, pageNum)
|
|
|
return &wsDDLprojectData, nil
|
|
|
}
|
|
|
+
|
|
|
+func GetWorkspaceBarNums(ctx context.Context, enterpriseID, projectType int64) (*http_model.WorkspaceBarNums, error) {
|
|
|
+ var workspaceNums http_model.WorkspaceBarNums
|
|
|
+ var DataPendingNum, LinkPendingNum, SketchPendingNum, ScriptPendingNum, AccSelecting, ShipmentPendingNum, ShippedNum int64
|
|
|
+ fmt.Printf("TypeShow %+v", projectType)
|
|
|
+ //先查企业所属的全部项目
|
|
|
+ var RecruitingProjectIDs []int64
|
|
|
+ db := GetReadDB(ctx)
|
|
|
+ db = db.Debug().Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_type = ? AND project_status = 4", enterpriseID, projectType).Find(&RecruitingProjectIDs)
|
|
|
+
|
|
|
+ db1 := GetReadDB(ctx)
|
|
|
+ db1 = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ?", RecruitingProjectIDs)
|
|
|
+ //在一个db上持续操作,会默认一直AND连接
|
|
|
+
|
|
|
+ //1 招募中-待选
|
|
|
+ err := db1.Where("task_stage = 1").Count(&AccSelecting).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find AccSelecting error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //执行中都是状态9 再次过滤
|
|
|
+ var ExecutingProjectIDs []int64
|
|
|
+
|
|
|
+ db = GetReadDB(ctx)
|
|
|
+ db = db.Debug().Model(gorm_model.ProjectInfo{}).Select("project_id").Where("enterprise_id = ? AND project_type = ? AND project_status = 9", enterpriseID, projectType).Find(&ExecutingProjectIDs)
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ db1 = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ?", ExecutingProjectIDs)
|
|
|
+
|
|
|
+ //2 数据待审
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ err = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 14", ExecutingProjectIDs).Count(&DataPendingNum).Error
|
|
|
+ //err = db1.Where("task_stage = 14").Count(&DataPendingNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find DataPendingNum error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //3 链接待审
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ err = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 12", ExecutingProjectIDs).Count(&LinkPendingNum).Error
|
|
|
+ //err = db1.Where("task_stage = 12").Count(&LinkPendingNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find LinkPendingNum error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //4 初稿待审
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ err = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 10", ExecutingProjectIDs).Count(&SketchPendingNum).Error
|
|
|
+ //err = db1.Where("task_stage = 10").Count(&SketchPendingNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find SketchPendingNum error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //5 脚本待审
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ err = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 8", ExecutingProjectIDs).Count(&ScriptPendingNum).Error
|
|
|
+ //err = db1.Where("task_stage = 8").Count(&ScriptPendingNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find ScriptPendingNum error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //6 待签收
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ err = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 5", ExecutingProjectIDs).Count(&ShippedNum).Error
|
|
|
+ //err = db1.Where("task_stage = 5").Count(&ShippedNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find ShippedNum error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ //7 待发货
|
|
|
+ db1 = GetReadDB(ctx)
|
|
|
+ err = db1.Debug().Model(gorm_model.YoungeeTaskInfo{}).Where("project_id IN ? AND task_stage = 4", ExecutingProjectIDs).Count(&ShipmentPendingNum).Error
|
|
|
+ //err = db1.Where("task_stage = 4").Count(&ShipmentPendingNum).Error
|
|
|
+ if err != nil {
|
|
|
+ logrus.WithContext(ctx).Errorf("[GetWorkspaceBarNums db] Find ShipmentPendingNum error,err:%+v", err)
|
|
|
+ return nil, err
|
|
|
+ }
|
|
|
+
|
|
|
+ workspaceNums.DataPendingNum = DataPendingNum
|
|
|
+ workspaceNums.LinkPendingNum = LinkPendingNum
|
|
|
+ workspaceNums.SketchPendingNum = SketchPendingNum
|
|
|
+ workspaceNums.ScriptPendingNum = ScriptPendingNum
|
|
|
+ workspaceNums.AccSelecting = AccSelecting
|
|
|
+ workspaceNums.ShippedNum = ShippedNum
|
|
|
+ workspaceNums.ShipmentPendingNum = ShipmentPendingNum
|
|
|
+
|
|
|
+ fmt.Printf("work %+v", workspaceNums)
|
|
|
+ return &workspaceNums, nil
|
|
|
+}
|