ConfigController.php 30 KB

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