将 web-server 和 game-server 中的公共文件改为链接

This commit is contained in:
liangtongchuan
2020-09-10 17:20:27 +08:00
parent f8ac401c67
commit dbff02f5a6
32 changed files with 126 additions and 861 deletions

1
game-server/app/consts Symbolic link
View File

@@ -0,0 +1 @@
../../shared/consts

View File

@@ -1,8 +0,0 @@
export const TURBO_CORE_URL = 'https://coresrv.tgamebox.cn';
export const APP_ID = 'AXaXmIHPs9eONvzrBesD8aSKQNXYdALF';
export const TURBO_PARM_SECRET = 'ipqw05du6ob4x130w89t31yrqd6xs005zzltcmg2zpqnvrjp1s';
export const ENCRYPT_IV = 'f7182j5f04e377ux';
export const ENCRYPT_KEY = 'fiqaxijabbantusmprc234fj';
export const AUTH_SMS_CNT_PER_DAY = 8;

1
game-server/app/db Symbolic link
View File

@@ -0,0 +1 @@
../../shared/db

View File

@@ -1,9 +1,9 @@
import { RoleModel } from '../../../../../shared/db/Role';
import { UserModel } from '../../../../../shared/db/User';
import { EquipModel } from './../../../db/Equip';
import { RoleModel } from './../../../db/Role';
import { UserModel } from '../../../db/User';
import { Application, Session } from 'pinus';
import {FrontendSession} from 'pinus';
import Hero from '../../../../../shared/db/Hero';
import Equip from '../../../../../shared/db/Equip';
import { HeroModel } from './../../../db/Hero';
export default function (app: Application) {
return new EntryHandler(app);
@@ -70,8 +70,8 @@ export class EntryHandler {
// put user into channel
let users = await self.app.rpc.chat.chatRemote.add.route(session)(role.roleId, self.app.get('serverId'), rid, true);
let heros = await Hero.findByRole(role.roleId);
let equips = await Equip.findbyRole(role.roleId);
let heros = await HeroModel.findByRole(role.roleId);
let equips = await EquipModel.findbyRole(role.roleId);
role['heros'] = heros;
role['equips'] = equips;
return {

View File

@@ -1,6 +1,6 @@
import { CounterModel } from '../../../../../shared/db/Counter';
import { HeroModel } from '../../../../../shared/db/Hero';
import { EquipModel } from '../../../../../shared/db/Equip';
import { CounterModel } from '../../../db/Counter';
import { HeroModel } from '../../../db/Hero';
import { EquipModel } from '../../../db/Equip';
import {Application, BackendSession, createTcpMailBox} from 'pinus';
export default function(app: Application) {

View File

@@ -31,9 +31,9 @@
}
},
"@typegoose/typegoose": {
"version": "7.3.0",
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.0.tgz",
"integrity": "sha1-Rp6ldTzFIP49D1xOVZsBpfsZHZM=",
"version": "7.3.5",
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.5.tgz",
"integrity": "sha1-94517zpL5R8DkYh55qjPDR/PecA=",
"requires": {
"lodash": "^4.17.19",
"loglevel": "^1.6.8",
@@ -63,7 +63,6 @@
"version": "4.0.2",
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.2.tgz",
"integrity": "sha1-esy4WUL8ObvbdRXU3kN8BPaYEV8=",
"dev": true,
"requires": {
"@types/node": "*"
}
@@ -90,20 +89,18 @@
}
},
"@types/mongodb": {
"version": "3.5.25",
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.25.tgz",
"integrity": "sha1-qxh9sE15+OPxWvI2Mn3JE52dRzY=",
"dev": true,
"version": "3.5.27",
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.27.tgz?cache=0&sync_timestamp=1599138259359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.5.27.tgz",
"integrity": "sha1-FYp6Q84l7zWSrIpi5iqzi+v2YfI=",
"requires": {
"@types/bson": "*",
"@types/node": "*"
}
},
"@types/mongoose": {
"version": "5.7.35",
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.35.tgz?cache=0&sync_timestamp=1596698562534&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongoose%2Fdownload%2F%40types%2Fmongoose-5.7.35.tgz",
"integrity": "sha1-gzQUB2KAS4Q08bw+RSU0+qH/saY=",
"dev": true,
"version": "5.7.36",
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.36.tgz",
"integrity": "sha1-La4oxjBBxq+6ioPqApafRjs/ECE=",
"requires": {
"@types/mongodb": "*",
"@types/node": "*"
@@ -262,9 +259,9 @@
}
},
"bson": {
"version": "1.1.4",
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.4.tgz",
"integrity": "sha1-92hw15nxW4VN/7fuMvCodHl/fok="
"version": "1.1.5",
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.5.tgz?cache=0&sync_timestamp=1597069108497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbson%2Fdownload%2Fbson-1.1.5.tgz",
"integrity": "sha1-Kqrpj832dQwISLDLod3sPHMGCjQ="
},
"buffer": {
"version": "5.6.0",
@@ -705,9 +702,9 @@
}
},
"lodash": {
"version": "4.17.19",
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594227104529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz",
"integrity": "sha1-5I3e2+MLMyF4PFtDAfvTU7weSks="
"version": "4.17.20",
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336097104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz",
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
},
"log4js": {
"version": "6.3.0",
@@ -722,9 +719,9 @@
}
},
"loglevel": {
"version": "1.6.8",
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz",
"integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE="
"version": "1.7.0",
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz?cache=0&sync_timestamp=1598447642950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.0.tgz",
"integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A="
},
"make-error": {
"version": "1.3.6",
@@ -773,9 +770,9 @@
}
},
"mongodb": {
"version": "3.5.10",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.5.10.tgz",
"integrity": "sha1-7UFJiNKTW1KQBM6tbf3SJoEliIc=",
"version": "3.6.1",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.1.tgz",
"integrity": "sha1-LFzCqBRWuhg+jEMtgOeHMsxy2r0=",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@@ -786,9 +783,9 @@
},
"dependencies": {
"bl": {
"version": "2.2.0",
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.0.tgz?cache=0&sync_timestamp=1584503263385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.0.tgz",
"integrity": "sha1-4aV0zfUo5AUwGbuACwQcCsiNpJM=",
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1599194088618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
@@ -797,13 +794,13 @@
}
},
"mongoose": {
"version": "5.9.27",
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.9.27.tgz?cache=0&sync_timestamp=1596210635108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmongoose%2Fdownload%2Fmongoose-5.9.27.tgz",
"integrity": "sha1-kUy8KkVFIJNPu/LA42bZx9gHazs=",
"version": "5.10.4",
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.4.tgz",
"integrity": "sha1-CVGSYZmCQ95H7XLtKNyMOtv2qRA=",
"requires": {
"bson": "^1.1.4",
"kareem": "2.3.1",
"mongodb": "3.5.10",
"mongodb": "3.6.1",
"mongoose-legacy-pluralize": "1.0.2",
"mpath": "0.7.0",
"mquery": "3.2.2",
@@ -1308,7 +1305,7 @@
},
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz?cache=0&sync_timestamp=1594916082498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsift%2Fdownload%2Fsift-7.0.1.tgz",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz",
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
},
"sliced": {

View File

@@ -13,14 +13,15 @@
"gen-api-ref": "node ../../../node_modules/typedoc/bin/typedoc --mode file --hideGenerator --excludeExternals --ignoreCompilerErrors --out ../../../run/site/public/api-reference/pinus-loader lib/"
},
"dependencies": {
"@typegoose/typegoose": "^7.3.0",
"@typegoose/typegoose": "^7.3.5",
"@types/bluebird": "^3.5.19",
"@types/crc": "^3.4.0",
"@types/mongoose": "^5.7.36",
"@types/node": "8.10.54",
"@types/redis": "^2.8.25",
"bluebird": "^3.5.1",
"crc": "^3.5.0",
"mongoose": "^5.9.27",
"mongoose": "^5.10.4",
"pinus": "^1.4.9",
"pinus-robot": "^1.4.9",
"pinus-robot-plugin": "^1.4.9",
@@ -30,7 +31,6 @@
"ts-node": "^8.2.0"
},
"devDependencies": {
"@types/mongoose": "^5.7.35",
"tslint": "^5.9.1",
"typescript": "^3.9.7"
}

