722 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			722 lines
		
	
	
		
			24 KiB
		
	
	
	
		
			PHP
		
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace app\shop\logic\bargain;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use app\common\basics\Logic;
							 | 
						||
| 
								 | 
							
								use app\common\model\bargain\Bargain;
							 | 
						||
| 
								 | 
							
								use app\common\model\bargain\BargainItem;
							 | 
						||
| 
								 | 
							
								use app\common\model\bargain\BargainKnife;
							 | 
						||
| 
								 | 
							
								use app\common\model\bargain\BargainLaunch;
							 | 
						||
| 
								 | 
							
								use app\common\model\goods\Goods as GoodsModel;
							 | 
						||
| 
								 | 
							
								use app\common\model\user\User;
							 | 
						||
| 
								 | 
							
								use app\common\model\order\Order;
							 | 
						||
| 
								 | 
							
								use app\common\enum\BargainEnum;
							 | 
						||
| 
								 | 
							
								use app\common\model\team\TeamActivity as TeamActivityModel;
							 | 
						||
| 
								 | 
							
								use app\common\server\UrlServer;
							 | 
						||
| 
								 | 
							
								use app\common\model\seckill\SeckillGoods;
							 | 
						||
| 
								 | 
							
								use think\facade\Db;
							 | 
						||
| 
								 | 
							
								use think\Model;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * Class BargainLogic
							 | 
						||
| 
								 | 
							
								 * @package app\shop\logic\bargain
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								class BargainLogic extends Logic
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 砍价活动列表
							 | 
						||
