Allenxuxu / mogutouERP

轻进存销管理系统

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gorm选择与字段冲突

gebilxs opened this issue · comments

2022/10/26 20:26:18 D:/golang/data/src/mogutouERP/mogutouERP/models/purchaseOrder.go:162
[error] invalid field found for struct github.com/Allenxuxu/mogutouERP/models.PurchaseOrderInfo's field Goods, need to define a valid foreign key for relations or it need to implement the Valuer/Scanner interface

func getPurchaseOrder(tx *gorm.DB, orderID string) (*PurchaseOrderInfo, error) {
	var order PurchaseOrderInfo
	err := tx.Table("purchase_orders").Select(
		"id, created_at, operator, amount, remarks, state, freight").Where("id = ?", orderID).First(&order).Error
	if err != nil {
		return nil, err
	}

	err = tx.Raw(`select t2.id, t2.name, t2.colour, t2.size, t2.brand, t1.number from purchase_goods as t1 left outer join
			commodities as t2 on t1.goods_id = t2.id where t1.purchase_order_id = ?`, orderID).Scan(&order.Goods).Error
	if err != nil {
		return nil, err
	}
	return &order, nil
}

order 的数据结构是:

type PurchaseOrderInfo struct {
	PurchaseOrder
	Goods []Commodity
}
type PurchaseOrder struct {
	gorm.Model
	Operator string `gorm:"size:255"`
	Remarks  string
	Amount   float32
	Freight  float32
	State    string `gorm:"default:'未完成'"`
}
// Commodity 商品表
type Commodity struct {
	ID            string `gorm:"primary_key"`
	Name          string
	Colour        string
	Size          string
	Brand         string
	Number        uint
	PresaleNumber uint
	SalesVolume   uint
	Price         float32
	PurchasePrice float32
}

2022/10/26 20:41:47 D:/golang/data/src/mogutouERP/mogutouERP/models/custormerOrder.go:223
[error] invalid field found for struct github.com/Allenxuxu/mogutouERP/models.CustormerOrderInfo's field Goods, need to define a valid foreign key for relations or it need to implement the Valuer/Scanner interface

客户订单和采购订单都有这个bug
要是有时间指点 后期会积极提供PR

2022/10/26 20:41:47 D:/golang/data/src/mogutouERP/mogutouERP/models/custormerOrder.go:223 [error] invalid field found for struct github.com/Allenxuxu/mogutouERP/models.CustormerOrderInfo's field Goods, need to define a valid foreign key for relations or it need to implement the Valuer/Scanner interface

客户订单和采购订单都有这个bug 要是有时间指点 后期会积极提供PR

可以直接先把外键删除了,很早之前写的代码了,外键的逻辑可以由代码来控制。

gebilxs/ERP@b8589ab 提交的一些修改

你可以自己随意改哈,之前 db 那块是想支持 sqlite ,期望是想用go embed 能力把前端直接打包到二进制里,能本地直接运行。