Commit d2c64498 by chenjinjing

no message

parent a07257ab
{
"1730970187744": {}
}
\ No newline at end of file
{
"1727399696222": {
"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": [
{
"xsid": "C002",
"xsnr": "熟悉整套生产运输流程",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C004",
"xsnr": "在多地有熟识的好友可以提供咨询协助",
"isChoice": false,
"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": "否"
}
],
"竞合": [],
"ROI": []
}
}
\ No newline at end of file
{
{
{
"1727399696222": {
"初始资金": 500,
"天数": 12,
"天数": 215,
"结算": 500,
"广州府介绍": false,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
},
"1729153582461": {
"初始资金": 500,
"天数": 208,
"结算": 500,
"广州府介绍": false,
"酒馆剧情": 0,
"当前线索确认": 0,
"酒馆剧情": 2,
"当前线索确认": 1,
"商行选择": false,
"SWOT": true,
"ROI": false,
"竞合": false,
"码头": {
"S011": {
"当前对话id": "18",
"当前对话id": "17",
"已获得的线索": [
"C023",
"C013",
......@@ -36,8 +24,35 @@
"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,
......@@ -52,9 +67,42 @@
},
"1730970187744": {
"初始资金": 500,
"天数": 20,
"结算": 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,
......@@ -62,7 +110,7 @@
"ROI": false,
"竞合": false
},
"1730359573927": {
"1730970810891": {
"初始资金": 500,
"天数": 0,
"结算": 500,
......@@ -74,7 +122,7 @@
"ROI": false,
"竞合": false
},
"1730970810891": {
"1732604118825": {
"初始资金": 500,
"天数": 0,
"结算": 500,
......
{
{
{
"1727399696222": {
"SWOT": 0,
"SWOT": 7.6923076923076925,
"ROI": 0,
"竞合": 0
},
......@@ -15,16 +15,19 @@
"竞合": 0
},
"1730970187744": {
"SWOT": 0
},
"1730359573927": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
},
"1730359573927": {
"1730970810891": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
},
"1730970810891": {
"1732604118825": {
"SWOT": 0,
"ROI": 0,
"竞合": 0
......
{
{
"1730970187744": {}
}
\ No newline at end of file
{
{
"1730970187744": {
"人工": {
"工人": "C025",
"画师": "C032",
"掌柜": "C035"
},
"原材料": {
"瓷器": "C041",
"颜料": "C039"
},
"运输": "C037",
"制成瓷器": "C045"
}
}
\ No newline at end of file
{}
\ No newline at end of file
{}
\ No newline at end of file
[
[
......@@ -3,12 +3,13 @@
"userId": "1727399696222",
"loginId": "玩家1",
"pwd": "123456",
"name": "小陈"
"name": "赵今麦"
},
{
"userId": "1729153582461",
"loginId": "玩家2",
"pwd": "123456"
"pwd": "123456",
"name": "陈知行"
},
{
"userId": "1730359559228",
......@@ -18,7 +19,8 @@
{
"userId": "1730970187744",
"loginId": "111",
"pwd": "123456"
"pwd": "123456",
"name": "小陈"
},
{
"userId": "1730359573927",
......@@ -29,5 +31,10 @@
"userId": "1730970810891",
"loginId": "333",
"pwd": "123456"
},
{
"userId": "1732604118825",
"loginId": "jason",
"pwd": "123456"
}
]
\ No newline at end of file
{}
++ /dev/null
{}
\ No newline at end of file
{}
++ /dev/null
{}
\ No newline at end of file
No preview for this file type
No preview for this file type
......@@ -27,6 +27,7 @@ export function isEnabled(userId:string) {
/**
* 弃用
* 添加线索 todo线索改为剧情走过才添加
* @param userId
*/
......@@ -114,6 +115,7 @@ export function xfxxClue() {
/**
* 弃用
* 添加全部线索
* @param data
*/
......@@ -131,8 +133,8 @@ export function addAllClue(data) {
/**
* 线索 todo线索改为剧情走过才添加
* 有参数返回对应线索类型数据,没有参数返回全部线索数据
* 线索
* 有参数返回对应线索类型数据,没有参数返回已走过剧情的全部线索数据
* @param clueType 线索类型
* @returns
*/
......@@ -148,18 +150,18 @@ export function getClue(userId, clueType?) {
})
/**如果登录的账号没有全部线索数据,则写入json */
let allClueJson = getJsonData("json/全部线索.json");
let writeClueAll = allClueJson;
if (Object.keys(allClueJson[userId]).length == 0) {
writeClueAll[userId] = {};
clueExcelData.forEach( info => {
let {xsid, xsnr, xslx, xslxxf, sfbx} = info;
if (!writeClueAll[userId][xslx]) writeClueAll[userId][xslx] = [];
writeClueAll[userId][xslx].push({xsid, xsnr, isChoice:false, sfbx});
})
//写入json
changeJsonData("json/全部线索.json", writeClueAll);
}
// let allClueJson = getJsonData("json/全部线索.json");
// let writeClueAll = allClueJson;
// if (Object.keys(allClueJson[userId]).length == 0) {
// writeClueAll[userId] = {};
// clueExcelData.forEach( info => {
// let {xsid, xsnr, xslx, xslxxf, sfbx} = info;
// if (!writeClueAll[userId][xslx]) writeClueAll[userId][xslx] = [];
// writeClueAll[userId][xslx].push({xsid, xsnr, isChoice:false, sfbx});
// })
// //写入json
// changeJsonData("json/全部线索.json", writeClueAll);
// }
let clueList = [];
let guyongJson = getJsonData("json/雇佣选择.json");
......@@ -220,13 +222,14 @@ export function getClue(userId, clueType?) {
let allClueChange = getJsonData("json/全部线索.json");
if(clueType) {
clueData[clueType].forEach( info => {
for(let key in allClueChange[userId]) {
allClueChange[userId][key].forEach( thisClue => {
if(info.xsid == thisClue.xsid) {
clueList.push(thisClue);
}
})
}
// for(let key in allClueChange[userId]) {
// }
allClueChange[userId][clueType].forEach( thisClue => {
if(info.xsid == thisClue.xsid) {
clueList.push(thisClue);
}
})
})
} else {
for(let key in allClueChange[userId]) {
......@@ -236,7 +239,7 @@ export function getClue(userId, clueType?) {
}
}
if(clueList) {6
if(clueList) {
clueList.sort( (a, b) => {
if (a.isChoice === true && b.isChoice === false) {
return 1;
......
......@@ -5,11 +5,11 @@
import { HARITYPE, NOWCLUE } from "../config/enum";
import { ERRORENUM } from "../config/errorEnum";
import { systemConfig } from "../config/serverConfig";
import { guyongTableData, juqingTableData, NPCTableData } from "../data/table/tableData";
import { successResult } from "../tools/systemTools";
import { guyongTableData, juqingTableData, NPCTableData, xiansuoTableData } from "../data/table/tableData";
import { successErrorResult, successResult } from "../tools/systemTools";
import { BizError } from "../util/bizError";
import { changeJsonData, getJsonData } from "../util/tools";
import { addClue, xfxxClue } from "./clue";
import { addAllClue, xfxxClue } from "./clue";
/**
......@@ -20,8 +20,18 @@ import { addClue, xfxxClue } from "./clue";
* @returns
*/
export function getPlayData(userId:string, type:string, playId:string, dhId:string) {
let excelData = juqingTableData(type, playId);
let allClueJson = getJsonData("json/基础数据.json");
let hireData = getJsonData("json/雇佣选择.json");
let hireWorker = hireData;
let duihua = playId;
if (playId == "S021" || playId == "S025") {
duihua = `${playId}_1`;
if (allClueJson[userId]["酒馆剧情"] > HARITYPE.未开始) {
duihua = `${playId}_${allClueJson[userId]["酒馆剧情"]}`;
}
}
/**获取玩家昵称 */
let userData = getJsonData("json/用户.json");
let name = "";
......@@ -32,7 +42,10 @@ export function getPlayData(userId:string, type:string, playId:string, dhId:stri
}
})
let playData = excelData[playId].dataList;
let excelData = juqingTableData(type, duihua);
if (!excelData || Object.keys(excelData).length === 0) return successErrorResult("该NPC暂未开通剧情");//剧情走完添加对应用户的对应线索数据
let playData = excelData[duihua].dataList;
let nextStory:any = {};
playData.forEach( info => {
let {dhid, dh, jqlx, hzjqid, glnpc, glxsid} = info;
......@@ -45,17 +58,8 @@ export function getPlayData(userId:string, type:string, playId:string, dhId:stri
//记录当前走到的剧情
plotClues(userId, type, playId, dhId, glxsid);
/**根据走过的剧情添加线索 */
//剧情走完添加对应用户的对应线索数据
addAllClueByPlan(userId, glxsid);
}
});
......@@ -65,6 +69,15 @@ export function getPlayData(userId:string, type:string, playId:string, dhId:stri
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]);
addAllClueByPlan(userId, dhData.glxsid);
dhData["ispop"] = false;
if(dhData.jqlx == "工人" || dhData.jqlx == "画师" || dhData.jqlx == "掌柜") {
dhData.ispop = true;
} else if (dhData.jqlx == "运输") {
if (!hireWorker[userId]) hireWorker[userId] = {};
hireWorker[userId]["运输"] = dhData.glxsid;
changeJsonData("json/雇佣选择.json", hireWorker);
}
if(dhData) dhStory.push(dhData);
}
nextStory.hzjq = dhStory;
......@@ -73,38 +86,27 @@ export function getPlayData(userId:string, type:string, playId:string, dhId:stri
}
if (nextStory.hzjqid == '999') {
//剧情走完添加对应用户的对应线索数据
addClue(userId);
xfxxClue();
/**剧情完成可添加SWOT线索 */
let allClueJson = getJsonData("json/基础数据.json");
allClueJson[userId]["SWOT"] = true;
if (type == "码头") {
allClueJson[userId]["SWOT"] = true;
} else if (type == "酒馆") {
allClueJson[userId]["酒馆剧情"] = HARITYPE.已选择;
//酒馆剧情观看完毕、颜料瓷器已选择、SWOT已确认、工人已选择
if(allClueJson[userId]["酒馆剧情"] == HARITYPE.已选择 && allClueJson[userId]["商行选择"]) allClueJson[userId]["ROI"] = true;
}
//更新json数据
changeJsonData("json/基础数据.json", allClueJson);
}
}
return nextStory;
}
/**
* 弃用
* 酒馆剧情
* @param type 酒馆
* @param playId SO12
......@@ -131,6 +133,8 @@ export function getJGPlayData(userId:string, type:string, playId:string, dhId:st
/**剧情完成可添加ROI线索 */
let excelData = juqingTableData(type, duihua);
if (!excelData || Object.keys(excelData).length === 0) return successErrorResult("该NPC暂未开通剧情");
//剧情走完添加对应用户的对应线索数据
let playData = excelData[duihua].dataList;
let nextStory:any = {};
......@@ -145,6 +149,8 @@ export function getJGPlayData(userId:string, type:string, playId:string, dhId:st
//记录当前走到的剧情
plotClues(userId, type, duihua, dhId, glxsid);
//剧情走完添加对应用户的对应线索数据
addAllClueByPlan(userId, glxsid);
}
});
......@@ -169,8 +175,6 @@ export function getJGPlayData(userId:string, type:string, playId:string, dhId:st
}
if (nextStory.hzjqid == '999') {
//剧情走完添加对应用户的全部线索
addClue(userId);
xfxxClue();
allClueJson[userId]["酒馆剧情"] = HARITYPE.已选择;
//酒馆剧情观看完毕、颜料瓷器已选择、SWOT已确认、工人已选择
......@@ -481,10 +485,39 @@ export function getGzf(userId) {
* 广州府介绍
* @param userId
*/
export function getIntroduceGzf() {
export function getIntroduceGzf(userId) {
//获取已有json数据
let baseJsonData = getJsonData("json/广州府介绍.json");
//获取已有json数据
let baseData = getJsonData("json/全部线索.json");
/**获取表格数据 */
let excelData = xiansuoTableData();
let clueExcelData = excelData["线索表"].dataList;
let userData = baseData;
if(Object.keys(baseData).length === 0) { //没有对应数据的情况
userData[userId] = {};
}
clueExcelData.forEach( info => {
let {xsid, xsnr, xslx, xslxxf, dhgl, sfbx} = info;
if (!userData[userId]) userData[userId] = {};
if (!userData[userId][xslx]) userData[userId][xslx] = [];
//匹配线索id
if (dhgl == "开篇1" || dhgl == "开篇2") {
//检查数组中是否已经有对象的xsid等于当前xsid
let exists = userData[userId][xslx].find(s => s.xsid == xsid);
//如果不存在,则添加该线索
if (!exists) {
userData[userId][xslx].push({xsid, xsnr, isChoice:false, sfbx});
}
}
})
changeJsonData("json/全部线索.json", userData);
console.log("已添加全部线索");
return baseJsonData;
}
......@@ -503,7 +536,62 @@ export function firstPubHire(userId) {
}
/**
* 根据剧情关联线索添加
* @param userId
* @param glxsid
*/
export function addAllClueByPlan(userId, glxsid) {
//获取已有json数据
let baseData = getJsonData("json/全部线索.json");
/**获取表格数据 */
let excelData = xiansuoTableData();
let clueExcelData = excelData["线索表"].dataList;
let userData = baseData;
if(Object.keys(baseData).length === 0) { //没有对应数据的情况
userData[userId] = {};
}
/**关联的线索 */
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
else fruitsEmpty = [glxsid];
for(let i = 0; i < fruitsEmpty.length; i++) {
fruitsEmpty[i] = fruitsEmpty[i].replace(/^\s+/, '');
}
let distinctMap = {};//用于去重线索的map
if (!userData[userId]) userData[userId] = {};
for (let xslx in userData[userId]) {
distinctMap[xslx] = {};
userData[userId][xslx].forEach(info => {
let {xsid} = info;
distinctMap[xslx][xsid] = info;
});
}
clueExcelData.forEach(info => {
let {xsid, xsnr, xslx, xslxxf, dhgl, sfbx} = info;
if (fruitsEmpty.indexOf(xsid) > -1) {
//命中
if (distinctMap[xslx][xsid]) return;
//去重之后的并且需要添加到用户里面的
if (!userData[userId]) userData[userId] = {};
if (!userData[userId][xslx]) userData[userId][xslx] = [];
userData[userId][info.xslx].push({xsid, xsnr, isChoice:false, sfbx});
}
});
}
changeJsonData("json/全部线索.json", userData);
console.log("已添加全部线索");
}
......
/**
* ROI线索
* 30:ROI线索总分数
* 分数计算规则:暂定
* 满分:净利润超过30
* 20分:净利润大于25,小于30
* 10分:净利润大于20,小于25
......
......@@ -25,17 +25,20 @@ export function initAllClue(userId) {
let writeBaseAll = baseJsonData;
let submitClue = submitJsonData;
/**如果登录的账号没有全部线索数据,则写入json */
if (!allClueJsonData[userId] || Object.keys(allClueJsonData[userId]).length === 0) {
writeClueAll[userId] = {};
clueExcelData.forEach( info => {
let {xsid, xsnr, xslx, xslxxf, sfbx} = info;
if (!writeClueAll[userId][xslx]) writeClueAll[userId][xslx] = [];
writeClueAll[userId][xslx].push({xsid, xsnr, isChoice:false, sfbx});
})
//写入json
changeJsonData("json/全部线索.json", writeClueAll);
}
/**如果登录的账号没有全部线索数据,则写入json
* 弃用,改为走过相关剧情添加对应线索
*/
// if (!allClueJsonData[userId] || Object.keys(allClueJsonData[userId]).length === 0) {
// writeClueAll[userId] = {};
// clueExcelData.forEach( info => {
// let {xsid, xsnr, xslx, xslxxf, sfbx} = info;
// if (!writeClueAll[userId][xslx]) writeClueAll[userId][xslx] = [];
// writeClueAll[userId][xslx].push({xsid, xsnr, isChoice:false, sfbx});
// })
// //写入json
// changeJsonData("json/全部线索.json", writeClueAll);
// }
/**如果登录的账号没有基础数据,则写入json */
if (!baseJsonData[userId] || Object.keys(baseJsonData[userId]).length === 0) {
writeBaseAll[userId] = {
......@@ -136,7 +139,7 @@ export function initCiqi() {
/**
* 游戏天数
* 登录开始计算 5分钟加一天
* 登录开始计算 30分钟加一天
* @param userId
*/
export function gameLoop(userId) {
......@@ -145,8 +148,8 @@ export function gameLoop(userId) {
// let baseData = baseJsonData[userId];
baseJsonData[userId]["天数"]++;
//60000毫秒 = 1分钟,设定5分钟游戏内天数+1
setTimeout(gameLoop, 60000*5, userId);
//60000毫秒 = 1分钟,设定30分钟游戏内天数+1
setTimeout(gameLoop, 60000*30, userId);
changeJsonData("json/基础数据.json", baseJsonData);
}
......
......@@ -4,12 +4,13 @@
*/
import { ERRORENUM } from "../config/errorEnum";
import { successResult } from "../tools/systemTools";
import { xiansuoTableData } from "../data/table/tableData";
import { successErrorResult, successResult } from "../tools/systemTools";
import { BizError } from "../util/bizError";
import { changeJsonData, getJsonData } from "../util/tools";
import { gameLoop, initAllClue } from "./task";
let fs = require('fs');
let path = require('path');
/**
* 登录
......@@ -60,6 +61,14 @@ export function register(loginId, pwd) {
);
changeJsonData("json/用户.json", userData);
let dirPath = path.join(__dirname.substring(0,__dirname.indexOf("out")), `json/${NowMs}`);
try {
fs.mkdirSync(dirPath, { recursive: true });
console.log(`文件夹${dirPath}已成功创建`);
} catch (err) {
console.error(`文件夹${dirPath}创建失败${err.message}`);
}
return successResult();
}
......@@ -73,10 +82,10 @@ export function register(loginId, pwd) {
let baseData = getJsonData("json/基础数据.json");
let basicsData = {
day:0,
tael:0
tael:500
}
basicsData.day = baseData[userId]["天数"] || 0;
basicsData.tael = baseData[userId]["结算"] || 0;
// basicsData.tael = baseData[userId]["结算"] || 0; //todo第一幕不计算金额,直接使用500金
return basicsData;
}
......@@ -88,25 +97,32 @@ export function register(loginId, pwd) {
* @returns
*/
export function getCount(userId) {
let excelData = xiansuoTableData();
let clueExcelData = excelData["线索表"].dataList;
let jsonData = getJsonData("json/全部线索.json");
let clueData = jsonData[userId];
let personalData = {
clue:0,
tael:0,
clue:"",
tael:500,
hire:0
};
let allClue = clueExcelData.length;
let clue = 0;
// 线索数
for (let key in clueData) {
clueData[key].forEach( info => {
if (info.isChoice) personalData.clue++
})
clue += clueData[key].length;
// clueData[key].forEach( info => {
// if (info.isChoice) clue++
// })
}
personalData.clue = `${allClue}/${clue}`; //总线索数(线索配置表里的所有线索)/当前解锁的线索数
// 银两数
let baseData = getJsonData("json/基础数据.json");
personalData.tael = baseData[userId]["结算"];
// 银两数 todo 第一幕不计算银两数,默认展示500金
// let baseData = getJsonData("json/基础数据.json");
// personalData.tael = baseData[userId]["结算"];
// 雇佣人数
let hireData = getJsonData("json/雇佣选择.json");
......@@ -124,21 +140,72 @@ export function getCount(userId) {
/**
* 昵称禁词配置
*
*/
const chineseNicknameForbiddenWords = [
'傻逼', // 低俗侮辱性词汇
'贱人', // 低俗侮辱性词汇
'他妈的', // 低俗侮辱性词汇,含有辱骂家属成分
'日', // 低俗词汇,可能涉及性行为暗示
'草', // 低俗词汇,可能涉及性行为暗示
'屁', // 低俗词汇,表示不屑或侮辱
'操', // 低俗词汇,可能涉及性行为或侮辱
'狗屎', // 低俗词汇,表示贬低或侮辱
'王八蛋', // 低俗侮辱性词汇,用于骂人
'尼玛', // 低俗侮辱性词汇,谐音“你妈”
'黑鬼', // 种族歧视词汇,用于贬低黑人
'鬼子', // 含有对特定历史背景下外国人的贬低和侮辱意味
'太监', // 性别歧视词汇,用于贬低男性
'婊子', // 性别歧视词汇,用于贬低女性
'法轮功', // 政治敏感词汇,涉及邪教组织
'共产党', // 政治敏感词汇,在不当语境下使用可能被视为不尊重或挑衅
'反动', // 政治敏感词汇,表示反对或颠覆政权
'暴恐', // 涉及暴力恐怖活动的词汇
'色情', // 涉及色情内容的词汇
'赌博', // 涉及赌博活动的词汇
'吸毒', // 涉及毒品或吸毒行为的词汇
// 可以根据实际需求继续添加其他中文禁词
];
/**
* 字符类型限制:只能包含字母、数字、下划线和中文字符
* 中文字符的Unicode范围是\u4e00-\u9fa5
*/
const nicknameRegex = /^[a-zA-Z0-9_\u4e00-\u9fa5]+$/;
/**
* 修改昵称
* @param userId
*/
export function updateName(userId, name) {
let userData = getJsonData("json/用户.json");
let isOk = true;
let result;
userData.forEach( info => {
if (info.userId == userId) {
for (let i = 0; i < chineseNicknameForbiddenWords.length; i++) {
let word = chineseNicknameForbiddenWords[i];
if (name.includes(word)) {
isOk = false;
result = successErrorResult("昵称包含敏感词汇,修改昵称失败");
}
if (!nicknameRegex.test(name)) {
isOk = false;
result = successErrorResult("昵称只能包含字母、数字、下划线和中文字符。");
}
}
info["name"] = name;
}
})
changeJsonData("json/用户.json", userData);
if(isOk) {
changeJsonData("json/用户.json", userData);
result = successResult();
}
return successResult();
return result;
}
......
......@@ -42,3 +42,13 @@ export enum HARITYPE {
}
......@@ -112,12 +112,12 @@ function getPlay(req, res) {
// 商行、SO11、对话Id(后置剧情id)
let {type, playId, dhId} = req.body;
let result;
if (type == "酒馆") {
result = playBiz.getJGPlayData(userId, type, playId, dhId);
} else {
result = playBiz.getPlayData(userId, type, playId, dhId);
}
// if (type == "酒馆") {
// result = playBiz.getJGPlayData(userId, type, playId, dhId);
// } else {
// }
result = playBiz.getPlayData(userId, type, playId, dhId);
res.success(result);
}
......@@ -224,7 +224,9 @@ function getGzf(req, res) {
* @param res
*/
function getIntroduceGzf(req, res) {
let result = playBiz.getIntroduceGzf();
let userId = req.headers.userid;
let result = playBiz.getIntroduceGzf(userId);
res.success(result);
}
......
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