| 
								 | 
							
								     * @param $get
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:20 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function activity($get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $where = [
							 | 
						||
| 
								 | 
							
								            ['del', '=', 0],
							 | 
						||
| 
								 | 
							
								            ['shop_id', '=', $get['shop_id']]
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 查询条件
							 | 
						||
| 
								 | 
							
								        if (!empty($get['goods_name']) and $get['goods_name'] !== '') {
							 | 
						||
| 
								 | 
							
								            $goodsModel = new GoodsModel();
							 | 
						||
| 
								 | 
							
								            $ids = $goodsModel->field('id,name')->where([
							 | 
						||
| 
								 | 
							
								                ['name', 'like', '%' . $get['goods_name'] . '%']
							 | 
						||
| 
								 | 
							
								            ])->column('id');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $where[] = ['goods_id', 'in', $ids];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isset($get['status']) and is_numeric($get['status'])) {
							 | 
						||
| 
								 | 
							
								            $where[] = ['status', '=', (int)$get['status']];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        //审核状态
							 | 
						||
| 
								 | 
							
								        if (isset($get['type']) && $get['type'] != "") {
							 | 
						||
| 
								 | 
							
								            $where[] = ['audit_status', '=', $get['type']];
							 | 
						||
| 
								 | 
							
								        } else if ($get['type'] == "") {
							 | 
						||
| 
								 | 
							
								            $where[] = ['audit_status', '=', 1];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								        $count = $bargainModel->where($where)->count('id');
							 | 
						||
| 
								 | 
							
								        $lists = $bargainModel->field(true)
							 | 
						||
| 
								 | 
							
								            ->where($where)
							 | 
						||
| 
								 | 
							
								            ->with(['goods'])
							 | 
						||
| 
								 | 
							
								            ->append(['status_text'])
							 | 
						||
| 
								 | 
							
								            ->withCount(['launchPeopleNumber', 'successKnifePeopleNumber', 'knifePeopleNumber'])
							 | 
						||
| 
								 | 
							
								            ->page($get['page'], $get['limit'])
							 | 
						||
| 
								 | 
							
								            ->select()->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($lists as &$item) {
							 | 
						||
| 
								 | 
							
								            $item['info']['launch_people_number_count'] = $item['launch_people_number_count'];
							 | 
						||
| 
								 | 
							
								            $item['info']['success_knife_people_number_count'] = $item['success_knife_people_number_count'];
							 | 
						||
| 
								 | 
							
								            $item['info']['knife_people_number_count'] = $item['knife_people_number_count'];
							 | 
						||
| 
								 | 
							
								            $item['goods']['image'] = UrlServer::getFileUrl($item['goods']['image']);
							 | 
						||
| 
								 | 
							
								            $item['activity_start_time'] = date('Y-m-d H:i:s', $item['activity_start_time']);
							 | 
						||
| 
								 | 
							
								            $item['activity_end_time'] = date('Y-m-d H:i:s', $item['activity_end_time']);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return ['count' => $count, 'lists' => $lists];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 新增砍价活动
							 | 
						||
| 
								 | 
							
								     * @param $post
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     * @throws \think\exception\PDOException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:21 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function add($post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Db::startTrans();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            // 校验拼团活动是否存在
							 | 
						||
| 
								 | 
							
								            $teamActivityModel = new TeamActivityModel();
							 | 
						||
| 
								 | 
							
								            $team = $teamActivityModel->where([
							 | 
						||
| 
								 | 
							
								                'goods_id' => intval($post['goods_id']),
							 | 
						||
| 
								 | 
							
								                'del' => 0
							 | 
						||
| 
								 | 
							
								            ])->find();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if ($team) {
							 | 
						||
| 
								 | 
							
								                static::$error = '商品正在参与拼团活动, 请先移除活动再添加';
							 | 
						||
| 
								 | 
							
								                return false;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            //秒杀验证
							 | 
						||
| 
								 | 
							
								            $seckill_goods = SeckillGoods::where(['goods_id' => intval($post['goods_id']), 'del' => 0])
							 | 
						||
| 
								 | 
							
								                ->find();
							 | 
						||
| 
								 | 
							
								            if ($seckill_goods) {
							 | 
						||
| 
								 | 
							
								                static::$error = '商品正在参与秒杀活动,无法修改';
							 | 
						||
| 
								 | 
							
								                return false;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 每刀金额(随机 / 固定)
							 | 
						||
| 
								 | 
							
								            $knife_price = 0;
							 | 
						||
| 
								 | 
							
								            if ($post['knife_type'] == 1) {
							 | 
						||
| 
								 | 
							
								                $knife_price = [$post['min_knife_price'], $post['max_knife_price']];
							 | 
						||
| 
								 | 
							
								                $knife_price = implode(',', $knife_price);
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                $knife_price = $post['fixed_knife_price'];
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 查出最大低价和最少价格
							 | 
						||
| 
								 | 
							
								            $bargain_price = [];
							 | 
						||
| 
								 | 
							
								            foreach ($post['floor_price'] as $key => $value) {
							 | 
						||
| 
								 | 
							
								                foreach ($value as $K => $item) {
							 | 
						||
| 
								 | 
							
								                    array_push($bargain_price, $item);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            $bargain_max_price = !empty($bargain_price) ? max($bargain_price) : 0;
							 | 
						||
| 
								 | 
							
								            $bargain_min_price = !empty($bargain_price) ? min($bargain_price) : 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 新增砍价活动
							 | 
						||
| 
								 | 
							
								            $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								            $bargain_id = $bargainModel->insertGetId([
							 | 
						||
| 
								 | 
							
								                'goods_id' => $post['goods_id'],
							 | 
						||
| 
								 | 
							
								                'shop_id' => $post['shop_id'],
							 | 
						||
| 
								 | 
							
								                'audit_status' => 0, //待审核
							 | 
						||
| 
								 | 
							
								                'time_limit' => $post['time_limit'],
							 | 
						||
| 
								 | 
							
								                'activity_start_time' => strtotime($post['activity_start_time']),
							 | 
						||
| 
								 | 
							
								                'activity_end_time' => strtotime($post['activity_end_time']),
							 | 
						||
| 
								 | 
							
								                'bargain_min_price' => $bargain_min_price,
							 | 
						||
| 
								 | 
							
								                'bargain_max_price' => $bargain_max_price,
							 | 
						||
| 
								 | 
							
								                'share_title' => empty($post['share_title']) ? '' : $post['share_title'],
							 | 
						||
| 
								 | 
							
								                'share_intro' => empty($post['share_intro']) ? '' : $post['share_intro'],
							 | 
						||
| 
								 | 
							
								                'payment_where' => $post['payment_where'],
							 | 
						||
| 
								 | 
							
								                'knife_type' => $post['knife_type'],
							 | 
						||
| 
								 | 
							
								                'knife_price' => $knife_price,
							 | 
						||
| 
								 | 
							
								                'status' => $post['status'],
							 | 
						||
| 
								 | 
							
								                'del' => 0,
							 | 
						||
| 
								 | 
							
								            ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 新增砍价商品SKU
							 | 
						||
| 
								 | 
							
								            $lists = [];
							 | 
						||
| 
								 | 
							
								            foreach ($post['floor_price'] as $key => $value) {
							 | 
						||
| 
								 | 
							
								                foreach ($value as $K => $item) {
							 | 
						||
| 
								 | 
							
								                    $lists[] = [
							 | 
						||
| 
								 | 
							
								                        'bargain_id' => $bargain_id,
							 | 
						||
| 
								 | 
							
								                        'goods_id' => $key,
							 | 
						||
| 
								 | 
							
								                        'item_id' => $K,
							 | 
						||
| 
								 | 
							
								                        'floor_price' => $item,
							 | 
						||
| 
								 | 
							
								                        'first_knife_price' => $post['first_knife_price'][$key][$K]
							 | 
						||
| 
								 | 
							
								                    ];
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            if (!empty($lists)) {
							 | 
						||
| 
								 | 
							
								                $bargainItemModel = new BargainItem();
							 | 
						||
| 
								 | 
							
								                $bargainItemModel->saveAll($lists);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            Db::commit();
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        } catch (\Exception $e) {
							 | 
						||
| 
								 | 
							
								            static::$error = $e->getMessage();
							 | 
						||
| 
								 | 
							
								            Db::rollback();
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 编辑砍价活动
							 | 
						||
| 
								 | 
							
								     * @param $post
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     * @throws \think\exception\PDOException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:21 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function edit($post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Db::startTrans();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            // 查询商品信息
							 | 
						||
| 
								 | 
							
								            $goodsModel = new GoodsModel();
							 | 
						||
| 
								 | 
							
								            $goods = $goodsModel->field('id,name,image')
							 | 
						||
| 
								 | 
							
								                ->where(['id' => (int)$post['goods_id']])->find();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            if (!$goods) {
							 | 
						||
| 
								 | 
							
								                static::$error = '选择的商品已不存在,可能已被删除';
							 | 
						||
| 
								 | 
							
								                return false;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 每刀金额(随机 / 固定)
							 | 
						||
| 
								 | 
							
								            $knife_price = 0;
							 | 
						||
| 
								 | 
							
								            if ($post['knife_type'] == 1) {
							 | 
						||
| 
								 | 
							
								                $knife_price = [$post['min_knife_price'], $post['max_knife_price']];
							 | 
						||
| 
								 | 
							
								                $knife_price = implode(',', $knife_price);
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                $knife_price = $post['fixed_knife_price'];
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 查出最大低价和最少价格
							 | 
						||
| 
								 | 
							
								            $bargain_price = [];
							 | 
						||
| 
								 | 
							
								            foreach ($post['floor_price'] as $key => $value) {
							 | 
						||
| 
								 | 
							
								                foreach ($value as $K => $item) {
							 | 
						||
| 
								 | 
							
								                    array_push($bargain_price, $item);
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            $bargain_max_price = !empty($bargain_price) ? max($bargain_price) : 0;
							 | 
						||
| 
								 | 
							
								            $bargain_min_price = !empty($bargain_price) ? min($bargain_price) : 0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 更新砍价活动
							 | 
						||
| 
								 | 
							
								            $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								            $checkAudit = self::checkAudit((int)$post['id']);
							 | 
						||
| 
								 | 
							
								            if (false === $checkAudit) {
							 | 
						||
| 
								 | 
							
								                $audit_status = BargainEnum::TO_BE_REVIEWED; //待审核
							 | 
						||
| 
								 | 
							
								            } else {
							 | 
						||
| 
								 | 
							
								                $audit_status = BargainEnum::AUDIT_PASS; //审核通过
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            $bargainModel->where(['id' => (int)$post['id']])->update([
							 | 
						||
| 
								 | 
							
								                'goods_id' => $post['goods_id'],
							 | 
						||
| 
								 | 
							
								                'time_limit' => $post['time_limit'],
							 | 
						||
| 
								 | 
							
								                'activity_start_time' => strtotime($post['activity_start_time']),
							 | 
						||
| 
								 | 
							
								                'activity_end_time' => strtotime($post['activity_end_time']),
							 | 
						||
| 
								 | 
							
								                'bargain_min_price' => $bargain_min_price,
							 | 
						||
| 
								 | 
							
								                'bargain_max_price' => $bargain_max_price,
							 | 
						||
| 
								 | 
							
								                'share_title' => empty($post['share_title']) ? '' : $post['share_title'],
							 | 
						||
| 
								 | 
							
								                'share_intro' => empty($post['share_intro']) ? '' : $post['share_intro'],
							 | 
						||
| 
								 | 
							
								                'payment_where' => $post['payment_where'],
							 | 
						||
| 
								 | 
							
								                'knife_type' => $post['knife_type'],
							 | 
						||
| 
								 | 
							
								                'knife_price' => $knife_price,
							 | 
						||
| 
								 | 
							
								                'status' => $post['status'],
							 | 
						||
| 
								 | 
							
								                'audit_status' => $audit_status,
							 | 
						||
| 
								 | 
							
								            ]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 删除旧的SKU
							 | 
						||
| 
								 | 
							
								            $bargainItemModel = new BargainItem();
							 | 
						||
| 
								 | 
							
								            $bargainItemModel->where(['bargain_id' => (int)$post['id']])->delete();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 更新砍价商品SKU
							 | 
						||
| 
								 | 
							
								            $lists = [];
							 | 
						||
| 
								 | 
							
								            foreach ($post['floor_price'] as $key => $value) {
							 | 
						||
| 
								 | 
							
								                foreach ($value as $K => $item) {
							 | 
						||
| 
								 | 
							
								                    $lists[] = [
							 | 
						||
| 
								 | 
							
								                        'bargain_id' => $post['id'],
							 | 
						||
| 
								 | 
							
								                        'goods_id' => $key,
							 | 
						||
| 
								 | 
							
								                        'item_id' => $K,
							 | 
						||
| 
								 | 
							
								                        'floor_price' => $item,
							 | 
						||
| 
								 | 
							
								                        'first_knife_price' => $post['first_knife_price'][$key][$K]
							 | 
						||
| 
								 | 
							
								                    ];
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								            if (!empty($lists)) {
							 | 
						||
| 
								 | 
							
								                $bargainItemModel->saveAll($lists);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            Db::commit();
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        } catch (\Exception $e) {
							 | 
						||
| 
								 | 
							
								            static::$error = $e->getMessage();
							 | 
						||
| 
								 | 
							
								            Db::rollback();
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 验证审核状态
							 | 
						||
| 
								 | 
							
								     * @param $id
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:21 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function checkAudit($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $audit_status = Bargain::where('id', $id)->value('audit_status');
							 | 
						||
| 
								 | 
							
								        if ($audit_status == BargainEnum::TO_BE_REVIEWED || $audit_status == BargainEnum::AUDIT_REFUND) {
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 获取砍价活动详情
							 | 
						||
| 
								 | 
							
								     * @param $id
							 | 
						||
| 
								 | 
							
								     * @return array|Model|null
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:21 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getDetail($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								        $bargainItemModel = new BargainItem();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $detail = $bargainModel->field(true)
							 | 
						||
| 
								 | 
							
								            ->where(['id' => (int)$id])
							 | 
						||
| 
								 | 
							
								            ->with(['goods'])
							 | 
						||
| 
								 | 
							
								            ->find();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $goodItem = $bargainItemModel->field('t.*,gi.id as spec_item_id,
							 | 
						||
| 
								 | 
							
								            gi.spec_value_str, gi.price as spec_item_price, gi.stock')
							 | 
						||
| 
								 | 
							
								            ->where(['bargain_id' => (int)$id])
							 | 
						||
| 
								 | 
							
								            ->alias('t')
							 | 
						||
| 
								 | 
							
								            ->rightJoin('goods_item gi', 'gi.id = t.item_id')
							 | 
						||
| 
								 | 
							
								            ->select();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $detail['min_knife_price'] = 0;
							 | 
						||
| 
								 | 
							
								        $detail['max_knife_price'] = 0;
							 | 
						||
| 
								 | 
							
								        $detail['fixed_knife_price'] = 0;
							 | 
						||
| 
								 | 
							
								        if ($detail['knife_type'] == 1) {
							 | 
						||
| 
								 | 
							
								            $knife_price_arr = explode(',', $detail['knife_price']);
							 | 
						||
| 
								 | 
							
								            $detail['min_knife_price'] = empty($knife_price_arr[0]) ? 0 : $knife_price_arr[0];
							 | 
						||
| 
								 | 
							
								            $detail['max_knife_price'] = empty($knife_price_arr[1]) ? 0 : $knife_price_arr[1];
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								            $detail['fixed_knife_price'] = $detail['knife_price'];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 处理判断商品规格是否已发生变化, 没变化是true, 否则false
							 | 
						||
| 
								 | 
							
								        $detail['is_goods_item'] = true;
							 | 
						||
| 
								 | 
							
								        foreach ($goodItem as $item) {
							 | 
						||
| 
								 | 
							
								            if (!$item['spec_value_str'] || $item['spec_value_str'] == ''
							 | 
						||
| 
								 | 
							
								                || $item['spec_item_price'] == '') {
							 | 
						||
| 
								 | 
							
								                $detail['is_goods_item'] = false;
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $detail['item'] = $goodItem;
							 | 
						||
| 
								 | 
							
								        $detail['goods']['image'] = UrlServer::getFileUrl($detail['goods']['image']);
							 | 
						||
| 
								 | 
							
								        $detail['activity_start_time'] = date('Y-m-d H:i:s', $detail['activity_start_time']);
							 | 
						||
| 
								 | 
							
								        $detail['activity_end_time'] = date('Y-m-d H:i:s', $detail['activity_end_time']);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return $detail;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 停止活动
							 | 
						||
| 
								 | 
							
								     * @param $post
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     * @throws \think\exception\PDOException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:21 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function stop($post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Db::startTrans();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								            // 切换状态
							 | 
						||
| 
								 | 
							
								            $bargainModel->where(['id' => (int)$post['id']])
							 | 
						||
| 
								 | 
							
								                ->update(['status' => 0]);//停止
							 | 
						||
| 
								 | 
							
								            // 关闭活动未完成的
							 | 
						||
| 
								 | 
							
								            $bargainLaunchModel = new BargainLaunch();
							 | 
						||
| 
								 | 
							
								            $bargainLaunchModel->where(['bargain_id' => $post['id'], 'status' => 0])
							 | 
						||
| 
								 | 
							
								                ->update(['status' => 2]);//砍价失败
							 | 
						||
| 
								 | 
							
								            Db::commit();
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        } catch (\Exception $e) {
							 | 
						||
| 
								 | 
							
								            static::$error = $e->getMessage();
							 | 
						||
| 
								 | 
							
								            Db::rollback();
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 开启活动
							 | 
						||
| 
								 | 
							
								     * @param $post
							 | 
						||
| 
								 | 
							
								     * @return Bargain
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:21 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function start($post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								        // 切换状态
							 | 
						||
| 
								 | 
							
								        return $bargainModel->where(['id' => (int)$post['id']])
							 | 
						||
| 
								 | 
							
								            ->update(['status' => 1]);//开启
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 切换状态
							 | 
						||
| 
								 | 
							
								     * @param $post
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     * @throws \think\exception\PDOException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function switchStatus($post)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Db::startTrans();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								            // 切换状态
							 | 
						||
| 
								 | 
							
								            $bargainModel->where(['id' => (int)$post['id']])
							 | 
						||
| 
								 | 
							
								                ->update([$post['field'] => $post['status']]);
							 | 
						||
| 
								 | 
							
								            // 关闭活动未完成的
							 | 
						||
| 
								 | 
							
								            if ($post['status']) {
							 | 
						||
| 
								 | 
							
								                $bargainLaunchModel = new BargainLaunch();
							 | 
						||
| 
								 | 
							
								                $bargainLaunchModel->where(['bargain_id' => $post['id'], 'status' => 0])
							 | 
						||
| 
								 | 
							
								                    ->update(['status' => 2]);//砍价失败
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            Db::commit();
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        } catch (\Exception $e) {
							 | 
						||
| 
								 | 
							
								            static::$error = $e->getMessage();
							 | 
						||
| 
								 | 
							
								            Db::rollback();
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 砍价列表
							 | 
						||
| 
								 | 
							
								     * @param $get
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getLaunch($get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // 查询条件
							 | 
						||
| 
								 | 
							
								        $where = [];
							 | 
						||
| 
								 | 
							
								        $where[] = ['shop_id', '=', $get['shop_id']];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isset($get['bargain_id']) and $get['bargain_id']) {
							 | 
						||
| 
								 | 
							
								            $where[] = ['bargain_id', '=', (int)$get['bargain_id']];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isset($get['goods_name']) and $get['goods_name'] !== '') {
							 | 
						||
| 
								 | 
							
								            $goodsModel = new GoodsModel();
							 | 
						||
| 
								 | 
							
								            $ids = $goodsModel->field('id,name')->where([
							 | 
						||
| 
								 | 
							
								                ['name', 'like', '%' . $get['goods_name'] . '%']
							 | 
						||
| 
								 | 
							
								            ])->column('id');
							 | 
						||
| 
								 | 
							
								            $where[] = ['goods_id', 'in', $ids];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (isset($get['status']) and is_numeric($get['status'])) {
							 | 
						||
| 
								 | 
							
								            $where[] = ['status', '=', (int)$get['status']];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isset($get['launch_start_time']) and $get['launch_start_time'] !== '') {
							 | 
						||
| 
								 | 
							
								            $where[] = ['launch_start_time', '>=', strtotime($get['launch_start_time'])];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isset($get['launch_end_time']) and $get['launch_end_time'] !== '') {
							 | 
						||
| 
								 | 
							
								            $where[] = ['launch_end_time', '<=', strtotime($get['launch_end_time'])];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (isset($get['keyword_type']) and $get['keyword_type'] !== '') {
							 | 
						||
| 
								 | 
							
								            if (isset($get['keyword']) and $get['keyword'] !== '') {
							 | 
						||
| 
								 | 
							
								                switch ($get['keyword_type']) {
							 | 
						||
| 
								 | 
							
								                    case 'sn':
							 | 
						||
| 
								 | 
							
								                        $uid = User::where('sn', '=', $get['keyword'])->column('id');
							 | 
						||
| 
								 | 
							
								                        $where[] = ['user_id', 'in', $uid];
							 | 
						||
| 
								 | 
							
								                        break;
							 | 
						||
| 
								 | 
							
								                    case 'nickname':
							 | 
						||
| 
								 | 
							
								                        $uid = User::where('nickname', 'like', '%' . $get['keyword'] . '%')->column('id');
							 | 
						||
| 
								 | 
							
								                        $where[] = ['user_id', 'in', $uid];
							 | 
						||
| 
								 | 
							
								                        break;
							 | 
						||
| 
								 | 
							
								                }
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $model = new BargainLaunch();
							 | 
						||
| 
								 | 
							
								        $count = $model->where($where)->count('id');
							 | 
						||
| 
								 | 
							
								        $lists = $model->field(true)
							 | 
						||
| 
								 | 
							
								            ->where($where)
							 | 
						||
| 
								 | 
							
								            ->with(['user.level'])
							 | 
						||
| 
								 | 
							
								            ->order('id', 'desc')
							 | 
						||
| 
								 | 
							
								            ->page($get['page'], $get['limit'])
							 | 
						||
| 
								 | 
							
								            ->select()->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($lists as &$item) {
							 | 
						||
| 
								 | 
							
								            if (!empty($item['user']['avatar'])) {
							 | 
						||
| 
								 | 
							
								                $item['user']['avatar'] = UrlServer::getFileUrl($item['user']['avatar']);
							 | 
						||
| 
								 | 
							
								            }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            $item['launch_start_time'] = date('Y-m-d H:i:s', $item['launch_start_time']);
							 | 
						||
| 
								 | 
							
								            $item['launch_end_time'] = date('Y-m-d H:i:s', $item['launch_end_time']);
							 | 
						||
| 
								 | 
							
								            $item['domain'] = UrlServer::getFileUrl('/');
							 | 
						||
| 
								 | 
							
								            $item['status'] = BargainLaunch::getStatusDesc($item['status']);
							 | 
						||
| 
								 | 
							
								            $item['goods_image'] = $item['goods_snap']['image'] == "" ? $item['goods_snap']['goods_iamge'] : $item['goods_snap']['image'];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return ['count' => $count, 'lists' => $lists];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 砍价订单详情
							 | 
						||
| 
								 | 
							
								     * @param $id
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getLaunchDetail($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $model = new BargainLaunch();
							 | 
						||
| 
								 | 
							
								        $detail = $model->field(true)
							 | 
						||
| 
								 | 
							
								            ->where(['id' => (int)$id])
							 | 
						||
| 
								 | 
							
								            ->with(['user.level'])
							 | 
						||
| 
								 | 
							
								            ->find()->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $detail['domain'] = UrlServer::getFileUrl();
							 | 
						||
| 
								 | 
							
								        $detail['launch_start_time'] = date('Y-m-d H:i:s', $detail['launch_start_time']);
							 | 
						||
| 
								 | 
							
								        $detail['launch_end_time'] = date('Y-m-d H:i:s', $detail['launch_end_time']);
							 | 
						||
| 
								 | 
							
								        $detail['payment_where'] = $detail['bargain_snap']['payment_where'] == 1 ? '砍到底价可购买' : '任意金额可购买';
							 | 
						||
| 
								 | 
							
								        $detail['status'] = BargainLaunch::getStatusDesc($detail['status']);
							 | 
						||
| 
								 | 
							
								        return $detail;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 砍价订单
							 | 
						||
| 
								 | 
							
								     * @param $launch_id
							 | 
						||
| 
								 | 
							
								     * @param $get
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getKnifeOrderRecord($launch_id, $get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $model = new BargainLaunch();
							 | 
						||
| 
								 | 
							
								        $count = $model->where(['id' => (int)$launch_id])
							 | 
						||
| 
								 | 
							
								            ->where('order_id', '>', 0)->count('id');
							 | 
						||
| 
								 | 
							
								        $lists = $model->field(true)
							 | 
						||
| 
								 | 
							
								            ->where(['id' => (int)$launch_id])
							 | 
						||
| 
								 | 
							
								            ->where('order_id', '>', 0)
							 | 
						||
| 
								 | 
							
								            ->with(['user.level', 'order'])
							 | 
						||
| 
								 | 
							
								            ->page($get['page'], $get['limit'])
							 | 
						||
| 
								 | 
							
								            ->select();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($lists as &$item) {
							 | 
						||
| 
								 | 
							
								            $item['order_status'] = Order::getOrderStatus($item['order']['order_status']);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return ['count' => $count, 'lists' => $lists];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 砍价记录
							 | 
						||
| 
								 | 
							
								     * @param $launch_id
							 | 
						||
| 
								 | 
							
								     * @param $get
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getKnifeRecord($launch_id, $get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $model = new BargainKnife();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $count = $model->where(['launch_id' => (int)$launch_id])->count();
							 | 
						||
| 
								 | 
							
								        $lists = $model->field(true)
							 | 
						||
| 
								 | 
							
								            ->where(['launch_id' => (int)$launch_id])
							 | 
						||
| 
								 | 
							
								            ->with(['user.level'])
							 | 
						||
| 
								 | 
							
								            ->page($get['page'], $get['limit'])
							 | 
						||
| 
								 | 
							
								            ->select();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($lists as &$item) {
							 | 
						||
| 
								 | 
							
								            $item['help_time'] = date('Y-m-d H:i:s', $item['help_time']);
							 | 
						||
| 
								 | 
							
								            $item['help_price'] = '¥' . $item['help_price'];
							 | 
						||
| 
								 | 
							
								            $item['surplus_price'] = '¥' . $item['surplus_price'];
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return ['count' => $count, 'lists' => $lists];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 砍价详情
							 | 
						||
| 
								 | 
							
								     * @param $get
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DataNotFoundException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\DbException
							 | 
						||
| 
								 | 
							
								     * @throws \think\db\exception\ModelNotFoundException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function detail($get)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $where = [];
							 | 
						||
| 
								 | 
							
								        $where['b.id'] = $get['id'];
							 | 
						||
| 
								 | 
							
								        $info = Bargain::alias('b')
							 | 
						||
| 
								 | 
							
								            ->join('goods g', 'b.goods_id = g.id')
							 | 
						||
| 
								 | 
							
								            ->join('shop s', 's.id = b.shop_id')
							 | 
						||
| 
								 | 
							
								            ->where($where)
							 | 
						||
| 
								 | 
							
								            ->field('b.id,b.goods_id,b.audit_status,b.audit_remark,b.time_limit,b.payment_where,b.share_title,b.share_intro,g.image,g.name,g.min_price,g.max_price,s.id as sid,s.name as shop_name,s.type')
							 | 
						||
| 
								 | 
							
								            ->find()->toArray();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        switch ($info['type']) {
							 | 
						||
| 
								 | 
							
								            case 1 :
							 | 
						||
| 
								 | 
							
								                $info['type'] = '官方自营';
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case 2 :
							 | 
						||
| 
								 | 
							
								                $info['type'] = '入驻商家';
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        switch ($info['audit_status']) {
							 | 
						||
| 
								 | 
							
								            case 0 :
							 | 
						||
| 
								 | 
							
								                $info['audit_status'] = '待审核';
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case 1 :
							 | 
						||
| 
								 | 
							
								                $info['audit_status'] = '审核通过';
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								            case 2 :
							 | 
						||
| 
								 | 
							
								                $info['audit_status'] = '审核拒绝';
							 | 
						||
| 
								 | 
							
								                break;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        $info['image'] = UrlServer::getFileUrl($info['image']);
							 | 
						||
| 
								 | 
							
								        return $info;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 删除
							 | 
						||
| 
								 | 
							
								     * @param int $id
							 | 
						||
| 
								 | 
							
								     * @return bool
							 | 
						||
| 
								 | 
							
								     * @throws \think\exception\PDOException
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function softDelete(int $id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        Db::startTrans();
							 | 
						||
| 
								 | 
							
								        try {
							 | 
						||
| 
								 | 
							
								            $bargainModel = new Bargain();
							 | 
						||
| 
								 | 
							
								            $bargainModel->where(['id' => (int)$id])->update(['del' => 1]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            // 关闭活动未完成的
							 | 
						||
| 
								 | 
							
								            $bargainLaunchModel = new BargainLaunch();
							 | 
						||
| 
								 | 
							
								            $bargainLaunchModel->where(['bargain_id' => $id, 'status' => 0])
							 | 
						||
| 
								 | 
							
								                ->update(['status' => 2]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            Db::commit();
							 | 
						||
| 
								 | 
							
								            return true;
							 | 
						||
| 
								 | 
							
								        } catch (\Exception $e) {
							 | 
						||
| 
								 | 
							
								            Db::rollback();
							 | 
						||
| 
								 | 
							
								            static::$error = $e->getMessage();
							 | 
						||
| 
								 | 
							
								            return false;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 关闭砍价
							 | 
						||
| 
								 | 
							
								     * @param $id
							 | 
						||
| 
								 | 
							
								     * @return BargainLaunch
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:22 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function close($id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $data = [
							 | 
						||
| 
								 | 
							
								            'launch_end_time' => time(),
							 | 
						||
| 
								 | 
							
								            'status' => BargainEnum::STATUS_FAIL,
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								        return BargainLaunch::where('id', $id)->update($data);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    /**
							 | 
						||
| 
								 | 
							
								     * @notes 获取各列表数量
							 | 
						||
| 
								 | 
							
								     * @param $shop_id
							 | 
						||
| 
								 | 
							
								     * @return array
							 | 
						||
| 
								 | 
							
								     * @author suny
							 | 
						||
| 
								 | 
							
								     * @date 2021/7/14 10:23 上午
							 | 
						||
| 
								 | 
							
								     */
							 | 
						||
| 
								 | 
							
								    public static function getNum($shop_id)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        $all = Bargain::where(['del' => 0, 'shop_id' => $shop_id])->count('id');
							 | 
						||
| 
								 | 
							
								        $unaudit = Bargain::where(['audit_status' => 0, 'del' => 0, 'shop_id' => $shop_id])->count('id');
							 | 
						||
| 
								 | 
							
								        $audit_pass = Bargain::where(['audit_status' => 1, 'del' => 0, 'shop_id' => $shop_id])->count('id');
							 | 
						||
| 
								 | 
							
								        $audit_refund = Bargain::where(['audit_status' => 2, 'del' => 0, 'shop_id' => $shop_id])->count('id');
							 | 
						||
| 
								 | 
							
								        $num = [
							 | 
						||
| 
								 | 
							
								            'all' => $all,
							 | 
						||
| 
								 | 
							
								            'unaudit' => $unaudit,
							 | 
						||
| 
								 | 
							
								            'audit_pass' => $audit_pass,
							 | 
						||
| 
								 | 
							
								            'audit_refund' => $audit_refund
							 | 
						||
| 
								 | 
							
								        ];
							 | 
						||
| 
								 | 
							
								        return $num;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 |