ConfigController.php 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848
  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. public function actionMonthLimit() {
  441. if (Yii::$app->request->isPost) {
  442. $postData = Yii::$app->request->post();
  443. $month = $postData['month'];
  444. $ret = Config::updateAll(['VALUE' => $month, 'UPDATED_AT' => Date::nowTime()], "CONFIG_NAME=:CONFIG_NAME", [':CONFIG_NAME' => 'observePeriodLimit']);
  445. if ($ret) {
  446. return static::notice('更新观察期成功');
  447. } else {
  448. return static::notice('更新观察期失败,请重试');
  449. }
  450. }
  451. $data = Config::find()
  452. ->where("CONFIG_NAME='observePeriodLimit'")
  453. ->asArray()
  454. ->one();
  455. $isSwitchUpgrade = Config::find()
  456. ->where("CONFIG_NAME='isOpenUpgrade'")
  457. ->asArray()
  458. ->one();
  459. return static::notice([
  460. 'observe' => $data,
  461. 'isOpenUpgrade' => $isSwitchUpgrade
  462. ]);
  463. }
  464. // 开关会员升级单功能
  465. public function actionOpenUpgrade() {
  466. if (Yii::$app->request->isPost) {
  467. $postData = Yii::$app->request->post();
  468. $isOpen = $postData['isOpen'];
  469. $ret = Config::updateAll(
  470. ['VALUE' => $isOpen, 'UPDATED_AT' => Date::nowTime()],
  471. "CONFIG_NAME=:CONFIG_NAME",
  472. [':CONFIG_NAME' => 'isOpenUpgrade']
  473. );
  474. if ($ret) {
  475. $msg = $isOpen == 1 ? '开启' : '关闭';
  476. return static::notice("$msg,操作成功");
  477. } else {
  478. return static::notice('操作失败,请重试');
  479. }
  480. }
  481. return static::notice('非法请求');
  482. }
  483. /**
  484. * 查看报单中心级别
  485. * @return mixed
  486. * @throws \yii\web\HttpException
  487. */
  488. public function actionDecRole() {
  489. $data = DecRole::lists('', [], [
  490. 'orderBy' => 'SORT ASC'
  491. ]);
  492. return static::notice($data);
  493. }
  494. /**
  495. * 修改报单中心级别
  496. * @return mixed
  497. * @throws \yii\web\HttpException
  498. */
  499. public function actionDecRoleEdit() {
  500. $id = Yii::$app->request->get('id');
  501. if (Yii::$app->request->isPost) {
  502. return static::edit(DecRoleForm::class, '报单中心级别修改成功', null, null, null, function () {
  503. DecRole::updateToCache();
  504. });
  505. }
  506. $oneData = DecRole::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  507. return static::notice($oneData);
  508. }
  509. /**
  510. * 添加会员级别
  511. * @return mixed
  512. * @throws \yii\web\HttpException
  513. */
  514. public function actionDecLevelAdd() {
  515. if (Yii::$app->request->isPost) {
  516. return static::edit(DecLevelForm::class, '会员级别添加成功', null, null, null, function () {
  517. DeclarationLevel::updateToCache();
  518. // Log::adminHandle('添加会员级别', 1);
  519. });
  520. }
  521. return static::notice('非发请求', 405);
  522. }
  523. /**
  524. * 修改会员级别
  525. * @return mixed
  526. * @throws \yii\web\HttpException
  527. */
  528. public function actionDecLevelEdit() {
  529. $id = Yii::$app->request->get('id');
  530. if (Yii::$app->request->isPost) {
  531. return static::edit(DecLevelForm::class, '会员级别修改成功', null, null, null, function () {
  532. DeclarationLevel::updateToCache();
  533. // Log::adminHandle('编辑报单级别参数', 1);
  534. });
  535. }
  536. $oneData = DeclarationLevel::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  537. return static::notice($oneData);
  538. }
  539. /**
  540. * 删除会员级别
  541. * @return mixed
  542. * @throws \yii\db\Exception
  543. * @throws \yii\web\HttpException
  544. */
  545. public function actionDecLevelDelete() {
  546. return static::delete(DeclarationLevel::class, '', function ($selected) {
  547. DeclarationLevel::updateToCache();
  548. // Log::adminHandle('删除报单级别', 1);
  549. });
  550. }
  551. /**
  552. * 查看会员聘级
  553. * @return mixed
  554. * @throws \yii\web\HttpException
  555. */
  556. public function actionEmpLevel() {
  557. $data = EmployLevel::lists('', [], [
  558. 'select' => 'E.*, ME.LEVEL_NAME AS MIN_EMPLOY_LEVEL_NAME',
  559. 'from' => EmployLevel::tableName() . ' AS E',
  560. 'join' => [
  561. ['LEFT JOIN', EmployLevel::tableName() . ' AS ME', 'ME.ID=E.MIN_EMPLOY_LEVEL']
  562. ],
  563. 'orderBy' => 'E.SORT ASC, E.CREATED_AT ASC'
  564. ]);
  565. return static::notice($data);
  566. }
  567. /**
  568. * 添加会员聘级
  569. * @return mixed
  570. * @throws \yii\web\HttpException
  571. */
  572. public function actionEmpLevelAdd() {
  573. if (Yii::$app->request->isPost) {
  574. return static::edit(EmployLevelForm::class, '会员聘级添加成功', null, null, null, function () {
  575. EmployLevel::updateToCache();
  576. // Log::adminHandle('添加会员聘级', 1);
  577. });
  578. }
  579. // 获取所有聘级,以供选择
  580. $allLevel = EmployLevel::find()->where('1=1')->orderBy('SORT ASC')->asArray()->all();
  581. return static::notice($allLevel);
  582. }
  583. /**
  584. * 修改聘级
  585. * @return mixed
  586. * @throws \yii\web\HttpException
  587. */
  588. public function actionEmpLevelEdit() {
  589. $id = Yii::$app->request->get('id');
  590. if (Yii::$app->request->isPost) {
  591. return static::edit(EmployLevelForm::class, '会员聘级修改成功', null, null, null, function () {
  592. EmployLevel::updateToCache();
  593. // Log::adminHandle('编辑会员聘级', 1);
  594. });
  595. }
  596. $oneData = EmployLevel::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  597. // 获取所有聘级,以供选择
  598. $allLevel = EmployLevel::find()->where('1=1')->orderBy('SORT ASC')->asArray()->all();
  599. $oneData['allLevel'] = $allLevel;
  600. return static::notice($oneData);
  601. }
  602. /**
  603. * 删除聘级
  604. * @return mixed
  605. * @throws \yii\db\Exception
  606. * @throws \yii\web\HttpException
  607. */
  608. public function actionEmpLevelDelete() {
  609. return static::delete(EmployLevel::class, '', function ($selected) {
  610. EmployLevel::updateToCache();
  611. // Log::adminHandle('删除会员聘级', 1);
  612. });
  613. }
  614. /**
  615. * 查看短信模板
  616. * @return mixed
  617. * @throws \yii\web\HttpException
  618. */
  619. public function actionSmsTemplate() {
  620. $data = SmsTemplate::lists('', [], ['orderBy' => 'CREATED_AT ASC']);
  621. return static::notice($data);
  622. }
  623. /**
  624. * 编辑短信模板
  625. * @return mixed
  626. * @throws \yii\web\HttpException
  627. */
  628. public function actionSmsTemplateEdit() {
  629. $id = Yii::$app->request->get('id');
  630. if (Yii::$app->request->isPost) {
  631. return parent::edit(SmsTemplateForm::class, '短信模板编辑成功', null, null, null, function () {
  632. SmsTemplate::updateDecToCache();
  633. SmsTemplate::updateEmpToCache();
  634. // Log::adminHandle('编辑短信模板', 1);
  635. });
  636. }
  637. $oneData = SmsTemplate::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  638. return static::notice(['oneData' => $oneData]);
  639. }
  640. /**
  641. * 提现金额等级
  642. * @return mixed
  643. * @throws \yii\web\HttpException
  644. */
  645. public function actionWithdrawLevel() {
  646. $data = WithdrawLevel::lists('', [], ['orderBy' => 'MIN_AMOUNT ASC']);
  647. return static::notice($data);
  648. }
  649. /**
  650. * 添加提现金额等级
  651. * @return mixed
  652. * @throws \yii\web\HttpException
  653. */
  654. public function actionWithdrawLevelAdd() {
  655. if (Yii::$app->request->isPost) {
  656. return static::edit(WithdrawLevelForm::class, '提现金额等级添加成功', null, null, null, function () {
  657. WithdrawLevel::updateToCache();
  658. // Log::adminHandle('添加提现金额等级', 1);
  659. });
  660. }
  661. }
  662. /**
  663. * 修改提现金额等级
  664. * @return mixed
  665. * @throws \yii\web\HttpException
  666. */
  667. public function actionWithdrawLevelEdit() {
  668. $id = Yii::$app->request->get('id');
  669. if (Yii::$app->request->isPost) {
  670. return static::edit(WithdrawLevelForm::class, '提现金额等级修改成功', null, null, null, function () {
  671. WithdrawLevel::updateToCache();
  672. // Log::adminHandle('编辑提现金额等级', 1);
  673. });
  674. }
  675. $oneData = WithdrawLevel::find()->where('ID=:ID', [':ID' => $id])->asArray()->one();
  676. return static::notice($oneData);
  677. }
  678. /**
  679. * 删除提现金额等级
  680. * @return mixed
  681. * @throws \yii\db\Exception
  682. * @throws \yii\web\HttpException
  683. */
  684. public function actionWithdrawLevelDelete() {
  685. return static::delete(WithdrawLevel::class, '', function ($selected) {
  686. WithdrawLevel::updateToCache();
  687. });
  688. }
  689. /**
  690. * 注册类型
  691. * @return mixed
  692. * @throws \yii\web\HttpException
  693. */
  694. public function actionRegType() {
  695. $data = RegType::lists('', [], [
  696. 'orderBy' => 'SORT ASC, CREATED_AT ASC'
  697. ]);
  698. return static::notice($data);
  699. }
  700. /**
  701. * 获取注册类型
  702. * @return mixed
  703. * @throws \yii\web\HttpException
  704. */
  705. public function actionRegTypeGet() {
  706. $id = Yii::$app->request->get('id');
  707. $regType = RegType::findOneAsArray('ID=:ID', [':ID' => $id]);
  708. if (!$regType) {
  709. return static::notice('数据不存在', 400);
  710. }
  711. 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']]);
  712. }
  713. /**
  714. * 修改注册类型
  715. * @return mixed
  716. * @throws \yii\web\HttpException
  717. */
  718. public function actionRegTypeEdit() {
  719. $id = Yii::$app->request->get('id');
  720. if (Yii::$app->request->isPost) {
  721. $formModel = new RegTypeForm();
  722. $formModel->scenario = 'edit';
  723. $formModel->id = $id;
  724. if ($formModel->load(Yii::$app->request->post(), '') && $result = $formModel->edit()) {
  725. // Log::adminHandle('修改注册类型,ID为:' . $result['ID']);
  726. return static::notice('修改注册类型成功');
  727. } else {
  728. return static::notice(Form::formatErrorsForApi($formModel->getErrors()), 400);
  729. }
  730. }
  731. return static::notice('非法请求', 400);
  732. }
  733. /**
  734. * 获取服务协议
  735. * @return mixed
  736. * @throws \yii\web\HttpException
  737. */
  738. public function actionPactGet() {
  739. $path = \Yii::getAlias('@common/runtime/datas/pact.php');
  740. if (!file_exists($path)) {
  741. $oneData = '';
  742. } else {
  743. $oneData = include $path;
  744. }
  745. return static::notice($oneData);
  746. }
  747. /**
  748. * 获取服务协议
  749. * @return mixed
  750. * @throws \yii\base\InvalidConfigException
  751. * @throws \yii\web\HttpException
  752. */
  753. public function actionPactEdit() {
  754. $path = \Yii::getAlias('@common/runtime/datas/pact.php');
  755. $post = Yii::$app->request->post();
  756. if (!isset($post['CONTENT']) || empty($post['CONTENT'])) {
  757. return static::notice('请输入协议内容', 400);
  758. }
  759. $now = Date::nowTime();
  760. $data = [
  761. 'UPDATED_AT' => $now,
  762. 'CONTENT' => addslashes($post['CONTENT']),
  763. 'ADM_NAME' => \Yii::$app->user->id,
  764. ];
  765. // Log::adminHandle('更新服务协议');
  766. $date = \Yii::$app->formatter->asDatetime($now);
  767. $content = "<?php" . PHP_EOL . "/**
  768. * 配置文件
  769. * @date {$date}
  770. */" . PHP_EOL;
  771. $content .= "return ";
  772. $content .= var_export($data, true);
  773. $content .= ";";
  774. file_put_contents($path, $content, LOCK_EX);
  775. return static::notice('更新服务协议成功');
  776. }
  777. /**
  778. * 汇率配置.
  779. * @return mixed
  780. * @throws \yii\db\Exception
  781. * @throws \yii\web\HttpException
  782. */
  783. public function actionExchangeRate() {
  784. $form = new ConfigForm();
  785. if (Yii::$app->request->post() && $form->load(Yii::$app->request->post(), '')) {
  786. if ($form->updateExchangeRate()) {
  787. Config::updateToCache();
  788. return static::notice('更新汇率配置成功');
  789. } else {
  790. return static::notice(Form::formatErrorsForApi($form->getErrors()), 422);
  791. }
  792. }
  793. $oneData = Config::find()->where('CONFIG_NAME=:CONFIG_NAME', [':CONFIG_NAME' => 'exchangeRate'])->asArray()->one();
  794. return static::notice($oneData);
  795. }
  796. }