初始化代码
This commit is contained in:
59
app/im/model/ImChart.php
Normal file
59
app/im/model/ImChart.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
use think\facade\Db;
|
||||
class ImChart extends BaseModel
|
||||
{
|
||||
protected $name = 'longbing_card_chart';
|
||||
|
||||
//创建
|
||||
public function createChart($data)
|
||||
{
|
||||
$data['create_time'] = time();
|
||||
return $this->createRow($data);
|
||||
}
|
||||
|
||||
//更新
|
||||
public function updateChart($filter ,$data)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->updateRow($filter ,$data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function listChart($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
$result = $this->where($filter)->select();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
|
||||
//获取总数
|
||||
public function listChartCount($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->where($filter)->count();
|
||||
}
|
||||
|
||||
//获取详情
|
||||
public function getChart($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->getRow($filter);
|
||||
}
|
||||
|
||||
//删除
|
||||
public function delChart($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->delRow($filter);
|
||||
}
|
||||
|
||||
//真删除
|
||||
public function destoryChart($filter)
|
||||
{
|
||||
return $this->destoryRow($filter);
|
||||
}
|
||||
}
|
||||
122
app/im/model/ImChat.php
Normal file
122
app/im/model/ImChat.php
Normal file
@@ -0,0 +1,122 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
use think\facade\Db;
|
||||
class ImChat extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_chat';
|
||||
//获取用户信息
|
||||
// public function customer()
|
||||
// {
|
||||
// return $this->hasOne('ImCustomer' ,)
|
||||
// }
|
||||
//创建
|
||||
public function createChat($data)
|
||||
{
|
||||
$data['create_time'] = time();
|
||||
$result = $this->save($data);
|
||||
if(!empty($result)) $result = $this->id;
|
||||
return $result;
|
||||
}
|
||||
|
||||
//更新
|
||||
public function updateChat($filter ,$data)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->updateRow($filter ,$data);
|
||||
}
|
||||
|
||||
//获取列表
|
||||
public function listChat($user_id , $uniacid,$page_config)
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$start_row = 0;
|
||||
$page_count = 10;
|
||||
if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count'];
|
||||
if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count;
|
||||
$result = $this->where(function ($query) use ($user_id) {
|
||||
$query->whereOr(['target_id' => $user_id , 'user_id' => $user_id]) ;
|
||||
})
|
||||
->where(['deleted' => 0 ,'uniacid' => $uniacid])
|
||||
->order('update_time', 'desc')
|
||||
->limit($start_row,$page_count)
|
||||
->select();
|
||||
|
||||
// $result = $this->where(['deleted' => 0])
|
||||
// ->where(function($query) use($user_id) {
|
||||
// $query->
|
||||
// })
|
||||
// ->limit($start_row,$page_count)
|
||||
// ->select();
|
||||
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
|
||||
//获取总数
|
||||
public function listChatCount($user_id , $uniacid)
|
||||
{
|
||||
return $this->where(function ($query) use ($user_id) {
|
||||
$query->whereOr(['target_id' => $user_id , 'user_id' => $user_id]) ;
|
||||
})
|
||||
->where(['deleted' => 0 ,'uniacid' => $uniacid])
|
||||
->count();
|
||||
}
|
||||
//获取所有
|
||||
public function listChatAll($user_id ,$uniacid)
|
||||
{
|
||||
$result = $this->where(function ($query) use ($user_id) {
|
||||
$query->whereOr(['target_id' => $user_id] , ['user_id' => $user_id]) ;
|
||||
})
|
||||
->where(['deleted' => 0 ,'uniacid' => $uniacid])
|
||||
->field('id as chat_id,user_id,target_id')
|
||||
->select();
|
||||
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
//获取单个Chat
|
||||
public function getChat($user_id ,$target_id ,$uniacid)
|
||||
{
|
||||
//查询条件1
|
||||
$where = [
|
||||
['user_id' , '=' ,$user_id],
|
||||
['target_id' ,'=' , $target_id],
|
||||
];
|
||||
$whereOr = [
|
||||
['user_id' , '=' ,$target_id],
|
||||
['target_id' ,'=' , $user_id],
|
||||
];
|
||||
$result = $this->where(function ($query) use($where, $whereOr){
|
||||
$query->whereOr([$where,$whereOr]);
|
||||
})
|
||||
->where(['uniacid' => $uniacid ,'deleted' => 0])
|
||||
->field('id as chat_id,user_id,target_id')
|
||||
->find();
|
||||
return $result;
|
||||
}
|
||||
//通过id获取chat
|
||||
public function getChatById($chat_id)
|
||||
{
|
||||
$result = $this->where(['id' => $chat_id])->find();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
//删除
|
||||
public function delChat($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->updateChat($filter ,['deleted' => 0]);
|
||||
}
|
||||
//真删除
|
||||
public function destroyChat($filter)
|
||||
{
|
||||
return $this->destroyRow($filter);
|
||||
}
|
||||
}
|
||||
24
app/im/model/ImClient.php
Normal file
24
app/im/model/ImClient.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
|
||||
class ImClient extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_collection';
|
||||
|
||||
//是否是客户
|
||||
public function isCustomer($user_id ,$customer_id ,$uniacid)
|
||||
{
|
||||
$filter = array(
|
||||
'uid' => $customer_id,
|
||||
'to_uid' => $user_id,
|
||||
'uniacid' => $uniacid,
|
||||
'intention' => 1
|
||||
);
|
||||
|
||||
$result = $this->where($filter)->count();
|
||||
return !empty($result);
|
||||
}
|
||||
}
|
||||
124
app/im/model/ImMessage.php
Normal file
124
app/im/model/ImMessage.php
Normal file
@@ -0,0 +1,124 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
use think\facade\Db;
|
||||
class ImMessage extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_message';
|
||||
|
||||
//创建聊天消息
|
||||
public function createMessage($data)
|
||||
{
|
||||
$data['create_time'] = time();
|
||||
return $this->createRow($data);
|
||||
}
|
||||
|
||||
//修改聊天消息
|
||||
public function updateMessage($filter ,$data)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->updateRow($filter ,$data);
|
||||
}
|
||||
|
||||
//标记已读消息
|
||||
public function readMessage($filter)
|
||||
{
|
||||
$filter['status'] = 1;
|
||||
return $this->updateMessage($filter ,['status' => 2]);
|
||||
}
|
||||
|
||||
//撤销消息
|
||||
public function recallMessage($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->updateMessage($filter, ['status' => 3]);
|
||||
}
|
||||
|
||||
//查询聊天消息列表
|
||||
public function listMessage($filter ,$page_config)
|
||||
{
|
||||
$start_row = 0;
|
||||
$page_count = 10;
|
||||
if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count'];
|
||||
if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count;
|
||||
// $filter['deleted'] = 0;
|
||||
$result = $this->where($filter)
|
||||
->where(['deleted'=>0])
|
||||
->order('id desc')
|
||||
->limit($start_row ,$page_count)
|
||||
->select();
|
||||
if(!empty($result))
|
||||
{
|
||||
$result = $result->toArray();
|
||||
$result = array_reverse($result);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
//查询聊天消息列表
|
||||
public function listMessageV2($filter ,$page_config,$dis)
|
||||
{
|
||||
$start_row = 0;
|
||||
$page_count = 10;
|
||||
if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count'];
|
||||
if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count;
|
||||
// $filter['deleted'] = 0;
|
||||
$result = $this->where($filter)
|
||||
->whereOr(function ($query) use ($dis){
|
||||
$query->where($dis);
|
||||
})
|
||||
->order('id desc')
|
||||
->limit($start_row ,$page_count)
|
||||
->select();
|
||||
if(!empty($result))
|
||||
{
|
||||
$result = $result->toArray();
|
||||
$result = array_reverse($result);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
//获取聊天消息总量
|
||||
public function listMessageCount($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
$count = $this->where($filter)->count();
|
||||
return $count;
|
||||
}
|
||||
|
||||
//删除聊天消息
|
||||
public function delMessage($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
return $this->deleteRow($filter);
|
||||
}
|
||||
|
||||
//查询最后一条消息
|
||||
public function lastMessage($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
$result = $this->where($filter)->order('create_time', 'desc')->field(['create_time' ,'content' ,'message_type'])->find();
|
||||
return $result;
|
||||
}
|
||||
//获取未读消息列表
|
||||
public function listNotReadMessage($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
$filter['status'] = 1;
|
||||
$result = $this->where($filter)
|
||||
->order('create_time' ,'asc')
|
||||
->select();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
$this->updateMessage($filter, ['status' =>2]);
|
||||
return $result;
|
||||
}
|
||||
|
||||
//真删除
|
||||
public function destroyMessage($filter)
|
||||
{
|
||||
return $this->destoryRow($filter);
|
||||
}
|
||||
}
|
||||
11
app/im/model/ImMessageFriend.php
Normal file
11
app/im/model/ImMessageFriend.php
Normal file
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
|
||||
class ImMessageFriend extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_message_friend';
|
||||
|
||||
}
|
||||
82
app/im/model/ImMyReply.php
Normal file
82
app/im/model/ImMyReply.php
Normal file
@@ -0,0 +1,82 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
|
||||
class ImMyReply extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_quick_reply';
|
||||
|
||||
public function searchContentAttr($query, $value, $data)
|
||||
{
|
||||
$query->where('content','like', '%' . $value . '%');
|
||||
}
|
||||
public function searchUserIdAttr($query, $value, $data)
|
||||
{
|
||||
$query->where('user_id','=', $value);
|
||||
}
|
||||
public function searchUniacidAttr($query, $value, $data)
|
||||
{
|
||||
$query->where('uniacid','=', $value);
|
||||
}
|
||||
public function type()
|
||||
{
|
||||
return $this->hasOne('ImReplyType' ,'id' ,'type');
|
||||
}
|
||||
//创建话术
|
||||
public function createReply($data)
|
||||
{
|
||||
$data['create_time'] = time();
|
||||
$result = $this->save($data);
|
||||
return !empty($result);
|
||||
}
|
||||
|
||||
//更新话术
|
||||
public function updateReply($filter ,$data)
|
||||
{
|
||||
$data['update_time'] = time();
|
||||
$result = $this->where($filter)->update($data);
|
||||
return !empty($result);
|
||||
}
|
||||
|
||||
//获取话术列表
|
||||
public function listReply($filter)
|
||||
{
|
||||
$result = $this->where($filter)
|
||||
->select();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
//获取话术列表(分页)
|
||||
public function listReplys($filter ,$page_config)
|
||||
{
|
||||
$result = $this->with(['type'])
|
||||
->withSearch(['content' ,'user_id' ,'uniacid'] ,$filter)
|
||||
->order('top' ,'desc')
|
||||
->page($page_config['page'] ,$page_config['page_count'])
|
||||
->select();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
//获取话术总数
|
||||
public function getReplyCount($filter)
|
||||
{
|
||||
$result = $this->withSearch(['content' ,'user_id' ,'uniacid'] ,$filter)->count();
|
||||
if(empty($result)) $result = 0;
|
||||
return $result;
|
||||
}
|
||||
|
||||
//删除话术
|
||||
public function deleteReply($filter)
|
||||
{
|
||||
return $this->destoryReply($filter);
|
||||
}
|
||||
|
||||
//删除(真删除)
|
||||
public function destoryReply($filter)
|
||||
{
|
||||
$result = $this->where($filter)->delete();
|
||||
return !empty($result);
|
||||
}
|
||||
}
|
||||
74
app/im/model/ImReplyType.php
Normal file
74
app/im/model/ImReplyType.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
|
||||
class ImReplyType extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_reply_type';
|
||||
|
||||
public function searchTitleAttr($query, $value, $data)
|
||||
{
|
||||
$query->where('title','like', '%' . $value . '%');
|
||||
}
|
||||
|
||||
public function searchUniacidAttr($query, $value, $data)
|
||||
{
|
||||
$query->where('uniacid','=', $value );
|
||||
}
|
||||
|
||||
public function reply()
|
||||
{
|
||||
return $this->belongsTo('ImMyReply' ,'id' ,'type');
|
||||
}
|
||||
//创建话术
|
||||
public function createType($data)
|
||||
{
|
||||
$data['create_time'] = time();
|
||||
return $this->save($data);
|
||||
}
|
||||
//更新话术
|
||||
public function updateType($filter ,$data)
|
||||
{
|
||||
$data['update_time'] = time();
|
||||
$result = $this->where($filter)->update($data);
|
||||
return !empty($result);
|
||||
}
|
||||
|
||||
//获取话术列表
|
||||
public function listType($filter ,$page_config = ['page' => 1 ,'page_count' => 20])
|
||||
{
|
||||
$result = $this->withSearch(['title' ,'uniacid'] ,$filter)
|
||||
->page($page_config['page'] ,$page_config['page_count'])
|
||||
->order('top desc, id desc')
|
||||
->select();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
//获取话术列表
|
||||
public function getTypeCount($filter)
|
||||
{
|
||||
$result = $this->withSearch(['title' ,'uniacid'] ,$filter)
|
||||
->count();
|
||||
if(empty($result)) $result = 0;
|
||||
return $result;
|
||||
}
|
||||
|
||||
//删除话术
|
||||
public function delType($filter)
|
||||
{
|
||||
$result = $this->where($filter)->delete();
|
||||
return !empty($result);
|
||||
}
|
||||
|
||||
public function listAllType($filter)
|
||||
{
|
||||
$result = $this->where($filter)
|
||||
->order('top' ,'desc')
|
||||
->select();
|
||||
if(empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
38
app/im/model/ImSystemReply.php
Normal file
38
app/im/model/ImSystemReply.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
|
||||
class ImReplyType extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_reply_type';
|
||||
|
||||
//创建话术
|
||||
public function createReply($data)
|
||||
{
|
||||
return $this->createRow($data);
|
||||
}
|
||||
//更新话术
|
||||
public function updateReply($filter ,$data)
|
||||
{
|
||||
return $this->updateRow($filter ,$data);
|
||||
}
|
||||
|
||||
//获取话术列表
|
||||
public function listReply($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
$result = $this->where($filter)
|
||||
->select();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
|
||||
//删除话术
|
||||
public function delReply($filter)
|
||||
{
|
||||
return $this->deleteRow($filter);
|
||||
}
|
||||
|
||||
}
|
||||
19
app/im/model/ImUser.php
Normal file
19
app/im/model/ImUser.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
namespace app\im\model;
|
||||
|
||||
use app\BaseModel;
|
||||
|
||||
class ImUser extends BaseModel
|
||||
{
|
||||
//定义表名称
|
||||
protected $name = 'longbing_card_user';
|
||||
|
||||
//获取用户信息
|
||||
public function getUser($filter)
|
||||
{
|
||||
$filter['deleted'] = 0;
|
||||
$result = $this->where($filter)->find();
|
||||
if(!empty($result)) $result = $result->toArray();
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user