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

@ -146,6 +146,27 @@ FROM %s AS s WHERE s.is_deleted = %d ORDER BY s.kind ASC, s.stage ASC, s.step A
return out, err
}
// WorkSchedules 工作流程信息
func (m *WorkSchedule) WorkSchedules(kind model.WorkScheduleKind, condition *WorkbenchCondition) ([]uint64, error) {
sql := `SELECT id FROM %s WHERE
(CASE target
WHEN %d THEN
( SELECT GROUP_CONCAT( a.id SEPARATOR ',' ) FROM ( SELECT id FROM work_schedule WHERE target = 1 AND target_value IN (%s)) AS a )
WHEN %d THEN
(SELECT GROUP_CONCAT( a.id SEPARATOR ',' ) FROM ( SELECT id FROM work_schedule WHERE target = 2 AND target_value IN (%s)) AS a )
ELSE "" END) != '' AND kind = %d
AND is_deleted = %d`
out := make([]uint64, 0)
err := orm.GetDB().Raw(fmt.Sprintf(sql, m.TableName(),
model.WorkScheduleTargetForPerson, condition.UID,
model.WorkScheduleTargetForRole, condition.roleInfo(),
kind, model.DeleteStatusForNot)).Pluck("id", &out).Error
return out, err
}
func NewWorkSchedule() *WorkSchedule {
return &WorkSchedule{model.NewWorkSchedule()}
}