| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | <?php// +----------------------------------------------------------------------// | Niucloud-admin 企业快速开发的多应用管理平台// +----------------------------------------------------------------------// | 官方网址:https://www.niucloud.com// +----------------------------------------------------------------------// | niucloud团队 版权所有 开源版本可自由商用// +----------------------------------------------------------------------// | Author: Niucloud Team// +----------------------------------------------------------------------namespace addon\mall\app\model\goods;use addon\mall\app\dict\goods\EvaluateDict;use addon\mall\app\model\order\OrderGoods;use app\dict\sys\FileDict;use core\base\BaseModel;use Exception;/** * 商品评价模型 * Class Evaluate * @package addon\mall\app\model\goods */class Evaluate extends BaseModel{    /**     * 数据表主键     * @var string     */    protected $pk = 'evaluate_id';    /**     * 模型名称     * @var string     */    protected $name = 'mall_goods_evaluate';    // 设置json类型字段    protected $json = [ 'images' ];    // 设置JSON数据返回数组    protected $jsonAssoc = true;    /**     * 关联商品表     */    public function goods()    {        return $this->hasOne(Goods::class, 'goods_id', 'goods_id')->withField('site_id, goods_id, goods_name, goods_cover')            ->append([ 'goods_cover_thumb_small', 'goods_cover_thumb_mid' ]);    }    public function orderGoods(){        return $this->hasOne(OrderGoods::class, 'order_goods_id', 'order_goods_id');    }    /**     * 审核状态转换     * @param $value     * @param $data     * @return mixed|string     */    public function getAuditNameAttr($value, $data)    {        return EvaluateDict::getStatus()[ $data[ 'is_audit' ] ] ?? '';    }    /**     * 缩略图生成-小图     * @param $value     * @param $data     * @return array     * @throws Exception     */    public function getImageSmallAttr($value, $data)    {        if (!empty($data[ 'images' ])) {            $small_arr = [];            foreach ($data[ 'images' ] as $k => $v) {                $small_arr[] = get_thumb_images($data['site_id'], $v, FileDict::SMALL);            }            return $small_arr;        }        return [];    }    /**     * 缩略图生成-大图     * @param $value     * @param $data     * @return array     * @throws Exception     */    public function getImageBigAttr($value, $data)    {        if (!empty($data[ 'images' ])) {            $samll_arr = [];            foreach ($data[ 'images' ] as $k => $v) {                $samll_arr[] = get_thumb_images($data['site_id'], $v, FileDict::BIG);            }            return $samll_arr;        }        return [];    }    /**     * 缩略图生成-中图     * @param $value     * @param $data     * @return array     * @throws Exception     */    public function getImageMidAttr($value, $data)    {        if (!empty($data[ 'images' ])) {            $samll_arr = [];            foreach ($data[ 'images' ] as $k => $v) {                $samll_arr[] = get_thumb_images($data['site_id'], $v, FileDict::MID);            }            return $samll_arr;        }        return [];    }    /**     * 评分搜索器     * @param $query     * @param $value     * @param $data     */    public function searchScoresAttr($query, $value, $data)    {        if ($value) {            $query->where('scores', 'in', $value);        }    }    public function getMemberNameAttr($value, $data) {        if (isset($data['is_anonymous']) && $data['is_anonymous'] == 1) {            return '匿名买家';        }        return $value;    }}
 |