package contract import ( "fmt" "github.com/gin-gonic/gin" "github.com/go-playground/validator/v10" "hongze/fms_api/controller/resp" "hongze/fms_api/global" "hongze/fms_api/models/base" "hongze/fms_api/models/fms" ) // // RegisterController 合同登记 type PrePaymentController struct{} // List // @Title 到款预登记列表 // @Description 到款预登记列表 // @Param Keyword query string false "关键词" // @Param StartDate query string false "约定开始时间" // @Param EndDate query string false "约定结束时间" // @Param SortType query string true "如何排序,是正序还是倒序,枚举值:`asc 正序`,`desc 倒叙`" // @Success 200 {object} fms.ContractRegisterItem // @router /contract/pre_pay/list [get] func (rg *PrePaymentController) List(c *gin.Context) { var req fms.PrePayListReq if e := c.BindQuery(&req); e != nil { err, ok := e.(validator.ValidationErrors) if !ok { resp.FailData("参数解析失败", "Err:"+e.Error(), c) return } resp.FailData("参数解析失败", err.Translate(global.Trans), c) return } cond := `1 = 1` pars := make([]interface{}, 0) // 合同编号/客户姓名/销售/实际使用方 if req.Keyword != "" { kw := "%" + req.Keyword + "%" cond += ` AND (company_name LIKE ? OR seller_name LIKE ? )` pars = append(pars, kw, kw) } if req.StartDate != "" && req.EndDate != "" { st := fmt.Sprint(req.StartDate, " 00:00:00") ed := fmt.Sprint(req.EndDate, " 23:59:59") cond += ` AND (create_time BETWEEN ? AND ?)` pars = append(pars, st, ed) } page := new(base.Page) page.SetPageSize(req.PageSize) page.SetCurrent(req.Current) sortTypeMap := map[int]bool{0: false, 1: true, 2: false} page.AddOrderItem(base.OrderItem{Column: "create_time", Asc: sortTypeMap[req.SortType]}) total, list, e := fms.GetPrePayItemPageList(page, cond, pars) if e != nil { resp.FailMsg("获取失败", "获取预登记列表失败, Err: "+e.Error(), c) return } registerIds := make([]int, 0) for i := range list { registerIds = append(registerIds, list[i].ContractRegisterId) } page.SetTotal(total) baseData := new(base.BaseData) baseData.SetPage(page) baseData.SetList(list) resp.OkData("获取成功", baseData, c) }