package controller import ( "github.com/gin-gonic/gin" "lims-extend/common" "lims-extend/model" "lims-extend/response" "net/http" ) func ShowRelatedSoftwares(c *gin.Context) { db := common.GetDB() userId := c.Params.ByName("userId") var softwares []model.Software db.Raw("SELECT DISTINCT software.`id`,software.`name`,software.`type`,software.`report_file`, software.`company_id`,"+ "software.`create_time`,software.`update_time`,software.`delete`,software.`creator_id` FROM task,plan,software"+ " WHERE task.plan_id = plan.id and plan.software_id = software.id and "+ "task.executor_id = ? and task.`delete` <> 1 and software.`delete` <> 1 order by software.`create_time` desc", userId).Find(&softwares) type result struct { model.Software CompanyName string `json:"company_name"` } res := make([]result, len(softwares)) for i, v := range softwares { var company model.Company if v.CompanyId != 0 { db.Model(model.Company{}).Where("id = ?", v.CompanyId).First(&company) } res[i].Software = v res[i].CompanyName = company.Name } response.Success(c, gin.H{"softwares": res}, "success") } func GetReportDownloadLink(c *gin.Context) { httpHead := "http://61.132.52.98:18003/static/case-file/" db := common.GetDB() softwareId := c.Params.ByName("softwareId") var software model.Software db.Model(&model.Software{}).Where("id = ?", softwareId).First(&software) var plan model.Plan db.Model(&model.Plan{}).Where("software_id = ? and plan.delete <> 1", software.ID).First(&plan) var task model.Task db.Model(&model.Task{}).Where("plan_id = ? and task.delete <> 1 and state = 2", plan.Id).First(&task) var file model.File db.Model(&model.File{}).Where("id = ?", task.CaseFile).First(&file) c.Redirect(http.StatusMovedPermanently, httpHead+file.Path) }