AppController.php 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: linzhida
  5. * Date: 2024/6/4
  6. * Time: 5:11 下午
  7. */
  8. namespace backend\modules\mall\controllers;
  9. use backend\controllers\MallController;
  10. use common\helpers\StringHelper;
  11. use common\enums\AppTypeEnum;
  12. use common\enums\StatusEnum;
  13. use common\models\common\AppVersion;
  14. use Yii;
  15. use yii\db\Exception;
  16. class AppController extends MallController
  17. {
  18. /**
  19. * app版本列表
  20. */
  21. public function actionVersionList()
  22. {
  23. $request = Yii::$app->request;
  24. if ($request->isAjax) {
  25. if ($request->isGet) {
  26. $params = Yii::$app->request->get();
  27. $where = [
  28. ['mall_id' => $this->mall_id],
  29. ['status' => [StatusEnum::ENABLED, StatusEnum::DISABLED]],
  30. ];
  31. if (!empty($params['app_type'])) $where[] = ['app_type' => $params['app_type']];
  32. if (!empty($params['status']) || is_numeric($params['status'])) $where[] = ['status' => $params['status']];
  33. // print_r(111);exit;
  34. $data = AppVersion::listPage([
  35. 'where' => $where,
  36. 'order' => 'id desc',
  37. 'page' => $params['page'],
  38. 'limit' => $params['page_size'] ?? 15,
  39. ]);
  40. $appType = AppTypeEnum::getAppType();
  41. $data['type'] = $appType;
  42. $this->success('获取成功',$data);
  43. } else {
  44. $params = Yii::$app->request->post();
  45. $res = Yii::$app->services->validate->validate($params, [
  46. [['app_type', 'version', 'content','download_url', 'edition_force', 'package_type', 'version_num'], 'required'],
  47. [['app_type', 'version', 'content','download_url'], 'string'],
  48. [['edition_force', 'package_type', 'version_num'], 'number'],
  49. ]);
  50. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  51. $params['mall_id'] = $this->mall_id;
  52. $params['status'] = StatusEnum::ENABLED;
  53. // $params['version_num'] = StringHelper::getVersionNum($params['version']);
  54. if (empty($params['version_num'])) return $this->error('版本号格式错误');
  55. $newVersionData = AppVersion::find()->select('version_num')->where(['status' => StatusEnum::ENABLED, 'mall_id' => $this->mall_id, 'app_type' => $params['app_type']])->orderBy('version_num desc')->scalar();
  56. if (!empty($newVersionData) && $params['version_num'] <= $newVersionData) return $this->error('上传app版本号不能低于已上传app版本号');
  57. $res = AppVersion::setData($params);
  58. if ($res) $this->success('操作成功');
  59. $this->error('操作失败');
  60. }
  61. // // return '1111';
  62. // $version = '1.0.1.1';
  63. // $version_num = self::getVersionNum($version);
  64. // return $version_num;
  65. }
  66. return $this->render($this->action->id);
  67. }
  68. /**
  69. * 修改app版本状态
  70. */
  71. public function actionDoHandle()
  72. {
  73. $params = Yii::$app->request->post();
  74. $res = Yii::$app->services->validate->validate($params, [
  75. [['id', 'type'], 'required'],
  76. [['id'], 'integer']
  77. ]);
  78. if ($res === false) $this->error(Yii::$app->services->validate->getErrorMessage());
  79. switch ($params['type']) {
  80. case 'enable':
  81. $status = 1;
  82. break;
  83. case 'disable':
  84. $status = 0;
  85. break;
  86. case 'delete':
  87. $status = -1;
  88. break;
  89. }
  90. if (empty($status) && !is_numeric($status)) $this->error('请选择操作类型');
  91. $res = AppVersion::updateAll(['status' => $status], ['id' => $params['id'], 'mall_id' => $this->mall_id]);
  92. if ($res) $this->success('操作成功');
  93. $this->error(AppVersion::getStaticError());
  94. }
  95. }