Commit b9a8df044c649d107a8e36ae6a4f053270f23676

Authored by 程雨佳
1 parent 7ecafec9

提交签到和修改头像接口

phpapi/Common/data.sql
1   --- 员工表
2   -DROP TABLE IF EXISTS `user`;
3   -CREATE TABLE `user` (
4   - `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
5   - `realname` varchar(50) NOT NULL DEFAULT '' COMMENT '姓名',
6   - `headimg` varchar(255) NOT NULL DEFAULT '' COMMENT '自拍图片',
7   - `openid` char(32) NOT NULL UNIQUE COMMENT '微信openid',
8   - `status` int DEFAULT 1 COMMENT '1=正常 2=删除 3=其他组织',
9   - `created` bigint(13) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
10   - PRIMARY KEY (`id`)
11   -)ENGINE=InnoDB AUTO_INCREMENT=100 DEFAULT CHARSET=utf8mb4 COMMENT='员工表';
12   -
13   --- 中奖信息
  1 +
  2 +-- ----------------------------
  3 +-- Table structure for barrage
  4 +-- ----------------------------
  5 +DROP TABLE IF EXISTS `barrage`;
  6 +CREATE TABLE `barrage` (
  7 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  8 + `message` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '消息内容',
  9 + `user_id` int(11) NOT NULL COMMENT '用户Id',
  10 + `created` bigint(13) NOT NULL COMMENT '发送时间',
  11 + PRIMARY KEY (`id`) USING BTREE
  12 +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '弹幕消息表' ROW_FORMAT = Compact;
  13 +
  14 +-- ----------------------------
  15 +-- Table structure for item
  16 +-- ----------------------------
  17 +DROP TABLE IF EXISTS `item`;
  18 +CREATE TABLE `item` (
  19 + `id` int(11) NOT NULL AUTO_INCREMENT,
  20 + `item_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '节目名称',
  21 + `performer_list` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '演员名称',
  22 + PRIMARY KEY (`id`) USING BTREE
  23 +) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '节目表信息' ROW_FORMAT = Compact;
  24 +
  25 +-- ----------------------------
  26 +-- Records of item
  27 +-- ----------------------------
  28 +INSERT INTO `item` VALUES (1, '舞蹈:《名字太长容易被记住的一段尬舞》', '');
  29 +INSERT INTO `item` VALUES (2, '小品:《浪漫办公室》', '');
  30 +INSERT INTO `item` VALUES (3, '小品:《我是神仙》', '');
  31 +INSERT INTO `item` VALUES (4, '相声:《程序员的那些事》', '');
  32 +INSERT INTO `item` VALUES (5, '舞蹈:《重返1990》', '');
  33 +INSERT INTO `item` VALUES (6, '歌曲:《贝加尔湖畔》', '');
  34 +INSERT INTO `item` VALUES (7, '舞蹈:《我是一颗糖》', '');
  35 +INSERT INTO `item` VALUES (8, '小品:《三句半》', '');
  36 +INSERT INTO `item` VALUES (9, '歌曲:《知否知否》', '');
  37 +INSERT INTO `item` VALUES (10, '小品:《畅移四美》', '');
  38 +INSERT INTO `item` VALUES (11, '舞蹈:《追舞者》', '');
  39 +
  40 +-- ----------------------------
  41 +-- Table structure for item_vote
  42 +-- ----------------------------
  43 +DROP TABLE IF EXISTS `item_vote`;
  44 +CREATE TABLE `item_vote` (
  45 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  46 + `item_id` int(11) NOT NULL COMMENT '节目ID',
  47 + `user_id` int(11) NOT NULL COMMENT '用户ID',
  48 + PRIMARY KEY (`id`) USING BTREE
  49 +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '节目投票表' ROW_FORMAT = Compact;
  50 +
  51 +-- ----------------------------
  52 +-- Table structure for lottery
  53 +-- ----------------------------
14 54 DROP TABLE IF EXISTS `lottery`;
15   -CREATE TABLE `lottery` (
16   - `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增ID',
17   - `user_id` int(10) NOT NULL UNIQUE DEFAULT 0 COMMENT '用户id',
18   - `award` varchar(50) NOT NULL DEFAULT '' COMMENT '奖品',
19   - `is_cancel` int NOT NULL DEFAULT 0 COMMENT '是否取消 0=否 1=是',
20   - `is_next` int NOT NULL DEFAULT 0 COMMENT '取消中奖后是否能再次参与 0=不能 1=能',
21   - `created` bigint(13) unsigned NOT NULL DEFAULT '0' COMMENT '创建时间',
22   - PRIMARY KEY (`id`)
23   -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='中奖记录表';
24   -
25   --- 抽奖设置
  55 +CREATE TABLE `lottery` (
  56 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  57 + `user_id` int(11) NOT NULL COMMENT '用户id',
  58 + `prize_id` int(11) NOT NULL COMMENT '奖项ID',
  59 + `is_cancel` tinyint(1) NOT NULL COMMENT '是否取消 0=否 1=是',
  60 + `is_next` tinyint(1) NOT NULL COMMENT '取消中奖后是否能再次参与 0=不能 1=能',
  61 + `created` bigint(13) NOT NULL COMMENT '创建时间',
  62 + PRIMARY KEY (`id`) USING BTREE
  63 +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '中奖记录表' ROW_FORMAT = Compact;
  64 +
  65 +-- ----------------------------
  66 +-- Table structure for prize
  67 +-- ----------------------------
  68 +DROP TABLE IF EXISTS `prize`;
  69 +CREATE TABLE `prize` (
  70 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  71 + `prize_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '奖项名称',
  72 + PRIMARY KEY (`id`) USING BTREE
  73 +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '奖项表' ROW_FORMAT = Compact;
  74 +
  75 +-- ----------------------------
  76 +-- Records of prize
  77 +-- ----------------------------
  78 +INSERT INTO `prize` VALUES (1, '一等奖');
  79 +INSERT INTO `prize` VALUES (2, '二等奖');
  80 +INSERT INTO `prize` VALUES (3, '三等奖');
  81 +INSERT INTO `prize` VALUES (4, '四等奖');
  82 +INSERT INTO `prize` VALUES (5, '五等奖');
  83 +
  84 +-- ----------------------------
  85 +-- Table structure for setting
  86 +-- ----------------------------
26 87 DROP TABLE IF EXISTS `setting`;
27   -CREATE TABLE `setting` (
28   - `key` char(50) NOT NULL UNIQUE COMMENT '键',
29   - `value` varchar(500) NOT NULL DEFAULT '' COMMENT '值',
30   - `note` varchar(255) NOT NULL DEFAULT '' COMMENT '描述'
31   -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='抽奖设置';
32   -
33   -INSERT INTO `setting` values('isStopSign','1','是否停止注册 1=停止 2=开启');
34   -INSERT INTO `setting` values('isStartVote','1','是否开启节目投票通道 1=开启 2=关闭');
35   -INSERT INTO `setting` values('voteUrl','https://yq.vchangyi.com/B7BCF1B00A692CB96953A60ECF016356/Questionnaire/h5/index.html#/app/page/questionnaire/fillin-questionnaire?_identifier=yuanquan&qu_id=20129','节目投票通道url');
  88 +CREATE TABLE `setting` (
  89 + `key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '键',
  90 + `value` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '值',
  91 + `note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '描述'
  92 +) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '抽奖设置' ROW_FORMAT = Compact;
  93 +
  94 +-- ----------------------------
  95 +-- Records of setting
  96 +-- ----------------------------
  97 +INSERT INTO `setting` VALUES ('isStopSign', '1', '是否停止注册 1=停止 2=开启');
  98 +INSERT INTO `setting` VALUES ('isStartVote', '1', '是否开启节目投票通道 1=开启 2=关闭');
  99 +INSERT INTO `setting` VALUES ('voteUrl', 'https://yq.vchangyi.com/B7BCF1B00A692CB96953A60ECF016356/Questionnaire/h5/index.html#/app/page/questionnaire/fillin-questionnaire?_identifier=yuanquan&qu_id=20129', '节目投票通道url');
  100 +
  101 +-- ----------------------------
  102 +-- Table structure for table_position
  103 +-- ----------------------------
  104 +DROP TABLE IF EXISTS `table_position`;
  105 +CREATE TABLE `table_position` (
  106 + `id` int(11) NOT NULL AUTO_INCREMENT,
  107 + `number` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '桌位编号',
  108 + PRIMARY KEY (`id`) USING BTREE
  109 +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '桌位表' ROW_FORMAT = Compact;
  110 +
  111 +-- ----------------------------
  112 +-- Table structure for user
  113 +-- ----------------------------
  114 +DROP TABLE IF EXISTS `user`;
  115 +CREATE TABLE `user` (
  116 + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增ID',
  117 + `realname` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '姓名',
  118 + `headimg` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '自拍图片',
  119 + `openid` char(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '微信openid',
  120 + `status` int(1) NOT NULL DEFAULT 1 COMMENT '1=正常 2=删除 3=其他组织',
  121 + `prize_no` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '奖号',
  122 + `table_no` int(11) NOT NULL DEFAULT 0 COMMENT '桌位号',
  123 + `created` bigint(13) NOT NULL DEFAULT 0 COMMENT '创建时间',
  124 + PRIMARY KEY (`id`) USING BTREE
  125 +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户表' ROW_FORMAT = Compact;
  126 +
... ...
phpapi/api.AddUser.php
... ... @@ -14,29 +14,18 @@
14 14 if (!isset($_POST['realname']) || !isset($_POST['mediaId'])) {
15 15 JsonResponse::error('姓名或照片不能为空');
16 16 }
17   - // 坐标不能为空
18   - if (!isset($_POST['latitude']) || !isset($_POST['longitude'])) {
19   - JsonResponse::error('用户坐标不能为空');
20   - }
  17 +
21 18 // 登录验证,验证cookie是否有openid,没有前端走微信openid获取流程
22 19 if (!isset($_COOKIE['openid'])) {
23 20 JsonResponse::error('进入姿势不对?');
24   - }
25   - // 年会签到地址
26   - $config = include('Common/config.php');
27   - $partyLat = $config['latitude'];
28   - $partyLng = $config['longitude'];
29   - $distance = getDistance($partyLng, $partyLat, $_POST['longitude'], $_POST['latitude']);
30   - // 签掉距离不能大于200m,配置文件设置
31   - if ($distance > $config['distance']) {
32   - JsonResponse::error('不在签到范围内');
33 21 }
  22 +
34 23 // 姓名唯一
35 24 $realname = $_POST['realname'];
36 25 $mysql = new mysqlHelper();
37 26 $data = $mysql->fetch("SELECT id FROM user WHERE realname = ?", [ $realname ]);
38   - if ($data) {
39   - JsonResponse::error("Hello {$_POST['realname']} ,你的姓名重复了");
  27 + if (!isset($data)) {
  28 + JsonResponse::error('姓名不存在');
40 29 }
41 30 // 获取头像数据,从微信临时素材图片中。
42 31 $wechat = new WechatHelper();
... ... @@ -52,43 +41,23 @@
52 41 fclose($fp);
53 42  
54 43 // 组装新增用户需要的数据
55   - $params[] = $_POST['realname'];
56 44 $params[] = 'http://' . $_SERVER['SERVER_NAME'] . $tarfilename;
57 45 // 这里openid解密
58 46 $enctypt = new Encrypter();
59 47 $params[] = $enctypt->decrypt($_COOKIE['openid']);
  48 + $params[] = $_POST['realname'];
60 49 $time = time();
  50 +
61 51 // pdo保存数据
62   - $updateSql = "UPDATE user SET realname = ?, headimg = ?, `status` = 1, created = {$time} WHERE openid = ?;";
  52 + $updateSql = "UPDATE user SET headimg = ?, `status` = 1,`openid` = 1, created = {$time} WHERE realname = ?;";
63 53 $rowCount = $mysql->update($updateSql, $params);
64 54 if ($rowCount) {
65   - JsonResponse::result(['distance' => $distance]);
  55 + JsonResponse::result([]);
66 56 } else {
67   - JsonResponse::error('报名失败');
68   - }
69   -
70   -
71   - function rad($dis)
72   - {
73   - return round($dis * (3.1415926535898 / 180), 6);
74   - }
75   - // 计算距离
76   - function getDistance($lat1, $lng1, $lat2, $lng2)
77   - {
78   - $lat1 = round($lat1, 6);
79   - $lng1 = round($lng1, 6);
80   - $lat2 = round($lat2, 6);
81   - $lng2 = round($lng2, 6);
82   - $radLat1 = rad($lat1);
83   - $radLat2 = rad($lat2);
84   - $a = $radLat1 - $radLat2;
85   - $b = rad($lng1) - rad($lng2);
86   - $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)));
87   - $s = round($s * 6378137, 0);
88   - return $s;
  57 + JsonResponse::error('签到失败');
89 58 }
90 59  
91   - // 验证注册通道是否关闭
  60 + // 验证签到通道是否关闭
92 61 function isStopSign()
93 62 {
94 63 $mysql = new mysqlHelper();
... ...
phpapi/apicp.SignIn.php 0 → 100644
  1 +<?php
  2 + /**
  3 + * 通过姓名签名 暂不使用
  4 + */
  5 +
  6 + include "Common/JsonResponse.php";
  7 + include "Common/mysqlHelper.php";
  8 + include "Common/WechatHelper.php";
  9 + include "Common/Encrypter.php";
  10 +
  11 + // 头像,姓名必填
  12 + if (!isset($_POST['realname'])) {
  13 + JsonResponse::error('姓名不能为空');
  14 + }
  15 +
  16 + $realname = $_POST['realname'];
  17 +
  18 + $mysql = new mysqlHelper();
  19 + $data = $mysql->fetch("SELECT id,realname,headimg,table_no,prize_no FROM user WHERE realname = ?", [$realname]);
  20 +
  21 + // 头像,姓名必填
  22 + if (!isset($data)) {
  23 + JsonResponse::error('姓名不存在');
  24 + }
  25 +
  26 + JsonResponse::result(['data' => $data]);
  27 +
... ...
phpapi/apicp.UploadHeadImg.php 0 → 100644
  1 + <?php
  2 + /**
  3 + * 用户上传头像 暂不使用
  4 + */
  5 +
  6 + include "Common/JsonResponse.php";
  7 + include "Common/mysqlHelper.php";
  8 + include "Common/WechatHelper.php";
  9 + include "Common/Encrypter.php";
  10 +
  11 + // id,头像
  12 + if (!isset($_POST['id']) || !isset($_POST['mediaId'])) {
  13 + JsonResponse::error('传参错误');
  14 + }
  15 +
  16 + // 姓名唯一
  17 + $id = $_POST['id'];
  18 + $mysql = new mysqlHelper();
  19 + $data = $mysql->fetch("SELECT id FROM user WHERE id = ?", [$id]);
  20 + if (!isset($data)) {
  21 + JsonResponse::error('用户不存在');
  22 + }
  23 + // 获取头像数据,从微信临时素材图片中。
  24 + $wechat = new WechatHelper();
  25 + $img = $wechat->getMedia($_POST['mediaId']);
  26 +
  27 + // 保存图片
  28 + $filename = time() . rand(1000, 9999) . ".jpg";
  29 + $tarfilename = "/party/upload/" . $filename;
  30 + $dir = str_replace('\\', '/', realpath(dirname(__FILE__) . '/'));
  31 + $dir = rtrim($dir, '/party/phpapi/');
  32 + $fp = fopen($dir . $tarfilename, "w");
  33 + fwrite($fp, $img);
  34 + fclose($fp);
  35 +
  36 + // 组装用户需要的数据
  37 + $headimg = 'http://' . $_SERVER['SERVER_NAME'] . $tarfilename;
  38 + $time = time();
  39 +
  40 + // pdo保存数据
  41 + $updateSql = "UPDATE user SET headimg = {$headimg}, created = {$time} WHERE id = {$id};";
  42 + $rowCount = $mysql->update($updateSql);
  43 +
  44 + if ($rowCount) {
  45 + JsonResponse::result([
  46 + 'headimg' => $headimg
  47 + ]);
  48 + } else {
  49 + JsonResponse::error('头像上传失败');
  50 + }
  51 +
  52 +
... ...