| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- <?php
- //namespace app\admin\controller;
- namespace app\admin\controller\pickup;
- use app\common\controller\Backend;
- use think\Db;
- /**
- * 礼包活动管理
- *
- * @icon fa fa-circle-o
- */
- class Package extends Backend {
- /**
- * GiftPackage模型对象
- * @var \app\admin\model\GiftPackage
- */
- protected $model = null;
- public function _initialize() {
- parent::_initialize();
- $this->model = new \app\admin\model\pickup\Package;
- $this->view->assign("statusList", $this->model->getStatusList());
- }
- /**
- * 查看
- */
- public function index() {
- //设置过滤方法
- $this->request->filter(['strip_tags']);
- if ($this->request->isAjax()) {
- //如果发送的来源是Selectpage,则转发到Selectpage
- if ($this->request->request('keyField')) {
- return $this->selectpage();
- }
- list($where, $sort, $order, $offset, $limit) = $this->buildparams();
- $total = $this->model
- ->where($where)
- ->order($sort, $order)
- ->count();
- $list = $this->model
- ->where($where)
- ->order($sort, $order)
- ->limit($offset, $limit)
- ->select();
- $list = collection($list)->toArray();
- $request = request();
- foreach ($list as $k => &$v) {
- $v['link'] = $request->domain() . "/addons/pickup#/pages/index/index?id=" . $v['id'];
- $v['qrcodelink'] = urlencode($v['link']);
- $v['domain'] = $request->domain();
- $v['qrcode'] = $v['domain'] . "/addons/pickup/index/qrcode?text=" . $v['qrcodelink'] . "&labelhalign=0&labelvalign=3&foreground=%23000000&background=%23ffffff&size=300&padding=10&labelfontsize=14&errorcorrection=quartile";
- }
- $result = array("total" => $total, "rows" => $list);
- return json($result);
- }
- return $this->view->fetch();
- }
- /**
- * 设置活动礼包中商品
- */
- public function setgoods($ids = null) {
- $row = $this->model->get($ids);
- if (!$row) {
- $this->error(__('No Results were found'));
- }
- $goods_ids_list = json_decode($row['goods_list'], true);
- if (!$goods_ids_list) {
- $goods_ids_list = [];
- }
- $modelGiftGoods = new \app\admin\model\pickup\Goods;
- //设置过滤方法
- $this->request->filter(['strip_tags']);
- if ($this->request->isAjax()) {
- //如果发送的来源是Selectpage,则转发到Selectpage
- if ($this->request->request('keyField')) {
- return $this->selectpage();
- }
- list($where, $sort, $order, $offset, $limit) = $this->buildparams();
- $total = $modelGiftGoods
- ->where($where)
- ->order($sort, $order)
- ->count();
- $list = $modelGiftGoods
- ->where($where)
- ->order($sort, $order)
- ->limit($offset, $limit)
- ->select();
- $list = collection($list)->toArray();
- foreach ($list as $k => &$v) {
- $v['isselected'] = false;
- if (in_array($v['id'], $goods_ids_list)) {
- $v['isselected'] = true;
- }
- }
- $result = array("total" => $total, "rows" => $list);
- return json($result);
- }
- $this->view->assign("goods_ids_list", $goods_ids_list);
- $this->view->assign("row", $row);
- return $this->view->fetch();
- }
- /**
- * 保存活动礼包中商品
- */
- public function savegoods($gpid = null, $ids = null) {
- $gpid = $gpid ? $gpid : $this->request->param("gpid");
- $ids = $ids ? $ids : $this->request->param("ids");
- if ($ids && $gpid) {
- if ($this->request->has('params')) {
- parse_str($this->request->post("params"), $values);
- $values = $this->auth->isSuperAdmin() ? $values : array_intersect_key($values, array_flip(is_array($this->multiFields) ? $this->multiFields : explode(',', $this->multiFields)));
- //检查gp是否存在
- $row = $this->model->get($gpid);
- if (!$row) {
- $this->error(__('No Results were found'));
- }
- //检查商品是否存在
- $modelGiftGoods = new \app\admin\model\pickup\Goods;
- $goods = $modelGiftGoods->get($ids);
- if (!$goods) {
- $this->error(__('No Results were found'));
- }
- //给商品列表字段增加或者减少商品ID
- $goods_ids_list = json_decode($row['goods_list'], true);
- (!$goods_ids_list) && $goods_ids_list = [];
- $new_list = [];
- if (in_array($ids, $goods_ids_list)) {
- foreach ($goods_ids_list as $k => $v) {
- if ($v == $ids) {
- if (isset($values['isselected'])&&$values['isselected'] == 1) {
- $new_list[] = $v;
- }
- } else {
- $new_list[] = $v;
- }
- }
- } else {
- $goods_ids_list[] = $ids;
- $new_list = $goods_ids_list;
- }
- Db::startTrans();
- try {
- $row->goods_list = json_encode($new_list);
- $row->save();
- Db::commit();
- } catch (PDOException $e) {
- Db::rollback();
- $this->error($e->getMessage());
- } catch (Exception $e) {
- Db::rollback();
- $this->error($e->getMessage());
- }
- $this->success();
- }
- }
- $this->error(__('Parameter %s can not be empty', 'ids'));
- }
- }
|