Parcourir la source

feat: add role, user, member service layers

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
BaiLuoYan il y a 3 jours
Parent
commit
0c80f452f1

+ 17 - 0
src/services/member/index.ts

@@ -0,0 +1,17 @@
+import { request } from '@umijs/max';
+
+export async function fetchAddMember(body: API.AddMemberReq) {
+  return request<API.MemberAddResult>('/member/add', { method: 'POST', data: body });
+}
+
+export async function fetchUpdateMember(body: API.UpdateMemberReq) {
+  return request<API.Result>('/member/update', { method: 'POST', data: body });
+}
+
+export async function fetchRemoveMember(body: API.RemoveMemberReq) {
+  return request<API.Result>('/member/remove', { method: 'POST', data: body });
+}
+
+export async function fetchMemberList(body: API.MemberListReq) {
+  return request<API.MemberListResult>('/member/list', { method: 'POST', data: body });
+}

+ 32 - 0
src/services/member/typings.d.ts

@@ -0,0 +1,32 @@
+declare namespace API {
+  interface MemberItem {
+    id: number;
+    productCode: string;
+    userId: number;
+    username: string;
+    nickname: string;
+    memberType: string;
+    status: number;
+    createTime: number;
+  }
+  interface AddMemberReq {
+    productCode: string;
+    userId: number;
+    memberType: string;
+  }
+  interface UpdateMemberReq {
+    id: number;
+    memberType?: string;
+    status?: number;
+  }
+  interface RemoveMemberReq {
+    id: number;
+  }
+  interface MemberListReq {
+    productCode: string;
+    page?: number;
+    pageSize?: number;
+  }
+  type MemberListResult = SvrResultList<MemberItem>;
+  type MemberAddResult = Result<{ id: number }>;
+}

+ 25 - 0
src/services/role/index.ts

@@ -0,0 +1,25 @@
+import { request } from '@umijs/max';
+
+export async function fetchCreateRole(body: API.CreateRoleReq) {
+  return request<API.RoleCreateResult>('/role/create', { method: 'POST', data: body });
+}
+
+export async function fetchUpdateRole(body: API.UpdateRoleReq) {
+  return request<API.Result>('/role/update', { method: 'POST', data: body });
+}
+
+export async function fetchDeleteRole(body: API.DeleteRoleReq) {
+  return request<API.Result>('/role/delete', { method: 'POST', data: body });
+}
+
+export async function fetchRoleList(body: API.RoleListReq) {
+  return request<API.RoleListResult>('/role/list', { method: 'POST', data: body });
+}
+
+export async function fetchRoleDetail(body: API.RoleDetailReq) {
+  return request<API.RoleDetailResult>('/role/detail', { method: 'POST', data: body });
+}
+
+export async function fetchBindRolePerms(body: API.BindRolePermsReq) {
+  return request<API.Result>('/role/bindPerms', { method: 'POST', data: body });
+}

+ 43 - 0
src/services/role/typings.d.ts

@@ -0,0 +1,43 @@
+declare namespace API {
+  interface RoleItem {
+    id: number;
+    productCode: string;
+    name: string;
+    remark: string;
+    status: number;
+    permsLevel: number;
+    permIds?: number[];
+    createTime: number;
+  }
+  interface CreateRoleReq {
+    productCode: string;
+    name: string;
+    permsLevel: number;
+    remark?: string;
+  }
+  interface UpdateRoleReq {
+    id: number;
+    name: string;
+    permsLevel: number;
+    remark?: string;
+    status?: number;
+  }
+  interface DeleteRoleReq {
+    id: number;
+  }
+  interface RoleListReq {
+    productCode: string;
+    page?: number;
+    pageSize?: number;
+  }
+  interface RoleDetailReq {
+    id: number;
+  }
+  interface BindRolePermsReq {
+    roleId: number;
+    permIds: number[];
+  }
+  type RoleListResult = SvrResultList<RoleItem>;
+  type RoleDetailResult = Result<RoleItem>;
+  type RoleCreateResult = Result<{ id: number }>;
+}

+ 29 - 0
src/services/user/index.ts

@@ -0,0 +1,29 @@
+import { request } from '@umijs/max';
+
+export async function fetchCreateUser(body: API.CreateUserReq) {
+  return request<API.UserCreateResult>('/user/create', { method: 'POST', data: body });
+}
+
+export async function fetchUpdateUser(body: API.UpdateUserReq) {
+  return request<API.Result>('/user/update', { method: 'POST', data: body });
+}
+
+export async function fetchUserList(body: API.UserListReq) {
+  return request<API.UserListResult>('/user/list', { method: 'POST', data: body });
+}
+
+export async function fetchUserDetail(body: API.UserDetailReq) {
+  return request<API.UserDetailResult>('/user/detail', { method: 'POST', data: body });
+}
+
+export async function fetchBindRoles(body: API.BindRolesReq) {
+  return request<API.Result>('/user/bindRoles', { method: 'POST', data: body });
+}
+
+export async function fetchSetUserPerms(body: API.SetUserPermsReq) {
+  return request<API.Result>('/user/setPerms', { method: 'POST', data: body });
+}
+
+export async function fetchUpdateUserStatus(body: API.UpdateUserStatusReq) {
+  return request<API.Result>('/user/updateStatus', { method: 'POST', data: body });
+}

+ 62 - 0
src/services/user/typings.d.ts

@@ -0,0 +1,62 @@
+declare namespace API {
+  interface UserItem {
+    id: number;
+    username: string;
+    nickname: string;
+    avatar: string;
+    email: string;
+    phone: string;
+    remark: string;
+    deptId: number;
+    status: number;
+    memberType?: string;
+    roleIds?: number[];
+    perms?: string[];
+    createTime: number;
+  }
+  interface CreateUserReq {
+    username: string;
+    password: string;
+    nickname?: string;
+    email?: string;
+    phone?: string;
+    remark?: string;
+    deptId?: number;
+  }
+  interface UpdateUserReq {
+    id: number;
+    nickname?: string;
+    email?: string;
+    phone?: string;
+    remark?: string;
+    deptId?: number;
+    status?: number;
+  }
+  interface UserListReq {
+    productCode?: string;
+    page?: number;
+    pageSize?: number;
+  }
+  interface UserDetailReq {
+    id: number;
+  }
+  interface BindRolesReq {
+    userId: number;
+    roleIds: number[];
+  }
+  interface UserPermItem {
+    permId: number;
+    effect: 'ALLOW' | 'DENY';
+  }
+  interface SetUserPermsReq {
+    userId: number;
+    perms: UserPermItem[];
+  }
+  interface UpdateUserStatusReq {
+    id: number;
+    status: number;
+  }
+  type UserListResult = SvrResultList<UserItem>;
+  type UserDetailResult = Result<UserItem>;
+  type UserCreateResult = Result<{ id: number }>;
+}