View File

@@ -1,3 +0,0 @@
npm i -D @types/mongoose
npm i -s @typegoose/typegoose
npm i -s mongoose

View File

@@ -2,6 +2,6 @@
cnpm install -d #安装依赖库
npm run build
node generatePm2Config.js #使用pm2来做进程管理生成进程配置文件
rm -rf /game-server/shared
cp -r /game-server/dist/shared /game-server
#rm -rf /game-server/shared
#cp -r /game-server/dist/shared /game-server
pm2-runtime pomeloPm2Start.json #pm2 启动游戏服务器

View File

@@ -1,3 +1,4 @@
npm install
cd ./game-server && npm install -d
echo '============ game-server npm installed ============'
cd ..

85
package-lock.json generated
View File

@@ -1,6 +1,8 @@
{
"requires": true,
"name": "zyz_server",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@typegoose/typegoose": {
"version": "7.3.5",
@@ -12,13 +14,19 @@
"reflect-metadata": "^0.1.13",
"semver": "^7.3.2",
"tslib": "^2.0.0"
},
"dependencies": {
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz",
"integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg="
}
}
},
"@types/bson": {
"version": "4.0.2",
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.2.tgz",
"integrity": "sha1-esy4WUL8ObvbdRXU3kN8BPaYEV8=",
"dev": true,
"requires": {
"@types/node": "*"
}
@@ -27,7 +35,6 @@
"version": "3.5.27",
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.27.tgz?cache=0&sync_timestamp=1599138259359&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.5.27.tgz",
"integrity": "sha1-FYp6Q84l7zWSrIpi5iqzi+v2YfI=",
"dev": true,
"requires": {
"@types/bson": "*",
"@types/node": "*"
@@ -37,22 +44,20 @@
"version": "5.7.36",
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.36.tgz",
"integrity": "sha1-La4oxjBBxq+6ioPqApafRjs/ECE=",
"dev": true,
"requires": {
"@types/mongodb": "*",
"@types/node": "*"
}
},
"@types/node": {
"version": "14.6.4",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.6.4.tgz?cache=0&sync_timestamp=1599568905640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.6.4.tgz",
"integrity": "sha1-oUXMC7FO+cR3c2G3u6+lz446y1o=",
"dev": true
"version": "14.10.0",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.10.0.tgz?cache=0&sync_timestamp=1599757029267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.10.0.tgz",
"integrity": "sha1-FYFd/4LI3DCCf2sShvhlkClFCVo="
},
"bl": {
"version": "2.2.0",
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.0.tgz?cache=0&sync_timestamp=1584503263385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.0.tgz",
"integrity": "sha1-4aV0zfUo5AUwGbuACwQcCsiNpJM=",
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1599194088618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
@@ -114,19 +119,25 @@
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
},
"loglevel": {
"version": "1.6.8",
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz",
"integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE="
"version": "1.7.0",
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz?cache=0&sync_timestamp=1598447642950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.0.tgz",
"integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A="
},
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/memory-pager/download/memory-pager-1.5.0.tgz",
"integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU="
"integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=",
"optional": true
},
"moment": {
"version": "2.27.0",
"resolved": "https://registry.npm.taobao.org/moment/download/moment-2.27.0.tgz?cache=0&sync_timestamp=1592516084857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.27.0.tgz",
"integrity": "sha1-i/9OPiaiNiIN/j423nVrbrqgEF0="
},
"mongodb": {
"version": "3.6.0",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.0.tgz",
"integrity": "sha1-ur1xcuxxfi7T+F4Hmz8aop3ORyQ=",
"version": "3.6.1",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.1.tgz",
"integrity": "sha1-LFzCqBRWuhg+jEMtgOeHMsxy2r0=",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
@@ -137,9 +148,9 @@
}
},
"mongoose": {
"version": "5.10.3",
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.3.tgz",
"integrity": "sha1-7yjNo/EeW/daMJol6YmfhWpaU3A=",
"version": "5.10.4",
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.4.tgz",
"integrity": "sha1-CVGSYZmCQ95H7XLtKNyMOtv2qRA=",
"requires": {
"bson": "^1.1.4",
"kareem": "2.3.1",
@@ -152,21 +163,6 @@
"safe-buffer": "5.2.1",
"sift": "7.0.1",
"sliced": "1.0.1"
},
"dependencies": {
"mongodb": {
"version": "3.6.1",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.1.tgz?cache=0&sync_timestamp=1599050790615&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmongodb%2Fdownload%2Fmongodb-3.6.1.tgz",
"integrity": "sha1-LFzCqBRWuhg+jEMtgOeHMsxy2r0=",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
"denque": "^1.4.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
}
}
},
"mongoose-legacy-pluralize": {
@@ -246,13 +242,6 @@
"requires": {
"resolve-from": "^2.0.0",
"semver": "^5.1.0"
},
"dependencies": {
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
"integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc="
}
}
},
"resolve-from": {
@@ -269,18 +258,19 @@
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/saslprep/download/saslprep-1.0.3.tgz",
"integrity": "sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY=",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz",
"integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg="
"version": "5.7.1",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz",
"integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc="
},
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz?cache=0&sync_timestamp=1594916082498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsift%2Fdownload%2Fsift-7.0.1.tgz",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz",
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
},
"sliced": {
@@ -292,6 +282,7 @@
"version": "3.0.3",
"resolved": "https://registry.npm.taobao.org/sparse-bitfield/download/sparse-bitfield-3.0.3.tgz",
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true,
"requires": {
"memory-pager": "^1.0.2"
}

22
package.json Normal file
View File

@@ -0,0 +1,22 @@
{
"name": "zyz_server",
"version": "1.0.0",
"description": "- 安装 ts 环境 `npm install -g tsc ts-node typescript` - 安装 pinus `npm install -g pinus`",
"main": "index.js",
"dependencies": {
"@typegoose/typegoose": "^7.3.5",
"@types/mongoose": "^5.7.36",
"moment": "^2.27.0",
"mongoose": "^5.10.4"
},
"devDependencies": {},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://gitlab.trgame.cn/zyztech/zyz_server.git"
},
"author": "",
"license": "ISC"
}

