Merge branch 'feature/ru' into develop

# Conflicts:
#	config/constants/Constants.php
This commit is contained in:
2025-04-07 11:54:29 +08:00
7 changed files with 90 additions and 11 deletions
+5 -1
View File
@@ -18,9 +18,13 @@ class CarTypeController
$list = CarType::getAll(); $list = CarType::getAll();
if($request->user['language'] != 'zh_CN'){ if($request->user['language'] != 'zh_CN'){
foreach ($list as $key => &$value) { foreach ($list as &$value) {
$value['name'] = $value['name_en']; $value['name'] = $value['name_en'];
} }
}elseif ($request->user['language'] == 'ru'){
foreach ($list as &$value) {
$value['name'] = $value['name_ru'];
}
} }
return Util::success($list); return Util::success($list);
+9 -1
View File
@@ -33,6 +33,8 @@ class CustomerController
$gradeConstants = Constants::GRADE_EN; $gradeConstants = Constants::GRADE_EN;
if($request->user['language'] == 'zh_CN'){ if($request->user['language'] == 'zh_CN'){
$gradeConstants = Constants::GRADE; $gradeConstants = Constants::GRADE;
}elseif ($request->user['language'] == 'ru'){
$gradeConstants = Constants::GRADE_RU;
} }
foreach ($gradeConstants as $key => $value) { foreach ($gradeConstants as $key => $value) {
$grade[] = [ $grade[] = [
@@ -54,6 +56,8 @@ class CustomerController
$magnitudeConstants = Constants::MAGNITUDE_EN; $magnitudeConstants = Constants::MAGNITUDE_EN;
if($request->user['language'] == 'zh_CN'){ if($request->user['language'] == 'zh_CN'){
$magnitudeConstants = Constants::MAGNITUDE; $magnitudeConstants = Constants::MAGNITUDE;
}elseif ($request->user['language'] == 'ru'){
$magnitudeConstants = Constants::MAGNITUDE_RU;
} }
foreach ($magnitudeConstants as $key => $value) { foreach ($magnitudeConstants as $key => $value) {
$grade[] = [ $grade[] = [
@@ -74,9 +78,13 @@ class CustomerController
$list = Channel::getAll(); $list = Channel::getAll();
if($request->user['language'] != 'zh_CN'){ if($request->user['language'] != 'zh_CN'){
foreach ($list as $key => &$value) { foreach ($list as &$value) {
$value['name'] = $value['name_en']; $value['name'] = $value['name_en'];
} }
}elseif ($request->user['language'] == 'ru'){
foreach ($list as &$value) {
$value['name'] = $value['name_ru'];
}
} }
return Util::success($list); return Util::success($list);
+1 -1
View File
@@ -330,7 +330,7 @@ class UserController
if (Util::isEmpty($language)) { if (Util::isEmpty($language)) {
return Util::fail([], 'language' . trans('not_null')); return Util::fail([], 'language' . trans('not_null'));
} }
if (!in_array($language, ['en', 'zh_CN'])) { if (!in_array($language, ['en', 'zh_CN','ru'])) {
return Util::fail([], trans('param_error')); return Util::fail([], trans('param_error'));
} }
$data = [ $data = [
+7 -7
View File
@@ -68,19 +68,19 @@ class Customer extends Model
public static function getCustomer($customer, $request, $tag = false) public static function getCustomer($customer, $request, $tag = false)
{ {
$language = $request->user['language'] ?: 'en'; $language = $request->user['language'] ?: 'en';
$customer['grade_txt'] = $language=='en'?Constants::GRADE_EN[$customer['grade']]:Constants::GRADE[$customer['grade']]; $customer['grade_txt'] = Util::language($language, Constants::GRADE_EN[$customer['grade']], Constants::GRADE[$customer['grade']], Constants::GRADE_RU[$customer['grade']]);
$customer['magnitude_txt'] = $language=='en'?Constants::MAGNITUDE_EN[$customer['magnitude']]:Constants::MAGNITUDE[$customer['magnitude']]; $customer['magnitude_txt'] = Util::language($language, Constants::MAGNITUDE_EN[$customer['grade']], Constants::MAGNITUDE[$customer['grade']], Constants::MAGNITUDE_RU[$customer['grade']]);
$customer['sex_txt'] = $language=='en'?Constants::SEX_EN[$customer['sex']]:Constants::SEX[$customer['sex']]; $customer['sex_txt'] = Util::language($language, Constants::SEX_EN[$customer['grade']], Constants::SEX[$customer['grade']], Constants::SEX_RU[$customer['grade']]);
if ($customer['grade']<=2) { if ($customer['grade']<=2) {
$customer['follow'] = 0; $customer['follow'] = 0;
$customer['follow_txt'] = ($language == 'en' ? 'Following' : '跟进中'); $customer['follow_txt'] = Util::language($language,'Following','跟进中','Продолжение');
}elseif ($customer['grade']<5) { }elseif ($customer['grade']<5) {
$customer['follow'] = 1; $customer['follow'] = 1;
$customer['follow_txt'] = ($language == 'en' ? 'transacted' : '已成交'); $customer['follow_txt'] = Util::language($language,'transacted','已成交','Транзакция завершена');
}else{ }else{
$customer['follow'] = 2; $customer['follow'] = 2;
$customer['follow_txt'] = ($language == 'en' ? 'lost' : '已流失'); $customer['follow_txt'] = Util::language($language,'lost','已流失','Потерянный');
} }
$where = [ $where = [
@@ -96,7 +96,7 @@ class Customer extends Model
// $customer['updated_at'] = Util::timeTotDate($customer['updated_at']); // $customer['updated_at'] = Util::timeTotDate($customer['updated_at']);
$customer = Util::formatDate($customer,['follow_last']); $customer = Util::formatDate($customer,['follow_last']);
$nameLang = $language=='en'?'name_en':'name'; $nameLang = $language=='en'?'name_en':($language=='ru'?'name_ru':'name');
$countryLang = $language=='en'?'en_addr':'cn_addr'; $countryLang = $language=='en'?'en_addr':'cn_addr';
$customer['car_type_name'] = empty($customer['car_type_id'])?'':CarType::where(['id'=>$customer['car_type_id']])->value($nameLang); $customer['car_type_name'] = empty($customer['car_type_id'])?'':CarType::where(['id'=>$customer['car_type_id']])->value($nameLang);
$customer['country_name'] = empty($customer['country_id'])?'':Country::where(['id'=>$customer['country_id']])->value($countryLang); $customer['country_name'] = empty($customer['country_id'])?'':Country::where(['id'=>$customer['country_id']])->value($countryLang);
+13
View File
@@ -105,4 +105,17 @@ class Util
return $value; return $value;
} }
/**
* 格式化创建时间
*/
public static function language($language = 'en',$en,$zh_CN,$ru)
{
if ($language == 'zh_CN'){
return $zh_CN;
}elseif ($language == 'ru'){
return $ru;
}
return $en;
}
} }
+20 -1
View File
@@ -27,6 +27,14 @@ class Constants
self::CUSTOMER_GRADE_SALES => 'After Sales', self::CUSTOMER_GRADE_SALES => 'After Sales',
self::CUSTOMER_GRADE_LOSS => 'Stagnation or loss', self::CUSTOMER_GRADE_LOSS => 'Stagnation or loss',
]; ];
public const GRADE_RU = [
self::CUSTOMER_GRADE_INITIAL => 'Первоначальные контакты',
self::CUSTOMER_GRADE_COMMUNICATE => 'Потребности в общении',
self::CUSTOMER_GRADE_PLAN => 'Продвижение программы',
self::CUSTOMER_GRADE_DEAL => 'Этап сделки',
self::CUSTOMER_GRADE_SALES => 'Послепродажный этап',
self::CUSTOMER_GRADE_LOSS => 'Застой или потеря',
];
//客户重要性 //客户重要性
public const CUSTOMER_MAGNITUDE_INITIAL = 0; // 金牌商机 public const CUSTOMER_MAGNITUDE_INITIAL = 0; // 金牌商机
@@ -44,6 +52,12 @@ class Constants
self::CUSTOMER_MAGNITUDE_PLAN => 'Bronze Medal', self::CUSTOMER_MAGNITUDE_PLAN => 'Bronze Medal',
]; ];
public const MAGNITUDE_RU = [
self::CUSTOMER_MAGNITUDE_INITIAL => 'Золотой бизнес',
self::CUSTOMER_MAGNITUDE_COMMUNICATE => 'Серебряный бизнес',
self::CUSTOMER_MAGNITUDE_PLAN => 'Бронзовый бизнес.',
];
//跟进类型 //跟进类型
public const CUSTOMER_FOLLOW_VISIT = 0; // 线下拜访 public const CUSTOMER_FOLLOW_VISIT = 0; // 线下拜访
@@ -68,13 +82,18 @@ class Constants
self::CUSTOMER_SEX_MAN => '男', self::CUSTOMER_SEX_MAN => '男',
self::CUSTOMER_SEX_WOMAN => '女', self::CUSTOMER_SEX_WOMAN => '女',
]; ];
public const SEX_EN = [ public const SEX_EN = [
self::CUSTOMER_SEX_UNKNOWN => 'unknown', self::CUSTOMER_SEX_UNKNOWN => 'unknown',
self::CUSTOMER_SEX_MAN => 'man', self::CUSTOMER_SEX_MAN => 'man',
self::CUSTOMER_SEX_WOMAN => 'woman', self::CUSTOMER_SEX_WOMAN => 'woman',
]; ];
public const SEX_RU = [
self::CUSTOMER_SEX_UNKNOWN => 'неизвестный',
self::CUSTOMER_SEX_MAN => 'мужской',
self::CUSTOMER_SEX_WOMAN => 'женский',
];
public const SIGN = [ public const SIGN = [
['id' => 'xinyouhe', 'name' => '新友合'], ['id' => 'xinyouhe', 'name' => '新友合'],
['id' => 'mbaf', 'name' => 'MAGIC BRIDGE AUTO FZE'] ['id' => 'mbaf', 'name' => 'MAGIC BRIDGE AUTO FZE']
+35
View File
@@ -0,0 +1,35 @@
<?php
return [
'success' => ' Успех',
'fail' => ' Неудача',
'login_success' => ' Регистрация завершена',
'password_error' => ' Ошибка пароля',
'user_none' => ' Пользователь не существует',
'user_id' => ' Идентификатор пользователя',
'user_login' => ' Пожалуйста, войдите.',
'not_null' => ' Нельзя быть пустым',
'code_error' => ' Ошибка кода проверки',
'format_error' => ' Ошибка формата',
'email_repeat' => ' Почтовый ящик повторяется',
'email_error' => ' Ошибка формата почтового ящика',
'save_success' => ' Сохранить успешно',
'save_fail' => ' Ошибка сохранения',
'register_success' => ' Регистрация успешно',
'register_fail' => ' Ошибка регистрации',
'language_success' => ' Переключить язык успешно',
'language_fail' => ' Ошибка переключения языка',
'param_error' => ' Ошибка параметра',
'required_not_null' => ' Обязательное заполнение не может быть пустым.',
'picture_not_null' => ' Фотографии не могут быть пустыми',
'contacts_not_null' => ' Контакты, почтовый ящик, телефон не может быть одновременно пустым',
'car_type_not_null' => ' Предпочтения не могут быть пустыми',
'channel_not_null' => ' Каналы не могут быть пустыми',
'email_consistent' => ' Почтовый ящик не совпадает',
'sign_not_null' => ' Компания не создана',
'password_short' => ' Пароль не может быть меньше 6.',
'id_empty' => ' ID не может быть пустым',
'customer_id' => ' Идентификатор клиента',
'tag_group_id' => ' Идентификатор группы меток',
'claim_fail' => ' Невозможность получения принадлежащего клиенту',
];