ManufacturerRepository.php 3.94 KB
<?php

namespace domain\manufacturer;

use common\models\SysUser                   as SysUserModel;
use domain\manufacturer\models\Manufacturer as ManufacturerModel;


/**

 * Class ManufacturerRepository
 * @package domain\manufacturer
 */
class ManufacturerRepository
{
    /**
     * @param $where
     * @param $offset
     * @param $limit
     * @return array|\yii\db\ActiveRecord[]
     */
    static function getPageList($where, $offset, $limit)
    {
        $manufacturerFind = ManufacturerModel::find()->alias("m")
                            ->select([
                                "m.*",
                                "su.username",
                                "su.password_hash",
                                "su.password"
                            ]);
        $manufacturerFind->leftJoin(SysUserModel::tableName() . " su", "su.id = m.sys_user_id");

        if (!empty($where)) {
            $manufacturerFind->where($where);
        }
        if ($offset) {
            $manufacturerFind->offset($offset);
        }
        if ($limit) {
            $manufacturerFind->limit($limit);
        }
        $manufacturerFind->andWhere(["is_delete" => 0]);
        $manufacturerFind->orderBy("m.id desc");
        $manufacturerFind->asArray();
        $dataList = $manufacturerFind->all();
        foreach ($dataList as $key => $item) {
            $dataList[$key]["cutpassword"] = isset($item["password"]) ? self::substr_cut($item["password"]) : "*******";
        }

        return $dataList;
    }

    /**
     * 列表页面分页器数量
     * @param string $map
     */
    static function getPageCount($map = '')
    {
        $manufacturerFind = ManufacturerModel::find()->alias("m");
        $manufacturerFind->leftJoin(SysUserModel::tableName() . " su", "su.id = m.sys_user_id");
        if (!empty($map)) {
            $manufacturerFind->where($map);
        }
        $manufacturerFind->andWhere(["is_delete" => 0]);
        $pageCount = $manufacturerFind->count();

        return $pageCount;
    }

    /**
     * @param $id
     * @param bool|false $asArr
     * @return null|static
     */
    static function selectOne($id, $asArr = false)
    {
        $manufacturer = ManufacturerModel::findOne($id);
        if ($asArr && $manufacturer) {
            $manufacturer = $manufacturer->toArray();
        }
        return $manufacturer;
    }

    /**
     * @param $id
     * @param bool|false $asArr
     * @return null|static
     */
    static function selectInfoById($id, $asArr = false)
    {
        if (empty($id)) {
            return $asArr ? [] : null;
        }
        $manufacturer = ManufacturerModel::find();
        $manufacturer->alias("mf");
        $manufacturer->select(["mf.*", "su.username", "su.password"]);
        $manufacturer->leftJoin(SysUserModel::tableName() . " su", "su.id = mf.sys_user_id");
        $manufacturer->where("mf.id = " . $id);
        if ($asArr && $manufacturer) {
            $manufacturer = $manufacturer->asArray();
        }
        $resultData = $manufacturer->one();
        return $resultData;
    }

    /**
     * @param $id
     * @param bool|false $asArr
     * @return null|static
     */
    static function findOne($condition)
    {
        $manufacturer = ManufacturerModel::findOne($condition);
        return $manufacturer;
    }

    /**
     * 只保留字符串首尾字符,隐藏中间用*代替(两个字符时只显示第一个)
     * @param string $string 字符串
     * @return string 格式化后的字符串
     */
    static function substr_cut($string){
        $strlen   = mb_strlen($string, 'utf-8');
        $firstStr   = substr($string, 0, 1);
        $lastStr   = substr($string, -1);
        if($strlen == 2){
            $hideStr = str_repeat('*', strlen($string, 'utf-8') - 1);
            $result = $firstStr . $hideStr ;
        }else {
            $hideStr = substr(str_repeat("*", $strlen - 2), 0, 6);
            $result = $firstStr . $hideStr . $lastStr;
        }
        return $result;
    }
}