/***********************************************************************
* Project: baifenBinfa
* ProjectName: 百分兵法管理系统
* Web: http://chuanyin.com
* Author:
* Email:
* CreateTime: 2024/7/31 14:49:41
* Description: 暂无
***********************************************************************/
using System;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Model.Entities;
using CoreCms.Net.Model.Entities.Expression;
using CoreCms.Net.Model.FromBody;
using CoreCms.Net.Model.ViewModels.UI;
using CoreCms.Net.Filter;
using CoreCms.Net.Loging;
using CoreCms.Net.IServices;
using CoreCms.Net.Utility.Helper;
using CoreCms.Net.Utility.Extensions;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using NPOI.HSSF.UserModel;
using SqlSugar;
using CoreCms.Net.Web.Admin.Infrastructure;
using CoreCms.Net.Services;
namespace CoreCms.Net.Web.Admin.Controllers
{
///
/// 商品表
///
[Description("商品表")]
[Route("api/[controller]/[action]")]
[ApiController]
[RequiredErrorForAdmin]
[Authorize(Permissions.Name)]
public class DistributionGoodsController : ControllerBase
{
private readonly IWebHostEnvironment _webHostEnvironment;
private readonly IDistributionGoodsServices _DistributionGoodsServices;
private readonly ICoreCmsGoodsCategoryServices _coreCmsGoodsCategoryServices;
private readonly ICoreCmsSettingServices _settingServices;
private readonly ICoreCmsBrandServices _brandServices;
///
/// 构造函数
///
public DistributionGoodsController(IWebHostEnvironment webHostEnvironment
, IDistributionGoodsServices CoreCmsGoodsServices
,ICoreCmsGoodsCategoryServices CoreCmsGoodsCategoryServices
,ICoreCmsSettingServices CoreCmsSettingServices,
ICoreCmsBrandServices CoreCmsBrandServices
)
{
_webHostEnvironment = webHostEnvironment;
_DistributionGoodsServices = CoreCmsGoodsServices;
_coreCmsGoodsCategoryServices = CoreCmsGoodsCategoryServices;
_settingServices = CoreCmsSettingServices;
_brandServices=CoreCmsBrandServices;
}
#region 获取列表============================================================
// POST: Api/CoreCmsGoods/GetPageList
///
/// 获取列表
///
///
[HttpPost]
[Description("获取列表")]
public async Task GetPageList()
{
var jm = new AdminUiCallBack();
var pageCurrent = Request.Form["page"].FirstOrDefault().ObjectToInt(1);
var pageSize = Request.Form["limit"].FirstOrDefault().ObjectToInt(30);
var where = PredicateBuilder.True();
//获取排序字段
var orderField = Request.Form["orderField"].FirstOrDefault();
Expression> orderEx = orderField switch
{
"id" => p => p.id,"bn" => p => p.bn,"name" => p => p.name,"brief" => p => p.brief,"image" => p => p.image,"images" => p => p.images,"video" => p => p.video,"productsDistributionType" => p => p.productsDistributionType,"goodsCategoryId" => p => p.goodsCategoryId,"goodsTypeId" => p => p.goodsTypeId,"goodsSkuIds" => p => p.goodsSkuIds,"goodsParamsIds" => p => p.goodsParamsIds,"brandId" => p => p.brandId,"isNomalVirtual" => p => p.isNomalVirtual,"isMarketable" => p => p.isMarketable,"unit" => p => p.unit,"intro" => p => p.intro,"spesDesc" => p => p.spesDesc,"parameters" => p => p.parameters,"commentsCount" => p => p.commentsCount,"viewCount" => p => p.viewCount,"buyCount" => p => p.buyCount,"uptime" => p => p.uptime,"downtime" => p => p.downtime,"sort" => p => p.sort,"labelIds" => p => p.labelIds,"newSpec" => p => p.newSpec,"openSpec" => p => p.openSpec,"createTime" => p => p.createTime,"updateTime" => p => p.updateTime,"isRecommend" => p => p.isRecommend,"isHot" => p => p.isHot,"isDel" => p => p.isDel,"initialSales" => p => p.initialSales,"areaCode" => p => p.areaCode,"publisherId" => p => p.publisherId,"approverId" => p => p.approverId,"auditStatus" => p => p.auditStatus,"auditTime" => p => p.auditTime,
_ => p => p.id
};
//设置排序方式
var orderDirection = Request.Form["orderDirection"].FirstOrDefault();
var orderBy = orderDirection switch
{
"asc" => OrderByType.Asc,
"desc" => OrderByType.Desc,
_ => OrderByType.Desc
};
//查询筛选
//商品ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//商品条码 nvarchar
var bn = Request.Form["bn"].FirstOrDefault();
if (!string.IsNullOrEmpty(bn))
{
where = where.And(p => p.bn.Contains(bn));
}
//商品名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name))
{
where = where.And(p => p.name.Contains(name));
}
//商品简介 nvarchar
var brief = Request.Form["brief"].FirstOrDefault();
if (!string.IsNullOrEmpty(brief))
{
where = where.And(p => p.brief.Contains(brief));
}
//缩略图 nvarchar
var image = Request.Form["image"].FirstOrDefault();
if (!string.IsNullOrEmpty(image))
{
where = where.And(p => p.image.Contains(image));
}
//图集 nvarchar
var images = Request.Form["images"].FirstOrDefault();
if (!string.IsNullOrEmpty(images))
{
where = where.And(p => p.images.Contains(images));
}
//视频 nvarchar
var video = Request.Form["video"].FirstOrDefault();
if (!string.IsNullOrEmpty(video))
{
where = where.And(p => p.video.Contains(video));
}
//佣金分配方式 int
var productsDistributionType = Request.Form["productsDistributionType"].FirstOrDefault().ObjectToInt(0);
if (productsDistributionType > 0)
{
where = where.And(p => p.productsDistributionType == productsDistributionType);
}
//商品分类 int
var goodsCategoryId = Request.Form["goodsCategoryId"].FirstOrDefault().ObjectToInt(0);
if (goodsCategoryId > 0)
{
where = where.And(p => p.goodsCategoryId == goodsCategoryId);
}
//商品类别 int
var goodsTypeId = Request.Form["goodsTypeId"].FirstOrDefault().ObjectToInt(0);
if (goodsTypeId > 0)
{
where = where.And(p => p.goodsTypeId == goodsTypeId);
}
//sku序列 nvarchar
var goodsSkuIds = Request.Form["goodsSkuIds"].FirstOrDefault();
if (!string.IsNullOrEmpty(goodsSkuIds))
{
where = where.And(p => p.goodsSkuIds.Contains(goodsSkuIds));
}
//参数序列 nvarchar
var goodsParamsIds = Request.Form["goodsParamsIds"].FirstOrDefault();
if (!string.IsNullOrEmpty(goodsParamsIds))
{
where = where.And(p => p.goodsParamsIds.Contains(goodsParamsIds));
}
//品牌 int
var brandId = Request.Form["brandId"].FirstOrDefault().ObjectToInt(0);
if (brandId > 0)
{
where = where.And(p => p.brandId == brandId);
}
//是否虚拟商品 bit
var isNomalVirtual = Request.Form["isNomalVirtual"].FirstOrDefault();
if (!string.IsNullOrEmpty(isNomalVirtual) && isNomalVirtual.ToLowerInvariant() == "true")
{
where = where.And(p => p.isNomalVirtual == true);
}
else if (!string.IsNullOrEmpty(isNomalVirtual) && isNomalVirtual.ToLowerInvariant() == "false")
{
where = where.And(p => p.isNomalVirtual == false);
}
//是否上架 bit
var isMarketable = Request.Form["isMarketable"].FirstOrDefault();
if (!string.IsNullOrEmpty(isMarketable) && isMarketable.ToLowerInvariant() == "true")
{
where = where.And(p => p.isMarketable == true);
}
else if (!string.IsNullOrEmpty(isMarketable) && isMarketable.ToLowerInvariant() == "false")
{
where = where.And(p => p.isMarketable == false);
}
//商品单位 nvarchar
var unit = Request.Form["unit"].FirstOrDefault();
if (!string.IsNullOrEmpty(unit))
{
where = where.And(p => p.unit.Contains(unit));
}
//商品详情 nvarchar
var intro = Request.Form["intro"].FirstOrDefault();
if (!string.IsNullOrEmpty(intro))
{
where = where.And(p => p.intro.Contains(intro));
}
//商品规格序列号存储 nvarchar
var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
if (!string.IsNullOrEmpty(spesDesc))
{
where = where.And(p => p.spesDesc.Contains(spesDesc));
}
//参数序列化 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters))
{
where = where.And(p => p.parameters.Contains(parameters));
}
//评论次数 int
var commentsCount = Request.Form["commentsCount"].FirstOrDefault().ObjectToInt(0);
if (commentsCount > 0)
{
where = where.And(p => p.commentsCount == commentsCount);
}
//浏览次数 int
var viewCount = Request.Form["viewCount"].FirstOrDefault().ObjectToInt(0);
if (viewCount > 0)
{
where = where.And(p => p.viewCount == viewCount);
}
//购买次数 int
var buyCount = Request.Form["buyCount"].FirstOrDefault().ObjectToInt(0);
if (buyCount > 0)
{
where = where.And(p => p.buyCount == buyCount);
}
//上架时间 datetime
var uptime = Request.Form["uptime"].FirstOrDefault();
if (!string.IsNullOrEmpty(uptime))
{
if (uptime.Contains("到"))
{
var dts = uptime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.uptime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.uptime < dtEnd);
}
else
{
var dt = uptime.ObjectToDate();
where = where.And(p => p.uptime > dt);
}
}
//下架时间 datetime
var downtime = Request.Form["downtime"].FirstOrDefault();
if (!string.IsNullOrEmpty(downtime))
{
if (downtime.Contains("到"))
{
var dts = downtime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.downtime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.downtime < dtEnd);
}
else
{
var dt = downtime.ObjectToDate();
where = where.And(p => p.downtime > dt);
}
}
//商品排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0)
{
where = where.And(p => p.sort == sort);
}
//标签id逗号分隔 nvarchar
var labelIds = Request.Form["labelIds"].FirstOrDefault();
if (!string.IsNullOrEmpty(labelIds))
{
where = where.And(p => p.labelIds.Contains(labelIds));
}
//自定义规格名称 nvarchar
var newSpec = Request.Form["newSpec"].FirstOrDefault();
if (!string.IsNullOrEmpty(newSpec))
{
where = where.And(p => p.newSpec.Contains(newSpec));
}
//开启规则 int
var openSpec = Request.Form["openSpec"].FirstOrDefault().ObjectToInt(0);
if (openSpec > 0)
{
where = where.And(p => p.openSpec == openSpec);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//是否推荐 bit
var isRecommend = Request.Form["isRecommend"].FirstOrDefault();
if (!string.IsNullOrEmpty(isRecommend) && isRecommend.ToLowerInvariant() == "true")
{
where = where.And(p => p.isRecommend == true);
}
else if (!string.IsNullOrEmpty(isRecommend) && isRecommend.ToLowerInvariant() == "false")
{
where = where.And(p => p.isRecommend == false);
}
//是否热门 bit
var isHot = Request.Form["isHot"].FirstOrDefault();
if (!string.IsNullOrEmpty(isHot) && isHot.ToLowerInvariant() == "true")
{
where = where.And(p => p.isHot == true);
}
else if (!string.IsNullOrEmpty(isHot) && isHot.ToLowerInvariant() == "false")
{
where = where.And(p => p.isHot == false);
}
//是否删除 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDel == true);
}
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDel == false);
}
//初始销量 int
var initialSales = Request.Form["initialSales"].FirstOrDefault().ObjectToInt(0);
if (initialSales > 0)
{
where = where.And(p => p.initialSales == initialSales);
}
// nvarchar
var areaCode = Request.Form["areaCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(areaCode))
{
where = where.And(p => p.areaCode.Contains(areaCode));
}
// int
var publisherId = Request.Form["publisherId"].FirstOrDefault().ObjectToInt(0);
if (publisherId > 0)
{
where = where.And(p => p.publisherId == publisherId);
}
// int
var approverId = Request.Form["approverId"].FirstOrDefault().ObjectToInt(0);
if (approverId > 0)
{
where = where.And(p => p.approverId == approverId);
}
// int
var auditStatus = Request.Form["auditStatus"].FirstOrDefault().ObjectToInt(0);
if (auditStatus > 0)
{
where = where.And(p => p.auditStatus ==(AuditStatusType) auditStatus);
}
// datetime
var auditTime = Request.Form["auditTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(auditTime))
{
if (auditTime.Contains("到"))
{
var dts = auditTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.auditTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.auditTime < dtEnd);
}
else
{
var dt = auditTime.ObjectToDate();
where = where.And(p => p.auditTime > dt);
}
}
//where = where.And(p => p.publisherId != null);
//获取数据
var list = await _DistributionGoodsServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
//返回数据
jm.data = list;
jm.code = 0;
jm.count = list.TotalCount;
jm.msg = "数据调用成功!";
return jm;
}
#endregion
#region 首页数据============================================================
// POST: Api/CoreCmsGoods/GetIndex
///
/// 首页数据
///
///
[HttpPost]
[Description("首页数据")]
public async Task< AdminUiCallBack> GetIndex()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
//获取商品分类
var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow, p => p.sort, OrderByType.Asc, true, true);
//获取品牌
var brands = await _brandServices.QueryAsync(true, true);
var auditStatusType = EnumHelper.EnumToList();
jm.data = new
{
categories = GoodsHelper.GetTree(categories),
categoriesAll = categories,
brands,
auditStatusType
};
return jm;
}
#endregion
#region 创建数据============================================================
// POST: Api/CoreCmsGoods/GetCreate
///
/// 创建数据
///
///
[HttpPost]
[Description("创建数据")]
public AdminUiCallBack GetCreate()
{
//返回数据
var jm = new AdminUiCallBack { code = 0 };
return jm;
}
#endregion
#region 创建提交============================================================
// POST: Api/CoreCmsGoods/DoCreate
///
/// 创建提交
///
///
///
[HttpPost]
[Description("创建提交")]
public async Task DoCreate([FromBody]CoreCmsGoods entity)
{
var jm = await _DistributionGoodsServices.InsertAsync(entity);
return jm;
}
#endregion
#region 编辑数据============================================================
// POST: Api/CoreCmsGoods/GetEdit
///
/// 编辑数据
///
///
///
[HttpPost]
[Description("编辑数据")]
public async Task GetEdit([FromBody]FMIntId entity)
{
var jm = await _DistributionGoodsServices.QueryID(entity.id);
return jm;
}
#endregion
#region 编辑提交============================================================
// POST: Api/CoreCmsGoods/Edit
///
/// 编辑提交
///
///
///
[HttpPost]
[Description("编辑提交")]
public async Task DoEdit([FromBody]CoreCmsGoods entity)
{
var jm = await _DistributionGoodsServices.UpdateAsync(entity);
return jm;
}
#endregion
#region 删除数据============================================================
// POST: Api/CoreCmsGoods/DoDelete/10
///
/// 单选删除
///
///
///
[HttpPost]
[Description("单选删除")]
public async Task DoDelete([FromBody]FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _DistributionGoodsServices.ExistsAsync(p => p.id == entity.id, true);
if (!model)
{
jm.msg = GlobalConstVars.DataisNo;
return jm;
}
jm = await _DistributionGoodsServices.DeleteByIdAsync(entity.id);
return jm;
}
#endregion
#region 批量删除============================================================
// POST: Api/CoreCmsGoods/DoBatchDelete/10,11,20
///
/// 批量删除
///
///
///
[HttpPost]
[Description("批量删除")]
public async Task DoBatchDelete([FromBody]FMArrayIntIds entity)
{
var jm = await _DistributionGoodsServices.DeleteByIdsAsync(entity.id);
return jm;
}
#endregion
#region 预览数据============================================================
// POST: Api/CoreCmsGoods/GetDetails/10
///
/// 预览数据
///
///
///
[HttpPost]
[Description("预览数据")]
public async Task GetDetails([FromBody]FMIntId entity)
{
var jm = new AdminUiCallBack();
var model = await _DistributionGoodsServices.QueryByIdAsync(entity.id, false);
if (model == null)
{
jm.msg = "不存在此信息";
return jm;
}
jm.code = 0;
jm.data = model;
return jm;
}
#endregion
#region 选择导出============================================================
// POST: Api/CoreCmsGoods/SelectExportExcel/10
///
/// 选择导出
///
///
///
[HttpPost]
[Description("选择导出")]
public async Task SelectExportExcel([FromBody]FMArrayIntIds entity)
{
var jm = new AdminUiCallBack();
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _DistributionGoodsServices.QueryListByClauseAsync(p => entity.id.Contains(p.id), p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cellNum = 0;
var cell0 = headerRow.CreateCell(cellNum);
cell0.SetCellValue("商品ID");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell1 = headerRow.CreateCell(cellNum);
cell1.SetCellValue("商品条码");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell2 = headerRow.CreateCell(cellNum);
cell2.SetCellValue("商品名称");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell3 = headerRow.CreateCell(cellNum);
cell3.SetCellValue("商品简介");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell4 = headerRow.CreateCell(cellNum);
cell4.SetCellValue("缩略图");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell5 = headerRow.CreateCell(cellNum);
cell5.SetCellValue("图集");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell6 = headerRow.CreateCell(cellNum);
cell6.SetCellValue("视频");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell7 = headerRow.CreateCell(cellNum);
cell7.SetCellValue("佣金分配方式");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell8 = headerRow.CreateCell(cellNum);
cell8.SetCellValue("商品分类");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell9 = headerRow.CreateCell(cellNum);
cell9.SetCellValue("商品类别");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell10 = headerRow.CreateCell(cellNum);
cell10.SetCellValue("sku序列");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell11 = headerRow.CreateCell(cellNum);
cell11.SetCellValue("参数序列");
cell11.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell12 = headerRow.CreateCell(cellNum);
cell12.SetCellValue("品牌");
cell12.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell13 = headerRow.CreateCell(cellNum);
cell13.SetCellValue("是否虚拟商品");
cell13.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell14 = headerRow.CreateCell(cellNum);
cell14.SetCellValue("是否上架");
cell14.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell15 = headerRow.CreateCell(cellNum);
cell15.SetCellValue("商品单位");
cell15.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell16 = headerRow.CreateCell(cellNum);
cell16.SetCellValue("商品详情");
cell16.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell17 = headerRow.CreateCell(cellNum);
cell17.SetCellValue("商品规格序列号存储");
cell17.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell18 = headerRow.CreateCell(cellNum);
cell18.SetCellValue("参数序列化");
cell18.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell19 = headerRow.CreateCell(cellNum);
cell19.SetCellValue("评论次数");
cell19.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell20 = headerRow.CreateCell(cellNum);
cell20.SetCellValue("浏览次数");
cell20.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell21 = headerRow.CreateCell(cellNum);
cell21.SetCellValue("购买次数");
cell21.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell22 = headerRow.CreateCell(cellNum);
cell22.SetCellValue("上架时间");
cell22.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell23 = headerRow.CreateCell(cellNum);
cell23.SetCellValue("下架时间");
cell23.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell24 = headerRow.CreateCell(cellNum);
cell24.SetCellValue("商品排序");
cell24.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell25 = headerRow.CreateCell(cellNum);
cell25.SetCellValue("标签id逗号分隔");
cell25.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell26 = headerRow.CreateCell(cellNum);
cell26.SetCellValue("自定义规格名称");
cell26.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell27 = headerRow.CreateCell(cellNum);
cell27.SetCellValue("开启规则");
cell27.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell28 = headerRow.CreateCell(cellNum);
cell28.SetCellValue("创建时间");
cell28.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell29 = headerRow.CreateCell(cellNum);
cell29.SetCellValue("更新时间");
cell29.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell30 = headerRow.CreateCell(cellNum);
cell30.SetCellValue("是否推荐");
cell30.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell31 = headerRow.CreateCell(cellNum);
cell31.SetCellValue("是否热门");
cell31.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell32 = headerRow.CreateCell(cellNum);
cell32.SetCellValue("是否删除");
cell32.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell33 = headerRow.CreateCell(cellNum);
cell33.SetCellValue("初始销量");
cell33.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell34 = headerRow.CreateCell(cellNum);
cell34.SetCellValue("");
cell34.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell35 = headerRow.CreateCell(cellNum);
cell35.SetCellValue("");
cell35.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell36 = headerRow.CreateCell(cellNum);
cell36.SetCellValue("");
cell36.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell37 = headerRow.CreateCell(cellNum);
cell37.SetCellValue("");
cell37.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell38 = headerRow.CreateCell(cellNum);
cell38.SetCellValue("");
cell38.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var cellNumTemp = 0;
var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
rowTemp1.SetCellValue(listModel[i].bn.ToString());
rowTemp1.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
rowTemp2.SetCellValue(listModel[i].name.ToString());
rowTemp2.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
rowTemp3.SetCellValue(listModel[i].brief.ToString());
rowTemp3.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
rowTemp4.SetCellValue(listModel[i].image.ToString());
rowTemp4.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
rowTemp5.SetCellValue(listModel[i].images.ToString());
rowTemp5.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
rowTemp6.SetCellValue(listModel[i].video.ToString());
rowTemp6.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
rowTemp7.SetCellValue(listModel[i].productsDistributionType.ToString());
rowTemp7.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
rowTemp8.SetCellValue(listModel[i].goodsCategoryId.ToString());
rowTemp8.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
rowTemp9.SetCellValue(listModel[i].goodsTypeId.ToString());
rowTemp9.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
rowTemp10.SetCellValue(listModel[i].goodsSkuIds.ToString());
rowTemp10.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
rowTemp11.SetCellValue(listModel[i].goodsParamsIds.ToString());
rowTemp11.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
rowTemp12.SetCellValue(listModel[i].brandId.ToString());
rowTemp12.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
rowTemp13.SetCellValue(listModel[i].isNomalVirtual.ToString());
rowTemp13.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
rowTemp14.SetCellValue(listModel[i].isMarketable.ToString());
rowTemp14.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
rowTemp15.SetCellValue(listModel[i].unit.ToString());
rowTemp15.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
rowTemp16.SetCellValue(listModel[i].intro.ToString());
rowTemp16.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
rowTemp17.SetCellValue(listModel[i].spesDesc.ToString());
rowTemp17.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
rowTemp18.SetCellValue(listModel[i].parameters.ToString());
rowTemp18.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
rowTemp19.SetCellValue(listModel[i].commentsCount.ToString());
rowTemp19.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp20 = rowTemp.CreateCell(cellNumTemp);
rowTemp20.SetCellValue(listModel[i].viewCount.ToString());
rowTemp20.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp21 = rowTemp.CreateCell(cellNumTemp);
rowTemp21.SetCellValue(listModel[i].buyCount.ToString());
rowTemp21.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp22 = rowTemp.CreateCell(cellNumTemp);
rowTemp22.SetCellValue(listModel[i].uptime.ToString());
rowTemp22.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp23 = rowTemp.CreateCell(cellNumTemp);
rowTemp23.SetCellValue(listModel[i].downtime.ToString());
rowTemp23.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp24 = rowTemp.CreateCell(cellNumTemp);
rowTemp24.SetCellValue(listModel[i].sort.ToString());
rowTemp24.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp25 = rowTemp.CreateCell(cellNumTemp);
rowTemp25.SetCellValue(listModel[i].labelIds.ToString());
rowTemp25.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp26 = rowTemp.CreateCell(cellNumTemp);
rowTemp26.SetCellValue(listModel[i].newSpec.ToString());
rowTemp26.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp27 = rowTemp.CreateCell(cellNumTemp);
rowTemp27.SetCellValue(listModel[i].openSpec.ToString());
rowTemp27.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp28 = rowTemp.CreateCell(cellNumTemp);
rowTemp28.SetCellValue(listModel[i].createTime.ToString());
rowTemp28.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp29 = rowTemp.CreateCell(cellNumTemp);
rowTemp29.SetCellValue(listModel[i].updateTime.ToString());
rowTemp29.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp30 = rowTemp.CreateCell(cellNumTemp);
rowTemp30.SetCellValue(listModel[i].isRecommend.ToString());
rowTemp30.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp31 = rowTemp.CreateCell(cellNumTemp);
rowTemp31.SetCellValue(listModel[i].isHot.ToString());
rowTemp31.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp32 = rowTemp.CreateCell(cellNumTemp);
rowTemp32.SetCellValue(listModel[i].isDel.ToString());
rowTemp32.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp33 = rowTemp.CreateCell(cellNumTemp);
rowTemp33.SetCellValue(listModel[i].initialSales.ToString());
rowTemp33.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp34 = rowTemp.CreateCell(cellNumTemp);
rowTemp34.SetCellValue(listModel[i].areaCode.ToString());
rowTemp34.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp35 = rowTemp.CreateCell(cellNumTemp);
rowTemp35.SetCellValue(listModel[i].publisherId.ToString());
rowTemp35.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp36 = rowTemp.CreateCell(cellNumTemp);
rowTemp36.SetCellValue(listModel[i].approverId.ToString());
rowTemp36.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp37 = rowTemp.CreateCell(cellNumTemp);
rowTemp37.SetCellValue(listModel[i].auditStatus.ToString());
rowTemp37.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp38 = rowTemp.CreateCell(cellNumTemp);
rowTemp38.SetCellValue(listModel[i].auditTime.ToString());
rowTemp38.CellStyle = commonCellStyle;
cellNumTemp++;
}
// 导出excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsGoods导出(选择结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region 查询导出============================================================
// POST: Api/CoreCmsGoods/QueryExportExcel/10
///
/// 查询导出
///
///
[HttpPost]
[Description("查询导出")]
public async Task QueryExportExcel()
{
var jm = new AdminUiCallBack();
var where = PredicateBuilder.True();
//查询筛选
//商品ID int
var id = Request.Form["id"].FirstOrDefault().ObjectToInt(0);
if (id > 0)
{
where = where.And(p => p.id == id);
}
//商品条码 nvarchar
var bn = Request.Form["bn"].FirstOrDefault();
if (!string.IsNullOrEmpty(bn))
{
where = where.And(p => p.bn.Contains(bn));
}
//商品名称 nvarchar
var name = Request.Form["name"].FirstOrDefault();
if (!string.IsNullOrEmpty(name))
{
where = where.And(p => p.name.Contains(name));
}
//商品简介 nvarchar
var brief = Request.Form["brief"].FirstOrDefault();
if (!string.IsNullOrEmpty(brief))
{
where = where.And(p => p.brief.Contains(brief));
}
//缩略图 nvarchar
var image = Request.Form["image"].FirstOrDefault();
if (!string.IsNullOrEmpty(image))
{
where = where.And(p => p.image.Contains(image));
}
//图集 nvarchar
var images = Request.Form["images"].FirstOrDefault();
if (!string.IsNullOrEmpty(images))
{
where = where.And(p => p.images.Contains(images));
}
//视频 nvarchar
var video = Request.Form["video"].FirstOrDefault();
if (!string.IsNullOrEmpty(video))
{
where = where.And(p => p.video.Contains(video));
}
//佣金分配方式 int
var productsDistributionType = Request.Form["productsDistributionType"].FirstOrDefault().ObjectToInt(0);
if (productsDistributionType > 0)
{
where = where.And(p => p.productsDistributionType == productsDistributionType);
}
//商品分类 int
var goodsCategoryId = Request.Form["goodsCategoryId"].FirstOrDefault().ObjectToInt(0);
if (goodsCategoryId > 0)
{
where = where.And(p => p.goodsCategoryId == goodsCategoryId);
}
//商品类别 int
var goodsTypeId = Request.Form["goodsTypeId"].FirstOrDefault().ObjectToInt(0);
if (goodsTypeId > 0)
{
where = where.And(p => p.goodsTypeId == goodsTypeId);
}
//sku序列 nvarchar
var goodsSkuIds = Request.Form["goodsSkuIds"].FirstOrDefault();
if (!string.IsNullOrEmpty(goodsSkuIds))
{
where = where.And(p => p.goodsSkuIds.Contains(goodsSkuIds));
}
//参数序列 nvarchar
var goodsParamsIds = Request.Form["goodsParamsIds"].FirstOrDefault();
if (!string.IsNullOrEmpty(goodsParamsIds))
{
where = where.And(p => p.goodsParamsIds.Contains(goodsParamsIds));
}
//品牌 int
var brandId = Request.Form["brandId"].FirstOrDefault().ObjectToInt(0);
if (brandId > 0)
{
where = where.And(p => p.brandId == brandId);
}
//是否虚拟商品 bit
var isNomalVirtual = Request.Form["isNomalVirtual"].FirstOrDefault();
if (!string.IsNullOrEmpty(isNomalVirtual) && isNomalVirtual.ToLowerInvariant() == "true")
{
where = where.And(p => p.isNomalVirtual == true);
}
else if (!string.IsNullOrEmpty(isNomalVirtual) && isNomalVirtual.ToLowerInvariant() == "false")
{
where = where.And(p => p.isNomalVirtual == false);
}
//是否上架 bit
var isMarketable = Request.Form["isMarketable"].FirstOrDefault();
if (!string.IsNullOrEmpty(isMarketable) && isMarketable.ToLowerInvariant() == "true")
{
where = where.And(p => p.isMarketable == true);
}
else if (!string.IsNullOrEmpty(isMarketable) && isMarketable.ToLowerInvariant() == "false")
{
where = where.And(p => p.isMarketable == false);
}
//商品单位 nvarchar
var unit = Request.Form["unit"].FirstOrDefault();
if (!string.IsNullOrEmpty(unit))
{
where = where.And(p => p.unit.Contains(unit));
}
//商品详情 nvarchar
var intro = Request.Form["intro"].FirstOrDefault();
if (!string.IsNullOrEmpty(intro))
{
where = where.And(p => p.intro.Contains(intro));
}
//商品规格序列号存储 nvarchar
var spesDesc = Request.Form["spesDesc"].FirstOrDefault();
if (!string.IsNullOrEmpty(spesDesc))
{
where = where.And(p => p.spesDesc.Contains(spesDesc));
}
//参数序列化 nvarchar
var parameters = Request.Form["parameters"].FirstOrDefault();
if (!string.IsNullOrEmpty(parameters))
{
where = where.And(p => p.parameters.Contains(parameters));
}
//评论次数 int
var commentsCount = Request.Form["commentsCount"].FirstOrDefault().ObjectToInt(0);
if (commentsCount > 0)
{
where = where.And(p => p.commentsCount == commentsCount);
}
//浏览次数 int
var viewCount = Request.Form["viewCount"].FirstOrDefault().ObjectToInt(0);
if (viewCount > 0)
{
where = where.And(p => p.viewCount == viewCount);
}
//购买次数 int
var buyCount = Request.Form["buyCount"].FirstOrDefault().ObjectToInt(0);
if (buyCount > 0)
{
where = where.And(p => p.buyCount == buyCount);
}
//上架时间 datetime
var uptime = Request.Form["uptime"].FirstOrDefault();
if (!string.IsNullOrEmpty(uptime))
{
if (uptime.Contains("到"))
{
var dts = uptime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.uptime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.uptime < dtEnd);
}
else
{
var dt = uptime.ObjectToDate();
where = where.And(p => p.uptime > dt);
}
}
//下架时间 datetime
var downtime = Request.Form["downtime"].FirstOrDefault();
if (!string.IsNullOrEmpty(downtime))
{
if (downtime.Contains("到"))
{
var dts = downtime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.downtime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.downtime < dtEnd);
}
else
{
var dt = downtime.ObjectToDate();
where = where.And(p => p.downtime > dt);
}
}
//商品排序 int
var sort = Request.Form["sort"].FirstOrDefault().ObjectToInt(0);
if (sort > 0)
{
where = where.And(p => p.sort == sort);
}
//标签id逗号分隔 nvarchar
var labelIds = Request.Form["labelIds"].FirstOrDefault();
if (!string.IsNullOrEmpty(labelIds))
{
where = where.And(p => p.labelIds.Contains(labelIds));
}
//自定义规格名称 nvarchar
var newSpec = Request.Form["newSpec"].FirstOrDefault();
if (!string.IsNullOrEmpty(newSpec))
{
where = where.And(p => p.newSpec.Contains(newSpec));
}
//开启规则 int
var openSpec = Request.Form["openSpec"].FirstOrDefault().ObjectToInt(0);
if (openSpec > 0)
{
where = where.And(p => p.openSpec == openSpec);
}
//创建时间 datetime
var createTime = Request.Form["createTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(createTime))
{
if (createTime.Contains("到"))
{
var dts = createTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.createTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.createTime < dtEnd);
}
else
{
var dt = createTime.ObjectToDate();
where = where.And(p => p.createTime > dt);
}
}
//更新时间 datetime
var updateTime = Request.Form["updateTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(updateTime))
{
if (updateTime.Contains("到"))
{
var dts = updateTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.updateTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.updateTime < dtEnd);
}
else
{
var dt = updateTime.ObjectToDate();
where = where.And(p => p.updateTime > dt);
}
}
//是否推荐 bit
var isRecommend = Request.Form["isRecommend"].FirstOrDefault();
if (!string.IsNullOrEmpty(isRecommend) && isRecommend.ToLowerInvariant() == "true")
{
where = where.And(p => p.isRecommend == true);
}
else if (!string.IsNullOrEmpty(isRecommend) && isRecommend.ToLowerInvariant() == "false")
{
where = where.And(p => p.isRecommend == false);
}
//是否热门 bit
var isHot = Request.Form["isHot"].FirstOrDefault();
if (!string.IsNullOrEmpty(isHot) && isHot.ToLowerInvariant() == "true")
{
where = where.And(p => p.isHot == true);
}
else if (!string.IsNullOrEmpty(isHot) && isHot.ToLowerInvariant() == "false")
{
where = where.And(p => p.isHot == false);
}
//是否删除 bit
var isDel = Request.Form["isDel"].FirstOrDefault();
if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "true")
{
where = where.And(p => p.isDel == true);
}
else if (!string.IsNullOrEmpty(isDel) && isDel.ToLowerInvariant() == "false")
{
where = where.And(p => p.isDel == false);
}
//初始销量 int
var initialSales = Request.Form["initialSales"].FirstOrDefault().ObjectToInt(0);
if (initialSales > 0)
{
where = where.And(p => p.initialSales == initialSales);
}
// nvarchar
var areaCode = Request.Form["areaCode"].FirstOrDefault();
if (!string.IsNullOrEmpty(areaCode))
{
where = where.And(p => p.areaCode.Contains(areaCode));
}
// int
var publisherId = Request.Form["publisherId"].FirstOrDefault().ObjectToInt(0);
if (publisherId > 0)
{
where = where.And(p => p.publisherId == publisherId);
}
// int
var approverId = Request.Form["approverId"].FirstOrDefault().ObjectToInt(0);
if (approverId > 0)
{
where = where.And(p => p.approverId == approverId);
}
// int
var auditStatus = Request.Form["auditStatus"].FirstOrDefault().ObjectToInt(0);
if (auditStatus > 0)
{
where = where.And(p => p.auditStatus == (AuditStatusType)auditStatus);
}
// datetime
var auditTime = Request.Form["auditTime"].FirstOrDefault();
if (!string.IsNullOrEmpty(auditTime))
{
if (auditTime.Contains("到"))
{
var dts = auditTime.Split("到");
var dtStart = dts[0].Trim().ObjectToDate();
where = where.And(p => p.auditTime > dtStart);
var dtEnd = dts[1].Trim().ObjectToDate();
where = where.And(p => p.auditTime < dtEnd);
}
else
{
var dt = auditTime.ObjectToDate();
where = where.And(p => p.auditTime > dt);
}
}
//获取数据
//创建Excel文件的对象
var book = new HSSFWorkbook();
//添加一个sheet
var mySheet = book.CreateSheet("Sheet1");
//获取list数据
var listModel = await _DistributionGoodsServices.QueryListByClauseAsync(where, p => p.id, OrderByType.Asc, true);
//给sheet1添加第一行的头部标题
var headerRow = mySheet.CreateRow(0);
var headerStyle = ExcelHelper.GetHeaderStyle(book);
var cellNum = 0;
var cell0 = headerRow.CreateCell(cellNum);
cell0.SetCellValue("商品ID");
cell0.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell1 = headerRow.CreateCell(cellNum);
cell1.SetCellValue("商品条码");
cell1.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell2 = headerRow.CreateCell(cellNum);
cell2.SetCellValue("商品名称");
cell2.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell3 = headerRow.CreateCell(cellNum);
cell3.SetCellValue("商品简介");
cell3.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell4 = headerRow.CreateCell(cellNum);
cell4.SetCellValue("缩略图");
cell4.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell5 = headerRow.CreateCell(cellNum);
cell5.SetCellValue("图集");
cell5.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell6 = headerRow.CreateCell(cellNum);
cell6.SetCellValue("视频");
cell6.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell7 = headerRow.CreateCell(cellNum);
cell7.SetCellValue("佣金分配方式");
cell7.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell8 = headerRow.CreateCell(cellNum);
cell8.SetCellValue("商品分类");
cell8.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell9 = headerRow.CreateCell(cellNum);
cell9.SetCellValue("商品类别");
cell9.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell10 = headerRow.CreateCell(cellNum);
cell10.SetCellValue("sku序列");
cell10.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell11 = headerRow.CreateCell(cellNum);
cell11.SetCellValue("参数序列");
cell11.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell12 = headerRow.CreateCell(cellNum);
cell12.SetCellValue("品牌");
cell12.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell13 = headerRow.CreateCell(cellNum);
cell13.SetCellValue("是否虚拟商品");
cell13.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell14 = headerRow.CreateCell(cellNum);
cell14.SetCellValue("是否上架");
cell14.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell15 = headerRow.CreateCell(cellNum);
cell15.SetCellValue("商品单位");
cell15.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell16 = headerRow.CreateCell(cellNum);
cell16.SetCellValue("商品详情");
cell16.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell17 = headerRow.CreateCell(cellNum);
cell17.SetCellValue("商品规格序列号存储");
cell17.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell18 = headerRow.CreateCell(cellNum);
cell18.SetCellValue("参数序列化");
cell18.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell19 = headerRow.CreateCell(cellNum);
cell19.SetCellValue("评论次数");
cell19.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell20 = headerRow.CreateCell(cellNum);
cell20.SetCellValue("浏览次数");
cell20.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell21 = headerRow.CreateCell(cellNum);
cell21.SetCellValue("购买次数");
cell21.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell22 = headerRow.CreateCell(cellNum);
cell22.SetCellValue("上架时间");
cell22.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell23 = headerRow.CreateCell(cellNum);
cell23.SetCellValue("下架时间");
cell23.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell24 = headerRow.CreateCell(cellNum);
cell24.SetCellValue("商品排序");
cell24.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell25 = headerRow.CreateCell(cellNum);
cell25.SetCellValue("标签id逗号分隔");
cell25.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell26 = headerRow.CreateCell(cellNum);
cell26.SetCellValue("自定义规格名称");
cell26.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell27 = headerRow.CreateCell(cellNum);
cell27.SetCellValue("开启规则");
cell27.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell28 = headerRow.CreateCell(cellNum);
cell28.SetCellValue("创建时间");
cell28.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell29 = headerRow.CreateCell(cellNum);
cell29.SetCellValue("更新时间");
cell29.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell30 = headerRow.CreateCell(cellNum);
cell30.SetCellValue("是否推荐");
cell30.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell31 = headerRow.CreateCell(cellNum);
cell31.SetCellValue("是否热门");
cell31.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell32 = headerRow.CreateCell(cellNum);
cell32.SetCellValue("是否删除");
cell32.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell33 = headerRow.CreateCell(cellNum);
cell33.SetCellValue("初始销量");
cell33.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell34 = headerRow.CreateCell(cellNum);
cell34.SetCellValue("");
cell34.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell35 = headerRow.CreateCell(cellNum);
cell35.SetCellValue("");
cell35.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell36 = headerRow.CreateCell(cellNum);
cell36.SetCellValue("");
cell36.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell37 = headerRow.CreateCell(cellNum);
cell37.SetCellValue("");
cell37.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
var cell38 = headerRow.CreateCell(cellNum);
cell38.SetCellValue("");
cell38.CellStyle = headerStyle;
mySheet.SetColumnWidth(cellNum, 10 * 256);
cellNum++;
headerRow.Height = 30 * 20;
var commonCellStyle = ExcelHelper.GetCommonStyle(book);
//将数据逐步写入sheet1各个行
for (var i = 0; i < listModel.Count; i++)
{
var rowTemp = mySheet.CreateRow(i + 1);
var cellNumTemp = 0;
var rowTemp0 = rowTemp.CreateCell(cellNumTemp);
rowTemp0.SetCellValue(listModel[i].id.ToString());
rowTemp0.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp1 = rowTemp.CreateCell(cellNumTemp);
rowTemp1.SetCellValue(listModel[i].bn.ToString());
rowTemp1.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp2 = rowTemp.CreateCell(cellNumTemp);
rowTemp2.SetCellValue(listModel[i].name.ToString());
rowTemp2.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp3 = rowTemp.CreateCell(cellNumTemp);
rowTemp3.SetCellValue(listModel[i].brief.ToString());
rowTemp3.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp4 = rowTemp.CreateCell(cellNumTemp);
rowTemp4.SetCellValue(listModel[i].image.ToString());
rowTemp4.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp5 = rowTemp.CreateCell(cellNumTemp);
rowTemp5.SetCellValue(listModel[i].images.ToString());
rowTemp5.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp6 = rowTemp.CreateCell(cellNumTemp);
rowTemp6.SetCellValue(listModel[i].video.ToString());
rowTemp6.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp7 = rowTemp.CreateCell(cellNumTemp);
rowTemp7.SetCellValue(listModel[i].productsDistributionType.ToString());
rowTemp7.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp8 = rowTemp.CreateCell(cellNumTemp);
rowTemp8.SetCellValue(listModel[i].goodsCategoryId.ToString());
rowTemp8.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp9 = rowTemp.CreateCell(cellNumTemp);
rowTemp9.SetCellValue(listModel[i].goodsTypeId.ToString());
rowTemp9.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp10 = rowTemp.CreateCell(cellNumTemp);
rowTemp10.SetCellValue(listModel[i].goodsSkuIds.ToString());
rowTemp10.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp11 = rowTemp.CreateCell(cellNumTemp);
rowTemp11.SetCellValue(listModel[i].goodsParamsIds.ToString());
rowTemp11.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp12 = rowTemp.CreateCell(cellNumTemp);
rowTemp12.SetCellValue(listModel[i].brandId.ToString());
rowTemp12.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp13 = rowTemp.CreateCell(cellNumTemp);
rowTemp13.SetCellValue(listModel[i].isNomalVirtual.ToString());
rowTemp13.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp14 = rowTemp.CreateCell(cellNumTemp);
rowTemp14.SetCellValue(listModel[i].isMarketable.ToString());
rowTemp14.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp15 = rowTemp.CreateCell(cellNumTemp);
rowTemp15.SetCellValue(listModel[i].unit.ToString());
rowTemp15.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp16 = rowTemp.CreateCell(cellNumTemp);
rowTemp16.SetCellValue(listModel[i].intro.ToString());
rowTemp16.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp17 = rowTemp.CreateCell(cellNumTemp);
rowTemp17.SetCellValue(listModel[i].spesDesc.ToString());
rowTemp17.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp18 = rowTemp.CreateCell(cellNumTemp);
rowTemp18.SetCellValue(listModel[i].parameters.ToString());
rowTemp18.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp19 = rowTemp.CreateCell(cellNumTemp);
rowTemp19.SetCellValue(listModel[i].commentsCount.ToString());
rowTemp19.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp20 = rowTemp.CreateCell(cellNumTemp);
rowTemp20.SetCellValue(listModel[i].viewCount.ToString());
rowTemp20.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp21 = rowTemp.CreateCell(cellNumTemp);
rowTemp21.SetCellValue(listModel[i].buyCount.ToString());
rowTemp21.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp22 = rowTemp.CreateCell(cellNumTemp);
rowTemp22.SetCellValue(listModel[i].uptime.ToString());
rowTemp22.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp23 = rowTemp.CreateCell(cellNumTemp);
rowTemp23.SetCellValue(listModel[i].downtime.ToString());
rowTemp23.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp24 = rowTemp.CreateCell(cellNumTemp);
rowTemp24.SetCellValue(listModel[i].sort.ToString());
rowTemp24.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp25 = rowTemp.CreateCell(cellNumTemp);
rowTemp25.SetCellValue(listModel[i].labelIds.ToString());
rowTemp25.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp26 = rowTemp.CreateCell(cellNumTemp);
rowTemp26.SetCellValue(listModel[i].newSpec.ToString());
rowTemp26.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp27 = rowTemp.CreateCell(cellNumTemp);
rowTemp27.SetCellValue(listModel[i].openSpec.ToString());
rowTemp27.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp28 = rowTemp.CreateCell(cellNumTemp);
rowTemp28.SetCellValue(listModel[i].createTime.ToString());
rowTemp28.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp29 = rowTemp.CreateCell(cellNumTemp);
rowTemp29.SetCellValue(listModel[i].updateTime.ToString());
rowTemp29.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp30 = rowTemp.CreateCell(cellNumTemp);
rowTemp30.SetCellValue(listModel[i].isRecommend.ToString());
rowTemp30.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp31 = rowTemp.CreateCell(cellNumTemp);
rowTemp31.SetCellValue(listModel[i].isHot.ToString());
rowTemp31.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp32 = rowTemp.CreateCell(cellNumTemp);
rowTemp32.SetCellValue(listModel[i].isDel.ToString());
rowTemp32.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp33 = rowTemp.CreateCell(cellNumTemp);
rowTemp33.SetCellValue(listModel[i].initialSales.ToString());
rowTemp33.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp34 = rowTemp.CreateCell(cellNumTemp);
rowTemp34.SetCellValue(listModel[i].areaCode.ToString());
rowTemp34.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp35 = rowTemp.CreateCell(cellNumTemp);
rowTemp35.SetCellValue(listModel[i].publisherId.ToString());
rowTemp35.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp36 = rowTemp.CreateCell(cellNumTemp);
rowTemp36.SetCellValue(listModel[i].approverId.ToString());
rowTemp36.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp37 = rowTemp.CreateCell(cellNumTemp);
rowTemp37.SetCellValue(listModel[i].auditStatus.ToString());
rowTemp37.CellStyle = commonCellStyle;
cellNumTemp++;
var rowTemp38 = rowTemp.CreateCell(cellNumTemp);
rowTemp38.SetCellValue(listModel[i].auditTime.ToString());
rowTemp38.CellStyle = commonCellStyle;
cellNumTemp++;
}
// 写入到excel
string webRootPath = _webHostEnvironment.WebRootPath;
string tpath = "/files/" + DateTime.Now.ToString("yyyy-MM-dd") + "/";
string fileName = DateTime.Now.ToString("yyyyMMddHHmmssfff") + "-CoreCmsGoods导出(查询结果).xls";
string filePath = webRootPath + tpath;
DirectoryInfo di = new DirectoryInfo(filePath);
if (!di.Exists)
{
di.Create();
}
FileStream fileHssf = new FileStream(filePath + fileName, FileMode.Create);
book.Write(fileHssf);
fileHssf.Close();
jm.code = 0;
jm.msg = GlobalConstVars.ExcelExportSuccess;
jm.data = tpath + fileName;
return jm;
}
#endregion
#region 设置是否虚拟商品============================================================
// POST: Api/CoreCmsGoods/DoSetisNomalVirtual/10
///
/// 设置是否虚拟商品
///
///
///
[HttpPost]
[Description("设置是否虚拟商品")]
public async Task DoSetisNomalVirtual([FromBody]FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _DistributionGoodsServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isNomalVirtual = (bool)entity.data;
var bl = await _DistributionGoodsServices.UpdateAsync(p => new CoreCmsGoods() { isNomalVirtual = oldModel.isNomalVirtual }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region 设置是否上架============================================================
// POST: Api/CoreCmsGoods/DoSetisMarketable/10
///
/// 设置是否上架
///
///
///
[HttpPost]
[Description("设置是否上架")]
public async Task DoSetisMarketable([FromBody]FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _DistributionGoodsServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isMarketable = (bool)entity.data;
var bl = await _DistributionGoodsServices.UpdateAsync(p => new CoreCmsGoods() { isMarketable = oldModel.isMarketable }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region 设置是否推荐============================================================
// POST: Api/CoreCmsGoods/DoSetisRecommend/10
///
/// 设置是否推荐
///
///
///
[HttpPost]
[Description("设置是否推荐")]
public async Task DoSetisRecommend([FromBody]FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _DistributionGoodsServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isRecommend = (bool)entity.data;
var bl = await _DistributionGoodsServices.UpdateAsync(p => new CoreCmsGoods() { isRecommend = oldModel.isRecommend }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region 设置是否热门============================================================
// POST: Api/CoreCmsGoods/DoSetisHot/10
///
/// 设置是否热门
///
///
///
[HttpPost]
[Description("设置是否热门")]
public async Task DoSetisHot([FromBody]FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _DistributionGoodsServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isHot = (bool)entity.data;
var bl = await _DistributionGoodsServices.UpdateAsync(p => new CoreCmsGoods() { isHot = oldModel.isHot }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
#region 设置是否删除============================================================
// POST: Api/CoreCmsGoods/DoSetisDel/10
///
/// 设置是否删除
///
///
///
[HttpPost]
[Description("设置是否删除")]
public async Task DoSetisDel([FromBody]FMUpdateBoolDataByIntId entity)
{
var jm = new AdminUiCallBack();
var oldModel = await _DistributionGoodsServices.QueryByIdAsync(entity.id, false);
if (oldModel == null)
{
jm.msg = "不存在此信息";
return jm;
}
oldModel.isDel = (bool)entity.data;
var bl = await _DistributionGoodsServices.UpdateAsync(p => new CoreCmsGoods() { isDel = oldModel.isDel }, p => p.id == oldModel.id);
jm.code = bl ? 0 : 1;
jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
return jm;
}
#endregion
}
}