View File

@@ -1,5 +1,3 @@
import { COUNTER } from './../consts/consts';
import { CounterModel } from './Counter';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
@@ -47,12 +45,12 @@ export default class Equip extends BaseModel {
}
public static async createEquip(equipInfo: {roleId: string, roleName: string, eid: number, seqId: number, type: number, eName: string}, lean = true) {
const equip = await EquipModel.findOneAndUpdate({ seqId: equipInfo.seqId }, equipInfo, {upsert: true, new: true}).lean();
const equip = await EquipModel.findOneAndUpdate({ seqId: equipInfo.seqId }, equipInfo, {upsert: true, new: true}).lean(lean);
return equip;
}
public static async putOn(hid: number, equipId: string, lean = true) {
const equip = await EquipModel.findOneAndUpdate({ _id: equipId }, {hid}, {new: true});
const equip = await EquipModel.findOneAndUpdate({ _id: equipId }, {hid}, {new: true}).lean(lean);
return equip;
}
}

View File

@@ -1,4 +1,4 @@
import { APP_ID } from '../../game-server/app/consts/consts';
import { APP_ID } from './../consts/consts';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';

View File

@@ -1,5 +1,5 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, arrayProp, Ref, mongoose } from '@typegoose/typegoose';
import { index, getModelForClass, prop, Ref, mongoose } from '@typegoose/typegoose';
import Equip from './Equip';
/**
@@ -57,7 +57,9 @@ export default class Hero extends BaseModel {
public static async addEquip(roleId: string, hid: number, equipId: string, lean = true) {
const hero = await HeroModel.findOneAndUpdate({ roleId, hid }, {$push: {equips: equipId}}, {new: true}).lean(lean);
await Equip.putOn(hero.hid, equipId);
if (hero) {
await Equip.putOn(hero.hid, equipId);
}
return hero;
}

View File

@@ -1,4 +1,3 @@
import { CounterModel } from './Counter';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
import User from './User';
@@ -97,8 +96,12 @@ export default class Role extends BaseModel {
return role;
}
public static async createRole(userInfo: User, serverType: string, serverId: number, roleName: string) {
public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string}, lean = true) {
const user = await User.findUserByUid(uid);
if (!user) return null;
const info = Object.assign(roleInfo, { userInfo: user, serverType: user.serverType, serverId });
const role = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, info, { upsert: true, new: true }).lean(lean);
return role;
}
}

View File

@@ -26,7 +26,7 @@ export default class User extends BaseModel {
telHash: string;
@prop({ required: true })
channelId: string;COUNTER
channelId: string;
@prop({ required: true })
guestId: string;

1
web-server/app/consts Symbolic link
View File

@@ -0,0 +1 @@
../../shared/consts

View File

@@ -1,12 +0,0 @@
// export const TURBO_CORE_URL = 'https://coresrv.tgamebox.cn';
// export const APP_ID = 'AXaXmIHPs9eONvzrBesD8aSKQNXYdALF';
// export const TURBO_PARM_SECRET = 'ipqw05du6ob4x130w89t31yrqd6xs005zzltcmg2zpqnvrjp1s';
// export const ENCRYPT_IV = 'f7182j5f04e377ux';
// export const ENCRYPT_KEY = 'fiqaxijabbantusmprc234fj';
// export const AUTH_SMS_CNT_PER_DAY = 8;
// export const COUNTER = {
// UID: 'uid',
// };

1
web-server/app/db Symbolic link
View File

@@ -0,0 +1 @@
../../shared/db

View File

@@ -1,24 +0,0 @@
import { prop, pre } from '@typegoose/typegoose';
/**
* BaseModel
*/
@pre<BaseModel>('save', function(next) {
if (!this.createdAt || this.isNew) {
this.createdAt = this.updatedAt = new Date();
} else {
this.updatedAt = new Date();
}
next();
})
export default class BaseModel {
_id?: string
@prop()
createdAt: Date
@prop()
updatedAt: Date
}

