import CryptoJS from 'crypto-js';
import { getPriv, getTokenByMobile } from '../api/loginAPI';

const SECRET_KEY = CryptoJS.enc.Utf8.parse('bjjsxx1234567890'); // 32字节
const IV = CryptoJS.enc.Utf8.parse('bjjsxx9876543210'); // 16字节

export function encrypt(data) {
  const encrypted = CryptoJS.AES.encrypt(
    CryptoJS.enc.Utf8.parse(data),
    SECRET_KEY,
    {
      iv: IV,
      mode: CryptoJS.mode.CBC,
      padding: CryptoJS.pad.Pkcs7,
    },
  );
  return encrypted.toString();
}

// 解密方法
export function decrypt(ciphertext) {
  const decrypted = CryptoJS.AES.decrypt(ciphertext, SECRET_KEY, {
    iv: IV,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7,
  });
  return decrypted.toString(CryptoJS.enc.Utf8);
}

export function getLogin($store, userInfo, currentBusiness) {
  let data = {};
  if (import.meta.env.MODE === 'development') {
    data = {
      // adCode: '360200',
      // adCode: '360000',
      // kpId: '1348872654887432193', // 监督处卡片id
      // kpId: '1407975933065756674', // 建管处卡片id
      // phone: '18179691698' // 吕作钰
      // phone: '13970673315' // 刘利民
      // phone: '15079153505' // 鲁博文
      // phone: '13767062411' // 敖跃飞
      // phone: '13979888461' // 方优刚/Jxsl8888/景德镇市
      // phone: '18000205233' // 冯时
      // phone: '13979163220' // 唐林波
      // phone: '18296388903' // 测试1
      // phone: '13970960118' // 彭亮/Jxsl8888
      // phone: '16607072339'
      // phone: '13507016152' // 何雨能, 县级
      // phone: '13576916471' // 黄琳 市级人员
      // phone: '13907065177' // 市级
      // phone: '13879020123' // 彭群平 县里的人 分宜县18720082229   =-----17879805896    17879805896
      phone: encrypt('13970035937'), //领导'15079153505',//业务处'15279177193'//'18720082229' // 刘新潮  '15083828125' // 甘小艳  13767062411// 敖跃飞  16607088315 稽查中心经办人 //邹彦  13979193379 稽查中心审核人 //张金生
      // phone: '17879805896' // 范淼庆
      // phone: '15870693153' // 唐少龙
      // phone: '13979266761' // 周丽红 九江湖口县
      // phone: '15083828125' // 甘小艳  省鄱建办
      // phone: '13979126906' // 马宾 通用督查计划管理
      // phone: '13879652283' // 邓发如 // 督查人员
      // phone: '18770663339' // 帅丽丽 业务股负责人
      // phone: '13707063120' // 徐小勇 业务股负责人
      // phone: '18970669253' // 邹文明 市级经办人s
      // phone: '13870849895' // 黎明  副组长审核账号
      // phone: '17307082103' // 丁鑫
      // phone: '18679822710' // 李震
      // phone: '13970035937' // 尹镜明
      // phone: "13576870680", // 罗飞
      // phone: '18579181893' // 刘琨3 县级单位的账号
      // phone: '16607072339' // 胡显田
      // phone: '18827914862' // 蔡云
      // phone: '15779528779' // 铜鼓县监督股负责人  陈清雨
      // phone: '13970535276' // 铜鼓县局领导  张庆
      // phone: '18979513192' // 宜春市监督科负责人  葛亮
      // phone: '18970535895' // 宜春市局领导  邹建军
      // phone: '15179815783' // 乐平市整改单位经办人 石飞
      // phone: '13979854261' // 乐平市整改单位审核人 石日松
      // phone: '18801113972' // 程锦波 业务处室经办人 -- 水利技术中心
      // phone: '13707060399' // 罗起衔/Jenny225 吉安监督科经办人
      // phone: '15970826306'
    };
  } else {
    debugger;
    data = {
      phone: encrypt(
        userInfo ? userInfo.mobile : $store.getters.userInfo.mobile,
      ),
      adCode: currentBusiness
        ? currentBusiness.areaPermission
        : $store.getters.currentBusiness.areaPermission,
      kpId: currentBusiness
        ? currentBusiness.id
        : $store.getters.currentBusiness.id,
    };
    if ($store && $store.getters && $store.getters.token) {
      localStorage.setItem('tokenp', $store.getters.token);
    }
  }

  return new Promise(async (resolve, reject) => {
    await getTokenByMobile(data)
      .then((res) => {
        if (res.success) {
          // debugger
          res.data = JSON.parse(decrypt(res.data.key));
          const userid = res.data.guid;
          const loginName = res.data.persName;
          const guid = res.data.orgId;
          const orgNm = res.data.orgNm;
          const isAdmin = res.data.permission;
          const allNode = JSON.stringify(res.data.allNode); // 当前用户所在组信息
          const allOrg = JSON.stringify(res.data.allOrg);
          const persType = res.data.persType;
          const accessToken = res.accessToken; // token是否过期
          localStorage.setItem('userid', userid);
          localStorage.setItem('persId', userid);
          localStorage.setItem('account1', loginName);
          localStorage.setItem('guid', guid);
          localStorage.setItem('orgNm', orgNm);
          localStorage.setItem('isAdmin', isAdmin);
          localStorage.setItem('persType', persType);
          localStorage.setItem('ownApp', '1');
          localStorage.setItem('accessToken', accessToken);
          const orgId = res.data.orgId;
          localStorage.setItem('orgId', orgId);
          localStorage.setItem('allOrg', allOrg);
          localStorage.setItem('currentOrgId', res.data.defaultOrg.orgId); // 省级当前的机构id
          localStorage.setItem('currentRlcode', res.data.defaultOrg.rlcode); // 省级当前的行政区划编码
          localStorage.setItem('currentAdCode', res.data.defaultOrg.adCode); // 当前用户行政区划编码
          // 改变全局adcode状态
          localStorage.setItem('currentOrgNm', res.data.defaultOrg.orgNm); // 省级当前的机构名称
          localStorage.setItem('allNode', allNode);
          localStorage.setItem('readOnlyRole', res.data.readOnlyRole);
          var params = {
            userId: localStorage.getItem('persId'),
            ownApp: localStorage.getItem('ownApp'),
          };
          getPriv(params).then(async (res) => {
            if (res.success && res.data) {
              sessionStorage.setItem(
                'privCollect',
                JSON.stringify(res.data.priv),
              );
              resolve();
            }
          });
        }
      })
      .catch((error) => reject(error));
  });
}

export default { getLogin };
