'无', self::STATUS_BIDDING_ONGOING => '竞标中', self::STATUS_BIDDING_WIN => '中标', self::STATUS_BIDDING_FAILED => '未中标', ]; // 竞标状态 const STATUS_PROCESS_NO = 0; //未处理 const STATUS_PROCESS_ONGOING = 1; //待确认 const STATUS_PROCESS_CONFIRMED = 2; //已确认 const STATUS_PROCESS_FAILED = 3; //已拒绝 const STATUS_PROCESS_TIMEOUT = 4; //超时弃权 const PROCESS_STATUS_MAP = [ self::STATUS_PROCESS_NO => '未处理', self::STATUS_PROCESS_ONGOING => '待确认', self::STATUS_PROCESS_CONFIRMED => '已确认', self::STATUS_PROCESS_FAILED => '已拒绝', self::STATUS_PROCESS_TIMEOUT => '超时弃权', ]; /** * 保存客户群列表 * @return void * @throws GuzzleException */ public static function createList() { $scene = 2; $state = ''; $group_chat_list = WorkWeChatService::groupChatList(); foreach ($group_chat_list as $chat) { $chat_id = $chat['chat_id'] ?? 0; $groupChatInfo = WorkWeChatService::groupChatInfo($chat_id); // $config_id = WorkWeChatService::groupChatAddJoinWay([$chat_id], $scene, $state); $dataList[] = [ 'demand_id' => 0, 'chat_id' => $chat_id, 'name' => $groupChatInfo['name'] ?? '', 'config_id' => '', 'qr_code' => '', 'scene' => $scene, 'state' => $state, ]; } usort($dataList, function($a, $b) { return (int)filter_var($a['name'], FILTER_SANITIZE_NUMBER_INT) <=> (int)filter_var($b['name'], FILTER_SANITIZE_NUMBER_INT); }); $chatIdList = self::where('chat_id', '<>', '')->column('chat_id'); $dataList = array_filter($dataList, function($value) use($chatIdList) { return !in_array($value['chat_id'], $chatIdList); }); $res = (new self::$Model)->saveAll($dataList); } /** * 更新二维码 * @param $demand_id * @param bool $refresh * @return mixed * @throws */ public static function updateQrCode($demand_id, bool $refresh = false) { //分配一个未使用的群 $info = self::getOne(['demand_id' => 0], [], ['id']); if (!$info) { return false; } $info->demand_id = $demand_id; if (!$info->qr_code || $refresh) { //更新config_id,防止设置群聊邀请确认后不生效 $config_id = WorkWeChatService::groupChatAddJoinWay([$info['chat_id']]); $join_way = WorkWeChatService::groupChatGetJoinWay($config_id); $info->config_id = $config_id; $info->qr_code = $join_way['qr_code'] ?? ''; } return $info->save(); } }