You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

204 lines
6.0 KiB

<?php
/**
* Created by IntelliJ IDEA.
* User: luwei
* Date: 2017/10/6
* Time: 10:20
*/
namespace app\modules\admin\controllers;
use app\models\Admin;
use app\models\common\admin\log\CommonActionLog;
use app\models\common\admin\store\CommonAppDisabled;
use app\models\Store;
use app\modules\admin\models\app\AppDisabledForm;
use app\modules\admin\models\AppEditForm;
use app\modules\admin\models\RemovalForm;
use yii\data\Pagination;
use Yii;
class AppController extends Controller
{
//我的小程序商城
public function actionIndex()
{
$query = Store::find()->where([
'admin_id' => \Yii::$app->admin->id,
'is_delete' => 0,
'is_recycle' => 0,
]);
$count = $query->count();
$pagination = new Pagination(['totalCount' => $count]);
$list = $query->limit($pagination->limit)->offset($pagination->offset)->orderBy('id DESC')->all();
return $this->render('index', [
'list' => $list,
'pagination' => $pagination,
'app_max_count' => \Yii::$app->admin->identity->app_max_count,
'app_count' => Store::find()->where([
'admin_id' => \Yii::$app->admin->id,
'is_delete' => 0,
])->count(),
]);
}
//子账户的小程序商城
public function actionOtherApp($keyword = null)
{
$query = Store::find()->alias('s')->where([
'AND',
['!=', 's.admin_id', \Yii::$app->admin->id],
['s.is_delete' => 0],
['a.is_delete' => 0],
])->leftJoin(['a' => Admin::tableName()], 's.admin_id=a.id');
;
if ($keyword = trim($keyword)) {
$query->andWhere([
'OR',
['LIKE', 's.name', $keyword],
['LIKE', 'a.username', $keyword],
]);
}
$count = $query->count();
$pagination = new Pagination(['totalCount' => $count]);
$list = $query->limit($pagination->limit)->offset($pagination->offset)->orderBy('id DESC')
->select('s.*,a.username')->asArray()->all();
return $this->render('other-app', [
'list' => $list,
'keyword' => $keyword,
'pagination' => $pagination,
]);
}
//新增、编辑小程序
public function actionEdit()
{
$form = new AppEditForm();
$form->attributes = \Yii::$app->request->post();
$form->admin_id = \Yii::$app->admin->id;
return $form->save();
}
//进入小程序后台
public function actionEntry($id)
{
$condition = [
'id' => $id,
'admin_id' => \Yii::$app->admin->id,
'is_delete' => 0,
];
if (\Yii::$app->admin->id == 1) {
unset($condition['admin_id']);
}
$store = Store::findOne($condition);
if (!$store) {
\Yii::$app->response->redirect(\Yii::$app->request->referrer)->send();
return;
}
\Yii::$app->session->set('store_id', $store->id);
CommonActionLog::storeActionLog('', 'login', 0, [], \Yii::$app->admin->id);
\Yii::$app->response->redirect(\Yii::$app->urlManager->createUrl(['mch/store/index']))->send();
}
//删除小程序商城
public function actionDelete($id)
{
$condition = [
'id' => $id,
'admin_id' => \Yii::$app->admin->id,
'is_delete' => 0,
];
if (\Yii::$app->admin->id == 1) {
unset($condition['admin_id']);
}
$store = Store::findOne($condition);
if ($store) {
$store->is_delete = 1;
$store->save();
}
return [
'code' => 0,
'msg' => '操作成功',
];
}
//小程序回收站
public function actionRecycle()
{
$query = Store::find()->where([
'admin_id' => \Yii::$app->admin->id,
'is_delete' => 0,
'is_recycle' => 1,
]);
$count = $query->count();
$pagination = new Pagination(['totalCount' => $count]);
$list = $query->limit($pagination->limit)->offset($pagination->offset)->orderBy('id DESC')->all();
return $this->render('recycle', [
'list' => $list,
'pagination' => $pagination,
]);
}
public function actionSetRecycle($id, $action)
{
$condition = [
'id' => $id,
'admin_id' => \Yii::$app->admin->id,
'is_delete' => 0,
];
if (\Yii::$app->admin->id == 1) {
unset($condition['admin_id']);
}
$store = Store::findOne($condition);
if ($store) {
$store->is_recycle = $action ? 1 : 0;
$store->save();
}
return [
'code' => 0,
'msg' => '操作成功',
];
}
public function actionOtherUser($keyword = null)
{
$query = Admin::find()->where(['is_delete' => 0]);
if (trim($keyword)) {
$query->andWhere(['like', 'username', $keyword]);
}
$list = $query->limit(10)->asArray()->all();
return [
'code' => 0,
'msg' => 'success',
'data' => [
'list' => $list
]
];
}
public function actionRemoval()
{
if (\Yii::$app->request->isAjax) {
$form = new RemovalForm();
$form->attributes = \Yii::$app->request->get();
return $form->save();
}
}
/**
* 小程序商城 禁用|解禁
* @return array|mixed
*/
public function actionDisabled()
{
$data = Yii::$app->request->get();
$common = new CommonAppDisabled();
$common->attributes = $data;
$disabled = $common->disabled();
return $disabled;
}
}