feat:兼容Sqlite3,去除Find_in_set函数,将数据拆分读取

This commit is contained in:
henry
2021-11-22 14:06:49 +08:00
parent 8147865ebb
commit 405213c376
10 changed files with 174 additions and 54 deletions

View File

@ -17,6 +17,7 @@ type WorkRepairInfo struct {
EquipmentCode string `json:"equipment_code"`
EquipmentTitle string `json:"equipment_title"`
Priority int `json:"priority"`
Breakdown string `json:"-"`
BreakdownTitle string `json:"breakdown_title"`
Username string `json:"username"`
}
@ -29,7 +30,8 @@ type WorkRepairEvaluateInfo struct {
func (m *WorkRepair) Repairs(page, pageSize int, count *int64, where ...*model.ModelWhere) ([]*WorkRepairInfo, error) {
db := orm.GetDB().Table(m.TableName()+" r").
Select("r.id", "r.order_no", "e.code AS equipment_code", "e.title AS equipment_title", "w.priority",
"(SELECT GROUP_CONCAT(s_b.title) FROM (SELECT id, title FROM sys_breakdown) AS s_b WHERE FIND_IN_SET(s_b.id, w.breakdown)) AS breakdown_title",
"w.breakdown",
//"(SELECT GROUP_CONCAT(s_b.title) FROM (SELECT id, title FROM sys_breakdown) AS s_b WHERE FIND_IN_SET(s_b.id, w.breakdown)) AS breakdown_title",
"r.is_evaluate", "r.evaluate_score", "r.status", "u.name AS username", "r.created_at").
Joins(fmt.Sprintf("LEFT JOIN %s AS w ON r.work_id = w.id", model.NewWorkInstance().TableName())).
Joins(fmt.Sprintf("LEFT JOIN %s AS e ON w.equipment_id = e.id", model.NewManageEquipment().TableName())).
@ -55,11 +57,8 @@ func (m *WorkRepair) Repairs(page, pageSize int, count *int64, where ...*model.M
// Detail 维修工单信息
func (m *WorkRepair) Detail(id uint64) (*WorkRepairInfo, error) {
db := orm.GetDB().Table(m.TableName()+" r").
Select("r.id", "r.order_no", "e.code AS equipment_code", "e.title AS equipment_title", "w.priority",
"(SELECT GROUP_CONCAT(s_b.title) FROM (SELECT id, title FROM sys_breakdown) AS s_b WHERE FIND_IN_SET(s_b.id, w.breakdown)) AS breakdown_title",
Select("r.id", "r.order_no", "r.work_id", "r.status",
"r.created_at").
Joins(fmt.Sprintf("LEFT JOIN %s AS w ON r.work_id = w.id", model.NewWorkInstance().TableName())).
Joins(fmt.Sprintf("LEFT JOIN %s AS e ON w.equipment_id = e.id", model.NewManageEquipment().TableName())).
Where("r.id = ?", id)
out := new(WorkRepairInfo)