Commit de11c73a authored by clone's avatar clone Committed by hujun

Merge branch 'chat_0818' into test

# Conflicts: # application/model/Agents.php
parents b0a63d00 83f6c7cd
...@@ -95,12 +95,12 @@ class Shop extends Basic ...@@ -95,12 +95,12 @@ class Shop extends Basic
if (isset($params['area_start']) && isset($params['area_end'])) { if (isset($params['area_start']) && isset($params['area_end'])) {
$conditions['a.room_area'] = array( 'between', array( $params['area_start'], $params['area_end'] ) ); $conditions['a.room_area'] = array( 'between', array( $params['area_start'], $params['area_end'] ) );
//街铺只有一个room_area //街铺只有一个room_area
if($params['shangpu_type'] == 0){ if ($params['shangpu_type'] == 0) {
$conditions['a.room_area2'] = array( 'between', array( $params['area_start'], $params['area_end'] ) ); $conditions['a.room_area2'] = array( 'between', array( $params['area_start'], $params['area_end'] ) );
} }
} else if (isset($params['area_start']) && !isset($params['area_end'])) { //100米以上不用传结束面积 } else if (isset($params['area_start']) && !isset($params['area_end'])) { //100米以上不用传结束面积
$conditions['a.room_area'] = array( 'egt', $params['area_start'] ); $conditions['a.room_area'] = array( 'egt', $params['area_start'] );
if($params['shangpu_type'] == 0){ if ($params['shangpu_type'] == 0) {
$conditions['a.room_area2'] = array( 'egt', $params['area_start'] ); $conditions['a.room_area2'] = array( 'egt', $params['area_start'] );
} }
} }
......
<?php
use app\api_broker\extend\Basic;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/24
* Time : 14:24
* Intro:
*/
class FollowUp extends Basic{
public function __construct($request = null)
{
parent::__construct($request);
}
/**
* 报备
*/
public function report(){
$params = $this->params;
$params = array(
"user_id" => 1,
"shop_ids"=> "1,2,3",
""
);
$this->response("200","request success",[]);
}
}
\ No newline at end of file
<?php
namespace app\chat\controller;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/8
* Time : 16:54
* Intro:
*/
use app\chat\consts\ErrorCodeConst;
use app\chat\extend\Basic;
use app\chat\service\ChatService;
use app\chat\utils\RPush;
use app\extra\RedisPackage;
use app\model\ChatMsg;
use app\model\GHousesExt;
use app\model\HouseImgs;
use app\model\HouseinfoExts;
use app\model\HouseInfos;
use think\Cache;
use Think\Log;
class AppChat extends Basic
{
/**
* @var RPush
*/
private $_push;//环信接口消息推送
/**
* @var ChatService
*/
private $_chat;
public function __construct($request = null)
{
parent::__construct($request);
$this->_push = new RPush();
$this->_chat = new ChatService();
}
public function index()
{
/*
log 常规日志,用于记录日志
error 错误,一般会导致程序的终止
notice 警告,程序可以运行但是还不够完美的错误
info 信息,程序输出信息
debug 调试,用于调试信息
sql SQL语句,用于SQL记录,只在数据库的调试模式开启时有效
*/
Cache::set('name', '121212');
echo Cache::get('name');
$redis = new RedisPackage();
$redis::set('test', 'hello redis');
echo $redis::get('test');
Log::record('日志', 'notice');
return null;
}
/**
* 验证用户角色,生成唯一id
*
* @return \think\Response
*/
public function userChat()
{
/* $params = array(
"user_id" => 10,
"mobile" => "15821506182",
"source" => 1 //1经纪人 2用户
);*/
$params = $this->params;
if (!isset($params['user_id']) || !isset($params['mobile']) || !isset($params['source'])) {
return $this->response(ErrorCodeConst::ERROR_CODE_PARAM_NOT_EXIST, "请求参数错误");
}
$user_id = $params['user_id'];
$mobile = $params['mobile'];
$source = $params['source'];
if (!$user_id || !$mobile || !$source) {
return $this->response(ErrorCodeConst::ERROR_CODE_PARAM_NOT_EXIST, "请求参数错误");
}
$only_arr = $this->_chat->register($user_id, $mobile, $source);
if ($only_arr["code"] == 200) {
return $this->response("200", "success", [ "only_id" => $only_arr["only_id"] ]);
} else {
return $this->response("101", $only_arr["msg"]);
}
}
/**
* 获取经纪人或用户的信息
* @return \think\Response
*/
public function getUserOrAgentInfo()
{
$params = $this->params;
if (!isset($params['only_id']) || !isset($params['source'])) {
return $this->response(ErrorCodeConst::ERROR_CODE_PARAM_NOT_EXIST, "请求参数错误");
}
/* $params = array(
"only_id" => "agent_9",
"source" => 2,// 1经纪人 or 2用户
);*/
$result = $this->_chat->getUserInfo($params['only_id'], $params["source"]);
if ($result) {
return $this->response("200", "request success", $result);
}
return $this->response("101", "request error ,not fund list", []);
}
/**
* 发送消息接口
* @return \think\Response
*/
public function pushMsg()
{
$params = $this->params;
if (!isset($params['target_type']) || !isset($params['target']) || !isset($params['type'])
|| !isset($params['msg_content']) || !isset($params['source']) || !isset($params['is_user']) || !isset($params['from'])) {
return $this->response(ErrorCodeConst::ERROR_CODE_PARAM_NOT_EXIST, "请求参数错误");
}
/* $params = array(
'user_name' => 'cesh',
'msg_content' => 'ceshi666',
'target_type' => 'users',
'source' => '1',
'from' => 'admin',
'type' => '1',
'is_user' => '0',
'target' => '18112347151',
);*/
$user_name = isset($params['user_name']) ? $params['user_name'] : $params['from'];//用户昵称
$target_type = $params['target_type']; // 消息类型 users 给用户发消息。chatgroups: 给群发消息,chatrooms: 给聊天室发消息
$target = $params['target']; //接受人 if target_type 群 者表示群id
$source = $params['source']; //消息来源 1c端app 2b端app 3其他
$is_user = $params['is_user']; //发送人是否是会员 0是1经济人
$type = $params['type']; //消息类型 1文字 2图片 3楼盘
$msg_content = $params['msg_content'];
$from = $params['from']; //消息发送人
if ($target_type != "users" && $target_type != "chatgroups" && $target_type != "chatrooms") {
return $this->response(ErrorCodeConst::ERROR_CODE_TARGET_TYPE_ERROR, "错误的消息类型");
}
$result = $this->_chat->sendMsg($user_name,$target_type, $target, $source, $is_user, $type, $msg_content, $from, $this->accessToken);
if ($result) {
return $this->response("200", "", [ "msg" => "消息发送成功" ]);
} else {
return $this->response("101", "", [ "msg" => "消息内容错误" ]);
}
}
/**
* 查询历史和搜索历史
* @return \think\Response
*/
public function getChatHistory()
{
$params = $this->params;
if (!isset($params['target_type']) || !isset($params['from']) || !isset($params['target'])) {
return $this->response(ErrorCodeConst::ERROR_CODE_PARAM_NOT_EXIST, "请求参数错误");
}
/* $params = array(
'target_type' => 'users', // 消息类型 users 用户消息。chatgroups: 群消息,chatrooms: 聊天室消息
'from' => 'app_64', //发送人
'target' => '18112347151', //接受人
'page_no' => '1', //第几页
'page_size' => '15' //每页多少条
);*/
$page_no = empty($params['page_no']) ? 1 : $params['page_no'];
$page_size = empty($params['page_size']) ? 15 : $params['page_size'];
$field = "a.id,a.to_id,a.from_id,a.created_at,b.type,b.body";
$msgModel = new ChatMsg();
$history_result = $msgModel->getChatHistory($params, $field, $page_no, $page_size);
return $this->response("200", "request success", array_reverse($history_result));
}
/**
* 上传聊天图片
* @return \think\Response
*/
public function uploadImg()
{
$file = request()->file('image');
$data = [];
if ($file) {
$path = ROOT_PATH . 'public' . DS . 'static' . DS . 'chat_image';
$info = $file->validate([ 'size' => 512000, 'ext' => 'jpg,png' ])//限制500KB
->move($path);
if ($info) {
$img_path = $info->getSaveName(); //生成的图片路径
$static_path = $path . DS . $img_path; //生成图片的绝对路径
$image = \think\Image::open($static_path);
$image->thumb(500, 500)->save($static_path); //生成缩略图
$data = [ 'name' => $img_path ];
} else {
// 上传失败获取错误信息
return $this->response("101", $file->getError());
}
} else {
return $this->response("101", "没有该文件");
}
return $this->response("200", "request success", $data);
}
/**
* 聊天页面获取三个商铺信息
* @return \think\Response
*/
public function pushMsg_gethouseinfo()
{
$homeurl = IMG_PATH;
$params = $this->params;
/*$params['id']=4762;
$params['from']='b';*/
if (!isset($params['id']) || !isset($params['from'])) {
return $this->response("300", "参数不全", [ 'remote_groupid' => '' ]);
}
$id = $params['id'];
$from = $params['from'];
//主表查询商铺详细信息
$HouseInfos = new HouseInfos();
$HouseInfosre = $HouseInfos->getHousepusmessage($id);
//dump($HouseInfosre);
if ($HouseInfosre) {
$data['title'] = $HouseInfosre[0]['title'];
if ($from == 'c') {
//副表查询c端显示名称
$HouseinfoExts = new HouseinfoExts();
$HouseinfoExtsInfosre = $HouseinfoExts->getHouse_ext($id);
//dump($HouseinfoExtsInfosre);
$data['title'] = $HouseinfoExtsInfosre[0]['foreign_name'] ? $HouseinfoExtsInfosre[0]['foreign_name'] : '未知商铺';
}
//dump($HouseInfosre[0]['room_area']);
//dump($HouseInfosre[0]['room_area2']);
$room_area = $HouseInfosre[0]['room_area'] ? $HouseInfosre[0]['room_area'] : '';
$room_area2 = $HouseInfosre[0]['room_area2'] ? '-' . $HouseInfosre[0]['room_area2'] : '';
$data['room_area_all'] = '暂无!';
if ($room_area || $room_area2) {
$data['room_area_all'] = $room_area . $room_area2 . 'm²';
}
$data['price'] = '暂无!';
if ($HouseInfosre[0]['rent_type']) {
//rent_type COMMENT '1.月租金 2.营业额扣点 3.每平方米租金',
$message[1] = '月租金:' . $HouseInfosre[0]['price'] . '元/月';
$message[2] = '营业额扣点:' . $HouseInfosre[0]['price'] . '%';
$message[3] = '每平方米租金:' . $HouseInfosre[0]['price'] . '元/天/㎡';
$data['price'] = $message[$HouseInfosre[0]['rent_type']];
}
//同联默认图片,如果用户没上传的话/img/houseinfobackgroundimg.png
$data['imagename'] = $homeurl . '/img/houseinfobackgroundimg_new.png';
$HouseImgs = new HouseImgs();
$HouseImgsre = $HouseImgs->getHouseImgs($id, 1);
//用户上传了就用上传的
if ($HouseImgsre) {
$data['imagename'] = $homeurl . '/small_' . $HouseImgsre[0]['imagename'];
}
// dump($HouseInfosre);
// dump($data);
// exit;
return $this->response("200", "success!", $data);
} else {
return $this->response("400", "暂无数据!");
}
}
}
<?php
namespace app\chat\controller;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/23
* Time : 13:47
* Intro:
*/
use app\chat\extend\Basic;
use app\chat\utils\UGroup;
use app\model\ChatGroup;
use app\model\ChatGroupMember;
use phpDocumentor\Reflection\DocBlock\Tags\Return_;
use think\Db;
class Group extends Basic
{
public function createGroupByOnlyId()
{
//todo 组群创建 1.存表,2调用环信接口
$params = $this->params;
//exit;
/*$params['group_name']='雷神先锋';
$params['group_users']=["18112347151"];
$params['group_users_admin']="admin";*/
if (!isset($params['group_name']) || !isset($params['group_users']) || !isset($params['group_users_admin'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_name = $params['group_name'];
$group_users = $params['group_users'];
$group_users_admin = $params['group_users_admin'];
$UGroup= new UGroup();
$result = $UGroup->createGroup($group_name, $group_users, $group_users_admin,$this->accessToken);
$result=json_decode($result,true);
//var_dump($result);
//判断环信群是否建立成功
if(isset($result['data']['groupid'])){
//群表记录数据
$user = new ChatGroup;
$user->group_name = $group_name;
$user->platform_group_id = $result['data']['groupid'];
$user->type = 0;
$user->is_close = 0;
$user->save();
//群id
$group_id = $user->id;
//var_dump($user->id);
//群成员表表记录数据
$group_users[]=$group_users_admin;
$msgModel = new ChatGroupMember();
foreach ($group_users as $k => $v) {
$msgModel->addChatMsgExt([
'unique_id' => $v,
'group_id' => $group_id,
"type" => ($v == $group_users_admin) ? 1 : 0 ,
"is_close" => 0]);
}
return $this->response("200", "request success", ['remote_groupid'=>$result['data']['groupid']]);
}else{
return $this->response("400", "建群失败", ['remote_groupid'=>'']);
}
}
public function updateGroup()
{
//todo 修改组群信息 1.群信息完善到后台表 无需调用环信接口
}
public function delGroup()
{
//todo 删除群组 1.改变我们group表的状态2.调用环信删群接口
//是否隐藏 0正常 1删除
$params = $this->params;
/*exit;
$params['group_id']='39285903392772';*/
if (!isset($params['group_id'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_id = $params['group_id'];
$UGroup = new UGroup();
$result = $UGroup->deleteGroup($group_id,$this->accessToken);
$result=json_decode($result,true);
//判断环信群是否建立成功
if(isset($result['data']['success']) and $result['data']['success']){
//更新ChatGroup数据
$ChatGroup = new ChatGroup;
$ChatGroupre=$ChatGroup->save(['is_close' => 1],['platform_group_id' => $group_id]);
//更新ChatGroupMember表
$ChatGroup1 = ChatGroup::get(['platform_group_id' => $group_id]);
Db::table('chat_group_member')
->where('group_id',$ChatGroup1['id'])
->update(['is_close' => 1]);
return $this->response("200", "request success");
}else{
return $this->response("400", "删除群组失败", ['remote_groupid'=>'']);
}
}
/**
* 群组管理
*/
public function getGroupUser()
{
//todo 获取群组成员/管理员 我们的数据库获取
$params = $this->params;
// exit;
/*$params['group_id']='39285903392772';
$params['pagenum']=1;//页码,从1开始
$params['pagesize']=10;//每页显示数量,最大不超过1000*/
if (!isset($params['group_id']) and !isset($params['pagenum'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_id = $params['group_id'];
$pagenum = isset($params['pagenum']) ? $params['pagenum'] : 1;
$pagesize = $params['pagesize'];
/* $UGroup = new UGroup();
$result = $UGroup->getGroupUser($group_id,$pagenum,$pagesize,$this->accessToken);
$result=json_decode($result,true);*/
$pre = ($pagenum-1)*$pagesize;
$GroupUser=Db::query("SELECT * FROM chat_group_member WHERE group_id=(SELECT id FROM chat_group WHERE platform_group_id={$group_id}) AND is_close=0 LIMIT {$pre},{$pagesize} ");
//var_dump($GroupUser) ;
$total=Db::query("SELECT count(*) as total FROM chat_group_member WHERE group_id=(SELECT id FROM chat_group WHERE platform_group_id={$group_id}) AND is_close=0");
//var_dump($total[0]['total']) ;
$total = $total[0]['total'];
$total = intval($total / $pagesize) + (($total % $pagesize == 0) ? 0 : 1);
//判断环信群是否建立成功
if($GroupUser){
return $this->response("200", "request success",['user_date'=>$GroupUser,'pagenum'=>$pagenum,'total'=>$total]);
}else{
return $this->response("400", "获取失败");
}
}
public function addGroupUserByIds()
{
//todo 添加群组成员 1.单个/多个到表中,2.调用环信接口更新进去
$params = $this->params;
//exit;
/*$params['group_users']=["18112347151"];
$params['group_id']="39285903392772";*/
if (!isset($params['group_id']) and !isset($params['group_users'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_users = $params['group_users'];
$group_id = $params['group_id'];
$UGroup = new UGroup();
foreach ($group_users as $k => $v) {
$result = $UGroup->addGroupUserByIds($group_id,$v,$this->accessToken);
$result=json_decode($result,true);
//var_dump($result) ;
if(isset($result['data']['result']) and $result['data']['result']){
$Dbreturn=Db::query("SELECT id FROM chat_group WHERE platform_group_id={$group_id}");
$chat_group_group_id=$Dbreturn[0]['id'];
//先查询是否已经存在
$chat_group_member=Db::query("SELECT * FROM chat_group_member WHERE unique_id={$v} AND group_id={$chat_group_group_id}");
if($chat_group_member){
//var_dump($chat_group_group_id) ;
$msgModel = new ChatGroupMember();
$msgModel ->where(['unique_id'=>$v,'group_id'=>$chat_group_group_id])
->update(['is_close' => 0]);
}else{
//var_dump($chat_group_group_id) ;
$msgModel = new ChatGroupMember();
$msgModel ->addChatMsgExt([
'unique_id' => $v,
'group_id' => $chat_group_group_id,
"type" => 0 ,
"is_close" => 0]);
}
}
}
return $this->response("200", "request success");
}
public function delGroupUserByIds()
{
//todo 移除群组成员 1.单个或多个跟新到库, 2.调用环信接口更新
$params = $this->params;
//exit;
/*$params['group_users']=["18112347151"];
$params['group_id']="39285903392772";*/
if (!isset($params['group_id']) and !isset($params['group_users'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_users = $params['group_users'];
$group_id = $params['group_id'];
$UGroup = new UGroup();
foreach ($group_users as $k => $v) {
$result = $UGroup->delGroupUserByIds($group_id,$v,$this->accessToken);
$result=json_decode($result,true);
//var_dump($result) ;
if(isset($result['data']['result']) and $result['data']['result']){
$Dbreturn=Db::query("SELECT id FROM chat_group WHERE platform_group_id={$group_id}");
$chat_group_group_id=$Dbreturn[0]['id'];
//var_dump($chat_group_group_id) ;
$msgModel = new ChatGroupMember();
$msgModel ->where(['unique_id'=>$v,'group_id'=>$chat_group_group_id])
->update(['is_close' => 1]);
}
}
return $this->response("200", "request success");
}
public function addGroupManage()
{
//todo 添加群组管理员 1.单个更新到库, 2.调用环信接口更新
$params = $this->params;
//exit;
/*$params['group_user']="18112347151";
$params['group_id']="39285903392772";*/
if (!isset($params['group_id']) and !isset($params['group_user'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_user = $params['group_user'];
$group_id = $params['group_id'];
$UGroup = new UGroup();
$result = $UGroup->addGroupManage($group_id,$group_user,$this->accessToken);
$result=json_decode($result,true);
//var_dump($result) ;
if(isset($result['data']['result']) and $result['data']['result']=='success'){
$Dbreturn=Db::query("SELECT id FROM chat_group WHERE platform_group_id={$group_id}");
$chat_group_group_id=$Dbreturn[0]['id'];
//先查询是否已经存在
$chat_group_member=Db::query("SELECT * FROM chat_group_member WHERE unique_id={$group_user} AND group_id={$chat_group_group_id}");
if($chat_group_member){
//var_dump($chat_group_group_id) ;
$msgModel = new ChatGroupMember();
$msgModel ->where(['unique_id'=>$group_user,'group_id'=>$chat_group_group_id])
->update(['type' => 1]);
}
return $this->response("200", "request success");
}else{
return $this->response("400", "添加失败!");
}
}
public function delGroupManage()
{
//todo 移除群组管理员 1.单个更新到库, 2.调用环信接口更新
$params = $this->params;
//exit;
/*$params['group_user']="18112347151";
$params['group_id']="39285903392772";*/
if (!isset($params['group_id']) and !isset($params['group_user'])) {
return $this->response("300", "参数不全", ['remote_groupid'=>'']);
}
$group_user = $params['group_user'];
$group_id = $params['group_id'];
$UGroup = new UGroup();
$result = $UGroup->delGroupManage($group_id,$group_user,$this->accessToken);
$result=json_decode($result,true);
//var_dump($result) ;
if(isset($result['data']['result']) and $result['data']['result']=='success'){
$Dbreturn=Db::query("SELECT id FROM chat_group WHERE platform_group_id={$group_id}");
$chat_group_group_id=$Dbreturn[0]['id'];
//先查询是否已经存在
$chat_group_member=Db::query("SELECT * FROM chat_group_member WHERE unique_id={$group_user} AND group_id={$chat_group_group_id}");
if($chat_group_member){
//var_dump($chat_group_group_id) ;
$msgModel = new ChatGroupMember();
$msgModel ->where(['unique_id'=>$group_user,'group_id'=>$chat_group_group_id])
->update(['type' => 0]);
}
return $this->response("200", "request success");
}else{
return $this->response("400", "添加失败!");
}
}
}
\ No newline at end of file
<?php
namespace app\chat\service;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/8
* Time : 16:54
* Intro:
*/
use app\chat\utils\RegisterUtil;
use app\chat\utils\RPush;
use app\model\Agents;
use app\model\ChatMsg;
use app\model\ChatMsgExt;
use app\model\ChatMsgStatus;
use app\model\ChatRelation;
use app\model\ChatUser;
use app\model\Users;
class ChatService
{
public $connection;
public $logs;
const MSG_CONTENT_TYPE_TEXT = 1; //文字
const MSG_CONTENT_TYPE_VOICE = 2; //语音
const MSG_CONTENT_TYPE_VIDEO = 3; //视频
const MSG_TYPE_USERS = "users"; //给用户发消息
const MSG_TYPE_CHAT_GROUPS = "chatgroups"; //给群发消息
const MSG_TYPE_CHAT_CHAT_ROOMS = "chatrooms"; //给聊天室发消息
const SOURCE_TYPE_APP = 'user_'; // 用户 c端
const SOURCE_TYPE_AGENT = 'agent_';//经纪人 b端
protected $userModel;
protected $agentsModel;
protected $chatUserModel;
public function __construct()
{
$this->userModel = new Users();
$this->agentsModel = new Agents();
$this->chatUserModel = new ChatUser();
}
/**
* @param $user_id
* @param $mobile
* @param $source
* @return array
*/
public function register($user_id, $mobile, $source)
{
//todo
$params["type"] = $source;
$params["user_id"] = $user_id;
$params["phone"] = $mobile;
$fields = "id,type,phone,only_id,password";
$chatUser = $this->chatUserModel->getChatUser($params, $fields);
if (count($chatUser) > 0) {
return [ "code" => "200", "only_id" => $chatUser[0]["only_id"] ];
} else {
$reg = new RegisterUtil();
$only_id = $this->createOnlyId($user_id, $source);
if (!$only_id) {
return [ "code" => "101", "msg" => "user msg not found" ];
}
$response = $reg->registerByCurl($only_id, $mobile);
if ($response) {
//todo insert
$this->insertChatUser($source, $user_id, $mobile, $only_id);
}
return [ "code" => 200, "only_id" => $only_id ];
}
}
/**
* 生成唯一id
* @param $userId integer 用户id
* @param $source integer 来源 '1经纪人 2用户'
* @return string
*/
public function createOnlyId($userId, $source)
{
$onlyId = "";
switch ($source) {
case 1:
$where_["inuse"] = 1;
$where_["id"] = $userId;
$agentsResult = $this->agentsModel->getAgentsById("id", $where_);
if (count($agentsResult) > 0 && $agentsResult[0]['id'] > 0)
$onlyId = self::SOURCE_TYPE_AGENT . $userId;
break;
case 2:
$userResult = $this->userModel->selectUser($userId);
if ($userResult->id)
$onlyId = self::SOURCE_TYPE_APP . $userId;
break;
}
if (!$onlyId) {
//return array( "code" => 101, "msg" => "没找到用户信息" );
return null;
}
return $onlyId;
}
/**
* 删除注册用户
* @param $only_id
* @param $access_token
* @return bool
*/
public function deleteUser($only_id, $access_token)
{
$reg = new RegisterUtil();
$reg->deleteByCurl($only_id, $access_token);
return true;
}
/**
* 发送消息
* @param $user_name
* @param $target_type
* @param $target
* @param $source
* @param $is_user
* @param $type
* @param $msg_content
* @param $from
* @param $accessToken
* @return bool
*/
public function sendMsg($target_type, $target,$source,$is_user, $type, $msg_content, $from, $accessToken)
{
switch ($target_type) {
case self::MSG_TYPE_USERS:
//todo 判断用户是否存在
break;
case self::MSG_TYPE_CHAT_GROUPS:
//todo 判断组群是否存在
break;
case self::MSG_TYPE_CHAT_CHAT_ROOMS:
//todo 判断聊天室是否存在
break;
default:
return [ "code" => 101, "msg" => "消息类型错误" ];
}
//todo
$this->insertMsg($target_type, $target,$source,$is_user, $type, $msg_content, $from);
$rPush = new RPush();
//todo 消息接收人必须是数据
$rPush->send($target_type, $target, $type, $msg_content, $from, $accessToken, [ $this, 'saveSendStatus' ]);
//返回消息发送成功
return true;
}
/**
* 保存推送到环信的消息状态 往msg_status中插入数据
* @param $response
* @param $target
* @param $sender
* @param $msg_content
*/
public function saveSendStatus($response, $target, $sender, $msg_content)
{
$response = json_decode($response, true);
//目前没有针对多人聊天
$status = isset($response["data"][$target[0]]) ? $response["data"][$target[0]] : "faild";
$error_reason = "";
if ($status != "success") {
$error_reason = "环信发送异常";
}
$this->insertPushLog($from, $target[0], $msg_content, $status, $error_reason);
}
/**
* 根据手机号或者onlyId获取用户信息
* @param $only_id
* @param $type 之后扩展
* @return array|false|\PDOStatement|string|\think\Model
*
*/
public function getUserInfo($only_id, $type)
{
$user_phone = $agent_phone = [];
$chat_user_arr = [];
if ($only_id) {
$only_id_arr = explode(",", $only_id);
$where_["only_id"] = array( "in", $only_id_arr );
$where_["status"] = 0;
$field = "type,user_id,phone,only_id";
$chat_user = $this->chatUserModel->getChatUser($where_, $field);
foreach ($chat_user as $v) {
if ($v["type"] == 1) {
array_push($agent_phone, $v["phone"]);
} else {
array_push($user_phone, $v["phone"]);
}
$chat_user_arr[$v["phone"]] = $v["only_id"];
}
}
$info_arr = [];
if (count($agent_phone) > 0) {
$field = "id,realname as user_nick,phone as user_phone,head_portrait as user_pic,CONCAT(agentshopname,'-',sub_shopname) as shop_name";
$where_agent["phone"] = array( "in", $agent_phone );
$where_agent["inuse"] = 1;
$where_agent["level"] = array( "in", [ 2, 5 ] );
$agentsResult = $this->agentsModel->getAgentsById($field, $where_agent);
foreach ($agentsResult as $v) {
if ($v["user_pic"]) {
$v["user_pic"] = TEST_ADMIN_URL_TL . 'user_header/' . $v["user_pic"];
}
$v["only_id"] = $chat_user_arr [$v["user_phone"]];
array_push($info_arr, $v);
}
}
if (count($user_phone) > 0) {
$fields = "id,user_nick,user_phone,user_pic";
$param["status"] = 0;
$param["user_phone"] = array( "in", $user_phone );
$userResult = $this->userModel->getUserByWhere($param, $fields);
foreach ($userResult as $v) {
if ($v["user_pic"]) {
$v["user_pic"] = HEADERIMGURL . $v["user_pic"];
}
$v["only_id"] = $chat_user_arr [$v["user_phone"]];
$v["shop_name"] = "";
array_push($info_arr, $v);
}
}
return $info_arr;
}
/**
* 保存用户发送的消息
* @param $target_type
* @param $target
* @param $source
* @param $is_user
* @param $type
* @param $msg_content
* @param $from
*/
private function insertMsg($target_type, $target, $source, $is_user, $type, $msg_content, $from)
{
//todo
$params["msg_type"] = 1; //目前只用到了环信的文本消息
$params["to_id"] = $target;
$params["from_id"] = $from;
$params["is_group"] = $target_type == "users" ? 0 : 1;
$params["account_type"] = 1;
$params["source"] = $source;
$params["is_user"] = $is_user;
$params["created_at"] = date("Y-m-d H:i:s", time());
$params["updated_at"] = date("Y-m-d H:i:s", time());
$msgModel = new ChatMsg();
$id = $msgModel->addChatMsg($params);
if ($id > 0) {
//todo 插入msg_ext
$group_id = 0;
if ($target_type != "users") {
$group_id = $from;
}
$this->insetMsgExt($id, $type, $msg_content, $params["is_group"], $group_id);
}
}
/**
* @param $target
* @param $from
*/
private function verifyRelation($target, $from)
{
$chatRelationModel = new ChatRelation();
$params["target"] = $target;
$params["from"] = $from;
$relationResult = $chatRelationModel->getChatRelation($params);
if (count($relationResult) == 0) {
//如果没有记录则记录聊天关系
$chatRelationModel->addChatRelation($params);
}
}
/**
* 记录消息body
* @param $id
* @param $type
* @param $msg_content
* @param $is_group
* @param $group_id
*/
private function insetMsgExt($id, $type, $msg_content, $is_group, $group_id)
{
$param["msg_id"] = $id;
$param["type"] = $type;
$param["body"] = $msg_content;
$param["send_type"] = $is_group;
$param["group_id"] = $group_id;
$param["create_at"] = date("Y-m-d H:i:s", time());
$param["updated_at"] = date("Y-m-d H:i:s", time());
$msgExtModel = new ChatMsgExt();
$msgExtModel->addChatMsgExt($param);
}
/** 获取聊天记录
* @param $sender
* @param $start
* @param $limit
* @param $site_id
* @return array
*/
public function getHistoryChatList($sender, $start, $limit, $site_id)
{
//todo
}
/**
* 往chat_msg_status中插入数据,记录推送的状态
* @param $from
* @param $target
* @param $content
* @param $status
* @param $error_reason
* @return bool
*/
public function insertPushLog($from, $target, $content, $status, $error_reason)
{
$param["from"] = $from;
$param["target"] = $target;
$param["content"] = $content;
$param["status"] = $status;
$param["error_reason"] = $error_reason;
$param["create_time"] = date("Y-m-d H:i:s", time());
$model_ = new ChatMsgStatus();
$model_->addChatMsgStatus($param);
return true;
}
/**
* @param $type
* @param $user_id
* @param $phone
* @param $only_id
* @return bool
*/
public function insertChatUser($type, $user_id, $phone, $only_id)
{
$params["type"] = $type;
$params["user_id"] = $user_id;
$params["phone"] = $phone;
$params["only_id"] = $only_id;
$params["password"] = $phone;
$params["last_login_time"] = date("Y-m-d H:i:s", time());
$params["created_at"] = date("Y-m-d H:i:s", time());
$params["updated_at"] = date("Y-m-d H:i:s", time());
$this->chatUserModel->addChatUser($params);
return true;
}
}
\ No newline at end of file
<?php
namespace app\chat\service;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/23
* Time : 14:15
* Intro:
*/
class GroupService
{
//todo
}
\ No newline at end of file
<?php
namespace app\chat\utils;
use app\chat\consts\ConfigConst;
use Think\Log;
use think\Cache;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/8
* Time : 17:17
* Intro: 发送消息类
*/
class RPush
{
/**
* 发送消息
* @param $user_name
* @param $target_type
* @param $target
* @param $msg_content
* @param $from
* @param $type
* @param $access_token
* @param $callback
*/
public function send($user_name,$target_type, $target, $msg_content, $from, $type, $access_token, $callback)
{
//todo
if(Cache::get('save_message_num')){
$save_message_num=Cache::get('save_message_num');
if($save_message_num>10){
sleep(1);
Cache::set('save_message_num', 0);
}else{
$save_message_num=$save_message_num+1;
Cache::set('save_message_num', $save_message_num);
}
}else{
Cache::set('save_message_num', 0);
}
$response = $this->sendRequestByCurl($user_name,$target_type, $target, $msg_content, $from, $type, $access_token);
call_user_func_array([ $callback[0], $callback[1] ], [ $response, $target, $from, $msg_content ]);
}
/** curl参数拼凑
* @param $user_name
* @param $target_type users 给用户发消息。chatgroups: 给群发消息,chatrooms: 给聊天室发消息
* @param $target 注意这里需要用数组,数组长度建议不大于20,即使只有一个用户,也要用数组 ['u1'],给用户发送时数组元素是用户名,
* 给群组发送时数组元素是groupid
* @param $type //目前只有文本的消息
* @param $msg_content
* @param $from
* @param $type
* @param $access_token
* @return \app\chat\utils\CurlResponse|bool
*/
public function sendRequestByCurl($user_name,$target_type, $target, $msg_content, $from, $type, $access_token)
{
$arr = array(
'target_type' => $target_type,
'target' => $target,
'msg' => [ "type" => "txt", "msg" => $msg_content ],
'from' => $from,
'ext' => [ "msg_type" => $type ,"user_name"=>$user_name]
);
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl();
$response = $curl->post($url, $data);
Log::record('info -------------' . json_encode($response), "info");
return $response;
}
/**
* 请求api
* @return string
*/
private function buildSendUrl()
{
return ConfigConst::API_PATH . ConfigConst::ORG_NAME . "/" . ConfigConst::APP_NAME . "/messages";
}
}
\ No newline at end of file
<?php
namespace app\chat\utils;
use app\chat\consts\ConfigConst;
use app\chat\utils;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/18
* Time : 14:47
* Intro: 注册环信用户
*/
class RegisterUtil
{
const IM_REGISTER_USER = "/users";
const IM_DELETE_USER = "/users";
/**
* @param $username
* @param $password
* @return CurlResponse|bool
*/
public function registerByCurl($username, $password)
{
$arr = array(
'username' => $username,
'password' => $password,
);
$data = json_encode($arr);
$curl = new CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl() . self::IM_REGISTER_USER;
$response = $curl->post($url, $data);
return $response;
}
/**
* @param $username
* @param $access_token
* @return CurlResponse|bool
*/
public function deleteByCurl($username, $access_token)
{
$arr = array(
'username' => $username,
);
$data = json_encode($arr);
$curl = new CurlUtil();
$curl->delete();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl() . self::IM_DELETE_USER;
$response = $curl->post($url, $data);
return $response;
}
/**
* 请求api
* @return string
*/
private function buildSendUrl()
{
return ConfigConst::API_PATH . ConfigConst::ORG_NAME . "/" . ConfigConst::APP_NAME;
}
}
\ No newline at end of file
<?php
namespace app\chat\utils;
use app\chat\consts\ConfigConst;
use Think\Log;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/8
* Time : 17:17
* Intro: 发送消息类
*/
class UGroup
{
/** 创建一个群
* 朱伟 2018年01月25日
*/
public function createGroup($group_name, $group_users, $group_users_admin='admin',$access_token)
{
$arr= array(
"groupname"=>$group_name, //群组名称,此属性为必须的
"desc"=>"good", //群组描述,此属性为必须的
"public"=>true, //是否是公开群,此属性为必须的
"maxusers"=>300, //群组成员最大数(包括群主),值为数值类型,默认值200,最大值2000,此属性为可选的
"members_only"=>true, // 加入群是否需要群主或者群管理员审批,默认是false
"allowinvites"=> true, //是否允许群成员邀请别人加入此群。 true:允许群成员邀请人加入此群,false:只有群主或者管理员才可以往群里加人。
"owner"=>$group_users_admin, //群组的管理员,此属性为必须的
"members"=>$group_users //群组成员,此属性为可选的,但是如果加了此项,数组元素至少一个(注:群主jma1不需要写入到members里面)
);
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl();
$response = $curl->post($url, $data);
Log::record('------createGroup-------' . json_encode($response), "info");
return $response;
}
/** del一个群
* 朱伟 2018年01月25日
*/
public function deleteGroup($group_id,$access_token)
{
$arr= array();
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl().$group_id;
$response = $curl->delete($url, $data);
Log::record('-------deleteGroup------' . json_encode($response), "info");
return $response;
}
/** 获取群成员
* 朱伟 2018年01月26日
*/
public function getGroupUser($group_id,$pagenum,$pagesize,$access_token)
{
$arr= array();
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl().$group_id.'users?pagenum='.$pagenum.'&pagesize='.$pagesize;
$response = $curl->get($url, $data);
Log::record('-------deleteGroup------' . json_encode($response), "info");
return $response;
}
/** 添加群组成员
* 朱伟 2018年01月26日
*/
public function addGroupUserByIds($group_id,$username,$access_token)
{
$arr= array();
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl().$group_id.'/users/'.$username;
$response = $curl->post($url, $data);
Log::record('-------addGroupUserByIds------' . json_encode($response), "info");
return $response;
}
/**
* 移除群组成员
* 朱伟 2018年01月29日
* @param $group_id
* @param $username
* @param $access_token
* @return CurlResponse|bool
*/
public function delGroupUserByIds($group_id,$username,$access_token)
{
$arr= array();
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
$url = $this->buildSendUrl().$group_id.'/users/'.$username;
$response = $curl->post($url, $data);
Log::record('-------delGroupUserByIds------' . json_encode($response), "info");
return $response;
}
/**
* 添加群组管理员
* 朱伟 2018年01月29日
* @param $group_id
* @param $username
* @param $access_token
* @return CurlResponse|bool
*/
public function addGroupManage($group_id,$username,$access_token)
{
$arr= array("newadmin"=>$username);
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
//Path: /{org_name}/{app_name}/chatgroups/{group_id}/admin
$url = $this->buildSendUrl().$group_id.'/admin';
$response = $curl->delete($url, $data);
Log::record('-------delGroupUserByIds------' . json_encode($response), "info");
return $response;
}
/**
* 移除群组管理员
* 朱伟 2018年01月29日
* @param $group_id
* @param $username
* @param $access_token
* @return CurlResponse|bool
*/
public function delGroupManage($group_id,$username,$access_token)
{
$arr= array();
$data = json_encode($arr);
$curl = new \app\chat\utils\CurlUtil();
$curl->headers = [
"Accept" => "application/json",
"Content-Type" => "application/json;charset=utf-8",
'Authorization' => "Bearer " . $access_token,
];
$curl->options = [
"CURLOPT_SSL_VERIFYPEER" => 0,
"CURLOPT_SSL_VERIFYHOST" => 2,
];
//
$url = $this->buildSendUrl().$group_id.'/admin/'.$username;
$response = $curl->delete($url, $data);
Log::record('-------delGroupUserByIds------' . json_encode($response), "info");
return $response;
}
/**
* 请求api
* @return string
*/
private function buildSendUrl()
{
return ConfigConst::API_PATH . ConfigConst::ORG_NAME . "/" . ConfigConst::APP_NAME.'/chatgroups/' ;
}
}
\ No newline at end of file
# Netscape HTTP Cookie File
# http://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
a1.easemob.com FALSE / FALSE 1517538110 rememberMe deleteMe
...@@ -208,6 +208,33 @@ class Auth extends Basic ...@@ -208,6 +208,33 @@ class Auth extends Basic
// echo $group_id; // echo $group_id;
// exit; // exit;
if ($this->request->isPost()) { if ($this->request->isPost()) {
=======
public function test(){
// $this->authRuleModel = new AuthRule();
// dump($this->authRuleModel);die;
// $list= $this->authRuleModel->find();
// return $this->response(200, '', $list);
}
/**
* 权限分配
* @param integer $group_id 组ID
* @return [type] [description]
* @date 2018-01-22
* @author zfc
*/
public function accessLook($group_id=0){
$table= New AuthGroup();
$table2= New AuthRule();
$data['title']='权限分配';
// echo $group_id;
// exit;
if (IS_POST && $group_id=0) {
>>>>>>> 8e62fd6... 合并test
//添加or修改 //添加or修改
$data['id'] = $group_id; $data['id'] = $group_id;
$menu_auth = input('post.menu_auth/a','');//获取所有授权菜单id $menu_auth = input('post.menu_auth/a','');//获取所有授权菜单id
......
...@@ -9,18 +9,17 @@ class Agents extends Model ...@@ -9,18 +9,17 @@ class Agents extends Model
{ {
/** /**
* 查询经纪人 * 查询经纪人
* @param int $pageNo *
* @param int $pageSize * @param type $pageNo
* @param string $order_ * @param type $pageSize
* @param $field * @param type $order_
* @param $params * @param type $field
* @param string $house_id * @param type $params
* @return false|\PDOStatement|string|\think\Collection * @param type $house_id 查询该街铺和商铺的经纪人评论信息
* @throws \think\db\exception\DataNotFoundException * @return type
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/ */
public function getUser($pageNo = 1, $pageSize = 15, $order_ = 'id desc', $field, $params, $house_id = '') { public function getUser($pageNo = 1, $pageSize = 15, $order_ = 'id desc', $field, $params, $house_id = '')
{
if ($house_id == '') { if ($house_id == '') {
$data = $this->field($field)->alias('a') $data = $this->field($field)->alias('a')
->join('u_evaluate b', 'a.id = b.agents_id', 'left') ->join('u_evaluate b', 'a.id = b.agents_id', 'left')
...@@ -33,8 +32,8 @@ class Agents extends Model ...@@ -33,8 +32,8 @@ class Agents extends Model
->select(); ->select();
} else { } else {
$data = $this->field($field)->alias('a') $data = $this->field($field)->alias('a')
->join('u_evaluate b','a.id = b.agents_id','left') ->join('u_evaluate b', 'a.id = b.agents_id', 'left')
->where('find_in_set('.$house_id.', house_ids) or find_in_set('.$house_id.', house_ids2)') ->where('find_in_set(' . $house_id . ', house_ids) or find_in_set(' . $house_id . ', house_ids2)')
->where($params) ->where($params)
->where('level=2 or level=5') ->where('level=2 or level=5')
->group('a.id') ->group('a.id')
...@@ -104,6 +103,22 @@ class Agents extends Model ...@@ -104,6 +103,22 @@ class Agents extends Model
return $data; return $data;
} }
/**
* 获取经纪人 by zw
* @param $field
* @param $id
* @return array|false|\PDOStatement|string|Model
*/
public function getAgentsById($field , $id)
{
return $this
->field($field)
->where('inuse = 1 and id = ' . $id)
->find();
return $data;
}
/** /**
* 查询经纪人列表 * 查询经纪人列表
* *
......
<?php
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/18
* Time : 15:33
* Intro:
*/
namespace app\model;
use think\Model;
use think\Db;
class ChatGroup extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_group';
protected $db;
public function __construct()
{
$this->db = Db::name($this->table);
}
public function addChatMsgExt($params)
{
Db::startTrans();
try {
$this->db->insert($params);
Db::commit();
} catch (\Exception $e) {
Db::rollback();
}
return 0;
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/18
* Time : 15:33
* Intro:
*/
namespace app\model;
use think\Model;
use think\Db;
class ChatGroupMember extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_group_member';
protected $db;
public function __construct()
{
$this->db = Db::name($this->table);
}
public function addChatMsgExt($params)
{
Db::startTrans();
try {
$this->db->insert($params);
Db::commit();
} catch (\Exception $e) {
Db::rollback();
}
return 0;
}
}
<?php
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/18
* Time : 15:33
* Intro:
*/
namespace app\model;
use think\Model;
use think\Db;
class ChatMsg extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_msg';
protected $db;
public function __construct()
{
$this->db = Db($this->table);
}
public function addChatMsg($params)
{
Db::startTrans();
try {
$this->save($params);
$id = $this->id;
Db::commit();
return $id;
} catch (\Exception $e) {
Db::rollback();
}
return 0;
}
/**
* @param $params
* @param $field
* @param $page_no
* @param $page_size
* @return false|\PDOStatement|string|\think\Collection
*/
public function getChatHistory($params, $field, $page_no, $page_size)
{
if (isset($params["from"])) {
$where_["a.from_id"] = $params["from"];
$where_or["a.to_id"] = $params["from"];
}
if (isset($params["target"])) {
$where_["a.to_id"] = $params["target"];
$where_or["a.from_id"] = $params["target"];
}
if (isset($params["is_group"])) {
$where_["a.is_group"] = $params["is_group"];
}
if (isset($params["body"])) {
$where_["b.body"] = array( 'like', "%" . trim($params["body"]) . "%" );
}
$where_["a.is_del"] = 0;
$data = $this->field($field)
->alias("a")
->join('chat_msg_ext b', 'a.id = b.msg_id', 'LEFT')
->where($where_)
->whereOr(function ($query) use ($where_or) {
$query->where($where_or);
})
->order("a.created_at desc")
->limit($page_size)
->page($page_no)
->select();
return $data;
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/18
* Time : 15:33
* Intro:
*/
namespace app\model;
use think\Model;
use think\Db;
class ChatMsgExt extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_msg_ext';
protected $db;
public function __construct()
{
$this->db = Db::name($this->table);
}
public function addChatMsgExt($params)
{
Db::startTrans();
try {
$this->db->insert($params);
Db::commit();
} catch (\Exception $e) {
dump($e);
Db::rollback();
}
return 0;
}
}
\ No newline at end of file
<?php
namespace app\model;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/26
* Time : 16:08
* Intro:
*/
use think\Model;
use think\Db;
class ChatMsgStatus extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_msg_status';
protected $db;
public function __construct()
{
$this->db = Db::name($this->table);
}
public function addChatMsgStatus($params)
{
Db::startTrans();
try {
$this->db->insert($params);
Db::commit();
} catch (\Exception $e) {
dump($e);
Db::rollback();
}
return 0;
}
}
\ No newline at end of file
<?php
namespace app\model;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/2/6
* Time : 16:07
* Intro:
*/
use think\Model;
use think\Db;
class ChatRelation extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_relation';
protected $db_;
public function __construct()
{
$this->db_ = Db($this->table);
}
/**
* 获取关系是否存在
* @param $params
* @param string $field
* @return false|\PDOStatement|string|\think\Collection
*/
public function getChatRelation($params, $field = "id,to_id,from_id")
{
$where_ = $whereOr_ = [];
if (isset($params["target"])) {
$where_["to_id"] = $params["target"];
$whereOr_["from_id"] = $params["target"];
}
if (isset($params["from"])) {
$where_["to_id"] = $params["from"];
$whereOr_["from_id"] = $params["from"];
}
$where_["disable"] = 0;
$whereOr_["disable"] = 0;
return $this->field($field)
->where($where_)
->whereOr(function ($query) use ($whereOr_) {
$query->where($whereOr_);
})
->select();
}
public function addChatRelation($params)
{
$where_ = [];
if (isset($params["target"])) {
$where_["to_id"] = $params["target"];
}
if (isset($params["from"])) {
$where_["from_id"] = $params["from"];
}
$where_["create_time"] = date("Y-m-d H:i:s",time());
$where_["update_time"] = date("Y-m-d H:i:s",time());
Db::startTrans();
try {
$this->insert($where_);
Db::commit();
} catch (\Exception $e) {
Db::rollback();
}
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/1/18
* Time : 15:33
* Intro:
*/
namespace app\model;
use think\Model;
use think\Db;
class ChatUser extends Model
{
// 设置当前模型对应的完整数据表名称
protected $table = 'chat_user';
protected $db;
public function __construct()
{
$this->db = Db($this->table);
}
public function getChatUser($params, $field = "only_id,phone")
{
$data = $this->db->field($field)
->where($params)
->select();
return $data;
}
public function addChatUser($params)
{
Db::startTrans();
try {
$this->save($params);
Db::commit();
} catch (\Exception $e) {
Db::rollback();
}
}
}
\ No newline at end of file
...@@ -31,4 +31,12 @@ class HouseImgs extends Model ...@@ -31,4 +31,12 @@ class HouseImgs extends Model
->limit($limit_) ->limit($limit_)
->select(); ->select();
} }
function getHouseImgs($id,$imgtype)
{
$HouseImgsre = $this->db ->where(['house_id'=>$id,'imgtype'=>$imgtype])
->field('id,imagename')
->select();
return $HouseImgsre;
}
} }
...@@ -102,5 +102,15 @@ class HouseInfos extends Model ...@@ -102,5 +102,15 @@ class HouseInfos extends Model
->select(); ->select();
} }
function getHousepusmessage($id)
{
$HouseInfosre = $this->dbHouseInfo ->where('id', $id)
->field('id,title,room_area,room_area2,price,rent_type')
->select();
return $HouseInfosre;
}
} }
<?php
namespace app\model;
use think\Model;
class HouseinfoExts extends Model
{
protected $table = 'houseinfo_exts';
protected $HouseinfoExts;
function __construct()
{
$this->HouseinfoExts = Db($this->table);
}
function getHouse_ext($id)
{
$HouseinfoExtsInfosre = $this->HouseinfoExts
->where('house_id', $id)
//->field('id,house_id,foreign_name,address_detail_c,province_c,province_code,city_c,city_code,district_c,district_code,foreign_advantage,created,modified')
->select();
return $HouseinfoExtsInfosre;
}
}
...@@ -32,8 +32,14 @@ class Users extends Model ...@@ -32,8 +32,14 @@ class Users extends Model
} }
return $data; return $data;
} }
public function getUserByWhere($param, $fields = 'id,user_phone')
/** {
$data = $this
->field($fields)
->where($param)
->select();
return $data;
} /**
* 查询用户和经纪人 * 查询用户和经纪人
* *
* @param int $pageNo * @param int $pageNo
......
...@@ -231,26 +231,6 @@ Route::group('broker', [ ...@@ -231,26 +231,6 @@ Route::group('broker', [
'collectingBill' => [ 'api_broker/OrderLog/collectingBill', [ 'method' => 'get|post' ] ], 'collectingBill' => [ 'api_broker/OrderLog/collectingBill', [ 'method' => 'get|post' ] ],
'refund' => [ 'api_broker/OrderLog/refund', [ 'method' => 'get|post' ] ], 'refund' => [ 'api_broker/OrderLog/refund', [ 'method' => 'get|post' ] ],
'bargain' => [ 'api_broker/OrderLog/bargain', [ 'method' => 'get|post' ] ], 'bargain' => [ 'api_broker/OrderLog/bargain', [ 'method' => 'get|post' ] ],
'statusBargain' => [ 'api_broker/OrderLog/statusBargain', [ 'method' => 'get|post' ] ],
'login' => [ 'api_broker/Broker/login', [ 'method' => 'post' ] ], //经纪人登陆
'editAgent' => [ 'api_broker/Broker/editAgent', [ 'method' => 'post' ] ], //经纪人修改密码
'uploadHeadImg' => [ 'api_broker/Broker/uploadHeadImg', [ 'method' => 'post' ] ], //经纪人上传头像
'editClient' => [ 'api_broker/Client/editClient', [ 'method' => 'get|post' ] ],//添加和编辑客户
'getBroker' => [ 'api_broker/broker/getBroker',['method'=>'get']],//获取经纪人列表
'labelEdit' => [ 'api_broker/label/index',['method'=>'get|post']], //编辑标签
'getLabelsList' => [ 'api_broker/label/getLabelsList',['method'=>'get']], //标签列表
'add_phone_follow_up' => [ 'api_broker/broker/add_phone_follow_up',['method'=>'get|post']],//新增-客户电话跟进
'useraction_search' => [ 'api_broker/broker/useraction_search',['method'=>'get|post']],//新增-客户电话跟进
'user_search' => [ 'api_broker/broker/user_search',['method'=>'get|post']],//客户搜索
'bindAXB' => [ 'api_broker/CellPhone/bindAXB', [ 'method' => 'post' ] ],//隐私号码
'agentsUnBind' => [ 'api_broker/CellPhone/agentsUnBind', [ 'method' => 'post' ] ],//解除绑定关系
'updateBindAXB' => ['api_broker/CellPhone/updateBindAXB', [ 'method' => 'post' ] ], //更新绑定关系隐私号码
//商铺
'getShopList' => ['api_broker/Shop/getShopList', [ 'method' => 'get|post' ] ],
'getShopDetail' => ['api_broker/Shop/getShopDetail', [ 'method' => 'get' ] ],
]); ]);
//Route::miss('api/index/miss');//处理错误的url //Route::miss('api/index/miss');//处理错误的url
\ No newline at end of file
...@@ -128,3 +128,211 @@ response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?> ...@@ -128,3 +128,211 @@ response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<statusMsg>IP鉴权失败</statusMsg> <statusMsg>IP鉴权失败</statusMsg>
</Response> </Response>
request body = <TemplateSMS>
<to>15505625080</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>4796</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=F413CF2011A6A1505C3B9F4FDD6A2258
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>15505625090</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>8999</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=F41DBC75A64B489C3754C87B65A2E09E
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18205625070</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>7889</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=905D65B26C5DEF1EC630B0F5AA17A509
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>15505625060</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>3182</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=76D08F08B4D1BAD08457BC638BBDB484
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18805625020</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>2071</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=7058E44B5B45924D7B11C38F5D534306
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756252570</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>9183</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=1A0FD455A35089B0EB5E6723190A15FB
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756258888</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>7572</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=1566AAB75F25B6DD28A4902FA26AEC0F
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756259999</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>3479</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=DE9865EE495BD9B0D85EDAF249CDA24F
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756257777</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>7094</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=7977CEC21F534DD1E5D675D792595DC9
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>15038133185</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>1323</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=A83C2D00731E2A9F65F7CAC298B44B09
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756256666</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>3450</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=40EE1C43A1B08B698B610DC95026AF74
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756255555</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>5919</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=8DABD7C3A3D79365F4AA65E92613F6A1
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>15032323232</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>4355</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=157B3CA0CF0C1D232FE6D6758A6F9E77
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756254444</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>8064</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=EA2BC31B5B5662AD292223DC686FA26D
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>18756253333</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>7687</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=00F01FFDBFD51AA503BB5585E4D2DC21
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
request body = <TemplateSMS>
<to>13112341234</to>
<appId>8a216da85f5c89b1015f7718e2b90a63</appId>
<templateId>214759</templateId>
<datas><data>8858</data><data>5分钟</data></datas>
</TemplateSMS>
request url = https://app.cloopen.com:8883/2013-12-26/Accounts/8a48b55153eae51101540e763d3b3888/SMS/TemplateSMS?sig=873B52C43862749A39926C652B5834DC
response body = <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Response>
<statusCode>160053</statusCode>
<statusMsg>IP鉴权失败</statusMsg>
</Response>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment