| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- /**
- * TL++整个文件
- * 此类是关于存放牌局回放的json文件
- */
- 'use strict';
- var quick = require('quick-pomelo');
- var P = quick.Promise;
- var fs = require('fs');//////TL++
- var uuid = require('node-uuid');
- var pjhfpath = "D:\\web\\root80\\hnmj\\";////牌局回放记录的json文件所在目录
- var tableScorePath = "D:\\web\\root80\\tableScore_hnmj\\";////牌局回放记录的json文件所在目录
- var tablexpPath = "D:\\web\\root80\\tablexp_hnmj\\";////牌局洗牌记录的json文件所在目录
- // var pjhfpath = "D:\\phpServer\\WWW\\PJHF\\fhmj\\";////牌局回放记录的json文件所在目录 服务端的路径
- var jsonFileName = "";/////本次记录的json文件名(包括文件夹)
- var pathName = "";/////本次记录的json文件的文件夹路径
- // 构造方法
- var paiJuHuiFang = function () {
- // this.app = table.game.app;
- };
- // 导出类
- module.exports = paiJuHuiFang;
- // 原型对象
- var proto = paiJuHuiFang.prototype;
- //////从本地json文件中读取记录游戏过程中的记录数据
- proto.readPaijuHuiFangData = function (_tableID,_Index){
- let path = pjhfpath
- let filename = path + _tableID.toString() + "_" + _Index.toString() + ".json";
- // console.warn("从本地json文件中读取记录游戏过程中的记录数据",filename);
- if(!this.pathIsExit(filename)) return;/////非法地址直接返回
- var result=JSON.parse(fs.readFileSync( filename));
-
- };
- //////删除保存超过 n 天的文件夹
- proto.getADirAllChirdenName = function (path,days){
- //////得到参加路径文件夹下面一层的所有文件夹名以及文件名的数组
- var nameList = fs.readdirSync(pjhfpath); ////[ '20190614', '20190615', '210013_2_xxxx.json' ]
- for(var i = 0;i < nameList.length;i++){
- let creatTime = nameList[i];
- let currTime = this.getTimeStr();
- if (currTime - creatTime > days){
- var url = path + "/" +nameList[i];
- // console.log("因过期被删除的文件夹",url);
- this.delDir(url)
- }
- }
- return nameList;
- };
- //////得到当前的年月日时间字符串
- proto.getTimeStr = function (_data){
- // let date = new Date(Date.now());
- let date = new Date(_data);
- let year = date.getFullYear() + '';
- let month = (date.getMonth() + 1) + '';
- let day = date.getDate() + '';
- if (parseInt(month) < 10) {
- month = '0' + month;
- }
- if (parseInt(day) < 10) {
- day = '0' + day;
- }
- let wjjm = year + month + day
- return wjjm;
- };
- //////删除指定文件夹 delDir(pjhfpath+"20190606")
- proto.delDir = function (url){
- if(!this.pathIsExit(url)) return;/////非法地址直接返回
- var data = fs.readdirSync(url);
- for(var i = 0;i < data.length;i++){
- // console.log(data[i])
- var path = url + "/" +data[i];
- console.log(path);
- var stat = fs.statSync(path);
- if(stat.isFile()){
- fs.unlinkSync(path);
- }else{
- this.delDir(path);
- }
- }
- fs.rmdirSync(url);
- };
- //////本次记录的json文件名 相对路径 是要记录进数据库的 从日期开头 在table里面调用
- proto.getjsonFileName = function (_index,_tableid,ctime){
- let index = _index;
- let tableid = _tableid;
- let timeStr = this.getTimeStr(ctime)
- let path = pjhfpath + timeStr + "\\";
- pathName = path
- let curUUid = uuid.v1();
- // jsonFileName = timeStr + "\\" + tableid.toString() + "_" + index.toString() + "_" + curUUid + ".json";
- jsonFileName = timeStr + "\\" + tableid + "_" + index.toString() + ".json";
- // console.warn("bbbbccccc",jsonFileName);
- return jsonFileName;
- };
- //////本次记录的牌局写分情况 json文件名 相对路径 是要记录进数据库的 从日期开头 在table里面调用
- proto.getTSjsonFileName = function (_index,_tableid,cTime){
- let index = _index;
- let tableid = _tableid;
- let timeStr = this.getTimeStr(cTime)
- let path = tableScorePath + timeStr + "\\";
- pathName = path
- //let curUUid = uuid.v1();
- // jsonFileName = timeStr + "\\" + tableid.toString() + "_" + index.toString() + "_" + curUUid + ".json";
- jsonFileName = timeStr + "\\" + tableid + "_" + index.toString() + ".json";
- // console.warn("bbbbccccc",jsonFileName);
- return jsonFileName;
- };
- //////本次记录的json文件名 决对路径 从D盘开始记录
- proto.getjsonFileName22 = function (_index,_tableid){
- let index = _index;
- let tableid = _tableid;
- // let path = "../../PJHF/fhmj/";
- let timeStr = this.getTimeStr()
- let path = pjhfpath + timeStr + "\\";
- pathName = path
- let curUUid = uuid.v1();
- // jsonFileName = path + tableid.toString() + "_" + index.toString() + "_" + curUUid + ".json";
- jsonFileName = timeStr + "\\" + + tableid + "_" + index.toString() + ".json";
- // console.warn("222bbbbccccc",jsonFileName);
- return jsonFileName;
- };
- //////写入用于存放本局的牌局回放json文件 _index = 0 表示牌桌上玩家信息,局属等公共数据 否则表示该桌子的第_index局的牌局记录
- proto.writePJHFJson = function (_data,_index,_tableid){
- let data = _data;
- let filename = pjhfpath + jsonFileName;
- // if(filename == "") filename = this.getjsonFileName22(_index,_tableid);
- /////判断文件夹是否存在,不存在则需要创建
- fs.exists(pathName,function (exists) {
- if(exists){
- // console.error("filename",filename);
- fs.writeFileSync(filename, JSON.stringify(data));
- }else {
- fs.mkdir(pathName,function (err) {
- if(err){
- return console.log(err);
- }else {
- // console.error("222filename",filename);
- fs.writeFileSync(filename, JSON.stringify(data));
- }
- })
- }
- })
-
-
- };
- //////写入用于存放本局的牌局写分json文件 _index = 0 表示牌桌上玩家信息,局属等公共数据 否则表示该桌子的第_index局的牌局记录
- proto.writeTSJson = function (_data,_index,_tableid){
- let data = _data;
- let filename = tableScorePath + jsonFileName;
- // if(filename == "") filename = this.getjsonFileName22(_index,_tableid);
- /////判断文件夹是否存在,不存在则需要创建
- fs.exists(pathName,function (exists) {
- if(exists){
- // console.error("filename",filename);
- fs.writeFileSync(filename, JSON.stringify(data));
- }else {
- fs.mkdir(pathName,function (err) {
- if(err){
- return console.log(err);
- }else {
- // console.error("222filename",filename);
- fs.writeFileSync(filename, JSON.stringify(data));
- }
- })
- }
- })
- };
- //////判断地址是否存在,防止删除文件夹的时候传参错误而程序报错
- proto.pathIsExit = function (path){
- fs.exists(path,function (exists) {
- return exists;
- })
- };
- //////从本地json文件中读取记录游戏的结算数据
- proto.readJSONData = function (path,_filename){
- // console.warn("000",path,_filename);
- // let timeStr = this.getTimeStr(time)
- if(!fs.existsSync(path)) return;////"文件夹不存在"
-
- let filename = path + _filename + ".json";
- // console.warn("1111",filename);
- if(!fs.existsSync(filename)) return;////"文件不存在"
- // console.warn("222");
- var result=JSON.parse(fs.readFileSync( filename));
- return result;
- };
- //////写入用于存放本局的洗牌json文件 _index = 表示局数,
- proto.writexpJson = function (_data,_index,tableid,_ctime){
- // console.warn("222hhhhhhhhhhhhhhhhhh");
- let data = _data;
- let timeStr = this.getTimeStr(_ctime)
- let pathName = tablexpPath + timeStr + "\\";
- let filename = pathName + tableid + "_" + _index.toString() + ".json";
- /////判断文件夹是否存在,不存在则需要创建
- fs.exists(pathName,function (exists) {
- if(exists){
- // console.error("filename",filename);
- fs.writeFileSync(filename, JSON.stringify(data));
- // console.warn("666hhhhhhhhhhhhhhhhhh");
- }else {
- fs.mkdir(pathName,function (err) {
- if(err){
- return console.log(err);
- }else {
- // console.error("222filename",filename);
- fs.writeFileSync(filename, JSON.stringify(data));
- // console.warn("444hhhhhhhhhhhhhhhhhh");
- }
- })
- }
- })
- };
- //////从本地json文件中读取记录游戏的结算数据
- proto.readxpJSONData = function (time,_filename){
- let path = tablexpPath + time + "\\";
- if(!fs.existsSync(path)) return;////"文件夹不存在"
-
- let filename = path + _filename + ".json";
- if(!fs.existsSync(filename)) return;////"文件不存在"
- var result=JSON.parse(fs.readFileSync( filename));
- return result;
- };
|