123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- package controller
- import (
- "github.com/gin-gonic/gin"
- "lims-extend/common"
- "lims-extend/model"
- "lims-extend/response"
- )
- func GetStatisticsData(userId string) (int64, int64, int64) {
- 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)
- return totalSendCount, totalRecvCount, totalFinishedCount
- }
- func GetStatisticsInfoForAdmin(c *gin.Context) {
- userId := c.Params.ByName("userId")
- totalSendCount, totalRecvCount, totalFinishedCount := GetStatisticsData(userId)
- response.Success(c, gin.H{
- "totalSendCount": totalSendCount,
- "totalRecvCount": totalRecvCount,
- "totalFinishedCount": totalFinishedCount,
- }, "success")
- }
- func GetStatisticsInfoForSuperAdmin(c *gin.Context) {
- db := common.GetDB()
- var totalSendCount, totalRecvCount, totalFinishedCount int64
- db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id").
- Where("1 = 1 ").Count(&totalSendCount)
- db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id").
- Where("task.state <> 3").Count(&totalRecvCount)
- db.Model(&model.Task{}).Joins("left join plan on task.plan_id = plan.id").
- Where("task.state = 2").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}, "查询成功")
- }
- func GetCompanyOfUser(c *gin.Context) {
- db := common.GetDB()
- userId := c.Params.ByName("userId")
- var company2user model.Company2Users
- if err := db.Model(&model.Company2Users{}).Where("user_id = ? and state = 1", userId).First(&company2user).Error; err != nil {
- response.Fail(c, nil, "用户还未加入公司或申请未通过")
- return
- }
- companyId := company2user.CompanyId
- var company model.Company
- if err := db.Model(&model.Company{}).Where("id = ?", companyId).First(&company).Error; err != nil {
- response.Fail(c, nil, "数据库错误")
- return
- }
- response.Success(c, gin.H{"company": company}, "查询成功")
- }
- func GetUsers(c *gin.Context) {
- db := common.GetDB()
- type result struct {
- ID string `json:"id"`
- Username string `json:"username"`
- Identify int `json:"identify"`
- Tel string `json:"tel"`
- IsLogin string `json:"isLogin" gorm:"column:is_login"`
- Name string `json:"company_name"`
- }
- var res []result
- db.Raw("SELECT user.id,username,identify,tel,company.name,is_login " +
- "FROM `user` LEFT JOIN `company_users` ON `user`.id = `company_users`.user_id " +
- "LEFT JOIN company ON `company_users`.company_id = `company`.id " +
- "ORDER BY user.create_time").Find(&res)
- response.Success(c, gin.H{"users": res}, "查询成功")
- }
|