public static IEnumerable <SmartOperatorDetail> GetDetail(bool add, int id = 0, int wId = 0, int lId = -1, int pId = -1, string number = "", string name = "", SmartOperatorState state = SmartOperatorState.全部, int condition = 0) { if (condition != 0) { number = $"%{number}%"; name = $"%{name}%"; } if (!add) { return(ServerConfig.ApiDb.Query <SmartOperatorDetail>( "SELECT a.*, b.`Number`, b.`Name`, b.`Account`, IFNULL(c.Process, '') Process, IFNULL(d.`Level`, '') Level FROM `t_operator` a " + "JOIN `accounts` b ON a.UserId = b.Id " + $"LEFT JOIN `t_process` c ON a.ProcessId = c.Id " + $"LEFT JOIN `t_operator_level` d ON a.LevelId = d.Id " + $"WHERE {(id == 0 ? "" : "a.Id = @id AND ")}" + $"{(wId == 0 ? "" : "a.WorkshopId = @wId AND ")}" + $"{(lId == -1 ? "" : "a.LevelId = @lId AND ")}" + $"{(pId == -1 ? "" : "a.ProcessId = @pId AND ")}" + $"{(number.IsNullOrEmpty() ? "" : $"b.Number {(condition == 0 ? "=" : "LIKE")} @number AND ")}" + $"{(name.IsNullOrEmpty() ? "" : $"b.Name {(condition == 0 ? "=" : "LIKE")} @name AND ")}" + $"{(state == 0 ? "" : "a.State = @state AND ")}" + $"a.MarkedDelete = 0 ORDER BY a.ProcessId, a.Priority, a.Id", new { id, wId, lId, pId, number, name, state })); } return(ServerConfig.ApiDb.Query <SmartOperatorDetail>( "SELECT a.* FROM `accounts` a " + "LEFT JOIN (SELECT * FROM `t_operator` WHERE MarkedDelete = 0) b ON a.Id = b.UserId " + $"WHERE a.MarkedDelete = 0 AND ISNULL(b.Id) ORDER BY b.ProcessId, b.Priority, a.Id")); }
public DataResult GetSmartOperator([FromQuery] bool menu, bool add, int qId, int wId, int levelId = -1, int processId = -1, string number = "", string name = "", SmartOperatorState state = SmartOperatorState.全部, int condition = 0) { var result = new DataResult(); result.datas.AddRange(menu ? SmartOperatorHelper.GetMenu(add, qId, wId, levelId, processId, number, name, state, condition) : SmartOperatorHelper.GetDetail(add, qId, wId, levelId, processId, number, name, state, condition)); if (qId != 0 && !result.datas.Any()) { result.errno = Error.SmartOperatorNotExist; return(result); } return(result); }