$params['product_id'], 'uid'=>$uid ]) ->whereDay('create_time') ->find(); if($check){ StoreVisit::where('id',$check['id'])->inc('count')->update(); }else{ StoreVisit::create([ 'uid' => $uid, 'store_id' => $params['store_id']??0, 'product_id' => $params['product_id'], 'cate_id' => $params['cate_id'], 'count' => 1, 'create_time' => time(), ]); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } public static function visitAdd(array $params,$userInfo): bool { Db::startTrans(); try { $check = UserVisit::where(['url'=>$params['url'], 'uid'=>$userInfo['user_id'] ]) ->whereDay('create_time') ->find(); if($check){ UserVisit::where('id',$check['id'])->inc('stay_time',$params['stay_time'])->update(); }else{ UserVisit::create([ 'uid' => $userInfo['user_id'], 'url' => $params['url'], 'channel_type' =>$userInfo['terminal'], 'ip' => $params['ip'], 'stay_time' => $params['stay_time'], 'create_time' => time(), ]); } Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } }