Browse Source

添加示例api

徐明 5 years ago
parent
commit
f0a238270d

+ 19 - 0
CasinosManager.Api/CasinosManager.Api/Controllers/DashboardController.cs

@@ -0,0 +1,19 @@
+using CasinosManager.Api.Dto;
+using CasinosManager.Api.Service;
+using Microsoft.AspNetCore.Mvc;
+
+namespace CasinosManager.Api.Controllers
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class DashboardController : ControllerBase
+    {
+        // POST api/values
+        [HttpGet]
+        public ActionResult<DashboardDto> Dashboard()
+        {
+            MockDataService service = new MockDataService();
+            return service.GetDashboard();
+        }
+    }
+}

+ 19 - 6
CasinosManager.Api/CasinosManager.Api/Controllers/StudentController.cs

@@ -7,22 +7,35 @@ using System.Linq;
 
 namespace CasinosManager.Api.Controllers
 {
-    [Route("api/[controller]")]
     [ApiController]
     [Authorize]
     public class StudentController : ControllerBase
     {
         // GET api/values
-        [HttpGet]
-        public ActionResult<PageListOutput<Student>> Get(int page, int pageSize)
+        [HttpPost]
+        [Route("api/student/query")]
+        public ActionResult<PageListOutput<Student>> Query(StudentQueryInput queryInput)
         {
             PageListOutput<Student> output = new PageListOutput<Student>();
 
             MockDataService service = new MockDataService();
+            var query = service.GetStudents();
+            if (!string.IsNullOrWhiteSpace(queryInput.Name))
+            {
+                query = query.Where(o=>o.Name.Contains(queryInput.Name)).ToList();
+            }
+            if (queryInput.CreateFrom.HasValue)
+            {
+                query = query.Where(o => o.CreateTime>=queryInput.CreateFrom.Value).ToList();
+            }
+            if (queryInput.CreateTo.HasValue)
+            {
+                query = query.Where(o => o.CreateTime <= queryInput.CreateTo.Value).ToList();
+            }
 
-            int skip = (page - 1) * pageSize;
-            output.Total = service.GetStudents().Count();
-            output.Data = service.GetStudents().Skip(skip).Take(pageSize).ToList();
+            int skip = (queryInput.Page - 1) * queryInput.PageSize;
+            output.Total = query.Count();
+            output.Data = query.Skip(skip).Take(queryInput.PageSize).ToList();
 
             return output;
         }

+ 0 - 8
CasinosManager.Api/CasinosManager.Api/Controllers/ValuesController.cs

@@ -1,7 +1,6 @@
 using CasinosManager.Api.Domain;
 using CasinosManager.Api.Dto;
 using CasinosManager.Api.Service;
-using Microsoft.AspNetCore.Authorization;
 using Microsoft.AspNetCore.Mvc;
 using System.Linq;
 
@@ -17,7 +16,6 @@ namespace CasinosManager.Api.Controllers
             PageListOutput<Student> output = new PageListOutput<Student>();
 
             MockDataService service = new MockDataService();
-
             int skip = (page - 1) * pageSize;
             output.Total = service.GetStudents().Count();
             output.Data = service.GetStudents().Skip(skip).Take(pageSize).ToList();
@@ -25,12 +23,6 @@ namespace CasinosManager.Api.Controllers
             return output;
         }
 
-        // POST api/values
-        [HttpPost]
-        public void Post([FromBody] string value)
-        {
-        }
-
         // PUT api/values/5
         [HttpPut("{id}")]
         public void Put(int id, [FromBody] string value)

+ 2 - 3
CasinosManager.Api/CasinosManager.Api/Domain/Student.cs

@@ -1,7 +1,4 @@
 using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
 
 namespace CasinosManager.Api.Domain
 {
@@ -11,5 +8,7 @@ namespace CasinosManager.Api.Domain
         public string Name { get; set; }
         public int Age { get; set; }
         public string Sex { get; set; }
+        public string CreateTimeStr { get; set; }
+        public DateTime CreateTime { get; set; }
     }
 }

+ 28 - 0
CasinosManager.Api/CasinosManager.Api/Dto/DashboardDto.cs

@@ -0,0 +1,28 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace CasinosManager.Api.Dto
+{
+    public class DashboardDto
+    {
+        public int A { get; set; }
+
+        public int B { get; set; }
+
+        public int C { get; set; }
+
+        public int D { get; set; }
+
+        public List<ConsumeModel> Consumes { get; set; }
+
+    }
+
+    public class ConsumeModel
+    {
+        public string Date { get; set; }
+
+        public decimal Amount { get; set; }
+    }
+}

+ 16 - 0
CasinosManager.Api/CasinosManager.Api/Dto/StudentQueryInput.cs

@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+
+namespace CasinosManager.Api.Dto
+{
+    public class StudentQueryInput
+    {
+        public int Page { get; set; }
+        public int PageSize { get; set; }
+        public string Name { get; set; }
+        public DateTime? CreateFrom { get; set; }
+        public DateTime? CreateTo { get; set; }
+    }
+}

+ 24 - 1
CasinosManager.Api/CasinosManager.Api/Service/MockDataService.cs

@@ -1,4 +1,5 @@
 using CasinosManager.Api.Domain;
+using CasinosManager.Api.Dto;
 using System;
 using System.Collections.Generic;
 
@@ -22,12 +23,34 @@ namespace CasinosManager.Api.Service
                     student.Name = "test_" + student.Id;
                     student.Age = random.Next(15, 24);
                     student.Sex = random.Next(1, 10) % 2 == 0 ? "男" : "女";
-
+                    student.CreateTime = DateTime.Today.AddDays(-i);
+                    student.CreateTimeStr = student.CreateTime.ToString("yyyy-MM-dd");
                     _students.Add(student);
                 }
             }
 
             return _students;
         }
+
+        public DashboardDto GetDashboard()
+        {
+            Random random = new Random();
+            DashboardDto dashboard = new DashboardDto();
+            dashboard.A = random.Next(60,100);
+            dashboard.B = random.Next(100, 200);
+            dashboard.C = random.Next(200, 500);
+            dashboard.D = random.Next(500, 1000);
+            dashboard.Consumes = new List<ConsumeModel>();
+            for (var i = 10; i >= 0; i--)
+            {
+                dashboard.Consumes.Add(new ConsumeModel()
+                {
+                    Date = DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd"),
+                    Amount = random.Next(100, 500)
+                });
+            }
+
+            return dashboard;
+        }
     }
 }