/*********************************************************************** * Project: baifenBinfa * ProjectName: 百分兵法管理系统 * Web: http://chuanyin.com * Author: * Email: * CreateTime: 202403/02 * Description: 暂无 ***********************************************************************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; using AutoMapper; using CoreCms.Net.Configuration; using CoreCms.Net.Filter; using CoreCms.Net.IServices; using CoreCms.Net.Loging; using CoreCms.Net.Model.Entities; using CoreCms.Net.Model.FromBody; using CoreCms.Net.Model.ViewModels.UI; using CoreCms.Net.Utility.Helper; using CoreCms.Net.Web.Admin.Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc; using NPOI.HSSF.UserModel; using SqlSugar; namespace CoreCms.Net.Web.Admin.Controllers { /// /// 商品分类 /// [Description("商品分类")] [Route("api/[controller]/[action]")] [ApiController] [RequiredErrorForAdmin] [Authorize(Permissions.Name)] public class CoreCmsGoodsCategoryController : ControllerBase { private readonly IWebHostEnvironment _webHostEnvironment; private readonly ICoreCmsGoodsCategoryServices _coreCmsGoodsCategoryServices; private readonly ICoreCmsGoodsServices _goodsServices; private IMapper _mapper; /// /// 构造函数 /// public CoreCmsGoodsCategoryController(IWebHostEnvironment webHostEnvironment , ICoreCmsGoodsCategoryServices coreCmsGoodsCategoryServices , IMapper mapper, ICoreCmsGoodsServices goodsServices) { _webHostEnvironment = webHostEnvironment; _coreCmsGoodsCategoryServices = coreCmsGoodsCategoryServices; _mapper = mapper; _goodsServices = goodsServices; } #region 获取列表============================================================ // POST: Api/CoreCmsGoodsCategory/GetPageList /// /// 获取列表 /// /// [HttpPost] [Description("获取列表")] public async Task GetPageList() { var jm = new AdminUiCallBack(); //获取数据 var list = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.id > 0, p => p.sort, OrderByType.Asc, true, true); var type = Request.Form["type"].FirstOrDefault(); if (!string.IsNullOrEmpty(type) && type == "layui") { //返回数据 jm.data = GoodsHelper.GetTree(list, false).data; } else { jm.data = list; } jm.code = 0; jm.msg = "数据调用成功!"; return jm; } #endregion #region 首页数据============================================================ // POST: Api/CoreCmsGoodsCategory/GetIndex /// /// 首页数据 /// /// [HttpPost] [Description("首页数据")] public AdminUiCallBack GetIndex() { //返回数据 var jm = new AdminUiCallBack { code = 0 }; return jm; } #endregion #region 创建数据============================================================ // POST: Api/CoreCmsGoodsCategory/GetCreate /// /// 创建数据 /// /// [HttpPost] [Description("创建数据")] public async Task GetCreate() { //返回数据 var jm = new AdminUiCallBack { code = 0 }; var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort, OrderByType.Asc, true, true); jm.data = new { categories = GoodsHelper.GetTree(categories), }; return jm; } #endregion #region 创建提交============================================================ // POST: Api/CoreCmsGoodsCategory/DoCreate /// /// 创建提交 /// /// /// [HttpPost] [Description("创建提交")] public async Task DoCreate([FromBody] CoreCmsGoodsCategory entity) { var jm = new AdminUiCallBack(); var result = await _coreCmsGoodsCategoryServices.InsertAsync(entity); var bl = result.code == 0; jm.code = bl ? 0 : 1; jm.msg = (bl ? GlobalConstVars.CreateSuccess : GlobalConstVars.CreateFailure); if (bl) { var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort, OrderByType.Asc, true, true); jm.data = new { categories = GoodsHelper.GetTree(categories, false) }; } return jm; } #endregion #region 编辑数据============================================================ // POST: Api/CoreCmsGoodsCategory/GetEdit /// /// 编辑数据 /// /// /// [HttpPost] [Description("编辑数据")] public async Task GetEdit([FromBody] FMIntId entity) { var jm = new AdminUiCallBack(); var model = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id); if (model == null) { jm.msg = "不存在此信息"; return jm; } jm.code = 0; var categories = await _coreCmsGoodsCategoryServices.QueryListByClauseAsync(p => p.isShow == true, p => p.sort, OrderByType.Asc, true, true); jm.data = new { model, categories = GoodsHelper.GetTree(categories), }; return jm; } #endregion #region 编辑提交============================================================ // POST: Admins/CoreCmsGoodsCategory/Edit /// /// 编辑提交 /// /// /// [HttpPost] [Description("编辑提交")] public async Task DoEdit([FromBody] CoreCmsGoodsCategory entity) { var jm = new AdminUiCallBack(); var oldModel = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id); if (oldModel == null) { jm.msg = "不存在此信息"; return jm; } if (entity.id == entity.parentId) { jm.msg = "上级不能为本类"; return jm; } //事物处理过程开始 oldModel.parentId = entity.parentId; oldModel.name = entity.name; oldModel.typeId = entity.typeId; oldModel.sort = entity.sort; oldModel.imageUrl = entity.imageUrl; oldModel.isShow = entity.isShow; oldModel.createTime = entity.createTime; oldModel.key = entity.key; //事物处理过程结束 var result = await _coreCmsGoodsCategoryServices.UpdateAsync(oldModel); var bl = result.code == 0; jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure; return jm; } #endregion #region 删除数据============================================================ // POST: Api/CoreCmsGoodsCategory/DoDelete/10 /// /// 单选删除 /// /// /// [HttpPost] [Description("单选删除")] public async Task DoDelete([FromBody] FMIntId entity) { var jm = new AdminUiCallBack(); var model = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id); if (model == null) { jm.msg = GlobalConstVars.DataisNo; return jm; } if (await _coreCmsGoodsCategoryServices.ExistsAsync(p => p.parentId == entity.id)) { jm.msg = GlobalConstVars.DeleteIsHaveChildren; return jm; } if (await _goodsServices.ExistsAsync(p => p.goodsCategoryId == entity.id && !p.isDel)) { jm.msg = "有商品关联此栏目,禁止删除"; return jm; } var result = await _coreCmsGoodsCategoryServices.DeleteByIdAsync(entity.id); var bl = result.code == 0; jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.DeleteSuccess : GlobalConstVars.DeleteFailure; return jm; } #endregion #region 设置是否显示============================================================ // POST: Api/CoreCmsGoodsCategory/DoSetisShow/10 /// /// 设置是否显示 /// /// /// [HttpPost] [Description("设置是否显示")] public async Task DoSetIsShow([FromBody] FMUpdateBoolDataByIntId entity) { var jm = new AdminUiCallBack(); var oldModel = await _coreCmsGoodsCategoryServices.QueryByIdAsync(entity.id); if (oldModel == null) { jm.msg = "不存在此信息"; return jm; } oldModel.isShow = (bool)entity.data; var result = await _coreCmsGoodsCategoryServices.UpdateAsync(oldModel); var bl = result.code == 0; jm.code = bl ? 0 : 1; jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure; return jm; } #endregion } }