Files
huangjingfen/pro_v3.5.1_副本/vendor/joypack/tencent-map/src/Response.php
apple 434aa8c69d feat(fsgx): 完成全部24项开发任务 Phase1-7
Phase1 后端核心:
- 新增 fsgx_v1.sql 迁移脚本(is_queue_goods/frozen_points/available_points/no_assess)
- SystemConfigServices 返佣设置扩展(周期人数/分档比例/范围/时机)
- StoreOrderCreateServices 周期循环佣金计算
- StoreOrderTakeServices 佣金发放后同步冻结积分
- StoreProductServices/StoreProduct 保存 is_queue_goods

Phase2 后端接口:
- GET /api/hjf/brokerage/progress 佣金周期进度
- GET /api/hjf/assets/overview 资产总览
- HjfPointsServices 每日 frozen_points 0.4‰ 释放定时任务
- PUT /adminapi/hjf/member/{uid}/no_assess 不考核接口
- GET /adminapi/hjf/points/release_log 积分日志接口

Phase3 前端清理:
- hjfCustom.js 路由精简(仅保留 points/log)
- hjfQueue.js/hjfMember.js API 清理/重定向至 CRMEB 原生接口
- pages.json 公排→推荐佣金/佣金记录/佣金规则

Phase4-5 前端改造:
- queue/status.vue 推荐佣金进度页整体重写
- 商品详情/订单确认/支付结果页文案与逻辑改造
- 个人中心/资产页/引导页/规则页文案改造
- HjfQueueProgress/HjfRefundNotice/HjfAssetCard 组件改造
- 推广中心嵌入佣金进度摘要
- hjfMockData.js 全量更新(公排字段→佣金字段)

Phase6 Admin 增强:
- 用户列表新增 frozen_points/available_points 列及不考核操作按钮
- hjfPoints.js USE_MOCK=false 对接真实积分日志接口

Phase7 配置文档:
- docs/fsgx-phase7-config-checklist.md 后台配置与全链路验收清单

Made-with: Cursor
2026-03-23 22:32:19 +08:00

159 lines
4.4 KiB
PHP

<?php
namespace Joypack\Tencent\Map;
/**
* 腾讯位置服务
* 接口响应类
*/
class Response
{
public $error;
public $logger;
protected $original;
protected $decode;
public function __construct($errno, $error, $original, Logger $logger)
{
$this->logger = $logger;
// 仅成功时
if(0 === $errno) {
$decode = json_decode($original, true);
if(is_null($decode)) {
// 错误
$this->setErrorMessage(99);
// 写入日志
$logger->error('解析失败');
} else {
$this->original = $original;
$this->decode = $decode;
}
} else {
// 错误
$this->setErrorMessage($errno);
// 写入日志
$logger->error($error);
}
}
/**
* 返回json
* @return string
*/
public function getOriginal()
{
return $this->original;
}
/**
* 返回数组
* @return array
*/
public function toArray()
{
return $this->decode;
}
/**
* 获得某属性时
* @param string $prop_name
* @return mixed
*/
public function __get($property)
{
return $this->decode[ $property ] ?? null;
}
public function __toString()
{
return $this->original;
}
protected function setErrorMessage($errno)
{
$errors = [
1=> 'UNSUPPORTED_PROTOCOL',
2=> 'FAILED_INIT',
3=> 'URL_MALFORMAT',
4=> 'URL_MALFORMAT_USER',
5=> 'COULDNT_RESOLVE_PROXY',
6=> 'COULDNT_RESOLVE_HOST',
7=> 'COULDNT_CONNECT',
8=> 'FTP_WEIRD_SERVER_REPLY',
9=> 'REMOTE_ACCESS_DENIED',
11=> 'FTP_WEIRD_PASS_REPLY',
13=> 'FTP_WEIRD_PASV_REPLY',
14=>'FTP_WEIRD_227_FORMAT',
15=> 'FTP_CANT_GET_HOST',
17=> 'FTP_COULDNT_SET_TYPE',
18=> 'PARTIAL_FILE',
19=> 'FTP_COULDNT_RETR_FILE',
21=> 'QUOTE_ERROR',
22=> 'HTTP_RETURNED_ERROR',
23=> 'WRITE_ERROR',
25=> 'UPLOAD_FAILED',
26=> 'READ_ERROR',
27=> 'OUT_OF_MEMORY',
28=> 'OPERATION_TIMEDOUT',
30=> 'FTP_PORT_FAILED',
31=> 'FTP_COULDNT_USE_REST',
33=> 'RANGE_ERROR',
34=> 'HTTP_POST_ERROR',
35=> 'SSL_CONNECT_ERROR',
36=> 'BAD_DOWNLOAD_RESUME',
37=> 'FILE_COULDNT_READ_FILE',
38=> 'LDAP_CANNOT_BIND',
39=> 'LDAP_SEARCH_FAILED',
41=> 'FUNCTION_NOT_FOUND',
42=> 'ABORTED_BY_CALLBACK',
43=> 'BAD_FUNCTION_ARGUMENT',
45=> 'INTERFACE_FAILED',
47=> 'TOO_MANY_REDIRECTS',
48=> 'UNKNOWN_TELNET_OPTION',
49=> 'TELNET_OPTION_SYNTAX',
51=> 'PEER_FAILED_VERIFICATION',
52=> 'GOT_NOTHING',
53=> 'SSL_ENGINE_NOTFOUND',
54=> 'SSL_ENGINE_SETFAILED',
55=> 'SEND_ERROR',
56=> 'RECV_ERROR',
58=> 'SSL_CERTPROBLEM',
59=> 'SSL_CIPHER',
60=> 'SSL_CACERT',
61=> 'BAD_CONTENT_ENCODING',
62=> 'LDAP_INVALID_URL',
63=> 'FILESIZE_EXCEEDED',
64=> 'USE_SSL_FAILED',
65=> 'SEND_FAIL_REWIND',
66=> 'SSL_ENGINE_INITFAILED',
67=> 'LOGIN_DENIED',
68=> 'TFTP_NOTFOUND',
69=> 'TFTP_PERM',
70=> 'REMOTE_DISK_FULL',
71=> 'TFTP_ILLEGAL',
72=> 'TFTP_UNKNOWNID',
73=> 'REMOTE_FILE_EXISTS',
74=> 'TFTP_NOSUCHUSER',
75=> 'CONV_FAILED',
76=> 'CONV_REQD',
77=> 'SSL_CACERT_BADFILE',
78=> 'REMOTE_FILE_NOT_FOUND',
79=> 'SSH',
80=> 'SSL_SHUTDOWN_FAILED',
81=> 'AGAIN',
82=> 'SSL_CRL_BADFILE',
83=> 'SSL_ISSUER_ERROR',
84=> 'FTP_PRET_FAILED',
84=> 'FTP_PRET_FAILED',
85=> 'RTSP_CSEQ_ERROR',
86=> 'RTSP_SESSION_ERROR',
87=> 'FTP_BAD_FILE_LIST',
88=> 'CHUNK_FAILED',
99=> 'DECODE_ERROR',
];
$this->error = $errors[ $errno ] ?? 'UNKNOWN_ERROR';
}
}