GroupMsg.php 3.1 KB
<?php
/**
 * GroupMsg.php
 *
 * @Author: Ghaoo
 * @Date  2020/7/7 0007
 */

namespace Weasy\External\Api\Struct\ExternalContact;

use Weasy\External\Api\Struct\ExternalContact\Messages\ImageMsg;
use Weasy\External\Api\Struct\ExternalContact\Messages\LinkMsg;
use Weasy\External\Api\Struct\ExternalContact\Messages\MiniprogramMsg;
use Weasy\External\Api\Struct\ExternalContact\Messages\TextMsg;
use Weasy\External\Utils\Utils;

class GroupMsg
{
    public $chat_type = "group";
    public $sender = "";
    public $external_userid = [];

    /**
     * @var TextMsg
     */
    public $text = null;
    /**
     * @var ImageMsg
     */
    public $image = null;
    /**
     * @var LinkMsg
     */
    public $link = null;

    /**
     * @var MiniprogramMsg
     */
    public $miniprogram = null;

    static public function array2GroupMsg(array $arr)
    {
        $groupMsg = new GroupMsg();
        if (array_key_exists("chat_type", $arr) && $chat_type = $arr['chat_type']) {
            if (in_array($chat_type, ["single", "group"])) {
                $groupMsg->chat_type = $chat_type;

                if ($chat_type == "single") {
                    if (array_key_exists("external_userid", $arr) && $external_userid = $arr['external_userid']) {
                        if (is_array($external_userid)) {
                            $groupMsg->external_userid = $external_userid;
                        }
                    }
                }
            }
        }
        if (array_key_exists("sender", $arr) && $sender = $arr['sender']) {
            $groupMsg->sender = $sender;
        }
        if (array_key_exists("text", $arr) && $text = $arr['text']) {
            if (is_array($text)) {
                $groupMsg->text = new TextMsg();
                $groupMsg->text->content = Utils::arrayGet($text, 'content');
            }
        }
        if (array_key_exists("image", $arr) && $image = $arr['image']) {
            if (is_array($image)) {
                $groupMsg->image = new ImageMsg();
                $groupMsg->image->media_id = Utils::arrayGet($image, 'media_id');
            }
        }
        if (array_key_exists("link", $arr) && $link = $arr['link']) {
            if (is_array($link)) {
                $groupMsg->link = new LinkMsg();
                $groupMsg->link->title = Utils::arrayGet($link, 'title');
                $groupMsg->link->picurl = Utils::arrayGet($link, 'picurl');
                $groupMsg->link->desc = Utils::arrayGet($link, 'desc');
                $groupMsg->link->url = Utils::arrayGet($link, 'url');
            }
        }
        if (array_key_exists("miniprogram", $arr) && $miniprogram = $arr['miniprogram']) {
            if (is_array($miniprogram)) {
                $groupMsg->miniprogram = new MiniprogramMsg();
                $groupMsg->miniprogram->title = Utils::arrayGet($miniprogram, 'title');
                $groupMsg->miniprogram->pic_media_id = Utils::arrayGet($miniprogram, 'pic_media_id');
                $groupMsg->miniprogram->appid = Utils::arrayGet($miniprogram, 'appid');
                $groupMsg->miniprogram->page = Utils::arrayGet($miniprogram, 'page');
            }
        }

        return $groupMsg;
    }

}