pre_payment.go 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package contract
  2. import (
  3. "fmt"
  4. "github.com/gin-gonic/gin"
  5. "github.com/go-playground/validator/v10"
  6. "hongze/fms_api/controller/resp"
  7. "hongze/fms_api/global"
  8. "hongze/fms_api/models/base"
  9. "hongze/fms_api/models/fms"
  10. )
  11. // // RegisterController 合同登记
  12. type PrePaymentController struct{}
  13. // List
  14. // @Title 到款预登记列表
  15. // @Description 到款预登记列表
  16. // @Param Keyword query string false "关键词"
  17. // @Param StartDate query string false "约定开始时间"
  18. // @Param EndDate query string false "约定结束时间"
  19. // @Param SortType query string true "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`"
  20. // @Success 200 {object} fms.ContractRegisterItem
  21. // @router /contract/pre_pay/list [get]
  22. func (rg *PrePaymentController) List(c *gin.Context) {
  23. var req fms.PrePayListReq
  24. if e := c.BindQuery(&req); e != nil {
  25. err, ok := e.(validator.ValidationErrors)
  26. if !ok {
  27. resp.FailData("参数解析失败", "Err:"+e.Error(), c)
  28. return
  29. }
  30. resp.FailData("参数解析失败", err.Translate(global.Trans), c)
  31. return
  32. }
  33. cond := `1 = 1`
  34. pars := make([]interface{}, 0)
  35. // 合同编号/客户姓名/销售/实际使用方
  36. if req.Keyword != "" {
  37. kw := "%" + req.Keyword + "%"
  38. cond += ` AND (company_name LIKE ? OR seller_name LIKE ? )`
  39. pars = append(pars, kw, kw)
  40. }
  41. if req.StartDate != "" && req.EndDate != "" {
  42. st := fmt.Sprint(req.StartDate, " 00:00:00")
  43. ed := fmt.Sprint(req.EndDate, " 23:59:59")
  44. cond += ` AND (create_time BETWEEN ? AND ?)`
  45. pars = append(pars, st, ed)
  46. }
  47. page := new(base.Page)
  48. page.SetPageSize(req.PageSize)
  49. page.SetCurrent(req.Current)
  50. sortTypeMap := map[int]bool{0: false, 1: true, 2: false}
  51. page.AddOrderItem(base.OrderItem{Column: "create_time", Asc: sortTypeMap[req.SortType]})
  52. total, list, e := fms.GetPrePayItemPageList(page, cond, pars)
  53. if e != nil {
  54. resp.FailMsg("获取失败", "获取预登记列表失败, Err: "+e.Error(), c)
  55. return
  56. }
  57. registerIds := make([]int, 0)
  58. for i := range list {
  59. registerIds = append(registerIds, list[i].ContractRegisterId)
  60. }
  61. page.SetTotal(total)
  62. baseData := new(base.BaseData)
  63. baseData.SetPage(page)
  64. baseData.SetList(list)
  65. resp.OkData("获取成功", baseData, c)
  66. }