唐古拉优选系统开发,拼团系统开发的主要方法

拼团的系统有很多,但最近唐古拉优选拼团系统现在是非常的激烈,开发的定制的需求是越来越有创新性,钦钦技术栈为您分享了一段唐古拉优选系统的一段源代码,供你下载参考。

唐古拉优选拼团系统核心代码如下

//
public static function completeGroup()
    {
        $fpff = fopen("./fflock.txt", "w+");
        $author = '';
 
        if(flock($fpff,LOCK_EX)){
 
            $pinkListEndWin = self::pinkListEndWin();
 
            if (!$pinkListEndWin) return true;
            $pinkListEndWin = $pinkListEndWin->toArray();
            foreach ($pinkListEndWin as $key => $value) {
                $countPeople = (int)bcadd(StorePink::where('k_id', $value['id'])->count(), 1, 0);
                //如果拼团人数未达到
                if ($countPeople < $value['people']){
                    continue;
                }
 
                $pinkLists = StorePink::where('k_id', $value['id'])->column('id', 'id');
                $pinkLists[] = $value['id'];
                $pinkLists = array_values($pinkLists);
 
                //随机出中奖者
                $win_id_index = array_rand($pinkLists,1);
                //$win_id_index = 12;
                $win_id = $pinkLists[$win_id_index];
                if( !$win_id )
                    continue;
 
                try{
                    self::beginTrans();
 
                    //
                    StorePink::where('id','IN',$pinkLists)->update(['is_win'=>1]);
 
                    /** ::todo 中奖处理开始 */
                    //拼团中奖
                    unset($pinkLists[$win_id_index]);
                    $win_info = StorePink::get($win_id);
                    if( ! $win_info )
                        continue;
                    $win_info = $win_info->toArray();
 
                    //发放中奖的推荐奖励
                    self::sendRecommendReward($win_info['uid'],$win_info['price'],$win_info['cid'],0);
 
                    //修改订单状态
                    $update_info = [
                        'status' => 2, //订单状态,
                    ];
                    StoreOrder::update($update_info,['order_id'=>$win_info['order_id']]);
                    /** ::todo 未中奖处理开始 */
                    self::failRefundPink($pinkLists);//申请退款
 
                    self::commitTrans();
                } catch (\Exception $e)
                {
                    self::rollbackTrans();
                    var_dump($e->getMessage());
                    continue;
                }
            }
            flock($fpff,LOCK_UN);
        }
 
        fclose($fpff);
    }
 
    /**
     * 获取拼团数据
     * @return \think\Collection
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function pinkListEndWin()
    {
        $model = StorePink::field('id,people');//开团编号
        $model = $model->where('stop_time', '<=', time());//小于当前时间
        $model = $model->where('status', 2);//进行中的拼团
        $model = $model->where('k_id', 0);//团长
        $model = $model->where('is_win', 0);//是否开奖
        $model = $model->where('is_refund', 0);//未退款
        return $model->select();
    }
 
    /**
     * 发放推广奖励
     * @param $uid
     * @param $price
     * @param $cid
     * @param int $type
     * @return mixed
     * @throws \think\Exception
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\DbException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function sendRecommendReward($uid,$price,$cid,$type=0)
    {
        $user_info = User::getUserInfo($uid);
        if( $user_info['spread_uid'] > 0 )
        {
            $combination_info = self::find($cid);
            if( $combination_info )
                $combination_info = $combination_info->toArray();
 
            $spreadUserInfo = User::getUserInfo($user_info['spread_uid']);
            if( $spreadUserInfo )
            {
                $reward_rate = $type ? $combination_info['indirect_recommend_tate'] : $combination_info['direct_recommend_tate'];
                $reward_num = bcmul($price,$reward_rate/100,2);
                if($reward_num){
 
                    $note = $type ? '间推奖励' : '直推奖励';
                    User::bcInc($spreadUserInfo['uid'], 'now_money', $reward_num, 'uid');
                    UserBill::income($note, $spreadUserInfo['uid'], 'now_money', 'product_profits', $reward_num, $combination_info['product_id'], bcadd($spreadUserInfo['now_money'], $reward_num, 2), $note . floatval($price) . '元');
                    if( $spreadUserInfo['spread_uid'] > 0 && $type == 0 )
                        return self::sendRecommendReward($spreadUserInfo['uid'],$price,$cid,1);
 
                }
            }
        }
    }
 
 
    /**
     * 拼团未中 申请退款
     * @param $pinkList
     * @return bool
     * @throws \think\Exception
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function failRefundPink($pinkList)
    {
 
        $refundPinkList = StorePink::where('id', 'IN', $pinkList)->column('order_id,uid,price,id,cid,people,pid', 'id');
 
        if (!count($refundPinkList)) return true;
 
        foreach ($refundPinkList as $key => $item) {
            $fail_rebate_rate = self::where('id', $item['cid'])->value('fail_rebate_rate');
            if( $fail_rebate_rate < 0 )
                return false;
 
            $refund_price = bcdiv($item['price']*$fail_rebate_rate/100,$item['people']-1,2);
 
            $user_info = User::getUserInfo($item['uid']);
 
            //拼团未中奖返点
            User::bcInc($item['uid'], 'now_money', $refund_price, 'uid');
            UserBill::income('拼团未中奖', $item['uid'], 'now_money', 'product_profits', $refund_price, $item['pid'], bcadd($user_info['now_money'], $refund_price, 2), '拼团未中奖' . floatval($refund_price) . '元');
 
            User::bcInc($item['uid'], 'now_money', $item['price'], 'uid');
            UserBill::income('拼团未中奖退款', $item['uid'], 'now_money', 'product_profits', $item['price'], $item['pid'], bcadd($item['price'],bcadd($user_info['now_money'], $refund_price, 2),2), '拼团未中奖退款' . floatval($refund_price) . '元');
 
            //退款
            self::ptorderApplyRefund($item['order_id'], $item['uid'], '拼团未中奖');//申请退款
 
            //修改拼团订单状态
            StorePink::where('id', $item['id'])->update(['status' => 3]);
 
        }
    }
 
 
 
    /**
     * 退款处理
     * @param $uni
     * @param $uid
     * @param string $refundReasonWap
     * @param string $refundReasonWapExplain
     * @param array $refundReasonWapImg
     * @return bool
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     */
    public static function ptorderApplyRefund($uni, $uid, $refundReasonWap = '', $refundReasonWapExplain = '', $refundReasonWapImg = [])
    {
        $order = StoreOrder::getUserOrderDetail($uid, $uni);
        if (!$order) return self::setErrorInfo('');
        if ($order['refund_status'] == 2) return self::setErrorInfo('订单已退款!');
        if ($order['refund_status'] == 1) return self::setErrorInfo('正在申请退款中!');
        if ($order['status'] == 1) return self::setErrorInfo('订单当前无法退款!');
 
        $res1 = false !== StoreOrderStatus::status($order['id'], 'apply_refund', '用户申请退款,原因:' . $refundReasonWap);
        $res2 = false !== StoreOrder::edit(['status'=>'-1','refund_status' => 2, 'refund_reason_time' => time(), 'refund_reason_wap' => $refundReasonWap, 'refund_reason_wap_explain' => $refundReasonWapExplain, 'refund_reason_wap_img' => json_encode($refundReasonWapImg)], $order['id'], 'id');
        $author = '';
 

唐古拉优选系统的核心玩法:

这是整个拼团玩法里面,用户最多,覆盖面最广的玩法。这种玩法通常都是选择截止高、噱头大、话题及传播性强的产品作为拼团商品。

唐古拉优选系统的核心玩法
唐古拉优选系统的核心玩法

主要参与流程如下:

1.用户参与拼团并成团

2.在成团后,系统会进行抽奖

3.被抽中的用户才可以获得拼团商品

4.拼团失败自动退款

5.拼团成功的未中奖用户自动退款同时可获得补偿优惠券

唐古拉优选拼团专区

唐古拉优选拼团,共设五个拼团专区,分别是100元专区、300元专区、500元专区、1000元专区、2000元专区,每个专区都有多种产品,会员可以根据自己的需求选择不同的商品进行拼团。

唐古拉优选参团奖励

20(系统.自动匹配人)参团拼一个100元产品,只有一个人拼中,无论拼中还是拼不中参团一次奖励1元,参团需要活跃度,参团一次消耗一个活跃度。

唐古拉优选活跃度获取方法

1,每天签到领10个活跃度

2,直接推广(一级)一人可获得20活跃度(要求参团一次)

3,间接推广(二级)一人可获得10活跃度(要求参团一次)

创业基金

参团累计拼中5次产品可获得幸运星一颗奖励600元(你拼中了5次,花了500元买了产品,平台奖励600元相当于免费获得了5个产品+100元)

VIP(团队长)

晋升SVIP需要直推5人(这5个人要求最低参团一次)

系统开发选择我们的优势】:

1.我们能定制开发:我们了解市场上的所有的热门案例、热门模式,我们都能为您定制开发。

2、我们有成熟案例:我们有成熟案例,商城、拼团等案例。

唐古拉优选系统是一款以拼团为主的系统,功能还是比较强大的,当然每个平台的拼团模式也有所不同,如果你也感兴趣这款系统可以加微信咨询哦。

版权声明:本文(即:原文链接:https://www.qin1qin.com/catagory/494/)内容由互联网用户自发投稿贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 630367839@qq.com 举报,一经查实,本站将立刻删除。

(1)
上一篇 2022年 6月 26日 7:58:43
下一篇 2022年 6月 27日 11:58:25

软件定制开发公司

相关阅读

发表回复

登录后才能评论
通知:禁止投稿所有关于虚拟货币,币圈类相关文章,发现立即永久封锁账户ID!