<?php
namespace app\common\model;

use app\hander\HelpHander;
use app\Request;
use think\Db;
use think\Exception;
use think\Model;

class UserAnnualLog extends Model
{

    public function add(){
        $data = [
            'user_id' => input('uid/d',0),
            'create_user_id' => input('userId/d',0),
            'annual_leave' => input('annualLeave/f',0),
            'org_id' => input('orgId/d',0),
            'remark' => input('remark','','trim'),
            'create_time' => date('Y-m-d H:i:s')
        ];

        $result = validate('UserAnnualLog')->check($data,[],'');
        if(true !== $result){
            HelpHander::error(validate('UserAnnualLog')->getError());
        }

        Db::startTrans();
        try{
            $ret = $this->allowField(true)->save($data);
            if(!$ret){
                \exception('操作失败');
            }

            $res = Db::name('user_info')->where('user_id',$data['user_id'])->setField('annual_leave',$data['annual_leave']);
            if(!$res){
                \exception('操作失败');
            }

            Db::commit();
        }catch (Exception $e){
            Db::rollback();
            HelpHander::error('操作失败'.$e->getMessage());
        }

        return true;
    }

    public function lists($page,$size,$orgId){
        $map[] = ['org_id','=',$orgId];

        $lists = Db::name('user_annual_log')
            ->where($map)
            ->page($page,$size)
            ->order('id desc')
            ->select();

        $lists = $lists?$lists:[];
        foreach ($lists as $k=>$v){
            $lists[$k]['user_name'] = Db::name('user_info')->where('user_id',$v['user_id'])->value('name');
            $lists[$k]['create_user_name'] = Db::name('user_info')->where('user_id',$v['create_user_id'])->value('name');
        }

        $total = Db::name('user_annual_log')->where($map)->count();

        $data = [
            'total' => $total,
            'list' => $lists
        ];
        return $data;
    }

}