software.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. package controller
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "lims-extend/common"
  5. "lims-extend/model"
  6. "lims-extend/response"
  7. )
  8. func ShowRelatedSoftwares(c *gin.Context) {
  9. db := common.GetDB()
  10. userId := c.Params.ByName("userId")
  11. var softwares []model.Software
  12. db.Raw("SELECT DISTINCT software.`id`,software.`name`,software.`type`,software.`report_file`, software.`company_id`,"+
  13. "software.`create_time`,software.`update_time`,software.`delete`,software.`creator_id` FROM task,plan,software"+
  14. " WHERE task.plan_id = plan.id and plan.software_id = software.id and "+
  15. "task.executor_id = ? and task.`delete` <> 1 and software.`delete` <> 1 order by software.`create_time` desc", userId).Find(&softwares)
  16. type result struct {
  17. model.Software
  18. CompanyName string `json:"company_name"`
  19. }
  20. res := make([]result, len(softwares))
  21. for i, v := range softwares {
  22. var company model.Company
  23. if v.CompanyId != 0 {
  24. db.Model(model.Company{}).Where("id = ?", v.CompanyId).First(&company)
  25. }
  26. res[i].Software = v
  27. res[i].CompanyName = company.Name
  28. }
  29. response.Success(c, gin.H{"softwares": res}, "success")
  30. }