xiaoai/php_server/app/common/enum/user/AccountLogEnum.php

421 lines
13 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\common\enum\user;
use app\common\model\ModelConfig;
/**
* 用户账户流水变动表枚举
* Class AccountLogEnum
* @package app\common\enum
*/
class AccountLogEnum
{
/**
* 变动类型命名规则对象_动作_简洁描述
* 动作 DEC-减少 INC-增加
* 对象 UM-用户余额
*/
/**
* 变动对象
* UM 用户余额(user_money)
*/
const UM = 1;
/**
* 变动对象
* TOKENS 用户算力(user_money)
*/
const TOKENS = 2;
/**
* 动作
* INC 增加
* DEC 减少
*/
const INC = 1;
const DEC = 2;
/**
* 用户余额减少类型
*/
const UM_DEC_ADMIN = 100;
const UM_DEC_RECHARGE_REFUND = 101;
/**
* 用户余额增加类型
*/
const UM_INC_ADMIN = 200;
const UM_INC_RECHARGE = 201;
/**
* 用户余额(减少类型汇总)
*/
const UM_DEC = [
self::UM_DEC_ADMIN,
self::UM_DEC_RECHARGE_REFUND,
];
/**
* 用户余额(增加类型汇总)
*/
const UM_INC = [
self::UM_INC_ADMIN,
self::UM_INC_RECHARGE,
];
/**
* 用户算力减少类型
*/
const TOKENS_DEC_ADMIN = 9001;
const TOKENS_DEC_RECHARGE_REFUND = 9002;
const TOKENS_DEC_EXPIRE = 9003;
//通用聊天
const TOKENS_DEC_COMMON_CHAT = 1001;
//场景聊天
const TOKENS_DEC_SCENE_CHAT = 1002;
//关键词
const KEYWORD_TO_TITLE = 1101;
const KEYWORD_TO_SUBTITLE = 1102;
const KEYWORD_TO_COPYWRITING = 1103;
//文生图
const TOKENS_DEC_TEXT_TO_IMAGE = 2001;
//图生图
const TOKENS_DEC_IMAGE_TO_IMAGE = 2002;
//商品图
const TOKENS_DEC_GOODS_IMAGE = 2003;
//模特图
const TOKENS_DEC_MODEL_IMAGE = 2004;
//模特图
const TOKENS_DEC_IMAGE_PROMPT = 2005;
//会议纪要
const TOKENS_DEC_MEETING = 3001;
//思维导图
const TOKENS_DEC_MIND_MAP = 4001;
//数字人口播文案提示词
const TOKENS_DEC_HUMAN_PROMPT = 5001;
//数字人 - 标准版
const TOKENS_DEC_HUMAN_AVATAR = 5002;
const TOKENS_DEC_HUMAN_VOICE = 5003;
const TOKENS_DEC_HUMAN_AUDIO = 5004;
const TOKENS_DEC_HUMAN_VIDEO = 5005;
//数字人 - 极致版
const TOKENS_DEC_HUMAN_AVATAR_PRO = 5006;
const TOKENS_DEC_HUMAN_VOICE_PRO = 5007;
const TOKENS_DEC_HUMAN_AUDIO_PRO = 5008;
const TOKENS_DEC_HUMAN_VIDEO_PRO = 5009;
//数字人高级版 优蜜
const TOKENS_DEC_HUMAN_AVATAR_YM = 5010;
const TOKENS_DEC_HUMAN_VOICE_YM = 5011;
const TOKENS_DEC_HUMAN_AUDIO_YM = 5012;
const TOKENS_DEC_HUMAN_VIDEO_YM = 5013;
//数字人通道六 优蜜
const TOKENS_DEC_HUMAN_AVATAR_YMT = 5014;
const TOKENS_DEC_HUMAN_VOICE_YMT = 5015;
const TOKENS_DEC_HUMAN_AUDIO_YMT = 5016;
const TOKENS_DEC_HUMAN_VIDEO_YMT = 5017;
const TOKENS_DEC_HUMAN_COPYWRITING = 5018;
//AI陪练
const TOKENS_DEC_AI_LIANLIAN = 6001;
//AI面试
//简历分析
const TOKENS_DEC_AI_RESUME = 7001;
//面试评分
const TOKENS_DEC_AI_MARK = 7002;
//面试聊天
const TOKENS_DEC_AI_INTERVIEW_CHAT = 7003;
//AI微信
const TOKENS_DEC_AI_WECHAT = 8001;
// 知识库
//检索
const TOKENS_DEC_KNOWLEDGE_RETRIEVE = 9004;
const TOKENS_DEC_KNOWLEDGE_CREATE = 9005;
const TOKENS_DEC_KNOWLEDGE_CHAT = 9006;
/**
* 用户算力增加类型
*/
const TOKENS_INC_REGISTER = 9101;
const TOKENS_INC_ADMIN = 9102;
const TOKENS_INC_RECHARGE = 9103;
const TOKENS_INC_CARDCODE_GIVE = 9105; //卡密兑换赠送算力值
const TOKENS_DEC_AI_XHS = 9104;
/**
* 用户算力(减少类型汇总)
*/
const TOKENS_DEC = [
self::TOKENS_DEC_ADMIN,
self::TOKENS_DEC_RECHARGE_REFUND,
self::TOKENS_DEC_COMMON_CHAT,
self::TOKENS_DEC_TEXT_TO_IMAGE,
self::TOKENS_DEC_IMAGE_TO_IMAGE,
self::TOKENS_DEC_GOODS_IMAGE,
self::TOKENS_DEC_MODEL_IMAGE,
self::TOKENS_DEC_MEETING,
self::TOKENS_DEC_MIND_MAP,
self::TOKENS_DEC_SCENE_CHAT,
self::TOKENS_DEC_IMAGE_PROMPT,
self::TOKENS_DEC_EXPIRE,
self::TOKENS_DEC_HUMAN_VIDEO,
self::TOKENS_DEC_HUMAN_AUDIO,
self::TOKENS_DEC_HUMAN_VOICE,
self::TOKENS_DEC_HUMAN_AVATAR,
self::TOKENS_DEC_HUMAN_VIDEO_PRO,
self::TOKENS_DEC_HUMAN_AUDIO_PRO,
self::TOKENS_DEC_HUMAN_VOICE_PRO,
self::TOKENS_DEC_HUMAN_AVATAR_PRO,
self::TOKENS_DEC_HUMAN_PROMPT,
self::TOKENS_DEC_HUMAN_COPYWRITING,
self::TOKENS_DEC_AI_LIANLIAN,
self::TOKENS_DEC_AI_WECHAT,
self::TOKENS_DEC_AI_XHS,
self::TOKENS_DEC_AI_RESUME,
self::TOKENS_DEC_AI_MARK,
self::TOKENS_DEC_AI_INTERVIEW_CHAT,
self::TOKENS_DEC_HUMAN_AVATAR_YM,
self::TOKENS_DEC_HUMAN_VIDEO_YM,
self::TOKENS_DEC_HUMAN_AUDIO_YM,
self::TOKENS_DEC_HUMAN_VOICE_YM,
self::TOKENS_DEC_HUMAN_AVATAR_YMT,
self::TOKENS_DEC_HUMAN_VIDEO_YMT,
self::TOKENS_DEC_HUMAN_AUDIO_YMT,
self::TOKENS_DEC_HUMAN_VOICE_YMT,
self::TOKENS_DEC_KNOWLEDGE_RETRIEVE,
self::TOKENS_DEC_KNOWLEDGE_CREATE,
self::TOKENS_DEC_KNOWLEDGE_CHAT,
self::KEYWORD_TO_TITLE,
self::KEYWORD_TO_SUBTITLE,
self::KEYWORD_TO_COPYWRITING
];
/**
* 用户算力(增加类型汇总)
*/
const TOKENS_INC = [
self::TOKENS_INC_ADMIN,
self::TOKENS_INC_RECHARGE,
self::TOKENS_INC_CARDCODE_GIVE,
];
/**
* @notes 动作描述
* @param $action
* @param false $flag
* @return string|string[]
* @author 段誉
* @date 2023/2/23 10:07
*/
public static function getActionDesc($action, $flag = false)
{
$desc = [
self::DEC => '减少',
self::INC => '增加',
];
if ($flag) {
return $desc;
}
return $desc[$action] ?? '';
}
/**
* @notes 变动类型描述
* @param $changeType
* @param false $flag
* @return string|string[]
* @author 段誉
* @date 2023/2/23 10:07
*/
public static function getChangeTypeDesc($changeType, $flag = false)
{
$desc = [
self::UM_DEC_ADMIN => '平台减少余额',
self::UM_INC_ADMIN => '平台增加余额',
self::UM_INC_RECHARGE => '充值增加余额',
self::UM_DEC_RECHARGE_REFUND => '充值订单退款减少余额',
self::TOKENS_INC_REGISTER => '注册增加算力',
self::TOKENS_INC_ADMIN => '平台增加算力',
self::TOKENS_INC_RECHARGE => '购买算力加油包',
self::TOKENS_DEC_ADMIN => '平台减少算力',
self::TOKENS_DEC_RECHARGE_REFUND => '充值订单退款减少算力',
self::TOKENS_DEC_COMMON_CHAT => '通用聊天减少算力',
self::TOKENS_DEC_TEXT_TO_IMAGE => '文生图减少算力',
self::TOKENS_DEC_IMAGE_TO_IMAGE => '图生图减少算力',
self::TOKENS_DEC_GOODS_IMAGE => '商品图减少算力',
self::TOKENS_DEC_MODEL_IMAGE => '模特图减少算力',
self::TOKENS_DEC_MEETING => '会议减少算力',
self::TOKENS_DEC_MIND_MAP => '思维导图减少算力',
self::TOKENS_DEC_SCENE_CHAT => '场景聊天减少算力',
self::TOKENS_DEC_IMAGE_PROMPT => '生图文案减少算力',
self::TOKENS_DEC_EXPIRE => 'token 加油包过期',
self::TOKENS_DEC_HUMAN_AVATAR => '数字人形象 - 标准版减少算力',
self::TOKENS_DEC_HUMAN_AUDIO => '数字人音频 - 标准版减少算力',
self::TOKENS_DEC_HUMAN_VOICE => '数字人音色 - 标准版减少算力',
self::TOKENS_DEC_HUMAN_VIDEO => '数字人视频 - 标准版减少算力',
self::TOKENS_DEC_HUMAN_AVATAR_PRO => '数字人形象 - 极致版减少算力',
self::TOKENS_DEC_HUMAN_AUDIO_PRO => '数字人音频 - 极致版减少算力',
self::TOKENS_DEC_HUMAN_VOICE_PRO => '数字人音色 - 极致版减少算力',
self::TOKENS_DEC_HUMAN_VIDEO_PRO => '数字人视频 - 极致版减少算力',
self::TOKENS_DEC_HUMAN_AVATAR_YM => '数字人形象 - 高级版减少算力',
self::TOKENS_DEC_HUMAN_AUDIO_YM => '数字人音频 - 高级版减少算力',
self::TOKENS_DEC_HUMAN_VOICE_YM => '数字人音色 - 高级版减少算力',
self::TOKENS_DEC_HUMAN_VIDEO_YM => '数字人视频 - 高级版减少算力',
self::TOKENS_DEC_HUMAN_PROMPT => '数字人口播文案提示词减少算力',
self::TOKENS_DEC_HUMAN_COPYWRITING => '数字人口播文案减少算力',
self::TOKENS_DEC_AI_LIANLIAN => 'AI陪练减少算力',
self::TOKENS_DEC_AI_WECHAT => 'AI微信减少算力',
self::TOKENS_DEC_AI_XHS => 'AI小红书减少算力',
// self::TOKENS_DEC_AUDIO_TEXT => '音频转文字减少算力',
self::TOKENS_DEC_AI_RESUME => 'AI简历分析减少算力',
self::TOKENS_DEC_AI_MARK => 'AI面试评分减少算力',
self::TOKENS_DEC_AI_INTERVIEW_CHAT => 'AI面试聊天减少算力',
self::TOKENS_DEC_HUMAN_AVATAR_YMT => '数字人形象 - 通道六-减少算力',
self::TOKENS_DEC_HUMAN_AUDIO_YMT => '数字人音频 - 通道六-减少算力',
self::TOKENS_DEC_HUMAN_VOICE_YMT => '数字人音色 - 通道六-减少算力',
self::TOKENS_DEC_HUMAN_VIDEO_YMT => '数字人视频 - 通道六-减少算力',
self::TOKENS_DEC_KNOWLEDGE_RETRIEVE => '知识库检索减少算力',
self::TOKENS_DEC_KNOWLEDGE_CREATE => '知识库创建减少算力',
self::TOKENS_DEC_KNOWLEDGE_CHAT => '知识库聊天减少算力',
self::KEYWORD_TO_TITLE => '关键词转标题减少算力',
self::KEYWORD_TO_SUBTITLE => '关键词转副标题减少算力',
self::KEYWORD_TO_COPYWRITING => '关键词转文案减少算力',
self::TOKENS_INC_CARDCODE_GIVE => '卡密兑换增加算力',
];
if ($flag) {
return $desc;
}
return $desc[$changeType] ?? '';
}
/**
* @notes 获取用户余额类型描述
* @return string|string[]
* @author 段誉
* @date 2023/2/23 10:08
*/
public static function getUserMoneyChangeTypeDesc()
{
$UMChangeType = self::getUserMoneyChangeType();
$changeTypeDesc = self::getChangeTypeDesc('', true);
return array_filter($changeTypeDesc, function ($key) use ($UMChangeType) {
return in_array($key, $UMChangeType);
}, ARRAY_FILTER_USE_KEY);
}
/**
* @notes 获取用户算力类型描述
* @return string|string[]
* @author 段誉
* @date 2023/2/23 10:08
*/
public static function getUserTokensChangeTypeDesc()
{
$UMChangeType = self::getUserTokensChangeType();
$changeTypeDesc = self::getChangeTypeDesc('', true);
return array_filter($changeTypeDesc, function ($key) use ($UMChangeType) {
return in_array($key, $UMChangeType);
}, ARRAY_FILTER_USE_KEY);
}
/**
* @notes 获取用户余额变动类型
* @return int[]
* @author 段誉
* @date 2023/2/23 10:08
*/
public static function getUserMoneyChangeType(): array
{
return array_merge(self::UM_DEC, self::UM_INC);
}
/**
* @notes 获取用户算力变动类型
* @return int[]
* @author 段誉
* @date 2023/2/23 10:08
*/
public static function getUserTokensChangeType(): array
{
return array_merge(self::TOKENS_DEC, self::TOKENS_INC);
}
/**
* @notes 获取变动对象
* @param $changeType
* @return false
* @author 段誉
* @date 2023/2/23 10:10
*/
public static function getChangeObject($changeType)
{
// 用户余额
$um = self::getUserMoneyChangeType();
if (in_array($changeType, $um)) {
return self::UM;
}
$tokens = self::getUserTokensChangeType();
if (in_array($changeType, $tokens)) {
return self::TOKENS;
}
// 其他...
return false;
}
/**
* @notes 检查code是否存在
* @param int $code
* @return bool
* @author 段誉
* @date 2023/2/23 10:08
*/
public static function checkCode(int $code): bool
{
$config = ModelConfig::where('code', $code)->findOrEmpty();
return $config->isEmpty() ? false : true;
}
}