分享一个基于.net的学生信息管理系统 C#高校教务管理系统(源码、调试、LW、开题、PPT)

news2024/11/25 13:20:30

💕💕作者:计算机源码社
💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕如需要源码,可以扫取文章下方二维码联系咨询

💕💕Java项目
💕💕微信小程序项目
💕💕Android项目
💕💕Python项目
💕💕PHP项目
💕💕ASP.NET项目
💕💕Node.js项目
💕💕选题推荐

项目实战|基于C#的学生信息管理平台.net高校教务管理系统

文章目录

  • 1、研究背景
  • 2、研究目的和意义
  • 3、系统研究内容
  • 4、系统页面设计
  • 5、参考文献
  • 6、核心代码

1、研究背景

  随着教育信息化的快速发展,传统的纸质档案管理方式已经难以满足现代教育管理的需求。当前,学校面临着学生数量激增、信息复杂多样、数据管理效率低下等挑战。同时,教育部门对学生数据的实时性、准确性和安全性提出了更高的要求。在这种背景下,开发一个全面、高效的学生信息管理系统成为了教育机构的迫切需求。这个系统不仅要解决学生基本信息的录入和管理问题,还需要实现学习成绩、考勤记录、课程选择等多方面数据的集成管理,以及支持各级教育管理部门的数据统计和分析需求。

2、研究目的和意义

  本学生信息管理系统的开发目的是为教育机构提供一个综合性的信息化解决方案。系统旨在实现从学生入学到毕业的全过程信息管理。具体目标包括:建立统一的学生信息数据库,实现信息的集中管理和快速检索;提供灵活的信息录入、修改和查询功能,满足日常管理需求;支持成绩管理、考勤统计、课程选择等教学相关功能;实现数据的自动统计和分析,辅助教育决策;确保数据安全,设置不同级别的访问权限。通过这些功能,系统将显著提高学校的管理效率,为教育工作者提供有力的信息化支持。

  开发学生信息管理系统具有重要的现实意义,它能大幅提高学校的管理效率,减少人为错误,使教师和管理人员能够将更多精力投入到教学和学生服务中。通过数据的实时更新和分析,学校可以更准确地掌握学生的学习情况和发展需求,从而制定更有针对性的教育策略。系统的使用有助于促进教育资源的优化配置,为教育决策提供数据支持。从长远来看,这个系统的应用将推动教育管理向数字化、智能化方向发展,为实现教育现代化和提高教育质量做出贡献。同时,它也为未来的教育大数据分析和个性化教育提供了基础,有利于推动教育改革和创新。

3、系统研究内容

基于您的要求,以下是学生信息管理系统的研究内容,分为三个主要方面:

  1. 系统需求分析与设计
    本研究将深入分析学校管理人员、教师、学生及其家长的实际需求,明确系统的功能范围和性能要求。主要研究内容包括:用户角色定义及权限设计、功能模块划分、数据库结构设计、用户界面设计等。重点研究如何实现学生基本信息管理、成绩管理、考勤管理、课程选择等核心功能,以及如何确保系统的可扩展性和兼容性。同时,将探讨如何设计直观、友好的用户界面,提高系统的易用性。此外,还将研究数据安全和隐私保护措施,确保敏感信息的安全存储和传输。

  2. 关键技术研究与实现
    本部分将聚焦于系统实现过程中的关键技术问题。主要研究内容包括:高效的数据存储和检索技术,以应对大量学生信息的快速处理需求;分布式系统架构设计,确保系统在高并发情况下的稳定性;数据同步和备份机制,保证数据的一致性和可靠性。

  3. 系统测试与优化
    在系统开发完成后,本研究将重点关注系统的测试与优化。主要研究内容包括:制定全面的测试计划,涵盖功能测试、性能测试、安全测试等多个方面;设计有效的测试用例,确保系统各项功能的正确性和稳定性;进行压力测试,评估系统在高负载情况下的表现;进行用户体验测试,收集实际使用者的反馈意见。基于测试结果,研究如何优化系统性能,如改进数据库查询效率、优化系统架构等。同时,将探讨系统的可维护性和可扩展性,为未来的功能扩展和升级做好准备。

4、系统页面设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如需要源码,可以扫取文章下方二维码联系咨询

