作者 lyh

更新发布验证

@@ -5,13 +5,9 @@ namespace App\Http\Controllers\Bside\AyrShare; @@ -5,13 +5,9 @@ namespace App\Http\Controllers\Bside\AyrShare;
5 use App\Enums\Common\Code; 5 use App\Enums\Common\Code;
6 use App\Helper\AyrShare as AyrShareHelper; 6 use App\Helper\AyrShare as AyrShareHelper;
7 use App\Http\Controllers\Bside\BaseController; 7 use App\Http\Controllers\Bside\BaseController;
8 -use App\Http\Controllers\Bside\FileController;  
9 -use App\Http\Controllers\File\ImageController;  
10 use App\Http\Logic\Bside\AyrShare\AyrReleaseLogic; 8 use App\Http\Logic\Bside\AyrShare\AyrReleaseLogic;
11 use App\Http\Logic\Bside\AyrShare\AyrShareLogic; 9 use App\Http\Logic\Bside\AyrShare\AyrShareLogic;
12 use App\Http\Requests\Bside\AyrRelease\AyrReleaseRequest; 10 use App\Http\Requests\Bside\AyrRelease\AyrReleaseRequest;
13 -use App\Models\File\Image;  
14 -use App\Models\File\Image as ImageModel;  
15 11
16 /** 12 /**
17 * @name:社交发布 13 * @name:社交发布
@@ -61,9 +57,10 @@ class AyrReleaseController extends BaseController @@ -61,9 +57,10 @@ class AyrReleaseController extends BaseController
61 public function send_post(AyrReleaseRequest $ayrReleaseRequest,AyrReleaseLogic $ayrReleaseLogic, 57 public function send_post(AyrReleaseRequest $ayrReleaseRequest,AyrReleaseLogic $ayrReleaseLogic,
62 AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){ 58 AyrShareLogic $ayrShareLogic,AyrShareHelper $ayrShare){
63 $ayrReleaseRequest->validated(); 59 $ayrReleaseRequest->validated();
64 - //验证发送平台  
65 //获取发送账号详情 60 //获取发送账号详情
66 $share_info = $ayrShareLogic->ayr_share_info(); 61 $share_info = $ayrShareLogic->ayr_share_info();
  62 + //验证发送平台
  63 + $ayrShareLogic->verify_param($share_info);
67 $data = [ 64 $data = [
68 'images'=>$this->param['images'], 65 'images'=>$this->param['images'],
69 'files'=>$this->param['video'], 66 'files'=>$this->param['video'],
@@ -25,15 +25,15 @@ class AyrShareController extends BaseController @@ -25,15 +25,15 @@ class AyrShareController extends BaseController
25 public function lists(AyrShareModel $ayrShareModel,AyrShareLogic $ayrShareLogic){ 25 public function lists(AyrShareModel $ayrShareModel,AyrShareLogic $ayrShareLogic){
26 //授权配置列表 26 //授权配置列表
27 $share_list = $ayrShareModel->platforms; 27 $share_list = $ayrShareModel->platforms;
28 - $lists = $ayrShareModel->lists($this->map,$this->page,$this->row,'id',['id','name','title','profile_key','bind_plat_from','operator_id','created_at','updated_at']); 28 + $lists = $ayrShareModel->lists($this->map,$this->page,$this->row,'id',['id','name','title','profile_key','bind_platforms','operator_id','created_at','updated_at']);
29 foreach ($lists['list'] as $k => $v){ 29 foreach ($lists['list'] as $k => $v){
30 if(!empty($v['profile_key'])){ 30 if(!empty($v['profile_key'])){
31 $ayrShareHelper = new AyrShareHelper(); 31 $ayrShareHelper = new AyrShareHelper();
32 $share_info = $ayrShareHelper->get_profiles_users($v['profile_key']); 32 $share_info = $ayrShareHelper->get_profiles_users($v['profile_key']);
33 if(isset($share_info['activeSocialAccounts'])){ 33 if(isset($share_info['activeSocialAccounts'])){
34 $str = json_encode($share_info['activeSocialAccounts']); 34 $str = json_encode($share_info['activeSocialAccounts']);
35 - if($str != $v['bind_plat_from']){  
36 - $ayrShareLogic->ayr_share_edit(['bind_plat_from'=>$str]); 35 + if($str != $v['bind_platforms']){
  36 + $ayrShareLogic->ayr_share_edit(['bind_platforms'=>$str]);
37 } 37 }
38 } 38 }
39 } 39 }
@@ -59,8 +59,8 @@ class AyrShareController extends BaseController @@ -59,8 +59,8 @@ class AyrShareController extends BaseController
59 $share_info = $ayrShareHelper->get_profiles_users($info['profile_key']); 59 $share_info = $ayrShareHelper->get_profiles_users($info['profile_key']);
60 if(isset($share_info['activeSocialAccounts'])){ 60 if(isset($share_info['activeSocialAccounts'])){
61 $str = json_encode($share_info['activeSocialAccounts']); 61 $str = json_encode($share_info['activeSocialAccounts']);
62 - if($str != $info['bind_plat_from']){  
63 - $res = $ayrShareLogic->ayr_share_edit(['bind_plat_from'=>$str]); 62 + if($str != $info['bind_platforms']){
  63 + $res = $ayrShareLogic->ayr_share_edit(['bind_platforms'=>$str]);
64 }else{ 64 }else{
65 $res = false; 65 $res = false;
66 } 66 }
@@ -56,7 +56,8 @@ class AyrReleaseLogic extends BaseLogic @@ -56,7 +56,8 @@ class AyrReleaseLogic extends BaseLogic
56 $arr = []; 56 $arr = [];
57 foreach ($data as $k => $v){ 57 foreach ($data as $k => $v){
58 if($k == 'images'){ 58 if($k == 'images'){
59 - $images = explode(',',$v); 59 +// $images = explode(',',$v);
  60 + $images = $v;
60 $imageModel = new Image(); 61 $imageModel = new Image();
61 $list = $imageModel->list(['hash'=>['in',$images]],'id'); 62 $list = $imageModel->list(['hash'=>['in',$images]],'id');
62 foreach ($list as $v1){ 63 foreach ($list as $v1){
@@ -6,10 +6,32 @@ use App\Http\Logic\Bside\BaseLogic; @@ -6,10 +6,32 @@ use App\Http\Logic\Bside\BaseLogic;
6 use App\Models\AyrShare\AyrShare; 6 use App\Models\AyrShare\AyrShare;
7 use App\Models\File\File as FileModel; 7 use App\Models\File\File as FileModel;
8 use App\Models\File\Image as ImageModel; 8 use App\Models\File\Image as ImageModel;
9 - 9 +/**
  10 + * @name:社交发布图片数量
  11 + * Facebook Pages and Groups: 10 images, including a carousel post.
  12 + * Instagram: 10 images.
  13 + * Google : 1 image.
  14 + * LinkedIn: 9 images.
  15 + * Pinterest: 1 image.
  16 + * Reddit: 1 image.
  17 + * Telegram: 1 image.
  18 + * Twitter:4 image
  19 + */
