Browse Source

代码整理功能优化

zuohuaijun 3 years ago
parent
commit
2462eb5cb3

+ 2 - 1
Admin.NET/Admin.NET.Application/AppConfig.json

@@ -7,7 +7,8 @@
       {
       {
         "DbConfigId": "Test",
         "DbConfigId": "Test",
         "DbType": "Sqlite",
         "DbType": "Sqlite",
-        "DbConnection": "DataSource=C:\\db\\Test.db"
+        "DbConnection": "DataSource=C:\\db\\Test.db",
+        "InitTable": true
       }
       }
     ]
     ]
   },
   },

+ 7 - 7
Admin.NET/Admin.NET.Core/Admin.NET.Core.csproj

@@ -18,17 +18,17 @@
   </ItemGroup>
   </ItemGroup>
 
 
   <ItemGroup>
   <ItemGroup>
-    <PackageReference Include="Caching.CSRedis" Version="3.6.90" />
-    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="3.2.2" />
-    <PackageReference Include="Furion.Extras.Logging.Serilog" Version="3.2.2" />
-    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="3.2.2" />
-    <PackageReference Include="Furion.Pure" Version="3.2.2" />
+    <PackageReference Include="Caching.CSRedis" Version="3.8.1" />
+    <PackageReference Include="Furion.Extras.Authentication.JwtBearer" Version="3.3.0" />
+    <PackageReference Include="Furion.Extras.Logging.Serilog" Version="3.3.0" />
+    <PackageReference Include="Furion.Extras.ObjectMapper.Mapster" Version="3.3.0" />
+    <PackageReference Include="Furion.Pure" Version="3.3.0" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.4" />
     <PackageReference Include="Magicodes.IE.Excel" Version="2.6.4" />
     <PackageReference Include="MySql.Data" Version="8.0.29" />
     <PackageReference Include="MySql.Data" Version="8.0.29" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.5" />
     <PackageReference Include="OnceMi.AspNetCore.OSS" Version="1.1.5" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.14.0" />
     <PackageReference Include="SKIT.FlurlHttpClient.Wechat.Api" Version="2.14.0" />
-    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.8.0" />
-    <PackageReference Include="SqlSugarCore" Version="5.0.8.1" />
+    <PackageReference Include="SKIT.FlurlHttpClient.Wechat.TenpayV3" Version="2.9.0" />
+    <PackageReference Include="SqlSugarCore" Version="5.0.8.3" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.18" />
     <PackageReference Include="System.Linq.Dynamic.Core" Version="1.2.18" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="UAParser" Version="3.1.47" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.12" />
     <PackageReference Include="Yitter.IdGenerator" Version="1.0.12" />

+ 9 - 5
Admin.NET/Admin.NET.Core/Admin.NET.Core.xml

@@ -1357,7 +1357,11 @@
             微信商户号
             微信商户号
             </summary>
             </summary>
         </member>
         </member>
-        <!-- Badly formed XML comment ignored for member "P:Admin.NET.Core.WechatPay.AppId" -->
+        <member name="P:Admin.NET.Core.WechatPay.AppId">
+            <summary>
+            服务商AppId
+            </summary>
+        </member>
         <member name="P:Admin.NET.Core.WechatPay.OutTradeNumber">
         <member name="P:Admin.NET.Core.WechatPay.OutTradeNumber">
             <summary>
             <summary>
             商户订单号
             商户订单号
@@ -5415,12 +5419,12 @@
             机构Id
             机构Id
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:Admin.NET.Core.Service.UpdatePwdUserInput.OldPassword">
+        <member name="P:Admin.NET.Core.Service.ChangePwdInput.PasswordOld">
             <summary>
             <summary>
-            原始密码
+            当前密码
             </summary>
             </summary>
         </member>
         </member>
-        <member name="P:Admin.NET.Core.Service.UpdatePwdUserInput.NewPassword">
+        <member name="P:Admin.NET.Core.Service.ChangePwdInput.PasswordNew">
             <summary>
             <summary>
             新密码
             新密码
             </summary>
             </summary>
@@ -5645,7 +5649,7 @@
             <param name="input"></param>
             <param name="input"></param>
             <returns></returns>
             <returns></returns>
         </member>
         </member>