5、参考文献

[1]宋桂平.基于高校学生管理系统的数据库管理云存储技术研究[J].科技创新与应用,2024,14(19):159-162.DOI:10.19981/j.CN23-1581/G3.2024.19.037.
[2]张慧.数据库设计与学生信息管理系统优化[J].信息与电脑(理论版),2024,36(11):244-246.
[3]张力.基于SpringCloud微服务的高校学生信息管理系统的设计[J].电脑知识与技术,2024,20(16):65-68.DOI:10.14004/j.cnki.ckt.2024.0858.
[4]李腾飞.职业院校学生公寓管理中的数字化和智能化解决方案研究[J].国际公关,2024,(08):179-181.DOI:10.16645/j.cnki.cn11-5281/c.2024.08.019.
[5]王建国,张争,汤来锋,等.基于SSM框架的学生信息管理系统的设计与实现[J].现代信息科技,2024,8(07):30-33.DOI:10.19850/j.cnki.2096-4706.2024.07.007.
[6]穆艳旭.学生选课信息系统的设计与实现[J].信息记录材料,2024,25(04):103-106.DOI:10.16009/j.cnki.cn13-1295/tq.2024.04.027.
[7]冯懿,金逸帆.学生实习信息管理系统的设计与实现[J].中国新通信,2024,26(05):74-76.
[8]王晓虹.智能化与数字化技术在学生管理中的应用[J].集成电路应用,2024,41(01):206-207.DOI:10.19339/j.issn.1674-2583.2024.01.092.
[9]周方.基于Web的学生信息管理系统中的数据库研究与设计[J].信息记录材料,2024,25(01):197-199.DOI:10.16009/j.cnki.cn13-1295/tq.2024.01.036.
[10]袁爱平,陈畅,孙士兵,等.基于SSM框架的高校学生信息管理系统设计与实现[J].工业控制计算机,2023,36(12):127-129.
[11]孙成,闫晓莉.高校大学生竞赛信息管理系统的建设与分析[J].电脑知识与技术,2023,19(35):169-171+174.DOI:10.14004/j.cnki.ckt.2023.1839.
[12]吴香艳.基于C#和.NET的班级学生信息管理系统设计与实现[J].无线互联科技,2023,20(22):47-50.
[13]唐婷,聂丽霞.基于大数据技术的高校学生信息管理系统设计[J].电脑知识与技术,2023,19(30):62-64.DOI:10.14004/j.cnki.ckt.2023.1592.
[14]包刘欢.大数据技术在高职院校学生信息化管理中的作用[C]//中国陶行知研究会.中国陶行知研究会2023年学术年会论文集(八).硅湖职业技术学院;,2023:4. DOI:10.26914/c.cnkihy.2023.116838.
[15]陈天超.List接口的教学案例设计与实现[J].福建电脑,2023,39(10):121-124.DOI:10.16707/j.cnki.fjpc.2023.10.026.
[16]刘佳乐,赵雨,厚露露,等.基于Java Web的学生信息管理系统[J].现代信息科技,2023,7(19):21-24.DOI:10.19850/j.cnki.2096-4706.2023.19.005.
[17]李扬,陈立泰.基于JSP的学生就业信息管理系统的设计[J].信息记录材料,2023,24(10):128-130+133.DOI:10.16009/j.cnki.cn13-1295/tq.2023.10.019.
[18]李浩.高校教育管理的数字化应用探析[J].大连民族大学学报,2023,25(05):463-467.DOI:10.13744/j.cnki.cn21-1431/g4.2023.05.005.
[19]张懿爵,严伟,刘毅,等.计算机应用基础实训教程[M].重庆大学出版社:202309.358.
[20]常见,许颖.基于大数据的高校学生信息化管理系统设计[J].科技创新与生产力,2023,44(08):107-109.

6、核心代码

namespace Xiezn.Core.Controllers
{
    /// <summary>
    /// 学生相关接口
    /// </summary>
    [Route("[controller]/[action]")]
    public class XueshengController : Controller
    {
        private readonly IHostingEnvironment _hostingEnvironment;
        private readonly string _savePath;
        private readonly long _uid;
        private readonly string _role;
        private readonly XueshengService _bll;
        private readonly IEmailService _EmailService;
        private readonly ConfigService _configBLL;

