| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- <?php
- namespace backend\modules\admin\controllers;
- use backend\modules\common\logic\DiyTemplateLogic;
- use backend\controllers\AdminController;
- use common\enums\DiyEnum;
- use common\enums\StatusEnum;
- use common\models\diy\DiyComponents;
- use common\models\diy\DiyMallTemplate;
- use common\models\diy\DiyTemplate;
- use yii\db\Exception;
- use yii\helpers\Json;
- use Yii;
- class TemplateController extends AdminController
- {
- /**
- *
- * 商城模板列表
- * @Author: lun
- * @DateTime: 2021/12/14 0014 17:38
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|string|void
- */
- public function actionMall()
- {
- if (Yii::$app->request->isAjax && Yii::$app->request->isGet) {
- $params = Yii::$app->request->get();
- // 检查提交的参数
- $res = Yii::$app->services->validate->validate($params,[
- [['route_type'], 'required'],
- [['title','template','route_type'], 'string'],
- [['title', 'page', 'limit'], 'safe'],
- [['cate_id','mid'], 'integer'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $data = DiyTemplateLogic::TemplateMarket($params);
- return $this->success('获取成功', $data);
- } else {
- return $this->render($this->action->id);
- }
- }
- /**
- * 新增或编辑
- * @Author: lun
- * @DateTime: 2021/12/14 0014 10:30
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|string|void
- */
- public function actionEdit()
- {
- $request = Yii::$app->request;
- if ($request->isAjax) {
- if ($request->isPost) {
- $params = $request->post();
- $res = Yii::$app->services->validate->validate($params,[
- [['id','cate_id'], 'integer'],
- [['content'], 'string'],
- [['content', 'title'], 'required'],
- [['id', 'cover'], 'safe'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $trans = Yii::$app->db->beginTransaction();
- try {
- if (empty($params['cate_id'])) return $this->error('请选择所属分类');
- // 将数组转为json字符串
- if (is_array($params['content'])) $params['content'] = Json::encode($params['content'],JSON_UNESCAPED_SLASHES);
- // 保存数据
- $params['setting'] = '[{"unit":"永久","money":"0","duration":"-1"}]';// 默认价格设置
- $params['is_on_sale'] = StatusEnum::DISABLED;
- $res = DiyTemplate::setData($params);
- if ($res == false) throw new Exception(DiyTemplate::getStaticError());
- $trans->commit();
- $this->success('保存成功');
- } catch (\Exception $e) {
- $trans->rollBack();
- \Yii::error('edit DiyController error:' . $e->getMessage());
- $this->error('编辑失败,msg:' . $e->getMessage());
- }
- } else {
- $params = $request->get();
- $res = Yii::$app->services->validate->validate($params,[
- [['id'], 'integer'],
- [['id'], 'safe']
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- try{
- if (isset($params['id'])) {
- // 查询页面
- $diypage = DiyTemplate::find()->where(['id' => $params['id']])->select(['id','cate_id', 'title', 'template','content','created_at'])->asArray()->one();
- if (empty($diypage))throw new \Exception("页面不存在");
- $template = $diypage['template'];// 获取该页面模板
- }
- // 根据分组获取组件
- $components = DiyComponents::getComponent(DiyEnum::getGroup($template ?: DiyEnum::CUSTOM_PAGE));
- $auth = $capital = [];
- // 获取分类
- $cate_arr = DiyEnum::getTemplateCate();
- $this->success('获取成功', compact('diypage', 'components', 'auth', 'capital', 'cate_arr'));
- } catch (\Exception $e) {
- $this->error('获取失败,msg:' . $e->getMessage());
- }
- }
- } else {
- return $this->render("@backend/modules/mall/views/diy/edit.php");
- }
- }
- /**
- * 设置
- * @Author: lun
- * @DateTime: 2021/12/14 0014 16:57
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|string|void
- */
- public function actionSetting()
- {
- $request = Yii::$app->request;
- if ($request->isAjax) {
- if ($request->isPost) {
- $params = $request->post('detail');
- $res = Yii::$app->services->validate->validate($params,[
- [['id','status'], 'integer'],
- [['title'], 'string'],
- [['id', 'title','setting'], 'required'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $trans = Yii::$app->db->beginTransaction();
- try {
- $params['setting'] = Json::encode($params['setting']);
- // 保存数据
- $res = DiyTemplate::setData($params);
- if ($res == false) throw new Exception(DiyTemplate::getStaticError());
- $trans->commit();
- $this->success('保存成功');
- } catch (\Exception $e) {
- $trans->rollBack();
- $this->error('编辑失败,msg:' . $e->getMessage());
- }
- } else {
- $params = $request->get();
- $res = Yii::$app->services->validate->validate($params,[
- [['id'], 'integer'],
- [['id'], 'required']
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- try{
- $template = DiyTemplate::find()->where(['id' => $params['id']])->select(['id','title', 'setting','status'])->asArray()->one();
- if (empty($template))throw new \Exception("页面不存在");
- $this->success('获取成功', $template);
- } catch (\Exception $e) {
- $this->error('获取失败,msg:' . $e->getMessage());
- }
- }
- } else {
- return $this->render($this->action->id);
- }
- }
- /**
- * 操作
- * @Author: lun
- * @DateTime: 2021/12/14 0014 18:37
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionHandle()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- $params = $request->post();
- $res = Yii::$app->services->validate->validate($params,[
- [['id','is_on_sale'], 'integer'],
- [['id', 'is_on_sale'], 'required'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $trans = Yii::$app->db->beginTransaction();
- try {
- // 保存数据
- $res = DiyTemplate::setData($params);
- if ($res == false) throw new Exception(DiyTemplate::getStaticError());
- $trans->commit();
- $this->success('编辑成功');
- } catch (\Exception $e) {
- $trans->rollBack();
- $this->error('编辑失败,msg:' . $e->getMessage());
- }
- }
- }
- /**
- * 删除模板
- * @Author: pan
- * @DateTime: 2024/4/1 0014 18:37
- * @Copyright: copyright (c) 2021 广东七件事集团
- * @return mixed|void
- */
- public function actionDelete()
- {
- $request = Yii::$app->request;
- if ($request->isAjax && $request->isPost) {
- $params = $request->post();
- $params['status'] = -1;
- $res = Yii::$app->services->validate->validate($params,[
- [['id', 'status'], 'integer'],
- [['id', 'status'], 'required'],
- ]);
- if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
- $trans = Yii::$app->db->beginTransaction();
- try {
- // 保存数据
- $res = DiyTemplate::setData($params);
- if ($res == false) throw new Exception(DiyTemplate::getStaticError());
- $trans->commit();
- $this->success('删除成功');
- } catch (\Exception $e) {
- $trans->rollBack();
- $this->error('删除失败,msg:' . $e->getMessage());
- }
- }
- }
- }
|