View File

@@ -1,23 +0,0 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
/**
* 自增 ID
*/
@index({ name: 1 })
export default class Counter extends BaseModel {
@prop({ required: true })
name: string;
@prop({ required: true, default: 1 })
seq: number;
public static async getNewCounter(name: string, lean = true) {
const counter = await CounterModel.findOneAndUpdate({ name }, { $inc: { seq: 1 } }, { new: true, upsert: true }).lean(lean);
return counter?.seq;
}
}
export const CounterModel = getModelForClass(Counter);

View File

@@ -1,42 +0,0 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
@index({ roleId: 1, hid: 1, eid: 1 })
@index({ seqId: 1 })
export default class Equip extends BaseModel {
@prop({ required: true })
roleId: number; // 角色 id
@prop({ required: true })
roleName: string; // 角色名称
@prop({ required: true })
eid: number; // 装备 id
@prop({ required: true })
type: number; // 装备类型
@prop({ required: true })
eName: string; // 装备名称
@prop({ required: true })
seqId: number; // 装备表自增 id
@prop({ required: true })
hid: number; // 装备此装备的武将 id
@prop({ required: true })
lv: number; // 强化等级
randSe: [{ // 强化随机属性
seType: number; // 属性类型
value: number; // 属性数值
}];
@prop({ required: true })
randRange: number; // 物攻策攻数值浮动上下限变化率,浮点数
@prop({ required: true })
initHoleCnt: number; // 初始珠宝孔位个数
@prop({ required: true })
holes: [{
id: number; // 宝石 id待定也可能是 type + lv
lv: number; // 宝石等级
}];
}
export const EquipModel = getModelForClass(Equip);

View File

@@ -1,74 +0,0 @@
import { APP_ID } from './../../../shared/consts/consts';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
class ServerInfo {
@prop({ required: true })
name: string;
@prop({ required: true })
host: string;
@prop({ required: false })
port: number;
@prop({ required: true })
status: number;
@prop({ required: true })
createTime: Date;
@prop({ required: true })
serverType: string;
}
/**
* 游戏字段接口
*/
@index({ id: 1 })
export default class Game extends BaseModel {
@prop({ required: true })
id: number;
@prop({ required: true })
name: string;
@prop({ required: true })
nameEn: string;
@prop({ required: true })
des: string;
@prop({ required: true })
serverList: Array<ServerInfo>;
@prop({ required: true })
iconUrl: string;
@prop({ required: true })
version: string;
@prop({ required: true })
versionCode: number;
public static async getServerListByType(serverType: string) {
let game = await GameModel.findOne().lean();
if (!game) {
const serverInfo: ServerInfo = { name: '常山少年', host: 'pinus_test.trgame.cn', port: 3014, status: 1, createTime: new Date(), serverType: 'official' };
const iconUrl = `https://download.tgamebox.cn/avatar/${APP_ID}/1.png`;
game = await GameModel.findOneAndUpdate(
{},
{ id: 1, name: '赵云传', nameEn: 'zyz', des: '牛逼的战棋', iconUrl, version: '0.0.1', versionCode: 1, $push: { serverList: serverInfo } },
{ upsert: true, new: true },
).lean();
}
console.log(serverType, game);
let serverList: Array<ServerInfo> = game ? game.serverList : [];
serverList = serverList.filter(item => { return item.serverType === serverType; });
console.log(serverType, serverList);
return serverList;
}
}
export const GameModel = getModelForClass(Game);

View File

