<?php

/**
 * @method 店铺会员权限
 * @author zhengweihua 
 * @copyright 2022-05-21
 */
class B2cMemberRules extends B2cBase
{
    /**
     * @param  [type] $ruleArr array 权限数组 Array([search_vin] =>[],[search_model] => [],[search_number] => [],[search_engine] => [],[item_page] => [],...)
     * @param  [type] $shopid  int  店铺id
     * @method 保存店铺会员权限
     * @author zhengweihua 
     * @copyright 2022-05-21
     */
    public function saveMemberRulesLink($ruleArr,$shopid)
    {
        if (empty($ruleArr) || !is_array($ruleArr) || !LibFc::Int($shopid)) return LibFc::ReturnData(false, '参数不正确');

        $oldRuleArr = [];
        $this->B2CDb->Begin();

        $oldRuleResult = $this->get('sh_member_rule_link', ['smrl_mel_id,smrl_smr_code'], sprintf(" and smrl_shop_id=%d", $shopid));
        if (!empty($oldRuleResult['data'])) {
            foreach ($oldRuleResult['data'] as $key => $item) {
                $oldRuleArr[$item['smrl_smr_code']][] = $item['smrl_mel_id'];
            }
        }
        $melIdArrResult = $this->get('sh_member_level', ['mel_id'], "");
        $melIdArr = array_column($melIdArrResult['data'], 'mel_id');
        $data = [];
        foreach ($ruleArr as $rkey => $ritem)
        {

            $ritem = array_filter($ritem, function ($item) {
                return $item != '';
            });
            //删除的
            $temp = $oldRuleArr[$rkey] ? $oldRuleArr[$rkey] : [];
            $deleteArr = array_diff($temp, $ritem);
            $addArr = array_diff($ritem, $temp);
            if (!empty($deleteArr)) {
                $where = sprintf(" and smrl_smr_code ='%s' and smrl_mel_id in(%s) and smrl_shop_id = %d", $rkey, implode(',', $deleteArr), $shopid);
                $this->del('sh_member_rule_link', $where);
            }
            //新增的
            if (!empty($addArr)) {
                foreach ($addArr as $v) {
                    if (!in_array($v, $melIdArr)) {

                        return LibFc::ReturnData(false, '参数不正确');
                    }
                    $arr = [
                        'smrl_shop_id' => $shopid,
                        'smrl_mel_id' => $v,
                        'smrl_smr_code' => $rkey
                    ];
                    $data[] = $arr;
                }
            }
        }
        if (!empty($data)) {
            $this->addAny('sh_member_rule_link', ['smrl_shop_id', 'smrl_mel_id', 'smrl_smr_code'], $data);
        }
        //日志
        $B2cLog = new B2cLog();
        $item = [
			'log_shop_id'=>$_SESSION['_shopid'],
			'log_category'=>'21',
			'log_txt'=>'设置店铺权限',
			'log_dataid'=>$_SESSION['_shopid']
		];
        $B2cLog->addFastLog($item);
        $this->B2CDb->End();

        return LibFc::ReturnData(true, true);
    }
}