| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- package controller
- import (
- "github.com/gin-gonic/gin"
- "lims-extend/common"
- "lims-extend/model"
- "lims-extend/response"
- "lims-extend/util"
- "strconv"
- "time"
- )
- func SubmitCompanyCreateRequest(c *gin.Context) {
- db := common.GetDB()
- db.AutoMigrate(&model.CompanyCreateRequest{})
- // 获取数据
- companyName := c.PostForm("company_name")
- creatorId := c.PostForm("user_id")
- certificateFile, err := c.FormFile("business_license")
- // 数据验证
- if err != nil {
- response.Fail(c, nil, "营业执照上传发生错误")
- return
- }
- logoFile, err := c.FormFile("logo")
- if err != nil {
- response.Fail(c, nil, "公司logo上传发生错误")
- return
- }
- var request model.CompanyCreateRequest
- if err := db.Model(&model.CompanyCreateRequest{}).
- Where("name = ?", companyName).First(&request).Error; err == nil || request.Name != "" {
- response.Fail(c, nil, "该公司已存在,无法重复提交申请")
- return
- }
- timestamp := strconv.FormatInt(time.Now().Unix(), 10)
- // 将获取到的图片文件保存到本地
- logoURL := "files/logo/" + timestamp + "_" + logoFile.Filename
- certificateURL := "files/cert/" + timestamp + "_" + certificateFile.Filename
- err = c.SaveUploadedFile(logoFile, logoURL)
- err = c.SaveUploadedFile(certificateFile, certificateURL)
- baseURL := util.GetHTTPHead()
- if err != nil {
- response.Fail(c, nil, "保存文件出错")
- return
- }
- // 创建公司创建请求实体
- request = model.CompanyCreateRequest{
- Name: companyName,
- LogoUrl: baseURL + logoURL,
- CertificateUrl: baseURL + certificateURL,
- State: 0, //状态0表示未审核
- CreatorId: creatorId,
- CreatedAt: model.Time{},
- UpdatedAt: model.Time{},
- }
- // 提交至数据库
- if err := db.Model(&model.CompanyCreateRequest{}).Create(&request).Error; err != nil {
- response.Fail(c, nil, "公司创建请求出现问题,请检查")
- return
- }
- // 返回创建成功提醒
- response.Success(c, gin.H{"company": request}, "公司创建请求提交成功,请等待审核!")
- }
- func GetCompanyCreateRequest(c *gin.Context) {
- db := common.GetDB()
- creatorId := c.Params.ByName("creator_id")
- var request model.CompanyCreateRequest
- if err := db.Model(&model.CompanyCreateRequest{}).
- Where("creator_id = ?", creatorId).First(&request).Error; err != nil {
- response.Fail(c, nil, "查无此创建公司请求")
- return
- }
- response.Success(c, gin.H{"request": request}, "查询成功")
- }
- func GetCompanyCreateRequestsList(c *gin.Context) {
- db := common.GetDB()
- //creatorId := c.Params.ByName("creator_id")
- var requestList []model.CompanyCreateRequest
- if err := db.Model(&model.CompanyCreateRequest{}).
- Find(&requestList).Error; err != nil {
- response.Fail(c, nil, "查询出错")
- return
- }
- response.Success(c, gin.H{"requestList": requestList}, "查询成功")
- }
- func RejectCompanyCreateRequest(c *gin.Context) {
- db := common.GetDB()
- requestId := c.Params.ByName("request_id")
- var request model.CompanyCreateRequest
- if err := db.Model(&model.CompanyCreateRequest{}).
- Where("id = ?", requestId).
- 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.CompanyCreateRequest{}).Where("id = ?", requestId).
- Updates(&request).Error; err != nil {
- response.Fail(c, nil, "拒绝失败,数据库错误!")
- return
- }
- response.Success(c, gin.H{"requestList": request}, "该申请已被驳回!")
- }
- func AcceptCompanyCreateRequest(c *gin.Context) {
- db := common.GetDB()
- requestId := c.Params.ByName("request_id")
- var request model.CompanyCreateRequest
- if err := db.Model(&model.CompanyCreateRequest{}).
- Where("id = ?", requestId).
- First(&request).Error; err != nil {
- response.Fail(c, nil, "该创建请求不存在,请检查!")
- return
- }
- if request.State != 0 {
- response.Fail(c, nil, "该创建请求状态不为【未审核】,无法再次变更状态!")
- return
- }
- db.AutoMigrate(&model.Company{})
- // 开始创建公司实体
- company := model.Company{
- Name: request.Name,
- LogoUrl: request.LogoUrl,
- CertificateUrl: request.CertificateUrl,
- CreatorId: request.CreatorId,
- CreatedAt: model.Time{},
- UpdatedAt: model.Time{},
- }
- // 创建公司表数据
- if err := db.Model(&model.Company{}).Create(&company).Error; err != nil {
- response.Fail(c, nil, "公司创建失败,数据库错误。")
- return
- }
- // 设置公司创建申请状态为已同意
- request.State = 1
- request.UpdatedAt = model.Time{}
- if err := db.Model(&model.CompanyCreateRequest{}).Where("id = ?", requestId).
- Updates(&request).Error; err != nil {
- response.Fail(c, nil, "同意申请失败,数据库错误!")
- return
- }
- response.Success(c, gin.H{"company": company}, "审批通过!公司创建成功!")
- }
|