add mysql and DAO
This commit is contained in:
@@ -52,6 +52,43 @@ yarn test
|
||||
└─controller
|
||||
|
||||
```
|
||||
### git提交规范规范
|
||||
```
|
||||
git commit 规范
|
||||
采用 Conventional Commits规范,请细看 Conventional Commits。
|
||||
|
||||
<type>[optional scope]: <description>
|
||||
type 值如下:
|
||||
feat:新功能(feature)
|
||||
fix:修补 bug
|
||||
docs:文档相关(documentation)
|
||||
style: 格式(不影响代码运行的变动,空格,注释等)
|
||||
refactor:重构(即不是新增功能,也不是修改 bug 的代码变动,代码优化)
|
||||
perf: 提升产品用户体验的改动
|
||||
test:添加缺失测试、更正或者删除现有测试,test 相关代码改动都用这个
|
||||
chore:非 src 或者 test代码变动,如辅助工具、配置文件等变动。
|
||||
build:影响构建系统或外部依赖项的更改(示例范围:gulp,broccoli, npm)
|
||||
ci:对 CI 配置文件和脚本的更改,一般我们都用不上,开源项目用得上(示例范围:Travis,Circle,BrowserStac k,SauceLabs)
|
||||
revert:回滚提交的版本
|
||||
```
|
||||
详细文档查看:[git 仓库管理规范] [git-rules]
|
||||
|
||||
### 开发基本规范
|
||||
- 能不用any,绝对不使用any
|
||||
|
||||
- interface维护在interface目录下
|
||||
|
||||
- 代码注释
|
||||
- 每个方法,类必须有注释
|
||||
- 方法、类型注释必须描述清楚方法名称,参数,返回值等
|
||||
- 关键逻辑行,必须注释
|
||||
- 注释从读者的角度
|
||||
|
||||
- 命名
|
||||
- 文件名使用小驼峰, 如:baseService
|
||||
- 类名使用大驼峰,如:BaseService
|
||||
- 接口名使用大驼峰并以I开头,如:ILog
|
||||
- 方法名字尽量以动词开头,如:getSomething,getUserInfo
|
||||
|
||||
[midway]: https://midwayjs.org
|
||||
[git-rules]: https://confluence.sui.work/pages/viewpage.action?pageId=51120607
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
"@types/socket.io": "^2.1.4",
|
||||
"egg-cors": "^2.2.3",
|
||||
"egg-jwt": "^3.1.7",
|
||||
"egg-mysql": "^3.0.0",
|
||||
"egg-redis": "^2.4.0",
|
||||
"egg-scripts": "^2.10.0",
|
||||
"egg-socket.io": "^4.1.6",
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import { Context, inject, controller, post, provide } from 'midway';
|
||||
import BaseController from '../../lib/baseController';
|
||||
import { IRoomService } from '../../interface/IRoom';
|
||||
|
||||
@provide()
|
||||
@controller('/node/game/room')
|
||||
export class RoomController extends BaseController {
|
||||
|
||||
@inject()
|
||||
ctx: Context;
|
||||
|
||||
@inject('RoomService')
|
||||
roomService: IRoomService;
|
||||
/**
|
||||
* 处理ocr数据转发
|
||||
*/
|
||||
@post('/')
|
||||
async index() {
|
||||
try {
|
||||
const result = await this.roomService.add();
|
||||
if(result.affectedRows === 1) {
|
||||
this.success({ username: 'cai'});
|
||||
} else {
|
||||
this.fail('create room error');
|
||||
}
|
||||
} catch (e) {
|
||||
this.fail('create room error');
|
||||
console.log(e)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,9 +13,7 @@ class NspController extends Controller {
|
||||
const rooms = [room];
|
||||
try {
|
||||
const { payload } = message;
|
||||
console.log('rooms', rooms)
|
||||
nsp.adapter.clients(rooms, (err: any, clients: any) => {
|
||||
console.log('clients-------exchange', clients);
|
||||
// 广播信息
|
||||
nsp.to(room).emit('online', {
|
||||
clients,
|
||||
|
||||
@@ -95,6 +95,25 @@ export default (appInfo: EggAppInfo) => {
|
||||
db: 0,
|
||||
},
|
||||
};
|
||||
config.mysql = {
|
||||
// 单数据库信息配置
|
||||
client: {
|
||||
// host
|
||||
host: '127.0.0.1',
|
||||
// 端口号
|
||||
port: '3306',
|
||||
// 用户名
|
||||
user: 'root',
|
||||
// 密码
|
||||
password: '123456',
|
||||
// 数据库名
|
||||
database: 'poker',
|
||||
},
|
||||
// 是否加载到 app 上,默认开启
|
||||
app: true,
|
||||
// 是否加载到 agent 上,默认关闭
|
||||
agent: false,
|
||||
};
|
||||
|
||||
return {
|
||||
...bizConfig,
|
||||
|
||||
@@ -17,6 +17,10 @@ const plugin: EggPlugin = {
|
||||
jwt:{
|
||||
enable: true,
|
||||
package: "egg-jwt",
|
||||
},
|
||||
mysql:{
|
||||
enable: true,
|
||||
package: 'egg-mysql',
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
export interface ICommandRecord {
|
||||
roomId: string;
|
||||
gameId: string;
|
||||
userId: string;
|
||||
type: string;
|
||||
command: string;
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
export interface IGame {
|
||||
roomId: string;
|
||||
pot: string;
|
||||
status: number;
|
||||
commonCard: string;
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
export interface IGameRecord {
|
||||
roomId:string;
|
||||
userId:string;
|
||||
commonCard: string;
|
||||
handCards: string;
|
||||
status: string;
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
export interface IRoom {
|
||||
roomNumber: string;
|
||||
}
|
||||
|
||||
export interface IRoomService {
|
||||
findById(uid: string): IRoom;
|
||||
add(): Promise<any>;
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
export interface IUser {
|
||||
nickName: string;
|
||||
account: string;
|
||||
password: string;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import BaseService from '../lib/baseService';
|
||||
import {Context, inject, provide, plugin} from "midway";
|
||||
|
||||
@provide('RoomService')
|
||||
export class RoomService extends BaseService {
|
||||
|
||||
@inject()
|
||||
ctx: Context;
|
||||
|
||||
@plugin()
|
||||
mysql: any;
|
||||
|
||||
async findById(uid: string){
|
||||
const room = await this.mysql.get('room', { id: uid});
|
||||
return { room }
|
||||
}
|
||||
|
||||
async add() {
|
||||
const number = Math.floor(Math.random() * (1000000 - 100000)) + 100000;
|
||||
return await this.mysql.insert('room', { roomNumber: number });
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import {Context, inject, provide, plugin} from "midway";
|
||||
import { IUser } from '../interface/IUser';
|
||||
|
||||
@provide('UserService')
|
||||
export class UserService {
|
||||
|
||||
@inject()
|
||||
ctx: Context;
|
||||
|
||||
@plugin()
|
||||
mysql: any;
|
||||
|
||||
async findById(uid: string){
|
||||
const user = await this.mysql.get('user', { id: uid});
|
||||
return { user }
|
||||
}
|
||||
|
||||
async findByAccount(account: string){
|
||||
const user = await this.mysql.get('user', { account: account});
|
||||
return { user }
|
||||
}
|
||||
|
||||
async addUser(data: IUser) {
|
||||
const result = await this.mysql.insert('user', data)
|
||||
return result
|
||||
}
|
||||
|
||||
}
|
||||
@@ -614,6 +614,16 @@ agentkeepalive@^4.0.2:
|
||||
depd "^1.1.2"
|
||||
humanize-ms "^1.2.1"
|
||||
|
||||
ali-rds@^3.0.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.npm.taobao.org/ali-rds/download/ali-rds-3.3.0.tgz#001ba1f4edf4555805f57ca272fe5c047aef992b"
|
||||
integrity sha1-ABuh9O30VVgF9Xyicv5cBHrvmSs=
|
||||
dependencies:
|
||||
co-wrap-all "^1.0.0"
|
||||
debug "^2.2.0"
|
||||
mysql "^2.13.0"
|
||||
pify "^2.3.0"
|
||||
|
||||
amdefine@>=0.0.4:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5"
|
||||
@@ -1646,6 +1656,11 @@ better-assert@~1.0.0:
|
||||
dependencies:
|
||||
callsite "1.0.0"
|
||||
|
||||
bignumber.js@9.0.0:
|
||||
version "9.0.0"
|
||||
resolved "https://registry.npm.taobao.org/bignumber.js/download/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075"
|
||||
integrity sha1-gFiA+Eoym16sbny2+CdLbYK98HU=
|
||||
|
||||
binary-extensions@^1.0.0:
|
||||
version "1.13.1"
|
||||
resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
|
||||
@@ -2049,6 +2064,13 @@ co-mocha@^1.2.2:
|
||||
co "^4.0.0"
|
||||
is-generator "^1.0.1"
|
||||
|
||||
co-wrap-all@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.npm.taobao.org/co-wrap-all/download/co-wrap-all-1.0.0.tgz#370ae3e8333510a53f6b2f7fdfbe4568a11b7ecf"
|
||||
integrity sha1-Nwrj6DM1EKU/ay9/375FaKEbfs8=
|
||||
dependencies:
|
||||
co "^4.0.0"
|
||||
|
||||
co@^4.0.0, co@^4.6.0:
|
||||
version "4.6.0"
|
||||
resolved "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184"
|
||||
@@ -2780,6 +2802,13 @@ egg-multipart@^2.4.0:
|
||||
stream-wormhole "^1.1.0"
|
||||
uuid "^3.3.2"
|
||||
|
||||
egg-mysql@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.npm.taobao.org/egg-mysql/download/egg-mysql-3.0.0.tgz#67d0a559cd909fab52682dc687d56a6595ccd699"
|
||||
integrity sha1-Z9ClWc2Qn6tSaC3Gh9VqZZXM1pk=
|
||||
dependencies:
|
||||
ali-rds "^3.0.0"
|
||||
|
||||
egg-onerror@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npm.taobao.org/egg-onerror/download/egg-onerror-2.1.0.tgz#e05dc08e39aec16518b64053b8bc874110aba9f7"
|
||||
@@ -5395,6 +5424,16 @@ mustache@^2.3.0:
|
||||
resolved "https://registry.npm.taobao.org/mustache/download/mustache-2.3.2.tgz?cache=0&sync_timestamp=1575717099164&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmustache%2Fdownload%2Fmustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
|
||||
integrity sha1-ptTZw/kdEzWauImoEpVPkjCj0MU=
|
||||
|
||||
mysql@^2.13.0:
|
||||
version "2.18.1"
|
||||
resolved "https://registry.npm.taobao.org/mysql/download/mysql-2.18.1.tgz#2254143855c5a8c73825e4522baf2ea021766717"
|
||||
integrity sha1-IlQUOFXFqMc4JeRSK68uoCF2Zxc=
|
||||
dependencies:
|
||||
bignumber.js "9.0.0"
|
||||
readable-stream "2.3.7"
|
||||
safe-buffer "5.1.2"
|
||||
sqlstring "2.3.1"
|
||||
|
||||
mz-modules@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.npm.taobao.org/mz-modules/download/mz-modules-2.1.0.tgz#7f529877afd0d42f409a7463b96986d61cfbcf96"
|
||||
@@ -5935,7 +5974,7 @@ picomatch@^2.0.5:
|
||||
resolved "https://registry.npm.taobao.org/picomatch/download/picomatch-2.1.1.tgz#ecdfbea7704adb5fe6fb47f9866c4c0e15e905c5"
|
||||
integrity sha1-7N++p3BK21/m+0f5hmxMDhXpBcU=
|
||||
|
||||
pify@^2.0.0:
|
||||
pify@^2.0.0, pify@^2.3.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||
integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
|
||||
@@ -6243,6 +6282,19 @@ readable-stream@2, readable-stream@^2.0.0, readable-stream@^2.0.2, readable-stre
|
||||
string_decoder "~1.1.1"
|
||||
util-deprecate "~1.0.1"
|
||||
|
||||
readable-stream@2.3.7:
|
||||
version "2.3.7"
|
||||
resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz?cache=0&sync_timestamp=1581624324274&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freadable-stream%2Fdownload%2Freadable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
|
||||
integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=
|
||||
dependencies:
|
||||
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"
|
||||
|
||||
readdirp@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1575629866543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
|
||||
@@ -6887,6 +6939,11 @@ sprintf-js@~1.0.2:
|
||||
resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
|
||||
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
|
||||
|
||||
sqlstring@2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.npm.taobao.org/sqlstring/download/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40"
|
||||
integrity sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=
|
||||
|
||||
stack-trace@^0.0.10:
|
||||
version "0.0.10"
|
||||
resolved "https://registry.npm.taobao.org/stack-trace/download/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
|
||||
|
||||
Reference in New Issue
Block a user