Browse Source

完成用户所在公司查询/获取公司用户列表功能

bigcat 2 years ago
parent
commit
3b1c569306
3 changed files with 39 additions and 0 deletions
  1. 20 0
      controller/company.go
  2. 17 0
      controller/user.go
  3. 2 0
      router.go

+ 20 - 0
controller/company.go

@@ -293,3 +293,23 @@ func DelCompanyMember(c *gin.Context) {
 	}
 	response.Success(c, nil, "删除成功")
 }
+
+func GetCompanyMembers(c *gin.Context) {
+	db := common.GetDB()
+	companyId := c.Params.ByName("companyId")
+	type userInfo struct {
+		Id       string `json:"id" gorm:"column:"`
+		Username string `json:"username"`
+		Tel      string `json:"tel"`
+		IsLogin  string `json:"is_Login"`
+		Identify int    `json:"identify"`
+	}
+	var users []userInfo
+
+	if err := db.Raw("SELECT user.id,username,tel,is_login,identify from `user`,`company_users` WHERE "+
+		"company_users.user_id = user.id and state = 1 and company_id = ?", companyId).Find(&users).Error; err != nil {
+		response.Fail(c, nil, "数据库错误,获取公司成员失败")
+		return
+	}
+	response.Success(c, gin.H{"userList": users}, "查询成功")
+}

+ 17 - 0
controller/user.go

@@ -81,3 +81,20 @@ func IsJoinedCompany(c *gin.Context) {
 	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}, "查询成功")
+}

+ 2 - 0
router.go

@@ -34,6 +34,7 @@ func CollectRoute(r *gin.Engine) *gin.Engine {
 		user.GET("infoSender/:userId", controller.GetStatisticsInfoForAdmin)
 		user.GET("infoReceiver/:userId", controller.GetStatisticsInfoForUser)
 		user.GET("isJoinedCompany/:userId", controller.IsJoinedCompany)
+		user.GET("companyInfo/:userId", controller.GetCompanyOfUser)
 	}
 
 	company := r.Group("/api/v-go/company")
@@ -48,6 +49,7 @@ func CollectRoute(r *gin.Engine) *gin.Engine {
 		company.PUT("applyRequest/reject/:userId", controller.RejectJoinCompany)
 		company.GET("applyRequest/lists/:companyId", controller.GetJoinCompanyRequests)
 		company.DELETE("member/delete/:userId", controller.DelCompanyMember)
+		company.GET("members/:companyId", controller.GetCompanyMembers)
 	}
 	file := r.Group("files")
 	{