.NET开源商城CoreShop简记
.NET开源商城CoreShop简记
大概本地运行起来了,官网 https://www.coreshop.cn/
- 先附加SQLSERVER库,
- 运行redis,
- vs打开后项目9.APP下的admin是后台,api是接口,二个项目里的Appsetting.json里的数据库连接字符串和redis的字符串都得改,redis运行时默认密码是空的,然后api的那个跨域也设置为true(取消跨域),运行api项目,再运行admin项目,默认用户名密码都是coreshop,不出意外的话后台应该就能看到了,
- 用hbuilder打开项目文件夹uniapp下的coreshop文件夹,改D:\workspace\CoreShop-v1.5.5\CoreCms.Net.Uni-App\CoreShop\common\setting\constVarsHelper.js文件里的baseurl为之前API的地址,如:export const apiBaseUrl = 'http://localhost:2015';,再在浏览器中运行,不出意外的话应该是可以看到了,自己测试过小程序,结果在小程序上运行不起来,不知道怎么回事。。算了。。先不管了。。
- 后台用的 layuiadmin ,在D:\workspace\CoreShop-v1.5.5\CoreCms.Net.Web.Admin\wwwroot\lib\layuiAdmin\config.js里看相关的配置的,默认视图是在wwwroot下的views下,在VS中创建文件 D:\workspace\CoreShop-v1.5.5\CoreCms.Net.Web.Admin\wwwroot\views\content\article\niunandemo\index.html,内容:
<h1>牛腩测试一下</h1> <input id="aaa" class="layui-input" /> <button type="button" class="layui-btn" onclick="aaa()">添加数据测试</button> <script> function aaa() { layui.use([ 'laydate'], function () { var $ = layui.$, laydate = layui.laydate; laydate.render({ elem: '#aaa' }); var url = layui.setter.apiUrl + "Api/NiunanUserInfo/Test"; var postdata = { username: "niunan", password: "123456" } $.get(url, postdata, function (data) { alert("服务端返回:" + JSON.stringify(data)); }); }); } </script>
6. 接下来做自己的后端接口,流程:数据库中建表 --》2.Entity项目中建立模型 --》4.Repository里建立仓储接口和仓储实现 --》3.Services中建立服务接口和实现 --》9.App 中的CoreCms.Net.Web.Admin项目中建立控制器来实现接口
create table NiunanUserInfo( Id int primary key identity, CreateTime datetime not null default getdate(), UpdateTime datetime not null default getdate(), UserName nvarchar(50) not null default '' )
// CoreCms.Net.Model\Entities\NiunanDemo\NiunanUserInfo.cs using SqlSugar; using System.ComponentModel.DataAnnotations; namespace CoreCms.Net.Model.Entities { /// <summary> /// 牛腩自己建的用户表 /// </summary> [SugarTable("NiunanUserInfo", TableDescription = "牛腩用户表")] public partial class NiunanUserInfo { /// <summary> /// 用户表 /// </summary> public NiunanUserInfo() { } /// <summary> /// 用户ID /// </summary> [Display(Name = "用户ID")] [SugarColumn(ColumnDescription = "用户ID", IsPrimaryKey = true, IsIdentity = true)] [Required(ErrorMessage = "请输入{0}")] public System.Int32 Id { get; set; } /// <summary> /// UserName /// </summary> [Display(Name = "UserName")] [SugarColumn(ColumnDescription = "UserName", IsNullable = true)] [StringLength(50, ErrorMessage = "【{0}】不能超过{1}字符长度")] public System.String UserName { get; set; } /// <summary> /// 创建时间 /// </summary> [Display(Name = "创建时间")] [SugarColumn(ColumnDescription = "创建时间", IsNullable = true)] public System.DateTime CreateTime { get; set; } = System.DateTime.Now; /// <summary> /// 更新时间 /// </summary> [Display(Name = "更新时间")] [SugarColumn(ColumnDescription = "更新时间", IsNullable = true)] public System.DateTime UpdateTime { get; set; } = System.DateTime.Now; } }
// CoreCms.Net.IRepository\NiunanDemo\INiunanUserInfoRepository.cs using CoreCms.Net.Model.Entities; namespace CoreCms.Net.IRepository { public interface INiunanUserInfoRepository : IBaseRepository<NiunanUserInfo> { } } // CoreCms.Net.Repository\NiunanDemo\NiunanUserInfoRepository.cs using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.Model.Entities; namespace CoreCms.Net.Repository { public class NiunanUserInfoRepository : BaseRepository<NiunanUserInfo>, INiunanUserInfoRepository { public NiunanUserInfoRepository(IUnitOfWork unitOfWork) : base(unitOfWork) { } } }
// CoreCms.Net.IServices\NiunanDemo\INiunanUserInfoServices.cs using System.Collections.Generic; using System.Threading.Tasks; using CoreCms.Net.Model.Entities; namespace CoreCms.Net.IServices { public interface INiunanUserInfoServices : IBaseServices<NiunanUserInfo> { } } // CoreCms.Net.Services\NiunanDemo\NiunanUserInfoServices.cs using CoreCms.Net.IRepository; using CoreCms.Net.IRepository.UnitOfWork; using CoreCms.Net.IServices; using CoreCms.Net.Model.Entities; namespace CoreCms.Net.Services { public class NiunanUserInfoServices : BaseServices<NiunanUserInfo>, INiunanUserInfoServices { private readonly INiunanUserInfoRepository _dal; private readonly IUnitOfWork _unitOfWork; public NiunanUserInfoServices(IUnitOfWork unitOfWork, INiunanUserInfoRepository dal) { _dal = dal; BaseDal = dal; _unitOfWork = unitOfWork; } } }
// CoreCms.Net.Web.Admin\Controllers\NiunanDemo\NiunanUserInfoController.cs using CoreCms.Net.Configuration; using CoreCms.Net.IServices; using CoreCms.Net.Model.Entities; using CoreCms.Net.Web.Admin.Infrastructure; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System; using System.ComponentModel; namespace CoreCms.Net.Web.Admin.Controllers { /// <summary> /// 牛腩测试 /// </summary> [Description("牛腩测试")] [Route("api/[controller]/[action]")] [ApiController] [RequiredErrorForAdmin] [Authorize(Permissions.Name)] public class NiunanUserInfoController : ControllerBase { private readonly INiunanUserInfoServices _services; public NiunanUserInfoController(INiunanUserInfoServices _services) { this._services = _services; } [AllowAnonymous] [HttpGet] public string Test(string username, string password) { try { int id = _services.Insert(new NiunanUserInfo() { UserName = username, }); return "插入成功,返回的ID是:"+id; } catch (Exception ex) { return "出错:" + ex.Message; } } } }
撸码:复制、粘贴,拿起键盘就是“干”!!!