add mysql and DAO

This commit is contained in:
wzdwc
2020-03-31 13:28:01 +08:00
parent f51b332bb3
commit 92cd605430
16 changed files with 234 additions and 3 deletions
+37
View File
@@ -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 配置文件和脚本的更改,一般我们都用不上,开源项目用得上(示例范围:TravisCircleBrowserStac kSauceLabs
revert:回滚提交的版本
```
详细文档查看:[git 仓库管理规范] [git-rules]
### 开发基本规范
- 能不用any,绝对不使用any
- interface维护在interface目录下
- 代码注释
- 每个方法,类必须有注释
- 方法、类型注释必须描述清楚方法名称,参数,返回值等
- 关键逻辑行,必须注释
- 注释从读者的角度
- 命名
- 文件名使用小驼峰, 如:baseService
- 类名使用大驼峰,如:BaseService
- 接口名使用大驼峰并以I开头,如:ILog
- 方法名字尽量以动词开头,如:getSomethinggetUserInfo
[midway]: https://midwayjs.org
[git-rules]: https://confluence.sui.work/pages/viewpage.action?pageId=51120607
+1
View File
@@ -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",
+31
View File
@@ -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)
}
}
}
View File
View File
-2
View File
@@ -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,
+19
View File
@@ -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,
+4
View File
@@ -17,6 +17,10 @@ const plugin: EggPlugin = {
jwt:{
enable: true,
package: "egg-jwt",
},
mysql:{
enable: true,
package: 'egg-mysql',
}
};
+7
View File
@@ -0,0 +1,7 @@
export interface ICommandRecord {
roomId: string;
gameId: string;
userId: string;
type: string;
command: string;
}
+6
View File
@@ -0,0 +1,6 @@
export interface IGame {
roomId: string;
pot: string;
status: number;
commonCard: string;
}
+7
View File
@@ -0,0 +1,7 @@
export interface IGameRecord {
roomId:string;
userId:string;
commonCard: string;
handCards: string;
status: string;
}
+8
View File
@@ -0,0 +1,8 @@
export interface IRoom {
roomNumber: string;
}
export interface IRoomService {
findById(uid: string): IRoom;
add(): Promise<any>;
}
+5
View File
@@ -0,0 +1,5 @@
export interface IUser {
nickName: string;
account: string;
password: string;
}
+23
View File
@@ -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 });
}
}
+28
View File
@@ -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
}
}
+58 -1
View File
@@ -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"