Savelyev_Vyacheslav

CreateUsersSimple

May 28th, 2024 (edited)
837
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const employees = {
  2.   "[email protected]": "Дима Арбузов",
  3. };
  4.  
  5. const mailPoroler = '[email protected]'
  6. userAvailabilityCheck(mailPoroler, 'poroler1', 'poroler2', 'poroler3')
  7. const poroler = new SimpleRecord('employee'); // если нет, то сначала создаем его
  8. poroler.get('email', mailPoroler);
  9.  
  10. // Цикл для распечатки ключей и каждого слова из значений отдельно
  11. let first_name=''
  12. let last_name = ''
  13. let middle_name = ''
  14. let count = 0
  15. for (const email in employees) {
  16.   if (employees.hasOwnProperty(email)) {
  17.       const fullName = employees[email];
  18.       const words = fullName.split(" ");
  19.       first_name = words[0]
  20.       last_name = words[1]
  21.       middle_name = words[2] || ''
  22.       ss.info(email)
  23.       ss.info(first_name)
  24.       ss.info(last_name)
  25.       ss.info(middle_name)
  26.       ss.info("--------------------");
  27.       const recordID = userAvailabilityCheck(email, first_name, last_name, middle_name)
  28.       if(!!recordID) {
  29.         poroler.notes += `${first_name} ${last_name}: "${generateFourDigitPassword()}"\n`
  30.         poroler.update()
  31.         count++
  32.       } else {
  33.         poroler.notes += `${first_name} ${last_name}: "пользователь не создан"`
  34.         poroler.update()
  35.       }
  36.   }
  37. }
  38.  
  39. poroler.notes += `\n\nВСЕГО ЗАДАНО ${count} __________________________________________________________________________\n\n`
  40. poroler.update()
  41.  
  42.  
  43. function userAvailabilityCheck(email, first_name, last_name, middle_name) { // функция определения автора
  44.   const username = convertToLatin(`${first_name} ${last_name}`)
  45.   const COMPANY = '168847606792543577'
  46.   const TIME_ZONE = '156076775207685877'
  47.   const DATE_FORMAT = '159836398502430507'
  48.   const LANGUAGE = '156628684306200767'
  49.   const WORK_SHEDULE = '170551520911010095'
  50.   const user = new SimpleRecord('employee');
  51.   user.addQuery('email', email);
  52.   user.setLimit(1);
  53.   user.query();
  54.   if (user.getRowCount() != 0) {
  55.     user.next();
  56.     user.username = username;
  57.     user.first_name = first_name;
  58.     user.last_name = last_name;
  59.     user.middle_name = middle_name;
  60.     user.email = email;
  61.     user.company = COMPANY;
  62.     user.timezone_id = TIME_ZONE;
  63.     user.date_format_id = DATE_FORMAT;
  64.     user.language_id = LANGUAGE;
  65.     user.work_schedule = WORK_SHEDULE;
  66.     user.update()
  67.   }
  68.  
  69.   if (user.getRowCount() == 0) { // проверяем обращался ли пользователь до этого
  70.     const newUser = new SimpleRecord('employee'); // если нет, то сначала создаем его
  71.     newUser.username = username;
  72.     newUser.first_name = first_name;
  73.     newUser.last_name = last_name;
  74.     newUser.middle_name = middle_name;
  75.     newUser.email = email;
  76.     newUser.company = COMPANY;
  77.     newUser.timezone_id = TIME_ZONE;
  78.     newUser.date_format_id = DATE_FORMAT;
  79.     newUser.language_id = LANGUAGE;
  80.     newUser.work_schedule = WORK_SHEDULE;
  81.    
  82.     const isInserted = newUser.insert();
  83.    
  84.     if (isInserted == 0) {
  85.         ss.error(newUser.getErrors());
  86.     } else {
  87.         ss.info(`Создан пользователь с ID ${isInserted}`);
  88.         return isInserted;
  89.     }
  90.   } else { // если есть передаем его ID для дальнейшего использования
  91.     user.next();
  92.     return user.sys_id;
  93.   }
  94. }
  95. function convertToLatin(fullName) {
  96.   // Разбиваем полное имя на слова
  97.   const words = fullName.split(" ");
  98.  
  99.   // Преобразуем каждое слово в нижний регистр и из кириллицы в латиницу
  100.   const latinizedWords = words.map(word => {
  101.       // Создаем массив символов из слова
  102.       const characters = word.split('');
  103.      
  104.       // Проходимся по каждому символу
  105.       const latinizedCharacters = characters.map(character => {
  106.           // Проверяем, есть ли кириллическая версия символа в таблице
  107.           const cyrillicCharIndex = 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.indexOf(character.toLowerCase());
  108.           // Если символ найден, заменяем его на соответствующий латинский символ
  109.           if (cyrillicCharIndex !== -1) {
  110.               const latinChar = 'a,b,v,g,d,e,e,zh,z,i,y,k,l,m,n,o,p,r,s,t,u,f,kh,ts,ch,sh,shch,,y,,e,yu,ya'.split(',')[cyrillicCharIndex];
  111.               // Проверяем регистр и возвращаем символ с тем же регистром
  112.               return character === character.toLowerCase() ? latinChar : latinChar.toUpperCase();
  113.           } else {
  114.               // Если символ не найден в таблице кириллических символов, возвращаем его как есть
  115.               return character;
  116.           }
  117.       });
  118.      
  119.       // Соединяем массив символов обратно в слово
  120.       return latinizedCharacters.join('');
  121.   });
  122.  
  123.   // Формируем адрес электронной почты из имени и фамилии, разделенных точкой
  124.   const email = latinizedWords.join('.').toLowerCase();
  125.  
  126.   return email;
  127. }
  128. function generateFourDigitPassword() {
  129.     // Генерация случайного числа от 0 до 9999
  130.     const randomNumber = Math.floor(Math.random() * 1000000);
  131.     // Преобразование числа в строку
  132.     let password = randomNumber.toString();
  133.     // Добавление ведущих нулей, если длина строки меньше 4
  134.     while (password.length < 6) {
  135.         password = '0' + password;
  136.     }
  137.     return password;
  138. }
  139.  
Advertisement
Add Comment
Please, Sign In to add comment