getDataList($where, $param['page'], '*', 'id desc', $param['limit'])->each(function ($item, $key) { $item['type_text'] = $item->type_text; $item['news_number'] = count($item->content); return $item; }); $rdata = [ 'list' => $wechat_news_list ]; return sendSuccessMessage($rdata); } /** * 微信图文消息编辑 * @date 2020-09-30 */ public function dataAdd() { $param = input('post.'); $wechat_news_model = new WechatNews(); if (empty($param['news_item_title'])) { return sendErrorMessage(2001, '至少添加1条图文'); } $data = [ 'id' => $param['id'], 'uid' => UID, 'name' => $param['name'], 'type' => 1, ]; foreach ($param['news_item_title'] as $k => $v) { $data['content'][] = [ 'title' => $param['news_item_title'][$k], 'description' => $param['news_item_description'][$k], 'image' => $param['news_item_image'][$k], 'url' => $param['news_item_url'][$k] ]; } $res = $wechat_news_model->dataUpdate($data); if (!$res) { return sendErrorMessage(4001, '操作失败'); } return sendSuccessMessage([], '操作成功'); } /** * 删除微信图文消息 * @param string $id 数据ID * @date 2020-09-16 */ public function dataDel() { $id = input('param.id'); $wechat_news_model = new WechatNews(); $res = $wechat_news_model->dataDel($id); if (!$res) { return sendErrorMessage(4001, '删除失败'); } return sendSuccessMessage([], '删除成功'); } /** * 同步微信平台微信图文消息 * @date 2020-10-09 */ public function dataSynchronize() { $wechat_news_model = new WechatNews(); $wechat_logic = new Wechat(); $oss_param = get_ali_oss_config(); $ali_config = [ 'oss' => $oss_param ]; $oss_class = new Oss($ali_config); $material_logic = new \app\base\logic\weixin\Material(); // 获取所有素材 $news_list = $material_logic->listMaterial('news'); $media_ids = $wechat_news_model->where('media_id', 'not null')->column('id', 'media_id'); foreach ($news_list as $k => $v) { if (array_key_exists($v['media_id'], $media_ids)) { $data['id'] = $media_ids[$v['media_id']]; } $data['media_id'] = $v['media_id']; $data['platform_news_content'] = $v; $data['name'] = $v['content']['news_item'][0]['title']; $data['uid'] = UID; $data['type'] = 2; $content = []; foreach ($v['content']['news_item'] as $k1 => $v1) { $stream = $wechat_logic->getPermanentMaterial($v1['thumb_media_id']); $picurl = ''; if ($stream instanceof \EasyWeChat\Kernel\Http\StreamResponse) { // 以内容 md5 为文件名 $file_path = $stream->save('./temp/', md5(microtime(true))); $result = $oss_class->uploadFile('./temp/' . $file_path, 'uid' . UID . '/member/' . date("Ymd")); $picurl = $result['info']['url']; } $content[] = [ 'title' => $v1['title'], 'description' => $v1['digest'], 'image' => $picurl, 'url' => $v1['url'], ]; } $data['content'] = $content; $wechat_news_model->dataUpdate($data); } return sendSuccessMessage([], '同步成功'); } }