232 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			232 lines
		
	
	
		
			6.5 KiB
		
	
	
	
		
			PHP
		
	
	
| <?php
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | likeshop开源商城系统
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
 | ||
| // | gitee下载:https://gitee.com/likeshop_gitee
 | ||
| // | github下载:https://github.com/likeshop-github
 | ||
| // | 访问官网:https://www.likeshop.cn
 | ||
| // | 访问社区:https://home.likeshop.cn
 | ||
| // | 访问手册:http://doc.likeshop.cn
 | ||
| // | 微信公众号:likeshop技术社区
 | ||
| // | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
 | ||
| // |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
 | ||
| // | 禁止对系统程序代码以任何目的,任何形式的再发布
 | ||
| // | likeshop团队版权所有并拥有最终解释权
 | ||
| // +----------------------------------------------------------------------
 | ||
| // | author: likeshop.cn.team
 | ||
| // +----------------------------------------------------------------------
 | ||
| namespace app\api\validate;
 | ||
| 
 | ||
| use app\common\model\bargain\BargainLaunch;
 | ||
| use think\facade\Db;
 | ||
| use app\common\basics\Validate;
 | ||
| 
 | ||
| /**
 | ||
|  * Class BargainValidate
 | ||
|  * @package app\api\validate
 | ||
|  */
 | ||
| class BargainValidate extends Validate
 | ||
