Pushmessage.php 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721
  1. <?php
  2. namespace app\admin\controller;
  3. use app\admin\BaseController;
  4. use think\facade\Db;
  5. use think\facade\View;
  6. use think\facade\Session;
  7. use think\App;
  8. use app\wechat\controller\Officialaccount;
  9. class Pushmessage{
  10. protected $Officialaccount;
  11. public function initialize(){
  12. return new Officialaccount();
  13. }
  14. // 通知设置列表
  15. public function index(){
  16. if (request()->isAjax()){
  17. $user_type = get_login_admin('user_type');
  18. $where = array();
  19. if($user_type == -1 || $user_type == -2){
  20. $where = [
  21. 'user_type' => -1,
  22. ];
  23. }
  24. $list = Db::name('PushMessage')->where($where)->select();
  25. // dump($list);
  26. return to_assign(0, '', $list);
  27. } else {
  28. return view();
  29. }
  30. }
  31. // 添加通知设置
  32. public function add(){
  33. $param = get_params();
  34. if(request()->isAjax()){
  35. $data = [
  36. 'title' => $param['title'],
  37. 'is_who' => implode(',', $param['is_who']),
  38. 'is_wechat' => $param['is_wechat'],
  39. 'is_wechat_company' => $param['is_wechat_company'],
  40. 'is_wechat_proprietor' => $param['is_wechat_proprietor'],
  41. 'content' => $param['content'],
  42. 'is_project_name' => $param['is_project_name'],
  43. 'is_people' => $param['is_people'],
  44. 'content_company' => $param['content_company'],
  45. 'is_project_name_company' => $param['is_project_name_company'],
  46. 'is_people_company' => $param['is_people_company'],
  47. 'content_proprietor' => $param['content_proprietor'],
  48. 'is_project_name_proprietor' => $param['is_project_name_proprietor'],
  49. 'is_people_proprietor' => $param['is_people_proprietor'],
  50. // 'rule_id' => $param['rule_id'],
  51. // 'rule_url' => Db::name('AdminRule')->where('id', $param['rule_id'])->value('src'),
  52. 'rule_url' => $param['rule_url'],
  53. 'user_type' => -1,
  54. 'unit_name' => get_login_admin('unit_name'),
  55. 'pid' => $param['pid'],
  56. ];
  57. if(isset( $param['title_company'])){
  58. $data['title_company'] = $param['title_company'];
  59. }
  60. if(isset( $param['title_proprietor'])){
  61. $data['title_proprietor'] = $param['title_proprietor'];
  62. }
  63. // halt($data);
  64. if($data['rule_url'] != NULL){
  65. $rule_url = Db::name('PushMessage')->where('rule_url', $data['rule_url'])->find();
  66. if($rule_url != NULL){
  67. return to_assgin(1, "已存在该通知阶段");
  68. }
  69. }
  70. Db::startTrans();
  71. try {
  72. $uid = Db::name('PushMessage')->strict(false)->field(true)->insertGetId($data);
  73. add_log('add', $uid, $data);
  74. // 提交事务
  75. Db::commit();
  76. }catch(\Exception $e){
  77. // 回滚事务
  78. Db::rollback();
  79. return to_assign(1, '提交失败:' . $e->getMessage());
  80. }
  81. return to_assign(0,"操作成功");
  82. }else{
  83. $pid = isset($param['pid']) ? $param['pid'] : 0;
  84. $user_type = get_login_admin('user_type');
  85. $push_message = Db::name('PushMessage')->where('user_type', -1)->select()->toArray();
  86. $push_message = set_recursion($push_message);
  87. $rule = Db::name('adminRule')->order('sort asc,id asc')->select();
  88. $rule = set_recursion($rule);
  89. View::assign('push_message', $push_message);
  90. View::assign('rule', $rule);
  91. View::assign('pid', $pid);
  92. return view();
  93. }
  94. }
  95. //编辑通知设置
  96. public function edit(){
  97. $param = get_params();
  98. // halt($param);
  99. if(request()->isAjax()){
  100. $arr = array();
  101. if(isset($param['is_cost'])){
  102. $arr[0] = 0;
  103. }
  104. if(isset($param['is_owner'])){
  105. $arr[1] = 1;
  106. }
  107. if(isset($param['is_company'])){
  108. $arr[2] = 2;
  109. }
  110. $param['is_who'] = implode(',', $arr);
  111. $data = [
  112. 'id' => $param['id'],
  113. 'title' => $param['title'],
  114. 'title_company' => $param['title_company'],
  115. 'title_proprietor' => $param['title_proprietor'],
  116. 'is_who' => $param['is_who'],
  117. 'is_wechat' => $param['is_wechat'],
  118. 'is_wechat_company' => $param['is_wechat_company'],
  119. 'is_wechat_proprietor' => $param['is_wechat_proprietor'],
  120. 'content' => $param['content'],
  121. 'is_project_name' => $param['is_project_name'],
  122. 'is_people' => $param['is_people'],
  123. 'content_company' => $param['content_company'],
  124. 'is_project_name_company' => $param['is_project_name_company'],
  125. 'is_people_company' => $param['is_people_company'],
  126. 'content_proprietor' => $param['content_proprietor'],
  127. 'is_project_name_proprietor' => $param['is_project_name_proprietor'],
  128. 'is_people_proprietor' => $param['is_people_proprietor'],
  129. 'rule_url' => $param['rule_url'],
  130. 'user_type' => -1,
  131. 'unit_name' => get_login_admin('unit_name'),
  132. 'pid' => $param['pid'],
  133. ];
  134. if($data['rule_url'] != NULL){
  135. if($data['rule_url'] != Db::name('PushMessage')->where('id', $data['id'])->value('rule_url')){
  136. $rule_url = Db::name('PushMessage')->where('rule_url', $data['rule_url'])->find();
  137. if($rule_url != NULL){
  138. return to_assign(1, "已存在该通知阶段");
  139. }
  140. }
  141. }
  142. // halt($data);
  143. Db::startTrans();
  144. try {
  145. Db::name('PushMessage')->strict(false)->field(true)->update($data);
  146. add_log('add', $param['id'], $data);
  147. // 提交事务
  148. Db::commit();
  149. }catch(\Exception $e){
  150. // 回滚事务
  151. Db::rollback();
  152. return to_assign(1, '提交失败:' . $e->getMessage());
  153. }
  154. return to_assign(0,"操作成功");
  155. }else{
  156. $id = $param['id'];
  157. $data = Db::name('PushMessage')->where('id', $id)->find();
  158. $data['is_who'] = explode(',', $data['is_who']);
  159. // dump($data);
  160. if(in_array(0, $data['is_who'])){ // 财政局
  161. $data['is_cost'] = 1;
  162. }else{
  163. $data['is_cost'] = 0;
  164. }
  165. if(in_array(1, $data['is_who'])){ // 业主
  166. $data['is_owner'] = 1;
  167. }else{
  168. $data['is_owner'] = 0;
  169. }
  170. if(in_array(2, $data['is_who'])){ // 公司
  171. $data['is_company'] = 1;
  172. }else{
  173. $data['is_company'] = 0;
  174. }
  175. $push_message = Db::name('PushMessage')->where('user_type', -1)->select()->toArray();
  176. $push_message = set_recursion($push_message);
  177. $rule = Db::name('AdminRule')->order('sort asc,id asc')->select();
  178. $rule = set_recursion($rule);
  179. View::assign('data', $data);
  180. View::assign('push_message', $push_message);
  181. View::assign('rule', $rule);
  182. return view();
  183. }
  184. }
  185. // 删除通知设置
  186. public function delete(){
  187. $id = get_params('id');
  188. $count = Db::name('PushMessage')->where('pid', '=', $id)->count();
  189. if ($count > 0) {
  190. return to_assign(1, "该通知设置下还有子设置,无法删除");
  191. }
  192. if (Db::name('PushMessage')->delete($id) !== false) {
  193. add_log('delete', $id);
  194. return to_assign(0, "删除通知设置成功");
  195. } else {
  196. return to_assign(1, "删除失败");
  197. }
  198. // $is_who = [
  199. // 'cai','gongi',' yezhu'
  200. // ];
  201. // $is_who = [
  202. // 'cai','gongi'
  203. // ];
  204. // $is_who = [
  205. // 'cai'=> 0,
  206. // 'gongi'=> 1,
  207. // ];
  208. }
  209. /**
  210. * $url: 方法URL
  211. * $project_id:项目ID int
  212. * $financial:财政局人员 array
  213. * [1,2,3]
  214. * [
  215. * 0 => 1,
  216. * 1 => 2,
  217. * ];
  218. * $company:公司人员 [1,2,3] array
  219. * $proprietor:业主人员 [1,2,3] array
  220. * $new_url:用于新的内容设置
  221. */
  222. public function pushMessage($project_id, $financial = NULL, $company = NULL, $proprietor = NULL, $new_url = NULL){
  223. if($new_url == NULL){
  224. $url = (string) \think\facade\Route::buildUrl();//获取当前的请求地址
  225. $url = self::handleUrl($url);
  226. }else{
  227. $url = $new_url;
  228. }
  229. $push = Db::name('PushMessage')->where('rule_url', $url)->find();
  230. // 通知成员
  231. // $project_id
  232. $message_id = $push['id'];
  233. // 抄送成员
  234. $member = Db::name('PushMember')->where('message_id', $message_id)->where('unit_name', get_login_admin('unit_name'))->value('member_id');
  235. if(get_login_admin('user_type') == 0){//0财政,1业主,2公司
  236. if(!empty($financial)){
  237. // $financial = array_unique(array_merge(explode(',', $member), $financial));
  238. $member = self::inform_send($financial, $member);//抄送人员去除通知人员
  239. }
  240. }else if(get_login_admin('user_type') == 2){
  241. if(!empty($company)){
  242. // $company = array_unique(array_merge(explode(',', $member), $company));
  243. $member = self::inform_send($company, $member);
  244. }
  245. }else if(get_login_admin('user_type') == 1){
  246. $member = self::inform_send($proprietor, $member);
  247. }else{
  248. return 0;
  249. }
  250. if($financial != NULL){
  251. // halt($financial);
  252. if($push['content'] != NULL){ // 财政局
  253. $content = self::handleContent($push, $project_id);/*(push对应请求url的那条数据/项目id)*/
  254. self::webPush($content, $project_id, $financial);//内容,项目id/财务人员id
  255. // dump($financial, $content);
  256. if($push['is_wechat'] == 1){
  257. self::initialize()->sendText($financial, $content);
  258. }
  259. if($member != NULL){
  260. $str = '';
  261. for($i = 0; $i <count($financial); $i++){
  262. if($i < count($financial) - 1){
  263. $str = $str . Db::name('Admin')->where('id', $financial[$i])->value('nickname') . ',';
  264. }else{
  265. $str = $str . Db::name('Admin')->where('id', $financial[$i])->value('nickname');
  266. }
  267. }
  268. $content = str_replace('您', $str, $content);
  269. self::webPush($content, $project_id, $member);
  270. // dump($financial, $content);
  271. if($push['is_wechat'] == 1){
  272. self::initialize()->sendText($member, $content);
  273. }
  274. }
  275. }
  276. }
  277. if($proprietor != NULL){
  278. if($push['content_proprietor'] != NULL){ //公司
  279. $content_proprietor = self::handleContent_proprietor($push, $project_id);
  280. self::webPush($content_proprietor, $project_id, $proprietor);
  281. if($push['is_wechat_proprietor'] == 1){
  282. self::initialize()->sendText($proprietor, $content_proprietor);
  283. }
  284. if($member != NULL){
  285. $str = '';
  286. for($i = 0; $i <count($proprietor); $i++){
  287. if($i < count($proprietor) - 1){
  288. $str = $str . Db::name('Admin')->where('id', $proprietor[$i])->value('nickname') . ',';
  289. }else{
  290. $str = $str . Db::name('Admin')->where('id', $proprietor[$i])->value('nickname');
  291. }
  292. }
  293. $content = str_replace('您', $str, $content);
  294. self::webPush($content, $project_id, $member);
  295. // dump($financial, $content);
  296. if($push['is_wechat'] == 1){
  297. self::initialize()->sendText($member, $content);
  298. }
  299. }
  300. }
  301. }
  302. if($company != NULL){
  303. if($push['content_company'] != NULL){ //公司
  304. $content_company = self::handleContent_company($push, $project_id);
  305. self::webPush($content_company, $project_id, $company);
  306. if($push['is_wechat_company'] == 1){
  307. self::initialize()->sendText($company, $content_company);
  308. }
  309. if($member != NULL){
  310. $str = '';
  311. for($i = 0; $i <count($company); $i++){
  312. if($i < count($company) - 1){
  313. $str = $str . Db::name('Admin')->where('id', $company[$i])->value('nickname') . ',';
  314. }else{
  315. $str = $str . Db::name('Admin')->where('id', $company[$i])->value('nickname');
  316. }
  317. }
  318. $content = str_replace('您', $str, $content);
  319. self::webPush($content, $project_id, $member);
  320. // dump($financial, $content);
  321. if($push['is_wechat'] == 1){
  322. self::initialize()->sendText($member, $content);
  323. }
  324. }
  325. }
  326. }
  327. }
  328. // 网页通知
  329. public function webPush($content, $project_id, $uid){
  330. $uid = (array)$uid;
  331. for($i = 0; $i < count($uid); $i++){
  332. $data = [
  333. 'content' => $content,
  334. 'project_id' => $project_id,
  335. 'uid' => $uid[$i],
  336. 'create_time' => time(),
  337. ];
  338. $newId = Db::name('ProjectMsg')->strict(false)->field(true)->insertGetId($data);
  339. $unread = (string) Db::name('Admin')->where('id', $uid[$i])->value('unread');
  340. $unread = $unread . ',' . $newId;
  341. Db::name('Admin')->where('id', $uid[$i])->update(['unread' => $unread]);
  342. }
  343. }
  344. public function handleContent($push, $project_id){
  345. if(!is_array ($project_id)){
  346. $project_id = (array)$project_id;
  347. }
  348. $content = $push['content'];
  349. if($push['is_project_name'] == 0 && $push['is_people'] == NULL){//判断是否带项目名称以及人员身份
  350. $is_project_name = '';
  351. $people = '';
  352. }else if($push['is_project_name'] == 1 && $push['is_people'] == NULL){
  353. $is_project_name = '项目名称' . ':';
  354. for($i = 0; $i < count($project_id); $i++){
  355. if($i < count($project_id) - 1){
  356. $is_project_name = $is_project_name . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . ',';
  357. continue;
  358. }
  359. $is_project_name = $is_project_name . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . '。';
  360. }
  361. $people = '';
  362. }else if($push['is_project_name'] == 0 && $push['is_people'] != NULL){
  363. $is_project_name = '';
  364. $people = $push['is_people'] . ':' . get_login_admin('nickname') . '。';
  365. }else{
  366. $is_project_name = '项目名称' . ':';
  367. for($i = 0; $i < count($project_id); $i++){
  368. if($i < count($project_id) - 1){
  369. $is_project_name = $is_project_name . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . ',';
  370. continue;
  371. }
  372. $is_project_name = $is_project_name . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . '。';
  373. }
  374. $people = $push['is_people'] . ':' . get_login_admin('nickname') . '。';
  375. }
  376. if($push['is_people'] != NULL){
  377. $str = '“' . $push['is_people'] . '”';
  378. if(mb_strpos($content, $str) !== false){
  379. $content = str_replace($str, get_login_admin('nickname'), $content);
  380. }
  381. }
  382. $str = "“公司”";
  383. if(mb_strpos($content, $str) !== false){
  384. $company_name = Db::name('Department')->where('id', get_login_admin('unit_name'))->value('title');
  385. $content = str_replace($str, $company_name, $content);
  386. }
  387. $content = $content . "\n". $is_project_name . "\n". $people;
  388. return $content;
  389. }
  390. public function handleContent_proprietor($push, $project_id){
  391. if(!is_array ($project_id)){
  392. $project_id = (array)$project_id;
  393. }
  394. $content_proprietor = $push['content_proprietor'];
  395. if($push['is_project_name_proprietor'] == 0 && $push['is_people_proprietor'] == NULL){
  396. $is_project_name_proprietor = '';
  397. $people_proprietor = '';
  398. }else if($push['is_project_name_proprietor'] == 1 && $push['is_people_proprietor'] == NULL){
  399. $is_project_name_proprietor = '项目名称' . ':';
  400. for($i = 0; $i < count($project_id); $i++){
  401. if($i < count($project_id) - 1){
  402. $is_project_name_proprietor = $is_project_name_proprietor . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . ',';
  403. continue;
  404. }
  405. $is_project_name_proprietor = $is_project_name_proprietor . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . '。';
  406. }
  407. // $is_project_name_company = '项目名称' . ':' . Db::name('CostProject')->where('id', $project_id)->value('project_name') . '。';
  408. $people_proprietor = '';
  409. }else if($push['is_project_name_proprietor'] == 0 && $push['is_people_proprietor'] != NULL){
  410. $is_project_name_proprietor = '';
  411. $people_proprietor = $push['is_people_proprietor'] . ':' . get_login_admin('nickname') . '。';
  412. }else{
  413. $is_project_name_proprietor = '项目名称' . ':';
  414. for($i = 0; $i < count($project_id); $i++){
  415. if($i < count($project_id) - 1){
  416. $is_project_name_proprietor = $is_project_name_proprietor . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . ',';
  417. continue;
  418. }
  419. $is_project_name_proprietor = $is_project_name_proprietor . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . '。';
  420. }
  421. // $is_project_name_company = '项目名称' . ':' . Db::name('CostProject')->where('id', $project_id)->value('project_name') . '。';
  422. $people_proprietor = $push['is_people_proprietor'] . ':' . get_login_admin('nickname') . '。';
  423. }
  424. if($push['is_people_proprietor'] != NULL){
  425. $str = '“' . $push['is_people_proprietor'] . '”';
  426. if(mb_strpos($content_proprietor, $str) !== false){
  427. $content_proprietor = str_replace($str, get_login_admin('nickname'), $content_proprietor);
  428. }
  429. }
  430. $str = "“公司”";
  431. if(mb_strpos($content_proprietor, $str) !== false){
  432. $company_name = Db::name('Department')->where('id', get_login_admin('unit_name'))->value('title');
  433. $content_proprietor = str_replace($str, $company_name, $content_proprietor);
  434. }
  435. $content_proprietor = $content_proprietor . "\n". $is_project_name_proprietor . "\n". $people_proprietor;
  436. return $content_proprietor;
  437. }
  438. public function handleContent_company($push, $project_id){
  439. if(!is_array ($project_id)){
  440. $project_id = (array)$project_id;
  441. }
  442. $content_company = $push['content_company'];
  443. if($push['is_project_name_company'] == 0 && $push['is_people_company'] == NULL){
  444. $is_project_name_company = '';
  445. $people_company = '';
  446. }else if($push['is_project_name_company'] == 1 && $push['is_people_company'] == NULL){
  447. $is_project_name_company = '项目名称' . ':';
  448. for($i = 0; $i < count($project_id); $i++){
  449. if($i < count($project_id) - 1){
  450. $is_project_name_company = $is_project_name_company . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . ',';
  451. continue;
  452. }
  453. $is_project_name_company = $is_project_name_company . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . '。';
  454. }
  455. // $is_project_name_company = '项目名称' . ':' . Db::name('CostProject')->where('id', $project_id)->value('project_name') . '。';
  456. $people_company = '';
  457. }else if($push['is_project_name_company'] == 0 && $push['is_people_company'] != NULL){
  458. $is_project_name_company = '';
  459. $people_company = $push['is_people_company'] . ':' . get_login_admin('nickname') . '。';
  460. }else{
  461. $is_project_name_company = '项目名称' . ':';
  462. for($i = 0; $i < count($project_id); $i++){
  463. if($i < count($project_id) - 1){
  464. $is_project_name_company = $is_project_name_company . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . ',';
  465. continue;
  466. }
  467. $is_project_name_company = $is_project_name_company . Db::name('CostProject')->where('id', $project_id[$i])->value('project_name') . '。';
  468. }
  469. // $is_project_name_company = '项目名称' . ':' . Db::name('CostProject')->where('id', $project_id)->value('project_name') . '。';
  470. $people_company = $push['is_people_company'] . ':' . get_login_admin('nickname') . '。';
  471. }
  472. if($push['is_people_company'] != NULL){
  473. $str = '“' . $push['is_people_company'] . '”';
  474. if(mb_strpos($content_company, $str) !== false){
  475. $content_company = str_replace($str, get_login_admin('nickname'), $content_company);
  476. }
  477. }
  478. $str = "“公司”";
  479. if(mb_strpos($content_company, $str) !== false){
  480. $company_name = Db::name('Department')->where('id', get_login_admin('unit_name'))->value('title');
  481. $content_company = str_replace($str, $company_name, $content_company);
  482. }
  483. $content_company = $content_company . "\n". $is_project_name_company . "\n". $people_company;
  484. return $content_company;
  485. }
  486. public function handleUrl($url){
  487. $url = substr($url, 1);
  488. $url = strtolower($url);
  489. return $url;
  490. }
  491. public function handleId($notify){
  492. $idList = [];
  493. foreach($notify as $key => $value){
  494. $idList[$key] = $notify[$key]['id'];
  495. }
  496. // $idList = explode(',', $idList);
  497. return $idList;
  498. }
  499. public function handleParam($param){
  500. if (isset($param["financial"])) {
  501. $financial = $param['financial'];
  502. unset($param['financial']);
  503. $financial = self::handleId($financial);
  504. }else{
  505. $financial = NULL;
  506. }
  507. if(isset($param["company"])){
  508. $company = $param['company'];
  509. unset($param['company']);
  510. $company = self::handleId($company);
  511. }else{
  512. $company = NULL;
  513. }
  514. $data = [
  515. 'param' => $param,
  516. 'financial' => $financial,
  517. 'company' => $company,
  518. ];
  519. return $data;
  520. }
  521. // 抄送成员去除通知成员
  522. // $inform 通知成员
  523. // $member 抄送成员
  524. public function inform_send($inform, $member){
  525. // public function inform_send(){
  526. // $inform = [
  527. // 0 => 1,
  528. // 1 => 2,
  529. // ];
  530. // $member = [
  531. // // 0 => 3,
  532. // // 1 => 2,
  533. // // 2 => 6,
  534. // ];
  535. $a = 0;
  536. $b = 0;
  537. if(!empty($inform)){
  538. $a = count((array)$inform);
  539. $inform = (array)$inform;
  540. }
  541. if(!empty($member)){
  542. $b = count((array)$member);
  543. $member = (array)$member;
  544. }
  545. for($i = 0; $i < $a; $i++){
  546. for($j = 0; $j < $b; $j++){
  547. if($inform[$i] == $member[$j]){
  548. unset($member[$j]);
  549. }
  550. }
  551. }
  552. if(!empty($member)){
  553. $member = array_values($member);
  554. }
  555. // if($member ==null){
  556. // dump('111');
  557. // }else{
  558. // dump('222');
  559. // }
  560. // halt($member);
  561. return $member;
  562. }
  563. public function test(){
  564. dump(self::test1([]));
  565. }
  566. public function test1($a = NULL){
  567. if($a == NULL){
  568. return NULL;
  569. }else{
  570. return "!!!";
  571. }
  572. }
  573. }