@@ -1,54 +0,0 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, Ref } from '@typegoose/typegoose';
import Equip from './Equip';
/**
* 英雄表
*/
@index({ roleId: 1, hid: 1 })
export default class Hero extends BaseModel {
@prop({ required: true })
roleId: number; // 角色 id
@prop({ required: true })
roleName: string; // 角色名称
@prop({ required: true })
hid: number; // 武将 id
@prop({ required: true })
hName: string; // 武将名
@prop({ required: true })
seqId: number; // 武将表自增 id
@prop({ required: true })
exp: number; // 经验值
@prop({ required: true })
lv: number; // 武将等级
@prop({ required: true })
ce: number; // 武将战力
@prop({ required: true })
star: number; // 星级
@prop({ required: true })
rank: number; // 阶数
@prop({ required: true })
favour: number; // 好感度
@prop({ required: true })
favourLv: number; // 好感等级
@prop({ required: true })
conections: [{ // 羁绊
id: number; // 羁绊编号
name: string; // 羁绊名称
valid: boolean; // 是否开启
}];
@prop({ required: true })
skins: [{ // 皮肤
id: number; // id
enable: boolean; // 是否装备
}];
@prop({ ref: Equip })
equips: Ref<Equip>[]; // 武将装备引用数组
}
export const HeroModel = getModelForClass(Hero);

View File

@@ -1,108 +0,0 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
import User from './User';
/**
* 角色字段接口
*/
@index({ roleId: 1 })
// @index({ userInfo.uid: 1, serverId: 1 })
export default class Role extends BaseModel {
@prop({ required: true })
userInfo: User;
@prop({ required: true })
seqId: number;
@prop({ required: true })
roleId: string; // 角色 id生成编码
@prop({ required: true })
roleName: string; // 角色名
@prop({ required: true })
serverType: string; // 服务器类型
@prop({ required: true })
serverId: number; // 区服 id
@prop({ required: true, default: false })
blocked: boolean; // 是否屏蔽
@prop({ required: true })
code: string; // 邀请码
@prop({ required: true, default: 0 })
exp: number; // 经验值
@prop({ required: true, default: 1 })
lv: number; // 主公等级
@prop({ required: true, default: 0 })
ce: number; // 总战力
@prop({ required: true, default: 100 })
tili: number; // 体力值
@prop({ required: true, default: 0 })
vLv: number; // VIP 等级
@prop({ required: true, default: 100 })
gold: number; // 总金币
@prop({ required: true, default: 0 })
paidGold: number; // 支付所得金币
@prop({ required: true, default: 100 })
giftGold: number; // 赠送所得金币
@prop({ required: true, default: 0 })
totalPay: number; // 总支付金额
@prop({ required: true, default: 0 })
totalBuy: number; // 总金币购买
@prop({ required: true, default: 0 })
totalCost: number; // 金币总花费
@prop({ required: true, default: [] })
payRecord: [{ // 支付记录
id: string; // 购买项 product id
cnt: number; // 购买次数
}];
@prop({ required: true, default: [] })
consumeGoods: [{ // 消耗品
id: number; // id
cnt: number; // 数量
}];
@prop({ required: true, default: [] })
souls: [{ // 将魂
id: number; // 武将 id
cnt: number; // 数量
}];
@prop({ required: true, default: [] })
pieces: [{ // 装备碎片
id: number; // 装备 id
cnt: number; // 数量
}];
@prop({ required: true, default: [] })
jewels: [{ // 珠宝
id: number; // 待定,也可能是 type + lv
cnt: number; // 数量
}];
@prop({ required: true, default: [] })
warStar: [{ // 关卡星级
id: number; // 关卡 id
star: number; // 星级
}];
@prop({ required: true, default: 1 })
loginCnt: number; // 登录次数
@prop({ required: true })
createTime: Date; // 创建时间
@prop({ required: true })
loginTime: Date; // 更新 / 登录时间
public static async findByUid(uid: number, serverId: number, lean = true) {
const role = await RoleModel.findOne({ 'userInfo.uid': uid, serverId }).lean(lean);
return role;
}
public static async createRole(uid: number, serverId: number, roleInfo: {roleId: string; roleName: string; seqId: number; code: string}, lean = true) {
const user = await User.findUserByUid(uid);
if (!user) return null;
const info = Object.assign(roleInfo, { userInfo: user, serverType: user.serverType, serverId });
const role = await RoleModel.findOneAndUpdate({ 'userInfo.uid': uid, serverId }, info, { upsert: true, new: true }).lean(lean);
return role;
}
}
export const RoleModel = getModelForClass(Role);

View File

@@ -1,64 +0,0 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
const moment = require('moment');
/**
* 短信字段接口
*/
@index({ tel: 1 })
export default class Sms extends BaseModel {
@prop({ required: true })
tel: string;
@prop({ required: true })
telHash: string;
@prop({ required: true })
code: string;
@prop({ required: true })
used: boolean;
@prop({ required: true })
updateTime: Date;
@prop({ required: true })
countToday: number;
public static async findByTel(tel: string, lean = true) {
const sms = await smsModel.findOne({ tel }).lean(lean);
return sms;
}
public static async updateByTel(tel: string, code: string, used: boolean, updateTime: Date, countToday: number, lean = true) {
await smsModel.findOneAndUpdate({ tel }, { code, used, updateTime, countToday }, { upsert: true }).lean(lean);
}
public static async validateSms(tel: string, code: string, lean = true) {
const record = await smsModel.findOneAndUpdate({ tel, code, used: false }, { used: true }).lean(lean);
return !!record;
}
public async timeLimit(interval: number) {
if (Date.now() > this.updateTime.getTime() + interval) {
return false;
}
return true;
}
public async cntLimit(cnt: number) {
console.log('hasSendToday:', this.hasSendToday());
if (await this.hasSendToday() && this.countToday >= cnt) {
return true;
}
return false;
}
public async hasSendToday() {
console.log(moment(this.updateTime).format('YYYY-MM-DD'), moment(Date.now()).format('YYYY-MM-DD'));
return moment(this.updateTime).format('YYYY-MM-DD') === moment(Date.now()).format('YYYY-MM-DD');
}
}
export const smsModel = getModelForClass(Sms);

