| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- /**
- * Created by PhpStorm.
- * Author: 芸众商城 www.yunzshop.com
- * Date: 2018/5/18
- * Time: 下午17:28
- */
- namespace app\backend\modules\enoughReduce\controllers;
- use app\backend\modules\goods\models\Goods;
- use app\common\components\BaseController;
- use app\common\helpers\Url;
- class FullPieceController extends BaseController
- {
- public function index()
- {
- $setting = \Setting::get('shop.fullPieceNew');
- if ($setting && $setting['fullPiece']) {
- $goodsIds = [];
- array_walk_recursive(array_column($setting['fullPiece'],'goods'), function($value) use (&$goodsIds) {
- array_push($goodsIds, $value);
- });
- $goods = collect(Goods::uniacid()
- ->select('id','title','thumb')
- ->where('status',1)
- ->whereIn('id',$goodsIds)
- ->get()->toArray());
- foreach ($setting['fullPiece'] as &$fullPiece) {
- $fullPiece['goods'] = array_values($goods->whereIn('id',$fullPiece['goods'])->all());
- }
- unset($fullPiece);
- }
- return view('goods.enoughReduce.full_piece.index', [
- 'setting' => json_encode($setting),
- ])->render();
- }
- public function getGoods()
- {
- $keyword = request()->keyword;
- if (!$keyword) {
- return $this->errorJson('请输入查询条件');
- }
- $model = Goods::uniacid()
- ->select('id','title','thumb')
- ->where('status',1);
- $model->where(function ($query) use ($keyword) {
- $query->where('yz_goods.id',$keyword)
- ->orWhere('title','like','%'.$keyword.'%');
- });
- $model = $model->whereIn('plugin_id',[0])
- ->orderBy('id', 'desc')->paginate(20);//平台
- foreach ($model as $goods) {
- $goods->thumb = yz_tomedia($goods->thumb);
- }
- return $this->successJson('ok',$model->toArray());
- }
- public function store()
- {
- $setting = request()->setting;
- $data = [
- "open" => $setting['open'] ? true : false,
- "fullPiece" => $setting['fullPiece'] ? : [],
- ];
- $has_goods = [];
- foreach ($data['fullPiece'] as $k=>$fullPiece) {
- foreach ($fullPiece['rules'] as $rule) {
- if (empty($rule['enough']) || empty($rule['reduce'])) {
- return $this->errorJson('规则中的条件以及折扣必填');
- }
- if ($fullPiece['discount_type'] == 1 && ($rule['reduce'] < 0 || $rule['reduce'] > 10)) {
- return $this->errorJson('折扣必须大于0折小于10折');
- }
- }
- if (empty($fullPiece['goods']) ) {
- return $this->errorJson('规则必须选择商品');
- }
- $data['fullPiece'][$k]['goods'] = array_column($fullPiece['goods'],'id') ? : [];
- $intersect = array_intersect($has_goods,$data['fullPiece'][$k]['goods']);
- if (!empty($intersect)) {
- return $this->errorJson('一个商品不能设置在两个优惠规则中');
- }
- $has_goods = array_merge($has_goods,$data['fullPiece'][$k]['goods']);
- }
- \Setting::set('shop.fullPieceNew',$data);
- return $this->successJson("设置保存成功", Url::absoluteWeb('goods.enoughReduce.full_piece.index'));
- }
- }
|