Commit 3f46088c by chenjinjing

部署V2版本

parent d2c64498
{ {}
"1730970187744": {} \ No newline at end of file
}
\ No newline at end of file
{ {}
"1727399696222": { \ No newline at end of file
"isSubmit": false,
"S": [
{
"xsid": "C002",
"xsnr": "熟悉整套生产运输流程",
"isChoice": false
},
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": false
}
],
"W": [],
"O": [],
"T": []
},
"1730970187744": {
"isSubmit": false,
"S": [],
"W": [],
"O": [
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": false
},
{
"xsid": "C004",
"xsnr": "在多地有熟识的好友可以提供咨询协助",
"isChoice": false
}
],
"T": []
}
}
\ No newline at end of file
{ {
{ {
"1730970187744": {
"普通线索": [
{
"xsid": "C001",
"xsnr": "马可波罗要定制1000只瓷器",
"isChoice": false,
"sfbx": "否"
}
],
"SWOT": [
{
"xsid": "C002",
"xsnr": "熟悉整套生产运输流程",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": true,
"sfbx": "否"
},
{
"xsid": "C004",
"xsnr": "在多地有熟识的好友可以提供咨询协助",
"isChoice": true,
"sfbx": "否"
},
{
"xsid": "C005",
"xsnr": "有景德镇瓷胚的进货渠道",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C006",
"xsnr": "资金匮乏",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C007",
"xsnr": "没有外贸经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C008",
"xsnr": "没有成熟团队",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C015",
"xsnr": "广州气候适宜",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C013",
"xsnr": "西洋有大量的瓷器进口需求",
"isChoice": false,
"sfbx": "否"
}
],
"竞合": [
{
"xsid": "C023",
"xsnr": "从马可波罗口中得知,西洋订单大增",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C024",
"xsnr": "西洋订单货品质量和交货时限有严格要求",
"isChoice": false,
"sfbx": "否"
}
],
"ROI": [
{
"xsid": "C046",
"xsnr": "定制精美瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C047",
"xsnr": "定制普通瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C048",
"xsnr": "通用精美瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C049",
"xsnr": "通用普通瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C027",
"xsnr": "工人甲",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C028",
"xsnr": "工人乙",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C029",
"xsnr": "工人丙",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C030",
"xsnr": "工人丁",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C031",
"xsnr": "工人戊",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C032",
"xsnr": "工人己",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C033",
"xsnr": "工人庚",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C034",
"xsnr": "工人辛",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C035",
"xsnr": "画师1",
"isChoice": false,
"sfbx": "画师"
},
{
"xsid": "C036",
"xsnr": "画师2",
"isChoice": false,
"sfbx": "画师"
},
{
"xsid": "C037",
"xsnr": "画师3",
"isChoice": false,
"sfbx": "画师"
},
{
"xsid": "C038",
"xsnr": "掌柜A",
"isChoice": false,
"sfbx": "掌柜"
},
{
"xsid": "C039",
"xsnr": "掌柜B",
"isChoice": false,
"sfbx": "掌柜"
}
]
},
"1727399696222": {
"普通线索": [], "普通线索": [],
"SWOT": [ "SWOT": [
{ {
...@@ -237,5 +52,4 @@ ...@@ -237,5 +52,4 @@
], ],
"竞合": [], "竞合": [],
"ROI": [] "ROI": []
}
} }
\ No newline at end of file
{ {
{ {
"1727399696222": {
"初始资金": 500, "初始资金": 500,
"天数": 215, "天数": 73,
"结算": 500, "结算": 500,
"广州府介绍": false, "广州府介绍": false,
"酒馆剧情": 2,
"当前线索确认": 1,
"商行选择": false,
"SWOT": true,
"ROI": false,
"竞合": false,
"码头": {
"S011": {
"当前对话id": "17",
"已获得的线索": [
"C023",
"C013",
"C046",
"C047",
"C048",
"C049",
"C001",
"C024"
]
}
},
"酒馆": {
"S023": {
"当前对话id": 1,
"已获得的线索": []
},
"S024": {
"当前对话id": 1
},
"S022": {
"当前对话id": "2"
},
"S021": {
"当前对话id": 1
}
}
},
"1729153582461": {
"初始资金": 500,
"天数": 112,
"结算": 500,
"广州府介绍": false,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
},
"1730359559228": {
"初始资金": 500,
"天数": 0,
"结算": 500,
"广州府介绍": true,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
},
"1730970187744": {
"初始资金": 500,
"天数": 3,
"结算": -112700,
"广州府介绍": false,
"酒馆剧情": 2,
"当前线索确认": 1,
"商行选择": true,
"SWOT": true,
"ROI": true,
"竞合": false,
"码头": {
"S011": {
"当前对话id": "17",
"已获得的线索": [
"C023",
"C013",
"C046",
"C047",
"C048",
"C049",
"C001",
"C024"
]
}
},
"酒馆": {
"S021": {
"当前对话id": 1,
"已获得的线索": []
}
}
},
"1730359573927": {
"初始资金": 500,
"天数": 0,
"结算": 500,
"广州府介绍": true,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
},
"1730970810891": {
"初始资金": 500,
"天数": 0,
"结算": 500,
"广州府介绍": true,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
},
"1732604118825": {
"初始资金": 500,
"天数": 0,
"结算": 500,
"广州府介绍": true,
"酒馆剧情": 0, "酒馆剧情": 0,
"当前线索确认": 0, "当前线索确认": 0,
"商行选择": false, "商行选择": false,
"SWOT": false, "SWOT": false,
"ROI": false, "ROI": false,
"竞合": false "竞合": false
}
} }
\ No newline at end of file
{ {
{ {
"1727399696222": {
"SWOT": 7.6923076923076925,
"ROI": 0,
"竞合": 0
},
"1729153582461": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
},
"1730359559228": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
},
"1730970187744": {
"SWOT": 0
},
"1730359573927": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
},
"1730970810891": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
},
"1732604118825": {
"SWOT": 0, "SWOT": 0,
"ROI": 0, "ROI": 0,
"竞合": 0 "竞合": 0
}
} }
\ No newline at end of file
{ {}
{ {}
"1730970187744": {} \ No newline at end of file
}
\ No newline at end of file
{ {}
{ {}
"SWOT": { \ No newline at end of file
"S": [
"C002",
"C003",
"C004",
"C005"
],
"W": [
"C006",
"C007",
"C008"
],
"O": [
"C012",
"C013",
"C014"
],
"T": [
"C009",
"C010",
"C011"
]
},
"ROI": {
"R": [
"C046",
"C047",
"C048",
"C049"
],
"I": [
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043",
"C044",
"C045"
]
},
"竞合": {
"供方": [
"C017",
"C018"
],
"现有竞争": [
"C019"
],
"潜在竞争": [
"C020"
],
"替代竞争": [
"C021",
"C022"
],
"买方": [
"C023",
"C024"
]
}
}
\ No newline at end of file
{ {}
{ {}
"1730970187744": { \ No newline at end of file
"人工": {
"工人": "C025",
"画师": "C032",
"掌柜": "C035"
},
"原材料": {
"瓷器": "C041",
"颜料": "C039"
},
"运输": "C037",
"制成瓷器": "C045"
}
}
\ No newline at end of file
{ {
{ {
"瓷器": { "瓷器": {
"定制精美瓷器": { "定制精美瓷器": {
"瓷器": "C040", "瓷器": "C044",
"颜料": "C038", "颜料": "C042",
"单价": 300, "单价": 300,
"固定成本": 200 "固定成本": 200
}, },
"定制普通瓷器": { "定制普通瓷器": {
"瓷器": "C040", "瓷器": "C044",
"颜料": "C039", "颜料": "C043",
"单价": 270, "单价": 270,
"固定成本": 190 "固定成本": 190
}, },
"通用精美瓷器": { "通用精美瓷器": {
"瓷器": "C041", "瓷器": "C045",
"颜料": "C038", "颜料": "C042",
"单价": 170, "单价": 170,
"固定成本": 120 "固定成本": 120
}, },
"通用普通瓷器": { "通用普通瓷器": {
"瓷器": "C041", "瓷器": "C045",
"颜料": "C039", "颜料": "C043",
"单价": 150, "单价": 150,
"固定成本": 110 "固定成本": 110
} }
}, },
"人员成本": { "人员成本": {
"C023": { "C027": {
"ycl": 360, "ycl": 360,
"gz": 150, "gz": 150,
"fjcb": 0.42 "fjcb": 0.42
}, },
"C024": { "C028": {
"ycl": 450, "ycl": 450,
"gz": 150, "gz": 150,
"fjcb": 0.33 "fjcb": 0.33
}, },
"C025": { "C029": {
"ycl": 510, "ycl": 510,
"gz": 150, "gz": 150,
"fjcb": 0.29 "fjcb": 0.29
}, },
"C026": { "C030": {
"ycl": 840, "ycl": 840,
"gz": 300, "gz": 300,
"fjcb": 0.36 "fjcb": 0.36
}, },
"C027": { "C031": {
"ycl": 960, "ycl": 960,
"gz": 300, "gz": 300,
"fjcb": 0.31 "fjcb": 0.31
}, },
"C028": { "C032": {
"ycl": 1050, "ycl": 1050,
"gz": 300, "gz": 300,
"fjcb": 0.29 "fjcb": 0.29
}, },
"C029": { "C033": {
"ycl": 1350, "ycl": 1350,
"gz": 450, "gz": 450,
"fjcb": 0.33 "fjcb": 0.33
}, },
"C030": { "C034": {
"ycl": 1650, "ycl": 1650,
"gz": 450, "gz": 450,
"fjcb": 0.27 "fjcb": 0.27
}, },
"C031": { "C035": {
"ycl": 500, "ycl": 500,
"gz": 1000, "gz": 1000,
"fjcb": 2 "fjcb": 2
}, },
"C032": { "C036": {
"ycl": 1320, "ycl": 1320,
"gz": 2000, "gz": 2000,
"fjcb": 1.52 "fjcb": 1.52
}, },
"C033": { "C037": {
"ycl": 1900, "ycl": 1900,
"gz": 3000, "gz": 3000,
"fjcb": 1.58 "fjcb": 1.58
}, },
"C034": { "C038": {
"ycl": 1000, "ycl": 1000,
"gz": 1000, "gz": 1000,
"fjcb": 1 "fjcb": 1
}, },
"C035": { "C039": {
"ycl": 1100, "ycl": 1100,
"gz": 1050, "gz": 1050,
"fjcb": 0.95 "fjcb": 0.95
} }
}, },
"运输成本": { "运输成本": {
"C036": { "C040": {
"sjmc": "车路", "sjmc": "车路",
"xjb": 1.33 "xjb": 1.33
}, },
"C037": { "C041": {
"sjmc": "水路", "sjmc": "水路",
"xjb": 1 "xjb": 1
} }
......
[ [
...@@ -19,8 +19,7 @@ ...@@ -19,8 +19,7 @@
{ {
"userId": "1730970187744", "userId": "1730970187744",
"loginId": "111", "loginId": "111",
"pwd": "123456", "pwd": "123456"
"name": "小陈"
}, },
{ {
"userId": "1730359573927", "userId": "1730359573927",
......
No preview for this file type
No preview for this file type
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import { NOWCLUE } from "../config/enum"; import { NOWCLUE } from "../config/enum";
import { successResult } from "../tools/systemTools"; import { successResult } from "../tools/systemTools";
import { changeJsonData, getJsonData } from "../util/tools"; import { changeUserJsonData, getUserJsonData } from "../util/tools";
/** /**
...@@ -17,14 +17,14 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -17,14 +17,14 @@ import { changeJsonData, getJsonData } from "../util/tools";
* @param subdivide 细分线索类型【供方、现有竞争、潜在竞争、替代竞争、买方】 * @param subdivide 细分线索类型【供方、现有竞争、潜在竞争、替代竞争、买方】
* @param xs [{xsid:"", xsnr:""}, ...] * @param xs [{xsid:"", xsnr:""}, ...]
*/ */
export function submitJinheClue(userId, subdivide, xs) { export async function submitJinheClue(userId, subdivide, xs) {
let jsonData = getJsonData("json/竞合.json"); let jsonData = await getUserJsonData("竞合.json", userId);
/**处理确认选择的线索 */ /**处理确认选择的线索 */
let jinheClueData = jsonData; let jinheClueData = jsonData;
//没有对应用户数据先添加一个基础格式,有的话直接push //没有对应用户数据先添加一个基础格式,有的话直接push
if (!jinheClueData[userId] || Object.keys(jinheClueData[userId]).length === 0) { if (!jinheClueData || Object.keys(jinheClueData).length === 0) {
jinheClueData[userId] = { jinheClueData = {
"isSubmit": false, "isSubmit": false,
"供方": [], "供方": [],
"现有竞争": [], "现有竞争": [],
...@@ -36,35 +36,35 @@ export function submitJinheClue(userId, subdivide, xs) { ...@@ -36,35 +36,35 @@ export function submitJinheClue(userId, subdivide, xs) {
//isSubmit:false【未提交】、true【提交】 //isSubmit:false【未提交】、true【提交】
/**当前线索类型未提交时,可以修改添加线索 */ /**当前线索类型未提交时,可以修改添加线索 */
if (!jinheClueData[userId]["isSubmit"]) { if (!jinheClueData["isSubmit"]) {
for (let i = 0; i < xs.length; i++) { for (let i = 0; i < xs.length; i++) {
// let xsInfo = xs[i]; // let xsInfo = xs[i];
jinheClueData[userId][subdivide].push(xs[i]); jinheClueData[subdivide].push(xs[i]);
} }
changeJsonData("json/竞合.json", jinheClueData); await changeUserJsonData("竞合.json", userId, jinheClueData);
console.log("添加ROI线索成功"); console.log("添加ROI线索成功");
} else { } else {
console.log("线索已提交,无法重复提交"); console.log("线索已提交,无法重复提交");
} }
/**修改全部线索.json的对应线索为已选择 isChoice:true */ /**修改全部线索.json的对应线索为已选择 isChoice:true */
let allClueJson = getJsonData("json/全部线索.json"); let allClueJson = await getUserJsonData("全部线索.json", userId);
let allClueData = allClueJson; let allClueData = allClueJson;
xs.forEach( info => { xs.forEach( info => {
let {xsid, xsnr} = info; let {xsid, xsnr} = info;
for(let key in allClueData[userId]) { for(let key in allClueData) {
allClueData[userId][key].forEach( thisClue => { allClueData[key].forEach( thisClue => {
if(xsid == thisClue.xsid) thisClue.isChoice = true; if(xsid == thisClue.xsid) thisClue.isChoice = true;
}) })
} }
}); });
changeJsonData("json/全部线索.json", allClueData); await changeUserJsonData("全部线索.json", userId, allClueData);
let baseJsonData = getJsonData("json/基础数据.json"); let baseJsonData = await getUserJsonData("基础数据.json", userId);
baseJsonData[userId]["当前线索确认"] = NOWCLUE.竞合; baseJsonData["当前线索确认"] = NOWCLUE.竞合;
changeJsonData("json/基础数据.json", baseJsonData); await changeUserJsonData("基础数据.json", userId, baseJsonData);
return successResult(); return successResult();
} }
...@@ -75,10 +75,10 @@ export function submitJinheClue(userId, subdivide, xs) { ...@@ -75,10 +75,10 @@ export function submitJinheClue(userId, subdivide, xs) {
* 计算选择正确的竞合线索 * 计算选择正确的竞合线索
* @param userId * @param userId
*/ */
export function checkJinhe(userId) { export async function checkJinhe(userId) {
/**获取细分线索 */ /**获取细分线索 */
let xfclueJson = getJsonData("json/细分线索.json"); let xfclueJson = await getUserJsonData("细分线索.json", userId);
let clueJson = getJsonData("json/竞合.json")[userId]; let clueJson = await getUserJsonData("竞合.json", userId);
let sumClue = 0; //线索总数 let sumClue = 0; //线索总数
let rightClue = 0; //选对线索数 let rightClue = 0; //选对线索数
...@@ -103,10 +103,10 @@ export function checkJinhe(userId) { ...@@ -103,10 +103,10 @@ export function checkJinhe(userId) {
/**计算分数 */ /**计算分数 */
// score = rightClue/sumClue*(1/5)*20; // score = rightClue/sumClue*(1/5)*20;
score = (rightClue/sumClue)*20; score = (rightClue/sumClue)*20;
let submitJsonData = getJsonData("json/提交分数.json"); let submitJsonData = await getUserJsonData("提交分数.json", userId);
let submitScore = submitJsonData; let submitScore = submitJsonData;
submitScore[userId]["竞合"] = score; submitScore["竞合"] = score;
changeJsonData("json/提交分数.json", submitScore); await changeUserJsonData("提交分数.json", userId, submitScore);
return successResult(); return successResult();
} }
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
import { NOWCLUE } from "../config/enum"; import { NOWCLUE } from "../config/enum";
import { guyongTableData } from "../data/table/tableData"; import { guyongTableData } from "../data/table/tableData";
import { successResult } from "../tools/systemTools"; import { successResult } from "../tools/systemTools";
import { changeJsonData, getJsonData } from "../util/tools"; import { changeUserJsonData, getJsonData, getUserJsonData } from "../util/tools";
/** /**
...@@ -18,15 +18,15 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -18,15 +18,15 @@ import { changeJsonData, getJsonData } from "../util/tools";
* @param subdivide 细分线索类型【R、O、I】 * @param subdivide 细分线索类型【R、O、I】
* @param xs [{xsid:"", xsnr:""}, ...] * @param xs [{xsid:"", xsnr:""}, ...]
*/ */
export function submitROIClue(userId, subdivide, xs) { export async function submitROIClue(userId, subdivide, xs) {
let jsonData = getJsonData("json/ROI.json"); let jsonData = await getUserJsonData("ROI.json", userId);
let baseClueJson = getJsonData("json/基础数据.json"); let baseClueJson = await getUserJsonData("基础数据.json", userId);
/**处理确认选择的线索 */ /**处理确认选择的线索 */
let ROIClueData = jsonData; let ROIClueData = jsonData;
//没有对应用户数据先添加一个基础格式,有的话直接push //没有对应用户数据先添加一个基础格式,有的话直接push
if (!ROIClueData[userId] || Object.keys(ROIClueData[userId]).length === 0) { if (!ROIClueData || Object.keys(ROIClueData).length === 0) {
ROIClueData[userId] = { ROIClueData = {
"isSubmit": false, "isSubmit": false,
"R": [], "R": [],
"I": [] "I": []
...@@ -35,25 +35,25 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -35,25 +35,25 @@ import { changeJsonData, getJsonData } from "../util/tools";
//isSubmit:false【未提交】、true【提交】 //isSubmit:false【未提交】、true【提交】
/**当前线索类型未提交时,可以修改添加线索 */ /**当前线索类型未提交时,可以修改添加线索 */
if (!ROIClueData[userId]["isSubmit"]) { if (!ROIClueData["isSubmit"]) {
for (let i = 0; i < xs.length; i++) { for (let i = 0; i < xs.length; i++) {
// let xsInfo = xs[i]; // let xsInfo = xs[i];
ROIClueData[userId][subdivide].push(xs[i]); ROIClueData[subdivide].push(xs[i]);
} }
changeJsonData("json/ROI.json", ROIClueData); await changeUserJsonData("ROI.json", userId, ROIClueData);
console.log("添加ROI线索成功"); console.log("添加ROI线索成功");
} else { } else {
console.log("线索已提交,无法重复提交"); console.log("线索已提交,无法重复提交");
} }
/**修改全部线索.json的对应线索为已选择 isChoice:true */ /**修改全部线索.json的对应线索为已选择 isChoice:true */
let allClueJson = getJsonData("json/全部线索.json"); let allClueJson = await getUserJsonData("全部线索.json", userId);
let allClueData = allClueJson; let allClueData = allClueJson;
xs.forEach( info => { xs.forEach( info => {
let {xsid, xsnr} = info; let {xsid, xsnr} = info;
for(let key in allClueData[userId]) { for(let key in allClueData) {
allClueData[userId][key].forEach( thisClue => { allClueData[key].forEach( thisClue => {
if(xsid == thisClue.xsid) thisClue.isChoice = true; if(xsid == thisClue.xsid) thisClue.isChoice = true;
}) })
} }
...@@ -69,19 +69,19 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -69,19 +69,19 @@ import { changeJsonData, getJsonData } from "../util/tools";
if (info.xsid == xsid) ciqiMoney = info.sj; if (info.xsid == xsid) ciqiMoney = info.sj;
}); });
//加上定制瓷器金额 //加上定制瓷器金额
baseClueJson[userId]["结算"] = baseClueJson[userId]["结算"] + ciqiMoney * 1000; baseClueJson["结算"] = baseClueJson["结算"] + ciqiMoney * 1000;
} }
}); });
changeJsonData("json/全部线索.json", allClueData); await changeUserJsonData("全部线索.json", userId, allClueData);
/**ROI线索选择完成可添加竞合线索 */ /**ROI线索选择完成可添加竞合线索 */
baseClueJson[userId]["竞合"] = true; baseClueJson["竞合"] = true;
baseClueJson[userId]["当前线索确认"] = NOWCLUE.ROI; baseClueJson["当前线索确认"] = NOWCLUE.ROI;
//更新json数据 //更新json数据
changeJsonData("json/基础数据.json", baseClueJson); await changeUserJsonData("基础数据.json", userId, baseClueJson);
return successResult(); return successResult();
} }
...@@ -91,10 +91,10 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -91,10 +91,10 @@ import { changeJsonData, getJsonData } from "../util/tools";
* 计算选择正确的ROI线索 * 计算选择正确的ROI线索
* @param userId * @param userId
*/ */
export function checkROI(userId) { export async function checkROI(userId) {
let gygrJson = getJsonData("json/雇佣选择.json"); //获取雇佣工人表 let gygrJson = await getUserJsonData("雇佣选择.json", userId); //获取雇佣工人表
let 雇佣选择 = gygrJson[userId]; let 雇佣选择 = gygrJson;
let cqzzJson = getJsonData("json/瓷器制造.json"); let cqzzJson = await getJsonData("瓷器制造.json");
/** /**
* 计算工人、画师、掌柜一起的人员成本 * 计算工人、画师、掌柜一起的人员成本
...@@ -127,7 +127,8 @@ export function checkROI(userId) { ...@@ -127,7 +127,8 @@ export function checkROI(userId) {
* 计算运输成本 * 计算运输成本
*/ */
let 运输成本 = cqzzJson["运输成本"]; let 运输成本 = cqzzJson["运输成本"];
let yscb = 运输成本[雇佣选择["运输"]].xjb; let yscb = 0;
if (运输成本[雇佣选择["运输"]].xjb) yscb = 运输成本[雇佣选择["运输"]].xjb;
let 净利润 = (瓷器利润-rycb-yscb)/瓷器单价; let 净利润 = (瓷器利润-rycb-yscb)/瓷器单价;
...@@ -138,10 +139,10 @@ export function checkROI(userId) { ...@@ -138,10 +139,10 @@ export function checkROI(userId) {
if (净利润>20 && 净利润<25) score = 10; if (净利润>20 && 净利润<25) score = 10;
if (净利润<20) score = 0; if (净利润<20) score = 0;
let submitJsonData = getJsonData("json/提交分数.json"); let submitJsonData = await getUserJsonData("提交分数.json", userId);
let submitScore = submitJsonData; let submitScore = submitJsonData;
submitScore[userId]["ROI"] = score; submitScore["ROI"] = score;
changeJsonData("json/提交分数.json", submitScore); await changeUserJsonData("提交分数.json", userId, submitScore);
return successResult(); return successResult();
} }
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
import { HARITYPE, NOWCLUE } from "../config/enum"; import { HARITYPE, NOWCLUE } from "../config/enum";
import { successResult } from "../tools/systemTools"; import { successResult } from "../tools/systemTools";
import { changeJsonData, getJsonData } from "../util/tools"; import { changeUserJsonData, getUserJsonData } from "../util/tools";
/** /**
...@@ -17,14 +17,14 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -17,14 +17,14 @@ import { changeJsonData, getJsonData } from "../util/tools";
* @param subdivide 细分线索类型【S、W、O、T】 * @param subdivide 细分线索类型【S、W、O、T】
* @param xs [{xsid:"", xsnr:""}, ...] * @param xs [{xsid:"", xsnr:""}, ...]
*/ */
export function submitSWOTClue(userId, subdivide, xs) { export async function submitSWOTClue(userId, subdivide, xs) {
let jsonData = getJsonData("json/SWOT.json"); let jsonData = await getUserJsonData("SWOT.json", userId);
/**处理确认选择的线索 */ /**处理确认选择的线索 */
let SWOTClueData = jsonData; let SWOTClueData = jsonData;
//没有对应用户数据先添加一个基础格式,有的话直接push //没有对应用户数据先添加一个基础格式,有的话直接push
if (!SWOTClueData[userId] || Object.keys(SWOTClueData[userId]).length === 0) { if (!SWOTClueData || Object.keys(SWOTClueData).length === 0) {
SWOTClueData[userId] = { SWOTClueData = {
"isSubmit": false, "isSubmit": false,
"S": [], "S": [],
"W": [], "W": [],
...@@ -35,36 +35,36 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -35,36 +35,36 @@ import { changeJsonData, getJsonData } from "../util/tools";
//isSubmit:false【未提交】、true【提交】 //isSubmit:false【未提交】、true【提交】
/**当前线索类型未提交时,可以修改添加线索 */ /**当前线索类型未提交时,可以修改添加线索 */
if (!SWOTClueData[userId]["isSubmit"]) { if (!SWOTClueData["isSubmit"]) {
for (let i = 0; i < xs.length; i++) { for (let i = 0; i < xs.length; i++) {
// let xsInfo = xs[i]; // let xsInfo = xs[i];
SWOTClueData[userId][subdivide].push(xs[i]); SWOTClueData[subdivide].push(xs[i]);
} }
changeJsonData("json/SWOT.json", SWOTClueData); await changeUserJsonData("SWOT.json", userId, SWOTClueData);
console.log("添加SWOT线索成功"); console.log("添加SWOT线索成功");
} else { } else {
console.log("线索已提交,无法重复提交"); console.log("线索已提交,无法重复提交");
} }
/**修改全部线索.json的对应线索为已选择 isChoice:true */ /**修改全部线索.json的对应线索为已选择 isChoice:true */
let allClueJson = getJsonData("json/全部线索.json"); let allClueJson = await getUserJsonData("全部线索.json", userId);
let allClueData = allClueJson; let allClueData = allClueJson;
xs.forEach( info => { xs.forEach( info => {
let {xsid, xsnr} = info; let {xsid, xsnr} = info;
for(let key in allClueData[userId]) { for(let key in allClueData) {
allClueData[userId][key].forEach( thisClue => { allClueData[key].forEach( thisClue => {
if(xsid == thisClue.xsid) thisClue.isChoice = true; if(xsid == thisClue.xsid) thisClue.isChoice = true;
}) })
} }
}); });
changeJsonData("json/全部线索.json", allClueData); await changeUserJsonData("全部线索.json", userId, allClueData);
let baseJsonData = getJsonData("json/基础数据.json"); let baseJsonData = await getUserJsonData("基础数据.json", userId);
baseJsonData[userId]["当前线索确认"] = NOWCLUE.SWOT; baseJsonData["当前线索确认"] = NOWCLUE.SWOT;
if (baseJsonData[userId]["酒馆剧情"] < HARITYPE.已开始) baseJsonData[userId]["酒馆剧情"] = HARITYPE.已开始; if (baseJsonData["酒馆剧情"] < HARITYPE.已开始) baseJsonData["酒馆剧情"] = HARITYPE.已开始;
changeJsonData("json/基础数据.json", baseJsonData); await changeUserJsonData("基础数据.json", userId, baseJsonData);
return successResult(); return successResult();
} }
...@@ -74,10 +74,10 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -74,10 +74,10 @@ import { changeJsonData, getJsonData } from "../util/tools";
* 计算选择正确的SWOT线索 * 计算选择正确的SWOT线索
* @param userId * @param userId
*/ */
export function checkSWOT(userId) { export async function checkSWOT(userId) {
/**获取细分线索 */ /**获取细分线索 */
let xfclueJson = getJsonData("json/细分线索.json"); let xfclueJson = await getUserJsonData("细分线索.json", userId);
let clueJson = getJsonData("json/SWOT.json")[userId]; let clueJson = await getUserJsonData("SWOT.json", userId);
let sumClue = 0; //线索总数 let sumClue = 0; //线索总数
let rightClue = 0; //选对线索数 let rightClue = 0; //选对线索数
...@@ -100,10 +100,10 @@ export function checkSWOT(userId) { ...@@ -100,10 +100,10 @@ export function checkSWOT(userId) {
let score = 0; let score = 0;
// score = rightClue/sumClue*(1/4)*50; // score = rightClue/sumClue*(1/4)*50;
score = (rightClue/sumClue)*50; score = (rightClue/sumClue)*50;
let submitJsonData = getJsonData("json/提交分数.json"); let submitJsonData = await getUserJsonData("提交分数.json", userId);
let submitScore = submitJsonData; let submitScore = submitJsonData;
submitScore[userId]["SWOT"] = score; submitScore["SWOT"] = score;
changeJsonData("json/提交分数.json", submitScore); await changeUserJsonData("提交分数.json", userId, submitScore);
return successResult(); return successResult();
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
import { HARITYPE, NOWCLUE } from "../config/enum"; import { HARITYPE, NOWCLUE } from "../config/enum";
import { guyongTableData, xiansuoTableData } from "../data/table/tableData"; import { guyongTableData, xiansuoTableData } from "../data/table/tableData";
import { changeJsonData, getJsonData } from "../util/tools"; import { addJson, changeJsonData, changeUserJsonData, getJsonData, getUserJsonData } from "../util/tools";
/** /**
...@@ -12,36 +12,30 @@ import { changeJsonData, getJsonData } from "../util/tools"; ...@@ -12,36 +12,30 @@ import { changeJsonData, getJsonData } from "../util/tools";
* 基础数据没有的话也写入 * 基础数据没有的话也写入
* todo线索改为剧情走过才添加 * todo线索改为剧情走过才添加
*/ */
export function initAllClue(userId) { export async function initAllClue(userId) {
let excelData = xiansuoTableData(); let baseJsonData = await getUserJsonData("基础数据.json", userId);
let clueExcelData = excelData["线索表"].dataList; let submitJsonData = await getUserJsonData("提交分数.json", userId);
let userJsonData = getJsonData("json/用户.json");
let allClueJsonData = getJsonData("json/全部线索.json");
let baseJsonData = getJsonData("json/基础数据.json");
let submitJsonData = getJsonData("json/提交分数.json");
let writeClueAll = allClueJsonData;
let writeBaseAll = baseJsonData; let writeBaseAll = baseJsonData;
let submitClue = submitJsonData; let submitClue = submitJsonData;
/**如果登录的账号没有全部线索数据,则写入json /**如果登录的账号没有全部线索数据,则写入json
* 弃用,改为走过相关剧情添加对应线索 * 弃用,改为走过相关剧情添加对应线索
*/ */
// if (!allClueJsonData[userId] || Object.keys(allClueJsonData[userId]).length === 0) { // if (!allClueJsonData || Object.keys(allClueJsonData).length === 0) {
// writeClueAll[userId] = {}; // writeClueAll = {};
// clueExcelData.forEach( info => { // clueExcelData.forEach( info => {
// let {xsid, xsnr, xslx, xslxxf, sfbx} = info; // let {xsid, xsnr, xslx, xslxxf, sfbx} = info;
// if (!writeClueAll[userId][xslx]) writeClueAll[userId][xslx] = []; // if (!writeClueAll[xslx]) writeClueAll[xslx] = [];
// writeClueAll[userId][xslx].push({xsid, xsnr, isChoice:false, sfbx}); // writeClueAll[xslx].push({xsid, xsnr, isChoice:false, sfbx});
// }) // })
// //写入json // //写入json
// changeJsonData("json/全部线索.json", writeClueAll); // await changeUserJsonData("全部线索.json", userId, writeClueAll);
// } // }
/**如果登录的账号没有基础数据,则写入json */ /**如果登录的账号没有基础数据,则写入json */
if (!baseJsonData[userId] || Object.keys(baseJsonData[userId]).length === 0) { if (!baseJsonData || Object.keys(baseJsonData).length === 0) {
writeBaseAll[userId] = { writeBaseAll = {
"初始资金": 500, "初始资金": 500,
"天数":0, "天数":0,
"结算":500, "结算":500,
...@@ -55,17 +49,17 @@ export function initAllClue(userId) { ...@@ -55,17 +49,17 @@ export function initAllClue(userId) {
"竞合": false "竞合": false
} }
//写入json //写入json
changeJsonData("json/基础数据.json", writeBaseAll); await changeUserJsonData("基础数据.json", userId, writeBaseAll);
} }
/**如果登录的账号没有初始化分数数据,则写入json */ /**如果登录的账号没有初始化分数数据,则写入json */
if (!submitJsonData[userId] || Object.keys(submitJsonData[userId]).length === 0) { if (!submitJsonData || Object.keys(submitJsonData).length === 0) {
submitClue[userId] = { submitClue = {
SWOT:0, SWOT:0,
ROI:0, ROI:0,
竞合:0 竞合:0
}; };
//写入json //写入json
changeJsonData("json/提交分数.json", submitClue); await changeUserJsonData("提交分数.json", userId, submitClue);
} }
} }
...@@ -73,7 +67,7 @@ export function initAllClue(userId) { ...@@ -73,7 +67,7 @@ export function initAllClue(userId) {
/** /**
* 初始化制作瓷器成本数据 * 初始化制作瓷器成本数据
*/ */
export function initCiqi() { export async function initCiqi() {
let excelData = guyongTableData(); let excelData = guyongTableData();
let 雇佣Data = excelData['雇佣表'].dataList; let 雇佣Data = excelData['雇佣表'].dataList;
let 运输Data = excelData['运输'].dataList; let 运输Data = excelData['运输'].dataList;
...@@ -133,7 +127,7 @@ export function initCiqi() { ...@@ -133,7 +127,7 @@ export function initCiqi() {
let 成本 = {瓷器, 人员成本, 运输成本} let 成本 = {瓷器, 人员成本, 运输成本}
changeJsonData("json/瓷器制造.json", 成本); await changeJsonData("瓷器制造.json", 成本);
} }
...@@ -142,16 +136,16 @@ export function initCiqi() { ...@@ -142,16 +136,16 @@ export function initCiqi() {
* 登录开始计算 30分钟加一天 * 登录开始计算 30分钟加一天
* @param userId * @param userId
*/ */
export function gameLoop(userId) { export async function gameLoop(userId) {
let baseJsonData = getJsonData("json/基础数据.json"); let baseJsonData = await getUserJsonData("基础数据.json", userId);
// let baseData = baseJsonData[userId]; // let baseData = baseJsonData;
baseJsonData[userId]["天数"]++; if (baseJsonData) baseJsonData["天数"]++;
//60000毫秒 = 1分钟,设定30分钟游戏内天数+1 //60000毫秒 = 1分钟,设定30分钟游戏内天数+1
setTimeout(gameLoop, 60000*30, userId); setTimeout(await gameLoop, 60000*30, userId);
changeJsonData("json/基础数据.json", baseJsonData); await changeUserJsonData("基础数据.json", userId, baseJsonData);
} }
......
...@@ -7,7 +7,7 @@ import { ERRORENUM } from "../config/errorEnum"; ...@@ -7,7 +7,7 @@ import { ERRORENUM } from "../config/errorEnum";
import { xiansuoTableData } from "../data/table/tableData"; import { xiansuoTableData } from "../data/table/tableData";
import { successErrorResult, successResult } from "../tools/systemTools"; import { successErrorResult, successResult } from "../tools/systemTools";
import { BizError } from "../util/bizError"; import { BizError } from "../util/bizError";
import { changeJsonData, getJsonData } from "../util/tools"; import { changeUserJsonData, getUserJsonData, getJsonData, changeJsonData, addJson } from "../util/tools";
import { gameLoop, initAllClue } from "./task"; import { gameLoop, initAllClue } from "./task";
let fs = require('fs'); let fs = require('fs');
let path = require('path'); let path = require('path');
...@@ -17,26 +17,26 @@ let path = require('path'); ...@@ -17,26 +17,26 @@ let path = require('path');
* @param loginId 账号 * @param loginId 账号
* @param pwd 密码 * @param pwd 密码
*/ */
export function login(loginId, pwd) { export async function login(loginId, pwd) {
let userData = getJsonData("json/用户.json"); let userData = await getJsonData("用户.json");
let dataInfo = {}; let dataInfo = {};
/**判断是否有对应账号 */ /**判断是否有对应账号 */
let hasUser = userData.some(item => item.loginId === loginId); let hasUser = userData.some(item => item.loginId === loginId);
if (!hasUser) throw new BizError(ERRORENUM.账号不存在); if (!hasUser) throw new BizError(ERRORENUM.账号不存在);
let firstLogin = false; let firstLogin = false;
userData.forEach( info => { for (let i = 0; i < userData.length; i++) {
initAllClue(info.userId); let info = userData[i];
if (info.loginId == loginId) { if (info.loginId == loginId) {
await addJson(info.userId);
if (info.pwd != pwd) throw new BizError(ERRORENUM.账号或密码错误); if (info.pwd != pwd) throw new BizError(ERRORENUM.账号或密码错误);
await initAllClue(info.userId);
if (!info.name) firstLogin = true; if (!info.name) firstLogin = true;
dataInfo = {userId:info.userId, loginId:info.loginId, firstLogin}; dataInfo = {userId:info.userId, loginId:info.loginId, firstLogin};
gameLoop(info.userId); await gameLoop(info.userId);
}
} }
// dataInfo["firstlogin"] = initAllClue(info.userId);
})
return dataInfo; return dataInfo;
} }
...@@ -47,8 +47,8 @@ export function login(loginId, pwd) { ...@@ -47,8 +47,8 @@ export function login(loginId, pwd) {
* @param loginId 账号 * @param loginId 账号
* @param pwd 密码 * @param pwd 密码
*/ */
export function register(loginId, pwd) { export async function register(loginId, pwd) {
let userData = getJsonData("json/用户.json"); let userData = await getJsonData("用户.json");
const NowMs = new Date().valueOf(); const NowMs = new Date().valueOf();
...@@ -60,15 +60,9 @@ export function register(loginId, pwd) { ...@@ -60,15 +60,9 @@ export function register(loginId, pwd) {
} }
); );
changeJsonData("json/用户.json", userData); await changeUserJsonData("用户.json", userData, NowMs);
let dirPath = path.join(__dirname.substring(0,__dirname.indexOf("out")), `json/${NowMs}`); addJson(NowMs);
try {
fs.mkdirSync(dirPath, { recursive: true });
console.log(`文件夹${dirPath}已成功创建`);
} catch (err) {
console.error(`文件夹${dirPath}创建失败${err.message}`);
}
return successResult(); return successResult();
} }
...@@ -78,14 +72,14 @@ export function register(loginId, pwd) { ...@@ -78,14 +72,14 @@ export function register(loginId, pwd) {
* 基础数据【当前天数、银两数】 * 基础数据【当前天数、银两数】
* @returns * @returns
*/ */
export function getBaseData(userId) { export async function getBaseData(userId) {
let baseData = getJsonData("json/基础数据.json"); let baseData = await getUserJsonData("基础数据.json", userId);
let basicsData = { let basicsData = {
day:0, day:0,
tael:500 tael:500
} }
basicsData.day = baseData[userId]["天数"] || 0; basicsData.day = baseData["天数"] || 0;
// basicsData.tael = baseData[userId]["结算"] || 0; //todo第一幕不计算金额,直接使用500金 // basicsData.tael = baseData["结算"] || 0; //todo第一幕不计算金额,直接使用500金
return basicsData; return basicsData;
} }
...@@ -96,12 +90,12 @@ export function register(loginId, pwd) { ...@@ -96,12 +90,12 @@ export function register(loginId, pwd) {
* @param clueType * @param clueType
* @returns * @returns
*/ */
export function getCount(userId) { export async function getCount(userId) {
let excelData = xiansuoTableData(); let excelData = xiansuoTableData();
let clueExcelData = excelData["线索表"].dataList; let clueExcelData = excelData["线索表"].dataList;
let jsonData = getJsonData("json/全部线索.json"); let jsonData = await getUserJsonData("全部线索.json", userId);
let clueData = jsonData[userId]; let clueData = jsonData;
let personalData = { let personalData = {
clue:"", clue:"",
...@@ -118,19 +112,19 @@ export function getCount(userId) { ...@@ -118,19 +112,19 @@ export function getCount(userId) {
// if (info.isChoice) clue++ // if (info.isChoice) clue++
// }) // })
} }
personalData.clue = `${allClue}/${clue}`; //总线索数(线索配置表里的所有线索)/当前解锁的线索数 personalData.clue = `${clue}/${allClue}`; //总线索数(线索配置表里的所有线索)/当前解锁的线索数
// 银两数 todo 第一幕不计算银两数,默认展示500金 // 银两数 todo 第一幕不计算银两数,默认展示500金
// let baseData = getJsonData("json/基础数据.json"); // let baseData = await getUserJsonData("基础数据.json", userId);
// personalData.tael = baseData[userId]["结算"]; // personalData.tael = baseData["结算"];
// 雇佣人数 // 雇佣人数
let hireData = getJsonData("json/雇佣选择.json"); let hireData = await getUserJsonData("雇佣选择.json", userId);
if (hireData[userId]) { if (hireData) {
if (Object.keys(hireData[userId]).length != 0) { if (Object.keys(hireData).length != 0) {
if (!hireData[userId]["人工"]) hireData[userId]["人工"] = {} if (!hireData["人工"]) hireData["人工"] = {}
if (Object.keys(hireData[userId]["人工"]).length != 0) { if (Object.keys(hireData["人工"]).length != 0) {
personalData.hire = Object.keys(hireData[userId]["人工"]).length; personalData.hire = Object.keys(hireData["人工"]).length;
} }
} }
} }
...@@ -179,8 +173,8 @@ const nicknameRegex = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/; ...@@ -179,8 +173,8 @@ const nicknameRegex = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
* 修改昵称 * 修改昵称
* @param userId * @param userId
*/ */
export function updateName(userId, name) { export async function updateName(userId, name) {
let userData = getJsonData("json/用户.json"); let userData = await getJsonData("用户.json");
let isOk = true; let isOk = true;
let result; let result;
userData.forEach( info => { userData.forEach( info => {
...@@ -201,7 +195,7 @@ const nicknameRegex = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/; ...@@ -201,7 +195,7 @@ const nicknameRegex = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
}) })
if(isOk) { if(isOk) {
changeJsonData("json/用户.json", userData); changeJsonData("用户.json", userData);
result = successResult(); result = successResult();
} }
......
...@@ -9,7 +9,7 @@ async function lanuch() { ...@@ -9,7 +9,7 @@ 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.');
initCiqi(); await initCiqi();
// let key = crypto.randomBytes(32).toString('hex'); //"4fa9998e3be1bd3fa7b8def3969115858c6f19f9ef36e2e71f61645e9767764c" // let key = crypto.randomBytes(32).toString('hex'); //"4fa9998e3be1bd3fa7b8def3969115858c6f19f9ef36e2e71f61645e9767764c"
// let iv = crypto.randomBytes(16).toString('hex'); //"db2be0c856f44e68b818ff6ef7f018c1" // let iv = crypto.randomBytes(16).toString('hex'); //"db2be0c856f44e68b818ff6ef7f018c1"
// await initConfiguration(); // await initConfiguration();
......
...@@ -41,14 +41,30 @@ export function getRandomInt(min, max) { ...@@ -41,14 +41,30 @@ export function getRandomInt(min, max) {
* @param jsonName json文件名称 * @param jsonName json文件名称
* @returns * @returns
*/ */
export function getJsonData(jsonName) { export async function getJsonData(jsonName) {
let filename = path.join(__dirname.substring(0,__dirname.indexOf("out")), jsonName); let filename = path.join(__dirname.substring(0,__dirname.indexOf(`out`)), `json/${jsonName}`);
let jsonObject = fs.readFileSync(filename, 'utf-8'); let jsonObject = fs.readFileSync(filename, 'utf-8');
let baseData;
if (jsonObject) baseData = JSON.parse(jsonObject);
console.log(baseData);
return baseData;
}
let baseData = JSON.parse(jsonObject);
/**
* 获取对应登录用户的数据json
* @param jsonName json文件名称
* @returns
*/
export async function getUserJsonData(jsonName, userId) {
let filename = path.join(__dirname.substring(0,__dirname.indexOf(`out`)), `json/${userId}/${jsonName}`);
let jsonObject = fs.readFileSync(filename, 'utf-8');
let baseData;
if (jsonObject) baseData = JSON.parse(jsonObject);
console.log(baseData); console.log(baseData);
return baseData; return baseData;
} }
...@@ -57,12 +73,77 @@ export function getJsonData(jsonName) { ...@@ -57,12 +73,77 @@ export function getJsonData(jsonName) {
* 更新json数据 * 更新json数据
* @param jsonName json文件名称 * @param jsonName json文件名称
*/ */
export function changeJsonData(jsonName, data) { export async function changeJsonData(jsonName, data) {
let jsonData = JSON.stringify(data, null, 2);
let filename = path.join(__dirname.substring(0,__dirname.indexOf(`out`)), `json/${jsonName}`);
fs.writeFileSync(filename, jsonData);
console.log('文件写入成功');
// fs.writeFile(filename, jsonData, (err) => {
// if (err) {
// console.log(`写入${jsonName}文件失败`);
// }
// console.log('文件写入成功');
// });
}
/**
* 更新对应用户json数据
* @param jsonName json文件名称
*/
export async function changeUserJsonData(jsonName, userId, data) {
let jsonData = JSON.stringify(data, null, 2); let jsonData = JSON.stringify(data, null, 2);
let filename = path.join(__dirname.substring(0,__dirname.indexOf("out")), jsonName); let filename = path.join(__dirname.substring(0,__dirname.indexOf(`out`)), `json/${userId}/${jsonName}`);
fs.writeFileSync(filename, jsonData); fs.writeFileSync(filename, jsonData);
console.log('文件写入成功'); console.log('文件写入成功');
// fs.writeFile(filename, jsonData, (err) => {
// if (err) {
// console.log(`写入${jsonName}文件失败`);
// }
// console.log('文件写入成功');
// });
} }
/**
* 添加对应user的文件夹
* @param userId
*/
export function addJson(userId) {
/**判断没有当前登录用户的文件夹则新建一个 */
let dirPath = path.join(__dirname.substring(0,__dirname.indexOf("out")), `json/${userId}`);
if (!fs.existsSync(dirPath)) {
try {
fs.mkdirSync(dirPath, { recursive: true });
console.log(`文件夹${dirPath}已成功创建`);
// 指定你要创建的 JSON 文件的路径和名称
let jsonName = ["雇佣选择.json", "基础数据.json", "竞合.json", "全部线索.json", "提交分数.json", "细分线索.json", "ROI.json", "SWOT.json"];
for(let i = 0; i < jsonName.length; i++) {
let jsonFilePath = path.join(dirPath, `${jsonName[i]}`);
// 转换为 JSON 字符串
let jsonData = '';
let jsonString = JSON.stringify(jsonData, null, 2)
// 文件夹创建成功后,写入 JSON 文件
fs.writeFileSync(jsonFilePath, jsonString);
console.log('文件写入成功');
}
} catch (err) {
console.error(`文件夹${dirPath}创建失败${err.message}`);
}
} else {
console.log(`文件夹${dirPath}已存在`);
}
}
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