SiteController.php 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: leo
  5. * Date: 2018/2/24
  6. * Time: 下午12:48
  7. */
  8. namespace backendApi\modules\v1\controllers;
  9. use backendApi\modules\v1\models\AdminCountry;
  10. use backendApi\modules\v1\models\AdminRole;
  11. use common\helpers\LoggerTool;
  12. use common\helpers\snowflake\PageSnowFake;
  13. use common\helpers\Tool;
  14. use common\models\CurrencyConversions;
  15. use common\models\DealType;
  16. use common\models\Period;
  17. use common\models\RegType;
  18. use common\models\DecRole;
  19. use common\models\OpenBank;
  20. use common\models\UserSystem;
  21. use Yii;
  22. use backendApi\modules\v1\models\User;
  23. use common\helpers\Cache;
  24. class SiteController extends BaseController
  25. {
  26. public $modelClass = User::class;
  27. public function behaviors() {
  28. return parent::behaviors();
  29. }
  30. public function actions()
  31. {
  32. $actions = parent::actions();
  33. $actions['captcha'] = [
  34. 'class' => 'common\helpers\CaptchaAction',
  35. 'width' => 120,
  36. 'height' => 40,
  37. 'padding' => 0,
  38. 'minLength' => 4,
  39. 'maxLength' => 4,
  40. 'offset'=>8, //设置字符偏移量 有效果
  41. 'testLimit'=>1,
  42. ];
  43. return $actions;
  44. }
  45. /**
  46. * 请求服务器时间差
  47. * @return mixed
  48. * @throws \yii\web\HttpException
  49. */
  50. public function actionDaysDiff(){
  51. return static::notice(['daysDiff'=>Yii::$app->params['daysDiff']]);
  52. }
  53. /**
  54. * 请求页面数据
  55. * @return mixed
  56. * @throws \yii\web\HttpException
  57. */
  58. public function actionPageData() {
  59. $pageId = PageSnowFake::instance()->generateId();
  60. return static::notice(['pageId'=>$pageId]);
  61. }
  62. public function actionBaseInfo(){
  63. // 会员级别
  64. $decLevels = Cache::getDecLevelConfig();
  65. // 荣衔级别
  66. $empLevels = Cache::getEmpLevelConfig();
  67. // Elite级别
  68. $eliteLevels = Cache::getEliteLevelConfig();
  69. // 注册类型
  70. $regTypes = Cache::getRegType();
  71. // 交易类型
  72. $dealTypes = Cache::getDealType();
  73. // 体系
  74. $systems = [];
  75. // 菜单
  76. $menu = require Yii::getAlias('@backendApi/config/menu.php');
  77. $menu = $this->_childMenu($menu);
  78. // 管理员角色
  79. $adminRoles = Cache::getAdminRole();
  80. // 超级管理员角色ID
  81. $superAdminRoleId = Yii::$app->params['superAdminRoleId'];
  82. // 时间差
  83. $daysDiff = Yii::$app->params['daysDiff'];
  84. // 钱包
  85. $shopWalletType = Tool::paramConvert(Yii::$app->params['shopWalletType']);
  86. // 报单中心角色
  87. $decRoles = Cache::getDecRoleConfig();
  88. // 子公司
  89. $subCompanies = [];
  90. // 会员状态
  91. $allStatus = Tool::paramConvert(Yii::$app->params['userStatus']);
  92. // 全部银行
  93. $allOpenBank = OpenBank::find()->where('1=1 AND STATUS=1')->select('BANK_NAME,BANK_CODE')->indexBy('BANK_CODE')->asArray()->all();
  94. // 民族
  95. $allNation = Yii::$app->params['nation'];
  96. // 期数
  97. $period = Period::instance();
  98. $periodNum = $period->getNowPeriodNum();
  99. // 汇率
  100. $exchangeRate = floatval(Cache::getSystemConfig()['exchangeRate']['VALUE'] ?? 0);
  101. $isSuperAdmin = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']);
  102. return [
  103. 'decLevels' => $decLevels,
  104. 'empLevels' => $empLevels,
  105. 'eliteLevels' => $eliteLevels,
  106. 'regTypes' => $regTypes,
  107. 'dealTypes' => $dealTypes,
  108. 'systems' => $systems,
  109. 'menu' => $menu,
  110. 'adminRoles' => $adminRoles,
  111. 'superAdminRoleId' => $superAdminRoleId,
  112. 'daysDiff' => $daysDiff,
  113. 'shopWalletType' => $shopWalletType,
  114. 'decRoles' => $decRoles,
  115. 'subCompanies' => $subCompanies,
  116. 'allStatus' => $allStatus,
  117. 'allOpenBank' => $allOpenBank,
  118. 'allNation' => $allNation,
  119. 'nowPeriodNum' => $periodNum,
  120. 'exchangeRate' => $exchangeRate,
  121. 'isSuperAdmin' => $isSuperAdmin,
  122. ];
  123. }
  124. private function _childMenu($parentArray){
  125. $menuResult = [];
  126. foreach($parentArray as $key => $parentMenu){
  127. // 菜单是否显示
  128. if(isset($parentMenu['show']) && !$parentMenu['show']){
  129. continue;
  130. }
  131. // 查看是否有该控制器的权限
  132. if(isset($parentMenu['controller']) && $parentMenu['controller']){
  133. if(!Yii::$app->user->validateAdminController($parentMenu['controller'])) continue;
  134. }
  135. // 查看是否有权限
  136. if(isset($parentMenu['action']) && $parentMenu['action']){
  137. if(!Yii::$app->user->validateAdminAction($parentMenu['controller'], $parentMenu['action'])) continue;
  138. }
  139. // 子菜单同样设置
  140. if(isset($parentMenu['child']) && !empty($parentMenu['child'])){
  141. $parentMenu['child'] = $this->_childMenu($parentMenu['child']);
  142. }
  143. // 如果在白名单的不显示菜单
  144. if(isset($parentMenu['controller']) && $parentMenu['controller']){
  145. if(Yii::$app->user->noCheckAdminController($parentMenu['controller'])) continue;
  146. }
  147. $menuResult[] = $parentMenu;
  148. }
  149. return $menuResult;
  150. }
  151. /**
  152. * 发送钉钉测试信息
  153. * @return mixed
  154. * @throws \yii\web\HttpException
  155. */
  156. public function actionSendNotice()
  157. {
  158. $data = [
  159. 'code' => 400,
  160. 'message' => 'autoSendDingTalk',
  161. ];
  162. return static::notice(['data' => $data['bug监控正常运行,没有发现异常.']]);
  163. }
  164. public function actionSendNotify()
  165. {
  166. $message = Yii::$app->request->get('message', '收到信息了');
  167. $data = ['message' => $message];
  168. return static::notice($data);
  169. }
  170. public function actionCountries()
  171. {
  172. // 国家
  173. $countries = Cache::getCountries();
  174. // $filter = \Yii::$app->request->get('filter', 0);
  175. $isSuperAdmin = AdminRole::isSuperAdmin(\Yii::$app->getUser()->getUserInfo()['roleId']);
  176. if (!$isSuperAdmin) {
  177. $adminId = Yii::$app->getUser()->getUserInfo()['id'];
  178. $adminCountry = AdminCountry::getCountry($adminId);
  179. $countries = array_filter($countries, fn($country) => in_array($country['ID'], $adminCountry));
  180. $countries = array_values($countries);
  181. }
  182. // 货币
  183. $currencies = Cache::getCurrencies();
  184. $currencies = array_column($currencies, NULL, 'ID');
  185. // 货币汇率
  186. $currenciesConversions = CurrencyConversions::getFromCache();
  187. $currenciesConversions = array_column($currenciesConversions, NULL, 'TO_CURRENCY_ID');
  188. $countries = array_map(function ($country) use ($currencies, $currenciesConversions) {
  189. return array_merge(
  190. $country,
  191. [
  192. 'LOCAL_CURRENCY_NAME' => $currencies[$country['LOCAL_CURRENCY_ID']]['NAME'] ?? '',
  193. 'CURRENCY_PRODUCT_RATE' => $currenciesConversions[$country['LOCAL_CURRENCY_ID']]['PRODUCT_RATE'] ?? 0
  194. ]
  195. );
  196. }, $countries);
  197. return static::notice(['data' => $countries]);
  198. }
  199. public function actionLanguages()
  200. {
  201. // 语言列表
  202. $data = Cache::getLanguages();
  203. return static::notice(['data' => $data]);
  204. }
  205. public function actionBanks()
  206. {
  207. // 默认国家
  208. $countryId = \Yii::$app->request->get('countryId');
  209. if (!$countryId) {
  210. return static::notice(Yii::t('app', 'countryDoesNotSelect'), 400);
  211. }
  212. $data = OpenBank::find()
  213. ->where('STATUS=:STATUS AND COUNTRY_ID=:COUNTRY_ID', [':STATUS' => 1, ':COUNTRY_ID' => $countryId])
  214. ->orderBy('BANK_NAME ASC')
  215. ->asArray()
  216. ->all();
  217. return static::notice(['data' => $data]);
  218. }
  219. }