        /// <summary>
        /// 构造函数
        /// </summary>
        public XueshengController(IHostingEnvironment hostingEnvironment, IEmailService emailService)
        {
            try
            {
                _hostingEnvironment = hostingEnvironment;
                _savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;
                if (CacheHelper.TokenModel != null)
                {
                    _uid = CacheHelper.TokenModel.Uid;
                    _role = CacheHelper.TokenModel.Role;
                }

                _EmailService = emailService;
                _configBLL = new ConfigService();
            }
            catch
            {
                _uid = 0;
                _role = "游客";
            }

            _hostingEnvironment = hostingEnvironment;
            _savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;
            _bll = new XueshengService();
        }

        /// <summary>
        /// 用户登录接口
        /// </summary>
        /// <param name="username">用户名</param>
        /// <param name="password">密码</param>
        /// <returns></returns>
        [AcceptVerbs]
        public JsonResult Login(string username, string password)
        {
            try
            {
                var userInfo = _bll.Login(username, password);
                if (userInfo == null)
                {
                    return Json(new { Code = -1, Msg = "账号或密码不正确!" });
                }


                TokenModel tokenModel = new TokenModel()
                {
                    Uid = userInfo.Id,
                    Uname = userInfo.Xuehao,
                    Role = "Client",
                    Project = "Xiezn.Core",
                    TokenType = "Web",
                    UNickname = "xuehao",
                    Tablename = "xuesheng"
                };

                return Json(new { Code = 0, Token = JwtHelper.IssueJWT(tokenModel) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = "账号或密码不正确!" });
            }
        }


        /// <summary>
        /// 用户登出接口
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        [Authorize(Roles = "Client")]
        public JsonResult Logout()
        {
            return Json(new { Code = 0, Msg = "退出成功!" });
        }

        /// <summary>
        /// 注册接口
        /// </summary>
        /// <param name="entity">注册实体对象</param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Register([FromBody] XueshengDbModel entity)
        {
            try
            {
            	entity.Id = DateTime.Now.Ticks / 100000;
                if (_bll.BaseInsert(entity) > 0)
                {
                    return Json(new { Code = 0, Msg = "注册成功!" });
                }

                return Json(new { Code = -1, Msg = "注册失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = "请检查用户名是否重复!", Error = ex.Message });
            }
        }

        /// <summary>
        /// 获取session的接口
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        //[Authorize(Roles = "Admin,Client")]
        public JsonResult Session()
        {
            try
            {
                TokenModel tm = CacheHelper.TokenModel;
                var Data = tm == null ? "" : _bll.BaseGetById(tm.Uid) ?? new object();

                return Json(new { Code = 0, Data = Data });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 忘记密码(找回密码)
        /// </summary>
        /// <param name="username">用户账号</param>
        /// <returns></returns>
        [AcceptVerbs]
        public JsonResult ResetPass(string username)
        {
            try
            {
                if (_bll.ResetPass(username))
                {
                    return Json(new { Code = 0, Msg = "密码已重置为:123456" });
                }
                return Json(new { Code = 500, Msg = "重置失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 分页接口
        /// </summary>
        /// <param name="page">当前页</param>
        /// <param name="limit">每页记录的长度</param>
        /// <param name="sort">排序字段</param>
        /// <param name="order">升序(默认asc)</param>
        /// <returns></returns>
        [HttpGet]
        [Authorize(Roles = "Admin,Client")]
        public JsonResult Page(int page = 1, int limit = 10, string sort = "id", string order = "asc")
        {
            try
            {
            	List<IConditionalModel> conModels = new List<IConditionalModel>();
                List<String> jujianList = new List<string>();

                var xuehao = HttpContext.Request.Query["xuehao"].ToString();
                if (!string.IsNullOrEmpty(xuehao))
                {
                    if (xuehao.Contains("%"))
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xuehao", ConditionalType = ConditionalType.Like, FieldValue = xuehao });
                    }
                    else
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xuehao", ConditionalType = ConditionalType.Equal, FieldValue = xuehao });
                    }
                }
                var xueshengxingming = HttpContext.Request.Query["xueshengxingming"].ToString();
                if (!string.IsNullOrEmpty(xueshengxingming))
                {
                    if (xueshengxingming.Contains("%"))
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xueshengxingming", ConditionalType = ConditionalType.Like, FieldValue = xueshengxingming });
                    }
                    else
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xueshengxingming", ConditionalType = ConditionalType.Equal, FieldValue = xueshengxingming });
                    }
                }
                var banji = HttpContext.Request.Query["banji"].ToString();
                if (!string.IsNullOrEmpty(banji))
                {
                    if (banji.Contains("%"))
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "banji", ConditionalType = ConditionalType.Like, FieldValue = banji });
                    }
                    else
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "banji", ConditionalType = ConditionalType.Equal, FieldValue = banji });
                    }
                }

