ConfigController.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782
  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\Admin;
  10. use common\helpers\Cache;
  11. use common\helpers\Date;
  12. use common\helpers\Form;
  13. use common\helpers\Log;
  14. use common\helpers\Tool;
  15. use common\models\CalcBonus;
  16. use common\models\DecRole;
  17. use common\models\forms\ClearDataForm;
  18. use common\models\forms\ConfigBonusForm;
  19. use common\models\forms\ConfigForm;
  20. use common\models\forms\ConfigPeriodForm;
  21. use common\models\forms\DecLevelForm;
  22. use common\models\forms\DecRoleForm;
  23. use common\models\forms\RegTypeForm;
  24. use common\models\forms\DeclarationLevelForm;
  25. use common\models\forms\EmployLevelForm;
  26. use common\models\FlowBonus;
  27. use common\models\forms\OcrApiForm;
  28. use common\models\forms\SmsApiForm;
  29. use common\models\forms\SmsTemplateForm;
  30. use common\models\forms\WithdrawLevelForm;
  31. use common\models\OcrApi;
  32. use common\models\PerfCompany;
  33. use common\models\PerfMonth;
  34. use common\models\Period;
  35. use common\models\ReconsumePool;
  36. use common\models\RegType;
  37. use common\models\DeclarationLevel;
  38. use common\models\EmployLevel;
  39. use common\models\SmsApi;
  40. use common\models\SmsTemplate;
  41. use common\models\UserBonus;
  42. use common\models\UserClose;
  43. use common\models\UserInfo;
  44. use common\models\UserNetwork;
  45. use common\models\UserRelation;
  46. use common\models\WithdrawLevel;
  47. use Yii;
  48. use common\models\Config;
  49. use yii\base\Exception;
  50. use yii\helpers\Json;
  51. class ConfigController extends BaseController {
  52. public $modelClass = Config::class;
  53. public function behaviors() {
  54. $behaviors = parent::behaviors();
  55. //$behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;
  56. return $behaviors;
  57. }
  58. /**
  59. * 站点设置
  60. * @return mixed
  61. * @throws \yii\db\Exception
  62. * @throws \yii\web\HttpException
  63. */
  64. public function actionBase() {
  65. // 获取priod的相关配置参数
  66. $configs = Config::find()->where("TYPE='base'")->orderBy('SORT ASC')->indexBy('CONFIG_NAME')->asArray()->all();
  67. $form = new ConfigForm();
  68. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  69. if ($form->updateBase()) {
  70. Config::updateToCache();
  71. return static::notice('更新站点设置成功');
  72. } else {
  73. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  74. }
  75. }
  76. foreach ($configs as $key => $config) {
  77. if ($config['OPTIONS']) {
  78. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  79. }
  80. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  81. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  82. }
  83. }
  84. return static::notice($configs);
  85. }
  86. /**
  87. * 奖金相关配置
  88. * @return mixed
  89. * @throws \yii\db\Exception
  90. * @throws \yii\web\HttpException
  91. */
  92. public function actionBonusOpt() {
  93. $configs = Config::find()->where("TYPE='bonus'")->orderBy('SORT ASC')->indexBy('CONFIG_NAME')->asArray()->all();
  94. foreach ($configs as $key => $config) {
  95. if ($config['OPTIONS']) {
  96. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  97. }
  98. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  99. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  100. }
  101. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SELECT_MULTIPLE) {
  102. $configs[$key]['VALUE'] = explode(',', $config['VALUE']);
  103. }
  104. if($config['INPUT_TYPE'] == Config::INPUT_TYPE_TABLE) {
  105. $configs[$key]['VALUE'] = Json::decode($config['VALUE']);
  106. }
  107. }
  108. // 获取会员报单级别的相关参数
  109. $decLevel = DeclarationLevel::find()->orderBy('SORT ASC')->asArray()->all();
  110. // 获取会员聘级相关参数
  111. $empLevel = EmployLevel::getAllDataWithNumIndex();
  112. $result = [
  113. 'config' => $configs,
  114. 'decLevel' => $decLevel,
  115. 'empLevel' => $empLevel,
  116. ];
  117. return static::notice($result);
  118. }
  119. /**
  120. * 基本奖金设置
  121. * @return mixed
  122. * @throws \yii\db\Exception
  123. * @throws \yii\web\HttpException
  124. */
  125. public function actionBonus() {
  126. $form = new ConfigForm();
  127. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  128. if ($form->updateBonus()) {
  129. Config::updateToCache();
  130. return static::notice('更新奖金配置成功');
  131. } else {
  132. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  133. }
  134. }
  135. }
  136. /**
  137. * 修改会员级别相关的奖金配置
  138. * @return mixed
  139. * @throws \yii\db\Exception
  140. * @throws \yii\web\HttpException
  141. */
  142. public function actionBonusDecLevel() {
  143. $form = new DeclarationLevelForm();
  144. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  145. if ($form->updateBonus()) {
  146. DeclarationLevel::updateToCache();
  147. return static::notice('更新级别奖金配置成功');
  148. } else {
  149. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  150. }
  151. }
  152. }
  153. /**
  154. * 修改奖金聘级相关的奖金配置
  155. * @return mixed
  156. * @throws \yii\db\Exception
  157. * @throws \yii\web\HttpException
  158. */
  159. public function actionBonusEmpLevel() {
  160. $form = new EmployLevelForm();
  161. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  162. if ($form->updateBonus()) {
  163. Cache::updateEmpLevelConfig();
  164. return static::notice('更新聘级奖金配置成功');
  165. } else {
  166. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  167. }
  168. }
  169. }
  170. /**
  171. * 更新封期参数
  172. * @return mixed
  173. * @throws \yii\db\Exception
  174. * @throws \yii\web\HttpException
  175. */
  176. public function actionPeriod() {
  177. $form = new ConfigPeriodForm();
  178. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  179. if ($form->update()) {
  180. Config::updateToCache();
  181. // Log::adminHandle('更新封期参数', 1);
  182. return static::notice('期数已开始更新');
  183. } else {
  184. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  185. }
  186. }
  187. // 获取priod的相关配置参数
  188. $configs = Config::find()->where("TYPE='period'")->indexBy('CONFIG_NAME')->orderBy('SORT ASC')->asArray()->all();
  189. foreach ($configs as $key => $config) {
  190. if ($config['OPTIONS']) {
  191. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  192. }
  193. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  194. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  195. }
  196. }
  197. return static::notice($configs);
  198. }
  199. /**
  200. * 接口设置
  201. * @return mixed
  202. * @throws \yii\web\HttpException
  203. */
  204. public function actionApiOpt(){
  205. return static::notice('1');
  206. }
  207. /**
  208. * 查看OcrApi接口
  209. * @return mixed
  210. * @throws \yii\web\HttpException
  211. */
  212. public function actionOcrApi() {
  213. $condition = '';
  214. $params = [];
  215. $data = OcrApi::lists($condition, $params, [
  216. 'select' => 'OA.*,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME',
  217. 'from' => OcrApi::tableName() . ' AS OA',
  218. 'join' => [
  219. ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=OA.CREATE_ADMIN'],
  220. ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=OA.UPDATE_ADMIN'],
  221. ],
  222. 'orderBy' => 'OA.CREATED_AT ASC',
  223. ]);
  224. return static::notice($data);
  225. }
  226. /**
  227. * 修改OcrApi接口
  228. * @return mixed
  229. * @throws \yii\web\HttpException
  230. */
  231. public function actionOcrApiEdit() {
  232. $id = Yii::$app->request->get('id');
  233. if (Yii::$app->request->isPost) {
  234. return static::edit(OcrApiForm::class, 'OcrApi配置成功', null, null, null, function () {
  235. OcrApi::updateToCache();
  236. // Log::adminHandle('编辑OCRAPI参数配置', 1);
  237. });
  238. }
  239. $oneData = OcrApi::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  240. if ($oneData['CONFIG']) {
  241. $oneData['CONFIG'] = Json::decode($oneData['CONFIG']);
  242. }
  243. // 获取可供编辑的字段
  244. $oneData['apiType'] = '百度OCR';
  245. $oneData['CONFIGS'] = \common\helpers\ocr\OcrApi::apiConfigs($oneData['API_NAME']);
  246. return static::notice($oneData);
  247. }
  248. /**
  249. * 短信接口查看
  250. * @return mixed
  251. * @throws \yii\web\HttpException
  252. */
  253. public function actionSmsApi() {
  254. $condition = '';
  255. $params = [];
  256. $data = SmsApi::lists($condition, $params, [
  257. 'select' => 'OA.*,ADMC.ADMIN_NAME CREATE_ADMIN_NAME,ADMU.ADMIN_NAME UPDATE_ADMIN_NAME',
  258. 'from' => SmsApi::tableName() . ' AS OA',
  259. 'join' => [
  260. ['LEFT JOIN', Admin::tableName() . ' AS ADMC', 'ADMC.ID=OA.CREATE_ADMIN'],
  261. ['LEFT JOIN', Admin::tableName() . ' AS ADMU', 'ADMU.ID=OA.UPDATE_ADMIN'],
  262. ],
  263. 'orderBy' => 'OA.CREATED_AT ASC',
  264. ]);
  265. return static::notice($data);
  266. }
  267. /**
  268. * 短信接口编辑
  269. * @return mixed
  270. * @throws \yii\web\HttpException
  271. */
  272. public function actionSmsApiEdit() {
  273. $id = Yii::$app->request->get('id');
  274. if (Yii::$app->request->isPost) {
  275. return static::edit(SmsApiForm::class, 'SmsApi配置成功', null, null, null, function () {
  276. SmsApi::updateToCache();
  277. // Log::adminHandle('编辑SMSAPI参数配置', 1);
  278. });
  279. }
  280. $oneData = SmsApi::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  281. if ($oneData['CONFIG']) {
  282. $oneData['CONFIG'] = Json::decode($oneData['CONFIG']);
  283. }
  284. $oneData['apiType'] = '短信接口';
  285. // 获取可供编辑的字段
  286. $oneData['CONFIGS'] = \common\libs\api\sms\SmsApi::apiConfigs($oneData['API_NAME']);
  287. return static::notice($oneData);
  288. }
  289. /**
  290. * 短信配置
  291. * @return mixed
  292. * @throws \yii\db\Exception
  293. * @throws \yii\web\HttpException
  294. */
  295. public function actionSms() {
  296. // 获取priod的相关配置参数
  297. $configs = Config::find()->where("TYPE='sms'")->orderBy('SORT ASC')->indexBy('CONFIG_NAME')->asArray()->all();
  298. $form = new ConfigForm();
  299. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  300. if ($form->updateSms()) {
  301. Config::updateToCache();
  302. return static::notice('更新短信配置成功');
  303. } else {
  304. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  305. }
  306. }
  307. foreach ($configs as $key => $config) {
  308. if ($config['OPTIONS']) {
  309. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  310. }
  311. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  312. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  313. }
  314. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SELECT) {
  315. $configs[$key]['VALUE'] = explode(",",$config['VALUE']);
  316. }
  317. }
  318. return static::notice($configs);
  319. }
  320. /**
  321. * 转账配置
  322. * @return mixed
  323. * @throws \yii\db\Exception
  324. * @throws \yii\web\HttpException
  325. */
  326. public function actionTransfer() {
  327. // 获取priod的相关配置参数
  328. $configs = Config::find()->where("TYPE='transfer'")->orderBy('SORT ASC')->indexBy('CONFIG_NAME')->asArray()->all();
  329. $form = new ConfigForm();
  330. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  331. if ($form->updateTransfer()) {
  332. Config::updateToCache();
  333. return static::notice('更新转账配置成功');
  334. } else {
  335. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  336. }
  337. }
  338. foreach ($configs as $key => $config) {
  339. if ($config['OPTIONS']) {
  340. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  341. }
  342. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  343. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  344. }
  345. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_TABLE) {
  346. $configs[$key]['VALUE'] = Json::decode($config['VALUE']);
  347. }
  348. }
  349. return static::notice($configs);
  350. }
  351. /**
  352. * 分数配置
  353. * @return mixed
  354. * @throws \yii\db\Exception
  355. * @throws \yii\web\HttpException
  356. */
  357. public function actionScore() {
  358. // 获取priod的相关配置参数
  359. $configs = Config::find()->where("TYPE='score'")->orderBy('SORT ASC')->indexBy('CONFIG_NAME')->asArray()->all();
  360. $form = new ConfigForm();
  361. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  362. if ($form->updateScore()) {
  363. Config::updateToCache();
  364. return static::notice('更新分数配置成功');
  365. } else {
  366. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  367. }
  368. }
  369. foreach ($configs as $key => $config) {
  370. if ($config['OPTIONS']) {
  371. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  372. }
  373. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  374. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  375. }
  376. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_TABLE) {
  377. $configs[$key]['VALUE'] = Json::decode($config['VALUE']);
  378. }
  379. }
  380. return static::notice($configs);
  381. }
  382. /**
  383. * 其他配置
  384. * @return mixed
  385. * @throws \yii\db\Exception
  386. * @throws \yii\web\HttpException
  387. */
  388. public function actionOther() {
  389. // 获取priod的相关配置参数
  390. $configs = Config::find()->where("TYPE='other'")->orderBy('SORT ASC')->indexBy('CONFIG_NAME')->asArray()->all();
  391. $form = new ConfigForm();
  392. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  393. if ($form->updateOther()) {
  394. Config::updateToCache();
  395. return static::notice('更新其他配置成功');
  396. } else {
  397. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  398. }
  399. }
  400. if (Yii::$app->request->post()) {
  401. $postData = Yii::$app->request->post();
  402. $transaction = Yii::$app->db->beginTransaction();
  403. try {
  404. foreach ($configs as $key => $value) {
  405. if (array_key_exists($key, $postData)) {
  406. if (!$postData[$key]) $postData[$key] = 0;
  407. Config::updateAll(['VALUE' => $postData[$key], 'UPDATED_AT' => Date::nowTime()], "CONFIG_NAME=:CONFIG_NAME", [':CONFIG_NAME' => $key]);
  408. }
  409. }
  410. Config::updateToCache();
  411. $transaction->commit();
  412. } catch (Exception $e) {
  413. $transaction->rollBack();
  414. return static::notice('配置更新失败,请重试');
  415. }
  416. // Log::adminHandle('更新其他配置参数', 1);
  417. return static::notice('配置更新成功');
  418. }
  419. foreach ($configs as $key => $config) {
  420. if ($config['OPTIONS']) {
  421. $configs[$key]['OPTIONS'] = Json::decode($config['OPTIONS']);
  422. }
  423. if ($config['INPUT_TYPE'] == Config::INPUT_TYPE_SWITCH) {
  424. $configs[$key]['VALUE'] = boolval($config['VALUE']);
  425. }
  426. }
  427. return static::notice($configs);
  428. }
  429. /**
  430. * 查看报单级别
  431. * @return mixed
  432. * @throws \yii\web\HttpException
  433. */
  434. public function actionDecLevel() {
  435. $data = DeclarationLevel::lists('', [], [
  436. 'orderBy' => 'SORT ASC, CREATED_AT ASC'
  437. ]);
  438. return static::notice($data);
  439. }
  440. /**
  441. * 查看报单中心级别
  442. * @return mixed
  443. * @throws \yii\web\HttpException
  444. */
  445. public function actionDecRole() {
  446. $data = DecRole::lists('', [], [
  447. 'orderBy' => 'SORT ASC'
  448. ]);
  449. return static::notice($data);
  450. }
  451. /**
  452. * 修改报单中心级别
  453. * @return mixed
  454. * @throws \yii\web\HttpException
  455. */
  456. public function actionDecRoleEdit() {
  457. $id = Yii::$app->request->get('id');
  458. if (Yii::$app->request->isPost) {
  459. return static::edit(DecRoleForm::class, '报单中心级别修改成功', null, null, null, function () {
  460. DecRole::updateToCache();
  461. });
  462. }
  463. $oneData = DecRole::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  464. return static::notice($oneData);
  465. }
  466. /**
  467. * 添加会员级别
  468. * @return mixed
  469. * @throws \yii\web\HttpException
  470. */
  471. public function actionDecLevelAdd() {
  472. if (Yii::$app->request->isPost) {
  473. return static::edit(DecLevelForm::class, '会员级别添加成功', null, null, null, function () {
  474. DeclarationLevel::updateToCache();
  475. // Log::adminHandle('添加会员级别', 1);
  476. });
  477. }
  478. return static::notice('非发请求', 405);
  479. }
  480. /**
  481. * 修改会员级别
  482. * @return mixed
  483. * @throws \yii\web\HttpException
  484. */
  485. public function actionDecLevelEdit() {
  486. $id = Yii::$app->request->get('id');
  487. if (Yii::$app->request->isPost) {
  488. return static::edit(DecLevelForm::class, '会员级别修改成功', null, null, null, function () {
  489. DeclarationLevel::updateToCache();
  490. // Log::adminHandle('编辑报单级别参数', 1);
  491. });
  492. }
  493. $oneData = DeclarationLevel::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  494. return static::notice($oneData);
  495. }
  496. /**
  497. * 删除会员级别
  498. * @return mixed
  499. * @throws \yii\db\Exception
  500. * @throws \yii\web\HttpException
  501. */
  502. public function actionDecLevelDelete() {
  503. return static::delete(DeclarationLevel::class, '', function ($selected) {
  504. DeclarationLevel::updateToCache();
  505. // Log::adminHandle('删除报单级别', 1);
  506. });
  507. }
  508. /**
  509. * 查看会员聘级
  510. * @return mixed
  511. * @throws \yii\web\HttpException
  512. */
  513. public function actionEmpLevel() {
  514. $data = EmployLevel::lists('', [], [
  515. 'select' => 'E.*, ME.LEVEL_NAME AS MIN_EMPLOY_LEVEL_NAME',
  516. 'from' => EmployLevel::tableName() . ' AS E',
  517. 'join' => [
  518. ['LEFT JOIN', EmployLevel::tableName() . ' AS ME', 'ME.ID=E.MIN_EMPLOY_LEVEL']
  519. ],
  520. 'orderBy' => 'E.SORT ASC, E.CREATED_AT ASC'
  521. ]);
  522. return static::notice($data);
  523. }
  524. /**
  525. * 添加会员聘级
  526. * @return mixed
  527. * @throws \yii\web\HttpException
  528. */
  529. public function actionEmpLevelAdd() {
  530. if (Yii::$app->request->isPost) {
  531. return static::edit(EmployLevelForm::class, '会员聘级添加成功', null, null, null, function () {
  532. EmployLevel::updateToCache();
  533. // Log::adminHandle('添加会员聘级', 1);
  534. });
  535. }
  536. // 获取所有聘级,以供选择
  537. $allLevel = EmployLevel::find()->where('1=1')->orderBy('SORT ASC')->asArray()->all();
  538. return static::notice($allLevel);
  539. }
  540. /**
  541. * 修改聘级
  542. * @return mixed
  543. * @throws \yii\web\HttpException
  544. */
  545. public function actionEmpLevelEdit() {
  546. $id = Yii::$app->request->get('id');
  547. if (Yii::$app->request->isPost) {
  548. return static::edit(EmployLevelForm::class, '会员聘级修改成功', null, null, null, function () {
  549. EmployLevel::updateToCache();
  550. // Log::adminHandle('编辑会员聘级', 1);
  551. });
  552. }
  553. $oneData = EmployLevel::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  554. // 获取所有聘级,以供选择
  555. $allLevel = EmployLevel::find()->where('1=1')->orderBy('SORT ASC')->asArray()->all();
  556. $oneData['allLevel'] = $allLevel;
  557. return static::notice($oneData);
  558. }
  559. /**
  560. * 删除聘级
  561. * @return mixed
  562. * @throws \yii\db\Exception
  563. * @throws \yii\web\HttpException
  564. */
  565. public function actionEmpLevelDelete() {
  566. return static::delete(EmployLevel::class, '', function ($selected) {
  567. EmployLevel::updateToCache();
  568. // Log::adminHandle('删除会员聘级', 1);
  569. });
  570. }
  571. /**
  572. * 查看短信模板
  573. * @return mixed
  574. * @throws \yii\web\HttpException
  575. */
  576. public function actionSmsTemplate() {
  577. $data = SmsTemplate::lists('', [], ['orderBy' => 'CREATED_AT ASC']);
  578. return static::notice($data);
  579. }
  580. /**
  581. * 编辑短信模板
  582. * @return mixed
  583. * @throws \yii\web\HttpException
  584. */
  585. public function actionSmsTemplateEdit() {
  586. $id = Yii::$app->request->get('id');
  587. if (Yii::$app->request->isPost) {
  588. return parent::edit(SmsTemplateForm::class, '短信模板编辑成功', null, null, null, function () {
  589. SmsTemplate::updateDecToCache();
  590. SmsTemplate::updateEmpToCache();
  591. // Log::adminHandle('编辑短信模板', 1);
  592. });
  593. }
  594. $oneData = SmsTemplate::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  595. return static::notice(['oneData' => $oneData]);
  596. }
  597. /**
  598. * 提现金额等级
  599. * @return mixed
  600. * @throws \yii\web\HttpException
  601. */
  602. public function actionWithdrawLevel() {
  603. $data = WithdrawLevel::lists('', [], ['orderBy' => 'MIN_AMOUNT ASC']);
  604. return static::notice($data);
  605. }
  606. /**
  607. * 添加提现金额等级
  608. * @return mixed
  609. * @throws \yii\web\HttpException
  610. */
  611. public function actionWithdrawLevelAdd() {
  612. if (Yii::$app->request->isPost) {
  613. return static::edit(WithdrawLevelForm::class, '提现金额等级添加成功', null, null, null, function () {
  614. WithdrawLevel::updateToCache();
  615. // Log::adminHandle('添加提现金额等级', 1);
  616. });
  617. }
  618. }
  619. /**
  620. * 修改提现金额等级
  621. * @return mixed
  622. * @throws \yii\web\HttpException
  623. */
  624. public function actionWithdrawLevelEdit() {
  625. $id = Yii::$app->request->get('id');
  626. if (Yii::$app->request->isPost) {
  627. return static::edit(WithdrawLevelForm::class, '提现金额等级修改成功', null, null, null, function () {
  628. WithdrawLevel::updateToCache();
  629. // Log::adminHandle('编辑提现金额等级', 1);
  630. });
  631. }
  632. $oneData = WithdrawLevel::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  633. return static::notice($oneData);
  634. }
  635. /**
  636. * 删除提现金额等级
  637. * @return mixed
  638. * @throws \yii\db\Exception
  639. * @throws \yii\web\HttpException
  640. */
  641. public function actionWithdrawLevelDelete() {
  642. return static::delete(WithdrawLevel::class, '', function ($selected) {
  643. WithdrawLevel::updateToCache();
  644. });
  645. }
  646. /**
  647. * 注册类型
  648. * @return mixed
  649. * @throws \yii\web\HttpException
  650. */
  651. public function actionRegType() {
  652. $data = RegType::lists('', [], [
  653. 'orderBy' => 'SORT ASC, CREATED_AT ASC'
  654. ]);
  655. return static::notice($data);
  656. }
  657. /**
  658. * 获取注册类型
  659. * @return mixed
  660. * @throws \yii\web\HttpException
  661. */
  662. public function actionRegTypeGet() {
  663. $id = Yii::$app->request->get('id');
  664. $regType = RegType::findOneAsArray('ID=:ID', [':ID' => $id]);
  665. if (!$regType) {
  666. return static::notice('数据不存在', 400);
  667. }
  668. return static::notice(['id' => $regType['ID'], 'typeName' => $regType['TYPE_NAME'], 'isPact' => $regType['IS_PACT'], 'monthAmount' => $regType['MONTH_LIMIT_AMOUNT'], 'yearAmount' => $regType['YEAR_LIMIT_AMOUNT'], 'remark' => $regType['REMARK']]);
  669. }
  670. /**
  671. * 修改注册类型
  672. * @return mixed
  673. * @throws \yii\web\HttpException
  674. */
  675. public function actionRegTypeEdit() {
  676. $id = Yii::$app->request->get('id');
  677. if (Yii::$app->request->isPost) {
  678. $formModel = new RegTypeForm();
  679. $formModel->scenario = 'edit';
  680. $formModel->id = $id;
  681. if ($formModel->load(Yii::$app->request->post(), '') && $result = $formModel->edit()) {
  682. // Log::adminHandle('修改注册类型,ID为:' . $result['ID']);
  683. return static::notice('修改注册类型成功');
  684. } else {
  685. return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
  686. }
  687. }
  688. return static::notice('非法请求', 400);
  689. }
  690. /**
  691. * 获取服务协议
  692. * @return mixed
  693. * @throws \yii\web\HttpException
  694. */
  695. public function actionPactGet() {
  696. $path = \Yii::getAlias('@common/runtime/datas/pact.php');
  697. if (!file_exists($path)) {
  698. $oneData = '';
  699. } else {
  700. $oneData = include $path;
  701. }
  702. return static::notice($oneData);
  703. }
  704. /**
  705. * 获取服务协议
  706. * @return mixed
  707. * @throws \yii\base\InvalidConfigException
  708. * @throws \yii\web\HttpException
  709. */
  710. public function actionPactEdit() {
  711. $path = \Yii::getAlias('@common/runtime/datas/pact.php');
  712. $post = Yii::$app->request->post();
  713. if (!isset($post['CONTENT']) || empty($post['CONTENT'])) {
  714. return static::notice('请输入协议内容', 400);
  715. }
  716. $now = Date::nowTime();
  717. $data = [
  718. 'UPDATED_AT' => $now,
  719. 'CONTENT' => addslashes($post['CONTENT']),
  720. 'ADM_NAME' => \Yii::$app->user->id,
  721. ];
  722. // Log::adminHandle('更新服务协议');
  723. $date = \Yii::$app->formatter->asDatetime($now);
  724. $content = "<?php" . PHP_EOL . "/**
  725. * 配置文件
  726. * @date {$date}
  727. */" . PHP_EOL;
  728. $content .= "return ";
  729. $content .= var_export($data, true);
  730. $content .= ";";
  731. file_put_contents($path, $content, LOCK_EX);
  732. return static::notice('更新服务协议成功');
  733. }
  734. }