system.ts 5.26 KB
import {
  AccountParams,
  OrganizationListItem,
  MenuParams,
  RoleParams,
  RolePageParams,
  MenuListGetResultModel,
  OrganizationListGetResultModel,
  AccountListGetResultModel,
  RolePageListGetResultModel,
  RoleListGetResultModel,
  RoleReqDTO,
  AccountListItem,
  AccountListModel,
  RoleOrOrganizationParam,
  ChangeAccountParams,
  RoleListItem,
} from './model/systemModel';
import { USER_INFO_KEY } from '/@/enums/cacheEnum';
import { getAuthCache } from '/@/utils/auth';
import { defHttp } from '/@/utils/http/axios';

enum Api {
  AccountList = '/user/page',
  IsAccountExist = '/user/account_exist/',
  IsPhoneExist = '/user/get_user/',
  DeptList = '/dept/all',
  setRoleStatus = '/role/update_status/',
  MenuList = '/system/getMenuList',
  RolePageList = '/role',
  TenantRolePageList = '/role/tenant',
  SaveOrUpdateRoleInfoWithMenu = '/role/save_with_menu',
  DeleteRole = '/role',
  GetAllRoleList = '/role/find/list',
  BaseUserUrl = '/user',
  BaseOrganization = '/organization',
  RESET_USER_PASSWORD = '/user/reset_password/',
}

export const getAccountInfo = (userId: string) =>
  defHttp.get<AccountListModel>({ url: Api.BaseUserUrl + '/' + userId });

export const getAccountList = (params: AccountParams) =>
  defHttp.get<AccountListGetResultModel>({ url: Api.AccountList, params });
/**
 * 获取组织列表
 * @param params 请求参数
 */
export const getOrganizationList = (params?: OrganizationListItem) =>
  defHttp.get<OrganizationListGetResultModel>({
    url: Api.BaseOrganization + '/me/list',
    params,
  });

/**
 * 更新或者保存组织
 * @param params
 * @param isUpdate
 */
export const saveOrUpdateOrganization = (params?: OrganizationListItem, isUpdate?: boolean) => {
  if (isUpdate) {
    return defHttp.put<OrganizationListGetResultModel>({ url: Api.BaseOrganization, params });
  } else {
    return defHttp.post<OrganizationListGetResultModel>({ url: Api.BaseOrganization, params });
  }
};

/**
 * 删除组织
 * @param ids 删除的ID
 */
export const delOrganization = (ids: string[]) =>
  defHttp.delete({
    url: Api.BaseOrganization,
    data: {
      ids,
    },
  });

export const getMenuList = (params?: MenuParams) =>
  defHttp.get<MenuListGetResultModel>({ url: Api.MenuList, params });

export const getRoleListByPage = (params?: RolePageParams) =>
  defHttp.get<RolePageListGetResultModel>({ url: Api.RolePageList, params });

export const getTenantRoleRoleListByPage = (params?: RolePageParams) =>
  defHttp.get<RolePageListGetResultModel>({ url: Api.TenantRolePageList, params });

export const getTenantRoleListByPage = (params?: RolePageParams) =>
  defHttp.get<RolePageListGetResultModel>({ url: Api.RolePageList, params });

export const getAllRoleList = async (params?: RoleParams) => {
  return defHttp.post<RoleListGetResultModel>({ url: Api.GetAllRoleList, params });
};

// 过滤角色列表----根据登录的账号所属的角色-过滤掉其他平台类型的角色
export const filterRoleList = async (params?: { roleType: string }) => {
  const res = await defHttp.post<RoleListGetResultModel>({
    url: Api.GetAllRoleList,
    params: params,
  });
  const userInfo: any = getAuthCache(USER_INFO_KEY);
  const role = userInfo.roles[0];
  const options = res.filter((item) => {
    if (params?.roleType && params.roleType === 'TENANT_ADMIN') {
      return item;
    } else if (role === 'SYS_ADMIN' || role === 'PLATFORM_ADMIN') {
      return item.roleType === 'PLATFORM_ADMIN';
    } else {
      return item.roleType === 'CUSTOMER_USER';
    }
  });
  return Promise.resolve<RoleListItem[]>(options);
};

export const setRoleStatus = (id: number, status: number) => {
  return defHttp.put({ url: Api.setRoleStatus + id + '/' + status });
};
export const saveOrUpdateRoleInfoWithMenu = (roleRequestDto: RoleReqDTO) => {
  return defHttp.post({ url: Api.SaveOrUpdateRoleInfoWithMenu, params: roleRequestDto });
};

export const isAccountExist = (account: string) => {
  return defHttp.get({ url: Api.IsAccountExist + account }, { errorMessageMode: 'none' });
};

export const IsPhoneExist = (phoneNumber: string) => {
  return defHttp.get({
    url: Api.IsPhoneExist + phoneNumber,
  });
};

export const delRole = (roleIds: string[]) => {
  return defHttp.delete({ url: Api.DeleteRole, params: roleIds });
};

/**
 * 更新或添加用户信息
 * @param params
 * @param isUpdate
 * @constructor
 */
export const SaveOrUpdateUserInfo = (params: AccountListItem, isUpdate: boolean) => {
  return defHttp[isUpdate ? 'put' : 'post']<AccountListModel>({
    url: Api.BaseUserUrl,
    params,
  });
};
/**
 * 删除User
 * @param ids 删除id数组
 */
export const deleteUser = (ids: string[]) =>
  defHttp.delete({
    url: Api.BaseUserUrl,
    data: {
      ids: ids,
    },
  });

/**
 * 查询当前用户的关系
 * @param params
 */

export const findCurrentUserRelation = (params: RoleOrOrganizationParam) =>
  defHttp.post<Array<string>>({
    url: Api.BaseUserUrl + '/relation',
    params: params,
  });

/**
 * 修改密码
 * @param params
 */
export const resetPassword = (params: ChangeAccountParams) =>
  defHttp.post({
    url: Api.BaseUserUrl + '/reset',
    params: params,
  });

/**
 * 清除密码
 * @param params
 */
export const clearUserPassword = (userId: string, level: number) =>
  defHttp.post({
    url: Api.RESET_USER_PASSWORD + userId + '/' + level,
  });