-        <member name="M:Admin.NET.Core.Service.SysUserService.UpdateUserPwd(Admin.NET.Core.Service.UpdatePwdUserInput)">
+        <member name="M:Admin.NET.Core.Service.SysUserService.ChangeUserPwd(Admin.NET.Core.Service.ChangePwdInput)">
             <summary>
             <summary>
             修改用户密码
             修改用户密码
             </summary>
             </summary>

+ 1 - 0
Admin.NET/Admin.NET.Core/Entity/WechatPay.cs

@@ -18,6 +18,7 @@ namespace Admin.NET.Core
 
 
         /// <summary>
         /// <summary>
         /// 服务商AppId
         /// 服务商AppId
+        /// </summary>
         public string AppId { get; set; }
         public string AppId { get; set; }
 
 
         /// <summary>
         /// <summary>

+ 1 - 0
Admin.NET/Admin.NET.Core/SeedData/SysMenuSeedData.cs

@@ -53,6 +53,7 @@ namespace Admin.NET.Core
                 new SysMenu{ Id=252885263003772, Pid=252885263003770, Title="职位编辑", Permission="sysPos:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
                 new SysMenu{ Id=252885263003772, Pid=252885263003770, Title="职位编辑", Permission="sysPos:update", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
                 new SysMenu{ Id=252885263003773, Pid=252885263003770, Title="职位增加", Permission="sysPos:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
                 new SysMenu{ Id=252885263003773, Pid=252885263003770, Title="职位增加", Permission="sysPos:add", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
                 new SysMenu{ Id=252885263003774, Pid=252885263003770, Title="职位删除", Permission="sysPos:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
                 new SysMenu{ Id=252885263003774, Pid=252885263003770, Title="职位删除", Permission="sysPos:delete", Type=MenuTypeEnum.Btn, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
+                new SysMenu{ Id=252885263003775, Pid=252885263003720, Title="修改密码", Path="password", Name="PasswordManagement", Component="/sys/admin/password/index",Icon="ant-design:eye-outlined", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
 
 
                 new SysMenu{ Id=252885263003780, Pid=0, Title="平台管理", Path="/platform", Name="platform", Component="LAYOUT", Redirect="", Icon="ant-design:ant-design-outlined", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=200 },
                 new SysMenu{ Id=252885263003780, Pid=0, Title="平台管理", Path="/platform", Name="platform", Component="LAYOUT", Redirect="", Icon="ant-design:ant-design-outlined", Type=MenuTypeEnum.Dir, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=200 },
                 new SysMenu{ Id=252885263003790, Pid=252885263003780, Title="租户管理", Path="tenant", Name="TenantManagement", Component="/sys/admin/tenant/index", Icon="ant-design:cluster-outlined", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },
                 new SysMenu{ Id=252885263003790, Pid=252885263003780, Title="租户管理", Path="tenant", Name="TenantManagement", Component="/sys/admin/tenant/index", Icon="ant-design:cluster-outlined", Type=MenuTypeEnum.Menu, CreateTime=DateTime.Parse("2022-02-10 00:00:00"), OrderNo=100 },

+ 6 - 6
Admin.NET/Admin.NET.Core/Service/User/Dto/UserInput.cs

@@ -157,19 +157,19 @@ namespace Admin.NET.Core.Service
     {
     {
     }
     }
 
 
-    public class UpdatePwdUserInput : BaseIdInput
+    public class ChangePwdInput
     {
     {
         /// <summary>
         /// <summary>
-        /// 原始密码
+        /// 当前密码
         /// </summary>
         /// </summary>
-        [Required(ErrorMessage = "原始密码不能为空")]
-        public string OldPassword { get; set; }
+        [Required(ErrorMessage = "当前密码不能为空")]
+        public string PasswordOld { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// 新密码
         /// 新密码
         /// </summary>
         /// </summary>
         [Required(ErrorMessage = "原始密码不能为空")]
         [Required(ErrorMessage = "原始密码不能为空")]
-        [StringLength(50, MinimumLength = 5, ErrorMessage = "密码需要大于5个字符")]
-        public string NewPassword { get; set; }
+        [StringLength(20, MinimumLength = 5, ErrorMessage = "密码需要大于5个字符")]
+        public string PasswordNew { get; set; }
     }
     }
 }
 }

+ 5 - 5
Admin.NET/Admin.NET.Core/Service/User/SysUserService.cs

@@ -196,13 +196,13 @@ namespace Admin.NET.Core.Service
         /// </summary>
         /// </summary>
         /// <param name="input"></param>
         /// <param name="input"></param>
         /// <returns></returns>
         /// <returns></returns>
-        [HttpPost("/sysUser/updatePwd")]
-        public async Task<int> UpdateUserPwd(UpdatePwdUserInput input)
+        [HttpPost("/sysUser/changeUserPwd")]
+        public async Task<int> ChangeUserPwd(ChangePwdInput input)
         {
         {
-            var user = await _sysUserRep.GetFirstAsync(u => u.Id == input.Id);
-            if (MD5Encryption.Encrypt(input.OldPassword) != user.Password)
+            var user = await _sysUserRep.GetFirstAsync(u => u.Id == _userManager.UserId);
+            if (MD5Encryption.Encrypt(input.PasswordOld) != user.Password)
                 throw Oops.Oh(ErrorCodeEnum.D1004);
                 throw Oops.Oh(ErrorCodeEnum.D1004);
-            user.Password = MD5Encryption.Encrypt(input.NewPassword);
+            user.Password = MD5Encryption.Encrypt(input.PasswordNew);
             return await _sysUserRep.AsUpdateable(user).UpdateColumns(u => u.Password).ExecuteCommandAsync();
             return await _sysUserRep.AsUpdateable(user).UpdateColumns(u => u.Password).ExecuteCommandAsync();
         }
         }
 
 

+ 0 - 1
Admin.NET/Admin.NET.Core/Service/WeChat/WechatPayService.cs

@@ -108,7 +108,6 @@ namespace Admin.NET.Core.Service
             };
             };
         }
         }
 
 
-
         /// <summary>
         /// <summary>
         /// 微信支付统一下单获取Id(服务商模式)
         /// 微信支付统一下单获取Id(服务商模式)
         /// </summary>
         /// </summary>

+ 1 - 1
Admin.NET/Admin.NET.Core/Service/WeChat/WechatService.cs

@@ -101,7 +101,7 @@ namespace Admin.NET.Core.Service
                 wxUser.Avatar,
                 wxUser.Avatar,
                 accessToken = JWTEncryption.Encrypt(new Dictionary<string, object>
                 accessToken = JWTEncryption.Encrypt(new Dictionary<string, object>
                 {
                 {
-                    { ClaimConst.UserId, wxUser.Id },                    
+                    { ClaimConst.UserId, wxUser.Id },
                     { ClaimConst.OpenId, wxUser.OpenId },
                     { ClaimConst.OpenId, wxUser.OpenId },
                     { ClaimConst.RealName, wxUser.NickName },
                     { ClaimConst.RealName, wxUser.NickName },
                 })
                 })

+ 1 - 1
Admin.NET/Admin.NET.Core/SqlSugar/SqlSugarSetup.cs

@@ -1,4 +1,4 @@
-using Admin.NET.Core.Service;
+using Admin.NET.Core.Service;
 using Furion;
 using Furion;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.Configuration;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection;

+ 3 - 2
Admin.NET/Admin.NET.Core/Util/AdminResultProvider.cs

@@ -1,6 +1,7 @@
 using Furion;
 using Furion;
 using Furion.DataValidation;
 using Furion.DataValidation;
 using Furion.DependencyInjection;
 using Furion.DependencyInjection;
+using Furion.JsonSerialization;
 using Furion.UnifyResult;
 using Furion.UnifyResult;
 using Furion.UnifyResult.Internal;
 using Furion.UnifyResult.Internal;
 using Microsoft.AspNetCore.Http;
 using Microsoft.AspNetCore.Http;
@@ -92,7 +93,7 @@ namespace Admin.NET.Core
             return new AdminResult<object>
             return new AdminResult<object>
             {
             {
                 Code = statusCode,
                 Code = statusCode,
-                Message = errors,
+                Message = JSON.Serialize(errors),
                 Result = data,
                 Result = data,
                 Type = succeeded ? "success" : "error",
                 Type = succeeded ? "success" : "error",
                 Extras = UnifyContext.Take(),
                 Extras = UnifyContext.Take(),
@@ -120,7 +121,7 @@ namespace Admin.NET.Core
         /// <summary>
         /// <summary>
         /// 错误信息
         /// 错误信息
         /// </summary>
         /// </summary>
-        public object Message { get; set; }
+        public string Message { get; set; }
 
 
         /// <summary>
         /// <summary>
         /// 数据
         /// 数据

+ 1 - 1
Admin.NET/Admin.NET.UnitTest/SqlSugarTest.cs

@@ -7,7 +7,7 @@ namespace Admin.NET.UnitTest
 {
 {
     public class SqlSugarTest
     public class SqlSugarTest
     {
     {
-        private TestService testService;
+        private readonly TestService testService;
 
 
         public SqlSugarTest()
         public SqlSugarTest()
         {
         {

+ 1 - 1
Admin.NET/Admin.NET.Web.Core/Handlers/JwtHandler.cs

@@ -70,7 +70,7 @@ namespace Admin.NET.Web.Core
             var permissionList = await App.GetService<SysMenuService>().GetPermCodeList();
             var permissionList = await App.GetService<SysMenuService>().GetPermCodeList();
             var allPermissionList = await App.GetService<SysMenuService>().GetAllPermCodeList();
             var allPermissionList = await App.GetService<SysMenuService>().GetAllPermCodeList();
 
 
-            // 检查授权(菜单中没有配置按钮权限,则不限制)            
+            // 检查授权(菜单中没有配置按钮权限,则不限制)
             return permissionList.Exists(p => p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase))
             return permissionList.Exists(p => p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase))
                 || allPermissionList.TrueForAll(p => !p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase));
                 || allPermissionList.TrueForAll(p => !p.Equals(routeName, System.StringComparison.CurrentCultureIgnoreCase));
         }
         }

+ 4 - 1
Vben2/src/api/sys/admin.ts

@@ -13,6 +13,7 @@ enum Api {
   SetUserStatus = '/sysUser/setStatus',
   SetUserStatus = '/sysUser/setStatus',
   GrantUserRole = '/sysUser/grantRole',
   GrantUserRole = '/sysUser/grantRole',
   GrantUserOrg = '/sysUser/grantOrg',
   GrantUserOrg = '/sysUser/grantOrg',
+  ChangeUserPwd = '/sysUser/changeUserPwd',
   ResetUserPwd = '/sysUser/resetPwd',
   ResetUserPwd = '/sysUser/resetPwd',
   UserOwnRoleList = '/sysUser/ownRole',
   UserOwnRoleList = '/sysUser/ownRole',
   UserOwnOrgList = '/sysUser/ownOrg',
   UserOwnOrgList = '/sysUser/ownOrg',
@@ -152,6 +153,8 @@ export const grantUserRole = (params: any) => defHttp.post({ url: Api.GrantUserR
 export const grantUserOrg = (params: any) => defHttp.post({ url: Api.GrantUserOrg, params });
 export const grantUserOrg = (params: any) => defHttp.post({ url: Api.GrantUserOrg, params });
 // 重置账号密码
 // 重置账号密码
 export const resetUserPwd = (id: number) => defHttp.post({ url: Api.ResetUserPwd, params: { id } });
 export const resetUserPwd = (id: number) => defHttp.post({ url: Api.ResetUserPwd, params: { id } });
+// 修改账号密码
+export const changeUserPwd = (params: any) => defHttp.post({ url: Api.ChangeUserPwd, params });
 
 
 ////////// 角色管理接口 //////////
 ////////// 角色管理接口 //////////
 // 获取角色分页列表
 // 获取角色分页列表
@@ -421,6 +424,6 @@ export function grantTenantMenu(params?: any) {
 export const tenantOwnMenuList = (id: number) =>
 export const tenantOwnMenuList = (id: number) =>
   defHttp.get<any>({ url: Api.TenantOwnMenuList, params: { id } });
   defHttp.get<any>({ url: Api.TenantOwnMenuList, params: { id } });
 //重置租户密码
 //重置租户密码
-export function resetTenantPwd(params?: any) {
+export function resetTenantPwd(id: number) {
   return defHttp.post<any>({ url: Api.ResetTenantPwd, params: { id } });
   return defHttp.post<any>({ url: Api.ResetTenantPwd, params: { id } });
 }
 }

+ 12 - 1
Vben2/src/layouts/default/header/components/user-dropdown/index.vue

@@ -17,6 +17,7 @@
           icon="ion:document-text-outline"
           icon="ion:document-text-outline"
           v-if="getShowDoc"
           v-if="getShowDoc"
         /> -->
         /> -->
+        <MenuItem key="password" :text="t('修改密码')" icon="ant-design:eye-outlined" />
         <MenuDivider v-if="getShowDoc" />
         <MenuDivider v-if="getShowDoc" />
         <MenuItem
         <MenuItem
           v-if="getUseLockPage"
           v-if="getUseLockPage"
@@ -51,10 +52,11 @@
   import headerImg from '/@/assets/images/header.jpg';
   import headerImg from '/@/assets/images/header.jpg';
   import { propTypes } from '/@/utils/propTypes';
   import { propTypes } from '/@/utils/propTypes';
   import { openWindow } from '/@/utils';
   import { openWindow } from '/@/utils';
+  import { useGo } from '/@/hooks/web/usePage';
 
 
   import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
   import { createAsyncComponent } from '/@/utils/factory/createAsyncComponent';
 
 
-  type MenuEvent = 'logout' | 'doc' | 'lock';
+  type MenuEvent = 'logout' | 'doc' | 'lock' | 'password';
 
 
   export default defineComponent({
   export default defineComponent({
     name: 'UserDropdown',
     name: 'UserDropdown',
@@ -69,6 +71,7 @@
       theme: propTypes.oneOf(['dark', 'light']),
       theme: propTypes.oneOf(['dark', 'light']),
     },
     },
     setup() {
     setup() {
+      const go = useGo();
       const { prefixCls } = useDesign('header-user-dropdown');
       const { prefixCls } = useDesign('header-user-dropdown');
       const { t } = useI18n();
       const { t } = useI18n();
       const { getShowDoc, getUseLockPage } = useHeaderSetting();
       const { getShowDoc, getUseLockPage } = useHeaderSetting();
@@ -95,6 +98,11 @@
         openWindow(DOC_URL);
         openWindow(DOC_URL);
       }
       }
 
 
+      // 修改密码
+      function openPassword() {
+        go('/sys/password');
+      }
+
       function handleMenuClick(e: { key: MenuEvent }) {
       function handleMenuClick(e: { key: MenuEvent }) {
         switch (e.key) {
         switch (e.key) {
           case 'logout':
           case 'logout':
@@ -106,6 +114,9 @@
           case 'lock':
           case 'lock':
             handleLock();
             handleLock();
             break;
             break;
+          case 'password':
+            openPassword();
+            break;
         }
         }
       }
       }
 
 

+ 1 - 1
Vben2/src/utils/http/axios/index.ts

@@ -153,7 +153,7 @@ const transform: AxiosTransform = {
    * @description: 响应拦截器处理
    * @description: 响应拦截器处理
    */
    */
   responseInterceptors: (res: AxiosResponse<any>) => {
   responseInterceptors: (res: AxiosResponse<any>) => {
-    checkStatus(res.data.code, res.data.message);
+    // checkStatus(res.data.code, res.data.message);
     return res;
     return res;
   },
   },
 
 

+ 13 - 5
Vben2/src/views/sys/admin/password/index.vue

@@ -13,8 +13,14 @@
   import { defineComponent } from 'vue';
   import { defineComponent } from 'vue';
   import { PageWrapper } from '/@/components/Page';
   import { PageWrapper } from '/@/components/Page';
   import { BasicForm, useForm } from '/@/components/Form';
   import { BasicForm, useForm } from '/@/components/Form';
+  // import { useRouter } from 'vue-router';
+  // import { PageEnum } from '/@/enums/pageEnum';
+  import { useUserStore } from '/@/store/modules/user';
 
 
   import { formSchema } from './pwd.data';
   import { formSchema } from './pwd.data';
+
+  import { changeUserPwd } from '/@/api/sys/admin';
+
   export default defineComponent({
   export default defineComponent({
     name: 'ChangePassword',
     name: 'ChangePassword',
     components: { BasicForm, PageWrapper },
     components: { BasicForm, PageWrapper },
@@ -29,12 +35,14 @@
       async function handleSubmit() {
       async function handleSubmit() {
         try {
         try {
           const values = await validate();
           const values = await validate();
-          const { passwordOld, passwordNew } = values;
+          //const { passwordOld, passwordNew } = values;
+          await changeUserPwd(values);
+
+          // const router = useRouter();
+          // router.push(PageEnum.BASE_LOGIN);
 
 
-          // TODO custom api
-          console.log(passwordOld, passwordNew);
-          // const { router } = useRouter();
-          // router.push(pageEnum.BASE_LOGIN);
+          const userStore = useUserStore();
+          userStore.logout(true);
         } catch (error) {}
         } catch (error) {}
       }
       }