Przeglądaj źródła

配置表提交

dw_yinsong 5 lat temu
rodzic
commit
9806f287b3
1 zmienionych plików z 0 dodań i 161 usunięć
  1. 0 161
      tools/headlines_local.js.bak

+ 0 - 161
tools/headlines_local.js.bak

@@ -1,161 +0,0 @@
-const fs = require('fs')
-const path = require('path')
-const XLSX = require('xlsx')
-// const Rsync = require('rsync')
-const {MongoConf} = require('./config')
-
-const MongoClient = require('mongodb').MongoClient
-const assert = require('assert')
-
-const dbIns = MongoConf['R1']
-const connStr = `mongodb://${dbIns.host}:${dbIns.port}`
-const connOpt = {
-    auth : {
-        user: dbIns.username,
-        password: dbIns.password,
-    },
-    authSource: dbIns.dbname,
-    authMechanism: "SCRAM-SHA-1",
-    useNewUrlParser: true
-}
-
-const dataPath = "../assets/scripts/data"
-const dataPrefix =  "taptapstar_"
-
-
-/**
- * excel表转换为json对象
- * @param {String} filename 文件名
- */
-const getSheet = function (filename) {
-    let filePath = path.join(__dirname, "/excel", filename)
-    // let buf = fs.readFile(filePath);
-    let workbook = XLSX.readFileSync(filePath)
-    let sheets = workbook.SheetNames
-    let sheetsObj = {}
-    
-    sheets.forEach(n => {
-        let ws = workbook.Sheets[n]
-        let def = XLSX.utils.sheet_to_json(ws, {range: 0, header: 1})
-        let typeMap = {}
-        let typeArr = def[0]
-        let keyArr = def[2]
-        keyArr.forEach((item, index) => {
-            typeMap[item] = typeArr[index]
-        })
-
-        let res = XLSX.utils.sheet_to_json(ws, {range: 2})
-        res.forEach(item => {
-            for(let i in item) {
-                item[i] = formatType(item[i], typeMap[i])
-            }
-        })
-        sheetsObj[n] = res
-    })
-    return sheetsObj
-    
-    // console.log(XLSX.utils.sheet_to_json(ws));
-    // console.log(workbook.SheetNames);
-}
-
-/**
- * 写入json内容到客户端assets目录
- * @param {String} filename 文件名
- * @param {Object} content json内容
- */
-const writeToAssets = function (filename, content) {
-    let writeFileName = filename.replace(/\.xlsx|\.xls/, '.js').replace(dataPrefix, "")
-    let writePath = path.join(__dirname, dataPath, writeFileName)
-    let string = JSON.stringify(content);
-    fs.writeFile(writePath, 'module.exports=' + string)
-    // console.log(JSON.stringify(content, null, 2));
-}
-
-/**
- * 配置表生成的json内容rsync到静态资源服务器
- * @param {String} filename 文件名
- * @param {Object} content json内容
- */
-const rsyncJson = function (filename, content) {
-    let writeFileName = filename.replace(/\.xlsx|\.xls/, '.json').replace(dataPrefix, "")
-    let writePath = path.join(__dirname, "/sheet", writeFileName)
-
-    fs.writeFile(writePath, JSON.stringify(content))
-}
-
-const formatType = function(target, type) {
-    let _type = type.toLowerCase()
-    switch (_type) {
-        case 'integer':
-            target = parseInt(target, 10)
-            break;
-        case 'double':
-            target = parseFloat(target)
-            break;
-        case 'string':
-            target = target.toString()
-            break;
-        case 'object':
-            target = JSON.parse(target)
-            break;
-        default:
-            break;
-    }
-    return target
-}
-
-const init = function () {
-    fs.readdir("./excel", (err, file) => {
-        file.forEach(n => {
-            if(n.match(/\~\$/)) {
-                return
-            }
-            let ws = getSheet(n)
-            let sheetName = n.replace(/\.xlsx|\.xls/, "")
-
-            let target
-            if(ws.length > 0) {
-                //单个表
-                // ws.forEach(n => {
-                //     if(typeof n['id'] != undefined) {
-                //         n['_id'] = n['id']
-                //     }
-                // })
-
-                target = ws
-            } else {
-                //多个表合拼成一个Array
-                let _array = []
-                for(let i in ws) {
-                    _array = _array.concat(ws[i])
-                }
-                target = _array                
-            }
-
-            // MongoClient.connect(connStr, connOpt, (err, client) => {
-            //     var db = client.db(dbIns.dbname)
-            //     var collection = db.collection(sheetName)
-            //     collection.drop(null, () => {
-            //         collection.insert(target, () => {
-            //             console.log(`成功更新配置表:${sheetName}`)
-            //             client.close()
-            //         })
-            //     })
-            // });
-
-            //把生成的js写入客户端assets目录
-            let wsKeys = Object.keys(ws)
-            if(wsKeys.length == 1) {
-                writeToAssets(n, ws[wsKeys[0]])
-                rsyncJson(n, ws[wsKeys[0]])
-            } else {
-                writeToAssets(n, ws)
-                rsyncJson(n, ws)
-            }
-        })
-
-        // process.exit()
-    })
-}
-
-init()