2022-11-28 16:38:30 +08:00
|
|
|
package models
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"database/sql/driver"
|
|
|
|
|
"encoding/json"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
type Contract struct {
|
|
|
|
|
Id int64 `gorm:"primaryKey"`
|
|
|
|
|
Name string `gorm:"name"`
|
|
|
|
|
Amount float64 `gorm:"amount"`
|
|
|
|
|
BeginTime string `gorm:"begin_time"`
|
|
|
|
|
OverTime string `gorm:"over_time"`
|
|
|
|
|
Remarks string `gorm:"remarks"`
|
|
|
|
|
Cid int64 `gorm:"cid"`
|
|
|
|
|
Productlist *Productlist `gorm:"type:json"`
|
|
|
|
|
Status int `gorm:"status"`
|
|
|
|
|
Creator int64 `gorm:"creator"`
|
|
|
|
|
Created int64 `gorm:"created"`
|
|
|
|
|
Updated int64 `gorm:"updated"`
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ContractCreateParam struct {
|
2022-12-10 22:57:58 +08:00
|
|
|
Name string `json:"name" binding:"required"`
|
|
|
|
|
Amount float64 `json:"amount" binding:"required,gt=0"`
|
|
|
|
|
BeginTime string `json:"beginTime" binding:"-"`
|
|
|
|
|
OverTime string `json:"overTime" binding:"-"`
|
|
|
|
|
Remarks string `json:"remarks" binding:"-"`
|
|
|
|
|
Cid int64 `json:"cid" binding:"required,gt=0"`
|
|
|
|
|
Productlist *Productlist `json:"productlist"`
|
|
|
|
|
Status int `json:"status" binding:"required,oneof=1 2"`
|
|
|
|
|
Creator int64 `json:"creator,omitempty" binding:"-"`
|
2022-11-28 16:38:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ContractUpdateParam struct {
|
2022-12-10 22:57:58 +08:00
|
|
|
Id int64 `json:"id" binding:"required,gt=0"`
|
|
|
|
|
Name string `json:"name" binding:"required"`
|
2022-12-23 20:21:36 +08:00
|
|
|
Amount float64 `json:"amount" binding:"omitempty,gt=0"`
|
2022-12-10 22:57:58 +08:00
|
|
|
BeginTime string `json:"beginTime" binding:"-"`
|
|
|
|
|
OverTime string `json:"overTime" binding:"-"`
|
|
|
|
|
Remarks string `json:"remarks" binding:"-"`
|
|
|
|
|
Cid int64 `json:"cid" binding:"required,gt=0"`
|
|
|
|
|
Productlist *Productlist `json:"productlist"`
|
|
|
|
|
Status int `json:"status" binding:"required,oneof=1 2"`
|
2022-11-28 16:38:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ContractDeleteParam struct {
|
2022-12-10 22:57:58 +08:00
|
|
|
Ids []int64 `json:"ids" binding:"required"`
|
2022-11-28 16:38:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ContractQueryParam struct {
|
2022-12-23 20:21:36 +08:00
|
|
|
Id int64 `form:"id" binding:"omitempty,gt=0"`
|
|
|
|
|
Pids []int64 `form:"pids" json:"pids" binding:"-"`
|
|
|
|
|
Name string `form:"name" binding:"-"`
|
2023-02-03 19:55:45 +08:00
|
|
|
Status int `form:"status" binding:"omitempty,oneof=1 2"`
|
2022-12-23 20:21:36 +08:00
|
|
|
Creator int64 `form:"creator,omitempty" binding:"-"`
|
2022-11-28 16:38:30 +08:00
|
|
|
Page Page
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ContractList struct {
|
2022-12-10 22:57:58 +08:00
|
|
|
Id int64 `json:"id"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Amount float64 `json:"amount"`
|
|
|
|
|
BeginTime string `json:"beginTime"`
|
|
|
|
|
OverTime string `json:"overTime"`
|
|
|
|
|
Remarks string `json:"remarks"`
|
|
|
|
|
Cname string `json:"cname"`
|
|
|
|
|
Status int `json:"status"`
|
|
|
|
|
Created int64 `json:"created"`
|
|
|
|
|
Updated int64 `json:"updated"`
|
2022-11-28 16:38:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type ContractInfo struct {
|
2022-12-10 22:57:58 +08:00
|
|
|
Id int64 `json:"id"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Cid int64 `json:"cid"`
|
|
|
|
|
Amount float64 `json:"amount"`
|
|
|
|
|
BeginTime string `json:"beginTime"`
|
|
|
|
|
OverTime string `json:"overTime"`
|
|
|
|
|
Remarks string `json:"remarks"`
|
|
|
|
|
Productlist *Productlist `json:"productlist"`
|
|
|
|
|
Status int `json:"status"`
|
2022-11-28 16:38:30 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
type Products struct {
|
|
|
|
|
Id int64 `json:"id"`
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Type int `json:"type"`
|
|
|
|
|
Unit string `json:"unit"`
|
|
|
|
|
Price float64 `json:"price"`
|
|
|
|
|
Count int `json:"count"`
|
|
|
|
|
Total float64 `json:"total"`
|
|
|
|
|
}
|
|
|
|
|
|
2022-12-27 19:18:58 +08:00
|
|
|
type ContractExcelRow struct {
|
|
|
|
|
Name string `json:"name"`
|
|
|
|
|
Cname string `json:"cname"`
|
|
|
|
|
Amount float64 `json:"amount"`
|
|
|
|
|
BeginTime string `json:"beginTime"`
|
|
|
|
|
OverTime string `json:"overTime"`
|
|
|
|
|
Remarks string `json:"remarks"`
|
|
|
|
|
Status string `json:"status"`
|
|
|
|
|
Created string `json:"created"`
|
|
|
|
|
Updated string `json:"updated"`
|
|
|
|
|
}
|
|
|
|
|
|
2022-11-28 16:38:30 +08:00
|
|
|
type Productlist []*Products
|
|
|
|
|
|
|
|
|
|
func (p *Productlist) Value() (driver.Value, error) {
|
|
|
|
|
b, err := json.Marshal(p)
|
|
|
|
|
return string(b), err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (p *Productlist) Scan(src any) error {
|
|
|
|
|
return json.Unmarshal(src.([]byte), p)
|
|
|
|
|
}
|