李忠征信平台后端管理系统
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

169 lines
6.3 KiB

<?php
namespace app\admin\model;
use think\Model;
use traits\model\SoftDelete;
use app\admin\model\content\Type as ContentType;
use fast\Auth;
class Content extends Model
{
// use SoftDelete;
// 表名
protected $name = 'content';
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'datetime';
protected $dateFormat = 'Y-m-d H:i:s';
// 定义时间戳字段名
protected $createTime = 'createtime';
protected $updateTime = 'updatetime';
protected $deleteTime = 'deletetime';
// 追加属性
protected $append = [
'status_text',
'is_pay',
'type_tag',
];
protected static function init()
{
}
public function getStatusList()
{
return ['0' => __('审核中'),'1' => __('审核通过'),'-1' => __('审核驳回')];
}
public function getIsPayAttr($value, $data)
{
//查询当前所属类型是否付费
$type = ContentType::get($data['content_type_id']);
return $type->is_pay;
}
protected function setMainPhoneAttr($value)
{
$value = $this->maskPhoneNumber($value);
return $value;
}
protected function setMainCardnoAttr($value)
{
$value = $this->maskPhoneNumber($value);
return $value;
}
public function getMoneyAttr($value, $data)
{
//查询当前所属类型的费用
$type = ContentType::get($data['content_type_id']);
if($type->is_pay){
return $type['money'];
}else{
return 0;
}
}
public function getTypeTagAttr($value, $data)
{
//查询当前所属类型的费用
$type = ContentType::get($data['content_type_id']);
return $type['tag'];
}
// 查询当前用户是否已经付过费
public function getlist($where, $order, $offset, $limit,$uid=0){
// 热门推荐:is_hot
// 事件类型:content_type_id
// 当事人姓名:main_realname
// 身份证号:main_phone
// 手机号:main_cardno
// qq号:main_qq
// 微信号:main_wechat
// 居住地址:main_address
// 籍贯:main_jiguan
// 公司:main_company
// 姓名/公司/手机号/标签:keyword
$order = empty($order)?['createtime'=>"desc"]:$order;
$list = $this->order($order)
->where(function($query) use ($where,$uid){
if(isset($where['is_hot']) && $where['is_hot']){
$query->where(['is_hot'=>1]);
}
if(isset($where['user_id']) && $where['user_id']){
$query->where(['user_id'=>$where['user_id']]);
}
if(isset($where['content_type_id']) && $where['content_type_id']){
$query->where(['content_type_id'=>$where['content_type_id']]);
}
if(isset($where['main_realname']) && $where['main_realname']){
$query->whereRaw("main_realname like '%{$where['main_realname']}%'");
}
if(isset($where['main_phone']) && $where['main_phone']){
$query->whereRaw("main_phone like '%{$where['main_phone']}%'");
}
if(isset($where['main_cardno']) && $where['main_cardno']){
$query->whereRaw("main_cardno like '%{$where['main_cardno']}%'");
}
if(isset($where['main_qq']) && $where['main_qq']){
$query->whereRaw("main_qq like '%{$where['main_qq']}%'");
}
if(isset($where['main_wechat']) && $where['main_wechat']){
$query->whereRaw("main_wechat like '%{$where['main_wechat']}%'");
}
if(isset($where['main_address']) && $where['main_address']){
$query->whereRaw("main_address like '%{$where['main_address']}%'");
}
if(isset($where['main_jiguan']) && $where['main_jiguan']){
$query->whereRaw("main_jiguan like '%{$where['main_jiguan']}%'");
}
if(isset($where['main_company']) && $where['main_company']){
$query->whereRaw("main_company like '%{$where['main_company']}%'");
}
if(isset($where['keyword']) && $where['keyword']){
$query->whereRaw("(main_realname like '%{$where['keyword']}%' or main_phone like '%{$where['keyword']}%' or main_company like '%{$where['keyword']}%' or tag like '%{$where['keyword']}%')");
}
if(isset($where['id']) && $where['id']){
$query->whereIn('id',$where['id']);
}
if(isset($where['ids']) && $where['ids']){
$query->whereIn('id', $where['ids']);
}
if($uid!=0){
}else{
$query->where('status', '1');
}
})
->paginate(['page'=> $offset?? 1,'list_rows' => $limit])->each(function($item,$key) use ($uid) {
//查询订单是否存在
$order = Order::where(['content_id'=>$item['id'],'user_id'=>$uid,'status'=>1])->find();
$item['payed'] = $order||$item['user_id']==$uid?1:0;
$item['content_tag'] = json_decode($item['content_tag'],true);
$item['main_phone'] = $this->maskPhoneNumber($item['main_phone']);
$item['main_cardno'] = $this->maskPhoneNumber($item['main_cardno']);
});
$result = array("total" => $list->total(), "rows" => $list->items(),"sql"=>$this->fetchSql());
return $result;
}
public function getStatusTextAttr($value, $data)
{
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
$list = $this->getStatusList();
return isset($list[$value]) ? $list[$value] : '';
}
public function maskPhoneNumber($idNumber) {
// 假设身份证号码是18位,手机号码是11位,位于第11至第21位
if (strlen($idNumber) == 11) {
return substr_replace($idNumber, '****', 3, 4);
}elseif(strlen($idNumber) == 18){
return substr_replace($idNumber, '****', 14, 4);
}else{
return $idNumber;
}
}
}