<?php
/**
 * @copyright   Copyright (c) 2017 https://www.sapixx.com All rights reserved.
 * @license     Licensed (http://www.apache.org/licenses/LICENSE-2.0).
 * @author      pillar<ltmn@qq.com>
 * 商家管理
 */
namespace app\allwin\model;
use think\Model;
use util\Util;
use app\allwin\model\AllwinStore;

class StoreUnion extends Model{
    
    protected $pk    = 'id';
    protected $table = 'ai_allwin_store_union';
        
    //联盟城市
    public function store(){
        return $this->hasOne('AllwinStore','id','store_id');
    }

    /**
     * ######################
     * 联合商家管理
     */
    public static function unionList(int $store_id){
        $rel = self::where(['store_id' => $store_id])->find();
        if(empty($rel->store_union)){
            return false;
        }
        $store_union = json_decode($rel->store_union,true);
        if(empty($store_union)){
            return false;
        }
        $rel = AllwinStore::where(['id' => $store_union,'is_lock' => 0])->field('id,name,img,address,telphone,score,tips,tags,is_top,state_text')->order('sort desc,id desc')->paginate(10)->toArray();
        if(empty($rel['data'])){
            return false;
        }
        $data = $rel['data'];
        foreach ($rel['data'] as $key => $value) {
            $data[$key]['tags'] = explode(',',$value['tags']);
            $data[$key]['img']  = $value['img']."?x-oss-process=style/w100";
        }
        return $data;
    }

    /**
     * 编辑修改联盟店铺
     */
    public static function unionEdit(int $store_id,int $union_id){
        $union   = [];
        $union[] = $union_id;
        $rel = self::where(['store_id' => $store_id])->find();
        $data = [];
        if(empty($rel)){
            $data['store_id']    = $store_id;
            $data['store_union'] = json_encode($union);
            return self::insert($data);
        }else{
            $store_union = json_decode($rel->store_union,true);
            $key = array_flip($store_union);
            if(array_key_exists($union_id,$key)){
                unset($key[$union_id]);
                $store_union = array_flip($key);
                $store = [];
                foreach ($store_union as $value) {
                    $store[] = $value;
                }
                sort($store);
                $data['store_union'] = json_encode($store);
            }else{
                $store_union = Util::unique_array(array_merge($store_union,$union));
                $data['store_union'] = json_encode($store_union);
            }
            return self::where(['store_id' => $store_id])->update($data);
        }
    } 

    /**
     * 删除联合商家
     */
    public static function unionDelete(array $where){
        return self::where($where)->delete();
    }
}