10 class AyrShareLogic extends BaseLogic 20 class AyrShareLogic extends BaseLogic
11 { 21 {
12 - 22 + /**
  23 + * @var :发布图片数量
  24 + */
  25 + public $send_num = [
  26 + 'facebook' => 10,
  27 + 'instagram' => 10,
  28 + 'google' => 1,
  29 + 'linkedin'=>9,
  30 + 'reddit'=>1,
  31 + 'pinterest'=>1,
  32 + 'telegram'=>1,
  33 + 'Twitter'=>1,
  34 + ];
13 35
14 public function __construct() 36 public function __construct()
15 { 37 {
@@ -83,7 +105,7 @@ class AyrShareLogic extends BaseLogic @@ -83,7 +105,7 @@ class AyrShareLogic extends BaseLogic
83 return $this->success(); 105 return $this->success();
84 } 106 }
85 /** 107 /**
86 - * @name :(更新图片库)save_info_info 108 + * @name :(根据hash获取图片详情)save_info_info
87 * @author :lyh 109 * @author :lyh
88 * @method :post 110 * @method :post
89 * @time :2023/5/10 15:01 111 * @time :2023/5/10 15:01
@@ -98,7 +120,7 @@ class AyrShareLogic extends BaseLogic @@ -98,7 +120,7 @@ class AyrShareLogic extends BaseLogic
98 } 120 }
99 121
100 /** 122 /**
101 - * @name :(更新图片库)save_info_info 123 + * @name :(根据hash视频详情)save_info_info
102 * @author :lyh 124 * @author :lyh
103 * @method :post 125 * @method :post
104 * @time :2023/5/10 15:01 126 * @time :2023/5/10 15:01
@@ -171,6 +193,33 @@ class AyrShareLogic extends BaseLogic @@ -171,6 +193,33 @@ class AyrShareLogic extends BaseLogic
171 } 193 }
172 return $this->success(); 194 return $this->success();
173 } 195 }
  196 +
  197 + /**
  198 + * @name :(验证平台参数)verify_param
  199 + * @author :lyh
  200 + * @method :post
  201 + * @time :2023/5/16 9:19
  202 + * ["facebook","fbg","gmb","instagram","linkedin","pinterest","reddit","telegram","tiktok","twitter","youtube"]
  203 + */
  204 + public function verify_param($info){
  205 + //验证发送平台
  206 + foreach ($this->param['platforms'] as $k => $v){
  207 + if(!in_array($v,json_decode($info['bind_platforms']))){
  208 + $this->fail('未绑定平台');
  209 + }
  210 + //验证图片数
  211 + $img_num = count($this->param['images']);
  212 + if($img_num > $this->send_num[$v]){
  213 + $this->fail('发布图片数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'张图');
  214 + }
  215 + //验证图片数
  216 + $img_num = count($this->param['video']);
  217 + if($img_num > 1){
  218 + $this->fail('发布视频数量超过最大限制,'.$v.'只允许'.$this->send_num[$v].'个视频');
  219 + }
  220 + }
  221 + return $this->success();
  222 + }
174 } 223 }
175 224
176 225
@@ -24,11 +24,11 @@ class AyrReleaseRequest extends FormRequest @@ -24,11 +24,11 @@ class AyrReleaseRequest extends FormRequest
24 { 24 {
25 return [ 25 return [
26 'title'=>'required', 26 'title'=>'required',
27 - 'images'=>'required', 27 + 'images'=>'required|array',
28 'video'=>'required', 28 'video'=>'required',
29 'content'=>'required', 29 'content'=>'required',
30 'share_id'=>'required', 30 'share_id'=>'required',
31 - 'platforms'=>'required', 31 + 'platforms'=>'required|array',
32 'idempotency_key'=>'required', 32 'idempotency_key'=>'required',
33 ]; 33 ];
34 } 34 }
@@ -23,7 +23,7 @@ class AyrShareRequest extends FormRequest @@ -23,7 +23,7 @@ class AyrShareRequest extends FormRequest
23 public function rules() 23 public function rules()
24 { 24 {
25 return [ 25 return [
26 - 'name'=>'required||unique:gl_ayr_share,name', 26 + 'name'=>'required|unique:gl_ayr_share,name',
27 ]; 27 ];
28 } 28 }
29 29
@@ -31,6 +31,7 @@ class AyrShareRequest extends FormRequest @@ -31,6 +31,7 @@ class AyrShareRequest extends FormRequest
31 { 31 {
32 return [ 32 return [
33 'name.required'=>'请填写名称', 33 'name.required'=>'请填写名称',
  34 +
34 ]; 35 ];
35 } 36 }
36 } 37 }