                foreach (var queryString in HttpContext.Request.Query)
                {
                    var key = queryString.Key;
                    var values = queryString.Value;
                    if (key != "vipread" && key != "page" && key != "limit" && key!="" && key!="sort" && key!="order" && !jujianList.Contains(key))
                    {
                        bool isContains = conModels.Any(model =>
                        {
                            return ((ConditionalModel)model).FieldName == key;
                        });
                        if (!isContains)
                        {
                            conModels.Add(new ConditionalModel() { FieldName = key, ConditionalType = ConditionalType.Equal, FieldValue = values });
                        }
                    }
                }
                return Json(_bll.GetPageList(page, limit, sort, order, conModels));
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }


        /// 查询单条记录
        [HttpGet]
        public JsonResult Query()
        {
            try
            {
                List<IConditionalModel> conModels = new List<IConditionalModel>();
                ParameterExpression parameter = Expression.Parameter(typeof(XueshengDbModel), "x");
            
                var expressions = new List<BinaryExpression>();
                foreach (var queryString in HttpContext.Request.Query)
                {
                    var key = queryString.Key;
                    var values = queryString.Value;
                    MemberExpression member = Expression.Property(parameter, key);
                    ConstantExpression constant = Expression.Constant(values);
                    BinaryExpression equal = Expression.Equal(member, constant);
                    expressions.Add(equal);
                }
                BinaryExpression combined = null;
                foreach (var expression in expressions)
                {
                    if (combined == null)
                    {
                        combined = expression;
                    }
                    else
                    {
                        combined = Expression.And(combined, expression);
                    }
                }
            
                Expression<Func<XueshengDbModel, bool>> lambda = Expression.Lambda<Func<XueshengDbModel, bool>>(combined, parameter);
            
                XueshengDbModel xueshengModel = _bll.BaseGetSingle(lambda);
            
                return Json(new { Code = 0, Data = xueshengModel});
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 分页接口
        /// </summary>
        /// <param name="page">当前页</param>
        /// <param name="limit">每页记录的长度</param>
        /// <param name="sort">排序字段</param>
        /// <param name="order">升序(默认asc)</param>
        /// <returns></returns>
        [HttpGet]
        public JsonResult List(int page = 1, int limit = 10, string sort = "id", string order = "asc")
        {
            try
            {
                List<IConditionalModel> conModels = new List<IConditionalModel>();
                List<String> jujianList = new List<string>();
                var xuehao = HttpContext.Request.Query["xuehao"].ToString();
				if (!string.IsNullOrEmpty(xuehao))
                {
                    if (xuehao.Contains("%"))
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xuehao", ConditionalType = ConditionalType.Like, FieldValue = xuehao });
                    }
                    else
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xuehao", ConditionalType = ConditionalType.Equal, FieldValue = xuehao });
                    }
                }
                var xueshengxingming = HttpContext.Request.Query["xueshengxingming"].ToString();
				if (!string.IsNullOrEmpty(xueshengxingming))
                {
                    if (xueshengxingming.Contains("%"))
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xueshengxingming", ConditionalType = ConditionalType.Like, FieldValue = xueshengxingming });
                    }
                    else
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "xueshengxingming", ConditionalType = ConditionalType.Equal, FieldValue = xueshengxingming });
                    }
                }
                var banji = HttpContext.Request.Query["banji"].ToString();
				if (!string.IsNullOrEmpty(banji))
                {
                    if (banji.Contains("%"))
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "banji", ConditionalType = ConditionalType.Like, FieldValue = banji });
                    }
                    else
                    {
                        conModels.Add(new ConditionalModel() { FieldName = "banji", ConditionalType = ConditionalType.Equal, FieldValue = banji });
                    }
                }

                Dictionary<string, string> filterPairs = new Dictionary<string, string>();
                foreach (var queryString in HttpContext.Request.Query)
                {
                    var key = queryString.Key;
                    var values = queryString.Value;
                    if (key != "vipread" && key != "page" && key != "limit" && key!="" && key!="sort" && key!="order" && !jujianList.Contains(key))
                    {
                        // 将字符串的第一个字符转换为大写
                        if (!string.IsNullOrEmpty(key))
                        {
                            char[] charArray = key.ToCharArray();
                            charArray[0] = char.ToUpper(charArray[0]);
                            var newKey = new string(charArray);

                            if (typeof(XueshengDbModel).GetProperty(newKey) == null) {
                                continue;
                            }
                        }
                        var hasKey = false;
                        foreach (var model in conModels)  
                        {  
                            ConditionalModel conditionalModelClass = model as ConditionalModel;
                            if (conditionalModelClass!=null && conditionalModelClass.FieldName == key)  
                            {  
                                hasKey =true;  
                            }  
                        }
                        if (hasKey==false){
                            conModels.Add(new ConditionalModel() { FieldName = key, ConditionalType = ConditionalType.Equal, FieldValue = values });
                        }
                    }
                }
                return Json(_bll.GetPageList(page, limit, sort, order, conModels));
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 保存接口
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        [HttpPost]
        [Authorize(Roles = "Admin,Client")]
        public JsonResult Save([FromBody] XueshengDbModel entity)
        {
            try
            {
                XueshengDbModel xuehaoModel  = _bll.BaseGetSingle(it => it.Xuehao == entity.Xuehao);
                if(xuehaoModel!=null)
                {
                    return Json(new { Code = -1, Msg = "学号已存在" });
                }
                Random rd = new Random();
                int i = rd.Next(0, 1000000000);
                entity.Id = DateTime.Now.Ticks / 100000 + i;
                if (_bll.BaseInsert(entity) > 0)
                {
                    return Json(new { Code = 0, Msg = "添加成功!" });
                }

                return Json(new { Code = -1, Msg = "添加失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 保存接口
        /// </summary>
        /// <param name="entity">实体对象</param>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Add([FromBody] XueshengDbModel entity)
        {
            try
            {
                XueshengDbModel xuehaoModel  = _bll.BaseGetSingle(it => it.Xuehao == entity.Xuehao);
                if(xuehaoModel!=null)
                {
                    return Json(new { Code = -1, Msg = "学号已存在" });
                }

                Random rd = new Random();
                int i = rd.Next(0, 1000000000);
                entity.Id = DateTime.Now.Ticks / 100000 + i;
                if (_bll.BaseInsert(entity) > 0)
                {
                    return Json(new { Code = 0, Msg = "添加成功!" });
                }

                return Json(new { Code = -1, Msg = "添加失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 更新接口
        /// </summary>
        /// <param name="entity">更新实体对象</param>
        /// <returns></returns>
        [HttpPost]
        [Authorize(Roles = "Admin,Client")]
        public JsonResult Update([FromBody] XueshengDbModel entity)
        {

                XueshengDbModel xuehaoModel  = _bll.BaseGetSingle(it => it.Xuehao == entity.Xuehao && it.Id!=entity.Id);
                if(xuehaoModel!=null)
                {
                    return Json(new { Code = -1, Msg = "学号已存在" });
                }
            try
            {
                if (_bll.BaseUpdate(entity))
                {
                    return Json(new { Code = 0, Msg = "编辑成功!" });
                }

                return Json(new { Code = -1, Msg = "编辑失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 删除接口
        /// </summary>
        /// <param name="ids">主键int[]</param>
        /// <returns></returns>
        [HttpPost]
        //[Authorize(Roles = "Admin,Client")]
        public JsonResult Delete([FromBody] dynamic[] ids)
        {
            try
            {
                if (_bll.BaseDels(ids))
                {
                    return Json(new { Code = 0, Msg = "删除成功!" });
                }

                return Json(new { Code = -1, Msg = "删除失败!" });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 详情接口
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        [HttpPost("{id}")]
        [HttpGet("{id}")]
        [Authorize(Roles = "Admin,Client")]
        public JsonResult Info(long id)
        {
            try
            {
                XueshengDbModel infoData = _bll.BaseGetById(id);
                return Json(new { Code = 0, Data = infoData });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 详情接口
        /// </summary>
        /// <param name="id">主键id</param>
        /// <returns></returns>
        [HttpPost("{id}")]
        [HttpGet("{id}")]
        public JsonResult Detail(long id)
        {
            try
            {
                XueshengDbModel detailData = _bll.BaseGetById(id);

                return Json(new { Code = 0, Data = detailData });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

		/// <summary>
        /// 获取需要提醒的记录数接口
        /// </summary>
        /// <param name="columnName">列名</param>
        /// <param name="type">类型(1表示数字比较提醒,2表示日期比较提醒)</param>
        /// <param name="remindStart">remindStart小于等于columnName满足条件提醒,当比较日期时,该值表示天数</param>
        /// <param name="remindEnd">columnName小于等于remindEnd 满足条件提醒,当比较日期时,该值表示天数</param>
        /// <returns></returns>
        [HttpGet("{columnName}/{type}")]
        public JsonResult Remind(string columnName, int type, int remindStart=-1, int remindEnd=-1)
        {
            try
            {
                string where = "";
                return Json(new { Code = 0, Count = _bll.Common("xuesheng", columnName, "", type, "remind", remindStart, remindEnd, where, true ) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 按值统计接口
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="xColumnName">列名</param>
        /// <param name="yColumnName">列名</param>
        /// <returns></returns>
        [HttpGet("{xColumnName}/{yColumnName}")]
        public JsonResult Value(string xColumnName, string yColumnName)
        {
            try
            {
                string where = " WHERE 1 = 1 ";
                return Json(new { Code = 0, Data = _bll.Common("xuesheng", xColumnName, yColumnName, 0, "value", 0, 0, where) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 按时间统计类型接口
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="xColumnName">列名</param>
        /// <param name="yColumnName">列名</param>
        /// <param name="timeStatType">类型</param>
        /// <returns></returns>
        [HttpGet("{xColumnName}/{yColumnName}/{timeStatType}")]
        public JsonResult Value(string xColumnName, string yColumnName, string timeStatType)
        {
            try
            {
                string where = " WHERE 1 = 1 ";
                string tableName = CacheHelper.TokenModel.Tablename;
                return Json(new { Code = 0, Data = _bll.StatDate("xuesheng", xColumnName, yColumnName, timeStatType, where) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 按时间统计类型接口(多)
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="xColumnName">列名</param>
        /// <returns></returns>
        [HttpGet("{xColumnName}")]
        public JsonResult valueMul(string xColumnName)
        {
            try
            {
                string yColumnNameMul = HttpContext.Request.Query["yColumnNameMul"].ToString();
                string where = " WHERE 1 = 1 ";
                // 创建一个 List 对象
                List<List<dynamic>> total = new List<List<dynamic>>();

                foreach (var item in yColumnNameMul.Split(","))
                {
                    List<dynamic> itemList = _bll.Common("xuesheng", xColumnName, item, 0,"value",0,0, where);
                    // 创建一个 Dictionary 对象,表示数组中的每个元素
                    List<dynamic> element = new List<dynamic>();
                    foreach(var i in itemList)
                    {
                        element.Add(i);
                    }
                    total.Add(element);
                }

                return Json(new { Code = 0, Data = total });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 按时间统计类型接口(多)
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="xColumnName">列名</param>
        /// <param name="yColumnName">列名</param>
        /// <param name="timeStatType">类型</param>
        /// <returns></returns>
        [HttpGet("{xColumnName}/{timeStatType}")]
        public JsonResult valueMul(string xColumnName, string timeStatType)
        {
            try
            {
                string yColumnNameMul = HttpContext.Request.Query["yColumnNameMul"].ToString();
                string where = " WHERE 1 = 1 ";
                // 创建一个 List 对象
                List<List<dynamic>> total = new List<List<dynamic>>();

                foreach (var item in yColumnNameMul.Split(","))
                {
                    List<dynamic> itemList =  _bll.StatDate("xuesheng", xColumnName, item, timeStatType, where);
                    // 创建一个 Dictionary 对象,表示数组中的每个元素
                    List<dynamic> element = new List<dynamic>();
                    foreach(var i in itemList)
                    {
                        element.Add(i);
                    }
                    total.Add(element);
                }

                return Json(new { Code = 0, Data = total });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 类别统计接口
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <param name="columnName">列名</param>
        /// <returns></returns>
        [HttpGet("{columnName}")]
        public JsonResult Group(string columnName)
        {
            try
            {
                string where = " WHERE 1 = 1 ";
                return Json(new { Code = 0, Data = _bll.Common("xuesheng", columnName, "", 0, "group", 0, 0, where) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }

        /// <summary>
        /// 分页接口
        /// </summary>
        /// <returns></returns>
        [HttpGet]
        public JsonResult Lists()
        {
            try
            {
                return Json(new { Code = 0, Data = _bll.BaseGetList(t => true) });
            }
            catch (Exception ex)
            {
                return Json(new { Code = 500, Msg = ex.Message });
            }
        }



    }
}

💕💕作者:计算机源码社
💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕如需要源码,可以扫取文章下方二维码联系咨询

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2193404.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计 智慧物业服务系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

初学Vue(2)

文章目录 监视属性 watch深度监视computed 和 watch 之间的区别 绑定样式&#xff08;class style&#xff09;条件渲染列表渲染基本列表key的原理列表过滤列表排序收集表单中的数据 v-model过滤器&#xff08;Vue3已移除&#xff09; 监视属性 watch 当被监视的属性变化时&am…

使用frp将树莓派穿透到外网

引言 frp官网 最近买了一块树莓派 zero 2w&#xff0c;想要它可以进行远程访问&#xff0c;所以想到了frp这个方案进行穿透&#xff0c;后期会使用树莓派搭建音乐服务器&#xff0c;本人手机内存有点小&#xff0c;xxxx云音乐太占空间&#xff0c;有兴趣的话可以关注后续。 …

在 window 系统下安装 Ubuntu (虚拟机)

文章目录 零、Ubuntu 和 Vmware workstation 资源一、下载 Ubuntu二、下载 Vmware Workstation Pro三、安装 Vmware Workstation Pro四、创建虚拟机五、配置 Ubuntu 零、Ubuntu 和 Vmware workstation 资源 如果觉得自己下载 Ubuntu 和 Vmware workstation 麻烦&#xff0c;也…

如何在 MySQL 中实现数据压缩

如何在 MySQL 中实现数据压缩 在 MySQL 数据库中&#xff0c;数据压缩可以帮助节省存储空间和提高数据传输效率。本篇文章我就一起来看看关于MySQL数据压缩的相关内容。 一、为什么需要数据压缩 随着数据量的不断增长&#xff0c;数据库的存储空间需求也在不断增加。数据压缩…

【Blender Python】1.概述和基础使用

概述 众所周知&#xff0c;Blender是一款开源免费的3D建模软件&#xff08;当然不限于3D建模&#xff09;。在Blender中&#xff0c;可以使用其内置的Python解释器执行Python代码&#xff0c;用于程序化的生成网格以及其他内容。你可以基于此创建Blender插件。 这个系列就是快…

gets和puts

今天我们来学习一组新的函数 gets和puts&#xff0c;它们分别对应的是scanf和printf&#xff0c;但在功能和其它方面有着一些差异 1.gets函数 1.char*gets(char*str); 函数功能&#xff1a;简单来说就像上面的格式一样&#xff0c;给他一个地址&#xff08;送快递总是要留一个…

Omron/TCP 通信过程

1. 首先 TCP 三次握手 2. 客户端向服务器申请节点地址 客户端向服务器发送一个包含Client Node Address字段的数据包 申请节点地址。由于客户端申请的时候还没有节点地址&#xff0c;因此该字段被置为0x00000000。 3. 服务器向客户端确认收到申请 服务器向客户端发送一个确认…

SQL第12课挑战题

1. 返回customers表中的顾客名称&#xff08;cust_name)和Orders表中的相关订单号&#xff08;order_num)&#xff0c;并按顾客名称再按订单号对结果进行排序。实际上是尝试两次&#xff0c;一次使用简单的等联结语法&#xff0c;一次使用inner join. 2. 让上一题变得更有用一些…

【算法篇】回溯算法类(2)(笔记)

目录 一、LeetCode 题目 1. 子集II 2. 递增子序列 3. 全排列 4. 全排列 II 5. 重新安排行程 6. N皇后 7. 解数独 二、题目思路整理 一、LeetCode 题目 1. 子集II https://leetcode.cn/problems/subsets-ii/description/https://leetcode.cn/problems/subsets-ii/des…

Spring Cloud Netflix Eureka 注册中心讲解和案例示范

在微服务架构中&#xff0c;服务的发现和注册是至关重要的一环。Netflix Eureka 是一个在云端设计的服务注册与发现系统。它允许各个微服务将自身注册到注册中心&#xff0c;并在需要时发现其他服务&#xff0c;从而实现客户端负载均衡、服务容错以及动态扩展。本文将深入分析 …

【Vue】vue-admin-template项目搭建

准备 node环境 node&#xff1a;v16.12.0npm&#xff1a;8.1.0 vue-element-admin下载 官网&#xff1a;https://panjiachen.github.io/vue-element-admin-site/guide/ 我这边下载的是4.4.0版本的&#xff0c;使用其他版本可能会因为所需要的node和npm版本过低或过高导致异常…

C++/CLI编程-属性property的封装实现

1.前言 上一篇博文中提到过C/CLI典型使用场景之一是为native C编写的算法封装接口&#xff0c;进而在C#项目中调用。一种典型的应用是作为Wrapper封装层来封装C库的类和接口、做C/C#类型的转换&#xff0c;然后在C#应用程序中调用&#xff0c;开发便捷易用的应用程序。 C/CLI编…

Bellman-Ford算法和SPFA算法

Bellman-Ford算法 能够处理存在负边权的情况。 算法时间复杂度:O(n*m)&#xff0c;n是顶点数&#xff0c;m是边数。 算法实现: 设s为起点&#xff0c;dis[v]即为s到v的最短距离&#xff0c;pre[v]为v前驱。w[j]是边j的长度&#xff0c;且j连接u、v。 dis[s] 0;dis[v] 0x3…

(Linux驱动学习 - 5).Linux 下 DHT11 温湿度传感器驱动编写

DHT11的通信协议是单总线协议&#xff0c;可以用之前学习的pinctl和gpio子系统完成某IO引脚上数据的读与写。 一.在设备树下添加dht11的设备结点 1.流程图 2.设备树代码 &#xff08;1&#xff09;.在设备树的 iomuxc结点下添加 pinctl_dht11 &#xff08;2&#xff09;.在根…

探索大型语言模型在文化常识方面的理解能力与局限性

介绍 论文地址&#xff1a;https://arxiv.org/pdf/2405.04655v1 近年来&#xff0c;大型语言模型&#xff08;LLM&#xff09;不仅被广泛应用于各个领域&#xff0c;而且通过大量的基准评估&#xff0c;证明它们能够理解人类所拥有的常识&#xff08;Commonsense&#xff09;…

FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!

之前的文章已经和大家介绍过字节开源的ID保持项目PuLID。随着FLUX模型的发布&#xff0c;PuLID也开源了 FLUX 版本的模型&#xff0c;不得不说FLUX的强大&#xff0c;两个月生态就赶上了SDXL。这次新发布PuLID-FLUX-v0.9.0模型&#xff0c;它为FLUX.1-dev提供了无需调整的ID定制…

简单部署vue+springboot项目

vue 参考博客 先将vue项目打包 npm run build 再创建项目文件夹front,在front中新建nginx.conf server {listen 80;server_name localhost;# 请求体的大小限制client_max_body_size 50m;# 日志文件存放地址access_log /var/log/nginx/host.access.log main;error…

嵌入式知识点复习(一)

国庆倒数第二天&#xff0c;进行嵌入式课堂测试的复习&#xff1a; 第一章 绪论 1.1 嵌入式系统的概念 嵌入式系统定义 嵌入式系统定位 嵌入式系统形式 嵌入式系统三要素 嵌入式系统与桌面通用系统的区别 1.2 嵌入式系统的发展历程 微处理器的演进历史 单片机的演进历史 …