diff --git a/Yi.BBS.Vue2/src/api/accountApi.js b/Yi.BBS.Vue2/src/api/accountApi.js index 0540cda7..f0c04757 100644 --- a/Yi.BBS.Vue2/src/api/accountApi.js +++ b/Yi.BBS.Vue2/src/api/accountApi.js @@ -16,12 +16,6 @@ export default { method: 'post', }) }, - logged() { - return myaxios({ - url: '/Account/logged', - method: 'post', - }) - }, register(username, password, email, code) { return myaxios({ url: `/Account/register?code=${code}`, diff --git a/Yi.BBS.Vue2/src/permission.js b/Yi.BBS.Vue2/src/permission.js index 430689bf..9a3f5455 100644 --- a/Yi.BBS.Vue2/src/permission.js +++ b/Yi.BBS.Vue2/src/permission.js @@ -12,14 +12,16 @@ router.beforeEach((to, from, next) => { next({ path: '/login' }); } } else { //如果有user还要向后端请求是否过期 - store.dispatch("Logged").then(resp => { - if (!resp.status) //表示已经过期 - { - store.dispatch("Logout"); - next({ path: '/login' }); - } else { - next(); - } - }) + + next(); + // store.dispatch("Logged").then(resp => { + // if (!resp.status) //表示已经过期 + // { + // store.dispatch("Logout"); + // next({ path: '/login' }); + // } else { + // next(); + // } + // }) } }) \ No newline at end of file diff --git a/Yi.BBS.Vue2/src/store/modules/user.js b/Yi.BBS.Vue2/src/store/modules/user.js index a09eac0c..2d3717a4 100644 --- a/Yi.BBS.Vue2/src/store/modules/user.js +++ b/Yi.BBS.Vue2/src/store/modules/user.js @@ -63,7 +63,7 @@ const actions = { //动作 return new Promise((resolv, reject) => { accountApi.login(form.username.trim(), form.password.trim()).then(resp => { commit('SET_TOKEN', resp.data.token) - commit('SET_USER', resp.data.user) + // commit('SET_USER', resp.data.user) resolv(resp) }).catch(error => { reject(error) @@ -82,16 +82,6 @@ const actions = { //动作 }) }) }, - Logged({ commit }) { - return new Promise((resolv, reject) => { - accountApi.logged().then(resp => { - resolv(resp) - }).catch(error => { - reject(error) - }) - }) - }, - // GetUserInfo({ commit, state }) { // return new Promise((resolv, reject) => { // // getUserInfo(state.token).then(response => { diff --git a/Yi.BBS.Vue2/src/utils/myaxios.js b/Yi.BBS.Vue2/src/utils/myaxios.js index 2e37c708..1f703c8c 100644 --- a/Yi.BBS.Vue2/src/utils/myaxios.js +++ b/Yi.BBS.Vue2/src/utils/myaxios.js @@ -27,7 +27,11 @@ myaxios.interceptors.request.use(function(config) { // 响应拦截器 myaxios.interceptors.response.use(function(response) { - // const resp = response.data + const resp = response.data + if(resp.code!=200) + { + alert(`错误代码:${resp.code},原因:${resp.message}`) + } store.dispatch("closeLoad"); return response; }, function(error) { @@ -35,7 +39,7 @@ myaxios.interceptors.response.use(function(response) { if (resp.code == undefined && resp.msg == undefined) { alert(`错误代码:无,原因:与服务器失去连接`) } else if (resp.code != 200) { - alert(`错误代码:${resp.code},原因:${resp.msg}`) + alert(`错误代码:${resp.code},原因:${resp.message}`) } store.dispatch("closeLoad"); return Promise.reject(error); diff --git a/Yi.Framework.Net6/Yi.Framework.sln b/Yi.Framework.Net6/Yi.Framework.sln index a64529ea..8dfb69a5 100644 --- a/Yi.Framework.Net6/Yi.Framework.sln +++ b/Yi.Framework.Net6/Yi.Framework.sln @@ -95,6 +95,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Version.cs = Version.cs EndProjectSection EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.OperLogManager", "src\module\Yi.Framework.OperLogManager\Yi.Framework.OperLogManager.csproj", "{8A604A6B-D1FA-4CFF-BCF5-557519B10FCB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Yi.Framework.FileManager", "src\module\Yi.Framework.FileManager\Yi.Framework.FileManager.csproj", "{1BF3115D-B027-4805-AF7B-41B3AE9CB355}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -245,6 +249,14 @@ Global {FC559052-36EC-4379-B447-298FAD6045F4}.Debug|Any CPU.Build.0 = Debug|Any CPU {FC559052-36EC-4379-B447-298FAD6045F4}.Release|Any CPU.ActiveCfg = Release|Any CPU {FC559052-36EC-4379-B447-298FAD6045F4}.Release|Any CPU.Build.0 = Release|Any CPU + {8A604A6B-D1FA-4CFF-BCF5-557519B10FCB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8A604A6B-D1FA-4CFF-BCF5-557519B10FCB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8A604A6B-D1FA-4CFF-BCF5-557519B10FCB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8A604A6B-D1FA-4CFF-BCF5-557519B10FCB}.Release|Any CPU.Build.0 = Release|Any CPU + {1BF3115D-B027-4805-AF7B-41B3AE9CB355}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1BF3115D-B027-4805-AF7B-41B3AE9CB355}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1BF3115D-B027-4805-AF7B-41B3AE9CB355}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1BF3115D-B027-4805-AF7B-41B3AE9CB355}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -289,6 +301,8 @@ Global {0C031C7D-6F80-4559-977C-AC001036EC44} = {07C9E949-DB5E-4315-A497-FF73746667D8} {60E54034-792C-4A90-BCDF-4D5FFB45089E} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} {FC559052-36EC-4379-B447-298FAD6045F4} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {8A604A6B-D1FA-4CFF-BCF5-557519B10FCB} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} + {1BF3115D-B027-4805-AF7B-41B3AE9CB355} = {EEF5F221-0E32-4A3D-B647-B4B5E7305806} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6C1A3808-0F4F-43FB-A9FE-5F27A3BB2ECF} diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Extensions/HttpContextExtensions.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Extensions/HttpContextExtensions.cs index 759555ed..b16e5509 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Extensions/HttpContextExtensions.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Extensions/HttpContextExtensions.cs @@ -10,6 +10,57 @@ namespace Yi.Framework.AspNetCore.Extensions { public static class HttpContextExtensions { + /// + /// 设置文件下载名称 + /// + /// + /// + public static void FileInlineHandle(this HttpContext httpContext, string fileName) + { + string encodeFilename = System.Web.HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8")); + httpContext.Response.Headers.Add("Content-Disposition", "inline;filename=" + encodeFilename); + + } + + /// + /// 设置文件附件名称 + /// + /// + /// + public static void FileAttachmentHandle(this HttpContext httpContext, string fileName) + { + string encodeFilename = System.Web.HttpUtility.UrlEncode(fileName, Encoding.GetEncoding("UTF-8")); + httpContext.Response.Headers.Add("Content-Disposition", "attachment;filename=" + encodeFilename); + + } + + /// + /// 获取语言种类 + /// + /// + /// + public static string GetLanguage(this HttpContext httpContext) + { + string res = "zh-CN"; + var str = httpContext.Request.Headers["Accept-Language"].FirstOrDefault(); + if (str is not null) + { + res = str.Split(",")[0]; + } + return res; + + } + + /// + /// 判断是否为异步请求 + /// + /// + /// + public static bool IsAjaxRequest(this HttpRequest request) + { + string header = request.Headers["X-Requested-With"]; + return "XMLHttpRequest".Equals(header); + } /// /// 获取客户端IP /// diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj b/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj index 20d2b889..c37d68fb 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.AspNetCore/Yi.Framework.AspNetCore.csproj @@ -7,10 +7,10 @@ + - diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Const/PathConst.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Const/PathConst.cs new file mode 100644 index 00000000..ba393ce5 --- /dev/null +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Const/PathConst.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Core.Const +{ + /// + /// 定义公共文件常量 + /// + public class PathConst + { + public const string wwwroot = "wwwroot"; + public const string DataTemplate = "_DataTemplate"; + public const string DataExport = "_DataExport"; + } +} diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Enums/FileTypeEnum.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Enums/FileTypeEnum.cs new file mode 100644 index 00000000..1776d35f --- /dev/null +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Enums/FileTypeEnum.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.Core.Enums +{ + /// + /// 定义公共文件路径 + /// + public enum FileTypeEnum + { + File, + Image, + Thumbnail, + Excel, + Temp + } +} diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Helper/MimeHelper.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Helper/MimeHelper.cs index ca0e7c05..c0b5b611 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Helper/MimeHelper.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Core/Helper/MimeHelper.cs @@ -4,241 +4,257 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Yi.Framework.Core.Enums; namespace Yi.Framework.Core.Helper { - public static class MimeHelper + public static class MimeHelper { // 通过自己定义一个静态类 // 将所有的Content Type都扔进去吧 // 调用的时候直接调用静态方法即可。 - - private static Hashtable _mimeMappingTable; - private static void AddMimeMapping(string extension, string MimeType) + public static List ImageType { get; set; } = new List + { + ".jpg",".png",".jpge",".gif" + }; + + private static Hashtable _mimeMappingTable; + + private static void AddMimeMapping(string extension, string MimeType) + { + MimeHelper._mimeMappingTable.Add(extension, MimeType); + } + + public static string GetMimeMapping(string FileName) + { + string text = null!; + int num = FileName.LastIndexOf('.'); + if (0 < num && num > FileName.LastIndexOf('\\')) { - MimeHelper._mimeMappingTable.Add(extension, MimeType); + text = (string)MimeHelper._mimeMappingTable[FileName.Substring(num)]!; } - - public static string GetMimeMapping(string FileName) + if (text == null) { - string text = null!; - int num = FileName.LastIndexOf('.'); - if (0 < num && num > FileName.LastIndexOf('\\')) - { - text = (string)MimeHelper._mimeMappingTable[FileName.Substring(num)]!; - } - if (text == null) - { - text = (string)MimeHelper._mimeMappingTable[".*"]!; - } - return text; + text = (string)MimeHelper._mimeMappingTable[".*"]!; } + return text; + } + + public static FileTypeEnum GetFileType(string fileName) + { + var extension = Path.GetExtension(fileName); + if(ImageType.Contains(extension.ToLower())) + return FileTypeEnum.Image; + return FileTypeEnum.File; + + + } + + static MimeHelper() + { + MimeHelper._mimeMappingTable = new Hashtable(190, StringComparer.CurrentCultureIgnoreCase); + MimeHelper.AddMimeMapping(".323", "text/h323"); + MimeHelper.AddMimeMapping(".asx", "video/x-ms-asf"); + MimeHelper.AddMimeMapping(".acx", "application/internet-property-stream"); + MimeHelper.AddMimeMapping(".ai", "application/postscript"); + MimeHelper.AddMimeMapping(".aif", "audio/x-aiff"); + MimeHelper.AddMimeMapping(".aiff", "audio/aiff"); + MimeHelper.AddMimeMapping(".axs", "application/olescript"); + MimeHelper.AddMimeMapping(".aifc", "audio/aiff"); + MimeHelper.AddMimeMapping(".asr", "video/x-ms-asf"); + MimeHelper.AddMimeMapping(".avi", "video/x-msvideo"); + MimeHelper.AddMimeMapping(".asf", "video/x-ms-asf"); + MimeHelper.AddMimeMapping(".au", "audio/basic"); + MimeHelper.AddMimeMapping(".application", "application/x-ms-application"); + MimeHelper.AddMimeMapping(".bin", "application/octet-stream"); + MimeHelper.AddMimeMapping(".bas", "text/plain"); + MimeHelper.AddMimeMapping(".bcpio", "application/x-bcpio"); + MimeHelper.AddMimeMapping(".bmp", "image/bmp"); + MimeHelper.AddMimeMapping(".cdf", "application/x-cdf"); + MimeHelper.AddMimeMapping(".cat", "application/vndms-pkiseccat"); + MimeHelper.AddMimeMapping(".crt", "application/x-x509-ca-cert"); + MimeHelper.AddMimeMapping(".c", "text/plain"); + MimeHelper.AddMimeMapping(".css", "text/css"); + MimeHelper.AddMimeMapping(".cer", "application/x-x509-ca-cert"); + MimeHelper.AddMimeMapping(".crl", "application/pkix-crl"); + MimeHelper.AddMimeMapping(".cmx", "image/x-cmx"); + MimeHelper.AddMimeMapping(".csh", "application/x-csh"); + MimeHelper.AddMimeMapping(".cod", "image/cis-cod"); + MimeHelper.AddMimeMapping(".cpio", "application/x-cpio"); + MimeHelper.AddMimeMapping(".clp", "application/x-msclip"); + MimeHelper.AddMimeMapping(".crd", "application/x-mscardfile"); + MimeHelper.AddMimeMapping(".deploy", "application/octet-stream"); + MimeHelper.AddMimeMapping(".dll", "application/x-msdownload"); + MimeHelper.AddMimeMapping(".dot", "application/msword"); + MimeHelper.AddMimeMapping(".doc", "application/msword"); + MimeHelper.AddMimeMapping(".dvi", "application/x-dvi"); + MimeHelper.AddMimeMapping(".dir", "application/x-director"); + MimeHelper.AddMimeMapping(".dxr", "application/x-director"); + MimeHelper.AddMimeMapping(".der", "application/x-x509-ca-cert"); + MimeHelper.AddMimeMapping(".dib", "image/bmp"); + MimeHelper.AddMimeMapping(".dcr", "application/x-director"); + MimeHelper.AddMimeMapping(".disco", "text/xml"); + MimeHelper.AddMimeMapping(".exe", "application/octet-stream"); + MimeHelper.AddMimeMapping(".etx", "text/x-setext"); + MimeHelper.AddMimeMapping(".evy", "application/envoy"); + MimeHelper.AddMimeMapping(".eml", "message/rfc822"); + MimeHelper.AddMimeMapping(".eps", "application/postscript"); + MimeHelper.AddMimeMapping(".flr", "x-world/x-vrml"); + MimeHelper.AddMimeMapping(".fif", "application/fractals"); + MimeHelper.AddMimeMapping(".gtar", "application/x-gtar"); + MimeHelper.AddMimeMapping(".gif", "image/gif"); + MimeHelper.AddMimeMapping(".gz", "application/x-gzip"); + MimeHelper.AddMimeMapping(".hta", "application/hta"); + MimeHelper.AddMimeMapping(".htc", "text/x-component"); + MimeHelper.AddMimeMapping(".htt", "text/webviewhtml"); + MimeHelper.AddMimeMapping(".h", "text/plain"); + MimeHelper.AddMimeMapping(".hdf", "application/x-hdf"); + MimeHelper.AddMimeMapping(".hlp", "application/winhlp"); + MimeHelper.AddMimeMapping(".html", "text/html"); + MimeHelper.AddMimeMapping(".htm", "text/html"); + MimeHelper.AddMimeMapping(".hqx", "application/mac-binhex40"); + MimeHelper.AddMimeMapping(".isp", "application/x-internet-signup"); + MimeHelper.AddMimeMapping(".iii", "application/x-iphone"); + MimeHelper.AddMimeMapping(".ief", "image/ief"); + MimeHelper.AddMimeMapping(".ivf", "video/x-ivf"); + MimeHelper.AddMimeMapping(".ins", "application/x-internet-signup"); + MimeHelper.AddMimeMapping(".ico", "image/x-icon"); + MimeHelper.AddMimeMapping(".jpg", "image/jpeg"); + MimeHelper.AddMimeMapping(".jfif", "image/pjpeg"); + MimeHelper.AddMimeMapping(".jpe", "image/jpeg"); + MimeHelper.AddMimeMapping(".jpeg", "image/jpeg"); + MimeHelper.AddMimeMapping(".js", "application/x-javascript"); + MimeHelper.AddMimeMapping(".lsx", "video/x-la-asf"); + MimeHelper.AddMimeMapping(".latex", "application/x-latex"); + MimeHelper.AddMimeMapping(".lsf", "video/x-la-asf"); + MimeHelper.AddMimeMapping(".manifest", "application/x-ms-manifest"); + MimeHelper.AddMimeMapping(".mhtml", "message/rfc822"); + MimeHelper.AddMimeMapping(".mny", "application/x-msmoney"); + MimeHelper.AddMimeMapping(".mht", "message/rfc822"); + MimeHelper.AddMimeMapping(".mid", "audio/mid"); + MimeHelper.AddMimeMapping(".mpv2", "video/mpeg"); + MimeHelper.AddMimeMapping(".man", "application/x-troff-man"); + MimeHelper.AddMimeMapping(".mvb", "application/x-msmediaview"); + MimeHelper.AddMimeMapping(".mpeg", "video/mpeg"); + MimeHelper.AddMimeMapping(".m3u", "audio/x-mpegurl"); + MimeHelper.AddMimeMapping(".mdb", "application/x-msaccess"); + MimeHelper.AddMimeMapping(".mpp", "application/vnd.ms-project"); + MimeHelper.AddMimeMapping(".m1v", "video/mpeg"); + MimeHelper.AddMimeMapping(".mpa", "video/mpeg"); + MimeHelper.AddMimeMapping(".me", "application/x-troff-me"); + MimeHelper.AddMimeMapping(".m13", "application/x-msmediaview"); + MimeHelper.AddMimeMapping(".movie", "video/x-sgi-movie"); + MimeHelper.AddMimeMapping(".m14", "application/x-msmediaview"); + MimeHelper.AddMimeMapping(".mpe", "video/mpeg"); + MimeHelper.AddMimeMapping(".mp2", "video/mpeg"); + MimeHelper.AddMimeMapping(".mov", "video/quicktime"); + MimeHelper.AddMimeMapping(".mp3", "audio/mpeg"); + MimeHelper.AddMimeMapping(".mpg", "video/mpeg"); + MimeHelper.AddMimeMapping(".ms", "application/x-troff-ms"); + MimeHelper.AddMimeMapping(".nc", "application/x-netcdf"); + MimeHelper.AddMimeMapping(".nws", "message/rfc822"); + MimeHelper.AddMimeMapping(".oda", "application/oda"); + MimeHelper.AddMimeMapping(".ods", "application/oleobject"); + MimeHelper.AddMimeMapping(".pmc", "application/x-perfmon"); + MimeHelper.AddMimeMapping(".p7r", "application/x-pkcs7-certreqresp"); + MimeHelper.AddMimeMapping(".p7b", "application/x-pkcs7-certificates"); + MimeHelper.AddMimeMapping(".p7s", "application/pkcs7-signature"); + MimeHelper.AddMimeMapping(".pmw", "application/x-perfmon"); + MimeHelper.AddMimeMapping(".ps", "application/postscript"); + MimeHelper.AddMimeMapping(".p7c", "application/pkcs7-mime"); + MimeHelper.AddMimeMapping(".pbm", "image/x-portable-bitmap"); + MimeHelper.AddMimeMapping(".ppm", "image/x-portable-pixmap"); + MimeHelper.AddMimeMapping(".pub", "application/x-mspublisher"); + MimeHelper.AddMimeMapping(".pnm", "image/x-portable-anymap"); + MimeHelper.AddMimeMapping(".png", "image/png"); + MimeHelper.AddMimeMapping(".pml", "application/x-perfmon"); + MimeHelper.AddMimeMapping(".p10", "application/pkcs10"); + MimeHelper.AddMimeMapping(".pfx", "application/x-pkcs12"); + MimeHelper.AddMimeMapping(".p12", "application/x-pkcs12"); + MimeHelper.AddMimeMapping(".pdf", "application/pdf"); + MimeHelper.AddMimeMapping(".pps", "application/vnd.ms-powerpoint"); + MimeHelper.AddMimeMapping(".p7m", "application/pkcs7-mime"); + MimeHelper.AddMimeMapping(".pko", "application/vndms-pkipko"); + MimeHelper.AddMimeMapping(".ppt", "application/vnd.ms-powerpoint"); + MimeHelper.AddMimeMapping(".pmr", "application/x-perfmon"); + MimeHelper.AddMimeMapping(".pma", "application/x-perfmon"); + MimeHelper.AddMimeMapping(".pot", "application/vnd.ms-powerpoint"); + MimeHelper.AddMimeMapping(".prf", "application/pics-rules"); + MimeHelper.AddMimeMapping(".pgm", "image/x-portable-graymap"); + MimeHelper.AddMimeMapping(".qt", "video/quicktime"); + MimeHelper.AddMimeMapping(".ra", "audio/x-pn-realaudio"); + MimeHelper.AddMimeMapping(".rgb", "image/x-rgb"); + MimeHelper.AddMimeMapping(".ram", "audio/x-pn-realaudio"); + MimeHelper.AddMimeMapping(".rmi", "audio/mid"); + MimeHelper.AddMimeMapping(".ras", "image/x-cmu-raster"); + MimeHelper.AddMimeMapping(".roff", "application/x-troff"); + MimeHelper.AddMimeMapping(".rtf", "application/rtf"); + MimeHelper.AddMimeMapping(".rtx", "text/richtext"); + MimeHelper.AddMimeMapping(".sv4crc", "application/x-sv4crc"); + MimeHelper.AddMimeMapping(".spc", "application/x-pkcs7-certificates"); + MimeHelper.AddMimeMapping(".setreg", "application/set-registration-initiation"); + MimeHelper.AddMimeMapping(".snd", "audio/basic"); + MimeHelper.AddMimeMapping(".stl", "application/vndms-pkistl"); + MimeHelper.AddMimeMapping(".setpay", "application/set-payment-initiation"); + MimeHelper.AddMimeMapping(".stm", "text/html"); + MimeHelper.AddMimeMapping(".shar", "application/x-shar"); + MimeHelper.AddMimeMapping(".sh", "application/x-sh"); + MimeHelper.AddMimeMapping(".sit", "application/x-stuffit"); + MimeHelper.AddMimeMapping(".spl", "application/futuresplash"); + MimeHelper.AddMimeMapping(".sct", "text/scriptlet"); + MimeHelper.AddMimeMapping(".scd", "application/x-msschedule"); + MimeHelper.AddMimeMapping(".sst", "application/vndms-pkicertstore"); + MimeHelper.AddMimeMapping(".src", "application/x-wais-source"); + MimeHelper.AddMimeMapping(".sv4cpio", "application/x-sv4cpio"); + MimeHelper.AddMimeMapping(".tex", "application/x-tex"); + MimeHelper.AddMimeMapping(".tgz", "application/x-compressed"); + MimeHelper.AddMimeMapping(".t", "application/x-troff"); + MimeHelper.AddMimeMapping(".tar", "application/x-tar"); + MimeHelper.AddMimeMapping(".tr", "application/x-troff"); + MimeHelper.AddMimeMapping(".tif", "image/tiff"); + MimeHelper.AddMimeMapping(".txt", "text/plain"); + MimeHelper.AddMimeMapping(".texinfo", "application/x-texinfo"); + MimeHelper.AddMimeMapping(".trm", "application/x-msterminal"); + MimeHelper.AddMimeMapping(".tiff", "image/tiff"); + MimeHelper.AddMimeMapping(".tcl", "application/x-tcl"); + MimeHelper.AddMimeMapping(".texi", "application/x-texinfo"); + MimeHelper.AddMimeMapping(".tsv", "text/tab-separated-values"); + MimeHelper.AddMimeMapping(".ustar", "application/x-ustar"); + MimeHelper.AddMimeMapping(".uls", "text/iuls"); + MimeHelper.AddMimeMapping(".vcf", "text/x-vcard"); + MimeHelper.AddMimeMapping(".wps", "application/vnd.ms-works"); + MimeHelper.AddMimeMapping(".wav", "audio/wav"); + MimeHelper.AddMimeMapping(".wrz", "x-world/x-vrml"); + MimeHelper.AddMimeMapping(".wri", "application/x-mswrite"); + MimeHelper.AddMimeMapping(".wks", "application/vnd.ms-works"); + MimeHelper.AddMimeMapping(".wmf", "application/x-msmetafile"); + MimeHelper.AddMimeMapping(".wcm", "application/vnd.ms-works"); + MimeHelper.AddMimeMapping(".wrl", "x-world/x-vrml"); + MimeHelper.AddMimeMapping(".wdb", "application/vnd.ms-works"); + MimeHelper.AddMimeMapping(".wsdl", "text/xml"); + MimeHelper.AddMimeMapping(".xap", "application/x-silverlight-app"); + MimeHelper.AddMimeMapping(".xml", "text/xml"); + MimeHelper.AddMimeMapping(".xlm", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xaf", "x-world/x-vrml"); + MimeHelper.AddMimeMapping(".xla", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xls", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xlsx", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xof", "x-world/x-vrml"); + MimeHelper.AddMimeMapping(".xlt", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xlc", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xsl", "text/xml"); + MimeHelper.AddMimeMapping(".xbm", "image/x-xbitmap"); + MimeHelper.AddMimeMapping(".xlw", "application/vnd.ms-excel"); + MimeHelper.AddMimeMapping(".xpm", "image/x-xpixmap"); + MimeHelper.AddMimeMapping(".xwd", "image/x-xwindowdump"); + MimeHelper.AddMimeMapping(".xsd", "text/xml"); + MimeHelper.AddMimeMapping(".z", "application/x-compress"); + MimeHelper.AddMimeMapping(".zip", "application/x-zip-compressed"); + MimeHelper.AddMimeMapping(".*", "application/octet-stream"); + } + } + - static MimeHelper() - { - MimeHelper._mimeMappingTable = new Hashtable(190, StringComparer.CurrentCultureIgnoreCase); - MimeHelper.AddMimeMapping(".323", "text/h323"); - MimeHelper.AddMimeMapping(".asx", "video/x-ms-asf"); - MimeHelper.AddMimeMapping(".acx", "application/internet-property-stream"); - MimeHelper.AddMimeMapping(".ai", "application/postscript"); - MimeHelper.AddMimeMapping(".aif", "audio/x-aiff"); - MimeHelper.AddMimeMapping(".aiff", "audio/aiff"); - MimeHelper.AddMimeMapping(".axs", "application/olescript"); - MimeHelper.AddMimeMapping(".aifc", "audio/aiff"); - MimeHelper.AddMimeMapping(".asr", "video/x-ms-asf"); - MimeHelper.AddMimeMapping(".avi", "video/x-msvideo"); - MimeHelper.AddMimeMapping(".asf", "video/x-ms-asf"); - MimeHelper.AddMimeMapping(".au", "audio/basic"); - MimeHelper.AddMimeMapping(".application", "application/x-ms-application"); - MimeHelper.AddMimeMapping(".bin", "application/octet-stream"); - MimeHelper.AddMimeMapping(".bas", "text/plain"); - MimeHelper.AddMimeMapping(".bcpio", "application/x-bcpio"); - MimeHelper.AddMimeMapping(".bmp", "image/bmp"); - MimeHelper.AddMimeMapping(".cdf", "application/x-cdf"); - MimeHelper.AddMimeMapping(".cat", "application/vndms-pkiseccat"); - MimeHelper.AddMimeMapping(".crt", "application/x-x509-ca-cert"); - MimeHelper.AddMimeMapping(".c", "text/plain"); - MimeHelper.AddMimeMapping(".css", "text/css"); - MimeHelper.AddMimeMapping(".cer", "application/x-x509-ca-cert"); - MimeHelper.AddMimeMapping(".crl", "application/pkix-crl"); - MimeHelper.AddMimeMapping(".cmx", "image/x-cmx"); - MimeHelper.AddMimeMapping(".csh", "application/x-csh"); - MimeHelper.AddMimeMapping(".cod", "image/cis-cod"); - MimeHelper.AddMimeMapping(".cpio", "application/x-cpio"); - MimeHelper.AddMimeMapping(".clp", "application/x-msclip"); - MimeHelper.AddMimeMapping(".crd", "application/x-mscardfile"); - MimeHelper.AddMimeMapping(".deploy", "application/octet-stream"); - MimeHelper.AddMimeMapping(".dll", "application/x-msdownload"); - MimeHelper.AddMimeMapping(".dot", "application/msword"); - MimeHelper.AddMimeMapping(".doc", "application/msword"); - MimeHelper.AddMimeMapping(".dvi", "application/x-dvi"); - MimeHelper.AddMimeMapping(".dir", "application/x-director"); - MimeHelper.AddMimeMapping(".dxr", "application/x-director"); - MimeHelper.AddMimeMapping(".der", "application/x-x509-ca-cert"); - MimeHelper.AddMimeMapping(".dib", "image/bmp"); - MimeHelper.AddMimeMapping(".dcr", "application/x-director"); - MimeHelper.AddMimeMapping(".disco", "text/xml"); - MimeHelper.AddMimeMapping(".exe", "application/octet-stream"); - MimeHelper.AddMimeMapping(".etx", "text/x-setext"); - MimeHelper.AddMimeMapping(".evy", "application/envoy"); - MimeHelper.AddMimeMapping(".eml", "message/rfc822"); - MimeHelper.AddMimeMapping(".eps", "application/postscript"); - MimeHelper.AddMimeMapping(".flr", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".fif", "application/fractals"); - MimeHelper.AddMimeMapping(".gtar", "application/x-gtar"); - MimeHelper.AddMimeMapping(".gif", "image/gif"); - MimeHelper.AddMimeMapping(".gz", "application/x-gzip"); - MimeHelper.AddMimeMapping(".hta", "application/hta"); - MimeHelper.AddMimeMapping(".htc", "text/x-component"); - MimeHelper.AddMimeMapping(".htt", "text/webviewhtml"); - MimeHelper.AddMimeMapping(".h", "text/plain"); - MimeHelper.AddMimeMapping(".hdf", "application/x-hdf"); - MimeHelper.AddMimeMapping(".hlp", "application/winhlp"); - MimeHelper.AddMimeMapping(".html", "text/html"); - MimeHelper.AddMimeMapping(".htm", "text/html"); - MimeHelper.AddMimeMapping(".hqx", "application/mac-binhex40"); - MimeHelper.AddMimeMapping(".isp", "application/x-internet-signup"); - MimeHelper.AddMimeMapping(".iii", "application/x-iphone"); - MimeHelper.AddMimeMapping(".ief", "image/ief"); - MimeHelper.AddMimeMapping(".ivf", "video/x-ivf"); - MimeHelper.AddMimeMapping(".ins", "application/x-internet-signup"); - MimeHelper.AddMimeMapping(".ico", "image/x-icon"); - MimeHelper.AddMimeMapping(".jpg", "image/jpeg"); - MimeHelper.AddMimeMapping(".jfif", "image/pjpeg"); - MimeHelper.AddMimeMapping(".jpe", "image/jpeg"); - MimeHelper.AddMimeMapping(".jpeg", "image/jpeg"); - MimeHelper.AddMimeMapping(".js", "application/x-javascript"); - MimeHelper.AddMimeMapping(".lsx", "video/x-la-asf"); - MimeHelper.AddMimeMapping(".latex", "application/x-latex"); - MimeHelper.AddMimeMapping(".lsf", "video/x-la-asf"); - MimeHelper.AddMimeMapping(".manifest", "application/x-ms-manifest"); - MimeHelper.AddMimeMapping(".mhtml", "message/rfc822"); - MimeHelper.AddMimeMapping(".mny", "application/x-msmoney"); - MimeHelper.AddMimeMapping(".mht", "message/rfc822"); - MimeHelper.AddMimeMapping(".mid", "audio/mid"); - MimeHelper.AddMimeMapping(".mpv2", "video/mpeg"); - MimeHelper.AddMimeMapping(".man", "application/x-troff-man"); - MimeHelper.AddMimeMapping(".mvb", "application/x-msmediaview"); - MimeHelper.AddMimeMapping(".mpeg", "video/mpeg"); - MimeHelper.AddMimeMapping(".m3u", "audio/x-mpegurl"); - MimeHelper.AddMimeMapping(".mdb", "application/x-msaccess"); - MimeHelper.AddMimeMapping(".mpp", "application/vnd.ms-project"); - MimeHelper.AddMimeMapping(".m1v", "video/mpeg"); - MimeHelper.AddMimeMapping(".mpa", "video/mpeg"); - MimeHelper.AddMimeMapping(".me", "application/x-troff-me"); - MimeHelper.AddMimeMapping(".m13", "application/x-msmediaview"); - MimeHelper.AddMimeMapping(".movie", "video/x-sgi-movie"); - MimeHelper.AddMimeMapping(".m14", "application/x-msmediaview"); - MimeHelper.AddMimeMapping(".mpe", "video/mpeg"); - MimeHelper.AddMimeMapping(".mp2", "video/mpeg"); - MimeHelper.AddMimeMapping(".mov", "video/quicktime"); - MimeHelper.AddMimeMapping(".mp3", "audio/mpeg"); - MimeHelper.AddMimeMapping(".mpg", "video/mpeg"); - MimeHelper.AddMimeMapping(".ms", "application/x-troff-ms"); - MimeHelper.AddMimeMapping(".nc", "application/x-netcdf"); - MimeHelper.AddMimeMapping(".nws", "message/rfc822"); - MimeHelper.AddMimeMapping(".oda", "application/oda"); - MimeHelper.AddMimeMapping(".ods", "application/oleobject"); - MimeHelper.AddMimeMapping(".pmc", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".p7r", "application/x-pkcs7-certreqresp"); - MimeHelper.AddMimeMapping(".p7b", "application/x-pkcs7-certificates"); - MimeHelper.AddMimeMapping(".p7s", "application/pkcs7-signature"); - MimeHelper.AddMimeMapping(".pmw", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".ps", "application/postscript"); - MimeHelper.AddMimeMapping(".p7c", "application/pkcs7-mime"); - MimeHelper.AddMimeMapping(".pbm", "image/x-portable-bitmap"); - MimeHelper.AddMimeMapping(".ppm", "image/x-portable-pixmap"); - MimeHelper.AddMimeMapping(".pub", "application/x-mspublisher"); - MimeHelper.AddMimeMapping(".pnm", "image/x-portable-anymap"); - MimeHelper.AddMimeMapping(".png", "image/png"); - MimeHelper.AddMimeMapping(".pml", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".p10", "application/pkcs10"); - MimeHelper.AddMimeMapping(".pfx", "application/x-pkcs12"); - MimeHelper.AddMimeMapping(".p12", "application/x-pkcs12"); - MimeHelper.AddMimeMapping(".pdf", "application/pdf"); - MimeHelper.AddMimeMapping(".pps", "application/vnd.ms-powerpoint"); - MimeHelper.AddMimeMapping(".p7m", "application/pkcs7-mime"); - MimeHelper.AddMimeMapping(".pko", "application/vndms-pkipko"); - MimeHelper.AddMimeMapping(".ppt", "application/vnd.ms-powerpoint"); - MimeHelper.AddMimeMapping(".pmr", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".pma", "application/x-perfmon"); - MimeHelper.AddMimeMapping(".pot", "application/vnd.ms-powerpoint"); - MimeHelper.AddMimeMapping(".prf", "application/pics-rules"); - MimeHelper.AddMimeMapping(".pgm", "image/x-portable-graymap"); - MimeHelper.AddMimeMapping(".qt", "video/quicktime"); - MimeHelper.AddMimeMapping(".ra", "audio/x-pn-realaudio"); - MimeHelper.AddMimeMapping(".rgb", "image/x-rgb"); - MimeHelper.AddMimeMapping(".ram", "audio/x-pn-realaudio"); - MimeHelper.AddMimeMapping(".rmi", "audio/mid"); - MimeHelper.AddMimeMapping(".ras", "image/x-cmu-raster"); - MimeHelper.AddMimeMapping(".roff", "application/x-troff"); - MimeHelper.AddMimeMapping(".rtf", "application/rtf"); - MimeHelper.AddMimeMapping(".rtx", "text/richtext"); - MimeHelper.AddMimeMapping(".sv4crc", "application/x-sv4crc"); - MimeHelper.AddMimeMapping(".spc", "application/x-pkcs7-certificates"); - MimeHelper.AddMimeMapping(".setreg", "application/set-registration-initiation"); - MimeHelper.AddMimeMapping(".snd", "audio/basic"); - MimeHelper.AddMimeMapping(".stl", "application/vndms-pkistl"); - MimeHelper.AddMimeMapping(".setpay", "application/set-payment-initiation"); - MimeHelper.AddMimeMapping(".stm", "text/html"); - MimeHelper.AddMimeMapping(".shar", "application/x-shar"); - MimeHelper.AddMimeMapping(".sh", "application/x-sh"); - MimeHelper.AddMimeMapping(".sit", "application/x-stuffit"); - MimeHelper.AddMimeMapping(".spl", "application/futuresplash"); - MimeHelper.AddMimeMapping(".sct", "text/scriptlet"); - MimeHelper.AddMimeMapping(".scd", "application/x-msschedule"); - MimeHelper.AddMimeMapping(".sst", "application/vndms-pkicertstore"); - MimeHelper.AddMimeMapping(".src", "application/x-wais-source"); - MimeHelper.AddMimeMapping(".sv4cpio", "application/x-sv4cpio"); - MimeHelper.AddMimeMapping(".tex", "application/x-tex"); - MimeHelper.AddMimeMapping(".tgz", "application/x-compressed"); - MimeHelper.AddMimeMapping(".t", "application/x-troff"); - MimeHelper.AddMimeMapping(".tar", "application/x-tar"); - MimeHelper.AddMimeMapping(".tr", "application/x-troff"); - MimeHelper.AddMimeMapping(".tif", "image/tiff"); - MimeHelper.AddMimeMapping(".txt", "text/plain"); - MimeHelper.AddMimeMapping(".texinfo", "application/x-texinfo"); - MimeHelper.AddMimeMapping(".trm", "application/x-msterminal"); - MimeHelper.AddMimeMapping(".tiff", "image/tiff"); - MimeHelper.AddMimeMapping(".tcl", "application/x-tcl"); - MimeHelper.AddMimeMapping(".texi", "application/x-texinfo"); - MimeHelper.AddMimeMapping(".tsv", "text/tab-separated-values"); - MimeHelper.AddMimeMapping(".ustar", "application/x-ustar"); - MimeHelper.AddMimeMapping(".uls", "text/iuls"); - MimeHelper.AddMimeMapping(".vcf", "text/x-vcard"); - MimeHelper.AddMimeMapping(".wps", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wav", "audio/wav"); - MimeHelper.AddMimeMapping(".wrz", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".wri", "application/x-mswrite"); - MimeHelper.AddMimeMapping(".wks", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wmf", "application/x-msmetafile"); - MimeHelper.AddMimeMapping(".wcm", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wrl", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".wdb", "application/vnd.ms-works"); - MimeHelper.AddMimeMapping(".wsdl", "text/xml"); - MimeHelper.AddMimeMapping(".xap", "application/x-silverlight-app"); - MimeHelper.AddMimeMapping(".xml", "text/xml"); - MimeHelper.AddMimeMapping(".xlm", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xaf", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".xla", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xls", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xlsx", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xof", "x-world/x-vrml"); - MimeHelper.AddMimeMapping(".xlt", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xlc", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xsl", "text/xml"); - MimeHelper.AddMimeMapping(".xbm", "image/x-xbitmap"); - MimeHelper.AddMimeMapping(".xlw", "application/vnd.ms-excel"); - MimeHelper.AddMimeMapping(".xpm", "image/x-xpixmap"); - MimeHelper.AddMimeMapping(".xwd", "image/x-xwindowdump"); - MimeHelper.AddMimeMapping(".xsd", "text/xml"); - MimeHelper.AddMimeMapping(".z", "application/x-compress"); - MimeHelper.AddMimeMapping(".zip", "application/x-zip-compressed"); - MimeHelper.AddMimeMapping(".*", "application/octet-stream"); - } - } - - } diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs index 45384dfa..0c7a918b 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAllResultRequestDto.cs @@ -10,7 +10,14 @@ namespace Yi.Framework.Ddd.Dtos { public class PagedAllResultRequestDto : PagedAndSortedResultRequestDto, IPagedAllResultRequestDto, IPagedAndSortedResultRequestDto, IPageTimeResultRequestDto { + /// + /// 查询开始时间条件 + /// public DateTime? StartTime { get; set; } + + /// + /// 查询结束时间条件 + /// public DateTime? EndTime { get; set; } } } diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAndSortedResultRequestDto.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAndSortedResultRequestDto.cs index cde6606f..d5d114b0 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAndSortedResultRequestDto.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Dtos/PagedAndSortedResultRequestDto.cs @@ -9,9 +9,24 @@ namespace Yi.Framework.Ddd.Dtos { public class PagedAndSortedResultRequestDto : IPagedAndSortedResultRequestDto { + /// + /// 查询当前页条件 + /// public int PageNum { get; set; } = 1; + + /// + /// 查询分页大小条件 + /// public int PageSize { get; set; } = int.MaxValue; + + /// + /// 查询排序字段条件 + /// public string? SortBy { get; set; } + + /// + /// 查询排序类别条件 + /// public OrderByEnum SortType { get; set; } = OrderByEnum.Desc; } } diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Entities/Entity.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Entities/Entity.cs index abf618ea..5a05f2dd 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Entities/Entity.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Entities/Entity.cs @@ -1,5 +1,4 @@ -using NET.AutoWebApi.Helper; -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Security.Principal; diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs index e71b6b01..007fe9ab 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/Services/CrudAppService.cs @@ -122,7 +122,7 @@ namespace Yi.Framework.Ddd.Services /// /// /// - public async Task DeleteAsync(string id) + public virtual async Task DeleteAsync(string id) { if (id is null) { diff --git a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/YiFrameworkSwaggerDoc.xml b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/YiFrameworkSwaggerDoc.xml index 182fbb53..17d6484d 100644 --- a/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/YiFrameworkSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/framework/Yi.Framework.Ddd/YiFrameworkSwaggerDoc.xml @@ -4,6 +4,36 @@ Yi.Framework.Ddd + + + 查询开始时间条件 + + + + + 查询结束时间条件 + + + + + 查询当前页条件 + + + + + 查询分页大小条件 + + + + + 查询排序字段条件 + + + + + 查询排序类别条件 + + 注释一下,严格意义这里应该protected,但是我认为 简易程度 与 耦合程度 中是需要进行衡量的 diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileEntity.cs b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileEntity.cs new file mode 100644 index 00000000..18c9c58f --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileEntity.cs @@ -0,0 +1,48 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Data.Auditing; +using Yi.Framework.Ddd.Entities; + +namespace Yi.Framework.FileManager +{ + /// + /// 文件表 + /// + [SugarTable("File")] + public class FileEntity : IEntity,IAuditedObject + { + [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] + public long Id { get; set; } + /// + /// 文件类型 + /// + [SugarColumn(ColumnName = "FileContentType")] + public string? FileContentType { get; set; } + /// + /// 文件大小 + /// + [SugarColumn(ColumnName = "FileSize")] + public decimal FileSize { get; set; } + /// + /// 文件名 + /// + [SugarColumn(ColumnName = "FileName")] + public string FileName { get; set; } + /// + /// 文件路径 + /// + [SugarColumn(ColumnName = "FilePath")] + public string FilePath { get; set; } + + public DateTime CreationTime { get; set; } + public long? CreatorId { get; set; } + + public long? LastModifierId { get; set; } + + public DateTime? LastModificationTime { get; set; } + } +} diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileGetListOutputDto.cs b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileGetListOutputDto.cs new file mode 100644 index 00000000..9cc4c5e4 --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileGetListOutputDto.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Ddd.Dtos; + +namespace Yi.Framework.FileManager +{ + public class FileGetListOutputDto:IEntityDto + { + public long Id { get; set; } + } +} diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileService.cs b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileService.cs new file mode 100644 index 00000000..59f89626 --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/FileService.cs @@ -0,0 +1,158 @@ +using Cike.AutoWebApi.Setting; +using Mapster; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Data; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.AspNetCore.Extensions; +using Yi.Framework.Core.Const; +using Yi.Framework.Core.Enums; +using Yi.Framework.Core.Helper; +using Yi.Framework.Ddd.Repositories; +using Yi.Framework.Ddd.Services; +using Yi.Framework.Ddd.Services.Abstract; +using Yi.Framework.ThumbnailSharp; + +namespace Yi.Framework.FileManager +{ + /// + /// 文件处理 + /// + public class FileService : ApplicationService, IFileService, IAutoApiService + { + private readonly IRepository _repository; + private readonly ThumbnailSharpManager _thumbnailSharpManager; + private readonly HttpContext _httpContext; + public FileService(IRepository repository, ThumbnailSharpManager thumbnailSharpManager, IHttpContextAccessor httpContextAccessor + ) + { + _repository = repository; + _thumbnailSharpManager = thumbnailSharpManager; + if (httpContextAccessor.HttpContext is null) + { + throw new ApplicationException("HttpContext为空"); + } + _httpContext = httpContextAccessor.HttpContext; + } + + /// + /// 下载文件,是否缩略图 + /// + /// + [Route("/api/file/{code}/{isThumbnail?}")] + public async Task Get([FromRoute] long code, [FromRoute] bool? isThumbnail) + { + var file = await _repository.GetByIdAsync(code); + if (file is null) + { + return new NotFoundResult(); + } + + var path = file.FilePath; + //如果为缩略图,需要修改路径 + if (isThumbnail is true) + { + path = $"{PathConst.wwwroot}/{FileTypeEnum.Thumbnail}/{file.Id}{Path.GetExtension(file.FileName)}"; + } + //路径为: 文件路径/文件id+文件扩展名 + + if (!File.Exists(path)) + { + return new NotFoundResult(); + } + + var steam = await File.ReadAllBytesAsync(path); + + //设置附件下载,下载名称 + _httpContext.FileAttachmentHandle(file.FileName); + return new FileContentResult(steam, file.FileContentType ?? @"text/plain"); + } + + /// + /// 上传文件 + /// + /// + public async Task> Post([FromForm] IFormFileCollection file) + { + if (file.Count() == 0) + { + throw new ArgumentException("文件上传为空!"); + } + //批量插入 + List entities = new(); + + foreach (var f in file) + { + FileEntity data = new(); + data.Id = SnowflakeHelper.NextId; + data.FileSize = ((decimal)f.Length) / 1024; + data.FileName = f.FileName; + + + data.FileContentType = MimeHelper.GetMimeMapping(f.FileName); + + + var type = MimeHelper.GetFileType(f.FileName); + + //落盘文件,文件名为雪花id+自己的扩展名 + string filename = data.Id.ToString() + Path.GetExtension(f.FileName); + string typePath = $"{PathConst.wwwroot}/{type}"; + if (!Directory.Exists(typePath)) + { + Directory.CreateDirectory(typePath); + } + + var filePath = Path.Combine(typePath, filename); + data.FilePath = filePath; + + + //生成文件 + using (var stream = new FileStream(filePath, FileMode.CreateNew, FileAccess.ReadWrite)) + { + await f.CopyToAsync(stream); + + //如果是图片类型,还需要生成缩略图,当然,如果图片很小,直接复制过去即可 + if (FileTypeEnum.Image.Equals(type)) + { + string thumbnailPath = $"{PathConst.wwwroot}/{FileTypeEnum.Thumbnail}"; + if (!Directory.Exists(thumbnailPath)) + { + Directory.CreateDirectory(thumbnailPath); + } + //保存至缩略图路径 + byte[] result = null!; + try + { + result = _thumbnailSharpManager.CreateThumbnailBytes(thumbnailSize: 300, imageStream: stream, imageFormat: Format.Jpeg); + } + catch + { + result = new byte[stream.Length]; + stream.Read(result, 0, result.Length); + // 设置当前流的位置为流的开始 + stream.Seek(0, SeekOrigin.Begin); + } + finally + { + + await System.IO.File.WriteAllBytesAsync(Path.Combine(thumbnailPath, filename), result); + } + } + + + }; + entities.Add(data); + } + await _repository.InsertRangeAsync(entities); + return entities.Adapt>(); + + + } + } +} diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/IFileService.cs b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/IFileService.cs new file mode 100644 index 00000000..ad47147f --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/IFileService.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.Framework.FileManager +{ + public interface IFileService + { + } +} diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/Yi.Framework.FileManager.csproj b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/Yi.Framework.FileManager.csproj new file mode 100644 index 00000000..453826c2 --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/Yi.Framework.FileManager.csproj @@ -0,0 +1,18 @@ + + + + net6.0 + enable + enable + True + + + + + + + + + + + diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs new file mode 100644 index 00000000..34d1deb2 --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.FileManager/YiFrameworkFileManagerModule.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using StartupModules; + +namespace Yi.Framework.FileManager +{ + public class YiFrameworkFileManagerModule : IStartupModule + { + public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context) + { + + } + + public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) + { + services.AddTransient(); + services.AddTransient(); + } + } +} \ No newline at end of file diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Logs/GlobalOperLogAttribute.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/GlobalOperLogAttribute.cs similarity index 93% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Logs/GlobalOperLogAttribute.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/GlobalOperLogAttribute.cs index d7cc28a0..97ce9b78 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Logs/GlobalOperLogAttribute.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/GlobalOperLogAttribute.cs @@ -10,11 +10,11 @@ using System.Text; using System.Threading.Tasks; using Yi.Framework.AspNetCore.Extensions; using Yi.Framework.Core.CurrentUsers; +using Yi.Framework.Core.Helper; using Yi.Framework.Ddd.Repositories; -using Yi.Framework.Model.RABC.Entitys; -using Yi.RBAC.Domain.Shared.Logs; -namespace Yi.RBAC.Domain.Logs + +namespace Yi.Framework.OperLogManager { public class GlobalOperLogAttribute : ActionFilterAttribute { @@ -22,11 +22,11 @@ namespace Yi.RBAC.Domain.Logs private IRepository _repository; private ICurrentUser _currentUser; //注入一个日志服务 - public GlobalOperLogAttribute(ILogger logger, IRepository repository,ICurrentUser currentUser) + public GlobalOperLogAttribute(ILogger logger, IRepository repository, ICurrentUser currentUser) { _logger = logger; _repository = repository; - _currentUser=currentUser; + _currentUser = currentUser; } public override async void OnResultExecuted(ResultExecutedContext context) diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/IOperationLogService.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/IOperationLogService.cs similarity index 66% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/IOperationLogService.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/IOperationLogService.cs index b676a4b0..ccb3019b 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/IOperationLogService.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/IOperationLogService.cs @@ -3,15 +3,14 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -using Yi.RBAC.Application.Contracts.Logs.Dtos; using Yi.Framework.Ddd.Services.Abstract; -namespace Yi.RBAC.Application.Contracts.Logs +namespace Yi.Framework.OperLogManager { /// /// OperationLog服务抽象 /// - public interface IOperationLogService : ICrudAppService + public interface IOperationLogService : ICrudAppService { } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain.Shared/Logs/OperEnum.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperEnum.cs similarity index 90% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain.Shared/Logs/OperEnum.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperEnum.cs index 188ad1e2..1c8d0a13 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain.Shared/Logs/OperEnum.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperEnum.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Yi.RBAC.Domain.Shared.Logs +namespace Yi.Framework.OperLogManager { public enum OperEnum { diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain.Shared/Logs/OperLogAttribute.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperLogAttribute.cs similarity index 82% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain.Shared/Logs/OperLogAttribute.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperLogAttribute.cs index 49625d7a..d9d3e4b9 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain.Shared/Logs/OperLogAttribute.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperLogAttribute.cs @@ -4,10 +4,10 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Yi.RBAC.Domain.Shared.Logs +namespace Yi.Framework.OperLogManager { [AttributeUsage(AttributeTargets.Method)] - public class OperLogAttribute : System.Attribute + public class OperLogAttribute : Attribute { /// /// 操作类型 @@ -31,8 +31,8 @@ namespace Yi.RBAC.Domain.Shared.Logs public OperLogAttribute(string title, OperEnum operationType) { - this.Title = title; - this.OperType = operationType; + Title = title; + OperType = operationType; } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Logs/Entities/OperationLogEntity.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogEntity.cs similarity index 92% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Logs/Entities/OperationLogEntity.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogEntity.cs index ba513734..4ae76ca9 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Logs/Entities/OperationLogEntity.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogEntity.cs @@ -5,15 +5,14 @@ using System.Text.Json.Serialization; using SqlSugar; using Yi.Framework.Data.Auditing; using Yi.Framework.Ddd.Entities; -using Yi.RBAC.Domain.Shared.Logs; -namespace Yi.Framework.Model.RABC.Entitys +namespace Yi.Framework.OperLogManager { /// /// 操作日志表 /// [SugarTable("OperationLog")] - public class OperationLogEntity : IEntity, ICreationAuditedObject + public class OperationLogEntity : IEntity, ICreationAuditedObject { [SugarColumn(ColumnName = "Id", IsPrimaryKey = true)] public long Id { get; set; } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/Dtos/OperationLog/OperationLogGetListInputVo.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogGetListInputVo.cs similarity index 79% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/Dtos/OperationLog/OperationLogGetListInputVo.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogGetListInputVo.cs index 0275dba1..7fecb292 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/Dtos/OperationLog/OperationLogGetListInputVo.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogGetListInputVo.cs @@ -4,9 +4,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Yi.Framework.Ddd.Dtos; -using Yi.RBAC.Domain.Shared.Logs; -namespace Yi.RBAC.Application.Contracts.Logs.Dtos +namespace Yi.Framework.OperLogManager { public class OperationLogGetListInputVo : PagedAllResultRequestDto { diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/Dtos/OperationLog/OperationLogGetListOutputDto.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogGetListOutputDto.cs similarity index 89% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/Dtos/OperationLog/OperationLogGetListOutputDto.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogGetListOutputDto.cs index 0f727957..11af25a2 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Logs/Dtos/OperationLog/OperationLogGetListOutputDto.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogGetListOutputDto.cs @@ -4,9 +4,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Yi.Framework.Ddd.Dtos; -using Yi.RBAC.Domain.Shared.Logs; -namespace Yi.RBAC.Application.Contracts.Logs.Dtos +namespace Yi.Framework.OperLogManager { public class OperationLogGetListOutputDto : IEntityDto { diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/OperationLogService.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogService.cs similarity index 81% rename from Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/OperationLogService.cs rename to Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogService.cs index b6e073a5..de954789 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/OperationLogService.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/OperationLogService.cs @@ -1,21 +1,17 @@ -using Yi.RBAC.Application.Contracts.Logs; -using NET.AutoWebApi.Setting; -using Yi.RBAC.Application.Contracts.Logs.Dtos; -using Yi.RBAC.Domain.Logs.Entities; using Yi.Framework.Ddd.Services; -using Yi.Framework.Model.RABC.Entitys; using Yi.Framework.Ddd.Dtos; -using SqlSugar; -using Yi.RBAC.Application.Contracts.Logs.Dtos.LoginLog; +using Yi.Framework.Core.Attributes; using Microsoft.AspNetCore.Mvc; +using SqlSugar; +using Cike.AutoWebApi.Setting; -namespace Yi.RBAC.Application.Logs +namespace Yi.Framework.OperLogManager { /// /// OperationLog服务实现 /// - [AppService] - public class OperationLogService : CrudAppService, + //[AppService] + public class OperationLogService : CrudAppService, IOperationLogService, IAutoApiService { public override async Task> GetListAsync(OperationLogGetListInputVo input) diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/Yi.Framework.OperLogManager.csproj b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/Yi.Framework.OperLogManager.csproj new file mode 100644 index 00000000..a77b0b8f --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/Yi.Framework.OperLogManager.csproj @@ -0,0 +1,19 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + + diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs new file mode 100644 index 00000000..653d1a11 --- /dev/null +++ b/Yi.Framework.Net6/src/module/Yi.Framework.OperLogManager/YiFrameworkOperLogManagerModule.cs @@ -0,0 +1,35 @@ +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using StartupModules; +using Yi.Framework.Core; +using Yi.Framework.Core.Attributes; + +namespace Yi.Framework.OperLogManager +{ + [DependsOn(typeof(YiFrameworkCoreModule))] + public class YiFrameworkOperLogManagerModule : IStartupModule + { + public void Configure(IApplicationBuilder app, ConfigureMiddlewareContext context) + { + } + + public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) + { + + services.AddControllers(options => + { + options.Filters.Add(); + }); + //services.AddAutoApiService(opt => + //{ + // //NETServiceTest所在程序集添加进动态api配置 + // opt.CreateConventional(typeof(YiFrameworkOperLogManagerModule).Assembly, option => option.RootPath = string.Empty); + + //}); + + services.AddSingleton(); + services.AddTransient(); + services.AddTransient(); + } + } +} \ No newline at end of file diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.Template/Program.cs b/Yi.Framework.Net6/src/module/Yi.Framework.Template/Program.cs index 1d6c5a27..7ec9ebe8 100644 --- a/Yi.Framework.Net6/src/module/Yi.Framework.Template/Program.cs +++ b/Yi.Framework.Net6/src/module/Yi.Framework.Template/Program.cs @@ -20,9 +20,9 @@ TemplateFactory templateFactory = new(); //string modelName = "Dictionary"; //string nameSpaces = "Yi.RBAC"; //List entityNames = new() { "_", "_" }; -string modelName = "Logs"; +string modelName = "Setting"; string nameSpaces = "Yi.RBAC"; -List entityNames = new() { "_" }; +List entityNames = new() { "File" }; foreach (var entityName in entityNames) diff --git a/Yi.Framework.Net6/src/module/Yi.Framework.Template/Template/Server/ServiceTemplate.txt b/Yi.Framework.Net6/src/module/Yi.Framework.Template/Template/Server/ServiceTemplate.txt index e058e170..9daff1d8 100644 --- a/Yi.Framework.Net6/src/module/Yi.Framework.Template/Template/Server/ServiceTemplate.txt +++ b/Yi.Framework.Net6/src/module/Yi.Framework.Template/Template/Server/ServiceTemplate.txt @@ -1,5 +1,5 @@ using #NameSpaces#.Application.Contracts.#ModelName#; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using #NameSpaces#.Application.Contracts.#ModelName#.Dtos; using #NameSpaces#.Domain.#ModelName#.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Application/ApplicationSwaggerDoc.xml b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Application/ApplicationSwaggerDoc.xml index 9dc71566..00dc323b 100644 --- a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Application/ApplicationSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Application/ApplicationSwaggerDoc.xml @@ -120,25 +120,6 @@ 临时服务,之后用其他模块代替 - - - 登录 - - - - - - - 判断是否有登录 - - - - - - 退出登录 - - - 获取用户信息 diff --git a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/YiBBSWebModule.cs b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/YiBBSWebModule.cs index 9a9129cb..93d27737 100644 --- a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/YiBBSWebModule.cs +++ b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/YiBBSWebModule.cs @@ -10,6 +10,7 @@ using Yi.Framework.Core.Autofac; using Yi.RBAC.Application; using Yi.Framework.AspNetCore; using Yi.Framework.Data.Json; +using Yi.Framework.OperLogManager; namespace Yi.BBS.Web { @@ -31,7 +32,6 @@ namespace Yi.BBS.Web { //NETServiceTest所在程序集添加进动态api配置 opt.CreateConventional(typeof(YiBBSApplicationModule).Assembly, option => option.RootPath = string.Empty); - //opt.CreateConventional(typeof(YiRBACApplicationModule).Assembly, option => option.RootPath = string.Empty); }); //添加swagger diff --git a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/appsettings.json b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/appsettings.json index bf88b491..1d927cdf 100644 --- a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/appsettings.json +++ b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/appsettings.json @@ -16,7 +16,7 @@ "DbConnOptions": { "Url": "DataSource=yi-sqlsugar-dev.db", "DbType": "Sqlite", - "EnabledDbSeed": false, + "EnabledDbSeed": true, "EnabledReadWrite": false, "EnabledCodeFirst": true, "EntityAssembly": null, diff --git a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/yi-sqlsugar-dev.db b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/yi-sqlsugar-dev.db index 4bc8b298..1516839b 100644 Binary files a/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/src/project/BBS/Yi.BBS.Web/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/src/project/Template/Yi.Template.Application/School/StudentService.cs b/Yi.Framework.Net6/src/project/Template/Yi.Template.Application/School/StudentService.cs index 1d851255..cd961206 100644 --- a/Yi.Framework.Net6/src/project/Template/Yi.Template.Application/School/StudentService.cs +++ b/Yi.Framework.Net6/src/project/Template/Yi.Template.Application/School/StudentService.cs @@ -1,5 +1,5 @@ using Yi.Template.Application.Contracts.School; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.Template.Application.Contracts.School.Dtos; using Yi.Template.Domain.School.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/ApplicationSwaggerDoc.xml b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/ApplicationSwaggerDoc.xml index 9dc71566..00dc323b 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/ApplicationSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/ApplicationSwaggerDoc.xml @@ -120,25 +120,6 @@ 临时服务,之后用其他模块代替 - - - 登录 - - - - - - - 判断是否有登录 - - - - - - 退出登录 - - - 获取用户信息 diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Exhibition/BannerService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Exhibition/BannerService.cs index db630b4e..94b25c30 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Exhibition/BannerService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Exhibition/BannerService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.Exhibition; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Application.Contracts.Exhibition.Dtos; using Yi.BBS.Domain.Exhibition.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/ArticleService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/ArticleService.cs index 200ef445..12eb207a 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/ArticleService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/ArticleService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.Forum; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Domain.Forum.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/CommentService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/CommentService.cs index 9f12340c..46fc1955 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/CommentService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/CommentService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.Forum; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Domain.Forum.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/DiscussService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/DiscussService.cs index a92e459a..317af4f7 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/DiscussService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/DiscussService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.Forum; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Domain.Forum.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/MyTypeService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/MyTypeService.cs index 903e92c2..ac557727 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/MyTypeService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/MyTypeService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.Forum; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Domain.Forum.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/PlateService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/PlateService.cs index 9d062aee..43a67b8a 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/PlateService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/Forum/PlateService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.Forum; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Application.Contracts.Forum.Dtos; using Yi.BBS.Domain.Forum.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/SettingService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/SettingService.cs index 598cffde..0e759e92 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/SettingService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/SettingService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.GlobalSetting; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Domain.GlobalSetting.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/TempService.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/TempService.cs index 48815354..e2e04b84 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/TempService.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Application/GlobalSetting/TempService.cs @@ -1,5 +1,5 @@ using Yi.BBS.Application.Contracts.GlobalSetting; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.BBS.Domain.GlobalSetting.Entities; using Yi.Framework.Ddd.Services; using Microsoft.AspNetCore.Mvc; @@ -14,43 +14,43 @@ namespace Yi.BBS.Application.GlobalSetting [AppService] public class TempService : ApplicationService, IAutoApiService { - /// - /// 登录 - /// - /// - /// - [Route("/api/account/login")] - public Task PostLoginAsync() - { - bool loginSucces = true; - if (!loginSucces) - { - throw new UserFriendlyException("登录失败", (int)BbsHttpStatusEnum.LoginFailed, "用户或者密码错误"); - } - var dto = new LoginDto("token"); - dto.User = new LoginUserInfoDto { Icon = "", Id = 0, Level = 1, UserName = "橙子" }; - return Task.FromResult(dto); - } + ///// + ///// 登录 + ///// + ///// + ///// + //[Route("/api/account/login")] + //public Task PostLoginAsync() + //{ + // bool loginSucces = true; + // if (!loginSucces) + // { + // throw new UserFriendlyException("登录失败", (int)BbsHttpStatusEnum.LoginFailed, "用户或者密码错误"); + // } + // var dto = new LoginDto("token"); + // dto.User = new LoginUserInfoDto { Icon = "", Id = 0, Level = 1, UserName = "橙子" }; + // return Task.FromResult(dto); + //} - /// - /// 判断是否有登录 - /// - /// - [Route("/api/account/logged")] - public Task PostLogged() - { - return Task.FromResult(true); - } + ///// + ///// 判断是否有登录 + ///// + ///// + //[Route("/api/account/logged")] + //public Task PostLogged() + //{ + // return Task.FromResult(true); + //} - /// - /// 退出登录 - /// - /// - [Route("/api/account/logout")] - public Task PostlogOut() - { - return Task.CompletedTask; - } + ///// + ///// 退出登录 + ///// + ///// + //[Route("/api/account/logout")] + //public Task PostlogOut() + //{ + // return Task.CompletedTask; + //} /// /// 获取用户信息 diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/YiBBSWebModule.cs b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/YiBBSWebModule.cs index 9a9129cb..93d27737 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/YiBBSWebModule.cs +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/YiBBSWebModule.cs @@ -10,6 +10,7 @@ using Yi.Framework.Core.Autofac; using Yi.RBAC.Application; using Yi.Framework.AspNetCore; using Yi.Framework.Data.Json; +using Yi.Framework.OperLogManager; namespace Yi.BBS.Web { @@ -31,7 +32,6 @@ namespace Yi.BBS.Web { //NETServiceTest所在程序集添加进动态api配置 opt.CreateConventional(typeof(YiBBSApplicationModule).Assembly, option => option.RootPath = string.Empty); - //opt.CreateConventional(typeof(YiRBACApplicationModule).Assembly, option => option.RootPath = string.Empty); }); //添加swagger diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/appsettings.json b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/appsettings.json index bf88b491..1d927cdf 100644 --- a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/appsettings.json +++ b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/appsettings.json @@ -16,7 +16,7 @@ "DbConnOptions": { "Url": "DataSource=yi-sqlsugar-dev.db", "DbType": "Sqlite", - "EnabledDbSeed": false, + "EnabledDbSeed": true, "EnabledReadWrite": false, "EnabledCodeFirst": true, "EntityAssembly": null, diff --git a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/yi-sqlsugar-dev.db b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/yi-sqlsugar-dev.db index 4bc8b298..1516839b 100644 Binary files a/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/src/project/bbs/Yi.BBS.Web/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/ApplicationContractsSwaggerDoc.xml b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/ApplicationContractsSwaggerDoc.xml index e4d97274..cf583a46 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/ApplicationContractsSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/ApplicationContractsSwaggerDoc.xml @@ -94,16 +94,61 @@ 登录信息 - - - OperationLog服务抽象 - - Config输入创建对象 + + + 配置查询参数 + + + + + 配置名称 + + + + + 配置键 + + + + + 配置名称 + + + + + 配置主键 + + + + + 配置值 + + + + + 配置类型 + + + + + 排序字段 + + + + + 备注 + + + + + 创建时间 + + Config服务抽象 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs new file mode 100644 index 00000000..c0e0e2a3 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/Account/UpdateIconDto.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Yi.RBAC.Application.Contracts.Identity.Dtos.Account +{ + public class UpdateIconDto + { + public string? Icon { get; set; } + } +} diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/ProfileUpdateInputVo.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/ProfileUpdateInputVo.cs new file mode 100644 index 00000000..8a3b77d4 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Identity/Dtos/User/ProfileUpdateInputVo.cs @@ -0,0 +1,23 @@ +using Mapster; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.RBAC.Domain.Shared.Identity.EnumClasses; + +namespace Yi.RBAC.Application.Contracts.Identity.Dtos.User +{ + public class ProfileUpdateInputVo + { + public string? Name { get; set; } + public int? Age { get; set; } + public string? Nick { get; set; } + public string? Email { get; set; } + public string? Address { get; set; } + public long? Phone { get; set; } + public string? Introduction { get; set; } + public string? Remark { get; set; } + public SexEnum? Sex { get; set; } + } +} diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListInputVo.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListInputVo.cs index 4d1c0a30..1782cec4 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListInputVo.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListInputVo.cs @@ -7,10 +7,20 @@ using Yi.Framework.Ddd.Dtos; namespace Yi.RBAC.Application.Contracts.Setting.Dtos { + /// + /// òѯ + /// public class ConfigGetListInputVo : PagedAllResultRequestDto { + /// + /// + /// public string? ConfigName { get; set; } + + /// + /// ü + /// public string? ConfigKey { get; set; } - public DateTime CreationTime { get; set; } + } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListOutputDto.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListOutputDto.cs index 73819616..1b1da511 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListOutputDto.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application.Contracts/Setting/Dtos/Config/ConfigGetListOutputDto.cs @@ -10,12 +10,36 @@ namespace Yi.RBAC.Application.Contracts.Setting.Dtos public class ConfigGetListOutputDto : IEntityDto { public long Id { get; set; } + /// + /// + /// public string ConfigName { get; set; } = string.Empty; + + /// + /// + /// public string ConfigKey { get; set; } = string.Empty; + /// + /// ֵ + /// public string ConfigValue { get; set; } = string.Empty; + /// + /// + /// public string? ConfigType { get; set; } + /// + /// ֶ + /// public int OrderNum { get; set; } + + /// + /// ע + /// public string? Remark { get; set; } + + /// + /// ʱ + /// public DateTime CreationTime { get; set; } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml index 75e1f5ac..8ef4cb44 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/ApplicationSwaggerDoc.xml @@ -73,6 +73,13 @@ + + + 更新头像 + + + + Dept服务实现 @@ -171,6 +178,13 @@ + + + 更新个人中心 + + + + 更新状态 @@ -179,15 +193,17 @@ - - - OperationLog服务实现 - - Config服务实现 + + + 多查 + + + + diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryService.cs index 419a4448..5dfd2e6c 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Dictionary; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Dictionary.Dtos; using Yi.RBAC.Domain.Dictionary.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryTypeService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryTypeService.cs index f1d7af3d..16071eb1 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryTypeService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Dictionary/DictionaryTypeService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Dictionary; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Dictionary.Dtos; using Yi.RBAC.Domain.Dictionary.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs index e0ea1e91..8d08f302 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/AccountService.cs @@ -4,7 +4,7 @@ using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using SqlSugar; using System; using System.Collections.Generic; @@ -28,6 +28,7 @@ using Yi.RBAC.Domain.Identity.Repositories; using Yi.RBAC.Domain.Shared.Identity.ConstClasses; using Yi.RBAC.Domain.Shared.Identity.Dtos; using Yi.RBAC.Domain.Shared.Identity.Etos; +using System.Net.WebSockets; namespace Yi.RBAC.Application.Identity { @@ -188,5 +189,19 @@ namespace Yi.RBAC.Application.Identity await _accountManager.RestPasswordAsync(userId, input.Password); return true; } + + /// + /// 更新头像 + /// + /// + /// + public async Task UpdateIconAsync(UpdateIconDto input) + { + var entity = await _userRepository.GetByIdAsync(_currentUser.Id); + entity.Icon = input.Icon; + await _userRepository.UpdateAsync(entity); + + return true; + } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/DeptService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/DeptService.cs index 624a2110..0d032dad 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/DeptService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/DeptService.cs @@ -1,11 +1,12 @@ using Yi.RBAC.Application.Contracts.Identity; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; using Yi.Framework.Ddd.Services; using Yi.Framework.Ddd.Dtos; using SqlSugar; using Microsoft.AspNetCore.Mvc; +using Cike.AutoWebApi.Setting; namespace Yi.RBAC.Application.Identity { diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/MenuService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/MenuService.cs index 1fa8d6ab..036a0a0e 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/MenuService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/MenuService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Identity; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/PostService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/PostService.cs index f2ce0baa..ab2eaccc 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/PostService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/PostService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Identity; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/RoleService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/RoleService.cs index a9af44dc..ddc08fd7 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/RoleService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/RoleService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Identity; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs index fff06ecc..91911800 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Identity/UserService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Identity; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Identity.Dtos; using Yi.RBAC.Domain.Identity.Entities; using Yi.Framework.Ddd.Services; @@ -12,7 +12,9 @@ using SqlSugar; using Mapster; using Microsoft.AspNetCore.Mvc; using Yi.Framework.Auth.JwtBearer.Authorization; -using Yi.RBAC.Domain.Shared.Logs; +using Yi.RBAC.Application.Contracts.Identity.Dtos.User; +using Yi.Framework.Core.CurrentUsers; +using Yi.Framework.OperLogManager; namespace Yi.RBAC.Application.Identity { @@ -32,6 +34,9 @@ namespace Yi.RBAC.Application.Identity [Autowired] private IUserRepository _userRepository { get; set; } + [Autowired] + private ICurrentUser _currentUser { get; set; } + /// /// 查询用户 /// @@ -138,6 +143,21 @@ namespace Yi.RBAC.Application.Identity return await MapToGetOutputDtoAsync(entity); } + /// + /// 更新个人中心 + /// + /// + /// + [OperLog("更新个人信息", OperEnum.Update)] + public async Task UpdateProfileAsync(ProfileUpdateInputVo input) + { + var entity = await _repository.GetByIdAsync(_currentUser.Id); + _mapper.Map(input, entity); + await _repository.UpdateAsync(entity); + var dto = _mapper.Map(entity); + return dto; + } + /// /// 更新状态 /// @@ -158,5 +178,10 @@ namespace Yi.RBAC.Application.Identity await _repository.UpdateAsync(entity); return await MapToGetOutputDtoAsync(entity); } + [OperLog("删除用户", OperEnum.Delete)] + public override Task DeleteAsync(string id) + { + return base.DeleteAsync(id); + } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/LoginLogService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/LoginLogService.cs index a0a34d8f..52ba4d68 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/LoginLogService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Logs/LoginLogService.cs @@ -1,5 +1,5 @@ using Microsoft.AspNetCore.Mvc; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using SqlSugar; using System; using System.Collections.Generic; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Setting/ConfigService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Setting/ConfigService.cs index 3cf4e1f8..aab40d6f 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Setting/ConfigService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/Setting/ConfigService.cs @@ -1,5 +1,5 @@ using Yi.RBAC.Application.Contracts.Setting; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.RBAC.Application.Contracts.Setting.Dtos; using Yi.RBAC.Domain.Setting.Entities; using Yi.Framework.Ddd.Services; @@ -19,6 +19,11 @@ namespace Yi.RBAC.Application.Setting public class ConfigService : CrudAppService, IConfigService, IAutoApiService { + /// + /// 多查 + /// + /// + /// public override async Task> GetListAsync(ConfigGetListInputVo input) { var entity = await MapToEntityAsync(input); diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/TestService.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/TestService.cs index 5eff6736..5cf13672 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/TestService.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Application/TestService.cs @@ -1,4 +1,4 @@ -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using System; using System.Collections.Generic; using System.Linq; diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DataSeeds/UserDataSeed.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DataSeeds/UserDataSeed.cs new file mode 100644 index 00000000..b16193da --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DataSeeds/UserDataSeed.cs @@ -0,0 +1,68 @@ +using SqlSugar; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Yi.Framework.Data.DataSeeds; +using Yi.Framework.Ddd.Repositories; +using Yi.RBAC.Domain.Identity.Entities; +using Yi.RBAC.Domain.Shared.Identity.EnumClasses; + +namespace Yi.RBAC.Domain.DataSeeds +{ + [AppService(typeof(IDataSeed))] + public class UserDataSeed : AbstractDataSeed + { + public UserDataSeed(IRepository repository) : base(repository) + { + } + + public override List GetSeedData() + { + var entities=new List(); + UserEntity user1 = new UserEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "大橙子", + UserName = "cc", + Nick = "橙子", + Password = "123456", + Email = "454313500@qq.com", + Phone = 13800000000, + Sex = SexEnum.Male, + Address = "深圳", + Age = 20, + Introduction = "还有谁?", + OrderNum = 999, + Remark = "描述是什么呢?", + State = true + }; + user1.BuildPassword(); + entities.Add(user1); + + UserEntity user2 = new UserEntity() + { + Id = SnowFlakeSingle.Instance.NextId(), + Name = "大测试", + UserName = "test", + Nick = "测试", + Password = "123456", + Email = "454313500@qq.com", + Phone = 15900000000, + Sex = SexEnum.Woman, + Address = "深圳", + Age = 18, + Introduction = "还有我!", + OrderNum = 1, + Remark = "我没有描述!", + State = true + + }; + user2.BuildPassword(); + entities.Add(user2); + + return entities; + } + } +} diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml index e60d99a5..d7fd7578 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/DomainSwaggerDoc.xml @@ -790,55 +790,5 @@ 描述 - - - 操作日志表 - - - - - 操作模块 - - - - - 操作类型 - - - - - 请求方法 - - - - - 操作人员 - - - - - 操作Ip - - - - - 操作地点 - - - - - 操作方法 - - - - - 请求参数 - - - - - 请求结果 - - diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Yi.RBAC.Domain.csproj b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Yi.RBAC.Domain.csproj index d8fd344f..5aad5dba 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Yi.RBAC.Domain.csproj +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/Yi.RBAC.Domain.csproj @@ -12,12 +12,13 @@ - + + diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/YiRBACDomainModule.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/YiRBACDomainModule.cs index 5a2e9966..0c06234c 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/YiRBACDomainModule.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Domain/YiRBACDomainModule.cs @@ -10,6 +10,8 @@ using System.Threading.Tasks; using Yi.Framework.Core.Attributes; using Yi.Framework.Data; using Yi.Framework.EventBus; +using Yi.Framework.FileManager; +using Yi.Framework.OperLogManager; using Yi.Framework.ThumbnailSharp; using Yi.RBAC.Domain.Logs; using Yi.RBAC.Domain.Shared; @@ -20,7 +22,9 @@ namespace Yi.RBAC.Domain typeof(YiRBACDomainSharedModule), typeof(YiFrameworkDataModule), typeof(YiFrameworkThumbnailSharpModule), - typeof(YiFrameworkEventBusModule) + typeof(YiFrameworkEventBusModule), + typeof(YiFrameworkOperLogManagerModule), + typeof(YiFrameworkFileManagerModule) )] public class YiRBACDomainModule : IStartupModule { @@ -31,10 +35,7 @@ namespace Yi.RBAC.Domain public void ConfigureServices(IServiceCollection services, ConfigureServicesContext context) { services.AddHeiCaptcha(); - services.AddControllers(options => { - options.Filters.Add(); - }); - services.AddSingleton(); + } } } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/YiRBACWebModule.cs b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/YiRBACWebModule.cs index de6f4604..6db43adc 100644 --- a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/YiRBACWebModule.cs +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/YiRBACWebModule.cs @@ -7,6 +7,7 @@ using Yi.Framework.Core; using Yi.Framework.Core.Attributes; using Yi.Framework.Core.Autofac; using Yi.Framework.Data.Json; +using Yi.Framework.OperLogManager; using Yi.RBAC.Application; using Yi.RBAC.Sqlsugar; @@ -28,12 +29,16 @@ namespace Yi.RBAC.Web opt.JsonSerializerOptions.Converters.Add(new DateTimeJsonConverter("yyyy-MM-dd HH:mm:ss")); }); + + + services.AddAutoApiService(opt => { - //NETServiceTest所在程序集添加进动态api配置 - opt.CreateConventional(typeof(YiRBACApplicationModule).Assembly, option => option.RootPath = string.Empty); + opt.CreateConventional(AssemblyHelper.GetAllLoadAssembly(), option => option.RootPath = string.Empty); + }); + //添加swagger services.AddSwaggerServer(); } diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628277864304640.txt b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628277864304640.txt new file mode 100644 index 00000000..119417d4 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628277864304640.txt @@ -0,0 +1,28 @@ +3-5 +一周一次 + +实现涂膜功能 +1:数据存储,Crud +2:后台线程,任务调度 +3:plc通信交互,IM工厂 +4:定时任务界面管控 +5:signlr开发 +6:授权鉴权 +7:用户角色菜单模块 +8:配置文件统一标准化 +9:规范问题 +10:动态api +11:发布订阅 +12:resful +13:dto注释 +14:代码中文 +15:种子数据 + +1:job任务调度的模式,可以在if上的改 +2:Crud,EntityServiceBase,考虑复用的话sqlsugar这块就不用动了、仓储、工作单元、过滤器 +3:IOptionsWritable ,直接可以复用 +4:事件,是否需要,需要的话,用哪个 +5:动态api,是否需要 +6:IM,IVarReader中的IDataChannel工厂 +6:ISignal +7:微软日志扩展,这块是否考虑封装出来,还是直接提供微软日志的扩展,我们提供模板就可以了 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628396160454656.txt b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628396160454656.txt new file mode 100644 index 00000000..119417d4 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628396160454656.txt @@ -0,0 +1,28 @@ +3-5 +一周一次 + +实现涂膜功能 +1:数据存储,Crud +2:后台线程,任务调度 +3:plc通信交互,IM工厂 +4:定时任务界面管控 +5:signlr开发 +6:授权鉴权 +7:用户角色菜单模块 +8:配置文件统一标准化 +9:规范问题 +10:动态api +11:发布订阅 +12:resful +13:dto注释 +14:代码中文 +15:种子数据 + +1:job任务调度的模式,可以在if上的改 +2:Crud,EntityServiceBase,考虑复用的话sqlsugar这块就不用动了、仓储、工作单元、过滤器 +3:IOptionsWritable ,直接可以复用 +4:事件,是否需要,需要的话,用哪个 +5:动态api,是否需要 +6:IM,IVarReader中的IDataChannel工厂 +6:ISignal +7:微软日志扩展,这块是否考虑封装出来,还是直接提供微软日志的扩展,我们提供模板就可以了 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628415508779008.txt b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628415508779008.txt new file mode 100644 index 00000000..119417d4 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628628415508779008.txt @@ -0,0 +1,28 @@ +3-5 +一周一次 + +实现涂膜功能 +1:数据存储,Crud +2:后台线程,任务调度 +3:plc通信交互,IM工厂 +4:定时任务界面管控 +5:signlr开发 +6:授权鉴权 +7:用户角色菜单模块 +8:配置文件统一标准化 +9:规范问题 +10:动态api +11:发布订阅 +12:resful +13:dto注释 +14:代码中文 +15:种子数据 + +1:job任务调度的模式,可以在if上的改 +2:Crud,EntityServiceBase,考虑复用的话sqlsugar这块就不用动了、仓储、工作单元、过滤器 +3:IOptionsWritable ,直接可以复用 +4:事件,是否需要,需要的话,用哪个 +5:动态api,是否需要 +6:IM,IVarReader中的IDataChannel工厂 +6:ISignal +7:微软日志扩展,这块是否考虑封装出来,还是直接提供微软日志的扩展,我们提供模板就可以了 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628636925021786112.txt b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628636925021786112.txt new file mode 100644 index 00000000..119417d4 --- /dev/null +++ b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628636925021786112.txt @@ -0,0 +1,28 @@ +3-5 +一周一次 + +实现涂膜功能 +1:数据存储,Crud +2:后台线程,任务调度 +3:plc通信交互,IM工厂 +4:定时任务界面管控 +5:signlr开发 +6:授权鉴权 +7:用户角色菜单模块 +8:配置文件统一标准化 +9:规范问题 +10:动态api +11:发布订阅 +12:resful +13:dto注释 +14:代码中文 +15:种子数据 + +1:job任务调度的模式,可以在if上的改 +2:Crud,EntityServiceBase,考虑复用的话sqlsugar这块就不用动了、仓储、工作单元、过滤器 +3:IOptionsWritable ,直接可以复用 +4:事件,是否需要,需要的话,用哪个 +5:动态api,是否需要 +6:IM,IVarReader中的IDataChannel工厂 +6:ISignal +7:微软日志扩展,这块是否考虑封装出来,还是直接提供微软日志的扩展,我们提供模板就可以了 diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628642335514562560 b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628642335514562560 new file mode 100644 index 00000000..2d3f458d Binary files /dev/null and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628642335514562560 differ diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628645021437792256 b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628645021437792256 new file mode 100644 index 00000000..d66859d7 Binary files /dev/null and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/File/1628645021437792256 differ diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Image/1628639014875697152.jpg b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Image/1628639014875697152.jpg new file mode 100644 index 00000000..57c1f446 Binary files /dev/null and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Image/1628639014875697152.jpg differ diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Image/1628639326948691968.jpg b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Image/1628639326948691968.jpg new file mode 100644 index 00000000..57c1f446 Binary files /dev/null and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Image/1628639326948691968.jpg differ diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Thumbnail/1628639326948691968.jpg b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Thumbnail/1628639326948691968.jpg new file mode 100644 index 00000000..446af2c8 Binary files /dev/null and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/wwwroot/Thumbnail/1628639326948691968.jpg differ diff --git a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db index de82930b..7071674f 100644 Binary files a/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db and b/Yi.Framework.Net6/src/project/rbac/Yi.RBAC.Web/yi-sqlsugar-dev.db differ diff --git a/Yi.Framework.Net6/src/project/template/Yi.Template.Application/School/StudentService.cs b/Yi.Framework.Net6/src/project/template/Yi.Template.Application/School/StudentService.cs index 1d851255..cd961206 100644 --- a/Yi.Framework.Net6/src/project/template/Yi.Template.Application/School/StudentService.cs +++ b/Yi.Framework.Net6/src/project/template/Yi.Template.Application/School/StudentService.cs @@ -1,5 +1,5 @@ using Yi.Template.Application.Contracts.School; -using NET.AutoWebApi.Setting; +using Cike.AutoWebApi.Setting; using Yi.Template.Application.Contracts.School.Dtos; using Yi.Template.Domain.School.Entities; using Yi.Framework.Ddd.Services; diff --git a/Yi.RuoYi.Vue3/src/api/file.js b/Yi.RuoYi.Vue3/src/api/file.js index 2dc681e9..d80d58e6 100644 --- a/Yi.RuoYi.Vue3/src/api/file.js +++ b/Yi.RuoYi.Vue3/src/api/file.js @@ -1,9 +1,9 @@ import request from '@/utils/request' export function - upload(type,data){ + upload(data){ return request({ - url: `/file/upload/${type}`, + url: `/file`, headers:{"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}, method: 'POST', data:data diff --git a/Yi.RuoYi.Vue3/src/api/system/user.js b/Yi.RuoYi.Vue3/src/api/system/user.js index bf3f580e..8302e52b 100644 --- a/Yi.RuoYi.Vue3/src/api/system/user.js +++ b/Yi.RuoYi.Vue3/src/api/system/user.js @@ -69,7 +69,7 @@ export function changeUserStatus(userId, isDel) { // 查询用户个人信息 export function getUserProfile() { return request({ - url: '/account/getUserAllInfo', + url: '/account', method: 'get' }) } @@ -77,11 +77,20 @@ export function getUserProfile() { // 修改用户个人信息 export function updateUserProfile(data) { return request({ - url: '/user/UpdateProfile', + url: `/user/profile`, method: 'put', - data: { user: data } + data: data }) } +// 只修改用户头像 +export function updateUserIcon(data) { + return request({ + url: `/account/icon`, + method: 'put', + data:{icon:data} + }) +} + // 用户密码重置 export function updateUserPwd(oldPassword, newPassword) { diff --git a/Yi.RuoYi.Vue3/src/utils/request.js b/Yi.RuoYi.Vue3/src/utils/request.js index 7903a0a4..29dfbe0b 100644 --- a/Yi.RuoYi.Vue3/src/utils/request.js +++ b/Yi.RuoYi.Vue3/src/utils/request.js @@ -74,14 +74,11 @@ service.interceptors.request.use(config => { // 响应拦截器 service.interceptors.response.use(res => { - // // 未设置状态码则默认成功状态 - // const code = res.data.code || 200; - // // 获取错误信息 - // const msg = errorCode[code] || res.data.message || errorCode['default'] - - const code=200; - const msg="成功"; - + // 未设置状态码则默认成功状态 + const code = res.data.code || 200; + // 获取错误信息 + const msg = errorCode[code] || res.data.message || errorCode['default'] + // 二进制数据则直接返回 if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){ return res diff --git a/Yi.RuoYi.Vue3/src/views/monitor/operlog/index.vue b/Yi.RuoYi.Vue3/src/views/monitor/operlog/index.vue index 4e152056..915dd42b 100644 --- a/Yi.RuoYi.Vue3/src/views/monitor/operlog/index.vue +++ b/Yi.RuoYi.Vue3/src/views/monitor/operlog/index.vue @@ -34,8 +34,8 @@ /> - - + + @@ -100,9 +100,9 @@ - + @@ -163,7 +163,7 @@ {{ parseTime(form.createTime) }} - {{ form.errorMsg }} + {{ form.errorMsg }} @@ -202,7 +202,7 @@ const data = reactive({ title: undefined, operUser: undefined, operType: undefined, - isDeleted: undefined + state: undefined } }); diff --git a/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue b/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue index 7f1c4834..71b1a787 100644 --- a/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue +++ b/Yi.RuoYi.Vue3/src/views/system/user/profile/userAvatar.vue @@ -54,7 +54,7 @@ import "vue-cropper/dist/index.css"; import { VueCropper } from "vue-cropper"; import { upload } from "@/api/file"; -import { updateUserProfile } from "@/api/system/user"; +import { updateUserIcon } from "@/api/system/user"; import useUserStore from '@/store/modules/user' const userStore = useUserStore() @@ -116,14 +116,11 @@ function uploadImg() { proxy.$refs.cropper.getCropBlob(data => { let formData = new FormData(); formData.append("file", data); - upload("image",formData).then(response => { + upload(formData).then(response => { open.value = false; - options.img = import.meta.env.VITE_APP_BASE_API +"/file/"+response.data[0]; + options.img = import.meta.env.VITE_APP_BASE_API +"/file/"+response.data[0].id; userStore.avatar = options.img; - - - - updateUserProfile({icon:response.data[0]}).then(response2=>{ + updateUserIcon(response.data[0].id).then(response2=>{ proxy.$modal.msgSuccess("修改成功"); visible.value = false; })