<?php
namespace app\api\controller\v1;
use app\api\controller\Base;
use app\common\model\WashingItems;
use app\common\model\WashingRecord;
use app\hander\HelpHander;
use think\Db;

class Wash extends Base
{
    public function getWashDep(){
        $code=input('code','');
        if(empty($code)) HelpHander::error('code不能为空');
        $data = get_qrcode_arr($code);
        if(empty($data)) HelpHander::error('地点不存在');
        if($data['type'] !='address'){
            HelpHander::error('地点不存在');
        }
        $info = Db::name('address')->where('id',$data['id'])
            ->field('id,title,types')
           ->find();
        $types = $info['types']?explode(',',$info['types']):[];
        if(!in_array(9,$types)){
            HelpHander::error('二维码不正确');
        }
        unset($info['types']);
        HelpHander::success($info?$info:[]);
    }

    public function getWashItems(){
        $data = (new WashingItems())->getList($this->orgId);
        HelpHander::success($data?$data:[]);

    }
    public function add(){
        $orgId=$this->orgId;
        $userId=$this->userId;
        $depId=input('depId','0');
        $sqImg = input('sqImg','');
        $sqSign = input('sqSign','');
        if(empty($depId))  HelpHander::error('地点不能为空');
        $item = input('items','');
        if(empty($item))  HelpHander::error('物品信息不能为空');
        $items = json_decode($item,true);
        if(!is_array($items) || empty($items))  HelpHander::error('物品信息格式错误');
        $formatItem = [];

        foreach ($items as $k=>$v){
            if(empty($v['num'])) HelpHander::error('请填写'.$v['title'].'信息数量');
            $formatItem[$k]['items_id'] = $v['id'];
            $formatItem[$k]['num'] = $v['num'];
        }
//        if(!$sqImg)HelpHander::error('收取图片不能为空');
        if(!$sqSign)HelpHander::error('收取签名不能为空');
        $params['dep_id'] = $depId;
        $params['org_id'] = $orgId;
        $params['user_id'] = $userId;
        $params['items'] = $formatItem;
        $params['sq_img'] = $sqImg;
        $params['sq_sign'] = $sqSign;
        $res = (new WashingRecord())->addSave($params);
        if(!$res){
            HelpHander::error((new WashingRecord())->getError());
        }
        HelpHander::success([],'添加成功');
    }
    public function getWashList(){
        $orgId=$this->orgId;
        $userId=$this->userId;
        $type =input('type',1);
        $page =input('page',1);
        $size =input('size',10);
        $data = (new WashingRecord())->getApiList($page,$size,$type,$userId,$orgId);
        HelpHander::success($data);

    }

    public function getWashDetail(){
        $id=input('id',0);
        if(empty($id)) HelpHander::error('参数id不能为空');

        $map[] = ['id','=',$id];
        $map[] = ['user_id','=',$this->userId];
        $map[] = ['del','=',0];
        $data =  Db::name('washing_record')
            ->field('mode,create_time,return_time,confirm_time,sign,sq_img,sq_sign,img')
            ->where($map)
            ->find();
        $data['sq_img'] = $data['sq_img']?$data['sq_img']:'';
        $data['sq_sign'] = $data['sq_sign']?$data['sq_sign']:'';
        $data['img'] = $data['img']?$data['img']:'';
        if(empty($data)) HelpHander::error('信息不存在');
        $item  = Db::name('washing_record_item')->where('washing_record_id',$id)
               ->select();
        $items = [];
        foreach ($item as $k=>$v){
            $goods = Db::name('washing_items')
                ->where('id',$v['items_id'])
               ->find();
            $items[$k]['num'] = $v['num'];
            $items[$k]['title'] = $goods['title'];
        }
        $data['items'] = $items;
        $data['return_time'] = $data['return_time']?$data['return_time']:'';
        $data['confirm_time'] = $data['confirm_time']?$data['confirm_time']:'';
        $data['sign'] = $data['sign']?$data['sign']:'';
        $data['items'] = $items;
        HelpHander::success($data?$data:[]);

    }

    public function optionWash(){
        $id=input('id',0);
        $type=input('type');
        $sign=input('sign');

        $img = input('img');

        if(empty($type)) HelpHander::error('参数type不能为空');
        if(!in_array($type,[2,3])) HelpHander::error('参数type值错误');
        if($type==3){
//            if(empty($img)) HelpHander::error('确认照片不能为空');
            if(empty($sign)) HelpHander::error('签名照片不能为空');
        }
        switch ($type){
            case 2:
                $res = (new WashingRecord())->returnWash($id,$this->orgId);
                break;
            case 3:
                $res = (new WashingRecord())->confirmWash($id,$this->orgId,$sign,$img);
                break;
        }

        if(!$res) HelpHander::error((new WashingRecord())->getError());
        HelpHander::success([],'操作成功');
    }
}