package service import ( "database/sql" "fmt" "cmautobuy/admin/repository" ) // DeleteInnerCodes 物理删除当前页选中的档口入库码记录。 // applying 记录禁止删除;删除不会撤销顺运宝已经写入的远端值。 func DeleteInnerCodes(db *sql.DB, ids []int64) (int, error) { if len(ids) == 0 { return 0, fmt.Errorf("请先选择要删除的记录") } seen := make(map[int64]bool, len(ids)) unique := make([]int64, 0, len(ids)) for _, id := range ids { if id <= 0 || seen[id] { continue } seen[id] = true unique = append(unique, id) } if len(unique) == 0 { return 0, fmt.Errorf("没有有效的档口入库码记录") } if len(unique) > InnerCodeDeleteBatchLimit { return 0, fmt.Errorf("一次最多删除当前页 %d 条记录", InnerCodeDeleteBatchLimit) } return repository.HardDeleteInnerCodeRecords(db, unique) }