| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
- namespace addons\Scratch\common\logic;
- use common\models\order\OrderDetail;
- /**
- * Class PublicLogic
- * @package addons\Scratch\common\logic
- */
- class PublicLogic
- {
- /**
- * in查询查询个数比较多,插分值进行or查询
- * @param $ziduan_name string 字段名称:user_id1
- * @param $inArray array in条件一长串字串:[1,2,3,4,....1001,1002]
- * @param int $fenduan_num 小于1000的数值,将原先过长的字段分段
- * @return string
- * @throws \ErrorException
- */
- public static function getOrWhereInArray(string $ziduan_name, array $inArray, int $fenduan_num = 500)
- {
- try {
- if(empty($inArray)){
- return [];
- }
- //总个数
- $count_num = count($inArray);
- //in条件正常写
- if ($count_num <= $fenduan_num) {
- return ['in', $ziduan_name, $inArray];
- }
- //in条件中数目过多的需要拆成几份,使用or拼接sql条件语句
- $i_count = ceil($count_num / $fenduan_num); //拆成总份数
- $tmp_data_arr = array_chunk($inArray, $fenduan_num);
- $where = [
- 'or'
- ];
- foreach ($tmp_data_arr as $item){
- $where[] = ['in', $ziduan_name, $item];
- }
- return $where;
- } catch (\ErrorException $errorException) {
- throw new \ErrorException($errorException->getMessage());
- } catch (\Exception $exception) {
- throw new \Exception($exception->getMessage());
- }
- }
- /**
- * 判断网址后否包含http || https
- * @param string $url 网址
- * @return boolean 真返回真,假返回假
- */
- public static function isHttp($url){
- if(preg_match("/^(http:\/\/|https:\/\/).*$/",$url)){
- return 1;
- }else{
- return 0;
- }
- }
- }
|