package controller import ( "github.com/gin-gonic/gin" "lims-extend/common" "lims-extend/model" "lims-extend/response" ) 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") }