feat(hjf): H5路由修复、分销等级显示优化、个人中心等级徽章

H5 部署与路由:
- manifest.json: router.base 改为 "/" 适配 public/ 根目录部署
- nginx-crmeb.conf: 恢复与 feature/fsgx 一致的原始配置
- App.vue: PC端重定向路径改为动态推导,修复死循环加载问题
- static/html/pc.html: 动态推导 H5 根路径,适配本地/云端两种部署

H5登录:
- pages/users/login/index.vue: H5端获取验证码跳过安全验证(条件编译)

分销等级展示修复:
- AgentLevelServices: 新增 loadHjfUserListLevelMaps/pickHjfLevelRowForUserListDisplay
  统一等级名称解析逻辑,优先返回 HJF 官方名称;新增 getUpgradeTasksForLevel 封装
- UserServices/MemberLevelServices: 改用统一解析方法,修复 protected $dao 访问错误
- api/hjf/MemberController: 直接取 eb_agent_level.name,新增 agent_level 原始值返回
- admin/v1/hjf/MemberController: team() 改用封装方法替代直接访问 protected dao

个人中心等级徽章:
- pages/user/index.vue + member/index.vue: memberInfo 沿链路透传
- member/template1.vue: UID右侧显示HjfMemberBadge,直接读 userInfo.agent_level_name
  无需等待异步 memberInfo,agentLevelGrade 计算属性从名称推导颜色等级

商品列表修复:
- BaseController.php/Common.php: 恢复加密版,修复 CRMEB 授权检查失败导致的400错误
- StoreProduct model: 移除冲突的 model maker 回调

数据库:
- hjf_migration.sql: 完善会员等级体系迁移脚本
- eb_agent_level.sql: 新增等级初始数据脚本

Made-with: Cursor
This commit is contained in:
apple
2026-03-22 01:43:36 +08:00
parent 590eca8c22
commit 8592243d36
34 changed files with 1467 additions and 745 deletions

View File

@@ -3,16 +3,14 @@ declare(strict_types=1);
namespace app\jobs\hjf;
use app\services\hjf\MemberLevelServices;
use app\services\agent\AgentLevelServices;
use crmeb\basic\BaseJobs;
use crmeb\traits\QueueTrait;
use think\facade\Log;
/**
* 会员等级异步检查 Job
* 会员等级异步检查 Job(改造复用版)
*
* 每次订单支付回调完成后,对推荐链上的上级异步派发此 Job 检查是否达到升级条件
* 调用方式MemberLevelCheckJob::dispatch($uid)
* 委托给 AgentLevelServices::checkUserLevelFinish() 复用 CRMEB 分销等级升级流程
*
* Class MemberLevelCheckJob
* @package app\jobs\hjf
@@ -21,16 +19,12 @@ class MemberLevelCheckJob extends BaseJobs
{
use QueueTrait;
/**
* @param int $uid 需要检查升级的用户 ID
* @return bool
*/
public function doJob(int $uid): bool
{
try {
/** @var MemberLevelServices $levelServices */
$levelServices = app()->make(MemberLevelServices::class);
$levelServices->checkUpgrade($uid);
/** @var AgentLevelServices $levelServices */
$levelServices = app()->make(AgentLevelServices::class);
$levelServices->checkUserLevelFinish($uid);
} catch (\Throwable $e) {
response_log_write([
'message' => "会员等级检查失败 uid={$uid}: " . $e->getMessage(),