Commit f8045841 by chenjinjing

no message

parent 7837523a
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
/node_modules /node_modules
/test /test
/public /public
/img
/logs /logs
/video /video
/files /files
......
{
{
"1727399696222": [
{
"xsid": "C001",
"xsnr": "马可波罗希望一个月内拿到100只瓷器",
"isChoice": false
},
{
"xsid": "C002",
"xsnr": "如果生产的瓷器非常精美有创意,从马可波罗那儿可以拿到定金。",
"isChoice": false
},
{
"xsid": "C003",
"xsnr": "西洋有大量的瓷器进口需求",
"isChoice": false
},
{
"xsid": "C004",
"xsnr": "西洋商人所付瓷器定金",
"isChoice": false
},
{
"xsid": "C005",
"xsnr": "西洋商人所付瓷器全部款项",
"isChoice": false
},
{
"xsid": "C006",
"xsnr": "工人A月产量30",
"isChoice": false
},
{
"xsid": "C007",
"xsnr": "工人B月产量50",
"isChoice": false
},
{
"xsid": "C008",
"xsnr": "工人C月产量80",
"isChoice": false
},
{
"xsid": "C009",
"xsnr": "画师A月产量30",
"isChoice": false
},
{
"xsid": "C010",
"xsnr": "画师B月产量50",
"isChoice": false
},
{
"xsid": "C011",
"xsnr": "画师C月产量80",
"isChoice": false
},
{
"xsid": "C012",
"xsnr": "瓷器定制100个",
"isChoice": false
},
{
"xsid": "C013",
"xsnr": "瓷器通用100个",
"isChoice": false
},
{
"xsid": "C014",
"xsnr": "掌柜A 100%*R",
"isChoice": false
},
{
"xsid": "C015",
"xsnr": "掌柜B 110%*R",
"isChoice": false
},
{
"xsid": "C016",
"xsnr": "车路",
"isChoice": false
},
{
"xsid": "C017",
"xsnr": "水路",
"isChoice": false
},
{
"xsid": "C018",
"xsnr": "瓷器胚",
"isChoice": false
},
{
"xsid": "C019",
"xsnr": "颜料",
"isChoice": false
},
{
"xsid": "C020",
"xsnr": "瓷器胚",
"isChoice": false
},
{
"xsid": "C021",
"xsnr": "颜料商",
"isChoice": false
},
{
"xsid": "C022",
"xsnr": "通用瓷器销售",
"isChoice": false
},
{
"xsid": "C023",
"xsnr": "丝绸",
"isChoice": false
},
{
"xsid": "C024",
"xsnr": "茶叶",
"isChoice": false
},
{
"xsid": "C025",
"xsnr": "银制器具",
"isChoice": false
},
{
"xsid": "C026",
"xsnr": "玉器",
"isChoice": false
},
{
"xsid": "C027",
"xsnr": "西洋商人",
"isChoice": false
},
{
"xsid": "C028",
"xsnr": "测试线索1",
"isChoice": true
},
{
"xsid": "C029",
"xsnr": "测试线索2",
"isChoice": true
},
{
"xsid": "C030",
"xsnr": "测试线索3",
"isChoice": true
},
{
"xsid": "C031",
"xsnr": "测试线索4",
"isChoice": true
},
{
"xsid": "C032",
"xsnr": "测试线索5",
"isChoice": true
},
{
"xsid": "C033",
"xsnr": "测试线索6",
"isChoice": true
},
{
"xsid": "C034",
"xsnr": "测试线索7",
"isChoice": false
},
{
"xsid": "C035",
"xsnr": "测试线索8",
"isChoice": false
}
]
}
\ No newline at end of file
{
{
}
\ No newline at end of file
{
{
"1727399696222": {
"初始资金": 500,
"商行": {
"SO11": {
"当前对话id": "15",
"已获得的线索": [
"C003",
"C012"
]
}
}
}
}
\ No newline at end of file
{
{
"1727399696222": {
"SWOT": {
"isSubmit": false,
"S": [
{
"xsid": "C028",
"xsnr": "测试线索1",
"isChoice": false
},
{
"xsid": "C029",
"xsnr": "测试线索2",
"isChoice": false
}
],
"W": [
{
"xsid": "C032",
"xsnr": "测试线索5",
"isChoice": false
},
{
"xsid": "C033",
"xsnr": "测试线索6",
"isChoice": false
}
],
"O": [
{
"xsid": "C030",
"xsnr": "测试线索3",
"isChoice": false
},
{
"xsid": "C031",
"xsnr": "测试线索4",
"isChoice": false
}
],
"T": []
},
"ROI": {
"isSubmit": false,
"R": [],
"I": []
},
"竞合": {
"isSubmit": false,
"供应商": [],
"行业竞争": [],
"跨界竞争": [],
"潜在替代": [],
"消费者": []
}
}
}
\ No newline at end of file
{
{
"掌柜":{},
"工人":{},
"画师":{}
}
\ No newline at end of file
<config> <config>
<port>40019</port> <port>40021</port>
<ipUrl>http://192.168.0.71:40021/</ipUrl>
<encryption>
<key>4fa9998e3be1bd3fa7b8def3969115858c6f19f9ef36e2e71f61645e9767764c</key>
<iv>db2be0c856f44e68b818ff6ef7f018c1</iv>
</encryption>
</config> </config>
/**
* 线索
*/
import { gongziTableData, xiansuoTableData } from "../data/table/tableData";
import { changeJsonData, getJsonData, getRandomInt } from "../util/tools";
/**
* 线索
* 有参数返回对应线索类型数据,没有参数返回全部线索数据
* @param clueType 线索类型
* @returns
*/
export function getClue(clueType?) {
let excelData = xiansuoTableData();
let clueExcelData = excelData["线索表"].dataList;
let clueData = {};
let writeClueAll = {"1727399696222":[]};
clueExcelData.forEach( info => {
let {xsid, xsnr, xslx, xslxxf, zs, dhgl} = info;
if (!clueData[xslx]) clueData[xslx] = [];
clueData[xslx].push({xsid, xsnr});
writeClueAll["1727399696222"].push({xsid, xsnr, isChoice:false});
})
if(!clueType) addAllClue(writeClueAll);
let clueList = [];
let allClueJson = getJsonData("json/全部线索.json");
if(clueType) {
clueData[clueType].forEach( info => {
allClueJson["1727399696222"].forEach( thisClue => {
if(info.xsid == thisClue.xsid) {
clueList.push(thisClue);
}
})
writeClueAll["1727399696222"].push({xsid:info.xsid, xsnr:info.xsnr, isChoice:false});
})
}
else {
clueList = allClueJson["1727399696222"];
}
if(clueList) {
clueList.sort( (a, b) => {
if (a.isChoice === true && b.isChoice === false) {
return 1;
} else if (a.isChoice === false && b.isChoice === true) {
return -1;
}
// a.isChoice - b.isChoice
return 0;
});
}
return clueList;
}
/**
* 添加线索
* @param clueType 线索类型【SWOT、ROI、竞合】
* @param xxType 线索细分类型【S、O、W ...】
* @param xs [{xsid:"", xsnr:""}, ...]
* @param xsid 线索id: C001
* @param xsnr 线索内容: ""
*/
export function addClue(clueType, xxType, xs) {
let jsonData = getJsonData("json/已选择线索.json");
let baseData = jsonData;
//isSubmit:false【未提交】、true【提交】
/**当前线索类型未提交时,可以修改添加线索 */
if (!baseData["1727399696222"][clueType]["isSubmit"]) {
for (let i = 0; i < xs.length; i++) {
baseData["1727399696222"][clueType][xxType].push(xs[i]);
}
changeJsonData("json/已选择线索.json", baseData);
console.log("添加线索成功");
} else {
console.log("线索已提交,无法重复提交");
}
/**修改全部线索 */
let allClueJson = getJsonData("json/全部线索.json");
let allClueData = allClueJson;
// let changeClue = [];
xs.forEach( info => {
let {xsid, xsnr} = info;
allClueData["1727399696222"].forEach( thisClue => {
if(xsid == thisClue.xsid) thisClue.isChoice = true;
})
});
changeJsonData("json/全部线索.json", allClueData);
return "添加线索成功";
}
/**
* 提交线索
* @param clueType 线索类型【SWOT、ROI、竞合】
*/
export function submitClue(clueType) {
let jsonData = getJsonData("json/已选择线索.json");
let baseData = jsonData;
//isSubmit:false【未提交】、true【提交】
baseData["1727399696222"][clueType]["isSubmit"] = true;
changeJsonData("json/已选择线索.json", baseData);
console.log("已提交线索");
return "已提交线索";
}
/**
* 添加全部线索
* @param clueType 线索类型【SWOT、ROI、竞合】
*/
export function addAllClue(data) {
let jsonData = getJsonData("json/全部线索.json");
let baseData = jsonData;
//isChoice:false【未选择】、true【已选择】
if (Object.keys(baseData).length === 0 || !baseData) {
changeJsonData("json/全部线索.json", data);
console.log("已添加全部线索");
}
}
/**
* 回显细分线索
* @param clueType 线索类型【SWOT、ROI、竞合】
*/
export function getChoiceClue(clueType) {
let jsonData = getJsonData("json/已选择线索.json");
let baseData = jsonData["1727399696222"];
return baseData[clueType];
}
/**
* 取消选中的线索
* @param clueType 线索类型【SWOT、ROI、竞合】
* @param xxType 线索细分类型【S、O、W ...】
* @param xsid 线索id: C001
* @returns
*/
export function delClue(clueType, xxType, xsid) {
let jsonData = getJsonData("json/已选择线索.json");
let baseData = jsonData;
let clueData = baseData["1727399696222"][clueType][xxType];
/**过滤掉xsid的元素 */
let clueDelData = clueData.filter(x => ![xsid].includes(x.xsid));
baseData["1727399696222"][clueType][xxType] = clueDelData;
changeJsonData("json/已选择线索.json", baseData);
console.log(baseData);
let allClueJson = getJsonData("json/全部线索.json");
// let allClueData = allClueJson;
allClueJson["1727399696222"].forEach( thisClue => {
if(xsid == thisClue.xsid) thisClue.isChoice = false;
});
changeJsonData("json/全部线索.json", allClueJson);
return "删除成功";
}
export function getWages(gr:string) {
let excelData = gongziTableData();
let wagesExcelData = excelData['工资表'].dataList;
let wagesData = {};
wagesExcelData.forEach( info => {
let nlz = getRandomInt(info.nlfwksz, info.nlfwjsz);
let xqz = getRandomInt(0, info.xqz);
let cl = nlz*xqz;
let gz = nlz*2;
wagesData[info.gr] = {nlz, xqz, cl, gz};
})
return wagesData[gr];
}
/**
* 回显线索选择弹窗 停用
* @param clueType 线索类型【SWOT、ROI、竞合】
* @param xxType 线索细分类型【S、O、W ...】
*/
export function choiceClueAll() {
let allClueJson = getJsonData("json/全部线索.json");
let clueData = allClueJson["1727399696222"];
clueData.sort( (a, b) => {
if (a.isChoice === true && b.isChoice === false) {
return 1;
} else if (a.isChoice === false && b.isChoice === true) {
return -1;
}
// a.isChoice - b.isChoice
return 0;
});
return clueData;
}
/**
* 剧情
*/
import { systemConfig } from "../config/serverConfig";
import { juqingTableData, NPCTableData } from "../data/table/tableData";
import { changeJsonData, getJsonData } from "../util/tools";
/**
* 剧情
* @param type 游戏板块
* @param playId 剧情id
* @param dhId 对话id(后置剧情id)
* @returns
*/
export function getPlayData(type:string, playId:string, dhId:string) {
let excelData = juqingTableData(type, playId);
let playData = excelData[playId].dataList;
// let duihua = 1;
let nextStory:any = {};
playData.forEach( info => {
let {dhid, dh, jqlx, hzjqid, glnpc, glxsid} = info;
if (dhid == dhId) {
//根据传入的id查找对应对话
nextStory = info;
nextStory["img"] = `${systemConfig.ipUrl}NPC/${glnpc}.png`;
//记录当前走到的剧情
plotClues(type, playId, dhId, glxsid);
}
});
if (nextStory) {
let dhStory = [];
if(nextStory.jqlx == "选择") {
nextStory.hzjqid = JSON.parse(nextStory.hzjqid);
for (let i = 0; i < nextStory.hzjqid.length; i++ ) {
let dhData = playData.find(s => s.dhid == nextStory.hzjqid[i]);
if(dhData) dhStory.push(dhData);
}
nextStory.hzjq = dhStory;
nextStory.img = `${systemConfig.ipUrl}NPC/${nextStory.glnpc}.png`
}
}
return nextStory;
}
/**
* 获取对应游戏板块的NPC
* @param type
* @returns
*/
export function getNPCData(type) {
let excelData = NPCTableData();
let npcData = excelData['NPC'].dataList;
let npcByType = [];
npcData.forEach( info => {
let {mc, lx, dyjqid} = info;
if(lx == type) {
npcByType.push({name:mc, type:lx, img:`${systemConfig.ipUrl}NPC/${mc}.png`, jqid:dyjqid})
}
})
return npcByType;
}
/**
* 剧情相关线索
*/
export function plotClues(type:string, playId:string, dhId:string, glxsid:string) {
//获取已有json数据
let baseData = getJsonData("json/基础数据.json");
let userData = {};
if(Object.keys(baseData).length === 0) { //没有对应数据的情况
userData["初始资金"] = 500;
userData[type] = {};
if (Object.keys(userData[type]).length === 0) {
userData[type][playId] = {"当前对话id": dhId, "已获得的线索":[]};
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(userData[type][playId]["已获得的线索"])];
userData[type][playId]["已获得的线索"] = uniqueArray;
}
}
}
}
} else { //已经有对应数据
userData = baseData["1727399696222"];
if (!userData[type]) {
userData[type] = {};
if(!userData[type][playId]) userData[type][playId] = {"当前对话id":"", "已获得的线索":[]};
userData[type][playId]["当前对话id"] = dhId;
userData[type][playId]["已获得的线索"] = [];
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(userData[type][playId]["已获得的线索"])];
userData[type][playId]["已获得的线索"] = uniqueArray;
}
}
}
} else {
if (userData[type][playId]) {
if (userData[type][playId]["当前对话id"] == dhId) return;
else userData[type][playId]["当前对话id"] = dhId;
} else userData[type][playId] = {"当前对话id":dhId};
// userData[type][playId]["当前对话id"] = dhId;
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(userData[type][playId]["已获得的线索"])];
userData[type][playId]["已获得的线索"] = uniqueArray;
}
}
}
}
}
//暂定一个默认用户1727399696222
let changeData = {"1727399696222":userData};
//更新json数据
changeJsonData("json/基础数据.json", changeData);
console.log("基础数据更新成功");
}
function a(type:string, playId:string, dhId:string, glxsid:string) {
//获取已有json数据
let baseData = getJsonData("json/基础数据.json");
let userData = {};
if(Object.keys(baseData).length === 0) { //没有对应数据的情况
userData["初始资金"] = 500;
userData[type] = {};
if (Object.keys(userData[type]).length === 0) {
userData[type][playId] = {"当前对话id": dhId, "已获得的线索":[]};
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
}
}
}
}
} else { //已经有对应数据
userData = baseData["1727399696222"];
if (!userData[type]) {
userData[type] = {};
if(!userData[type][playId]) userData[type][playId] = {"当前对话id":"", "已获得的线索":[]};
userData[type][playId]["当前对话id"] = dhId;
userData[type][playId]["已获得的线索"] = [];
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
let 线索data = userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(线索data)];
userData[type][playId]["已获得的线索"] = uniqueArray;
}
}
}
} else {
if (userData[type][playId]) {
if (userData[type][playId]["当前对话id"] == dhId) return;
else userData[type][playId]["当前对话id"] = dhId;
} else userData[type][playId] = {"当前对话id":dhId};
// userData[type][playId]["当前对话id"] = dhId;
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
}
}
}
}
}
}
...@@ -15,9 +15,12 @@ export async function initConfig() { ...@@ -15,9 +15,12 @@ export async function initConfig() {
let configInfo:any = await analysisXml(configStr); let configInfo:any = await analysisXml(configStr);
if (!configInfo || !configInfo.config) throw new BizError('xml中无配置'); if (!configInfo || !configInfo.config) throw new BizError('xml中无配置');
else { else {
let { port, ipUrl, encryption } = configInfo.config;
let {port } = configInfo.config;
systemConfig.port = parseInt(port[0]); systemConfig.port = parseInt(port[0]);
systemConfig.ipUrl = ipUrl[0];
systemConfig.cryptoKey = encryption[0].key[0];
systemConfig.cryptoIv = encryption[0].iv[0];
} }
......
...@@ -6,4 +6,7 @@ ...@@ -6,4 +6,7 @@
export class ServerConfig { export class ServerConfig {
/**系统配置 */ /**系统配置 */
port:number; port:number;
ipUrl:string;
cryptoKey:string;
cryptoIv:string;
} }
\ No newline at end of file
import { systemConfig } from "../../config/serverConfig";
import * as tableData from "./tableData";
const crypto = require('crypto');
const fs = require('fs');
let daier = {};
/**
* 初始化表格数据,加密保存到daier.yydata
*/
export async function initConfiguration() {
daier = {
// "剧情表": tableData.juqingTableData(),
"线索表": tableData.xiansuoTableData(),
"工资表": tableData.gongziTableData(),
};
//创建一个AES-256-CBC的加密算法
const algorithm = 'aes-256-cbc';
let key = systemConfig.cryptoKey;
let iv = systemConfig.cryptoIv;
//创建一个cipher实例
const cipher = crypto.createCipheriv(algorithm, key, iv);
/**加密数据 */
let encrypted = cipher.update(daier, 'utf8', 'hex');
encrypted += cipher.final('hex');
//将IV和加密后的数据一起写入文件
let dataToWrite = `${iv}:${encrypted}`;
//写入自定义后缀的文件
fs.writeFile('daier.yydata', dataToWrite, (err) => {
if (!err) console.log("数据已成功写入daier.yydata");
})
}
// export async
...@@ -22,10 +22,55 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList, ...@@ -22,10 +22,55 @@ function packageDataProcess(blockDataList, titltListConfig, keyValueOrTitleList,
} }
export function tableData() {
let blockDataList = onceSheetBecomeOfblockData('', ''); //excel表名 sheet名称
let keyValueOrTitleList = ['']; //适配 饼图 键值以及需要多个Key的 /**
* 创新游戏
* @returns
*/
export function cxyxTableData() {
let blockDataList = onceSheetBecomeOfblockData('创新游戏.xlsx', '对话'); //excel表名 sheet名称
let keyValueOrTitleList = ['对话']; //适配 饼图 键值以及需要多个Key的
let barChartList = []; //适配 柱状图 折线图
let stringList= [];
let decollatePlanarList = []; //适配 表格
let titleListConfig = {};
let result = packageDataProcess(blockDataList, titleListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
/**
* 剧情表
* @returns
*/
export function juqingTableData(type, playId) {
let blockDataList = onceSheetBecomeOfblockData('剧情表.xlsx', `${type}`); //excel表名 sheet名称
let keyValueOrTitleList = [`${playId}`]; //适配 饼图 键值以及需要多个Key的
// if (playId) keyValueOrTitleList.push(playId);
let barChartList = []; //适配 柱状图 折线图
let stringList= [];
let decollatePlanarList = []; //适配 表格
let titleListConfig = {};
let result = packageDataProcess(blockDataList, titleListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
/**
* NPC
* @param type
* @param playId
* @returns
*/
export function NPCTableData() {
let blockDataList = onceSheetBecomeOfblockData('剧情表.xlsx', 'NPC'); //excel表名 sheet名称
let keyValueOrTitleList = ['NPC']; //适配 饼图 键值以及需要多个Key的
let barChartList = []; //适配 柱状图 折线图 let barChartList = []; //适配 柱状图 折线图
let stringList= []; let stringList= [];
let decollatePlanarList = []; //适配 表格 let decollatePlanarList = []; //适配 表格
...@@ -39,10 +84,40 @@ export function tableData() { ...@@ -39,10 +84,40 @@ export function tableData() {
/**
* 线索表
* @returns
*/
export function xiansuoTableData() {
let blockDataList = onceSheetBecomeOfblockData('线索表.xlsx', 'Sheet1'); //excel表名 sheet名称
let keyValueOrTitleList = ['线索表']; //适配 饼图 键值以及需要多个Key的
let barChartList = []; //适配 柱状图 折线图
let stringList= [];
let decollatePlanarList = []; //适配 表格
let titleListConfig = {};
let result = packageDataProcess(blockDataList, titleListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
/**
* 工资表
* @returns
*/
export function gongziTableData() {
let blockDataList = onceSheetBecomeOfblockData('线索表.xlsx', 'Sheet2'); //excel表名 sheet名称
let keyValueOrTitleList = ['工资表']; //适配 饼图 键值以及需要多个Key的
let barChartList = []; //适配 柱状图 折线图
let stringList= [];
let decollatePlanarList = []; //适配 表格
let titleListConfig = {};
let result = packageDataProcess(blockDataList, titleListConfig, keyValueOrTitleList, barChartList, stringList, decollatePlanarList);
return result;
}
......
import { httpServer } from "./net/http_server"; import { httpServer } from "./net/http_server";
import { initConfig, systemConfig } from "./config/serverConfig"; import { initConfig, systemConfig } from "./config/serverConfig";
import { initConfiguration } from "./data/table/initConfiguration";
import { cxyxTableData } from "./data/table/tableData";
async function lanuch() { async function lanuch() {
await initConfig(); await initConfig();
httpServer.createServer( systemConfig.port ); httpServer.createServer( systemConfig.port );
console.log('This indicates that the server is started successfully.'); console.log('This indicates that the server is started successfully.');
// let key = crypto.randomBytes(32).toString('hex'); //"4fa9998e3be1bd3fa7b8def3969115858c6f19f9ef36e2e71f61645e9767764c"
// let iv = crypto.randomBytes(16).toString('hex'); //"db2be0c856f44e68b818ff6ef7f018c1"
// await initConfiguration();
// cxyxTableData();
} }
lanuch(); lanuch();
......
...@@ -3,9 +3,148 @@ ...@@ -3,9 +3,148 @@
*/ */
import * as asyncHandler from 'express-async-handler'; import * as asyncHandler from 'express-async-handler';
import * as playBiz from '../biz/play';
import * as clueBiz from '../biz/clue';
export function setRouter(httpServer){ export function setRouter(httpServer){
httpServer.post('/play', asyncHandler(getPlay));
httpServer.post('/npc', asyncHandler(getNPC));
httpServer.post('/clue', asyncHandler(getClue));
httpServer.post('/addclue', asyncHandler(addClue));
httpServer.post('/submitclue', asyncHandler(submitClue));
httpServer.post('/choiceclue', asyncHandler(getChoiceClue));
httpServer.post('/delclue', asyncHandler(delClue));
// httpServer.post('/choiceclueall', asyncHandler(choiceClueAll));
httpServer.post('/wages', asyncHandler(getWages));
}
/**
* 剧情
* @param req
* @param res
*/
function getPlay(req, res) {
// 商行、SO11、对话Id(后置剧情id)
let {type, playId, dhId} = req.body;
let result = playBiz.getPlayData(type, playId, dhId);
res.success(result);
}
/**
* NPC
* @param req
* @param res
*/
function getNPC(req, res) {
let {type} = req.body;
let result = playBiz.getNPCData(type);
res.success(result);
}
/**
* 线索
* 有参数返回对应线索类型数据,没有参数返回全部线索数据
* @param req
* @param res
*/
function getClue(req, res) {
let {clueType} = req.body;
let result;
if(clueType) result = clueBiz.getClue(clueType);
else result = clueBiz.getClue();
res.success(result);
}
/**
* 线索选择
* @param req
* @param res
*/
function addClue(req, res) {
let {clueType, xxType, xs} = req.body;
let result = clueBiz.addClue(clueType, xxType, xs);
res.success(result);
}
/**
* 线索提交
* @param req
* @param res
*/
function submitClue(req, res) {
let {clueType} = req.body;
let result = clueBiz.submitClue(clueType);
res.success(result);
} }
/**
* 回显
* @param req
* @param res
*/
function getChoiceClue(req, res) {
let {clueType} = req.body;
let result = clueBiz.getChoiceClue(clueType);
res.success(result);
}
/**取消选中线索 */
function delClue(req, res) {
let {clueType, xxType, xsid} = req.body;
let result = clueBiz.delClue(clueType, xxType, xsid);
res.success(result);
}
/**
* 线索选择弹窗回显
* @param req
* @param res
*/
function choiceClueAll(req, res) {
let result = clueBiz.choiceClueAll();
res.success(result);
}
/**
* 工人
* @param req gr:工人等级【初级、中级、高级】
* @param res
*/
function getWages(req, res) {
let {gr} = req.body;
let result = clueBiz.getWages(gr);
res.success(result);
}
let fs = require('fs');
let path = require('path');
//对象判空 //对象判空
export function objectKeyIsNull(obj, ...keyNames) { export function objectKeyIsNull(obj, ...keyNames) {
let isNull = false; let isNull = false;
...@@ -18,3 +22,47 @@ export function objectKeyIsNull(obj, ...keyNames) { ...@@ -18,3 +22,47 @@ export function objectKeyIsNull(obj, ...keyNames) {
return isNull; return isNull;
} }
/**
* 随机服务次数 1-5
* @param min
* @param max
* @returns
*/
export function getRandomInt(min, max) {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1)) + min;
}
/**
* 获取原有的数据json
* @param jsonName json文件名称
* @returns
*/
export function getJsonData(jsonName) {
let filename = path.join(__dirname.substring(0,__dirname.indexOf("out")), jsonName);
let jsonObject = fs.readFileSync(filename, 'utf-8');
let baseData = JSON.parse(jsonObject);
console.log(baseData);
return baseData;
}
/**
* 更新json数据
* @param jsonName json文件名称
*/
export function changeJsonData(jsonName, data) {
let jsonData = JSON.stringify(data, null, 2);
let filename = path.join(__dirname.substring(0,__dirname.indexOf("out")), jsonName);
fs.writeFileSync(filename, jsonData);
console.log('文件写入成功');
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment