|
@@ -1,6 +1,7 @@
|
|
|
package controller
|
|
|
|
|
|
import (
|
|
|
+ "fmt"
|
|
|
"github.com/gin-gonic/gin"
|
|
|
"lims-extend/common"
|
|
|
"lims-extend/model"
|
|
@@ -45,6 +46,14 @@ func SubmitCompanyCreateRequest(c *gin.Context) {
|
|
|
response.Fail(c, nil, "保存文件出错")
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ var user model.User
|
|
|
+ if err := db.Model(&model.User{}).Where("id = ?", creatorId).First(&user).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "用户不存在")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
request = model.CompanyCreateRequest{
|
|
|
Name: companyName,
|
|
@@ -52,6 +61,7 @@ func SubmitCompanyCreateRequest(c *gin.Context) {
|
|
|
CertificateUrl: baseURL + certificateURL,
|
|
|
State: 0,
|
|
|
CreatorId: creatorId,
|
|
|
+ CreatorName: user.Username,
|
|
|
CreatedAt: model.Time{},
|
|
|
UpdatedAt: model.Time{},
|
|
|
}
|
|
@@ -159,3 +169,127 @@ func AcceptCompanyCreateRequest(c *gin.Context) {
|
|
|
|
|
|
response.Success(c, gin.H{"company": company}, "审批通过!公司创建成功!")
|
|
|
}
|
|
|
+
|
|
|
+func ApplyJoinCompany(c *gin.Context) {
|
|
|
+ db := common.GetDB()
|
|
|
+ db.AutoMigrate(&model.Company2Users{})
|
|
|
+
|
|
|
+ type JoinCompanyRequest struct {
|
|
|
+ UserId string `json:"user_id"`
|
|
|
+ CompanyName string `json:"company_name"`
|
|
|
+ }
|
|
|
+ var request JoinCompanyRequest
|
|
|
+ if err := c.ShouldBind(&request); err != nil {
|
|
|
+ response.Fail(c, nil, "参数不完整")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var company model.Company
|
|
|
+ if err := db.Model(&model.Company{}).
|
|
|
+ Where("name = ?", request.CompanyName).
|
|
|
+ First(&company).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "公司不存在,请检查")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var dupRequest model.Company2Users
|
|
|
+ if err := db.Model(model.Company2Users{}).Where("user_id = ?", request.UserId).
|
|
|
+ First(&dupRequest).Error; err == nil && dupRequest.UserId != "" {
|
|
|
+ response.Fail(c, nil, fmt.Sprintf("该申请已经存在,请勿重复提交申请"))
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ applyRequest := model.Company2Users{
|
|
|
+ CompanyId: company.ID,
|
|
|
+ UserId: request.UserId,
|
|
|
+ State: 0,
|
|
|
+ CreatedAt: model.Time{},
|
|
|
+ UpdatedAt: model.Time{},
|
|
|
+ }
|
|
|
+ if err := db.Model(&model.Company2Users{}).Create(&applyRequest).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "申请创建失败,数据库错误")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ response.Success(c, gin.H{"applyRequest": applyRequest}, "申请成功,请等待审核!")
|
|
|
+}
|
|
|
+
|
|
|
+func AcceptJoinCompany(c *gin.Context) {
|
|
|
+ db := common.GetDB()
|
|
|
+ userId := c.Params.ByName("userId")
|
|
|
+ var request model.Company2Users
|
|
|
+ if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).First(&request).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "该用户不存在或没有提交过申请")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if request.State != 0 {
|
|
|
+ response.Fail(c, nil, "无法重复审批申请")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ request.State = 1
|
|
|
+ request.UpdatedAt = model.Time{}
|
|
|
+ if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).Updates(&request).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "数据库错误,同意申请失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Success(c, nil, "同意申请成功")
|
|
|
+}
|
|
|
+
|
|
|
+func RejectJoinCompany(c *gin.Context) {
|
|
|
+ db := common.GetDB()
|
|
|
+ userId := c.Params.ByName("userId")
|
|
|
+ var request model.Company2Users
|
|
|
+ if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).First(&request).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "该用户不存在或没有提交过申请")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if request.State != 0 {
|
|
|
+ response.Fail(c, nil, "无法重复审批申请")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ request.State = 2
|
|
|
+ request.UpdatedAt = model.Time{}
|
|
|
+ if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).Updates(&request).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "数据库错误,驳回申请失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Success(c, nil, "驳回申请成功")
|
|
|
+}
|
|
|
+
|
|
|
+func GetJoinCompanyRequests(c *gin.Context) {
|
|
|
+ db := common.GetDB()
|
|
|
+ companyId := c.Params.ByName("companyId")
|
|
|
+
|
|
|
+ type result struct {
|
|
|
+ model.Company2Users
|
|
|
+ CreatorName string `json:"creator_name" gorm:"column:username"`
|
|
|
+ }
|
|
|
+
|
|
|
+ var requests []result
|
|
|
+
|
|
|
+ if err := db.Raw("SELECT company_users.id,company_id,username,user_id,"+
|
|
|
+ "state,company_users.create_time,company_users.update_time "+
|
|
|
+ "FROM `company_users`,`user` WHERE user.id = company_users.user_id and company_id = ?", companyId).
|
|
|
+ Find(&requests).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "数据库错误")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Success(c, gin.H{"requestList": requests}, "查询成功")
|
|
|
+}
|
|
|
+
|
|
|
+func DelCompanyMember(c *gin.Context) {
|
|
|
+ db := common.GetDB()
|
|
|
+ userId := c.Params.ByName("userId")
|
|
|
+
|
|
|
+ var request model.Company2Users
|
|
|
+ if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).First(&request).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "公司成员不存在,请勿重复删除")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if err := db.Model(&model.Company2Users{}).Where("user_id = ?", userId).Delete(&request).Error; err != nil {
|
|
|
+ response.Fail(c, nil, "数据库错误,删除失败")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ response.Success(c, nil, "删除成功")
|
|
|
+}
|