diff --git a/internal/dao/taskDao.go b/internal/dao/taskDao.go index d0c066c..2e5ff99 100644 --- a/internal/dao/taskDao.go +++ b/internal/dao/taskDao.go @@ -1165,18 +1165,15 @@ func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount if userID == 0 && req.SubNum != "" { // 使用子查询获取每个 customer_id 最新订单记录的 customer_id // 逻辑:找到 customer_num 匹配且 created_at 为该 customer_id 最大值的记录 - // 关联user表过滤软删除的用户 var o struct{ CustomerID string } - subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records bor"). - Select("bor.customer_id, MAX(bor.created_at) AS max_created_time"). - Joins("INNER JOIN `micro-account`.`user` u ON u.id = bor.customer_id AND u.deleted_at = 0"). - Where("bor.deleted_at IS NULL AND bor.status = 2"). - Group("bor.customer_id") + subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records"). + Select("customer_id, MAX(created_at) AS max_created_time"). + Where("deleted_at IS NULL AND status = 2"). + Group("customer_id") _ = app.ModuleClients.BundleDB.Table("bundle_order_records bor1"). Select("bor1.customer_id"). Joins("INNER JOIN (?) bor2 ON bor1.customer_id = bor2.customer_id AND bor1.created_at = bor2.max_created_time", subQuery). - Joins("INNER JOIN `micro-account`.`user` u ON u.id = bor1.customer_id AND u.deleted_at = 0"). Where("bor1.deleted_at IS NULL AND bor1.status = 2"). Where("bor1.customer_num COLLATE utf8mb4_general_ci = ? COLLATE utf8mb4_general_ci", req.SubNum). Limit(1). @@ -1445,18 +1442,15 @@ func BatchAssignTasks(items []*BatchAssignItem) error { CustomerID string `gorm:"column:customer_id"` } // 使用子查询获取每个 customer_num 对应的最新订单的 customer_id - // 关联user表过滤软删除的用户 - subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records bor"). - Select("bor.customer_id, bor.customer_num, MAX(bor.created_at) AS max_created_time"). - Joins("INNER JOIN `micro-account`.`user` u ON u.id = bor.customer_id AND u.deleted_at = 0"). - Where("bor.deleted_at IS NULL AND bor.status = 2"). - Where("bor.customer_num COLLATE utf8mb4_general_ci IN ?", missingSubNums). - Group("bor.customer_id, bor.customer_num") + subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records"). + Select("customer_id, customer_num, MAX(created_at) AS max_created_time"). + Where("deleted_at IS NULL AND status = 2"). + Where("customer_num COLLATE utf8mb4_general_ci IN ?", missingSubNums). + Group("customer_id, customer_num") _ = app.ModuleClients.BundleDB.Table("bundle_order_records bor1"). Select("bor1.customer_num, bor1.customer_id"). Joins("INNER JOIN (?) bor2 ON bor1.customer_id = bor2.customer_id AND bor1.created_at = bor2.max_created_time", subQuery). - Joins("INNER JOIN `micro-account`.`user` u ON u.id = bor1.customer_id AND u.deleted_at = 0"). Where("bor1.deleted_at IS NULL AND bor1.status = 2"). Where("bor1.customer_num COLLATE utf8mb4_general_ci IN ?", missingSubNums). Scan(&orderRows).Error