123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Http\Controllers\Controller;
- use App\Http\Models\PryAnalyzeSummary;
- use App\Http\Models\PryAnalyzeSummaryScope;
- use App\Http\Models\PryOptimizeData;
- use App\Http\Models\PryOptimizeDataScope;
- use App\Http\Models\PrySeoItem;
- use App\Http\Models\PrySeoItemScope;
- use App\Http\Models\PrySocial;
- use App\Http\Models\Role;
- use App\Http\Models\Site;
- use Illuminate\Http\Request;
- /**
- * 项目管理下 项目概况下的 推广月报
- * Class PromoteYearController
- * @package App\Http\Controllers\Admin
- */
- class PromoteYearController extends Controller
- {
- //主页
- public function index($siteId)
- {
- $where = ['site_id' => $siteId];
- $optimizeDataList = PryOptimizeData::query()->where($where)->get()->groupBy('type');
- $optimizeScopeList=PryOptimizeDataScope::query()->get()->groupBy('type');
- $seoItemSingle = PrySeoItem::query()->where($where)->first();
- $authUser = auth()->user();
- if ($authUser->is_super || in_array($authUser->role_id, [Role::TYPE_MANAGE_LEADER])) {
- $scope = true;
- }
- $analyzeSummaryList=PryAnalyzeSummary::query()->where($where)->get();
- $analyzeSummaryScopeList=PryAnalyzeSummaryScope::query()->get();
- return view('admin.promote_year.index', [
- 'siteId' => $siteId,
- 'optimizeDataList' => $optimizeDataList,
- 'optimizeDataScopeList' => $optimizeScopeList,
- 'seoItemSingle' => $seoItemSingle,
- 'seoItemScopeList' => PrySeoItemScope::query()->get(),
- 'analyzeSummaryList'=>$analyzeSummaryList,
- 'analyzeSummaryScopeList'=>$analyzeSummaryScopeList,
- 'scope' => $scope ?? false
- ]);
- }
- //优化师数据保存
- public function saveOptimizeData(Request $request, $siteId)
- {
- $dataList = $request->input('dataList') ?? [];
- $type= $request->input('type');
- if (!in_array($type,['keyword','inquire','profile','traffic'])) {
- return response()->json(['message' => '参数类型错误'], 400);
- }
- $site = Site::query()->select(['old_id'])->find($siteId);
- if (!$site) {
- return response()->json(['message' => '站点不存在'], 400);
- }
- $scopeIds=PryOptimizeData::query()->where(['type'=>$type,'site_id'=>$siteId])->pluck('id')->toArray();
- $requestIds=array_column($dataList,'id');
- $delIds=array_diff($scopeIds,$requestIds);
- if ($delIds) {
- PryOptimizeData::destroy($delIds);
- }
- foreach ($dataList as $item){
- if (empty($item['id'])) {
- PryOptimizeData::query()->create([
- 'site_id'=>$siteId,
- 'old_id'=>$site->old_id,
- 'content'=>$item['content'],
- 'type'=>$type
- ]);
- }else {
- PryOptimizeData::query()->where(['id'=>$item['id']])
- ->update(['content'=>$item['content']]);
- }
- }
- return response()->json(['message' => '操作成功','data'=>PryOptimizeData::query()->where(['site_id'=>$siteId,'type'=>$type])->get()]);
- }
- //优化师数据固定话语保存
- public function saveOptimizeDataScope(Request $request)
- {
- $dataList = $request->input('dataList') ?? [];
- $type= $request->input('type');
- if (!in_array($type,['keyword','inquire','profile','traffic'])) {
- return response()->json(['message' => '参数类型错误'], 400);
- }
- $scopeIds=PryOptimizeDataScope::query()->where(['type'=>$type])->pluck('id')->toArray();
- $requestIds=array_column($dataList,'id');
- $delIds=array_diff($scopeIds,$requestIds);
- if ($delIds) {
- PryOptimizeDataScope::destroy($delIds);
- }
- foreach ($dataList as $item){
- if (empty($item['id'])) {
- PryOptimizeDataScope::query()->create([
- 'content'=>$item['content'],
- 'type'=>$type
- ]);
- }else {
- PryOptimizeDataScope::query()->where(['id'=>$item['id']])
- ->update(['content'=>$item['content']]);
- }
- }
- return response()->json(['message' => '操作成功','data'=>PryOptimizeDataScope::query()->where(['type'=>$type])->get()]);
- }
- //获取seo固定选项
- public function getSeoItemScope()
- {
- $result = PrySeoItemScope::query()->get();
- return response()->json(['data' => $result]);
- }
- //保存seo
- public function saveSeoItem(Request $request, $siteId)
- {
- $site = Site::query()->select(['old_id'])->find($siteId);
- if (!$site) {
- return response()->json(['message' => '站点不存在'], 400);
- }
- $checked_list = $request->input('checked_list') ?? [];
- $data = PrySeoItem::query()->where(['site_id' => $siteId])->first();
- if ($data) {
- $data->checked_list = $checked_list;
- $data->save();
- } else {
- PrySeoItem::query()->create([
- 'site_id' => $siteId,
- 'old_id' => $site->old_id,
- 'checked_list' => $checked_list
- ]);
- }
- return response()->json(['message' => '操作成功']);
- }
- //seo固定选项保存
- public function saveSeoItemScope(Request $request)
- {
- $dataList = $request->input('dataList') ?? [];
- $insertData = [];
- $datetime = date('Y-m-d H:i:s');
- $idMapList = PrySeoItemScope::query()->get();
- $seoItemIds = array_filter(array_column($dataList, 'seoItemId'));
- foreach ($idMapList as $item) {
- if (!in_array($item->id, $seoItemIds)) {
- $item->delete();
- }
- foreach ($dataList as $v) {
- if ($v['seoItemId'] == $item->id && $v['content'] != $item->content) {
- $item->update(['content' => $v['content']]);
- }
- }
- }
- foreach ($dataList as $value) {
- if (empty($value['seoItemId'])) {
- $insertData[] = [
- 'content' => $value['content'],
- 'created_at' => $datetime,
- 'updated_at' => $datetime
- ];
- }
- }
- if ($dataList) {
- PrySeoItemScope::query()->insert($insertData);
- }
- return response()->json(['message' => '操作成功']);
- }
- //优化师分析保存
- public function saveAnalyzeSummary(Request $request, $siteId)
- {
- $dataList = $request->input('dataList') ?? [];
- $site = Site::query()->select(['old_id'])->find($siteId);
- if (!$site) {
- return response()->json(['message' => '站点不存在'], 400);
- }
- $scopeIds=PryAnalyzeSummary::query()->where(['site_id'=>$siteId])->pluck('id')->toArray();
- $requestIds=array_column($dataList,'id');
- $delIds=array_diff($scopeIds,$requestIds);
- if ($delIds) {
- PryAnalyzeSummary::destroy($delIds);
- }
- foreach ($dataList as $item){
- if (empty($item['id'])) {
- PryAnalyzeSummary::query()->create([
- 'site_id'=>$siteId,
- 'old_id'=>$site->old_id,
- 'content'=>$item['content'],
- ]);
- }else {
- PryAnalyzeSummary::query()->where(['id'=>$item['id']])
- ->update(['content'=>$item['content']]);
- }
- }
- return response()->json(['message' => '操作成功','data'=>PryAnalyzeSummary::query()->where(['site_id'=>$siteId])->get()]);
- }
- //优化师分析固定话语保存
- public function saveAnalyzeSummaryScope(Request $request)
- {
- $dataList = $request->input('dataList') ?? [];
- $scopeIds=PryAnalyzeSummaryScope::query()->pluck('id')->toArray();
- $requestIds=array_column($dataList,'id');
- $delIds=array_diff($scopeIds,$requestIds);
- if ($delIds) {
- PryAnalyzeSummaryScope::destroy($delIds);
- }
- foreach ($dataList as $item){
- if (empty($item['id'])) {
- PryAnalyzeSummaryScope::query()->create([
- 'content'=>$item['content'],
- ]);
- }else {
- PryAnalyzeSummaryScope::query()->where(['id'=>$item['id']])
- ->update(['content'=>$item['content']]);
- }
- }
- return response()->json(['message' => '操作成功','data'=>PryAnalyzeSummaryScope::query()->get()]);
- }
- //社交推广保存
- public function saveSocial(Request $request, $siteId)
- {
- $site = Site::query()->select(['old_id'])->find($siteId);
- if (!$site) {
- return response()->json(['message' => '站点不存在'], 400);
- }
- $facebook = $request->input('facebook');
- $linkedIn = $request->input('linkedIn');
- $twitter = $request->input('twitter');
- $pin = $request->input('pin');
- $facebookHide = $request->input('facebookHide');
- $linkedInHide= $request->input('linkedInHide');
- $twitterHide = $request->input('twitterHide');
- $pinHide = $request->input('pinHide');
- if (PrySocial::query()->where(['site_id' => $siteId])->exists()) {
- PrySocial::query()->where(['site_id' => $siteId])->where(['type' => 'facebook'])->update([
- 'data_list' => json_encode($facebook),
- 'hide'=>$facebookHide,
- ]);
- PrySocial::query()->where(['site_id' => $siteId])->where(['type' => 'linkedIn'])->update([
- 'data_list' => json_encode($linkedIn),
- 'hide'=>$linkedInHide,
- ]);
- PrySocial::query()->where(['site_id' => $siteId])->where(['type' => 'twitter'])->update([
- 'data_list' => json_encode($twitter),
- 'hide'=>$twitterHide,
- ]);
- PrySocial::query()->where(['site_id' => $siteId])->where(['type' => 'pin'])->update([
- 'data_list' => json_encode($pin),
- 'hide'=>$pinHide,
- ]);
- } else {
- PrySocial::query()->create([
- 'type' => 'facebook',
- 'site_id' => $siteId,
- 'old_id' => $site->old_id,
- 'data_list' => $facebook,
- 'hide'=>$facebookHide
- ]);
- PrySocial::query()->create([
- 'type' => 'linkedIn',
- 'site_id' => $siteId,
- 'old_id' => $site->old_id,
- 'data_list' => $linkedIn,
- 'hide'=>$linkedInHide
- ]);
- PrySocial::query()->create([
- 'type' => 'twitter',
- 'site_id' => $siteId,
- 'old_id' => $site->old_id,
- 'data_list' => $twitter,
- 'hide'=>$twitterHide
- ]);
- PrySocial::query()->create([
- 'type' => 'pin',
- 'site_id' => $siteId,
- 'old_id' => $site->old_id,
- 'data_list' => $pin,
- 'hide'=>$pinHide
- ]);
- }
- return response()->json(['message' => '操作成功']);
- }
- }
|