View File

@@ -1,91 +0,0 @@
import { COUNTER } from './../../../shared/consts/consts';
import { CounterModel } from './Counter';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop } from '@typegoose/typegoose';
/**
* 用户字段接口
*/
@index({ tel: 1 })
@index({ uid: 1 })
export default class User extends BaseModel {
@prop({ required: true })
uid: number;
@prop({ required: true })
username: string;
@prop({ required: true })
token: string;
@prop({ required: true })
tel: string;
@prop({ required: true })
telHash: string;
@prop({ required: true })
channelId: string;
@prop({ required: true })
guestId: string;
// 最后登录 IP
@prop({ required: true })
ip: string;
@prop({ required: true })
lastLoginTime: Date;
@prop({ required: true })
createTime: Date;
platform: string;
@prop({ required: true })
platforms: [{
platform: string; // 平台ios, android, web, pc
unionId: string; // 用户标识
}];
@prop({ required: true })
pkgName: string;
// 服务器类型official, channel, ios, oversea
@prop({ required: true })
serverType: string;
// 账号是否被屏蔽
@prop({ required: true })
blocked: boolean;
public static async updateToken(tel: string, token: string, platform: string, pkgName: string, serverType: string, lean = true) {
let user = await UserModel.findOne({ tel }).lean();
const curTime: Date = new Date();
let update = {};
if (!user) {
const uid = await CounterModel.getNewCounter(COUNTER.UID);
update = Object.assign(update, { platform, pkgName, serverType, createTime: curTime, uid, username: `用户${uid}` });
}
update = Object.assign(update, { token, lastLoginTime: curTime });
user = await UserModel.findOneAndUpdate({ tel }, update, { upsert: true, new: true }).lean(lean);
return user;
}
public static async findUserByToken(token: string, lean = true) {
const user = await UserModel.findOne({ token }).select('uid token').lean(lean);
return user;
}
public static async findUserByTel(tel: string, lean = true) {
const user = await UserModel.findOne({ tel }).select('uid tel').lean(lean);
return user;
}
public static async findUserByUid(uid: number, lean = true) {
const user = await UserModel.findOne({ uid }).select('uid tel').lean(lean);
return user;
}
}
export const UserModel = getModelForClass(User);

View File

