TaskManagerController.class.php 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483
  1. <?php
  2. namespace bibidd\Controller;
  3. use Bibidd\Controller\CommonBaseController;
  4. /**
  5. *
  6. * 任务管理
  7. */
  8. class TaskManagerController extends CommonBaseController
  9. {
  10. const DOUYING_TI_SHI_CI = "抖音";
  11. const DOUYIN_SU_CAI_BIAO_NAME = "douyin_sucai_video";
  12. const KUAISHOU_TI_SHI_CI = "快手";
  13. const KUAISHOU_SU_CAI_BIAO_NAME = "dy_kuaishou_sucai_video";
  14. const DOUYIN_TYPE = "抖音视频发布";
  15. const SHIPNGHAO_TYPE = "视频号视频发布";
  16. const KUAISHOU_TYPE = "快手视频发布";
  17. const WX_SHARE_TYPE = "微信群分享";
  18. const WX_SHARE_SU_CAI_BIAO_NAME = "dy_wx_sucai_video";
  19. const WX_SHARE_SHI_CI = "微信群";
  20. /**
  21. *
  22. * 查询后台发布的任务列表
  23. * @return void
  24. */
  25. public function query_task_list()
  26. {
  27. $this->addHeaders(); //添加头部请求
  28. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  29. $task_type=$_POST['taskType'];
  30. $page = $_POST['page'];
  31. $one_size = empty($_POST['pageSize'])?30:$_POST['pageSize']; //每頁30行記錄
  32. $page_one = ($page - 1) * $one_size;
  33. $uid = $user_info["id"];
  34. if(empty($task_type))
  35. {
  36. $this->returnDataAndSendMsg("任务类型不能为空");
  37. die();
  38. }
  39. $data_list = M("dy_ks_task")->where("type='$task_type' AND status=0 AND amount>0 AND task_type = 0")->order("date DESC")->LIMIT($page_one, $one_size)->select();
  40. if($task_type==TaskManagerController::SHIPNGHAO_TYPE)
  41. {
  42. //视频号
  43. foreach ($data_list as $key => $value) {
  44. $task_id = $value['id'];
  45. $data_list[$key]['is_ing']=false;
  46. $is_lock_info = M("dy_ks_sucai_video")->field('id')->where("uid='$uid' AND task_id='$task_id' AND is_lock=1")->find();
  47. if(!empty($is_lock_info))
  48. {
  49. $data_list[$key]['is_ing']=true;
  50. }
  51. }
  52. }elseif ($task_type==TaskManagerController::DOUYIN_TYPE)
  53. {
  54. //抖音视频
  55. foreach ($data_list as $key => $value) {
  56. $task_id = $value['id'];
  57. $data_list[$key]['is_ing']=false;
  58. $is_lock_info = M(TaskManagerController::DOUYIN_SU_CAI_BIAO_NAME)->field('id')->where("uid='$uid' AND task_id='$task_id' AND is_lock=1")->find();
  59. if(!empty($is_lock_info))
  60. {
  61. $data_list[$key]['is_ing']=true;
  62. }
  63. }
  64. }elseif ($task_type==TaskManagerController::KUAISHOU_TYPE)
  65. {
  66. //抖音视频
  67. foreach ($data_list as $key => $value) {
  68. $task_id = $value['id'];
  69. $data_list[$key]['is_ing']=false;
  70. $is_lock_info = M(TaskManagerController::KUAISHOU_SU_CAI_BIAO_NAME)->field('id')->where("uid='$uid' AND task_id='$task_id' AND is_lock=1")->find();
  71. if(!empty($is_lock_info))
  72. {
  73. $data_list[$key]['is_ing']=true;
  74. }
  75. }
  76. }
  77. $data['code'] = '200';
  78. $data['message'] = 'ok';
  79. $data['all_num'] =M("dy_ks_task")->where("type='$task_type' AND status=0 AND amount>0 AND task_type = 0")->count();
  80. $data['data'] = $data_list;
  81. echo json_encode($data);
  82. }
  83. /**
  84. * 检查任务是否还有素材库
  85. * @return void
  86. */
  87. public function has_sucai_by_task_id()
  88. {
  89. $this->addHeaders(); //添加头部请求
  90. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  91. $taskId=$_POST['taskId'];
  92. if(empty($taskId))
  93. {
  94. $this->returnDataAndSendMsg("任务ID不能为空");
  95. die();
  96. }
  97. $task_info = M("dy_ks_task")->where("id='$taskId' AND status=0")->find();
  98. if(empty($task_info))
  99. {
  100. $this->returnDataAndSendMsg("此任务已不存在");
  101. die();
  102. }
  103. $ret_flg =0;
  104. $app_id = $task_info['sc_id'];
  105. $sucai_info = M("dy_ks_sucaiku")->where("appid='$app_id'")->field("id")->find();
  106. if(empty($sucai_info))
  107. {
  108. $this->returnDataAndSendMsg("素材库[appid]已不存在");
  109. die();
  110. }
  111. $sucai_id=$sucai_info['id'];
  112. $ret_flg = M("dy_ks_sucai_video")->where("sc_id=$sucai_id AND `status` =0 AND is_lock=0")->count();
  113. $data['code'] = '200';
  114. $data['message'] = 'ok';
  115. $data['data'] = $ret_flg;
  116. echo json_encode($data);
  117. }
  118. /**
  119. * 查询用户详情
  120. * @return void
  121. */
  122. public function get_task_detail()
  123. {
  124. $this->addHeaders(); //添加头部请求
  125. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  126. $id=$_POST['id'];
  127. $data['code'] = '200';
  128. $data['message'] = 'ok';
  129. $data['data'] = M("dy_ks_task")->where("id='$id'")->find();
  130. echo json_encode($data);
  131. }
  132. /**
  133. * 获取视频号详情
  134. * @return void
  135. */
  136. public function get_task_video_detail()
  137. {
  138. $this->addHeaders(); //添加头部请求
  139. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  140. $id=$_POST['id'];
  141. $uid = $user_info["id"];
  142. $data_info = M("dy_ks_task")->where("id='$id'")->find();
  143. $data_info["isDown"]=false;//是否下载视频
  144. $data_info["countdown"]=0;//倒计时
  145. $data_info["isFengjin"]=false;//是否封禁
  146. $data_info["descripe"]="";//是否封禁
  147. $tabe_name = 'dy_ks_sucai_video';
  148. $tishi_ci = "视频号";
  149. if($data_info["type"]==TaskManagerController::DOUYIN_TYPE)
  150. {
  151. $tabe_name = TaskManagerController::DOUYIN_SU_CAI_BIAO_NAME;
  152. $tishi_ci = TaskManagerController::DOUYING_TI_SHI_CI;
  153. }
  154. if($data_info["type"]==TaskManagerController::KUAISHOU_TYPE)
  155. {
  156. $tabe_name = TaskManagerController::KUAISHOU_SU_CAI_BIAO_NAME;
  157. $tishi_ci = TaskManagerController::KUAISHOU_TI_SHI_CI;
  158. }
  159. if($data_info["type"]==TaskManagerController::WX_SHARE_TYPE)
  160. {
  161. $tabe_name = TaskManagerController::WX_SHARE_SU_CAI_BIAO_NAME;
  162. $tishi_ci = TaskManagerController::WX_SHARE_SHI_CI;
  163. }
  164. //检测封禁
  165. $check_info = $this->is_check_shipinhao($uid,$data_info["type"],$tabe_name,$tishi_ci);
  166. $data_info["isFengjin"]=$check_info["isFengjin"];
  167. $data_info["descripe"]=$check_info["descripe"];
  168. $data_info["isDown"]=$check_info["isDown"];
  169. $data_info["sucaiInfo"]=$check_info["sucaiInfo"];
  170. //倒计时
  171. if(!empty($check_info) && !$check_info["isFengjin"])
  172. {
  173. //计划完成时间
  174. if($check_info["finsh_time"]>=$check_info["curent_time"])
  175. {
  176. //倒计时
  177. $data_info["countdown"]=$check_info["finsh_time"]-$check_info["curent_time"];//倒计时
  178. }
  179. }
  180. //填充话题
  181. $huati_type = $data_info['jd_require'];
  182. if(!empty($huati_type) && "不要话题"!=$huati_type)
  183. {
  184. $huati_list = M("dy_wx_huati")->where("type='$huati_type'")->order("rand()")->limit(3)->select();
  185. //$data_info['jd_require']= $huati_list ;
  186. // $data_info['jd_require']= empty($data_info['task_copy'])?"":$data_info['task_copy'] ;
  187. $data_info['jd_require']='';
  188. foreach ($huati_list as $v)
  189. {
  190. $data_info['jd_require']=$data_info['jd_require'].$v["content"];
  191. }
  192. }
  193. //一句话随机,v2.5
  194. $yijuhua=$data_info['task_copy'];
  195. if(!empty($yijuhua) && $yijuhua=='x一句话' || !empty($yijuhua) && $yijuhua=='体育一句话')
  196. {
  197. $yijuhua_info = M("dy_wx_yijuhua")->field("word_content")->where("word_type='$yijuhua'")->order("rand()")->find();
  198. if(!empty($yijuhua_info))
  199. {
  200. $data_info['task_copy'] = $yijuhua_info['word_content'];
  201. }
  202. }
  203. $data['code'] = '200';
  204. $data['message'] = 'ok';
  205. $data['data'] = $data_info;
  206. echo json_encode($data);
  207. }
  208. /**
  209. * 文件上传
  210. * @return void
  211. */
  212. public function file_upload()
  213. {
  214. $this->addHeaders(); //添加头部请求
  215. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  216. $task_require_img= $this->dealFiles($_FILES['task_require_img']);
  217. $uploadPath = '/home2/task/user/'; // 头图片和内容图片的上传目录
  218. // 判断目标路径是否存在,如果不存在则创建
  219. if (!file_exists($uploadPath)) {
  220. mkdir($uploadPath, 0777, true);
  221. }
  222. $path = "https://nb.9169kkxstzsjkdd222.app/task/user/";
  223. $task_require_img_str='';
  224. $upload = new \Think\Upload(); // 实例化图片上传类
  225. $upload->maxSize = 0; //设置附件上传大小
  226. $upload->exts = array('jpg', 'gif', 'png', 'jpeg',"PNG","JPG","GIF","JPEG");// 设置附件上传类型
  227. $upload->rootPath = "/home2/task/user/"; // 设置附件上传根目录
  228. $info_task_yaoqiu = $upload->upload($task_require_img);
  229. if (!$info_task_yaoqiu){
  230. // 上传错误提示错误信息
  231. $this->error($upload->getError());
  232. }else{
  233. foreach ($info_task_yaoqiu as $key => $value) {
  234. $task_require_img_str .= $path . $value['savepath'] . $value['savename'] . ',';
  235. }
  236. }
  237. $arr['task_require_img']=trim($task_require_img_str,',');
  238. $data['code'] = '200';
  239. $data['message'] = 'ok';
  240. $data['data'] = $arr;
  241. echo json_encode($data);
  242. }
  243. /**
  244. * 提交任务
  245. * @return void
  246. */
  247. public function submit_task()
  248. {
  249. $this->addHeaders(); //添加头部请求
  250. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  251. $task_id = $_POST['taskId'];
  252. $pt_id = $_POST['ptId'];//平台ID
  253. $pt_name = $_POST['ptName'];//平台名字
  254. $video_url = $_POST['videoUrl'];// 视频地址
  255. $wcrwImg = $_POST['images'];// 截图
  256. $pt = $_POST['pt'];// 平台
  257. $uid=$user_info['id'];
  258. if (empty($task_id) || empty($pt_id) || empty($video_url) || empty($wcrwImg))
  259. {
  260. $this->returnDataAndSendMsg("平台ID或视频地址或截图信息不能为空");
  261. die();
  262. }
  263. //判断名字只能包含中文和字符
  264. $pattern = '/^[\x{4e00}-\x{9fa5}a-zA-Z0-9]+$/u';
  265. if (!preg_match($pattern, $pt_name))
  266. {
  267. // $this->returnDataAndSendMsg("名称必须是中文、字母、数字");
  268. // die();
  269. }
  270. //封号处理
  271. $is_dis_info = $this->check_pinglun_fenghao_rules("$uid");
  272. if($is_dis_info['isFengjin'])
  273. {
  274. $this->returnDataAndSendMsg($is_dis_info["descripe"]);
  275. die();
  276. }
  277. $task_info = M("dy_ks_task")->where("id='$task_id' AND status=0")->find();
  278. if(empty($task_info))
  279. {
  280. $this->returnDataAndSendMsg("任务已不存在");
  281. die();
  282. }
  283. $task_type = $task_info['type'];//任务类型,抖音视频发布、快手视频发布、抖音评论、快手评论
  284. $type_info = M("dy_ks_task_type")->where("type='$task_type'")->find();
  285. $max_push_num = $type_info['max_push_num']; //每天最大提交数量
  286. $delayed_show_num = $type_info['delayed_show']; //延迟显示小时数
  287. if(!empty($max_push_num) && $max_push_num>0)
  288. {
  289. //验证一天内提交次数
  290. $check_num = M("dy_ks_orders")->where("pt_id = '$pt_id' and type = '$task_type' AND status_ != 3 AND DATE(apply_date) = CURDATE()")->count();
  291. if($check_num>=$max_push_num)
  292. {
  293. $this->returnDataAndSendMsg($max_push_num);
  294. die();
  295. }
  296. }
  297. //账号信息检查,1个69账号绑定多个抖音/快手号(排他)
  298. $check_exist = M("dy_ks_orders")->where("uid!='$uid' AND pt_id = '$pt_id' and type = '$task_type' or uid!='$uid' AND pt_id = '$pt_id' and type = '$task_type' AND pt_name='$pt_name'")->field("id")->find();
  299. if(!empty($check_exist))
  300. {
  301. $this->returnDataAndSendMsg("此账号已被其他9169账号绑定");
  302. die();
  303. }
  304. //防止重复提交
  305. $check_rep = M("dy_ks_orders")->where("pt_id = '$pt_id' and type = '$task_type' AND video_url='$video_url' AND status_ != 3")->count();
  306. if($check_rep>0)
  307. {
  308. $this->returnDataAndSendMsg("同视频下面同账号<br>只能评论1次<br>1个=待审核+审核通过,不包含被驳回");
  309. die();
  310. }
  311. $add_info['uid']=$user_info['id'];
  312. $add_info['t_id']=$task_id;
  313. $add_info['type']=$task_type;
  314. $add_info['amount']=$task_info['amount'];
  315. $add_info['pt']=$pt;
  316. $add_info['pt_id']=$pt_id;
  317. $add_info['pt_name']=$pt_name;
  318. $add_info['video_url']=$video_url;
  319. $add_info['wc_rw_img']=$wcrwImg;
  320. $add_info['apply_date']=date('Y-m-d H:i:s');
  321. $show_data = date('Y-m-d H:i:s', strtotime("+$delayed_show_num hour"));
  322. $add_info['show_date']=$show_data;
  323. $add_info['pt_and_id']=$pt.$pt_id;
  324. $rs = M("dy_ks_orders")->add($add_info);
  325. $data['code'] = '200';
  326. $data['message'] = 'ok';
  327. $data['data'] = $rs;
  328. echo json_encode($data);
  329. }
  330. /**
  331. * 视频号任务提交
  332. * @return void
  333. */
  334. public function submit_task_for_video()
  335. {
  336. $this->addHeaders(); //添加头部请求
  337. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  338. $task_id = $_POST['taskId'];
  339. $pt_id = $_POST['ptId'];//视频号名字
  340. $wcrwImg = $_POST['images'];// 截图
  341. $pt = $_POST['pt'];// 平台
  342. $sucai_number = $_POST['sucaiNumber'];// 素材编码
  343. $uid=$user_info['id'];
  344. if (empty($task_id)|| empty($pt) || empty($pt_id) || empty($wcrwImg))
  345. {
  346. $this->returnDataAndSendMsg("视频号名或截图信息不能为空,请正确添加交单内容");
  347. die();
  348. }
  349. //非空检查
  350. $task_info = M("dy_ks_task")->where("id='$task_id'")->find();
  351. if(empty($task_info))
  352. {
  353. $this->returnDataAndSendMsg("任务已不存在");
  354. die();
  355. }
  356. $sucai_number_info = M("dy_ks_sucai_video")->where("id='$sucai_number'")->find();
  357. if(empty($sucai_number_info))
  358. {
  359. $this->returnDataAndSendMsg("素材不存在");
  360. die();
  361. }
  362. //判断用户是否被封禁了
  363. $is_fenjin = $this->is_check_shipinhao($uid,$task_info['type'],"dy_ks_sucai_video","视频号");
  364. if(!empty($is_fenjin) && $is_fenjin["isFengjin"])
  365. {
  366. $this->returnDataAndSendMsg($is_fenjin["descripe"]);
  367. die();
  368. }
  369. //视频号需要和绑定的素材一致
  370. if($sucai_number_info['weixinhao_name']!=$pt_id)
  371. {
  372. $this->returnDataAndSendMsg("请用".$sucai_number_info['weixinhao_name']."视频号提交任务");
  373. die();
  374. }
  375. //判断是否在30分钟以内提交
  376. $lock_time = strtotime($sucai_number_info["down_date"]);
  377. $now = time();
  378. $difference = $now - $lock_time;
  379. if ($difference > 30 * 60)
  380. {
  381. $this->returnDataAndSendMsg("超时提交");
  382. die();
  383. }
  384. $task_type = $task_info['type'];//视频号视频发布
  385. //判断是否有其他用户提交相同视频号名
  386. $order_check = M("dy_ks_orders")->where("uid != '$uid' AND pt_id = '$pt_id' AND type='$task_type'")->find();
  387. if(!empty($order_check))
  388. {
  389. $this->returnDataAndSendMsg("已有其他用户提交该视频号");
  390. die();
  391. }
  392. //流程没有审核完成,不允许提交
  393. $order_check_rp = M("dy_ks_orders")->where("uid = '$uid' AND pt_id = '$pt_id' AND type = '$task_type' AND status_ not in(2,3,5) ")->find();
  394. if(!empty($order_check_rp))
  395. {
  396. $this->returnDataAndSendMsg("您的视频号还有正在进行中的任务暂未完成,请勿重复提交");
  397. die();
  398. }
  399. $add_info['uid']=$user_info['id'];
  400. $add_info['t_id']=$task_id;
  401. $add_info['type']=$task_type;
  402. $add_info['amount']=$task_info['amount'];
  403. $add_info['pt']=$pt;
  404. $add_info['pt_id']=trim($pt_id);
  405. $add_info['wc_rw_img']=$wcrwImg;
  406. $add_info['apply_date']=date('Y-m-d H:i:s');
  407. $add_info['pt_and_id']=$pt.$pt_id;
  408. $add_info['sucai_id']=$task_info['sc_id'];
  409. $add_info['sucai_number']=$sucai_number;
  410. $rs = M("dy_ks_orders")->add($add_info);
  411. if($rs>0)
  412. {
  413. //解锁素材
  414. $sucai_unlock["status"]=1;//是否可用 0 可用 1 不可用
  415. $sucai_unlock["is_lock"]=0;//解锁
  416. $sucai_unlock["task_order_id"]=$rs;//订单ID
  417. $rs = M("dy_ks_sucai_video")->where("id='$sucai_number'")->save($sucai_unlock);
  418. }
  419. $data['code'] = '200';
  420. $data['message'] = 'ok';
  421. $data['data'] = $rs;
  422. echo json_encode($data);
  423. }
  424. /**
  425. * 申诉
  426. * @return void
  427. */
  428. public function submit_task_for_video_appeal()
  429. {
  430. $this->addHeaders(); //添加头部请求
  431. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  432. $orderId=$_POST['orderId'];
  433. $appeal_images=$_POST['appealImages'];
  434. if(empty($orderId))
  435. {
  436. $this->returnDataAndSendMsg("任务标识不能为空");
  437. die();
  438. }
  439. if(empty($appeal_images))
  440. {
  441. $this->returnDataAndSendMsg("申诉证明不能为空");
  442. die();
  443. }
  444. $order_info = M("dy_ks_orders")->where("id='$orderId'")->find();
  445. if(empty($order_info))
  446. {
  447. $this->returnDataAndSendMsg("无效数据");
  448. die();
  449. }
  450. if($order_info['status_']!=3)
  451. {
  452. $this->returnDataAndSendMsg("非驳回状态,请勿申诉");
  453. die();
  454. }
  455. $dateToCheck = strtotime($order_info['bh_date']);
  456. $currentTime = time();
  457. $difference = $currentTime - $dateToCheck;
  458. if ($difference > 86400) {
  459. $this->returnDataAndSendMsg("申诉必须在驳回24小时内");
  460. die();
  461. }
  462. $order_info['status_']=4;
  463. $order_info['appeal_time']=date('Y-m-d H:i:s');
  464. $order_info['appeal_images']=$appeal_images;
  465. $rs = M("dy_ks_orders")->where("id='$orderId'")->save($order_info);
  466. $data['code'] = '200';
  467. $data['message'] = 'ok';
  468. $data['data'] = $rs;
  469. echo json_encode($data);
  470. }
  471. /**
  472. * 查询用户任务
  473. * @return void
  474. */
  475. public function get_user_task_info()
  476. {
  477. $this->addHeaders(); //添加头部请求
  478. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  479. $id = $_POST['id'];
  480. $uid = $user_info['id'];
  481. $order_info = M("dy_ks_orders")->where("id = '$id' AND uid = '$uid'")->find();
  482. $task_id = $order_info['t_id'];
  483. if(!empty($task_id))
  484. {
  485. $order_info['task_info'] = M("dy_ks_task")->where("id='$task_id'")->find();
  486. }
  487. //通过或者驳回24是否超过24小时
  488. $order_info['isPass24h'] = false;
  489. $currentTimestamp = time(); // Now
  490. if($order_info['status_']==1 || 2==$order_info['status_'])
  491. {
  492. //通过
  493. $givenTimestamp = strtotime($order_info['tg_date']);
  494. $timeDifference = $currentTimestamp - $givenTimestamp;
  495. if ($timeDifference > 86400) {
  496. $order_info['isPass24h'] = true;
  497. }
  498. }
  499. if($order_info['status_']==3 )
  500. {
  501. //通过
  502. $givenTimestamp = strtotime($order_info['bh_date']);
  503. $timeDifference = $currentTimestamp - $givenTimestamp;
  504. if ($timeDifference > 86400) {
  505. $order_info['isPass24h'] = true;
  506. }
  507. }
  508. $data['code'] = '200';
  509. $data['message'] = 'ok';
  510. $data['data'] = $order_info;
  511. echo json_encode($data);
  512. }
  513. /**
  514. * 查询审核列表
  515. * @return void
  516. */
  517. public function query_audit_list()
  518. {
  519. $this->addHeaders(); //添加头部请求
  520. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  521. $uid = $user_info['id'];
  522. $status=$_POST['status']; //'0 待审核 1视频1轮通过 2视频2轮通过/评论通过审核 3 被驳回 4.申诉中 5 申诉被再次驳回
  523. $page = $_POST['page'];
  524. $one_size = empty($_POST['pageSize'])?30:$_POST['pageSize']; //每頁30行記錄
  525. $page_one = ($page - 1) * $one_size;
  526. $status_sql = "AND status_='$status'";
  527. if($status==-1)
  528. {
  529. $status_sql = "";
  530. }
  531. if($status==-2)
  532. {
  533. //状态为0和1(审核中)
  534. $status_sql = "AND status_=0 OR uid = '$uid' AND status_=1 OR uid = '$uid' AND status_=4";
  535. }
  536. if($status==3)
  537. {
  538. //状态为0和1
  539. $status_sql = "AND status_=3 OR uid = '$uid' AND status_=5";
  540. }
  541. $data_list = M("dy_ks_orders")->where("uid = '$uid' ".$status_sql)->LIMIT($page_one, $one_size)->order("apply_date DESC")->select();
  542. $data['code'] = '200';
  543. $data['message'] = 'ok';
  544. $data['all_num'] = M("dy_ks_orders")->where("uid = '$uid' ".$status_sql)->count();
  545. // //状态汇总数量
  546. // $data['full_num']=M("dy_ks_orders")->where("uid = '$uid'")->count();
  547. // $data['auditing_num']=M("dy_ks_orders")->where("uid = '$uid' AND status_=0 OR status_=1")->count();
  548. // $data['pass_num']=M("dy_ks_orders")->where("uid = '$uid' AND status_=2")->count();
  549. // $data['reject_num']=M("dy_ks_orders")->where("uid = '$uid' AND status_=3")->count();
  550. $data['data'] = $data_list;
  551. echo json_encode($data);
  552. }
  553. /**
  554. * 获取审核状态条目汇总
  555. * @return void
  556. */
  557. public function query_satus_number()
  558. {
  559. $this->addHeaders(); //添加头部请求
  560. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  561. $uid = $user_info['id'];
  562. $data['code'] = '200';
  563. $data['message'] = 'ok';
  564. $data['full_num']=M("dy_ks_orders")->where("uid = '$uid'")->count();
  565. $data['auditing_num']=M("dy_ks_orders")->where("uid = '$uid' AND status_=0 OR uid = '$uid' AND status_=1 OR uid = '$uid' AND status_=4")->count();
  566. $data['pass_num']=M("dy_ks_orders")->where("uid = '$uid' AND status_=2")->count();
  567. $data['reject_num']=M("dy_ks_orders")->where("uid = '$uid' AND status_=3 OR uid = '$uid' AND status_=5")->count();
  568. echo json_encode($data);
  569. }
  570. /**
  571. * 获取验证码
  572. * @return void
  573. */
  574. public function getSms()
  575. {
  576. $this->addHeaders(); //添加头部请求
  577. $this->checkUserIsExist($_POST['uid']); //检查用户
  578. $telPhone = $_POST['telPhone'];
  579. $uid= $_POST['uid'];
  580. if(empty($telPhone))
  581. {
  582. $this->returnDataAndSendMsg("手机号码不能为空");
  583. die();
  584. }
  585. //这几个前缀的手机号是虚拟号码
  586. $phoneDuan=array("162","165","167","170","171");
  587. if (in_array(substr($telPhone,0,3),$phoneDuan)) {
  588. $this->returnDataAndSendMsg("手机号格式错误");
  589. die;
  590. }
  591. $user_info = M("user_info")->where("tk_phone = '$telPhone' AND id!='$uid'")->find();
  592. if(!empty($user_info))
  593. {
  594. $this->returnDataAndSendMsg("该手机号码已被其他用户绑定,请更换号码");
  595. die();
  596. }
  597. //判断重复发送
  598. $sms_info_check = M("sms")->where("tel_phone='$telPhone' AND type_='用户信息绑定' AND create_at > NOW() - interval sms_valid_time second")->find();
  599. if(!empty($sms_info_check))
  600. {
  601. $this->returnDataAndSendMsg("在60秒内请勿重复发送");
  602. die();
  603. }
  604. //下发短信
  605. $random_number = mt_rand(100000, 999999);
  606. $rs = $this->sendMessage($telPhone,$random_number);
  607. //存库
  608. $sms_info['tel_phone']=$telPhone;
  609. $sms_info['type_']="用户信息绑定";
  610. $sms_info['sms_code']=$random_number;
  611. $sms_info['sms_valid_time']=60;
  612. $sms_info['create_at']=date('Y-m-d H:i:s');
  613. M("sms")->add($sms_info);
  614. $data['code'] = '200';
  615. $data['message'] = 'ok';
  616. echo json_encode($data);
  617. }
  618. /**
  619. * 绑定手机号
  620. * @return void
  621. */
  622. public function bind_tel()
  623. {
  624. $this->addHeaders(); //添加头部请求
  625. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  626. $uid = $user_info['id'];
  627. $telPhone = $_POST['telPhone'];
  628. $smsNumber= $_POST['smsNumber'];
  629. if(empty($telPhone))
  630. {
  631. $this->returnDataAndSendMsg("手机号码不能为空");
  632. die();
  633. }
  634. if(empty($smsNumber))
  635. {
  636. $this->returnDataAndSendMsg("短信验证码不能为空");
  637. die();
  638. }
  639. //验证短信
  640. $sms_info_check = M("sms")->where("sms_code='$smsNumber' AND create_at > NOW() - interval sms_valid_time second")->find();
  641. if(empty($sms_info_check) || $sms_info_check['sms_code']!=$smsNumber)
  642. {
  643. $this->returnDataAndSendMsg("短信验证码过期或输入有误");
  644. die();
  645. }
  646. $user_info = M("user_info")->where("tk_phone = '$telPhone' AND id!='$uid'")->find();
  647. if(!empty($user_info))
  648. {
  649. $this->returnDataAndSendMsg("该手机号码已被其他用户绑定,请更换号码");
  650. die();
  651. }
  652. $user_info['tk_phone'] = $telPhone;
  653. $rs = M("user_info")->where("id='$uid'")->save($user_info);
  654. $data['code'] = '200';
  655. $data['message'] = 'ok';
  656. $data['data'] = $rs;
  657. echo json_encode($data);
  658. }
  659. /**
  660. * 获取用户信息
  661. * @return void
  662. */
  663. public function get_user_info()
  664. {
  665. $this->addHeaders(); //添加头部请求
  666. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  667. $uid = $user_info['id'];
  668. $rs_info['uid']= $user_info['id'];
  669. $rs_info['note_phone']= $user_info['tk_phone'];
  670. $rs_info['balance']= $user_info['balance'];
  671. $count_info = M("dy_ks_tixian")->field("SUM(amount_) as amount_")->where("uid='$uid' and status_>=3 and tongji=0")->find();
  672. $rs_info['total_money']= $count_info['amount_'];
  673. $data['code'] = '200';
  674. $data['message'] = 'ok';
  675. $data['data'] = $rs_info;
  676. echo json_encode($data);
  677. }
  678. /**
  679. * 提现条目汇总
  680. * @return void
  681. */
  682. public function query_tx_satus_number()
  683. {
  684. $this->addHeaders(); //添加头部请求
  685. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  686. $uid = $user_info['id'];
  687. $data['code'] = '200';
  688. $data['message'] = 'ok';
  689. $data['un_pay_num']=M("dy_ks_tixian")->where("uid = '$uid' AND status_=1")->count();
  690. $data['un_draw_num']=M("dy_ks_tixian")->where("uid = '$uid' AND status_=3")->count();
  691. $data['finsh_num']=M("dy_ks_tixian")->where("uid = '$uid' AND status_=5")->count();
  692. echo json_encode($data);
  693. }
  694. /**
  695. *
  696. * 获取提现列表
  697. * @return void
  698. */
  699. public function query_tx_list()
  700. {
  701. $this->addHeaders(); //添加头部请求
  702. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  703. $uid = $user_info['id'];
  704. $status=$_POST['status']; //1 待打款 3 待领取(后台已发红包) 5.已完成(24小时后自动刷新)'
  705. $page = $_POST['page'];
  706. $one_size = empty($_POST['pageSize'])?30:$_POST['pageSize']; //每頁30行記錄
  707. $page_one = ($page - 1) * $one_size;
  708. $data_list = M("dy_ks_tixian")
  709. ->LIMIT($page_one, $one_size)
  710. ->where("uid = '$uid' AND status_ = $status")
  711. ->order("apply_time DESC")
  712. ->select();
  713. $data['code'] = '200';
  714. $data['message'] = 'ok';
  715. $data['all_num'] =M("dy_ks_tixian") ->where("uid = '$uid' AND status_ = $status")->count();
  716. $data['data'] = $data_list;
  717. echo json_encode($data);
  718. }
  719. /**
  720. *
  721. * 检查任务是否已经开始
  722. * @return void
  723. */
  724. public function check_task_start()
  725. {
  726. $this->addHeaders(); //添加头部请求
  727. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  728. $type = $_POST['type'];
  729. if(empty($type))
  730. {
  731. $this->returnDataAndSendMsg("任务类型不能为空.");
  732. die();
  733. }
  734. $type_info = M("dy_ks_task_type")->where("type='$type'")->find();
  735. if(empty($type_info))
  736. {
  737. $this->returnDataAndSendMsg("该任务类型已不存在.");
  738. die();
  739. }
  740. $start_time = strtotime(date("Y-m-d")." ".$type_info["start_time"]);
  741. $end_time = strtotime(date("Y-m-d")." ".$type_info["end_time"]);
  742. $curent_data = strtotime(date('Y-m-d H:i:s'));
  743. $is_start = false;
  744. if($start_time<=$curent_data && $curent_data<=$end_time)
  745. {
  746. //时间范围内
  747. $is_start = true;
  748. }
  749. $data['code'] = '200';
  750. $data['message'] = 'ok';
  751. $data['data'] = $is_start;
  752. $data['startTime'] = $type_info["start_time"];
  753. $data['endTime'] = $type_info["end_time"];
  754. echo json_encode($data);
  755. }
  756. /**
  757. * 素材下载
  758. * @return void
  759. */
  760. public function down_sucai()
  761. {
  762. $this->addHeaders(); //添加头部请求
  763. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  764. $scId = $_POST['scId']; //素材ID
  765. $type = $_POST['type']; //任务类型
  766. $task_id = $_POST['taskId']; //任务ID
  767. $uid = $user_info["id"];
  768. $weixin_name = $_POST['wxName']; //微信号
  769. if(empty($scId))
  770. {
  771. $this->returnDataAndSendMsg("素材ID不能为空.");
  772. die();
  773. }
  774. if(empty($task_id))
  775. {
  776. $this->returnDataAndSendMsg("任务ID不能为空");
  777. die();
  778. }
  779. if(empty($type))
  780. {
  781. $this->returnDataAndSendMsg("任务类型不能为空");
  782. die();
  783. }
  784. if(empty($weixin_name))
  785. {
  786. $this->returnDataAndSendMsg("微信名不能为空");
  787. die();
  788. }
  789. $type_info = M("dy_ks_task_type")->where("type='$type'")->find();
  790. if(empty($type_info))
  791. {
  792. $this->returnDataAndSendMsg("该任务类型已不存在");
  793. die();
  794. }
  795. //判断用户是否被封禁了
  796. $is_fenjin = $this->is_check_shipinhao($uid,$type,"dy_ks_sucai_video","视频号");
  797. if(!empty($is_fenjin) && $is_fenjin["isFengjin"])
  798. {
  799. $this->returnDataAndSendMsg($is_fenjin["descripe"]);
  800. die();
  801. }
  802. //判断时间,需要再结束时间倒退30分钟
  803. $start_time = strtotime(date("Y-m-d")." ".$type_info["start_time"]);
  804. $end_time = strtotime('-30 minutes', strtotime(date("Y-m-d")." ".$type_info["end_time"]));
  805. $curent_data = strtotime(date('Y-m-d H:i:s'));
  806. if($curent_data<$start_time || $curent_data>$end_time)
  807. {
  808. //不在做任务时间
  809. //$this->returnDataAndSendMsg("每天19:00~1:30开启,请下次再来.");
  810. //die();
  811. }
  812. //判断用户是否已经在做任务
  813. $this->check_task_ing($uid,null);
  814. //流程没有审核完成,不允下载素材
  815. $this->check_rept_down_in_flow($uid,$weixin_name,$type);
  816. //获取素材库
  817. $app_info = M("dy_ks_sucaiku")->field("id")->where("appid='$scId'")->find();
  818. $scId=$app_info['id'];
  819. $sucai_info = M("dy_ks_sucai_video")->where("status = 0 AND is_lock=0 AND sc_id='$scId'")->find();
  820. if(empty($sucai_info))
  821. {
  822. //没有有效素材
  823. $this->returnDataAndSendMsg("视频素材已被抢空<br>请稍后再来下载吧");
  824. die();
  825. }
  826. $sucai_info["down_date"]=date('Y-m-d H:i:s');
  827. $sucai_info["is_lock"]=1;
  828. $sucai_info["uid"]=$uid;
  829. $sucai_info["task_id"]=$task_id;
  830. $sucai_info["weixinhao_name"]=$weixin_name;
  831. M("dy_ks_sucai_video")->save($sucai_info);
  832. $data['code'] = '200';
  833. $data['message'] = 'ok';
  834. $data['data'] = $sucai_info;
  835. echo json_encode($data);
  836. }
  837. /**
  838. * 判断用户是否有正在做的任务,如果正在做任务则中断(一个用户有且只能同时做一个视频号任务)
  839. * @param $uid
  840. * @return void
  841. */
  842. protected function check_task_ing($uid,$tab_name)
  843. {
  844. if(empty($tab_name))
  845. {
  846. $tab_name = "dy_ks_sucai_video";
  847. }
  848. $check_info = M($tab_name)->where(" uid = '$uid' AND is_lock =1")->find();
  849. if(!empty($check_info))
  850. {
  851. $this->returnDataAndSendMsg("您已下载素材,请尽快提交任务");
  852. die();
  853. }
  854. }
  855. /**
  856. * 当审核流程未审配通过或驳回,不允许重复下载任务
  857. * @param $uid
  858. * @param $pt_id
  859. * @param $type
  860. * @return void
  861. */
  862. protected function check_rept_down_in_flow($uid,$pt_id,$type)
  863. {
  864. //流程没有审核完成,不允下载素材
  865. $order_check_rp = M("dy_ks_orders")->where("uid = '$uid' AND pt_id = '$pt_id' AND type = '$type' AND status_ not in(2,3,5) ")->find();
  866. if(!empty($order_check_rp))
  867. {
  868. $this->returnDataAndSendMsg("您的任务正在审核中,请勿重复任务");
  869. die();
  870. }
  871. }
  872. /**
  873. * 通过ID查询素材
  874. * @return void
  875. */
  876. public function get_sucai_by_id()
  877. {
  878. $this->addHeaders(); //添加头部请求
  879. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  880. $id = $_POST['id'];
  881. $data['code'] = '200';
  882. $data['message'] = 'ok';
  883. $data['data'] = M("dy_ks_sucai_video")->where("id='$id'")->find();
  884. echo json_encode($data);
  885. }
  886. /**
  887. * 用户提现
  888. * @return void
  889. */
  890. public function user_tx()
  891. {
  892. $this->addHeaders(); //添加头部请求
  893. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  894. $uid = $user_info['id'];
  895. $money = $_POST['money'];
  896. //封号不能提现
  897. // $check_info = $this->get_is_disabled_account($uid);
  898. // if($check_info['isDisable'])
  899. // {
  900. // $this->returnDataAndSendMsg("账号已被封<br>禁止提现");
  901. // die();
  902. // }
  903. //下午3点到晚上9点不允许提现,2.38
  904. // $current_time = strtotime(date("H:i"));
  905. // $afternoon_start = strtotime("15:00");
  906. // $evening_end = strtotime("21:00");
  907. // if ($current_time >= $afternoon_start && $current_time <= $evening_end) {
  908. // $this->returnDataAndSendMsg("21:00~15:00,之间的18小时<br>可以进行提款");
  909. // die();
  910. // }
  911. $arra_money =array(50,100,200,300);
  912. if(!in_array($money,$arra_money))
  913. {
  914. $this->returnDataAndSendMsg("请输入正确取款金额");
  915. die();
  916. }
  917. //十分钟内提交 AND status_=1
  918. $check_info = M("dy_ks_tixian")->where("uid = '$uid' AND apply_time > NOW() - INTERVAL 1 MINUTE")->order("apply_time desc")->find();
  919. if(!empty($check_info))
  920. {
  921. $this->returnDataAndSendMsg("提款需间隔1分钟");
  922. die();
  923. }
  924. if($money>$user_info['balance'])
  925. {
  926. $this->returnDataAndSendMsg("余额不足");
  927. die();
  928. }
  929. //减掉用户余额
  930. $user_balance = $user_info['balance'];
  931. $is_ok = M("user_info")->where("id='$uid' AND balance = $user_balance")->setDec("balance",$money);
  932. if(!$is_ok)
  933. {
  934. $this->returnDataAndSendMsg("余额扣减失败");
  935. die();
  936. }
  937. $add_info['uid']=$uid;
  938. $add_info['amount_']=$money;
  939. $add_info['apply_time']= date("Y-m-d H:i:s");
  940. $add_info['status_']=1;
  941. $rs = M("dy_ks_tixian")->add($add_info);
  942. $data['code'] = '200';
  943. $data['message'] = 'ok';
  944. $data['data'] = $rs;
  945. echo json_encode($data);
  946. }
  947. /**
  948. *
  949. * 判断用户是否被封禁
  950. * @return void
  951. */
  952. public function query_satus_by_uid()
  953. {
  954. $this->addHeaders(); //添加头部请求
  955. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  956. $uid = $user_info['id'];
  957. $type = $_POST['type'];
  958. $data['code'] = '200';
  959. $data['message'] = 'ok';
  960. $data['data'] = $this->is_check_shipinhao($uid,$type,"dy_ks_sucai_video","视频号");
  961. echo json_encode($data);
  962. }
  963. /**
  964. *
  965. * 验证视频号是否可用
  966. * @return void
  967. */
  968. public function yanz_video_task()
  969. {
  970. $this->addHeaders(); //添加头部请求
  971. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  972. $uid = $user_info['id'];
  973. $wxName = $_POST['wxName'];
  974. $type = $_POST['type'];//视频类型,抖音或者视频号
  975. $tishi_ci = $_POST['prompt'];//提示词
  976. if(empty($tishi_ci))
  977. {
  978. //默认视频号
  979. $tishi_ci = '视频号';
  980. }
  981. if(empty($type))
  982. {
  983. $type = TaskManagerController::SHIPNGHAO_TYPE;
  984. }
  985. if(empty($wxName))
  986. {
  987. $this->returnDataAndSendMsg($tishi_ci."不能为空");
  988. die();
  989. }
  990. //判断视频号名是否被其他用户绑定
  991. $check_info = M("dy_ks_orders")->field("id")->where("uid!='$uid' AND pt_id='$wxName'")->find();
  992. if(!empty($check_info))
  993. {
  994. $this->returnDataAndSendMsg($tishi_ci."已被其他人绑定");
  995. die();
  996. }
  997. $tab_name = null;
  998. if($type==TaskManagerController::DOUYIN_TYPE)
  999. {
  1000. $tab_name = TaskManagerController::DOUYIN_SU_CAI_BIAO_NAME;
  1001. }
  1002. if($type==TaskManagerController::KUAISHOU_TYPE)
  1003. {
  1004. $tab_name = TaskManagerController::KUAISHOU_SU_CAI_BIAO_NAME;
  1005. }
  1006. if($type==TaskManagerController::WX_SHARE_TYPE)
  1007. {
  1008. $tab_name = TaskManagerController::WX_SHARE_SU_CAI_BIAO_NAME;
  1009. }
  1010. $this->check_task_ing($uid,$tab_name);
  1011. //判断视频号名是否有正在进行中的任务
  1012. $check_info = M("dy_ks_orders")->field("id")->where("uid='$uid' AND pt_id='$wxName' AND status_ NOT IN (2,3,5) AND type='$type'")->find();
  1013. if(!empty($check_info))
  1014. {
  1015. $this->returnDataAndSendMsg($tishi_ci."有进行中的任务");
  1016. die();
  1017. }
  1018. $data['code'] = '200';
  1019. $data['data'] = 'ok';
  1020. $data['message'] = $tishi_ci.'可用';
  1021. echo json_encode($data);
  1022. }
  1023. /**
  1024. * 判断用户是否被禁用
  1025. * @param $uid
  1026. * @param $type 任务类型
  1027. * @param $sucai_tabe_name 素材表名
  1028. * @param $tishi_ci 类型提示词
  1029. * @return array
  1030. */
  1031. protected function is_check_shipinhao($uid,$type,$sucai_tabe_name,$tishi_ci)
  1032. {
  1033. $data_info["isFengjin"]=false;//是否封禁
  1034. $data_info["descripe"]="";//是否封禁
  1035. $data_info["isDown"]=false;//是否下载视频
  1036. $data_info["sucaiInfo"]=null;//素材信息
  1037. //tabname:dy_ks_sucai_video
  1038. $lock_info = M($sucai_tabe_name)->where("uid='$uid' AND is_lock=1")->find();
  1039. if(!empty($lock_info))
  1040. {
  1041. $data_info["isDown"]=true;//是否下载视频
  1042. $data_info["sucaiInfo"]=$lock_info;
  1043. }
  1044. //判断封禁
  1045. $context_num = M("dy_ks_orders")->field("id")
  1046. ->where("uid = '$uid' AND status_ >=3 AND appeal_result in ('虚假垃圾达到1次,账号已被封','被驳回,账号已被封') AND type='$type'")
  1047. ->count();
  1048. if($context_num>0)
  1049. {
  1050. $data_info["isFengjin"]=true;
  1051. $data_info["descripe"]="虚假垃圾达到1次<br>已永久禁止做".$tishi_ci."代发任务";
  1052. }
  1053. $data_info["finsh_time"] = strtotime("+30 minutes",strtotime($lock_info["down_date"]));
  1054. $data_info["curent_time"] = strtotime(date('Y-m-d H:i:s'));
  1055. if(!empty($lock_info) && $data_info["curent_time"]>$data_info["finsh_time"])
  1056. {
  1057. //长期不提交任务
  1058. $data_info["isFengjin"]=true;//是否封禁=true;
  1059. $data_info["descripe"]="未按照规定时间提交任务<br>已永久禁止做".$tishi_ci."代发任务";
  1060. $data_info["isDown"]=true;//是否下载视频
  1061. }
  1062. //按照IP全局封禁
  1063. $data_info["isGlobalFj"]=false; //全局封禁
  1064. $user_info = M("user_info")->field("userip")->where("id='$uid'")->find();
  1065. $user_ip = $user_info["userip"];
  1066. $count_fj = M("dy_ks_beifeng")->field("id")->where("userip = '$user_ip'")->count();
  1067. if($count_fj>=5)
  1068. {
  1069. $data_info["isGlobalFj"]=true; //全局封禁
  1070. $data_info["isFengjin"]=true;//是否封禁
  1071. $data_info["descripe"]="您涉及作弊已被封禁";
  1072. }
  1073. return $data_info;
  1074. }
  1075. /**
  1076. *
  1077. * 品论是否被封号
  1078. * @param $uid
  1079. * @return void
  1080. */
  1081. private function check_pinglun_fenghao_rules($uid)
  1082. {
  1083. $data_info["isFengjin"]=false;//是否封禁
  1084. $data_info["descripe"]="";//是否封禁
  1085. $context_num = M("dy_ks_orders")->field("id")->where("uid = '$uid' AND status_ =3 AND bh_reasons = '虚假/垃圾内容,3次以上将被封号' AND type!='视频号视频发布'")->count();
  1086. if($context_num>=3)
  1087. {
  1088. $data_info["isFengjin"]=true;//是否封禁
  1089. $data_info["descripe"]="提交3次以上虚假/垃圾内容<br>已永久停止做任务";
  1090. }
  1091. return $data_info;
  1092. }
  1093. /**
  1094. * 判斷用戶是否被封禁
  1095. * @param $uid
  1096. * @return void
  1097. */
  1098. protected function get_is_disabled_account($uid)
  1099. {
  1100. $rs["isDisable"]=false;
  1101. $rs["hasAppeal"]=false; //是否申诉过
  1102. //检查评论是否被封
  1103. $is_dis_info = $this->check_pinglun_fenghao_rules("$uid");
  1104. if($is_dis_info['isFengjin'])
  1105. {
  1106. $rs["isDisable"]=true;
  1107. $rs['评论']["isFengjin"]=$is_dis_info["isFengjin"];
  1108. $rs['评论']["descripe"]=$is_dis_info["descripe"];
  1109. }
  1110. //检查视频号是被封
  1111. $is_dis_info = $this->is_check_shipinhao("$uid","视频号视频发布","dy_ks_sucai_video","视频号");
  1112. if($is_dis_info['isFengjin'])
  1113. {
  1114. $rs["isDisable"]=true;
  1115. $rs['视频号']["isFengjin"]=$is_dis_info["isFengjin"];
  1116. $rs['视频号']["descripe"]=$is_dis_info["descripe"];
  1117. }
  1118. //抖音视频是被封
  1119. $is_dis_info = $this->is_check_shipinhao("$uid",TaskManagerController::DOUYIN_TYPE,TaskManagerController::DOUYIN_SU_CAI_BIAO_NAME,TaskManagerController::DOUYING_TI_SHI_CI);
  1120. if($is_dis_info['isFengjin'])
  1121. {
  1122. $rs["isDisable"]=true;
  1123. $rs['抖音视频']["isFengjin"]=$is_dis_info["isFengjin"];
  1124. $rs['抖音视频']["descripe"]=$is_dis_info["descripe"];
  1125. }
  1126. //快手视频是被封
  1127. $is_dis_info = $this->is_check_shipinhao("$uid",TaskManagerController::KUAISHOU_TYPE,TaskManagerController::KUAISHOU_SU_CAI_BIAO_NAME,TaskManagerController::KUAISHOU_TI_SHI_CI);
  1128. if($is_dis_info['isFengjin'])
  1129. {
  1130. $rs["isDisable"]=true;
  1131. $rs['快手视频']["isFengjin"]=$is_dis_info["isFengjin"];
  1132. $rs['快手视频']["descripe"]=$is_dis_info["descripe"];
  1133. }
  1134. //微信分享
  1135. $is_dis_info = $this->is_check_shipinhao("$uid",TaskManagerController::WX_SHARE_TYPE,TaskManagerController::WX_SHARE_SU_CAI_BIAO_NAME,TaskManagerController::WX_SHARE_SHI_CI);
  1136. if($is_dis_info['isFengjin'])
  1137. {
  1138. $rs["isDisable"]=true;
  1139. $rs['微信群分享']["isFengjin"]=$is_dis_info["isFengjin"];
  1140. $rs['微信群分享']["descripe"]=$is_dis_info["descripe"];
  1141. }
  1142. //按照IP全局封禁
  1143. $rs["isGlobalFj"]=false; //全局封禁
  1144. $user_info = M("user_info")->field("userip")->where("id='$uid'")->find();
  1145. $user_ip = $user_info["userip"];
  1146. $count_fj = M("dy_ks_beifeng")->field("id")->where("userip = '$user_ip'")->count();
  1147. if($count_fj>=5)
  1148. {
  1149. $rs["isGlobalFj"]=true; //全局封禁
  1150. }
  1151. return $rs;
  1152. }
  1153. /**
  1154. * 检查账号是否被封
  1155. * @return void
  1156. */
  1157. public function is_disabled_account($uid)
  1158. {
  1159. $this->addHeaders(); //添加头部请求
  1160. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  1161. $uid = $user_info['id'];
  1162. $data['code'] = '200';
  1163. $data['message'] = 'ok';
  1164. $data['data'] = $this->get_is_disabled_account($uid);
  1165. echo json_encode($data);
  1166. }
  1167. /**
  1168. * 用户申诉
  1169. * @return void
  1170. */
  1171. public function appeal_for_user()
  1172. {
  1173. $this->addHeaders(); //添加头部请求
  1174. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  1175. $uid = $user_info['id'];
  1176. $content_txt = $_POST['content'];
  1177. $images = $_POST['images'];
  1178. if(empty($content_txt))
  1179. {
  1180. $this->returnDataAndSendMsg("申诉内容不能为空");
  1181. die();
  1182. }
  1183. if(empty($images))
  1184. {
  1185. // $this->returnDataAndSendMsg("申诉图片不能为空");
  1186. // die();
  1187. }
  1188. //只有一次申诉机会
  1189. $check_info = M("dy_ks_task_shensu")->where("uid='$uid'")->field("id")->find();
  1190. if(!empty($check_info))
  1191. {
  1192. $this->returnDataAndSendMsg("已申诉,请勿重复申请");
  1193. die();
  1194. }
  1195. $add_info["uid"]=$uid;
  1196. $add_info["content_txt"]=trim($content_txt);
  1197. $add_info["images_"]=$images;
  1198. $add_info["creater_at"]=date("Y-m-d H:i:s");;
  1199. $rs= M("dy_ks_task_shensu")->add($add_info);
  1200. $data['code'] = '200';
  1201. $data['data'] = $rs;
  1202. $data['message'] = 'ok';
  1203. echo json_encode($data);
  1204. }
  1205. /**
  1206. * 自动解封
  1207. * @return void
  1208. */
  1209. public function task_auto_pass()
  1210. {
  1211. $this->addHeaders(); //添加头部请求
  1212. $data_list = M("dy_ks_task_shensu")->field("id,uid")->where("audit_status = 0 AND creater_at <= NOW() - INTERVAL 24 HOUR")->select();
  1213. foreach ($data_list as $key=>$value)
  1214. {
  1215. $uid = $value["uid"];
  1216. $rule_info = $this->get_is_disabled_account($uid);
  1217. //检查评论是否被封
  1218. if(!empty($rule_info["评论"]) && $rule_info["评论"]["isFengjin"])
  1219. {
  1220. $this->pinglun_jiesuo($uid);
  1221. }//end 评论
  1222. if(!empty($rule_info["视频号"]) && $rule_info["视频号"]["isFengjin"])
  1223. {
  1224. $this->shiph_jiesuo($uid);
  1225. }
  1226. $update_info["audit_status"]=1;
  1227. $id = $value["id"];
  1228. M("dy_ks_task_shensu")->where("id=$id")->save($update_info);
  1229. }//end for
  1230. $data['code'] = '200';
  1231. $data['message'] = 'ok';
  1232. echo json_encode($data);
  1233. }
  1234. /**
  1235. * 评论解锁
  1236. * @param $uid
  1237. * @return void
  1238. */
  1239. private function pinglun_jiesuo($uid)
  1240. {
  1241. $update_info["bh_reasons"]="虚假/垃圾内容,3次以上将被封号+1";
  1242. $rs = M("dy_ks_orders")->where("uid = '$uid' AND status_ >=3 AND bh_reasons = '虚假/垃圾内容,3次以上将被封号' AND type!='视频号视频发布'")->save($update_info);
  1243. return $rs;
  1244. }
  1245. /**
  1246. * 视频号解锁
  1247. * @param $uid
  1248. * @return void
  1249. */
  1250. private function shiph_jiesuo($uid)
  1251. {
  1252. $update_info["bh_reasons"]="虚假垃圾达到1次,账号已被封+1";
  1253. $rs = M("dy_ks_orders")->where("uid = '$uid' AND status_ =3 AND bh_reasons = '虚假垃圾达到1次,账号已被封' AND type='视频号视频发布'")->save($update_info);
  1254. $rs1 = M("dy_ks_sucai_video")->where("uid='$uid' AND is_lock=1")->delete();
  1255. return $rs1;
  1256. }
  1257. public function get_sai_dan()
  1258. {
  1259. $this->addHeaders();
  1260. $data_top_100 = M("dy_ks_tixian")->field("uid ,SUM(amount_) AS amount_")->group("uid")->order("rand()")->limit(30)->select();
  1261. foreach ($data_top_100 as $key=>$value)
  1262. {
  1263. $uid = $value['uid'];
  1264. $user_info = M("user_info")->field("name")->where("id=$uid")->find();
  1265. $data_top_100[$key]['name']=$user_info['name'];
  1266. }
  1267. $data['code'] = '200';
  1268. $data['message'] = 'ok';
  1269. $data['data'] = $data_top_100;
  1270. echo json_encode($data);
  1271. }
  1272. /**
  1273. * 判断用户是否封禁
  1274. * @return void
  1275. */
  1276. public function is_fj_for_user()
  1277. {
  1278. $this->addHeaders(); //添加头部请求
  1279. $user_info = $this->checkUserIsExist($_POST['uid']); //检查用户
  1280. $uid = $user_info["id"];
  1281. $type = $_POST['type'];
  1282. if(empty($type))
  1283. {
  1284. $this->returnDataAndSendMsg("任务类型不能为空");
  1285. die();
  1286. }
  1287. $rs = false; //没有封禁
  1288. $fj_info = M("dy_ks_beifeng")->field("id")->where("uid='$uid' AND type='$type'")->find();
  1289. if(!empty($fj_info))
  1290. {
  1291. $rs = true; //封禁
  1292. }
  1293. $data['code'] = '200';
  1294. $data['message'] = 'ok';
  1295. $data['data'] = $rs;
  1296. echo json_encode($data);
  1297. }
  1298. }