| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 | <?phpnamespace app\common\model;use think\Db;use think\Exception;class MateCheck extends Base{    protected $createTime = 'create_time';    protected $updateTime = 'update_time';    public $table = 'mate_check';    protected $validateName = 'MateCheck';    public function updates($userId){        $data = request()->post();        $data['org_id'] = cur_org_id();        $result = validate($this->validateName)->check($data,[],'');        if(true !== $result){            $this->error = validate($this->validateName)->getError();            return false;        }        $curTime = date('Y-m-d H:i:s');        Db::startTrans();        try{            $applyId = Db::name('mate_check')->insertGetId([                'org_id' => $data['org_id'],                'create_time' => $curTime,                'user_id' => $userId,                'remark' => $data['remark'],                'status' => 0            ]);            if(!$applyId){                \exception('操作失败');            }            $arr = [];            foreach ($data['goods'] as $k=>$v){                $info = Db::name('mate_goods')->where('id',$v)->find();                $arr[] = [                    'check_id' => $applyId,                    'goods_id' => $v,                    'nums' => $info['nums'],                    'price' => $info['price'],                    'status' => 0                ];            }            $ret = Db::name('mate_check_goods')->insertAll($arr);            if($ret != count($arr)){                \exception('操作失败');            }            Db::commit();        }catch (Exception $e){            Db::rollback();            $this->error = $e->getMessage();            return false;        }        return true;    }    public function checkGoods($userId){        $id = input('id/d',0);        $checknums = input('check_nums/d',0);        $remark = input('remark','','trim');        if($checknums < 0){            $this->error = '实盘数量不能小于0';            return false;        }        $info = Db::name('mate_check_goods')->where('id',$id)->where('del',0)->find();        if(!$info){            $this->error = '记录不存在';            return false;        }        if($info['status'] != 0){            $this->error = '该记录已处理';            return false;        }        $status = 2;        if($checknums > $info['nums']){            $status = 3;        }else if($checknums < $info['nums']){            $status = 1;        }        $ret = Db::name('mate_check_goods')->where('id',$id)->update([            'user_id' => $userId,            'status' => $status,            'check_time' => date('Y-m-d H:i:s'),            'check_nums' => $checknums,            'remark' => $remark        ]);        if(!$ret){            $this->error = '记录不存在';            return false;        }        return true;    }    public function getInfo($id){        $info = $this            ->where('id',$id)            ->find()            ->toArray();        if(!$info){            return false;        }        $info['userName'] = Db::name('user')->where('id',$info['user_id'])->value('real_name');        $goods = Db::name('mate_check_goods')            ->alias('a')            ->join('mate_goods c','c.id=a.goods_id')            ->where('a.check_id',$info['id'])            ->where('a.del',0)            ->field('a.*,c.title,c.unit,c.brand,c.spec')            ->select();        $goods = $goods?$goods:[];        $tnums = 0;        $tchecknums = 0;        foreach ($goods as $k=>$v){            $tnums += $v['nums'];            $tchecknums += $v['check_nums'];        }        $info['tnums'] = $tnums;        $info['tchecknums'] = $tchecknums;        $info['goods'] = $goods;        return $info;    }}
 |