Commit 5d6bbaa8 by jscat

Initial commit

parents
post: 930-test-sh.oss-cn-shanghai.aliyuncs.com
post: 930-test-sh.oss-cn-shanghai.aliyuncs.com
body
form-data
key, upload/${filename}
OSSAccessKeyId, LTAIGOyfpv8ksVvv
policy, eyJleHBpcmF0aW9uIjoiMjExNS0wMS0yN1QxMDo1NjoxOVoiLCJjb25kaXRpb25zIjpbWyJjb250ZW50LWxlbmd0aC1yYW5nZSIsIDAsIDE1MDQ4NTc2XV19
Signature, LWK8TKfklIwjDKK4A5TDQqu3grU=
success_action_redirect, http://oss.aliyun.com
success_action_status, 201
file,
AccessKeyID:
LTAIJdgxp6ejo7Ko
AccessKeySecret:
Kqnf17a0cGTsxaildudNAavLOWuSwj
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
单宁:很涩,有点抓舌头的收缩感就是单宁 Tanin
单宁:很涩,有点抓舌头的收缩感就是单宁 Tanin
仙粉黛红葡萄酒的酒精度比其他红葡萄酒更高——通常是16%,而其他红葡萄酒仅为12-14%
改名称
改名称
nyx_app_key: Java后台主程序
nyx-master: 微信小程序
导入lombok: IDEA下 File—setting—plugin–搜索lombok–安装 重启便可以了
\ No newline at end of file
CREATE DATABASE IF NOT EXISTS rockwell DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS rockwell DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS digjob_db_job DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS rockwell_user DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS rockwell_key DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE IF NOT EXISTS rockwell_msg DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
\ No newline at end of file
use rockwell;
use rockwell;
grant all privileges on rockwell.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell.* to rockwell_dev@'127.0.0.1' identified by '123456';
flush privileges;
use funi_dev;
select User,Host from mysql.user;
insert into mysql.user(Host,User,Password) values("%","funi",password("123456"));
flush privileges;
grant all privileges on funi_dev.* to funi@'%' identified by '123456';
grant all privileges on funi_dev.* to funi@'localhost' identified by '123456';
grant all privileges on funi_dev.* to funi@'127.0.0.1' identified by '123456';
flush privileges;
#centos7
set global validate_password_policy=0;
set global validate_password_length=6;
grant all privileges on digjob_db_job.* to digjob_db_user@'%' identified by '123456';
grant all privileges on digjob_db_job.* to digjob_db_user@'localhost' identified by '123456';
grant all privileges on digjob_db_job.* to digjob_db_user@'127.0.0.1' identified by '123456';
flush privileges;
#centos7
CREATE DATABASE IF NOT EXISTS digjob_db_devel DEFAULT CHARSET utf8 COLLATE utf8_bin;
set global validate_password_policy=0;
set global validate_password_length=6;
grant all privileges on digjob_db_devel.* to digjob_db_user@'%' identified by '123456';
grant all privileges on digjob_db_devel.* to digjob_db_user@'localhost' identified by '123456';
grant all privileges on digjob_db_devel.* to digjob_db_user@'127.0.0.1' identified by '123456';
flush privileges;
#centos7
CREATE DATABASE IF NOT EXISTS digjob_db_test DEFAULT CHARSET utf8 COLLATE utf8_bin;
set global validate_password_policy=0;
set global validate_password_length=6;
grant all privileges on digjob_db_test.* to digjob_db_user@'%' identified by '123456';
grant all privileges on digjob_db_test.* to digjob_db_user@'localhost' identified by '123456';
grant all privileges on digjob_db_test.* to digjob_db_user@'127.0.0.1' identified by '123456';
flush privileges;
#centos7
#db rockwell_user
#db rockwell_key
#db rockwell_act
#db rockwell_msg
#db rockwell_algo
#user rockwell_dev
set global validate_password_policy=0;
set global validate_password_length=6;
grant all privileges on rockwell_user.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell_user.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell_user.* to rockwell_dev@'127.0.0.1' identified by '123456';
grant all privileges on rockwell_act.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell_act.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell_act.* to rockwell_dev@'127.0.0.1' identified by '123456';
grant all privileges on rockwell_msg.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell_msg.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell_msg.* to rockwell_dev@'127.0.0.1' identified by '123456';
grant all privileges on rockwell_key.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell_key.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell_key.* to rockwell_dev@'127.0.0.1' identified by '123456';
grant all privileges on rockwell_algo.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell_algo.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell_algo.* to rockwell_dev@'127.0.0.1' identified by '123456';
grant all privileges on rockwell_mall.* to rockwell_dev@'%' identified by '123456';
grant all privileges on rockwell_mall.* to rockwell_dev@'localhost' identified by '123456';
grant all privileges on rockwell_mall.* to rockwell_dev@'127.0.0.1' identified by '123456';
grant all privileges on foryou_book.* to foryou_dev@'%' identified by '123456';
grant all privileges on foryou_book.* to foryou_dev@'localhost' identified by '123456';
grant all privileges on foryou_book.* to foryou_dev@'127.0.0.1' identified by '123456';
flush privileges;
USE rockwell_key;
USE rockwell_key;
/*
通过定时程序生成 每小时
match+rank 数据表
key
*/
REPLACE INTO tbl_match_rank
SELECT CONCAT("rid_",match_season,"_",match_type,"_",match_team) AS rank_id , match_season, match_type, match_team, 0 AS default_type, score, rank, total_match, total_quiz, ratio_rank, ratio_finish, NOW() AS create_datetime, NOW() AS update_datetime FROM
(
SELECT objA.match_season, objA.match_type, objA.match_team, objA.score, objA.rank, objB.total AS total_match, objC.total AS total_quiz, FORMAT((objB.total-objA.rank+1)/objB.total,2) AS ratio_rank, FORMAT(objA.score/objC.total,2) AS ratio_finish
FROM
(
SELECT match_season, match_type, match_team, score,
CASE WHEN @p=season_type THEN @row:=@row+1 ELSE @row:=1 END rownum,
IF( @p=season_type,
CASE
WHEN @s=score_minus THEN @r
WHEN @s:=score_minus THEN @r:=@row
END,
@r:=1 ) AS rank,
@s:=score_minus,
@p:=season_type
FROM view_match_score
ORDER BY match_season ASC, match_type ASC, score DESC
) objA
LEFT JOIN view_match_type_total objB ON objA.match_type=objB.match_type AND objA.match_season=objB.match_season
LEFT JOIN view_quiz_type_total objC ON objA.match_type=objC.quiz_type
) aa
WHERE match_season='s01'
\ No newline at end of file
USE rockwell;
USE rockwell;
/*
用于学习的分类
*/
DROP TABLE IF EXISTS tbl_cat;
CREATE TABLE tbl_cat (
`id` VARCHAR(100) COMMENT 'quiz defect的id, uuid format, did_001',
`cat_type_cn` VARCHAR(100) DEFAULT NULL COMMENT '品类类型,比如二级',
`cat_type_en` VARCHAR(100) DEFAULT NULL COMMENT '英文品类类型,比如 level2',
`cat_name_cn` VARCHAR(100) NOT NULL COMMENT '品类名称, wset, 1, wine, 2, Sake',
`cat_name_en` VARCHAR(100) NOT NULL COMMENT '品类名称, wset, 1, wine, 2, Sake',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`id`, `create_datetime`),
KEY `query_key` (`cat_type_en`,`cat_name_en`, `cat_type_cn`,`cat_name_cn`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell知识竞赛 题目类型';
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
用于记录竞答结果: daily | 1v1 的比赛结果
针对不同类型的数据解释
daily: 每日测验:
- match_score: 10中答对的个数
- team_type: blue
- match_result: 完成为1, 未完成为0
- quiz_index: 如果match_result为0, 则为已完成的题目个数(<10); 如果match_result为1, 则为10
- rank_score: 同match_score
pk: 竞答:
- match_score: 10中答对的个数
- team_type: blue|read
- match_result: 胜利为1, 失败为0
- quiz_index: 为已完成的题目个数, 如果match_result为0, 则个数<10; 如果match_result为1, 则为10
- rank_score: 段位分数, 胜利+2,失败-1
study: 知识学习:
- match_score: 本次完成的题目个数
- team_type: 默认为blue
- match_result: 默认为1
- quiz_index: 已经学习到的题目id, 便于继续学习
- rank_score: 同match_score,便于统计排名
ps: 更新了tbl_match之后,需要同步运行create_sql_match_rank.sql
以同步更新tbl_match_rank
*/
DROP TABLE IF EXISTS tbl_match;
CREATE TABLE tbl_match (
`match_id` VARCHAR(100) COMMENT '竞答的id, uuid format, mid_001',
`match_season` VARCHAR(10) COMMENT '竞答赛季: s01',
`match_type` VARCHAR(10) COMMENT '竞答类别: 1:daily 2:pk',
`match_team` VARCHAR(200) COMMENT '竞答队伍 uid_001',
`match_score` VARCHAR(10) COMMENT '竞答分数, 比如:10',
`team_type` VARCHAR(200) COMMENT '主队还是客队 blue|red',
`match_result` VARCHAR(200) COMMENT '对于pk来说: win|lose; 对于study来说: 当次答题是否完成',
`quiz_index` VARCHAR(20) COMMENT '竞答|学习进行到第几题',
`rank_score` VARCHAR(10) COMMENT '段位分数, 胜利+2,失败-1',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`match_id`, `match_team`),
KEY `query_key` (`match_season`, `match_type`, `match_team`, `match_result`, `match_score`, `rank_score`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 竞答结果';
INSERT INTO `tbl_match`(`match_id`, `match_season`, `match_type`,`match_team`,`match_score`, `team_type`, `match_result`, `quiz_index`, `rank_score`, `create_datetime`,`update_datetime`)
VALUES
('mid_001', 's01', 'daily', 'uid_001', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_002', 's01', 'pk', 'uid_001', '10', 'blue','1', '10', '2','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_002', 's01', 'pk', 'uid_002', '9', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_003', 's01', 'pk', 'uid_003', '10', 'blue','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_003', 's01', 'pk', 'uid_004', '14', 'red', '1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_004', 's01', 'daily', 'uid_005', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_005', 's01', 'pk', 'uid_001', '5', 'blue','0', '10', '-1','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_005', 's01', 'pk', 'uid_002', '9', 'red','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_006', 's01', 'pk', 'uid_003', '7', 'blue','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_006', 's01', 'pk', 'uid_004', '14', 'red', '1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_007', 's01', 'pk', 'uid_001', '1', 'blue','1', '10', '2','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_007', 's01', 'pk', 'uid_002', '9', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_008', 's01', 'pk', 'uid_003', '18', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_008', 's01', 'pk', 'uid_004', '14', 'red', '0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_009', 's01', 'daily', 'uid_001', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_010', 's01', 'daily', 'uid_001', '10', 'blue','1', '10', '10', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_011', 's01', 'pk', 'uid_004', '18', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_012', 's01', 'pk', 'uid_002', '16', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_013', 's01', 'pk', 'uid_001', '18', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_014', 's01', 'pk', 'uid_002', '16', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_015', 's02', 'pk', 'uid_001', '16', 'blue','1', '10', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_016', 's02', 'pk', 'uid_003', '13', 'red','0', '10', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_017', 's03', 'daily', 'uid_001', '6', 'blue','0', '8', '6', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_018', 's03', 'wset2', 'uid_002', '20', 'blue','1', '8', '20', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_019', 's03', 'whisky', 'uid_002', '3', 'blue','1', '368', '3', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_020', 's03', 'whisky', 'uid_001', '1', 'blue','1', '367', '1', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_021', 's03', 'whisky', 'uid_001', '1', 'blue','1', '366', '1', '2020-2-23 11:24:45', '2019-11-20 11:24:45'),
('mid_022', 's03', 'wset2', 'uid_001', '11', 'blue','1', '18', '11', '2020-2-20 11:24:45', '2019-11-20 11:24:45'),
('mid_023', 's03', 'wset2', 'uid_001', '6', 'blue','1', '42', '6', '2020-2-21 11:24:45', '2019-11-20 11:24:45')
;
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
用于记录竞答排名;
流程,每小时计算一次(java) -> save to tbl_match_rank -> read by miniprogram
*/
DROP TABLE IF EXISTS tbl_match_rank;
CREATE TABLE tbl_match_rank (
`rank_id` VARCHAR(100) COMMENT 'rank id',
`match_season` VARCHAR(10) COMMENT '竞答赛季: s01',
`match_type` VARCHAR(10) COMMENT '竞答类别: 1:daily 2:pk',
`match_team` VARCHAR(200) COMMENT '竞答队伍 uid_001',
`default_type` VARCHAR(10) COMMENT '是否默认显示到个人荣誉',
`score` VARCHAR(10) COMMENT '竞答分数, 比如:10',
`rank` VARCHAR(10) COMMENT '主队还是客队 blue|red',
`total_match` VARCHAR(10) COMMENT '总玩家数,按match_season, match_type汇总',
`total_quiz` VARCHAR(10) COMMENT '总的知识数,按quiz_type汇总',
`ratio_rank` VARCHAR(10) COMMENT '排名ratio',
`ratio_finish` VARCHAR(10) COMMENT '完成ratio',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`rank_id`, `match_season`, `match_type`, `match_team`),
KEY `query_key` (`match_season`, `match_type`, `match_team`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 排名结果';
INSERT INTO `tbl_match_rank`(`rank_id`, `match_season`, `match_type`,`match_team`,`default_type`, `score`, `rank`, `total_match`, `total_quiz`, `ratio_rank`, `ratio_finish`, `create_datetime`,`update_datetime`)
VALUES
('rid_s01_daily_uid_001', 's01', 'daily', 'uid_001', '1', '30','1', '3', '0.667', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('rid_s01_daily_uid_005', 's01', 'daily', 'uid_005', '1', '1','2', '3', '0.333', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('rid_s01_pk_uid_001', 's01', 'pk', 'uid_002', '1', '13','2', '3', '0.333', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('rid_s01_pk_uid_005', 's01', 'pk', 'uid_005', '0', '11','2', '3', '0.333', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('rid_s01_study_uid_003', 's01', 'study', 'uid_003', '1', '21','2', '3', '0.333', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('rid_s01_study_uid_005', 's01', 'study', 'uid_005', '0', '43','2', '3', '0.333', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
;
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
用于记录竞答排名, 默认显示位
*/
DROP TABLE IF EXISTS tbl_match_rank_default_type;
CREATE TABLE tbl_match_rank_default_type (
`rank_id` VARCHAR(100) COMMENT 'rank id',
`default_type` VARCHAR(10) COMMENT '是否默认显示到个人荣誉',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`rank_id`),
KEY `query_key` (`rank_id`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 排名的默认显示';
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
用于记录竞答排名;
流程,每小时计算一次(java) -> save to tbl_match_rank -> read by miniprogram
*/
DROP TABLE IF EXISTS tbl_match_title;
CREATE TABLE tbl_match_title (
`match_type` VARCHAR(10) COMMENT '竞答类别: 1:daily 2:pk',
`score` VARCHAR(10) COMMENT '竞答分数, 比如:10',
`title` VARCHAR(10) COMMENT '主队还是客队 blue|red',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`match_type`, `score`),
KEY `query_key` (`match_type`, `score`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 排名结果';
INSERT INTO `tbl_match_title`(`match_type`, `score`, `title`, `create_datetime`,`update_datetime`)
VALUES
('daily', '0', '一学王者', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '10', '一学星耀', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '20', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '30', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '40', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '50', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '60', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '70', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('daily', '80', '一学钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset1', '0', '知识达人', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset1', '10', '知识专家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset1', '20', '知识行家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('pk', '0', '竞答王者', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('pk', '10', '竞答星耀', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('pk', '20', '竞答钻石', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset2', '0', '知识达人', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset2', '10', '知识专家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset2', '20', '知识行家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('whisky', '0', '知识达人', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('whisky', '10', '知识专家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('whisky', '20', '知识行家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('sake', '0', '知识达人', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('sake', '10', '知识专家', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('sake', '20', '知识行家', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
;
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
用于记录竞答排名;
流程,每小时计算一次(java) -> save to tbl_match_rank -> read by miniprogram
*/
DROP TABLE IF EXISTS tbl_match_type;
CREATE TABLE tbl_match_type (
`match_type` VARCHAR(10) COMMENT '竞答类别: 1:daily 2:pk',
`match_name` VARCHAR(10) COMMENT 'type的名称',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`match_type`, `match_name`),
KEY `query_key` (`match_type`, `match_name`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell match类型的名称';
INSERT INTO `tbl_match_type`(`match_type`, `match_name`, `create_datetime`,`update_datetime`)
VALUES
('daily', '一学', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('pk', '竞答', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset1', 'WSET1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset2', 'WSET2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset3', 'WSET3', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wset4', 'WSET4', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('sake', '清酒', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('whisky', '威士忌', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('wine', '红酒', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
;
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
竞答的题目
key
*/
DROP TABLE IF EXISTS tbl_quiz;
CREATE TABLE `tbl_quiz` (
`id` BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT "quiz id, uuid format",
`quiz_type` VARCHAR(10) DEFAULT 'wset2' COMMENT '题目类型, whisky:0, wset, 1, wine, 2, Sake',
`question_name` VARCHAR(500) NOT NULL COMMENT 'quiz名称',
`choice_string` VARCHAR(500) DEFAULT '' COMMENT '以;;双分号作为分隔',
`answer` VARCHAR(10) NOT NULL COMMENT 'quiz正确答案',
`question_level` VARCHAR(10) DEFAULT '1' COMMENT 'quiz难度,1简单;2较难;3很难;4变态',
`user_id` VARCHAR(100) DEFAULT '0' COMMENT 'quiz提交人',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`,`create_datetime`),
KEY `query_key` (`id`, `quiz_type`,`user_fk_id`, `question_name`,`question_level`)
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='rockwell知识竞赛quiz'
USE rockwell_key;
USE rockwell_key;
/*
用于记录有问题的quiz
*/
DROP TABLE IF EXISTS tbl_quiz_defect;
CREATE TABLE `tbl_quiz_defect` (
`id` VARCHAR(100) COMMENT 'quiz defect的id, uuid format, did_001',
`status` VARCHAR(5) DEFAULT '0' COMMENT '题目是否解决; 1-已解决; 0-未解决',
`question_fk_id` VARCHAR(100) NOT NULL COMMENT '题目的编号',
`user_fk_id` VARCHAR(100) NOT NULL DEFAULT '0' COMMENT 'quiz提交人',
`user_comment` VARCHAR(500) COMMENT 'defect 用户描述',
`sys_comment` VARCHAR(500) COMMENT 'defect 系统描述',
`create_datetime` DATETIME DEFAULT '0000-00-00 00:00:00',
`sys_comment_datetime` DATETIME DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`,`create_datetime`),
KEY `query_key` (`id`, `status`, `question_fk_id`,`user_fk_id`)
) ENGINE=INNODB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8 COMMENT='rockwell知识竞赛quiz的报错信息'
USE rockwell_key;
USE rockwell_key;
/*
用于记录竞答结果: daily | 1v1 的比赛结果
*/
DROP TABLE IF EXISTS tbl_match;
CREATE TABLE tbl_match (
`match_id` VARCHAR(100) COMMENT '竞答的id, uuid format, mid_001',
`match_season` VARCHAR(10) COMMENT '竞答赛季: s01',
`match_type` VARCHAR(10) COMMENT '竞答类别: 1:daily 2:pk',
`match_team` VARCHAR(200) COMMENT '竞答队伍 uid_001',
`match_score` VARCHAR(10) COMMENT '竞答分数, 比如:10',
`team_type` VARCHAR(200) COMMENT '主队还是客队 blue|red',
`match_result` VARCHAR(200) COMMENT 'win|lose, 1',
`rank_score` VARCHAR(10) COMMENT '段位分数, 胜利+2,失败-1',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`match_id`, `match_team`),
KEY `query_key` (`match_id`, `match_season`, `match_type`, `match_team`, `match_result`, `match_score`, `rank_score`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 竞答结果';
INSERT INTO `tbl_match`(`match_id`, `match_season`, `match_type`,`match_team`,`match_score`, `team_type`, `match_result`, `rank_score`, `create_datetime`,`update_datetime`)
VALUES
('mid_001', 's01', 'daily', 'uid_001', '10', '','', '1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_002', 's01', 'pk', 'uid_001', '10', 'blue','1', '2','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_002', 's01', 'pk', 'uid_002', '9', 'red','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_003', 's01', 'pk', 'uid_003', '10', 'blue','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_003', 's01', 'pk', 'uid_004', '14', 'red', '1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_004', 's01', 'daily', 'uid_005', '10', '','', '1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_005', 's01', 'pk', 'uid_001', '5', 'blue','0', '-1','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_005', 's01', 'pk', 'uid_002', '9', 'red','1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_006', 's01', 'pk', 'uid_003', '7', 'blue','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_006', 's01', 'pk', 'uid_004', '14', 'red', '1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_007', 's01', 'pk', 'uid_001', '1', 'blue','1', '2','2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_007', 's01', 'pk', 'uid_002', '9', 'red','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_008', 's01', 'pk', 'uid_003', '18', 'blue','1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_008', 's01', 'pk', 'uid_004', '14', 'red', '0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_009', 's01', 'daily', 'uid_001', '10', '','', '1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_010', 's01', 'daily', 'uid_001', '10', '','', '1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_011', 's01', 'pk', 'uid_004', '18', 'blue','1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_011', 's01', 'pk', 'uid_002', '16', 'red','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_012', 's01', 'pk', 'uid_001', '18', 'blue','1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_012', 's01', 'pk', 'uid_002', '16', 'red','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_013', 's02', 'pk', 'uid_001', '16', 'blue','1', '2', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_013', 's02', 'pk', 'uid_003', '13', 'red','0', '-1', '2019-11-20 11:24:45', '2019-11-20 11:24:45'),
('mid_014', 's03', 'daily', 'uid_003', '10', '','', '1', '2019-11-20 11:24:45', '2019-11-20 11:24:45')
;
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
match+score 视图
key
计算排名
tbl_match_rank 提供比赛排名
tbl_match_title 提供中文名称
tbl_match_type 提供类型中文名称
*/
DROP VIEW IF EXISTS view_match_rank;
CREATE VIEW view_match_rank
AS
SELECT aa.rank_id, aa.match_season, aa.match_type, cc.match_name, aa.match_team, IF(dd.default_type=1,dd.default_type,0) AS default_type, aa.score, aa.rank, aa.total_match, aa.total_quiz, aa.ratio_rank, aa.ratio_finish, aa.create_datetime, aa.update_datetime, bb.title FROM tbl_match_rank aa
LEFT JOIN tbl_match_title bb ON CAST(aa.score/10 AS UNSIGNED)*10=bb.score AND aa.match_type=bb.match_type
LEFT JOIN tbl_match_type cc ON aa.match_type=cc.match_type
LEFT JOIN tbl_match_rank_default_type dd ON aa.rank_id=dd.rank_id
USE rockwell_key;
USE rockwell_key;
/*
match+score 视图 (中间视图)
key
自动根据tbl_match计算分数
使用:
- view_match_type_total
- java 后台Rockwell_keyMapper.genT_match_rank 用于生成tbl_match_rank
*/
DROP VIEW IF EXISTS view_match_score;
CREATE VIEW view_match_score
AS
SELECT match_season, match_type, match_team, CONCAT(match_season,"_",match_type) as season_type, SUM(rank_score) AS score, IF(SUM(rank_score)=0, 0.1, SUM(rank_score) * -1) AS score_minus
FROM tbl_match
GROUP BY match_season, match_type,match_team
USE rockwell_key;
USE rockwell_key;
/*
match_type+total 视图
key
计算每赛季 每类型的用户参与人数
*/
DROP VIEW IF EXISTS view_match_type_total;
CREATE VIEW view_match_type_total
AS
select aa.match_season AS match_season, aa.match_type AS match_type, count(0) AS total
from
view_match_score aa
group by aa.match_season,aa.match_type
\ No newline at end of file
USE rockwell_key;
USE rockwell_key;
/*
每一类quiz的总个数 视图
key
*/
DROP VIEW IF EXISTS view_quiz_type_total;
CREATE VIEW view_quiz_type_total
AS
SELECT bb.quiz_type, aa.match_name as quiz_name, bb.total FROM tbl_match_type aa
LEFT JOIN
(
SELECT quiz_type, COUNT(*) AS total
FROM tbl_quiz
GROUP BY quiz_type
) bb ON aa.match_type=bb.quiz_type
USE rockwell_msg;
/*
评论的内容
包括了评论(comment)和回复(reply)
*/
DROP TABLE IF EXISTS tbl_comment;
CREATE TABLE `tbl_comment` (
`comment_id` VARCHAR(100) COMMENT '发文的id, uuid format',
`comment_type` VARCHAR(10) DEFAULT 'quiz' COMMENT '评论类型: quiz|post|goods',
`object_id` VARCHAR(100) COMMENT '回复对象的id, oid, 比如qiz, aid, gid, 等等, uuid format',
`object_name` VARCHAR(1000) DEFAULT NULL COMMENT '题目名称',
`content` VARCHAR(1000) DEFAULT NULL COMMENT '针对post_id的评论',
`userid_from` VARCHAR(100) NOT NULL COMMENT '针对发文做评论的id, uuid format',
`userid_to` VARCHAR(100) DEFAULT NULL COMMENT '针对某一片发文的userid, uuid format',
`content_to` VARCHAR(1000) DEFAULT NULL COMMENT '针对回复的内容,当userid_to存在时,而存在',
`num_like` INT(11) DEFAULT '0' COMMENT '针对每条comment的点赞次数,每点一次,则累加',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`comment_id`,`create_datetime`,`comment_type`),
KEY `query_key` (`comment_id`,`comment_type`,`object_id`, `create_datetime`, `num_like`, `userid_from`, `userid_to`))
ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT='rockwell 用户回复表';
INSERT INTO tbl_comment(comment_id, comment_type, object_id, object_name, content, userid_from, userid_to, content_to, num_like, create_datetime)
VALUES
( "cid_001","quiz", "186", "1、对于红葡萄酒来说,什么颜色代表着葡萄酒是年轻的?", "这款是最好的whisky", "uid_001", "", "", "10", "2020-01-02 16:00:00"),
( "cid_002","quiz", "186", "1、对于红葡萄酒来说,什么颜色代表着葡萄酒是年轻的?", "我也喝过", "uid_002", "uid_001", "这款是最好的whisky", "10", "2020-01-02 16:00:01"),
( "cid_003","quiz", "186", "1、对于红葡萄酒来说,什么颜色代表着葡萄酒是年轻的?", "哪里可以买到呀", "uid_003", "uid_002", "我也喝过", "10", "2020-01-02 16:00:02"),
( "cid_004","quiz", "186", "1、对于红葡萄酒来说,什么颜色代表着葡萄酒是年轻的?", "上海都有的嘛", "uid_001", "", "", "10", "2020-01-02 16:00:03"),
( "cid_005","quiz", "186", "1、对于红葡萄酒来说,什么颜色代表着葡萄酒是年轻的?", "我也好喜欢", "uid_004", "", "", "10", "2020-01-02 16:00:04"),
( "cid_006","quiz", "186", "1、对于红葡萄酒来说,什么颜色代表着葡萄酒是年轻的?", "+1", "uid_005", "", "", "10", "2020-01-02 16:00:05");
\ No newline at end of file
use rockwell_user;
DROP TABLE IF EXISTS tbl_credit;
CREATE TABLE `tbl_credit` (
`credit_id` VARCHAR(100) COMMENT '信用id: uuid format',
`credit_name` varchar(100) DEFAULT NULL COMMENT '信用名称',
`credit_level` varchar(100) DEFAULT NULL COMMENT '信用等级',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '标签的创建时间',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY (`credit_id`),
KEY `query_key` (`credit_id`,`credit_name`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='用户信用表'
use rockwell_user;
DROP TABLE IF EXISTS tbl_user;
CREATE TABLE `tbl_user` (
`id` varchar(100) COMMENT '用户id',
`auth_status` varchar(10) COMMENT '授权状态: 0-未授权, 1-已授权',
`openid` varchar(100) DEFAULT NULL COMMENT 'wx openid',
`last_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '上一次登陆时间',
PRIMARY KEY (`id`),
KEY `id_name` (`openid`,`auth_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'
USE rockwell_user;
USE rockwell_user;
/*
竞答key+活动act+商品good+评论comment+搜索search
key: key_daily_finish 每日, key_daily_score 每日得分, key_study_finish 学习题目, key_study_score 学习得分, key_pk_finish pk完成, key_pk_score
act: act_check 点击, act_attend 参加, act_fav 收藏,
goods: goods_check 点击, goods_buy购买, goods_fav 收藏,
comment: comment_finish, comment_like
search: num_search
目标: 统计用户每天的操作
- 参加了多少次竞答,多少次pk,
- 浏览了多少次活动,参加了多少次,
- 搜索了多少次,搜索了那些关键词
- 点了那些标签,及标签点击次数
- 点击了那些商品,购买了哪些商品,多少在购物车
1. 每日结算 or 每小时结算
内容属性(泥煤, 除夕活动, devar): num_pv, num_win, num_like, num_search, num_purchase, total_cost
事件属性: 点击活动, 参加活动,参加竞答,点击商品,购买商品 ,购买金额
key
*/
DROP TABLE IF EXISTS tbl_user_data;
CREATE TABLE tbl_user_data (
`user_id` VARCHAR(100) COMMENT '用户的id, uuid format',
`period` VARCHAR(10) NOT NULL COMMENT '时间类别: 按月 2020-01-08',
`key_daily_finish` VARCHAR(20) NOT NULL COMMENT '每日推荐',
`key_daily_score` VARCHAR(20) NOT NULL COMMENT '每日推荐得分',
`key_study_finish` VARCHAR(20) NOT NULL COMMENT '每日学习个数',
`key_study_score` VARCHAR(20) NOT NULL COMMENT '每日学习得分',
`key_pk_finish` VARCHAR(20) NOT NULL COMMENT '每日pk个数',
`key_pk_score` VARCHAR(20) NOT NULL COMMENT '每日pk得分',
`act_check` VARCHAR(20) NOT NULL COMMENT '活动点击',
`act_attend` VARCHAR(20) NOT NULL COMMENT '活动参加',
`act_fav` VARCHAR(20) NOT NULL COMMENT '活动收藏',
`goods_check` VARCHAR(20) NOT NULL COMMENT '活动点击',
`goods_buy` VARCHAR(20) NOT NULL COMMENT '活动点击',
`goods_fav` VARCHAR(20) NOT NULL COMMENT '活动点击',
`comment_finish` VARCHAR(20) NOT NULL COMMENT '评论次数',
`comment_like` VARCHAR(20) NOT NULL COMMENT '获赞次数',
`num_search` VARCHAR(20) NOT NULL COMMENT '查询次数',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`user_id`, `period`),
KEY `query_key` (`user_id`, `period`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 记录用户的访问(点击)数据';
insert into `tbl_user_data`(`user_id`,`period`,`key_daily_finish`,`key_daily_score`,`key_study_finish`,`key_study_score`,`key_pk_finish`,`key_pk_score`,
`act_check`, `act_attend`, `act_fav`, `comment_finish`,`comment_like`,`num_search`,
`create_datetime`,`update_datetime`)
values ('uid_123',
'2020-01-08',
'10','10','10','10','10','10',
'10','10','10','10','10','10',
'2019-11-20 11:24:45',
'2019-11-20 11:24:45');
use rockwell_user;
DROP TABLE IF EXISTS tbl_login_log;
CREATE TABLE `tbl_login_log` (
`id` varchar(100) COMMENT '用户id',
`user_id` varchar(100) DEFAULT NULL COMMENT 'user_id具体指什么值',
`wxcode` varchar(100) DEFAULT NULL COMMENT '是传值的code吗',
`login_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '上一次登陆时间',
PRIMARY KEY (`id`),
KEY `id_name` (`id`,`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户登陆日志表'
\ No newline at end of file
USE rockwell_user;
USE rockwell_user;
/*
备注:
1. 表示用户画像,及用户关注的tag及关注的次数,每小时更新一次
2. 建议用tag_name表示, 因为可以直接用Like进行模糊查找
*/
DROP TABLE IF EXISTS tbl_user_tag;
CREATE TABLE tbl_user_tag (
`user_id` VARCHAR(100) COMMENT '标签的id, uuid format',
`period` VARCHAR(10) NOT NULL COMMENT '时间类别: 按日+每小时更新 2020-01-08',
`tag_id` VARCHAR(100) COMMENT '标签的id, uuid format',
`tag_name` VARCHAR(100) COMMENT '标签的名称',
`num_pv` VARCHAR(20) NOT NULL COMMENT '点击量',
`num_search` VARCHAR(20) NOT NULL COMMENT '搜索量',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
`update_datetime` DATETIME DEFAULT NULL,
PRIMARY KEY(`user_id`, `tag_id`, `period`),
KEY `query_key` (`user_id`, `tag_id`, `period`, `tag_name`))
ENGINE=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT='rockwell 用户标签画像表,说明用户偏好';
insert into `tbl_user_tag`(`user_id`, `period`, `tag_id`,`tag_name`,`num_pv`, `num_search`,`create_datetime`,`update_datetime`)
values ('uid_123',
'2020-01-08',
'tid_123',
'泥煤whisky',
'100',
'40',
'2019-11-20 11:24:45',
'2019-11-20 11:24:45');
use rockwell_user;
DROP TABLE IF EXISTS tbl_userinfo;
CREATE TABLE `tbl_userinfo` (
`userid` varchar(100) COMMENT '用户id, uuid format',
`nickName` varchar(100) DEFAULT NULL COMMENT 'nickName',
`avatarUrl` varchar(500) DEFAULT NULL COMMENT 'avatarUrl',
`gender` varchar(100) DEFAULT NULL COMMENT 'gender',
`province` varchar(100) DEFAULT NULL COMMENT 'province',
`city` varchar(100) DEFAULT NULL COMMENT 'city',
`country` varchar(100) DEFAULT NULL COMMENT 'country',
`create_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '创建时间',
`update_datetime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '更新时间',
PRIMARY KEY (`userid`),
KEY `id_name` (`userid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户信息表';
insert into `tbl_userinfo`(`userid`, `nickName`, `gender`, `unionid`, `province`, `city`, `country`, `avatarUrl`, `create_datetime`)
values
("uid_001", "张三", "男", "上海市", "上海市", "中国", "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/u_image/icon_avatar1.png", "2020-02-17 16:00:00"),
("uid_002", "xyz", "男", "上海市", "上海市", "中国", "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/u_image/icon_avatar2.png", "2020-02-17 16:00:00"),
("uid_003", "西西", "男", "上海市", "上海市", "中国", "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/u_image/icon_avatar3.png", "2020-02-17 16:00:00"),
("uid_004", "李四", "男", "上海市", "上海市", "中国", "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/u_image/icon_avatar4.png", "2020-02-17 16:00:00"),
("uid_005", "王五 ", "男", "上海市", "上海市", "中国", "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/u_image/icon_avatar5.png", "2020-02-17 16:00:00");
USE rockwell_msg;
USE rockwell_msg;
/*
user+msg 视图
key
*/
DROP VIEW IF EXISTS view_user_comment;
CREATE VIEW view_user_comment
AS
SELECT aa.comment_id, aa.comment_type, aa.object_id, aa.object_name, aa.content, aa.num_like, aa.userid_from, bb1.nickName AS nickname_from, aa.userid_to, bb2.nickName AS nickname_to, aa.content_to, aa.create_datetime, bb1.avatarUrl AS avatarUrlFrom, bb2.avatarUrl AS avatarUrlTo
FROM rockwell_msg.tbl_comment aa
LEFT JOIN rockwell_user.tbl_userinfo bb1 ON aa.userid_from=bb1.userid
LEFT JOIN rockwell_user.tbl_userinfo bb2 ON aa.userid_to=bb2.userid
\ No newline at end of file
单宁:很涩,有点抓舌头的收缩感就是单宁 Tanin
单宁:很涩,有点抓舌头的收缩感就是单宁 Tanin
仙粉黛红葡萄酒的酒精度比其他红葡萄酒更高——通常是16%,而其他红葡萄酒仅为12-14%
//app.js
//app.js
var config=require('./config.js');
App({
globalData: {
// userInfo setting
nyxCode: "", //userId, 唯一识别码
authStatus: "", //授权状态, 0表示未授权, 1表示已授权
userInfo : {}, //用户信息
matchSeason : "",
emotionHost : "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/emoji/",
onOpenOp : {},
// socket setting jscat 2020/03/12
// webSocket的readyState属性用来定义连接状态,该属性的值有下面几种:
// 0 :对应常量CONNECTING(numeric value 0) ,
// 正在建立连接连接,还没有完成。The connection has not yet been established.
// 1 :对应常量OPEN(numeric value 1) ,
// 连接成功建立,可以进行通信。The WebSocket connection is established and communication is possible.
// 2 :对应常量CLOSING(numeric value 2)
// 连接正在进行关闭握手,即将关闭。The connection is going through the closing handshake.
// 3: 对应常量CLOSED(numeric value 3)
// 连接已经关闭或者根本没有建立。The connection has been closed or could not be opened.
socketTask : {},
callback: function () { },
// socket发送的消息队列
socketMsgQueue : [],
heart : '',
// 心跳失败次数
heartBeatFailCount : 0,
// 终止心跳
heartBeatTimeOut : null,
// 终止重新连接
connectSocketTimeOut : null,
socketClose: false,
socketOpen: false,
},
onLaunch: function () {
//将config存储到本地存储
wx.setStorageSync("config", config);
//调用API从本地缓存中获取数据
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
},
// 用户自定义函数
//初始化socket
initSocket(sid, uid, msg) {
let _this = this
var strUrl = ""
if(config.local == 1)
{
strUrl = config.socket_url + "?sid=" + sid + "&uid=" + uid + "&msg=" + msg
}
else
{
strUrl = config.socket_url + "/wss?sid=" + sid + "&uid=" + uid + "&msg=" + msg
}
config.debug == 1 ? console.log("===initSocket_strUrl_" + strUrl) : ""
_this.globalData.socketTask = wx.connectSocket({
//此处 url 可以用来测试
url: strUrl,
success: function (res) {
console.log('===initSocket 创建成功', res)
},
fail: function (err) {
console.log('===initSocket 创建失败', err)
},
})
//版本库需要在 1.7.0 以上
// _this.globalData.socketTask.onOpen(function (res) {
// console.log('app-onOpen webSocket连接已打开! readyState=' + _this.globalData.socketTask.readyState)
// })
// _this.globalData.socketTask.onError(function (res) {
// console.log('app-WebSocket连接错误! 错误信息', res)
// })
// _this.globalData.socketTask.onClose(function (res) {
// console.log('app-WebSocket连接已关闭! readyState=' + _this.globalData.socketTask.readyState)
// _this.initSocket(_this.globalData.sid, _this.globalData.uid)
// })
_this.globalData.socketTask.onMessage(function (res) {
// 用于在其他页面监听 websocket 返回的消息
_this.globalData.callback(res)
})
},
//统一发送消息,可以在其他页面调用此方法发送消息
sendSocketMessage: function (options) {
let _this = this
var msg = typeof options == "string" ? options : options.msg
return new Promise((resolve, reject) => {
if (_this.globalData.socketTask.readyState === 1) {
console.log('===通过 webSocket onMessage() 连接发送数据', msg)
_this.globalData.socketTask.send({
data: msg,
success: function (res) {
console.log('===sendSocketMessage 已发送', res);
resolve(res)
if (typeof options =='object') {
options.success && options.success(res);
}
},
fail: function (res) {
reject(res)
if (typeof msg == 'object') {
options.fail && options.fail(res);
}
}
})
} else {
console.log('已断开, msg_', msg)
_this.globalData.socketMsgQueue.push(msg)
}
})
},
/**
* 关闭 webSocket 连接
*/
closeSocket: function (options) {
console.log("===app closeSocket")
let _this = this
if (_this.globalData.connectSocketTimeOut) {
clearTimeout(_this.globalData.connectSocketTimeOut);
_this.globalData.connectSocketTimeOut = null;
}
_this.globalData.socketClose = true;
_this.stopHeartBeat();
wx.closeSocket({
success: function (res) {
console.log('===webSocket 已关闭!');
},
fail: function (res) {
}
})
},
// 开始心跳
startHeartBeat: function () {
console.log('===app socket开始心跳')
var _this = this;
_this.globalData.heart = 'heart';
_this.heartBeat();
},
// 结束心跳
stopHeartBeat: function () {
console.log('socket结束心跳')
var _this = this;
_this.globalData.heart = '';
if (_this.globalData.heartBeatTimeOut) {
clearTimeout(_this.globalData.heartBeatTimeOut);
_this.globalData.heartBeatTimeOut = null;
}
if (_this.globalData.connectSocketTimeOut) {
clearTimeout(_this.globalData.connectSocketTimeOut);
_this.globalData.connectSocketTimeOut = null;
}
},
// 心跳
heartBeat: function () {
var _this = this;
if (!_this.globalData.heart) {
return;
}
_this.sendSocketMessage({
msg: JSON.stringify({
'cmd': 'onHeart',
'uid': _this.globalData.nyxCode,
'msg': 'heart'
}),
success: function (res) {
console.log('===app socket心跳成功');
if (_this.globalData.heart) {
_this.globalData.heartBeatTimeOut = setTimeout(() => {
_this.heartBeat();
}, 7000);
}
},
fail: function (res) {
console.log('===app socket心跳失败');
if (_this.globalData.heartBeatFailCount > 2) {
// 重连
_this.connectSocket();
}
if (_this.globalData.heart) {
_this.globalData.heartBeatTimeOut = setTimeout(() => {
_this.heartBeat();
}, 7000);
}
_this.globalData.heartBeatFailCount++;
},
});
},
regUser: function () {
var _this = this;
var strUrl = config.user_reg_url
config.debug == 1 ? console.log("===regUser_strUrl_" + strUrl) : ""
wx.request({
url: strUrl,
method: 'GET',
success: function (res) {
config.debug == 1 ? console.info("===regUser_data_", res) : ""
wx.setStorageSync('nyxCode', res.data.data.id)
wx.setStorageSync('authStatus', "0")
wx.setStorageSync('matchSeason', _this.getSeason())
var userInfo = {}
userInfo['userId'] = res.data.data.id
userInfo['nickName'] = "匿名用户"
userInfo['avatarUrl'] = "https://930-test-sh.oss-cn-shanghai.aliyuncs.com/u_image/icon_avatar1.png"
wx.setStorageSync('userInfo', userInfo)
},
fail: function () {
console.log('系统错误')
}
})
},
//计算赛季
getSeason: function () {
var date = new Date();
var year = date.getFullYear(); //获取完整的年份(4位)
var month = date.getMonth(); //获取当前月份(0-11,0代表1月)
var str = parseInt(year) % 2020 * 4 + parseInt(month / 3) + 1
str = str[1] ? str : '0' + str
return "s" + str
},
})
\ No newline at end of file
{
{
"pages": [
"pages/discover/note-info/note-info",
"pages/key/key",
"pages/my/my",
"pages/discover/discover",
"pages/discover/note-writer/note-writer",
"pages/discover/searchbar/searchbar",
"pages/map/map",
"pages/key/matchDaily/matchDaily",
"pages/key/matchStudy/matchStudy",
"pages/key/matchStudy/matchStudyDetail/matchStudyDetail",
"pages/my/rank/rank",
"pages/my/user/user",
"pages/my/myposts/myposts",
"pages/logs/logs"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#000",
"navigationBarTitleText": "我",
"navigationBarTextStyle": "white"
},
"tabBar": {
"borderStyle": "white",
"color": "#a0a0a0",
"selectedColor": "#333333",
"backgroundColor": "#ffffff",
"list": [
{
"pagePath": "pages/key/key",
"text": "竞答",
"iconPath": "./icon/key.png",
"selectedIconPath": "./icon/key.png"
},
{
"pagePath": "pages/discover/discover",
"text": "发现",
"iconPath": "./icon/discover2.png",
"selectedIconPath": "./icon/discover2.png"
},
{
"pagePath": "pages/map/map",
"text": "地图",
"iconPath": "./icon/map1.png",
"selectedIconPath": "./icon/map1.png"
},
{
"pagePath": "pages/my/my",
"text": "我的",
"iconPath": "./icon/my.png",
"selectedIconPath": "./icon/my.png"
}
]
},
"sitemapLocation": "sitemap.json"
}
\ No newline at end of file
@import 'style/weui.wxss';
@import 'style/weui.wxss';
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 200rpx 0;
box-sizing: border-box;
}
// components/tag/tag.js
// components/tag/tag.js
Component({
/**
* 组件的属性列表
*/
properties: {
img: String,
name: String,
typeid: String
},
/**
* 组件的初始数据
*/
data: {
},
/**
* 组件的方法列表
*/
methods: {
onTap: function (event) {
this.triggerEvent('tapping', {
idx: this.properties.typeid
})
}
}
})
{
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
<view class='type-container' bind:tap="onTap" data-typeid="{{typeid}}">
<view class='type-container' bind:tap="onTap" data-typeid="{{typeid}}">
<view class='circle'>
<image src='{{img}}'></image>
</view>
<text>{{name}}</text>
</view>
\ No newline at end of file
.type-container{
.type-container{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.type-container .circle{
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 13rpx;
width: 100rpx;
height: 100rpx;
border-radius: 50%;
background-color: #444446;
}
.type-container .circle image{
width: 50rpx;
height: 50rpx;
}
.type-container text{
font-size: 20rpx;
font-weight: bold;
color: #767676;
}
\ No newline at end of file
//config.js API全局域名配置
//config.js API全局域名配置
var prod = 0;
var local = 0;
var test = 1;
var debug = 0; //是否打印调试信息
var host_key = "https://fun.hisuhong.com";
var login_url = "https://fun.hisuhong.com";
var socket_url = ""
if(prod == 1)
{
host_key = "https://fun.hisuhong.com";
login_url = "https://fun.hisuhong.com";
socket_url = "wss://wssfun.hisuhong.com"
}
else if(test == 1)
{
debug = 1
host_key = "https://wx.hisuhong.com";
login_url = "https://wx.hisuhong.com";
socket_url = "wss://wsswx.hisuhong.com"
}else if(local == 1)
{
debug = 1
host_key = "http://localhost:8085";
login_url = "https://wx.hisuhong.com";
socket_url = "ws://localhost:8085/websocket/chat"
}
var config={
local,
debug,
host_key,
rand_url : host_key + "/api/nyx/quiz/query/rand",
bug_url : host_key + "/api/nyx/quiz/defect/add",
data_url : host_key + "/api/nyx/quiz/query/item",
msg_query_url: host_key + "/api/nyx/msg/query",
msg_add_url: host_key + "/api/nyx/msg/add",
msg_like_url: host_key + "/api/nyx/msg/like",
user_login_url: login_url+"/api/nyx/user/wxLogin",
test_url : host_key + "/api/nyx/match/test",
match_rank_query_url: host_key + "/api/nyx/match/rank/query",
quiz_total_query_url: host_key + "/api/nyx/quiz/total/query",
match_rank_update_url: host_key + "/api/nyx/match/rank/update",
quiz_study_query_url: host_key + "/api/nyx/quiz/query/study",
match_add_item_url: host_key + "/api/nyx/match/add/item",
user_reg_url: host_key + "/api/nyx/user/reg",
userinfo_query_url: host_key + "/api/nyx/userinfo/query",
socket_url: socket_url,
}
module.exports=config;
\ No newline at end of file
[
[
{"name": "Expression_1","text": "[微笑]"},
{"name": "Expression_2","text": "[撇嘴]"},
{"name": "Expression_3","text": "[色]"},
{"name": "Expression_4","text": "[发呆]"},
{"name": "Expression_5","text": "[得意]"},
{"name": "Expression_6","text": "[流泪]"},
{"name": "Expression_7","text": "[害羞]"},
{"name": "Expression_8","text": "[闭嘴]"},
{"name": "Expression_9","text": "[睡]"},
{"name": "Expression_10","text": "[大哭]"},
{"name": "Expression_11","text": "[尴尬]"},
{"name": "Expression_12","text": "[发怒]"},
{"name": "Expression_13","text": "[调皮]"},
{"name": "Expression_14","text": "[呲牙]"},
{"name": "Expression_15","text": "[惊讶]"},
{"name": "Expression_16","text": "[难过]"},
{"name": "Expression_17","text": "[酷]"},
{"name": "Expression_18","text": "[冷汗]"},
{"name": "Expression_19","text": "[抓狂]"},
{"name": "Expression_20","text": "[吐]"},
{"name": "Expression_21","text": "[偷笑]"},
{"name": "Expression_22","text": "[愉快]"},
{"name": "Expression_23","text": "[白眼]"},
{"name": "Expression_24","text": "[傲慢]"},
{"name": "Expression_25","text": "[饥饿]"},
{"name": "Expression_26","text": "[困]"},
{"name": "Expression_27","text": "[恐惧]"},
{"name": "Expression_28","text": "[流汗]"},
{"name": "Expression_29","text": "[憨笑]"},
{"name": "Expression_30","text": "[悠闲]"},
{"name": "Expression_31","text": "[奋斗]"},
{"name": "Expression_32","text": "[咒骂]"},
{"name": "Expression_33","text": "[疑问]"},
{"name": "Expression_34","text": "[嘘]"},
{"name": "Expression_35","text": "[晕]"},
{"name": "Expression_36","text": "[疯了]"},
{"name": "Expression_37","text": "[衰]"},
{"name": "Expression_38","text": "[骷髅]"},
{"name": "Expression_39","text": "[敲打]"},
{"name": "Expression_40","text": "[再见]"},
{"name": "Expression_41","text": "[擦汗]"},
{"name": "Expression_42","text": "[抠鼻]"},
{"name": "Expression_43","text": "[鼓掌]"},
{"name": "Expression_44","text": "[糗大了]"},
{"name": "Expression_45","text": "[坏笑]"},
{"name": "Expression_46","text": "[左哼哼]"},
{"name": "Expression_47","text": "[右哼哼]"},
{"name": "Expression_48","text": "[哈欠]"},
{"name": "Expression_49","text": "[鄙视]"},
{"name": "Expression_50","text": "[委屈]"},
{"name": "Expression_51","text": "[快哭了]"},
{"name": "Expression_52","text": "[阴险]"},
{"name": "Expression_53","text": "[亲亲]"},
{"name": "Expression_54","text": "[吓]"},
{"name": "Expression_55","text": "[可怜]"},
{"name": "Expression_56","text": "[菜刀]"},
{"name": "Expression_57","text": "[西瓜]"},
{"name": "Expression_58","text": "[啤酒]"},
{"name": "Expression_59","text": "[篮球]"},
{"name": "Expression_60","text": "[乒乓]"},
{"name": "Expression_61","text": "[咖啡]"},
{"name": "Expression_62","text": "[饭]"},
{"name": "Expression_63","text": "[猪头]"},
{"name": "Expression_64","text": "[玫瑰]"},
{"name": "Expression_65","text": "[凋谢]"},
{"name": "Expression_66","text": "[嘴唇]"},
{"name": "Expression_67","text": "[爱心]"},
{"name": "Expression_68","text": "[心碎]"},
{"name": "Expression_69","text": "[蛋糕]"},
{"name": "Expression_70","text": "[闪电]"},
{"name": "Expression_71","text": "[炸弹]"},
{"name": "Expression_72","text": "[刀]"},
{"name": "Expression_73","text": "[足球]"},
{"name": "Expression_74","text": "[瓢虫]"},
{"name": "Expression_75","text": "[便便]"},
{"name": "Expression_76","text": "[月亮]"},
{"name": "Expression_77","text": "[太阳]"},
{"name": "Expression_78","text": "[礼物]"},
{"name": "Expression_79","text": "[拥抱]"},
{"name": "Expression_80","text": "[强]"},
{"name": "Expression_81","text": "[弱]"},
{"name": "Expression_82","text": "[握手]"},
{"name": "Expression_83","text": "[胜利]"},
{"name": "Expression_84","text": "[抱拳]"},
{"name": "Expression_85","text": "[勾引]"},
{"name": "Expression_86","text": "[拳头]"},
{"name": "Expression_87","text": "[差劲]"},
{"name": "Expression_88","text": "[爱你]"},
{"name": "Expression_89","text": "[NO]"},
{"name": "Expression_90","text": "[OK]"},
{"name": "Expression_91","text": "[爱情]"},
{"name": "Expression_92","text": "[飞吻]"},
{"name": "Expression_93","text": "[跳跳]"},
{"name": "Expression_94","text": "[发抖]"},
{"name": "Expression_95","text": "[怄火]"},
{"name": "Expression_96","text": "[转圈]"},
{"name": "Expression_97","text": "[磕头]"},
{"name": "Expression_98","text": "[回头]"},
{"name": "Expression_99","text": "[跳绳]"},
{"name": "Expression_100","text": "[投降]"},
{"name": "Expression_101","text": "[激动]"},
{"name": "Expression_102","text": "[街舞]"},
{"name": "Expression_103","text": "[献吻]"},
{"name": "Expression_104","text": "[左太极]"},
{"name": "Expression_105","text": "[右太极]"}
]
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论