$code, 'msg' => lang('EP01008'), 'data' => [], ]; } if(empty($title)){ return [ 'code' => $code, 'msg' => lang('EP01010'), 'data' => [], ]; } if(empty($content)){ return [ 'code' => $code, 'msg' => lang('EP01011'), 'data' => [], ]; } if(empty($messageVerify)){ return [ 'code' => $code, 'msg' => lang('EP01012'), 'data' => [], ]; } $getData = [ 'platform_code' => $systemKey, 'messageVerify' => $messageVerify, ]; // 验证传参. $validate = Loader::validate('Message'); if (!$validate->scene('getMessage')->check($getData)) { return [ 'code' => $code, 'msg' => $validate->getError(), 'data' => [], ]; } // 验证token. $MessageVerifyWhere['message_verify'] = $messageVerify; $messageVerify = model('MessageVerify')->selectMessageVerify($MessageVerifyWhere); $messageVerify = $messageVerify['data']; $nowTime = strtotime(date('Y-m-d H:i:s').'-10 min'); if (!$messageVerify || $messageVerify['message_verify_time'] < $nowTime) { return [ 'code' => $code, 'msg' => lang('EP01003'), 'data' => [], ]; } // 删除该验证缓存. model('MessageVerify')->delMessageVerify($MessageVerifyWhere); // 查询平台信息. $platformWhere = [ 'platform_code' => $systemKey, 'platform_status' => 1, ]; $platform = model('Platform') ->field(['platform_id', 'platform_identity']) ->where($platformWhere) ->find(); // 查询平台订阅用户. $userPlatformWhere = [ 'platform_id' => $platform['platform_id'], 'user_status' => 1, ]; $userPlatform = model('UserPlatform') ->field(['a.user_identity']) ->alias('a') ->join('user b', 'a.user_identity = b.user_identity') ->where($userPlatformWhere) ->select(); $userPlatform = array_unique($userPlatform, SORT_REGULAR); DB::startTrans(); // 消息入库. $messageIdentity = UUID(); $addMessageData = [ 'message_title' => $title, 'message_content' => $content, 'message_identity' => $messageIdentity, 'message_time' => time(), 'message_ip' => $_SERVER['REMOTE_ADDR'], 'platform_identity' => $platform['platform_identity'], ]; $addMessage = $this->insert($addMessageData); // 消息订阅入库. $addError = false; foreach ($userPlatform as $v) { $addUsrMsgData = [ 'message_identity' => $messageIdentity, 'user_identity' => $v['user_identity'], ]; $addUserMessage = model('MessageUser')->insert($addUsrMsgData); if (empty($addUserMessage) === true) { $addError = true; } } if ($addError === false && empty($addMessage) === false) { DB::commit(); return [ 'code' => 1, 'msg' => lang('MC01006'), 'data' => [], ]; } else { DB::rollback(); return [ 'code' => $code, 'msg' => lang('EC01004'), 'data' => [], ]; } }//end getMessage() /** * 消息发送 */ public function sendMessage() { $userToken = input('get.userToken'); // 获取用户信息. $getUserInfo = model('user')->currentUser($userToken); $getUserInfo = $getUserInfo['data']; // 消息取出. $where['user_identity'] = $getUserInfo['userId']; $getMessage = model('MessageUser') ->field(['b.message_id', 'message_title', 'message_content', 'message_time']) ->alias('a') ->join('message b', 'a.message_identity = b.message_identity') ->join('platform c', 'b.platform_identity = c.platform_identity', 'left') ->where($where) ->select(); // 消息删除. //model('MessageUser')->where($where)->delete(); return [ 'code' => 1, 'msg' => lang('MC01005'), 'data' => $getMessage, ]; }//end sendMessage() /** * 获取消息发送验证 */ public function sendMsgVerify() { $code = -2; // 接收参数. $platformCode = input('get.platformCode'); if(empty($platformCode)){ return [ 'code' => $code, 'msg' => lang('EP01008'), 'data' => [], ]; } $getData = ['platform_code' => $platformCode]; // 验证传参. $validate = Loader::validate('Message'); if (!$validate->scene('getMessage')->check($getData)) { return [ 'code' => $code, 'msg' => $validate->getError(), 'data' => [], ]; } // 查询平台信息. $platformWhere = [ 'platform_code' => $platformCode, 'platform_status' => 1, ]; $platform = model('Platform') ->field(['platform_id']) ->where($platformWhere) ->find(); if (empty($platform) === true) { return [ 'code' => $code, 'msg' => lang('EC01002'), 'data' => [], ]; } // 生成验证. $messageVerify = randomPassword(); $verifyData = [ 'message_verify_time' => time(), 'message_verify' => $messageVerify, ]; $addMessageVerify = model('MessageVerify')->addMessageVerify($verifyData); return [ 'code' => 1, 'msg' => lang('MC01005'), 'data' => ['messageVerify' => $messageVerify], ]; }//end sendMsgVerify() }