<?php // +---------------------------------------------------------------------- // | Niucloud-admin 企业快速开发的saas管理平台 // +---------------------------------------------------------------------- // | 官方网址:https://www.niucloud.com // +---------------------------------------------------------------------- // | niucloud团队 版权所有 开源版本可自由商用 // +---------------------------------------------------------------------- // | Author: Niucloud Team // +---------------------------------------------------------------------- namespace app\api\controller\member; use app\dict\member\MemberAccountChangeTypeDict; use app\dict\member\MemberAccountTypeDict; use app\service\api\member\MemberAccountService; use core\base\BaseApiController; use core\exception\AdminException; use think\db\exception\DbException; use think\Response; /** * 会员账户 * Class Account * @package app\api\controller\member */ class Account extends BaseApiController { /** * 积分流水 * @return Response */ public function point(): Response { $data = $this->request->params([ ['from_type', ''], ['amount_type', 'all'],//全部all 收入income 支出disburse ['create_time', []], ]); $data['account_type'] = MemberAccountTypeDict::POINT; return success((new MemberAccountService())->getPointPage($data)); } /** * 余额流水 * @return Response */ public function balance(): Response { $data = $this->request->params([ ['from_type', ''] ]); $data['account_type'] = MemberAccountTypeDict::BALANCE; return success((new MemberAccountService())->getPage($data)); } /** * 余额流水(新) * @return Response */ public function balanceList(): Response { $data = $this->request->params([ ['from_type', ''], ['trade_type', ''], ['create_time', []] ]); return success((new MemberAccountService())->getBalancePage($data)); } /** * 零钱流水 * @return Response */ public function money(): Response { $data = $this->request->params([ ['from_type', ''] ]); $data['account_type'] = MemberAccountTypeDict::MONEY; return success((new MemberAccountService())->getPage($data)); } /** * 账户记录数量 * @return Response * @throws DbException */ public function count(): Response { $data = $this->request->params([ ['from_type', ''], ['account_type', ''] ]); return success(data:(new MemberAccountService())->getCount($data)); } /** * 佣金流水 * @return Response */ public function commission(): Response { $data = $this->request->params([ ['keyword', ''], ['from_type', ''], ['account_data_gt', ''], ['account_data_lt', ''], ['create_time', []], ]); $data['account_type'] = MemberAccountTypeDict::COMMISSION; return success((new MemberAccountService())->getPage($data)); } /** * 账户来源 * @param $account_type * @return Response */ public function getFromType($account_type): Response { if (!array_key_exists($account_type, MemberAccountTypeDict::getType())) throw new AdminException('MEMBER_TYPE_NOT_EXIST'); return success(MemberAccountChangeTypeDict::getType($account_type)); } /** * 会员积分统计数量 * @return Response * @throws DbException */ public function pointCount() { return success((new MemberAccountService())->getPointCount()); } }