电商项目
数据库:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Model
{
//用户表
public class User
{
public int Id { get; set; } //用户id
public string Name { get; set; } //用户名
public string Pwd { get; set; } //密码
}
//店铺表
public class Shop
{
public int Id { get; set; } //店铺id
public string SName { get; set; } //店铺名
}
//商品表
public class Goods
{
public int Id { get; set; } //商品id
public string Name { get; set; } //商品名
public string Img { get; set; } //商品图片
public int Price { get; set; } //价格
public int Count { get; set; } //库存
public Shop Shop { get; set; }
public int ShopId { get; set; } //外键:店铺id
}
//订单表
public class OrderInfo
{
public int Id { get; set; } //订单id
public int Count { get; set; } //购买数量
public Goods Goods { get; set; }
public int GoodsId { get; set; } //外键:商品id
public User User { get; set; }
public int UserId { get; set; } //外键:用户id
}
//退款表
public class DropOrder
{
public int Id { get; set; } //id
public string Reason { get; set; } //退款原因
public string Img { get; set; } //上传图片
public int Count { get; set; } //已购买的数量
public Goods Goods { get; set; }
public int GoodsId { get; set; } //外键:商品id
public User User { get; set; }
public int UserId { get; set; } //外键:用户id
}
//收藏的店铺表
public class CollectShops
{
public int Id { get; set; } //id
public Shop Shop { get; set; }
public int ShopId { get; set; } //外键:店铺id
public User User { get; set; }
public int UserId { get; set; } //外键:用户id
}
//收藏的商品表
public class CollectGoods
{
public int Id { get; set; } //id
public Goods Goods { get; set; }
public int GoodsId { get; set; } //外键:店铺id
public User User { get; set; }
public int UserId { get; set; } //外键:用户id
}
}
帮助类(Models文件夹下):
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.IO;
using System.Text;
using NPOI.HSSF.UserModel;
using System.Reflection;
namespace WebApplication1.Models
{
/// <summary>
/// 文件上传下载,导入导出辅助类
/// </summary>
public class APIFileHelp
{
public string[] ExtentsfileName = new string[] { ".doc", ".xls", ".png", ".jpg" };
public string UrlPath = "/Img/";
/// <summary>
///响应对象 ,使用前先赋值
/// </summary>
public HttpResponse Response = HttpContext.Current.Response;
public HttpRequest Request = HttpContext.Current.Request;
/// <summary>
/// 下载文件 使用过DEMO
/// using System.IO;
/// public class FileOperationController : ApiController
/// {
/// APIFileHelp help = new APIFileHelp();
/// [HttpGet]
/// public void DownLoad(string Url)
/// {
/// string filePath = HttpContext.Current.Server.MapPath(Url);
/// FileInfo fi = new FileInfo(filePath);
/// help.DownLoad(fi.Name, fi.FullName);
/// }
///}
///
/// <a href = "https://localhost:44370/api/FileOperation/DownLoad?Url=/FileUpload/132211303318715030.xls" > 下载 </ a >
/// </summary>
/// <param name="downFileName">下载后保存名</param>
/// <param name="sourceFileName">服务器端物理路径</param>
public void DownLoad(string downFileName, string sourceFileName)
{
if (File.Exists(sourceFileName))
{
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; FileName={0}", downFileName));
Response.Charset = "GB2312";
Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Response.ContentType = MimeMapping.GetMimeMapping(downFileName);
Response.WriteFile(sourceFileName);
Response.Flush();
Response.Close();
}
}
/// <summary>
/// 上传文件 控制器端
/// public class FileOperationController : ApiController
///{
/// [HttpPost]
/// public FileResult UpLoad()
/// {
/// return help.UpLoad();
/// }
///}
///
///
/// 上传文件 客户端
///<input type = "file" id="f1" />
////<input type = "button" value="aa" onclick="ff()"/>
///< script >
///function ff()
///{
/// var formData = new FormData();
/// var file = document.getElementById("f1").files[0];
/// formData.append("fileInfo", file);
/// $.ajax({
/// url: "https://localhost:44370/api/FileOperation/UpLoad",
/// type: "POST",
/// data: formData,
/// contentType: false,//必须false才会自动加上正确的Content-Type
/// processData: false,//必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理
/// success: function(data) {
/// if (data.Code < 0)
/// alert(data.Msg)
/// else
/// alert(data.Url)
/// },
/// error: function(data) {
/// alert("上传失败!");
/// }
/// });
///}
///</script>
///
/// </summary>
/// <returns></returns>
public FileResult UpLoad()
{
if (Request.Files.Count > 0)
{
string FileUrlResult = "";
foreach (string fn in Request.Files)
{
var file = Request.Files[fn];
var extenfilename = Path.GetExtension(file.FileName);
//判断 路径是否存在
string path = HttpContext.Current.Server.MapPath(UrlPath);
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
if (ExtentsfileName.Contains(extenfilename.ToLower()))
{
string urlfile = UrlPath + DateTime.Now.ToFileTime() + extenfilename;
string filepath = HttpContext.Current.Server.MapPath(urlfile);
file.SaveAs(filepath);
FileUrlResult += urlfile + ";";
}
else
{
return new FileResult() { Code = -1, Msg = "只允许上传指定格式文件" + string.Join(",", ExtentsfileName), Url = "" };
}
}
return new FileResult() { Code = 0, Msg = "上传成功", Url = FileUrlResult };
}
else
{
return new FileResult() { Code = -1, Msg = "不能上传空文件", Url = "" };
}
}
/// <summary>
/// 导入
///
/// public int Import()
/// {
/// int i = 0;
/// Dictionary<string, string> dic = new Dictionary<string, string>();
/// // 编号 姓名 性别 电话 照片 入学时间 毕业时间 班级ID 班级
/// dic.Add("编号", "Id");
/// dic.Add("姓名", "Name");
/// dic.Add("性别", "Sex");
/// dic.Add("电话", "Tel");
/// dic.Add("照片", "Photo");
/// dic.Add("入学时间", "JoinTime");
/// dic.Add("毕业时间", "OutTime");
/// dic.Add("班级ID", "CId");
/// dic.Add("班级", "CName");
/// // 导入上传文件的数据到集合中
/// List<Student> stus = help.ImportExcel<Student>(dic);
/// //把集合中的数据保存到数据库 循环添加,使用了事务
/// using (TransactionScope scope = new TransactionScope())
/// {
/// foreach (Student s in stus)
/// {
/// i++;
/// dal.AddStudent(s);
/// }
/// scope.Complete();
/// }
/// return i;
/// }
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="dic">字典集合 EXECL标题=》对象属性</param>
/// <returns>对象集合</returns>
public List<T> ImportExcel<T>(Dictionary<string, string> dic) where T : class, new()
{
if (Request.Files.Count > 0)
{
var file = Request.Files[0];
List<T> list = new List<T>();
Type tp = typeof(T);
using (var fs = file.InputStream)
{
//把xls文件中的数据写入workbook1中
var workbook1 = new HSSFWorkbook(fs);
//获取第一个Sheet
var sheet = workbook1.GetSheetAt(0);
//获取第一行 标题行
var row = sheet.GetRow(0);
//声明字段数组
string[] fields = new string[row.LastCellNum];
for (var i = 0; i < row.LastCellNum; i++)
{
string title = row.GetCell(i).ToString();
if (dic.ContainsKey(title))
{
fields[i] = dic[title];
}
}
for (var j = 1; j <= sheet.LastRowNum; j++)
{
//读取当前行数据
var dataRow = sheet.GetRow(j);
// 创建对象实例
T t = new T();
if (dataRow != null)
{
for (var k = 0; k <= dataRow.LastCellNum; k++)
{ //当前表格 当前单元格 的值
var cell = dataRow.GetCell(k);
if (cell != null)
{
var p = tp.GetProperty(fields[k]);
if (p != null)
{
p.SetValue(t, GetValue(cell.ToString(), p));
}
}
}
}
list.Add(t);
}
}
return list;
}
else
{
return null;
}
}
/// <summary>
/// 导出
/// [HttpGet]
/// public void Export1(int PageSize, int PageIndex, int Cid)
/// {
/// var list = dal.GetStudentByPaging(PageSize, PageIndex, Cid).Data;
/// Dictionary<string, string> dic = new Dictionary<string, string>();
/// dic.Add("Id", "编号");
/// dic.Add("Name", "姓名");
/// dic.Add("Sex", "性别");
/// dic.Add("Tel", "电话");
/// dic.Add("Photo", "照片");
/// dic.Add("JoinTime", "入学时间");
/// dic.Add("OutTime", "毕业时间");
/// dic.Add("CId", "班级ID");
/// dic.Add("CName", "班级");
/// help.ExportExcel<Student>("a.xls", list, dic);
///}
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="fileName">保存到客户端的文件名</param>
/// <param name="list">要导出的数据集合</param>
/// <param name="dic">字典集合 属性=》标题</param>
public void ExportExcel<T>(string fileName, List<T> list, Dictionary<string, string> dic) where T : class, new()
{
Type tp = typeof(T); //获取类型
var ps = tp.GetProperties(); //获取属性集合
//创建工作薄
var workbook = new HSSFWorkbook();
//创建表
var table = workbook.CreateSheet("sheet1");
//创建表头
var row = table.CreateRow(0);
for (int i = 0; i < ps.Length; i++)
{
if (dic.ContainsKey(ps[i].Name))
{
var cell = row.CreateCell(i);//创建单元格
cell.SetCellValue(dic[ps[i].Name]);
}
}
//模拟20行20列数据
for (var i = 1; i <= list.Count; i++)
{
//创建新行
var dataRow = table.CreateRow(i);
for (int j = 0; j < ps.Length; j++)
{
if (dic.ContainsKey(ps[j].Name))
{
var cell = dataRow.CreateCell(j);//创建单元格
cell.SetCellValue(ps[j].GetValue(list[i - 1]).ToString());
}
}
}
Response.Clear();
Response.ClearHeaders();
Response.ClearContent();
Response.Buffer = true;
Response.AddHeader("content-disposition", string.Format("attachment; FileName={0}", fileName));
Response.Charset = "GB2312";
Response.ContentEncoding = Encoding.GetEncoding("GB2312");
Response.ContentType = MimeMapping.GetMimeMapping(fileName);
workbook.Write(Response.OutputStream);
Response.Flush();
Response.Close();
}
private static object GetValue(string obj, PropertyInfo p)
{
object o = null;
switch (p.PropertyType.Name)
{
case "Int16":
o = Int16.Parse(obj);
break;
case "Int32":
o = Int32.Parse(obj);
break;
case "Int64":
o = Int64.Parse(obj);
break;
case "double":
o = double.Parse(obj);
break;
case "float":
o = float.Parse(obj);
break;
case "String":
o = obj.ToString();
break;
case "bool":
o = bool.Parse(obj);
break;
case "DateTime":
o = DateTime.Parse(obj);
break;
}
return o;
}
}
public class FileResult
{
public int Code { get; set; }
public string Msg { get; set; }
public string Url { get; set; }
}
}
登录:
API控制器:
//登录
[HttpGet]
public User Login(string name, string pwd)
{
User u = db.Users.Where(x => x.Name == name && x.Pwd == pwd).FirstOrDefault();
return u;
}
登陆页面(MVC View):
@{
ViewBag.Title = "Login";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h2>用户登录</h2>
<table class="table table-bordered">
<tr>
<td>用户名:</td>
<td>
<input id="name" type="text" />
</td>
</tr>
<tr>
<td>密码:</td>
<td>
<input id="pwd" type="password" />
</td>
</tr>
<tr>
<td>
<input id="Button1" type="button" value="登录" onclick="login()" />
</td>
<td></td>
</tr>
</table>
<script>
function login() {
var obj = {
name:$("#name").val(),
pwd:$("#pwd").val()
};
$.ajax({
url: "http://localhost:50473/api/Goods/Login",
data: obj,
type: "get",
dataType: "json",
success:
function (d) {
if (d!=null) {
alert('登录成功!');
document.cookie = d.Id;
location.href = '/Goods/Index';
}
else {
alert('登录失败!');
}
}
})
}
</script>
显示:
API控制器:
//显示商品
[HttpGet]
public List<Goods> GetGoods()
{
List<Goods> list = db.Goods.ToList();
return list;
}
//商品详情
[HttpGet]
public List<Goods> FindGood(int id)
{
var list = db.Goods.Include("Shop").Where(x => x.Id == id).ToList();
return list;
}
//显示店铺中的商品
[HttpGet]
public List<Goods> ShopsGoods(int id)
{
List<Goods> list = db.Goods.Where(x => x.ShopId == id).ToList();
return list;
}
//显示订单
[HttpGet]
public List<OrderInfo> GetOrderInfos(int id)
{
var list = db.OrderInfos.Include("Goods").Where(x => x.UserId == id).ToList();
return list;
}
//订单详细
[HttpGet]
public OrderInfo FindOrder(int id)
{
OrderInfo o = db.OrderInfos.Include("Goods").Where(x => x.Id == id).FirstOrDefault();
return o;
}
显示页面(MVC View):
@{
ViewBag.Title = "Good";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h3>商品详情</h3>
<table class="table table-bordered">
<thead>
<tr>
<td>商品名称</td>
<td>商品图片</td>
<td>商品价格</td>
<td>商品库存</td>
<td>收藏</td>
</tr>
</thead>
<tbody id="tb1"></tbody>
</table>
<h3>店铺名称</h3>
<table class="table table-bordered">
<thead>
<tr>
<td>店铺名称</td>
<td>收藏</td>
</tr>
</thead>
<tbody id="tb2"></tbody>
</table>
<script>
//商品id
var gid =@Session["GId"];
//用户id
var uid = document.cookie;
//显示
function loadgoods() {
$.ajax({
url: "http://localhost:50473/api/Goods/FindGood/"+gid,
type: "get",
dataType: "json",
success:
function (d) {
$("#tb1").empty();
$(d).each(function () {
$("#tb1").append(
'<tr>' +
'<td>' + this.Name + '</td>' +
'<td><img src="http://localhost:50473' + this.Img + '" width="80" height="60" /></td>' +
'<td>' + this.Price + '元</td>' +
'<td>' + this.Count + '</td>' +
'<td><input id="Button1" type="button" value="收藏" onclick="colgood(' + this.Id + ')" /></td>' +
'</tr>'
)
})
$("#tb2").empty();
$(d).each(function () {
$("#tb2").append(
'<tr>' +
'<td>' + this.Shop.SName + '</td>' +
'<td><input id="Button1" type="button" value="收藏" onclick="colshop(' + this.ShopId + ')" /></td>' +
'</tr>'
)
})
}
})
}
loadgoods();
//收藏商品
function colgood(id) {
if (uid=="") {
alert('请先登录');
location.href = '/Goods/Login';
}
var obj = {
GoodsId:id,
UserId:uid
};
$.ajax({
url: "http://localhost:50473/api/Goods/CollectGood",
data: obj,
type: "post",
dataType:"json",
success:
function (d) {
if (d>0) {
alert('收藏商品成功!');
}
else {
alert('收藏商品失败!');
}
}
})
}
//收藏店铺
function colshop(id) {
if (uid=="") {
alert('请先登录');
location.href = '/Goods/Login';
}
var obj = {
ShopId:id,
UserId:uid
};
$.ajax({
url: "http://localhost:50473/api/Goods/CollectShop",
data: obj,
type: "post",
dataType:"json",
success:
function (d) {
if (d>0) {
alert('收藏店铺成功!');
}
else {
alert('收藏店铺失败!');
}
}
})
}
</script>
@{
ViewBag.Title = "Index";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h2>商品显示</h2>
<input id="Button1" type="button" value="登录" onclick="location.href='/Goods/Login'" />
<input id="Button1" type="button" value="我的订单" onclick="order()" />
<input id="Button1" type="button" value="我的退款" onclick="drop()" />
<input id="Button1" type="button" value="我的收藏" onclick="collect()" />
<hr />
<table class="table table-bordered">
<thead>
<tr>
<td>商品名称</td>
<td>商品图片</td>
<td>商品价格</td>
<td>商品数量</td>
<td>详情</td>
</tr>
</thead>
<tbody id="tb"></tbody>
</table>
<script>
function load() {
$.ajax({
url: "http://localhost:50473/api/Goods/GetGoods",
type: "get",
dataType: "json",
success:
function (d) {
$("#tb").empty();
$(d).each(function () {
$("#tb").append(
'<tr>' +
'<td>' + this.Name + '</td >' +
'<td><img src="http://localhost:50473' + this.Img + '" width="80" height="60" /></td>' +
'<td>' + this.Price + '</td>' +
'<td>' + this.Count + '</td>' +
'<td><input id="Button1" type="button" value="详情" onclick="find(' + this.Id + ')" /></td>' +
'</tr>'
)
})
}
})
}
load();
//商品详情
function find(id) {
location.href = '/Goods/Good/' + id;
}
//我的订单
function order() {
if (document.cookie == "") {
alert('请先登录');
location.href = '/Goods/Login';
}
else {
location.href = '/Goods/Order';
}
}
//我的退款
function drop() {
if (document.cookie == "") {
alert('请先登录');
location.href = '/Goods/Login';
}
else {
location.href = '/Goods/DropInfo';
}
}
//我的收藏
function collect() {
if (document.cookie == "") {
alert('请先登录');
location.href = '/Goods/Login';
}
else {
location.href = '/Goods/Mycollect';
}
}
</script>
@{
ViewBag.Title = "Mycollect";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h2>我的收藏</h2>
<input id="Button1" type="button" value="首页" onclick="location.href='/Goods/Index'" />
<input id="Button1" type="button" value="全部店铺" onclick="loadshops()" />
<input id="Button1" type="button" value="全部商品" onclick="loadgoods()" />
<hr />
<div id="div" style="width:1000px">
</div>
<script>
//用户id
var uid = document.cookie;
//加载店铺
var sid = []; //店铺id
function loadshops() {
$.ajax({
url: "http://localhost:50473/api/Goods/GetCollectShops/" + uid,
type: "get",
dataType: "json",
success:
function (d) {
$("#div").empty();
$(d).each(function () {
sid.push(this.ShopId);
$("#div").append(
'<table class="table table-bordered" style="float:left;width:200px;height:50px">' +
'<thead>' +
'<tr>' +
'<td>店铺名称</td>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr>' +
'<td>' + this.Shop.SName + '</td>' +
'</tr>' +
'</tbody>' +
'</table>' +
'<table class="table table-bordered" style="float:left;width:780px;margin-left:20px">' +
'<thead>' +
'<tr>' +
'<td>商品名称</td>' +
'<td>商品图片</td>' +
'<td>商品价格</td>' +
'</tr>' +
'</thead>' +
'<tbody id="' + this.ShopId + '"></tbody> ' +
'</table>'
)
})
for (var i = 0; i < sid.length; i++) {
$.ajax({
async:false,
url: "http://localhost:50473/api/Goods/ShopsGoods/" + sid[i],
type: "get",
dataType: "json",
success:
function (d) {
$("#" + sid[i]).empty();
$(d).each(function () {
$("#" + sid[i]).append(
'<tr>' +
'<td>' + this.Name + '</td>' +
'<td><img src="http://localhost:50473' + this.Img + '" width="50" height="50" /></td>' +
'<td>' + this.Price + '</td>' +
'</tr>'
)
})
}
})
}
}
})
}
//收藏的商品
function loadgoods() {
$.ajax({
url: "http://localhost:50473/api/Goods/GetCollectGoods/" + uid,
type: "get",
dataType: "json",
success:
function (d) {
$("#div").empty();
$(d).each(function () {
$("#div").append(
'<table class="table table-bordered">' +
'<thead>' +
'<tr>' +
'<td>商品名称</td>' +
'<td>商品图片</td>' +
'<td>商品价格</td>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr>' +
'<td>' + this.Goods.Name + '</td>' +
'<td><img src="http://localhost:50473' + this.Goods.Img + '" width="50" height="50" /></td>' +
'<td>' + this.Goods.Price + '</td>' +
'</tr>' +
'</tbody>' +
'</table>'
)
})
}
})
}
loadgoods();
</script>
收藏:
API控制器:
//显示收藏的商品
[HttpGet]
public List<CollectGoods> GetCollectGoods(int id)
{
var list = db.CollectGoods.Include("Goods").Where(x => x.UserId == id).ToList();
return list;
}
//显示收藏的店铺
[HttpGet]
public List<CollectShops> GetCollectShops(int id)
{
var list = db.CollectShops.Include("Shop").Where(x => x.UserId == id).ToList();
return list;
}
收藏页面(MVC View):
@{
ViewBag.Title = "Mycollect";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h2>我的收藏</h2>
<input id="Button1" type="button" value="首页" onclick="location.href='/Goods/Index'" />
<input id="Button1" type="button" value="全部店铺" onclick="loadshops()" />
<input id="Button1" type="button" value="全部商品" onclick="loadgoods()" />
<hr />
<div id="div" style="width:1000px">
</div>
<script>
//用户id
var uid = document.cookie;
//加载店铺
var sid = []; //店铺id
function loadshops() {
$.ajax({
url: "http://localhost:50473/api/Goods/GetCollectShops/" + uid,
type: "get",
dataType: "json",
success:
function (d) {
$("#div").empty();
$(d).each(function () {
sid.push(this.ShopId);
$("#div").append(
'<table class="table table-bordered" style="float:left;width:200px;height:50px">' +
'<thead>' +
'<tr>' +
'<td>店铺名称</td>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr>' +
'<td>' + this.Shop.SName + '</td>' +
'</tr>' +
'</tbody>' +
'</table>' +
'<table class="table table-bordered" style="float:left;width:780px;margin-left:20px">' +
'<thead>' +
'<tr>' +
'<td>商品名称</td>' +
'<td>商品图片</td>' +
'<td>商品价格</td>' +
'</tr>' +
'</thead>' +
'<tbody id="' + this.ShopId + '"></tbody> ' +
'</table>'
)
})
for (var i = 0; i < sid.length; i++) {
$.ajax({
async:false,
url: "http://localhost:50473/api/Goods/ShopsGoods/" + sid[i],
type: "get",
dataType: "json",
success:
function (d) {
$("#" + sid[i]).empty();
$(d).each(function () {
$("#" + sid[i]).append(
'<tr>' +
'<td>' + this.Name + '</td>' +
'<td><img src="http://localhost:50473' + this.Img + '" width="50" height="50" /></td>' +
'<td>' + this.Price + '</td>' +
'</tr>'
)
})
}
})
}
}
})
}
//收藏的商品
function loadgoods() {
$.ajax({
url: "http://localhost:50473/api/Goods/GetCollectGoods/" + uid,
type: "get",
dataType: "json",
success:
function (d) {
$("#div").empty();
$(d).each(function () {
$("#div").append(
'<table class="table table-bordered">' +
'<thead>' +
'<tr>' +
'<td>商品名称</td>' +
'<td>商品图片</td>' +
'<td>商品价格</td>' +
'</tr>' +
'</thead>' +
'<tbody>' +
'<tr>' +
'<td>' + this.Goods.Name + '</td>' +
'<td><img src="http://localhost:50473' + this.Goods.Img + '" width="50" height="50" /></td>' +
'<td>' + this.Goods.Price + '</td>' +
'</tr>' +
'</tbody>' +
'</table>'
)
})
}
})
}
loadgoods();
</script>
文件上传:
API控制器:
//文件上传
[HttpPost]
public FileResult UpLoad()
{
return help.UpLoad();
}
退款:
API控制器:
//退款
[HttpGet]
public int DropOrder(string reason, string img, int count, int gid, int uid)
{
string sql = "p_drop";
SqlParameter[] par = new SqlParameter[] {
new SqlParameter("@Reason",reason),
new SqlParameter("@Img",img),
new SqlParameter("@Count",count),
new SqlParameter("@GId",gid),
new SqlParameter("@UId",uid),
new SqlParameter("@Code",SqlDbType.Int)
};
par[5].Direction = ParameterDirection.Output;
DBHelper.ExecuteNonQueryParameter(sql, par);
var code = par[5].Value;
return Convert.ToInt32(code.ToString());
}
//显示退款表
[HttpGet]
public List<DropOrder> GetDropOrders(int uid)
{
var list = db.DropOrders.Include("Goods").Where(x => x.UserId == uid).ToList();
return list;
}
}
}
退款页面(MVC View):
@{
ViewBag.Title = "DropInfo";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h2>我的退款</h2>
<table class="table table-bordered">
<thead>
<tr>
<td>商品名称</td>
<td>退款原因</td>
<td>图片反映</td>
<td>退货数量</td>
</tr>
</thead>
<tbody id="tb"></tbody>
</table>
<script>
var uid = document.cookie;
function load() {
$.ajax({
url: "http://localhost:50473/api/Goods/GetDropOrders?uid="+uid,
type: "get",
dataType: "json",
success:
function (d) {
$("#tb").empty();
$(d).each(function () {
$("#tb").append(
'<tr>' +
'<td>' + this.Goods.Name + '</td>' +
'<td>' + this.Reason + '</td>' +
'<td><img src="http://localhost:50473' + this.Img + '" width="50" height="50" /></td>' +
'<td>' + this.Count + '</td>' +
'</tr>'
)
})
}
})
}
load();
</script>
@{
ViewBag.Title = "Drop";
}
<script src="~/Scripts/jquery-3.3.1.js"></script>
<h2>订单退款</h2>
<table class="table table-bordered">
<tr>
<td>退款商品:</td>
<td> <span id="img"></span> <span id="name"></span> </td>
</tr>
<tr>
<td>已购数量:</td>
<td>
<input id="count" type="text" disabled="disabled" />
</td>
</tr>
<tr>
<td>退货金额:</td>
<td>
<input id="money" type="text" disabled="disabled" />
</td>
</tr>
<tr>
<td>退货原因:</td>
<td>
<input id="reason" type="text" />
</td>
</tr>
<tr>
<td>
上传图片:
<input type="file" id="f1" />
</td>
<td>
<input id="Button1" type="button" value="上传" onclick="ff()" />
</td>
</tr>
<tr>
<td></td>
<td>
<input id="Button2" type="button" value="提交" onclick="add()" />
</td>
</tr>
</table>
<script>
//获取订单id
var oid =@Session["OId"];
//登录人id
var uid =parseInt(document.cookie);
var gid = 0;
//反填信息
function find() {
$.ajax({
url: "http://localhost:50473/api/Goods/FindOrder/"+oid,
type: "get",
dataType: "json",
success:
function (d) {
//获取商品id
gid = d.Goods.Id;
$("#img").append('<img src="http://localhost:50473' + d.Goods.Img + '" width="60" height="60" />');
$("#name").text(d.Goods.Name);
$("#count").val(d.Count);
$("#money").val(d.Count*d.Goods.Price+'元');
}
})
}
find();
//上传图片
var img = new Array(); //获取图片路径
function ff()
{
var formData = new FormData();
var file = document.getElementById("f1").files[0];
formData.append("fileInfo", file);
$.ajax({
url: "http://localhost:50473/api/Goods/UpLoad",
type: "post",
data: formData,
contentType: false,//必须false才会自动加上正确的Content-Type
processData: false,//必须false才会避开jQuery对 formdata 的默认处理,XMLHttpRequest会对 formdata 进行正确的处理
success: function(data) {
if (data.Code < 0) {
alert('上传失败!');
}
else {
alert(data.Msg);
alert(data.Url);
img = (data.Url).split(';');
}
},
error: function(data) {
alert("上传失败!");
}
});
}
//退货
function add() {
$.ajax({
url: "http://localhost:50473/api/Goods/DropOrder",
data: {reason: $("#reason").val(),img:img[0],count:$("#count").val(), gid:gid,uid:uid},
type: "get",
dataType: "json",
success:
function (d) {
if (d>0) {
alert('退货成功!');
}
else {
alert('退货失败!');
}
}
})
}
</script>
来源:oschina
链接:https://my.oschina.net/u/4398725/blog/4428466