PHP 模拟 砍价 流程

查询和添加砍价活动

<?php
declare (strict_types = 1);

namespace app\home\controller;

use app\home\model\BarGoods;
use app\home\model\BarRecord;
use app\model\Renting;
use service\JsonService;
use think\facade\Db;
use think\facade\Validate;
use think\Request;
use tools\upload\Upload;

class Bargain
{
   
    /**
     * 显示资源列表
     * @return \think\Response
     */
    public function index()
    {
   
        $data = BarGoods::paginate(5);
        return view('',compact('data'));
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
   
        return view();
    }

    public function upFile(Request $request) {
   
        $file = $request->file('file');
        $img = Upload::upload($file);
        $path = Upload::qiniu($img);
        if ($path) {
   
            return JsonService::success('ok',$path);
        }
        return  JsonService::fail('上传失败');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
   
        $params = input();
        $model = BarGoods::create($params);
        if ($model) return JsonService::success('砍价商品添加成功',$params);
        return JsonService::fail('添加失败');
    }

    /**
     * @param $total string 砍价金额
     * @param $num int 砍价次数
     * @param $min float 最低可砍
     * @param $max float 最高可砍
     * @param int $level 成级
     * @return string
     */

    public function bar($total,$num,$min,$max,$level=0 )
    {
   

        if ($num > 1) {
   
            $safe_total = ($total - ($num - 1) * $min) / ($num - 1);//随机安全上限
            if ($min < $safe_total) {
   //总价为最低价时,算出来的随机上限有可能会比最低价还低
                $bar = mt_rand((int)$min * 100, (int)$max * 100) / 100;
            }

            if ($bar > $total ) {
   
                return $this->bar($total,$num, $min,$max,$level + 1);
            }
            // 保留两位小数
            return  $bar = sprintf("%.2f", $bar);   //砍掉的金额
        }
    }

    public function firstBar($uid,$bar_id){
   
        $bar_goods = BarGoods::where('id',$bar_id)
            ->field('bar_price,bar_num,bar_min_price,bar_max_price')->find()->toArray();

        list($bar_price,$bar_num,$bar_min_price,$bar_max_price) = array_values($bar_goods);
        $bar = $this->bar($bar_price,$bar_num,$bar_min_price,$bar_max_price); //砍价金额
        $data = [
            'uid'=> $uid,
            'bar_id' =>$bar_id,
            'bar_uid' =>$uid,
            'bar_price' => $bar,
            'old_price'=> $bar_price-$bar,
            'old_num' => $bar_num-1
        ];
        return  $model = BarRecord::create($data);
    }

    public function lastBar($uid,$bar_id,$bar_uid){
   
        $where = [
            'uid'=>$uid,
            'bar_id' =>$bar_id
        ];
        $BarRecord = BarRecord::where($where)->order('old_price','asc'
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
 砍价砍价商城小程序轻松搭建您的微信砍价小程序,强力度营销插件配合活动迅速吸粉变现。   ·多活动支持,每个活动单独设置砍价规则·支持货到付款及在线支付双重支付方式·抢购+砍价有效留存用户·每个用户可设置帮砍次数,有效屏蔽刷量 模块介绍: 砍价砍价商城小程序轻松搭建您的微信砍价小程序,强力度营销插件配合活动迅速吸粉变现。·多活动支持,每个活动单独设置砍价规则 ·支持货到付款及在线支付双重支付方式 ·抢购+砍价有效留存用户 ·每个用户可设置帮砍次数,有效屏蔽刷量 功能特色: 砍价+抢购双重营销多种订单模式适配活动设置多样性 支持多活动,单个活动可单独设置砍价规则,好友帮砍次数。 同时支持运费及商品类型设置。 适用不同行业 活动分商品类和服务类。可适配不同的行业需求,商品类活动用户提交订单后后台设置物流单号发货。服务类活动用户提交订单后自动生成二维码,凭二维码到线下门店核销。 砍价+抢购双重营销 同时支持砍价+抢购双重营销,后台活动管理中可随时开启。 适用于不同的用户需求。多商户多店员灵活管理 多商户灵活管理。不同活动及店员关联不同商户,后续还将开启商户端管理功能。 活动地域限制 适用于制作地区业务的用户。活动管理可开启地域限制,输入城市名称即可限制可参与活动的地区。 多种模板消息支持 后台自动生成模板消息,支持发起砍价砍价成功、订单提交成功、活动开始提醒等多种消息提示。 可无限生成小程序 一次购买砍价宝,可无限次生成小程序,不同小程序活动、订单等其他数据均独立,互不影响。 版本更新: 版本号:7.2.0 - 砍价_抢购_拼团 [优化]优化了开启抢购分享赚后海报生成时因文件名重叠而导致扫码后活动相同的问题。 [优化]修复了后台广告设置无法保存的问题。 [优化]修复了首页拼团列表拼团参与数为0的问题。 本次更新后请及时提交小程序端审核。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值