software.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "lims-extend/common"
  5. "lims-extend/model"
  6. "lims-extend/response"
  7. "net/http"
  8. )
  9. func ShowRelatedSoftwares(c *gin.Context) {
  10. db := common.GetDB()
  11. userId := c.Params.ByName("userId")
  12. var softwares []model.Software
  13. db.Raw("SELECT DISTINCT software.`id`,software.`name`,software.`type`,software.`report_file`, software.`company_id`,"+
  14. "software.`create_time`,software.`update_time`,software.`delete`,software.`creator_id` FROM task,plan,software"+
  15. " WHERE task.plan_id = plan.id and plan.software_id = software.id and "+
  16. "task.executor_id = ? and task.`delete` <> 1 and software.`delete` <> 1 order by software.`create_time` desc", userId).Find(&softwares)
  17. type result struct {
  18. model.Software
  19. CompanyName string `json:"company_name"`
  20. }
  21. res := make([]result, len(softwares))
  22. for i, v := range softwares {
  23. var company model.Company
  24. if v.CompanyId != 0 {
  25. db.Model(model.Company{}).Where("id = ?", v.CompanyId).First(&company)
  26. }
  27. res[i].Software = v
  28. res[i].CompanyName = company.Name
  29. }
  30. response.Success(c, gin.H{"softwares": res}, "success")
  31. }
  32. func GetReportDownloadLink(c *gin.Context) {
  33. httpHead := "http://61.132.52.98:18003/static/case-file/"
  34. db := common.GetDB()
  35. softwareId := c.Params.ByName("softwareId")
  36. var software model.Software
  37. db.Model(&model.Software{}).Where("id = ?", softwareId).First(&software)
  38. var plan model.Plan
  39. db.Model(&model.Plan{}).Where("software_id = ? and plan.delete <> 1", software.ID).First(&plan)
  40. var task model.Task
  41. db.Model(&model.Task{}).Where("plan_id = ? and task.delete <> 1 and state = 2", plan.Id).First(&task)
  42. var file model.File
  43. db.Model(&model.File{}).Where("id = ?", task.CaseFile).First(&file)
  44. c.Redirect(http.StatusMovedPermanently, httpHead+file.Path)
  45. }