package controller import ( "github.com/gin-gonic/gin" "lims-extend/common" "lims-extend/model" "lims-extend/response" ) func GetStatisticsInfoForAdmin(c *gin.Context) { userId := c.Params.ByName("userId") db := common.GetDB() //总发包数 var totalSendCount int64 db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id"). Where("plan.creator_id = ?", userId).Count(&totalSendCount) //发包中总接包数 var totalRecvCount int64 db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id"). Where("plan.creator_id = ? and task.state <> 3", userId).Count(&totalRecvCount) //发包中总完成数 var totalFinishedCount int64 db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id"). Where("plan.creator_id = ? and task.state = 2", userId).Count(&totalFinishedCount) response.Success(c, gin.H{ "totalSendCount": totalSendCount, "totalRecvCount": totalRecvCount, "totalFinishedCount": totalFinishedCount, }, "success") } func GetStatisticsInfoForUser(c *gin.Context) { userId := c.Params.ByName("userId") db := common.GetDB() //待领取任务数 var totalWaitingCount int64 db.Model(&model.Task{}). Where("executor_id = ? and state = 3", userId).Count(&totalWaitingCount) //发包中总接包数 var totalRecvCount int64 db.Model(&model.Task{}). Where("executor_id = ? and task.state <> 3", userId).Count(&totalRecvCount) //发包中总完成数 var totalFinishedCount int64 db.Model(&model.Task{}). Where("executor_id= ? and task.state = 2", userId).Count(&totalFinishedCount) response.Success(c, gin.H{ "totalWaitingCount": totalWaitingCount, "totalRecvCount": totalRecvCount, "totalFinishedCount": totalFinishedCount, }, "success") } func IsJoinedCompany(c *gin.Context) { db := common.GetDB() userId := c.Params.ByName("userId") var company2user model.Company2Users if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).First(&company2user).Error; err != nil { // 状态3 是指没有提交过申请 company2user.State = 3 response.Success(c, gin.H{"res": company2user}, "未加入任何公司") return } var company model.Company db.Model(&model.Company{}).Where("id = ?", company2user.CompanyId).First(&company) type result struct { model.Company2Users CompanyName string `json:"company_name"` } res := result{ Company2Users: company2user, CompanyName: company.Name, } response.Success(c, gin.H{"res": res}, "查询成功") }