<?php

/*
 * 店铺规格值
 * 每个店铺都有对应分类下保存的规格值
 */

namespace app\api\controller;

use think\facade\Lang;

/**
 * ============================================================================
 * DSMall多用户商城
 * ============================================================================
 * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
 * 网站地址: http://www.csdeshang.com
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * 控制器
 */
class Sellerspec extends MobileSeller {

    public function initialize() {
        parent::initialize();
        Lang::load(base_path() . 'home/lang/' . config('lang.default_lang') . '/sellerspec.lang.php');
    }

  
    /**
     * @api {POST} api/Sellerspec/save_spec 保存规格值
     * @apiVersion 1.0.0
     * @apiGroup Sellerspec
     *
     * @apiHeader {String} X-DS-KEY 卖家授权token
     *
     * @apiParam {Int} gc_id 商品分类ID
     * @apiParam {Object} spec_list 规格列表
     * 
     * @apiSuccess {String} code 返回码,10000为成功
     * @apiSuccess {String} message  返回消息
     * @apiSuccess {Object} result  返回数据
     */
    public function save_spec() {
        $spec_list = input('post.spec_list/a');
        $gc_id = intval(input('post.gc_id'));
        if (empty($spec_list) || $gc_id <= 0) {
            ds_json_encode(10001, lang('param_error'));
        }

        $spec_model = model('spec');
        foreach ($spec_list as $sp_id => $spec) {
            $spvalue_ids = array();
            $specvalue_list = array();
            foreach ($spec['value'] as $val) {
                $val['spvalue_name'] = trim($val['spvalue_name']);
                if (!empty($val['spvalue_name'])) {
                    if (isset($val['spvalue_id'])) {
                        $spvalue_ids[] = $val['spvalue_id'];
                        $condition = array();
                        $condition[] = array('store_id', '=', $this->store_info['store_id']);
                        $condition[] = array('spvalue_id', '=', $val['spvalue_id']);
                        $update = array(
                            'spvalue_name' => $val['spvalue_name'],
                        );
                        $spec_model->editSpecvalue($update, $condition);
                    } else {
                        $specvalue_list[] = array(
                            'spvalue_name' => $val['spvalue_name'],
                            'sp_id' => $sp_id,
                            'gc_id' => $gc_id,
                            'store_id' => $this->store_info['store_id'],
                            'spvalue_color' => '',
                            'spvalue_sort' => 255
                        );
                    }
                }
            }
            $condition = array();
            $condition[] = array('store_id', '=', $this->store_info['store_id']);
            $condition[] = array('sp_id', '=', $sp_id);
            if (!empty($spvalue_ids)) {
                $condition[] = array('spvalue_id', 'not in', $spvalue_ids);
            }
            $spec_model->delSpecvalue($condition);
            if (!empty($specvalue_list)) {
                $spec_model->addSpecvalueALL($specvalue_list);
            }
        }
        ds_json_encode(10000, lang('ds_common_op_succ'));
    }

}

?>