| {
 | ||
|     protected $rule = [
 | ||
|         'id' => 'require',
 | ||
|         'bargain_id' => 'require',
 | ||
|         'item_id' => 'require|checkGoods',
 | ||
|         'url' => 'require',
 | ||
|     ];
 | ||
|     protected $message = [
 | ||
|         'id.require' => '请选择砍价订单',
 | ||
|         'bargain_id.require' => '请选择活动',
 | ||
|         'item_id.require' => '请选择规格',
 | ||
|         'url.require' => '缺少参数',
 | ||
|     ];
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 砍价商品详情验证场景
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:27 下午
 | ||
|      */
 | ||
|     public function sceneDetail()
 | ||
|     {
 | ||
| 
 | ||
|         $this->only(['bargain_id'])
 | ||
|             ->append('bargain_id', 'checkBargain');
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 发起砍价验证
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:27 下午
 | ||
|      */
 | ||
|     public function sceneSponsor()
 | ||
|     {
 | ||
| 
 | ||
|         $this->only(['bargain_id', 'item_id'])->append('bargain_id', 'checkBargain');
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 砍价详情验证
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:27 下午
 | ||
|      */
 | ||
|     public function sceneBargainDetail()
 | ||
|     {
 | ||
| 
 | ||
|         $this->only(['id']);
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 分享验证
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:27 下午
 | ||
|      */
 | ||
|     public function sceneShare()
 | ||
|     {
 | ||
| 
 | ||
|         $this->only(['id', 'url'])
 | ||
|             ->append('id', 'checkBargainLaunch');
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 助力验证
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:27 下午
 | ||
|      */
 | ||
|     public function sceneKnife()
 | ||
|     {
 | ||
| 
 | ||
|         $this->only(['id'])
 | ||
|             ->append('id', 'checkBnife');
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 验证活动是否开启
 | ||
|      * @param $value
 | ||
|      * @param $rule
 | ||
|      * @param $data
 | ||
|      * @return bool|string
 | ||
|      * @throws \think\db\exception\DataNotFoundException
 | ||
|      * @throws \think\db\exception\ModelNotFoundException
 | ||
|      * @throws \think\exception\DbException
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:28 下午
 | ||
|      */
 | ||
|     protected function checkBargain($value, $rule, $data)
 | ||
|     {
 | ||
| 
 | ||
|         $now = time();
 | ||
|         $bargain = Db::name('bargain')
 | ||
|             ->where([
 | ||
|                 ['id', '=', $value],
 | ||
|                 ['del', '=', 0],
 | ||
|                 ['activity_start_time', '<', $now],
 | ||
|                 ['activity_end_time', '>', $now],
 | ||
|                 ['status', '=', 1]
 | ||
|             ])
 | ||
|             ->find();
 | ||
| 
 | ||
|         if (empty($bargain)) {
 | ||
|             return '该砍价活动已下架';
 | ||
|         }
 | ||
|         return true;
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 验证商品库存
 | ||
|      * @param $value
 | ||
|      * @param $rule
 | ||
|      * @param $data
 | ||
|      * @return bool|string
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:28 下午
 | ||
|      */
 | ||
|     protected function checkGoods($value, $rule, $data)
 | ||
|     {
 | ||
| 
 | ||
|         $stock = Db::name('goods_item')
 | ||
|             ->where(['id' => $value])
 | ||
|             ->value('stock');
 | ||
| 
 | ||
|         if ($stock < 1) {
 | ||
|             return '该商品库存不足';
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 验证该砍价订单是否结束
 | ||
|      * @param $value
 | ||
|      * @param $rule
 | ||
|      * @param $data
 | ||
|      * @return bool|string
 | ||
|      * @throws \think\db\exception\DataNotFoundException
 | ||
|      * @throws \think\db\exception\DbException
 | ||
|      * @throws \think\db\exception\ModelNotFoundException
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:28 下午
 | ||
|      */
 | ||
|     protected function checkBargainLaunch($value, $rule, $data)
 | ||
|     {
 | ||
| 
 | ||
|         $bargain_launch = new BargainLaunch();
 | ||
|         $bargain_launch = $bargain_launch
 | ||
|             ->where(['id' => $value])
 | ||
|             ->find();
 | ||
|         if ($bargain_launch['launch_end_time'] <= time() || $bargain_launch['status'] !== 0) {
 | ||
|             return '该砍价已结束';
 | ||
|         }
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
|     /**
 | ||
|      * @notes 验证该砍价订单是否可助力
 | ||
|      * @param $value
 | ||
|      * @param $rule
 | ||
|      * @param $data
 | ||
|      * @return bool|string
 | ||
|      * @throws \think\db\exception\DataNotFoundException
 | ||
|      * @throws \think\db\exception\DbException
 | ||
|      * @throws \think\db\exception\ModelNotFoundException
 | ||
|      * @throws \think\exception\DbException
 | ||
|      * @author suny
 | ||
|      * @date 2021/7/13 6:28 下午
 | ||
|      */
 | ||
|     protected function checkBnife($value, $rule, $data)
 | ||
|     {
 | ||
| 
 | ||
|         $bargain_launch = new BargainLaunch();
 | ||
|         $bargain_launch = $bargain_launch
 | ||
|             ->where(['id' => $value])
 | ||
|             ->find()->toarray();
 | ||
|         if (0 != $bargain_launch['status']) {
 | ||
|             return '该砍价已结束';
 | ||
|         }
 | ||
|         if ($bargain_launch['launch_end_time'] <= time()) {
 | ||
|             return '该砍价已结束';
 | ||
|         }
 | ||
|         if ($bargain_launch['user_id'] === $data['user_id']) {
 | ||
|             return '不能助力自己的砍价活动';
 | ||
|         }
 | ||
|         if ($bargain_launch['current_price'] < 0) {
 | ||
|             return '该砍价活动已成功';
 | ||
|         }
 | ||
|         //当前活动是砍到低价,且已经低于等于活动低价时,砍价成功
 | ||
|         if (1 == $bargain_launch['bargain_snap']['payment_where'] && $bargain_launch['current_price'] <= $bargain_launch['bargain_price']) {
 | ||
|             return '该砍价活动已成功';
 | ||
|         }
 | ||
|         $bargain_knife = Db::name('bargain_knife')
 | ||
|             ->where(['launch_id' => $value, 'user_id' => $data['user_id']])
 | ||
|             ->find();
 | ||
| 
 | ||
|         if ($bargain_knife) {
 | ||
|             return '您已助力过了';
 | ||
|         }
 | ||
| 
 | ||
| 
 | ||
|         return true;
 | ||
|     }
 | ||
| 
 | ||
| 
 | ||
| } |