🍅选题推荐——以防找不到我们,点击上方订阅专栏✌✌
2024年计算机Java Python安卓APP微信小程序asp.net项目PHP毕业设计2000个热门选题推荐计算机毕业设计如何选题?
安装Chatgdt搜索答辩老师常提的问题-----------------重点
👇🏻文末获取源码联系👇🏻
一、项目介绍
1.1 研究背景
在新世纪的今天,计算机已经发展到一定的规模,带动了国内经济和科学技术的快速发展,科学技术的发展大大提高了生产效率,使人们的物质生活需求得到了很大的满足。现在各种类型的网站系统都很流行,将传统的管理模式转移到线上来实现,可以大大提高管理效率。基于以上情况,供销社农产品展销系统逐渐出现在人们的视野中,也将成为未来发展的一个潜在增长点。
1.2 研究意义
在日新月异的21世纪,全球进入快速运转的科技时代,我国也在各位科学家不懈努力下实现了科技社会化、信息技术底层化、网络运用全民化。我们处在一个“互联网+”的时代,信息化的建设成为了当代的发展基石以及重要组成部分。随着供销社农产品展销管理的常态化,同时也出现了多样化的管理方式[1]。而供销社农产品展销系统就可以实现管理人员及会员的日常管理,实现进行更高效的信息互换、让会员的动态变得透明公开,让管理人员更好地实现对供销社农产品展销的动态监管、真正的实现快速、便捷、高效的管理以降低管理成本、减轻管理人员的负担,保证管理技术以及运用互联网技术的能力的快速提升,提高综合管理和竞争能力。在保证人们的安全的同时,真正达到更好的为国家经济建设和社会安全做贡献的目的。
1.3 系统主要功能
因我国地域辽阔、人口众多,并且各地气温条件差异。如果供销社农产品展销管理还是沿用传统的、人工的操作,那管理难度是十分巨大的、效率也会不尽人意;而如今我国的信息科学技术已趋于成熟,我们的生活、工作、学习已离不开互联网,为了更好的提升供销社农产品展销管理,并且在保证用户的安全前提下使人们生活有序、有效开展,需要一套操作简单、能高效导出并录入数据、安全性高、可用性强的供销社农产品展销系统。
此篇论文中包括管理员和会员两个不同的角色,根据不同的身份以及工作机制,赋予不同的权限。该供销社农产品展销系统的功能如下列所示:
- 用户之间的使用权限设定:根据业务管理的需求以及供销社农产品展销管理体系,在使用前将每个角色的固定标签设定好,明晰每个角色权限,并将状态控制功能添加到用户状态上,最终达到本系统角色控制基础形成的目标。
- 会员登录功能:会员可以根据自己的角色选择相应的账号进行登录,在输入合法的账号和密码后就可进入系统,根据自己的权限选择想要进行的操作。
- 查看个人资料功能:会员登录系统之后可以查看自己的个人资料,包括用户名、密码、用户姓名、性别、联系方式、头像等,在核查发现错误之后还可以进行修改,用户还可在该模块进行密码的修改。
- 系统管理功能:在模块的功能又可以细化成以下几个部分
- 会员管理:管理员可以在该模块进行会员信息的管理。
- 产品分类管理:管理员可以在该模块对产品分类信息进行修改或删除。
- 农产品管理:管理员可以在该模块进行农产品信息的管理,包括查看评论,修改或删除等。
- 系统管理功能:供销社农产品展销的管理员可以在本模块进行关于我们、系统简介、轮播图管理和农产品资讯的管理。
二、功能介绍
4.2 系统功能结构设计
完成了设计思路的构想,接下来就是按照实际要求完成所需功能。该系统功能结构图如图4-2所示:
5.1系统功能实现
当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:
农产品:在农产品页面的输入栏中输入产品名称和价格进行查询,可以查看到农产品详细信息,并根据需要进行添加到购物车、立即购买、评论或收藏操作;农产品页面如图5-3所示:
个人中心:在个人中心页面可以对个人中心、我的订单、我的地址和我的收藏进行详细操作;
我的订单:在我的订单页面可以对未支付、已支付、已发货、已完成、已退款和已取消订单进行详细操作;如图5-5所示:
管理员模块实现
管理员进入主页面,主要功能包括对系统首页、个人中心、会员管理、产品分类管理、农产品管理、系统管理、订单管理等进行操作。
管理员点击会员管理。在会员页面输入会员账号和会员姓名进行查询、新增或删除会员列表,并根据需要对会员详情信息进行详情、修改或删除操作;如图5-8所示:
管理员点击农产品管理。在农产品页面输入产品名称和价格进行查询、新增或删除农产品列表,并根据需要对农产品详情信息进行详情、修改、查看评论或删除操作;如图5-10所示:
管理员点击订单管理。在已支付订单页面输入订单编号和商品名称进行查询或删除已支付订单列表,并根据需要对已支付订单详细信息进行详情、修改、发货或删除操作,还可以对未支付订单、已发货订单、已完成订单、已取消订单和已退款订单进行详细操作。如图5-12所示:
三、关键代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.StaticFiles;
using Xiezn.Core.Business.Services;
using Xiezn.Core.Common.Helpers;
namespace Xiezn.Core.Controllers
{
/// <summary>
/// 文件接口
/// </summary>
[Route("[controller]/[action]")]
// [Authorize(Roles = "Admin,Client")]
public class FileController : Controller
{
private readonly IHostingEnvironment _hostingEnvironment;
private readonly string _savePath;
private readonly ConfigService _configBLL;
public FileController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
_savePath = _hostingEnvironment.WebRootPath + Path.DirectorySeparatorChar + ConfigHelper.GetConfig("SchemaName") + Path.DirectorySeparatorChar + "upload" + Path.DirectorySeparatorChar;
_configBLL = new ConfigService();
}
/// <summary>
/// 文件上传(单个文件)
/// </summary>
/// <param name="file"></param>
/// <param name="type">当type=1时,表示后端上传接口(保存文件名到config表)</param>
/// <returns></returns>
[DisableRequestSizeLimit]
[HttpPost]
public JsonResult Upload(List<IFormFile> file, int type = 0)
{
try
{
//IFormFileCollection files = Request.Form.Files; // 获取上传的文件
if (file == null || file.Count == 0)
{
return Json(new { Code = -1, Msg = "没有上传文件!", File = "" });
}
FuncHelper.DicCreate(_savePath);
string newFileName = "";
foreach (IFormFile formFile in file)
{
if (formFile.Length > 0)
{
var timestamp = DateTimeOffset.Now.ToUnixTimeMilliseconds();
string fileExtension = formFile.FileName.Substring(formFile.FileName.LastIndexOf(".") + 1); // 获取文件名称后缀
//string newFileName = System.Guid.NewGuid().ToString() + "." + fileExtension; // 随机生成新的文件名
newFileName = timestamp + "." + fileExtension;
// 保存文件
var stream = formFile.OpenReadStream();
// 把 Stream 转换成 byte[]
byte[] bytes = new byte[stream.Length];
stream.Read(bytes, 0, bytes.Length);
// 设置当前流的位置为流的开始
stream.Seek(0, SeekOrigin.Begin);
// 把 byte[] 写入文件
FileStream fs = new FileStream(_savePath + newFileName, FileMode.Create);
BinaryWriter bw = new BinaryWriter(fs);
bw.Write(bytes);
bw.Close();
fs.Close();
}
break; // 限制多文件上传
}
if (type == 1)
{
_configBLL.UpdateByName("faceFile", newFileName);
}
return Json(new { Code = 0, Msg = "上传成功!", File = newFileName });
}
catch (Exception ex)
{
return Json(new { Code = -2, Msg = "上传失败!", Data = ex.Message });
}
}
/// <summary>
/// 文件下载
/// </summary>
/// <param name="fileName">文件名</param>
/// <returns></returns>
[HttpGet]
public IActionResult Download(string fileName)
{
try
{
string url = _savePath + fileName;
var stream = System.IO.File.OpenRead(url);
//var stream = new FileStream(fullPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // 推荐此方法
string fileExt = Path.GetExtension(url);
// 获取文件的ContentType
var provider = new FileExtensionContentTypeProvider();
var memi = provider.Mappings[fileExt];
return File(stream, memi, Path.GetFileName(url));
}
catch
{
return NotFound();
}
}
}
}
四、相关案例
🍅源码获取:大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