bingyu-duanxinwangzhan/message-code/message_api/application/index/model/Common.php

276 lines
6.8 KiB
PHP

<?php
/**
* Created by PhpStorm.
* User: lock
* Date: 2018/11/11
* Time: 6:57 PM
*/
namespace app\index\model;
use think\Model;
class Common extends Model
{
const PARAM_FIELD_FIELD = 'field';
const PARAM_FIELD_ORDER = 'order';
const PARAM_FIELD_LIMIT = 'limit';
const DEFAULT_ARR = array(self::PARAM_FIELD_FIELD => '*',self::PARAM_FIELD_ORDER => 'id DESC',self::PARAM_FIELD_LIMIT => '');
/**
* baseCom
* @param $new_arr
* @return array
*/
public function baseCom($new_arr)
{
$param_value_arr = self::DEFAULT_ARR;
if(!empty($new_arr))
{
foreach ($param_value_arr as $each_k => $each_v)
{
if(array_key_exists($each_k,$new_arr))
{
$param_value_arr[$each_k] = $new_arr[$each_k];
}
}
}
return $param_value_arr;
}
/**
* lists
* @param $model
* @param $page
* @param $pageSize
* @param $where
* @return mixed
*/
public function modelLists($model,$page,$pageSize,$where,$param = array())
{
$param_value_arr = $this->baseCom($param);
$lists = array();
$lists = $model->page($page,$pageSize)->where($where)->field($param_value_arr[self::PARAM_FIELD_FIELD])->order($param_value_arr[self::PARAM_FIELD_ORDER])->limit($param_value_arr[self::PARAM_FIELD_LIMIT])->select();
return $lists;
}
/**
* modelCacheLists
* @param $model
* @param $page
* @param $pageSize
* @param $where
* @return mixed
*/
public function modelCacheLists($model,$page,$pageSize,$where,$cacheName,$param = array())
{
$param_value_arr = $this->baseCom($param);
$lists = $model->cache($cacheName)->page($page,$pageSize)->where($where)->field($param_value_arr[self::PARAM_FIELD_FIELD])->order($param_value_arr[self::PARAM_FIELD_ORDER])->limit($param_value_arr[self::PARAM_FIELD_LIMIT])->select();
return $lists;
}
/**
* modelAllLists
* @param $model
* @param $where
* @return mixed
*/
public function modelAllLists($model,$where,$param = array())
{
$param_value_arr = $this->baseCom($param);
$lists = array();
$lists = $model->where($where)->field($param_value_arr[self::PARAM_FIELD_FIELD])->order($param_value_arr[self::PARAM_FIELD_ORDER])->limit($param_value_arr[self::PARAM_FIELD_LIMIT])->select();
return $lists;
}
/**
* modelCacheAllLists
* @param $model
* @param $where
* @param $cacheName
* @return mixed
*/
public function modelCacheAllLists($model,$where,$cacheName,$param = array())
{
$param_value_arr = $this->baseCom($param);
$lists = $model->cache($cacheName)->where($where)->field($param_value_arr[self::PARAM_FIELD_FIELD])->order($param_value_arr[self::PARAM_FIELD_ORDER])->limit($param_value_arr[self::PARAM_FIELD_LIMIT])->select();
return $lists;
}
/**
* getOneById
* @param $where
* @param $model
* @return mixed
*/
public function getOneById($model,$where,$param = array())
{
$param_value_arr = $this->baseCom($param);
$info = $model->where($where)->field($param_value_arr[self::PARAM_FIELD_FIELD])->find();
return $info;
}
/**
* addData
* @param $model
* @param $data
* @return mixed
*/
public function addData($model,$data)
{
$add_rs = $model->isUpdate(false)->allowField(true)->save($data);
return $add_rs;
}
/**
* addCacheData
* @param $model
* @param $data
* @param $cacheName
* @return int
*/
public function addCacheData($model,$data,$cacheName)
{
$tmp_cache = getRedisValue($cacheName);
$cache_result = 1;
if(!empty($tmp_cache))
{
$cache_result = deleteRedisValue($cacheName);
}
$add_rs = 0;
if($cache_result)
{
$add_rs = $model->allowField(true)->save($data);
}
return $add_rs;
}
/**
* addInsertData
* @param $model
* @param $data
* @return mixed
*/
public function addInsertData($model,$data)
{
$add_rs = $model->allowField(true)->insertGetId($data);
return $add_rs;
}
/**
* addCacheInsertData
* @param $model
* @param $data
* @return mixed
*/
public function addCacheInsertData($model,$data,$cacheName)
{
$tmp_cache = getRedisValue($cacheName);
$cache_result = 1;
if(!empty($tmp_cache))
{
$cache_result = deleteRedisValue($cacheName);
}
$add_rs = 0;
if($cache_result){
$add_rs = $model->allowField(true)->insertGetId($data);
}
return $add_rs;
}
/**
* addMoreData
* @param $model
* @param $data
* @return mixed
*/
public function addMoreData($model,$data)
{
$add_rs = $model->saveALL($data);
return $add_rs;
}
/**
* updateByWhere
* @param $where
* @param $data
* @param $model
* @return mixed
*/
public function updateByWhere($model,$where,$data)
{
$update_rs = $model->force(true)->save($data,$where);
return $update_rs;
}
/**
* updateCacheByWhere
* @param $model
* @param $where
* @param $data
* @return mixed
*/
public function updateCacheByWhere($model,$where,$data,$cacheName)
{
$tmp_cache = getRedisValue($cacheName);
$cache_result = 1;
if(!empty($tmp_cache))
{
$cache_result = deleteRedisValue($cacheName);
}
$update_rs = 0;
if($cache_result)
{
$update_rs = $model->force(true)->save($data,$where);
}
return $update_rs;
}
/**
* updateAllByWhere
* @param $model
* @param $data
* @return mixed
*/
public function updateAllByWhere($model,$data)
{
$update_rs = $model->force(true)->saveAll($data);
return $update_rs;
}
/**
* deleteByWhere
* @param $model
* @param $where
* @return mixed
*/
public function deleteByWhere($model,$where)
{
$delete_rs = $model->where($where)->delete();
return $delete_rs;
}
/**
* deleteCacheByWhere
* @param $model
* @param $where
* @return mixed
*/
public function deleteCacheByWhere($model,$where,$cacheName)
{
$tmp_cache = getRedisValue($cacheName);
$cache_result = 1;
if(!empty($tmp_cache))
{
$cache_result = deleteRedisValue($cacheName);
}
$delete_rs = 0;
if($cache_result)
{
$delete_rs = $model->where($where)->delete();
}
return $delete_rs;
}
}