当前位置: 首页 > Web前端 > vue.js

如何付费知识开通配送功能

时间:2023-03-31 22:36:55 vue.js

首先我们要知道什么是配送系统?分销系统是指通过互联网将供应商和经销商有机联系起来,为企业经营和与贸易伙伴的合作提供了一种全新的模式。供应商、分公司、经销商实时提交业务单据,查询产品供应和库存状态,获取市场、销售信息和客户支持,实现供应商、分公司、经销商端到端的沟通供应链管理有效缩短供应链。付费知识的分发功能主要体现在特色课程和会员模块上;用户购买特色课程和会员后,会给用户的上级和上级返利。那么分配制度是如何实施的呢?在知识付费系统中,如果一个用户在进入系统时有上级信息,那么这个用户就是其他用户开发的下属,我们需要记录用户的上级信息。数据库用户表eb_user中有一个字段spread_uid(promoterid),记录了用户的上级id。首先确定什么时候执行分配函数?分发函数的执行必须在订单完成后执行,避免大部分用户退款后佣金返还的问题。然后是分发代码的编写。知识有偿分配分为全员分配和指定分配;人人分发是指系统内所有用户都可以参与分发活动,下级用户购买后可以获得佣金。指定分配是指只有拥有系统设置推广权限的用户,子用户购买后才能获得提成。因为知识付费的分配是二次分配,所以我们直接写了一级返利和二级返利的方法。一级返利执行完毕后,再执行二级返利。这是最简单的分配逻辑。.以特色课程为例,特色课程购买成功后,将实行返利。(注:以下代码为部分代码,详见知识付费https://gitee.com/ZhongBangKe...)/**//TODO主题支付成功后@param$orderId@param$notify@返回bool*/publicstaticfunctionpaySuccess($orderId){$order=self::where('order_id',$orderId)->where('type',0)->find();if(!$order)返回false;用户::bcInc($order['uid'],'pay_count',1,'uid');$res=self::where('order_id',$orderId)->where('type',0)->update(['paid'=>1,'pay_time'=>time()]);try{//特价返利User::backOrderBrokerage($order);}catch(\Throwable$e){}StoreOrderStatus::status($order->id,'pay_success','用户支付成功');returnfalse!==$res;}/**一级推广主题@param$orderInfo@returnbool*/publicstaticfunctionbackOrderBrokerage($orderInfo){$userInfo=User::getUserInfo($orderInfo['uid']);if(!$userInfo||!$userInfo['spread_uid'])returntrue;$course_distribution_switch=SystemConfigService::get('course_distribution_switch');//课程分配开关if($course_distribution_switch==0)returntrue;$storeBrokerageStatu=SystemConfigService::get('store_brokerage_statu')?:1;//获取后台分布类型if($storeBrokerageStatu==1){if(!User::be(['uid'=>$userInfo['spread_uid'],'is_promoter'=>1]))returntrue;}$brokerageRatio=bcdiv(SystemConfigService::get('store_brokerage_ratio'),100,2);if($brokerageRatio<=0)returntrue;$brokeragePrice=bcmul($orderInfo['pay_price'],$brokerageRatio,2);if($brokeragePrice<=0)returntrue;$mark='Level1Promoter'.$userInfo['nickname'].'Consumption'.floatval($orderInfo['pay_price'])。'采购特价,奖励促销佣金'.floatval($brokeragePrice);self::beginTrans();$res1=UserBill::income('采购特价返利',$userInfo['spread_uid'],'now_money','经纪',$brokeragePrice,$orderInfo['id'],0,$mark);$res2=self::bcInc($userInfo['spread_uid'],'brokerage_price',$brokeragePrice,'uid');$res=$res1&&$res2;self::checkTrans($res);if($res))self::backOrderBrokerageTwo($orderInfo);return$res;}/**二级推广主题@param$orderInfo@returnbool*/publicstaticfunctionbackOrderBrokerageTwo($orderInfo){$userInfo=User::getUserInfo($orderInfo['uid']);$userInfoTwo=User::getUserInfo($userInfo['spread_uid']);if(!$userInfoTwo||!$userInfoTwo['spread_uid'])返回真;$course_distribution_switch=SystemConfigService::get('course_distribution_switch');//课程分配开关if($course_distribution_switch==0)returntrue;$storeBrokerageStatu=SystemConfigService::get('store_brokerage_statu')?:1;//获取后台分布类型if($storeBrokerageStatu==1){if(!User::be(['uid'=>$userInfoTwo['spread_uid'],'is_promoter'=>1]))returntrue;}$brokerageRatio=bcdiv(SystemConfigService::get('store_brokerage_two'),100,2);if($brokerageRatio<=0)returntrue;$brokeragePrice=bcmul($orderInfo['pay_price'],$brokerageRatio,2);如果($brokeragePrice<=0)返回真;$mark='二级推荐人'.$userInfo['昵称'].'消耗'。floatval($orderInfo['pay_price'])。'元购买主题,奖励推广提成'.floatval($brokeragePrice);self::beginTrans();$res1=UserBill::income('采购特价返利',$userInfoTwo['spread_uid'],'now_money','brokerage',$brokeragePrice,$orderInfo['id'],0,$mark);$res2=self::bcInc($userInfoTwo['spread_uid'],'brokerage_price',$brokeragePrice,'uid');$res=$res1&&$res2;self::checkTrans($res);返回$res;}二次分发这样的特色课程就可以了。如果要加三级分配,我们逻辑一样,拿到二级上级,再判断返利。如果您觉得本文对您有用,请给我们点个开源项目star:http://github.crmeb.net/u/defu非常感谢!