.NET开源商城CoreShop简记

news/2024/10/6 3:14:34/文章来源:https://www.cnblogs.com/niunan/p/18288253
.NET开源商城CoreShop简记
大概本地运行起来了,官网 https://www.coreshop.cn/
  1. 先附加SQLSERVER库,
  2. 运行redis,
  3. vs打开后项目9.APP下的admin是后台,api是接口,二个项目里的Appsetting.json里的数据库连接字符串和redis的字符串都得改,redis运行时默认密码是空的,然后api的那个跨域也设置为true(取消跨域),运行api项目,再运行admin项目,默认用户名密码都是coreshop,不出意外的话后台应该就能看到了,
  4. 用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';,再在浏览器中运行,不出意外的话应该是可以看到了,自己测试过小程序,结果在小程序上运行不起来,不知道怎么回事。。算了。。先不管了。。
  5. 后台用的 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;}}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739684.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WebRTC入门

效果展示基础概念WebRTC指的是基于web的实时视频通话,其实就相当于A->B发直播画面,同时B->A发送直播画面,这样就是视频聊天了 WebRTC的视频通话是A和B两两之间进行的 WebRTC通话双方通过一个公共的中心服务器找到对方,就像聊天室一样 WebRTC的连接过程一般是A通过web…

组装8 地图移动

8,地图移动, 建立一个SURFACE,大小是18* unitx 19* unity 地图坐标 X,Y 坐标在显示中间 读取这个坐标 18 * 19 范围的地图数据,贴图到SURFACE 上。 问题 1,OBJECT第三层的贴图是UNITX,HEIGHT的大小, 这个HEIGHT的高度需要读取超过19个UNITY 的OBJECT,应该+12就可…

KubeSphere 社区双周报|2024.06.21-07.04

KubeSphere 社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过 commit 的贡献者,并对近期重要的 PR 进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。 本次双周报涵盖时间为:2024.06.21-07.04。 贡献者名单新晋 KubeSphere co…

HSQL 数据库介绍(1)--简介

HSQLDB(HyperSQL Database)是一款用 Java 编写的关系数据库管理系统;它提供了许多功能,并严格遵循最新的 SQL 和 JDBC 4.2 标准;本文主要介绍其基本概念及安装。 1、简介 HyperSQL Database(HSQLDB)是一款现代的关系数据库系统。HSQLDB 遵循国际 ISO SQL:2016 标准,支持…

lazarus 设置中文界面及开启代码提示

1.选择, Tools-Options-Environment-General-Language 选择Chinese[zh-CN],点击ok,重启即可 2.开启标识符补全,代码提示,如下图设置即可 本人小站:www.shibanyan.com

《Programming from the Ground Up》阅读笔记:p19-p48

《Programming from the Ground Up》学习第2天,p19-p48总结,总计30页。 一、技术总结 1.object file p20, An object file is code that is in the machines language, but has not been completely put together。 之前在很多地方都看到object file这个概念,但都没有看到起…

Qt/C++音视频开发78-获取本地摄像头支持的分辨率/帧率/格式等信息/mjpeg/yuyv/h264

一、前言 上一篇文章讲到用ffmpeg命令方式执行打印到日志输出,可以拿到本地摄像头设备信息,顺藤摸瓜,发现可以通过执行 ffmpeg -f dshow -list_options true -i video="Webcam" 命令获取指定摄像头设备的分辨率帧率格式等信息,会有很多条。那为什么需要这个功能呢…

Lazarus的安装

推荐安装秋风绿色版lazarus,秋风的blog上有绿色版百度网盘的下载地址,对于没有VIP会员的可以去QQ群下载,群号:103341107,速度比网盘好些 下载完成后,推荐解压到非系统盘根目录,在根目录里找到“lazarus绿化工具-x86_64-win64.exe”并运行。上图的路径是你的程序所在目录…

关于电源的基础知识

基础知识很多时候,都没有直接的作用。但是不积跬步无以至千里,不积小流无以成江海。接下来就用一页笔记,简单说明一下不理想源的输出阻抗。在一个电路系统中,前级和后级的连接,大多需要计算输入输出阻抗的。

Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)

Denso Create Programming Contest 2024(AtCoder Beginner Contest 361)\(A\) Insert \(AC\)循环结构。点击查看代码 int a[200]; int main() {int n,k,x,i;cin>>n>>k>>x;for(i=1;i<=n;i++){cin>>a[i];cout<<a[i]<<" ";i…

浅谈进程隐藏技术

在之前几篇文章已经学习了解了几种钩取的方法,这篇文章就利用钩取方式完成进程隐藏的效果。在实现进程隐藏时,首先需要明确遍历进程的方法。前言 在之前几篇文章已经学习了解了几种钩取的方法 ● 浅谈调试模式钩取 ● 浅谈热补丁 ● 浅谈内联钩取原理与实现 ● 导入地址表钩取…