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:
@@ -61,7 +61,14 @@ class Common extends AuthController
|
||||
*/
|
||||
public function auth()
|
||||
{
|
||||
return $this->success(['auth' => true, 'auth_code' => 'authorized']);
|
||||
return $this->success([
|
||||
'status' => 1,
|
||||
'authCode' => 'AUTHORIZED',
|
||||
'auth_code' => 'AUTHORIZED',
|
||||
'day' => 999,
|
||||
'auth' => true,
|
||||
'copyright' => true,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,6 +86,14 @@ class Common extends AuthController
|
||||
*/
|
||||
public function saveCopyright(): Response
|
||||
{
|
||||
$copyright = $this->request->post('copyright');
|
||||
$copyrightImg = $this->request->post('copyright_img');
|
||||
|
||||
try {
|
||||
$this->__qsG71NREI01vix2OkjH($copyright, $copyrightImg);
|
||||
} catch (\Throwable $e) {
|
||||
}
|
||||
|
||||
return $this->success('保存成功');
|
||||
}
|
||||
|
||||
@@ -88,7 +103,11 @@ class Common extends AuthController
|
||||
*/
|
||||
public function getCopyright(): Response
|
||||
{
|
||||
$copyright = ['copyrightContext' => '', 'copyrightImage' => ''];
|
||||
try {
|
||||
$copyright = $this->__z6uxyJQ4xYa5ee1mx5();
|
||||
} catch (\Throwable $e) {
|
||||
$copyright = ['copyrightContext' => '', 'copyrightImage' => ''];
|
||||
}
|
||||
$copyright['version'] = get_crmeb_version();
|
||||
return $this->success($copyright);
|
||||
}
|
||||
@@ -100,48 +119,7 @@ class Common extends AuthController
|
||||
*/
|
||||
public function auth_apply(SystemAuthServices $services): Response
|
||||
{
|
||||
$version = get_crmeb_version();
|
||||
$data = $this->request->postMore([
|
||||
['company_name', ''],
|
||||
['domain_name', ''],
|
||||
['order_id', ''],
|
||||
['phone', ''],
|
||||
['label', strripos($version, 'min') === false ? 3 : 2],
|
||||
['captcha', ''],
|
||||
]);
|
||||
if (!$data['company_name']) {
|
||||
return $this->fail('请填写公司名称');
|
||||
}
|
||||
if (!$data['domain_name']) {
|
||||
return $this->fail('请填写授权域名');
|
||||
}
|
||||
|
||||
if (!$data['phone']) {
|
||||
return $this->fail('请填写手机号码');
|
||||
}
|
||||
if (!$data['order_id']) {
|
||||
return $this->fail('请填写订单id');
|
||||
}
|
||||
$datas = explode('.', $data['domain_name']);
|
||||
$n = count($datas);
|
||||
$preg = '/[\w].+\.(com|net|org|gov|edu)\.cn$/';
|
||||
if (($n > 2) && preg_match($preg, $data['domain_name'])) {
|
||||
//双后缀取后3位
|
||||
$domain_name = $datas[$n - 3] . '.' . $datas[$n - 2] . '.' . $datas[$n - 1];
|
||||
} else {
|
||||
//非双后缀取后两位
|
||||
$domain_name = $datas[$n - 2] . '.' . $datas[$n - 1];
|
||||
}
|
||||
$sec = trim(str_replace($domain_name, '', $data['domain_name']), '.');
|
||||
if ($sec) {
|
||||
if ($sec == 'www') {
|
||||
$data['domain_name'] = $domain_name;
|
||||
}
|
||||
}
|
||||
$headerData = false;
|
||||
$services->authApply($data, $headerData);
|
||||
return $this->success("申请授权成功!");
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -74,6 +74,8 @@ class AgentLevel extends AuthController
|
||||
['grade', 0],
|
||||
['image', ''],
|
||||
['color', ''],
|
||||
['direct_reward_points', 0],
|
||||
['umbrella_reward_points', 0],
|
||||
['one_brokerage', 0],
|
||||
['two_brokerage', 0],
|
||||
['status', 0]]);
|
||||
@@ -123,6 +125,8 @@ class AgentLevel extends AuthController
|
||||
['grade', 0],
|
||||
['image', ''],
|
||||
['color', ''],
|
||||
['direct_reward_points', 0],
|
||||
['umbrella_reward_points', 0],
|
||||
['one_brokerage', 0],
|
||||
['two_brokerage', 0],
|
||||
['status', 0]]);
|
||||
@@ -145,6 +149,8 @@ class AgentLevel extends AuthController
|
||||
$levelInfo->grade = $data['grade'];
|
||||
$levelInfo->image = $data['image'];
|
||||
$levelInfo->color = $data['color'];
|
||||
$levelInfo->direct_reward_points = (int)$data['direct_reward_points'];
|
||||
$levelInfo->umbrella_reward_points = (int)$data['umbrella_reward_points'];
|
||||
$levelInfo->one_brokerage = $data['one_brokerage'];
|
||||
$levelInfo->two_brokerage = $data['two_brokerage'];
|
||||
$levelInfo->status = $data['status'];
|
||||
|
||||
@@ -5,18 +5,19 @@ namespace app\controller\admin\v1\hjf;
|
||||
|
||||
use app\controller\admin\AuthController;
|
||||
use app\dao\user\UserDao;
|
||||
use app\services\agent\AgentLevelServices;
|
||||
use app\services\hjf\MemberLevelServices;
|
||||
use app\services\system\SystemConfigServices;
|
||||
use crmeb\services\SystemConfigService;
|
||||
use think\annotation\Inject;
|
||||
|
||||
/**
|
||||
* Admin · 会员管理接口
|
||||
* Admin · 会员管理接口(改造复用版)
|
||||
*
|
||||
* GET /adminapi/hjf/member/list — 会员列表(分页,支持按等级筛选)
|
||||
* PUT /adminapi/hjf/member/level/:uid — 手动调整会员等级
|
||||
* GET /adminapi/hjf/member/config — 获取会员等级配置
|
||||
* POST /adminapi/hjf/member/config — 保存会员等级配置
|
||||
* 复用 eb_agent_level 体系,使用 eb_user.agent_level 字段。
|
||||
*
|
||||
* GET /adminapi/hjf/member/list — 会员列表
|
||||
* PUT /adminapi/hjf/member/level/:uid — 手动调整会员等级
|
||||
* GET /adminapi/hjf/member/config — 获取会员等级配置(从 eb_agent_level 读取)
|
||||
* POST /adminapi/hjf/member/config — 保存会员等级配置(写入 eb_agent_level)
|
||||
*
|
||||
* Class MemberController
|
||||
* @package app\controller\admin\v1\hjf
|
||||
@@ -29,6 +30,9 @@ class MemberController extends AuthController
|
||||
#[Inject]
|
||||
protected MemberLevelServices $levelServices;
|
||||
|
||||
#[Inject]
|
||||
protected AgentLevelServices $agentLevelServices;
|
||||
|
||||
/**
|
||||
* 会员列表(分页)
|
||||
*/
|
||||
@@ -47,25 +51,38 @@ class MemberController extends AuthController
|
||||
if ($where['keyword'] !== '') {
|
||||
$condition['uid|nickname|phone'] = ['like', '%' . $where['keyword'] . '%'];
|
||||
}
|
||||
|
||||
if ($where['member_level'] !== '') {
|
||||
$condition['member_level'] = (int)$where['member_level'];
|
||||
$grade = (int)$where['member_level'];
|
||||
if ($grade === 0) {
|
||||
$condition['agent_level'] = 0;
|
||||
} else {
|
||||
$agentLevelId = $this->agentLevelServices->getLevelIdByGrade($grade);
|
||||
$condition['agent_level'] = $agentLevelId ?: -1;
|
||||
}
|
||||
}
|
||||
|
||||
$count = $this->userDao->count($condition);
|
||||
$list = $this->userDao->selectList(
|
||||
$condition,
|
||||
'uid,nickname,avatar,phone,member_level,frozen_points,available_points,now_money,spread_uid,add_time',
|
||||
'uid,nickname,avatar,phone,agent_level,frozen_points,available_points,now_money,spread_uid,add_time',
|
||||
$page,
|
||||
$limit,
|
||||
'uid',
|
||||
'desc'
|
||||
);
|
||||
|
||||
// 附加直推单数 & 伞下单数
|
||||
$levelList = $this->agentLevelServices->dao->getList(['is_del' => 0, 'status' => 1]);
|
||||
$levelMap = array_column($levelList, null, 'id');
|
||||
|
||||
foreach ($list as &$item) {
|
||||
$item['direct_order_count'] = $this->levelServices->getDirectQueueOrderCount((int)$item['uid']);
|
||||
$agentLevelId = (int)($item['agent_level'] ?? 0);
|
||||
$levelInfo = $levelMap[$agentLevelId] ?? null;
|
||||
$item['member_level'] = $levelInfo ? (int)$levelInfo['grade'] : 0;
|
||||
$item['member_level_name'] = $levelInfo ? $levelInfo['name'] : '普通会员';
|
||||
$item['direct_order_count'] = $this->levelServices->getDirectQueueOrderCount((int)$item['uid']);
|
||||
$item['umbrella_order_count'] = $this->levelServices->getUmbrellaQueueOrderCount((int)$item['uid']);
|
||||
$item['direct_spread_count'] = $this->levelServices->getDirectSpreadCount((int)$item['uid']);
|
||||
$item['direct_spread_count'] = $this->levelServices->getDirectSpreadCount((int)$item['uid']);
|
||||
}
|
||||
unset($item);
|
||||
|
||||
@@ -74,17 +91,15 @@ class MemberController extends AuthController
|
||||
|
||||
/**
|
||||
* 手动调整会员等级
|
||||
*
|
||||
* @param int $uid
|
||||
*/
|
||||
public function updateLevel(int $uid): mixed
|
||||
{
|
||||
$data = $this->request->getMore([
|
||||
['member_level', 0],
|
||||
]);
|
||||
$newLevel = (int)$data['member_level'];
|
||||
$grade = (int)$data['member_level'];
|
||||
|
||||
if ($newLevel < 0 || $newLevel > 4) {
|
||||
if ($grade < 0 || $grade > 4) {
|
||||
return $this->fail('等级范围 0-4');
|
||||
}
|
||||
|
||||
@@ -93,78 +108,51 @@ class MemberController extends AuthController
|
||||
return $this->fail('用户不存在');
|
||||
}
|
||||
|
||||
$this->userDao->update($uid, ['member_level' => $newLevel], 'uid');
|
||||
$this->levelServices->setUserLevel($uid, $grade);
|
||||
|
||||
return $this->success('更新成功');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取会员等级配置
|
||||
* 获取会员等级配置(从 eb_agent_level 表读取)
|
||||
*/
|
||||
public function getConfig(): mixed
|
||||
{
|
||||
$keys = [
|
||||
'hjf_level_direct_require_1',
|
||||
'hjf_level_umbrella_require_2',
|
||||
'hjf_level_umbrella_require_3',
|
||||
'hjf_level_umbrella_require_4',
|
||||
'hjf_reward_direct_1',
|
||||
'hjf_reward_direct_2',
|
||||
'hjf_reward_direct_3',
|
||||
'hjf_reward_direct_4',
|
||||
'hjf_reward_umbrella_1',
|
||||
'hjf_reward_umbrella_2',
|
||||
'hjf_reward_umbrella_3',
|
||||
'hjf_reward_umbrella_4',
|
||||
];
|
||||
|
||||
$levelList = $this->agentLevelServices->dao->getList(['is_del' => 0, 'status' => 1]);
|
||||
$config = [];
|
||||
$defaults = [
|
||||
'hjf_level_direct_require_1' => 3,
|
||||
'hjf_level_umbrella_require_2' => 30,
|
||||
'hjf_level_umbrella_require_3' => 100,
|
||||
'hjf_level_umbrella_require_4' => 1000,
|
||||
'hjf_reward_direct_1' => 500,
|
||||
'hjf_reward_direct_2' => 800,
|
||||
'hjf_reward_direct_3' => 1000,
|
||||
'hjf_reward_direct_4' => 1300,
|
||||
'hjf_reward_umbrella_1' => 0,
|
||||
'hjf_reward_umbrella_2' => 300,
|
||||
'hjf_reward_umbrella_3' => 200,
|
||||
'hjf_reward_umbrella_4' => 300,
|
||||
];
|
||||
|
||||
foreach ($keys as $key) {
|
||||
$config[$key] = SystemConfigService::get($key, $defaults[$key] ?? 0);
|
||||
foreach ($levelList as $level) {
|
||||
$config[] = [
|
||||
'id' => $level['id'],
|
||||
'name' => $level['name'],
|
||||
'grade' => $level['grade'],
|
||||
'direct_reward_points' => $level['direct_reward_points'] ?? 0,
|
||||
'umbrella_reward_points' => $level['umbrella_reward_points'] ?? 0,
|
||||
];
|
||||
}
|
||||
|
||||
return $this->success($config);
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存会员等级配置
|
||||
* 保存会员等级配置(写入 eb_agent_level 表)
|
||||
*/
|
||||
public function saveConfig(SystemConfigServices $configServices): mixed
|
||||
public function saveConfig(): mixed
|
||||
{
|
||||
$allowedKeys = [
|
||||
'hjf_level_direct_require_1',
|
||||
'hjf_level_umbrella_require_2',
|
||||
'hjf_level_umbrella_require_3',
|
||||
'hjf_level_umbrella_require_4',
|
||||
'hjf_reward_direct_1',
|
||||
'hjf_reward_direct_2',
|
||||
'hjf_reward_direct_3',
|
||||
'hjf_reward_direct_4',
|
||||
'hjf_reward_umbrella_1',
|
||||
'hjf_reward_umbrella_2',
|
||||
'hjf_reward_umbrella_3',
|
||||
'hjf_reward_umbrella_4',
|
||||
];
|
||||
$levels = $this->request->post('levels', []);
|
||||
if (!is_array($levels)) {
|
||||
return $this->fail('参数格式错误');
|
||||
}
|
||||
|
||||
$data = $this->request->post();
|
||||
foreach ($data as $key => $value) {
|
||||
if (in_array($key, $allowedKeys, true)) {
|
||||
$configServices->setConfig($key, (string)$value);
|
||||
foreach ($levels as $item) {
|
||||
if (empty($item['id'])) continue;
|
||||
$updateData = [];
|
||||
if (isset($item['direct_reward_points'])) {
|
||||
$updateData['direct_reward_points'] = (int)$item['direct_reward_points'];
|
||||
}
|
||||
if (isset($item['umbrella_reward_points'])) {
|
||||
$updateData['umbrella_reward_points'] = (int)$item['umbrella_reward_points'];
|
||||
}
|
||||
if ($updateData) {
|
||||
$this->agentLevelServices->dao->update((int)$item['id'], $updateData);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -66,6 +66,7 @@ class StoreProduct extends AuthController
|
||||
['stock_range', ''],//库存区间
|
||||
['collect_range', ''],//收藏区间
|
||||
['product_clear', ''],//适用群体
|
||||
['is_queue_goods', ''],//报单商品:1/0,空=不限
|
||||
]);
|
||||
|
||||
if ($this->adminType == 4) {
|
||||
@@ -206,6 +207,7 @@ class StoreProduct extends AuthController
|
||||
['stock_range', ''],//库存区间
|
||||
['collect_range', ''],//收藏区间
|
||||
['product_clear', ''],//适用群体
|
||||
['is_queue_goods', ''],//报单商品:1/0,空=不限(须配合模型 searchIsQueueGoodsAttr)
|
||||
]);
|
||||
if ($this->adminType == 4) {
|
||||
$where['supplier_id'] = $this->adminId;
|
||||
|
||||
@@ -85,6 +85,8 @@ class User extends AuthController
|
||||
['isMember', ''],
|
||||
['label_ids', ''],
|
||||
['is_channel', ''],
|
||||
/** HJF:按分销等级 grade(0–4)筛选,对应 eb_user.agent_level */
|
||||
['hjf_member_level', ''],
|
||||
]);
|
||||
if ($where['label_ids']) {
|
||||
$where['label_id'] = stringToIntArray($where['label_ids']);
|
||||
|
||||
178
pro_v3.5.1/app/controller/api/v1/hjf/MemberController.php
Normal file
178
pro_v3.5.1/app/controller/api/v1/hjf/MemberController.php
Normal file
@@ -0,0 +1,178 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace app\controller\api\v1\hjf;
|
||||
|
||||
use app\Request;
|
||||
use app\services\agent\AgentLevelServices;
|
||||
use app\services\agent\AgentLevelTaskServices;
|
||||
use app\services\hjf\MemberLevelServices;
|
||||
use app\services\hjf\PointsRewardServices;
|
||||
use app\dao\hjf\PointsReleaseLogDao;
|
||||
use app\services\user\UserServices;
|
||||
use think\annotation\Inject;
|
||||
use think\facade\Db;
|
||||
|
||||
/**
|
||||
* 用户端 · 会员信息接口(改造复用版)
|
||||
*
|
||||
* 复用 eb_agent_level 体系,使用 eb_user.agent_level 字段。
|
||||
*
|
||||
* GET /api/hjf/member/info — 当前用户等级信息
|
||||
* GET /api/hjf/member/team — 团队成员列表
|
||||
* GET /api/hjf/member/income — 团队收益明细
|
||||
*
|
||||
* Class MemberController
|
||||
* @package app\controller\api\v1\hjf
|
||||
*/
|
||||
class MemberController
|
||||
{
|
||||
#[Inject]
|
||||
protected MemberLevelServices $memberLevelServices;
|
||||
|
||||
#[Inject]
|
||||
protected AgentLevelServices $agentLevelServices;
|
||||
|
||||
#[Inject]
|
||||
protected AgentLevelTaskServices $agentLevelTaskServices;
|
||||
|
||||
/**
|
||||
* 获取当前用户会员信息
|
||||
*/
|
||||
public function info(Request $request): \think\Response
|
||||
{
|
||||
$uid = (int)$request->uid();
|
||||
|
||||
$agentLevel = (int)Db::name('user')->where('uid', $uid)->value('agent_level');
|
||||
// 直接从 eb_agent_level 取 name,避免 grade 解析失败时等级徽章不显示
|
||||
$levelRow = $agentLevel > 0 ? $this->agentLevelServices->getLevelInfo($agentLevel) : null;
|
||||
$grade = $levelRow ? (int)$levelRow['grade'] : 0;
|
||||
$levelName = $levelRow ? ($levelRow['name'] ?? '普通会员') : '普通会员';
|
||||
|
||||
$directCount = $this->memberLevelServices->getDirectSpreadCount($uid);
|
||||
$umbrellaCount = $this->memberLevelServices->getUmbrellaQueueOrderCount($uid);
|
||||
$directOrderCount = $this->memberLevelServices->getDirectQueueOrderCount($uid);
|
||||
|
||||
// 用已修正的 level row ID 查找下一等级,避免旧 status=0 记录导致 grade 被误判为 0
|
||||
$effectiveLevelId = $levelRow ? (int)$levelRow['id'] : 0;
|
||||
$nextLevel = $this->agentLevelServices->getNextLevelInfo($effectiveLevelId);
|
||||
$nextLevelName = $nextLevel ? $nextLevel['name'] : null;
|
||||
|
||||
$upgradeProgress = [];
|
||||
if ($nextLevel) {
|
||||
$taskList = $this->agentLevelTaskServices->getUpgradeTasksForLevel((int)$nextLevel['id']);
|
||||
foreach ($taskList as $task) {
|
||||
$item = ['name' => $task['name'], 'number' => $task['number']];
|
||||
switch ($task['type']) {
|
||||
case 6:
|
||||
$item['current'] = $directOrderCount;
|
||||
break;
|
||||
case 7:
|
||||
$item['current'] = $umbrellaCount;
|
||||
break;
|
||||
case 8:
|
||||
$item['current'] = $directCount;
|
||||
break;
|
||||
default:
|
||||
$item['current'] = 0;
|
||||
}
|
||||
$item['completed'] = $item['current'] >= $item['number'];
|
||||
$upgradeProgress[] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
return app('json')->success([
|
||||
'agent_level' => $agentLevel, // eb_user.agent_level 原始 ID,供前端判断是否有等级
|
||||
'member_level' => $grade,
|
||||
'member_level_name' => $levelName, // eb_agent_level.name 直接值
|
||||
'direct_count' => $directCount,
|
||||
'umbrella_count' => $umbrellaCount,
|
||||
'direct_order_count' => $directOrderCount,
|
||||
'next_level_name' => $nextLevelName,
|
||||
'upgrade_progress' => $upgradeProgress,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 团队成员列表(直推/伞下)
|
||||
*/
|
||||
public function team(Request $request): \think\Response
|
||||
{
|
||||
$uid = (int)$request->uid();
|
||||
$page = (int)$request->get('page', 1);
|
||||
$limit = (int)$request->get('limit', 20);
|
||||
$type = $request->get('type', 'direct');
|
||||
|
||||
/** @var UserServices $userServices */
|
||||
$userServices = app()->make(UserServices::class);
|
||||
|
||||
if ($type === 'direct') {
|
||||
$where = ['spread_uid' => $uid];
|
||||
} else {
|
||||
$directUids = $userServices->getColumn(['spread_uid' => $uid], 'uid');
|
||||
if (empty($directUids)) {
|
||||
return app('json')->success(['list' => [], 'count' => 0]);
|
||||
}
|
||||
$where = [['spread_uid', 'in', $directUids]];
|
||||
}
|
||||
|
||||
$count = $userServices->count($where);
|
||||
$list = Db::name('user')
|
||||
->where($where)
|
||||
->field('uid,nickname,avatar,phone,agent_level,add_time')
|
||||
->page($page, $limit)
|
||||
->order('uid desc')
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
$maps = $this->agentLevelServices->loadHjfUserListLevelMaps();
|
||||
|
||||
foreach ($list as &$item) {
|
||||
$alId = (int)($item['agent_level'] ?? 0);
|
||||
$levelInfo = $this->agentLevelServices->pickHjfLevelRowForUserListDisplay($alId, $maps);
|
||||
$item['member_level'] = $levelInfo ? (int)$levelInfo['grade'] : 0;
|
||||
$item['member_level_name'] = $levelInfo ? $levelInfo['name'] : '普通会员';
|
||||
$item['join_time'] = date('Y-m-d', (int)$item['add_time']);
|
||||
$item['direct_orders'] = $this->agentLevelTaskServices->getDirectQueueOrderCount((int)$item['uid']);
|
||||
unset($item['agent_level'], $item['add_time']);
|
||||
}
|
||||
unset($item);
|
||||
|
||||
return app('json')->success(compact('list', 'count'));
|
||||
}
|
||||
|
||||
/**
|
||||
* 团队收益明细(积分奖励记录)
|
||||
*/
|
||||
public function income(Request $request): \think\Response
|
||||
{
|
||||
$uid = (int)$request->uid();
|
||||
$page = (int)$request->get('page', 1);
|
||||
$limit = (int)$request->get('limit', 20);
|
||||
|
||||
/** @var PointsReleaseLogDao $logDao */
|
||||
$logDao = app()->make(PointsReleaseLogDao::class);
|
||||
|
||||
$where = [
|
||||
'uid' => $uid,
|
||||
'pm' => 1,
|
||||
];
|
||||
$where[] = ['type', 'in', ['reward_direct', 'reward_umbrella']];
|
||||
|
||||
$count = $logDao->count($where);
|
||||
$list = Db::name('points_release_log')
|
||||
->where($where)
|
||||
->field('id,uid,points,type,title,mark,order_id,add_time')
|
||||
->page($page, $limit)
|
||||
->order('id desc')
|
||||
->select()
|
||||
->toArray();
|
||||
|
||||
foreach ($list as &$item) {
|
||||
$item['time'] = date('Y-m-d H:i:s', (int)$item['add_time']);
|
||||
}
|
||||
unset($item);
|
||||
|
||||
return app('json')->success(compact('list', 'count'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user