@@ -48,7 +48,6 @@ export default class Auth extends Service {
if (telVerify.status !== 0) {
return telVerify;
}
const sms = await smsModel.findByTel(tel, false);
if (sms) {
if (await sms.timeLimit(10000)) {

View File

@@ -21,7 +21,7 @@ export default (appInfo: EggAppInfo) => {
config.mongoose = {
url: 'mongodb://root:zyz_2020@dds-8vbdb47c6fb58a541.mongodb.zhangbei.rds.aliyuncs.com:3717,dds-8vbdb47c6fb58a542.mongodb.zhangbei.rds.aliyuncs.com:3717/admin?replicaSet=mgset-500808098', // 内网
options: {},
options: { useNewUrlParser: true, useUnifiedTopology: true },
};
config.alinode = {

View File

@@ -254,30 +254,6 @@
"resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz",
"integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs="
},
"@typegoose/typegoose": {
"version": "7.3.4",
"resolved": "https://registry.npm.taobao.org/@typegoose/typegoose/download/@typegoose/typegoose-7.3.4.tgz",
"integrity": "sha1-HO0W0Z+cSTirrsSwNRwL+1YtQSE=",
"requires": {
"lodash": "^4.17.19",
"loglevel": "^1.6.8",
"reflect-metadata": "^0.1.13",
"semver": "^7.3.2",
"tslib": "^2.0.0"
},
"dependencies": {
"semver": {
"version": "7.3.2",
"resolved": "https://registry.npm.taobao.org/semver/download/semver-7.3.2.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-7.3.2.tgz",
"integrity": "sha1-YElisFK4HtB4aq6EOJ/7pw/9OTg="
},
"tslib": {
"version": "2.0.1",
"resolved": "https://registry.npm.taobao.org/tslib/download/tslib-2.0.1.tgz?cache=0&sync_timestamp=1596751904317&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-2.0.1.tgz",
"integrity": "sha1-QQ6w0RPltjVkkO7HSWA3JbAhtD4="
}
}
},
"@types/accepts": {
"version": "1.3.5",
"resolved": "https://registry.npm.taobao.org/@types/accepts/download/@types/accepts-1.3.5.tgz",
@@ -309,15 +285,6 @@
}
}
},
"@types/bson": {
"version": "4.0.2",
"resolved": "https://registry.npm.taobao.org/@types/bson/download/@types/bson-4.0.2.tgz",
"integrity": "sha1-esy4WUL8ObvbdRXU3kN8BPaYEV8=",
"dev": true,
"requires": {
"@types/node": "*"
}
},
"@types/color-name": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz?cache=0&sync_timestamp=1596837707987&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fcolor-name%2Fdownload%2F%40types%2Fcolor-name-1.1.1.tgz",
@@ -539,26 +506,6 @@
"integrity": "sha1-NSOxJqCwSUguHDwRh3Rg92Yi/6s=",
"dev": true
},
"@types/mongodb": {
"version": "3.5.26",
"resolved": "https://registry.npm.taobao.org/@types/mongodb/download/@types/mongodb-3.5.26.tgz?cache=0&sync_timestamp=1598396385471&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fmongodb%2Fdownload%2F%40types%2Fmongodb-3.5.26.tgz",
"integrity": "sha1-qhAxWSW6EM3Hkx7ygMD/b1T9N/M=",
"dev": true,
"requires": {
"@types/bson": "*",
"@types/node": "*"
}
},
"@types/mongoose": {
"version": "5.7.36",
"resolved": "https://registry.npm.taobao.org/@types/mongoose/download/@types/mongoose-5.7.36.tgz",
"integrity": "sha1-La4oxjBBxq+6ioPqApafRjs/ECE=",
"dev": true,
"requires": {
"@types/mongodb": "*",
"@types/node": "*"
}
},
"@types/node": {
"version": "7.10.11",
"resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-7.10.11.tgz?cache=0&sync_timestamp=1596839227404&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-7.10.11.tgz",
@@ -2333,54 +2280,11 @@
"file-uri-to-path": "1.0.0"
}
},
"bl": {
"version": "2.2.1",
"resolved": "https://registry.npm.taobao.org/bl/download/bl-2.2.1.tgz?cache=0&sync_timestamp=1598428657095&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbl%2Fdownload%2Fbl-2.2.1.tgz",
"integrity": "sha1-jBGntzBlXF1WiYzchxIk9A/ZAdU=",
"requires": {
"readable-stream": "^2.3.5",
"safe-buffer": "^5.1.1"
},
"dependencies": {
"isarray": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
"readable-stream": {
"version": "2.3.7",
"resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz",
"integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
"process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
"string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
"string_decoder": {
"version": "1.1.1",
"resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz",
"integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=",
"requires": {
"safe-buffer": "~5.1.0"
}
}
}
},
"black-hole-stream": {
"version": "0.0.1",
"resolved": "https://registry.npm.taobao.org/black-hole-stream/download/black-hole-stream-0.0.1.tgz",
"integrity": "sha1-M7ega58edFPWBBuCl0SB0hUq6kI="
},
"bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.5.1.tgz",
"integrity": "sha1-2VUfnemPH82h5oPRfukaBgLuLrk="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz",
@@ -2423,11 +2327,6 @@
"electron-to-chromium": "^1.3.47"
}
},
"bson": {
"version": "1.1.5",
"resolved": "https://registry.npm.taobao.org/bson/download/bson-1.1.5.tgz?cache=0&sync_timestamp=1597069108497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbson%2Fdownload%2Fbson-1.1.5.tgz",
"integrity": "sha1-Kqrpj832dQwISLDLod3sPHMGCjQ="
},
"buffer": {
"version": "5.6.0",
"resolved": "https://registry.npm.taobao.org/buffer/download/buffer-5.6.0.tgz",
@@ -3141,11 +3040,6 @@
"resolved": "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"denque": {
"version": "1.4.1",
"resolved": "https://registry.npm.taobao.org/denque/download/denque-1.4.1.tgz",
"integrity": "sha1-Z0T/dkHBSMP4ppwwflEjXB9KN88="
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz",
@@ -6294,11 +6188,6 @@
"object.assign": "^4.1.0"
}
},
"kareem": {
"version": "2.3.1",
"resolved": "https://registry.npm.taobao.org/kareem/download/kareem-2.3.1.tgz",
"integrity": "sha1-3vEtnJQQF/q/sA+HOvlenJnhvoc="
},
"keygrip": {
"version": "1.1.0",
"resolved": "https://registry.npm.taobao.org/keygrip/download/keygrip-1.1.0.tgz",
@@ -6551,7 +6440,8 @@
"lodash": {
"version": "4.17.20",
"resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.20.tgz?cache=0&sync_timestamp=1597336097104&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.20.tgz",
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI="
"integrity": "sha1-tEqbYpe8tpjxxRo1RaKzs2jVnFI=",
"dev": true
},
"log-symbols": {
"version": "2.2.0",
@@ -6562,11 +6452,6 @@
"chalk": "^2.0.1"
}
},
"loglevel": {
"version": "1.7.0",
"resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.7.0.tgz?cache=0&sync_timestamp=1598447642950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.7.0.tgz",
"integrity": "sha1-coFmhVp0DVnTjbAc9G8ELKoEG7A="
},
"long": {
"version": "4.0.0",
"resolved": "https://registry.npm.taobao.org/long/download/long-4.0.0.tgz",
@@ -6657,12 +6542,6 @@
"p-is-promise": "^2.0.0"
}
},
"memory-pager": {
"version": "1.5.0",
"resolved": "https://registry.npm.taobao.org/memory-pager/download/memory-pager-1.5.0.tgz",
"integrity": "sha1-2HUWVdItOEaCdByXLyw9bfo+ZrU=",
"optional": true
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz",
@@ -6815,81 +6694,6 @@
"moment": ">= 2.9.0"
}
},
"mongodb": {
"version": "3.6.0",
"resolved": "https://registry.npm.taobao.org/mongodb/download/mongodb-3.6.0.tgz",
"integrity": "sha1-ur1xcuxxfi7T+F4Hmz8aop3ORyQ=",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.4",
"denque": "^1.4.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
},
"mongoose": {
"version": "5.10.1",
"resolved": "https://registry.npm.taobao.org/mongoose/download/mongoose-5.10.1.tgz",
"integrity": "sha1-zdCD1y4ZpcT/E0Fx19Gpl2vwH+k=",
"requires": {
"bson": "^1.1.4",
"kareem": "2.3.1",
"mongodb": "3.6.0",
"mongoose-legacy-pluralize": "1.0.2",
"mpath": "0.7.0",
"mquery": "3.2.2",
"ms": "2.1.2",
"regexp-clone": "1.0.0",
"safe-buffer": "5.2.1",
"sift": "7.0.1",
"sliced": "1.0.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.2.1",
"resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz?cache=0&sync_timestamp=1589129010497&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafe-buffer%2Fdownload%2Fsafe-buffer-5.2.1.tgz",
"integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY="
}
}
},
"mongoose-legacy-pluralize": {
"version": "1.0.2",
"resolved": "https://registry.npm.taobao.org/mongoose-legacy-pluralize/download/mongoose-legacy-pluralize-1.0.2.tgz",
"integrity": "sha1-O6n5H6UHtRhtOZ+0CFS/8Y+1Y+Q="
},
"mpath": {
"version": "0.7.0",
"resolved": "https://registry.npm.taobao.org/mpath/download/mpath-0.7.0.tgz",
"integrity": "sha1-IOgQLidrcXCdbgfp+NTQ9kGvv7g="
},
"mquery": {
"version": "3.2.2",
"resolved": "https://registry.npm.taobao.org/mquery/download/mquery-3.2.2.tgz",
"integrity": "sha1-4Tg6OVGFLOI+N/YZqbNQ8fs2ZOc=",
"requires": {
"bluebird": "3.5.1",
"debug": "3.1.0",
"regexp-clone": "^1.0.0",
"safe-buffer": "5.1.2",
"sliced": "1.0.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz",
"integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz?cache=0&sync_timestamp=1575472461218&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"ms": {
"version": "2.1.2",
"resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz?cache=0&sync_timestamp=1575472461218&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fms%2Fdownload%2Fms-2.1.2.tgz",
@@ -8643,8 +8447,7 @@
"version": "2.2.2",
"resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz",
"integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=",
"dev": true,
"optional": true
"dev": true
},
"pify": {
"version": "3.0.0",
@@ -9161,11 +8964,6 @@
}
}
},
"regexp-clone": {
"version": "1.0.0",
"resolved": "https://registry.npm.taobao.org/regexp-clone/download/regexp-clone-1.0.0.tgz",
"integrity": "sha1-Ii25Z2IydwViYLmSYmNUoEzpv2M="
},
"regexp.prototype.flags": {
"version": "1.3.0",
"resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz",
@@ -9251,22 +9049,6 @@
"resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz",
"integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
},
"require_optional": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/require_optional/download/require_optional-1.0.1.tgz",
"integrity": "sha1-TPNaQkf2TKPfjC7yCMxJSxyo/C4=",
"requires": {
"resolve-from": "^2.0.0",
"semver": "^5.1.0"
},
"dependencies": {
"resolve-from": {
"version": "2.0.0",
"resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-2.0.0.tgz",
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
}
}
},
"resolve": {
"version": "1.17.0",
"resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz",
@@ -9404,15 +9186,6 @@
"resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz",
"integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo="
},
"saslprep": {
"version": "1.0.3",
"resolved": "https://registry.npm.taobao.org/saslprep/download/saslprep-1.0.3.tgz",
"integrity": "sha1-TAL5RrVs9UKX40e6EJPnrKxM8iY=",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
}
},
"scmp": {
"version": "2.1.0",
"resolved": "https://registry.npm.taobao.org/scmp/download/scmp-2.1.0.tgz",
@@ -9522,11 +9295,6 @@
"object-inspect": "^1.7.0"
}
},
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npm.taobao.org/sift/download/sift-7.0.1.tgz?cache=0&sync_timestamp=1597975540611&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsift%2Fdownload%2Fsift-7.0.1.tgz",
"integrity": "sha1-R9YsULFZ0xbxNy+LU/nBDNIaSwg="
},
"signal-exit": {
"version": "3.0.3",
"resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz?cache=0&sync_timestamp=1585253373618&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsignal-exit%2Fdownload%2Fsignal-exit-3.0.3.tgz",
@@ -9548,11 +9316,6 @@
"is-fullwidth-code-point": "^2.0.0"
}
},
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npm.taobao.org/sliced/download/sliced-1.0.1.tgz",
"integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
},
"smart-buffer": {
"version": "4.1.0",
"resolved": "https://registry.npm.taobao.org/smart-buffer/download/smart-buffer-4.1.0.tgz",
@@ -9734,15 +9497,6 @@
"resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz",
"integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM="
},
"sparse-bitfield": {
"version": "3.0.3",
"resolved": "https://registry.npm.taobao.org/sparse-bitfield/download/sparse-bitfield-3.0.3.tgz",
"integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
"optional": true,
"requires": {
"memory-pager": "^1.0.2"
}
},
"spdx-correct": {
"version": "3.1.1",
"resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz",

View File

@@ -22,19 +22,16 @@
"clean": "ets clean"
},
"dependencies": {
"@typegoose/typegoose": "^7.3.4",
"csprng": "^0.1.2",
"egg": "^2.6.1",
"egg-alinode": "^2.0.1",
"egg-cors": "^2.2.3",
"egg-scripts": "^2.6.0",
"mongoose": "^5.10.1",
"reflect-metadata": "^0.1.13",
"underscore": "^1.10.2"
},
"devDependencies": {
"@types/mocha": "^2.2.40",
"@types/mongoose": "^5.7.36",
"@types/node": "^7.0.12",
"@types/supertest": "^2.0.0",
"autod": "^3.0.1",