123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- <?php
- namespace app\api\controller;
- use app\common\controller\Api;
- use think\Db;
- /**
- * 示例接口
- */
- class Demo extends Api
- {
- //如果$noNeedLogin为空表示所有接口都需要登录才能请求
- //如果$noNeedRight为空表示所有接口都需要验证权限才能请求
- //如果接口已经设置无需登录,那也就无需鉴权了
- //
- // 无需登录的接口,*表示全部
- protected $noNeedLogin = ['*'];
- // 无需鉴权的接口,*表示全部
- protected $noNeedRight = ['*'];
- /**
- * 测试方法
- *
- * @ApiTitle (测试名称)
- * @ApiSummary (测试描述信息)
- * @ApiMethod (POST)
- * @ApiRoute (/api/demo/test/id/{id}/name/{name})
- * @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
- * @ApiParams (name="id", type="integer", required=true, description="会员ID")
- * @ApiParams (name="name", type="string", required=true, description="用户名")
- * @ApiParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据")
- * @ApiReturnParams (name="code", type="integer", required=true, sample="0")
- * @ApiReturnParams (name="msg", type="string", required=true, sample="返回成功")
- * @ApiReturnParams (name="data", type="object", sample="{'user_id':'int','user_name':'string','profile':{'email':'string','age':'integer'}}", description="扩展数据返回")
- * @ApiReturn ({
- 'code':'1',
- 'msg':'返回成功'
- })
- */
- public function test()
- {
- $this->success('返回成功', $this->request->param());
- }
- /**
- * 无需登录的接口
- *
- */
- public function test1()
- {
- $this->success('返回成功', ['action' => 'test1']);
- }
- /**
- * 需要登录的接口
- *
- */
- public function test2()
- {
- $this->success('返回成功', ['action' => 'test2']);
- }
- /**
- * 需要登录且需要验证有相应组的权限
- *
- */
- public function test3()
- {
- $this->success('返回成功', ['action' => 'test3']);
- }
- //订单算奖金。计划任务的逻辑
- public function test4(){
- $order_id = 488359520289034240;
- $product_list = Db::name('unishop_order_product')->where('order_id',$order_id)->select();//已支付
- foreach($product_list as $key => $product){
- //收益
- $shouyi = bcmul($product['number'],$product['pifa_shouyi'],0);
- }
- $user_id = 1;
- //我的下级数量
- Db::name('user')->where('intro_uid',$user_id)->count();
- //我的上级id
- $my_intro_uid = Db::name('user')->where('id',$user_id)->value('intro_uid');
- //我的上上级id
- $two_intro_uid =Db::name('user')->where('id',$my_intro_uid)->value('intro_uid') ?: 0;
- }
- public function auto_order(){
- $nowtime = time();
- $toweek = date('w',$nowtime);
- if($toweek == 0){
- //周日不结算(自动到下周一结算)
- exit;
- }
- $tendays_ago = $this->jiesuan_tendays_ago();
- //
- Db::startTrans();
- $order_map = [
- 'status' => 1,
- 'have_paid' => ['lt',$tendays_ago],
- 'jiesuantime' => 0,
- ];
- $order_list = Db::name('unishop_order')->where($order_map)->where('have_paid','gt',0)->limit(10)->select();
- foreach($order_list as $key => $order){
- //获取直推人数
- //获取业绩
- //确定代理商等级,拿对应比例
- //给直推
- //给间推
- //标记为结算
- $jiesuan = Db::name('unishop_order')->where('id',$order['id'])->update(['jiesuantime'=>$nowtime]);
- //批发的都卖出
- $pifa = Db::name('unishop_order_product')->where('order_id',$order['id'])->update(['pifa_status'=>1]);
- }
- Db::rollback();
- }
- //结算要按10天算
- public function jiesuan_tendays_ago(){
- $nowtime = time();
- /*if(input('date','')){
- $nowtime = strtotime(input('date',''));
- }*/
- $today = strtotime(date('Y-m-d',$nowtime));
- $toweek = date('w',$nowtime);
- $enum = [
- 1 => 11,
- 2 => 11,
- 3 => 11,
- 4 => 10,
- 5 => 10,
- 6 => 10,
- 0 => 10, //这一天没人结算
- ];
- $rs = $today - ($enum[$toweek] * 86400);
- // dump(date('Y-m-d',$rs));
- return $rs;
- }
- }
|