source = $this->request->header('source'); $this->merId = $this->request->header('merId'); } //首页商品列表 public function product_lst() { [$page, $limit] = $this->getPage(); $ProductRepository=app() -> make(ProductRepository::class); $where=[ 'is_used'=>1, 'mer_status'=>1, 'is_show'=>1, 'is_hide'=>0, 'is_del' => 0, 'status' => 1, ]; $product_id_yin = explode('=',systemConfig('product_ids_yin')); $Productmodel=new Product(); $da_cang_product=$Productmodel->where('type',5) ->whereNotIn('product_id',$product_id_yin)->where($where)->page($page,50)->order('returrn_profit_rate DESC')->select()->toArray(); foreach ($da_cang_product as &$da_cang){ $da_cang['flag']='1'; // $da_cang['yanglao']=bcmul(bcmul($da_cang['dc_price'],'0.1',2),'0.5',2); $da_cang['yanglao']=set_price_rtrim($ProductRepository->yanglaojin($da_cang['product_id'])); $dacang_price=Db::name('store_product_attr_value')->where('product_id',$da_cang['product_id'])->order('dacang_price','asc')->limit(1)->value('dacang_price'); $da_cang['da_cang_price']=set_price_rtrim($dacang_price); $da_cang['shop_name'] = Db::name('merchant')->where('mer_id',$da_cang['mer_id'])->value('mer_name'); } return app('json')->success($da_cang_product); } //会员免费商品 public function free_product() { $Productmodel=new Product(); $data=$Productmodel->field('store_name,image,price,product_id')->where('product_id',systemConfig('vip_exclusive_product'))->find(); if($data) return app('json')->success($data); return app('json')->fail('暂无数据'); } //大仓banner public function banner($type) { if($this->source=='yhc'){ $banner = merchantGroupData($this->merId,$type); }else{ $banner = systemGroupData($type); } return app('json')->success($banner); } //签到 public function sgin() { $uid=$this->request->uid(); $year=date('Y',time()); $month=date('m',time()); $day=date('d',time()); //查到最后一天签到记录 $signdata=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->find(); if($signdata){ if($year==$signdata['year']&&$month==$signdata['month']&&$day==$signdata['day']){ return app('json')->fail('今日已签到'); } } //第一天签到获得2积分,第二天获得4积分,第三天获得6积分,第四天获得 10 积分,第五天获得 14积分第六天获得 20积分, //连续签到从第七天开始,每日签到获得3积分,第七天连续签到额外奖励 38积分,第 14 天连续签到额外奖励 68 积分,第 21天连续签到额外奖励 128 积分第 30 天连续签到额外奖励 188 积分 $guizeList = ['1'=>2,'2'=>4,'3'=>6,'4'=>10,'5'=>14,'6'=>20]; $guizeLxList = [['sizi'=>7, 'value'=> 38], ['sizi'=>14, 'value'=> 68], ['sizi'=>21, 'value'=> 38], ['sizi'=>30, 'value'=> 188]];//连续签到额外奖励 if(!$signdata){ $pension=$this->one_sign($uid); }elseif($signdata['num']>=1&&$signdata['num']<7){ $res=$this->lianxu_sign($signdata['day'],$uid); if($res==0){ $this->one_sign($uid); }else { $pension = rand('1', '50'); $pension=$pension*0.01; $score = $guizeList[$signdata['num']]??3; $this->sign_add($uid, $score,1,'签到赠送积分','',''); Db::name('sign')->insert(['uid' => $uid, 'year' => $year, 'month' => $month, 'day' => $day,'num' => $signdata['num'] + 1, 'score' => $score, 'pension' => $pension, 'status' => 1]); } }elseif($signdata['num'] >= 7){ $res=$this->lianxu_sign($signdata['day'],$uid); if($res==0){ Db::name('sign')->where('uid',$uid)->update(['status'=>3]); $this->one_sign($uid); }else { $pension = rand('10', '100'); $pension=$pension*0.01; $score = $guizeList[$signdata['num']]??3; $this->sign_add($uid, $score,1,'签到赠送积分','',''); $scoreGw = 0; foreach ($guizeLxList as $val) { if ($signdata['num'] >= $val['sizi']) { $scoreGw = $val['value']; } } if($scoreGw > 0){ $this->sign_add($uid, $score,1,'连续签到赠送额外奖励积分','',''); } Db::name('sign')->insert(['uid' => $uid, 'year' => $year, 'month' => $month, 'day' => $day, 'num' => $signdata['num'] + 1, 'score' => $score, 'pension' => $pension, 'status' => 1]); } }else{ $pension='0.00'; } return app('json')->success($pension); } //首次签到 public function one_sign($uid) { $year=date('Y',time()); $month=date('m',time()); $day=date('d',time()); $pension=['0.5','0.6','1']; $pensions=array_rand($pension); Db::name('sign')->insert(['uid'=>$uid,'year'=>$year,'month'=>$month,'day'=>$day,'num'=>1,'pension'=>$pension[$pensions],'status'=>1]); // //首次签到送30积分,同时赠送邀请人30积分 // $this->sign_add($uid, 30,1,'首次签到送30积分','',''); // $member_info = Db::name('user')->where( array('uid' => $uid) )->find(); // if($member_info['spread_uid']){ // $spreadUid = $member_info['spread_uid']; // $this->sign_add($spreadUid, 30,1,'邀请人首次签到送30积分','',''); // } return $pension[$pensions]; } /** * @param int $uid 用户ID * @param string $score 积分 * @param int $status 积分状态 * @param string $mark 备注 * @param string $has_qian 连续签到天数 * @param string $today_signintime 签到时间 * @param int $order_id 订单ID * @param int $pm 1-收入。2-支出 * @param string $order_type * @throws DbException */ public function sign_add($uid, $score, $status, $mark, $has_qian = '', $today_signintime = '', $order_id = 0, $pm = 1, $order_type = '',$type='',$settlement_time = '') { if(!in_array($type,[1,2])){ // 其他情况都直接返回,因为目前只有365专区购买才可以获得 return false; } $ins_data['uid'] = $uid; $ins_data['continuity_day'] = $has_qian; $ins_data['reward_socre'] = $score; $ins_data['signin_time'] = $today_signintime; $ins_data['addtime'] = time(); $ins_data['status'] = $status; $ins_data['mark'] = $mark; $ins_data['type'] = $type; $ins_data['settlement_time'] = $settlement_time;// 结算时间 真正到了结算时间会结算 $ins_data['order_id'] = $order_id; $ins_data['pm'] = $pm; $ins_data['order_type'] = $order_type; Db::name('user_sign_score')->insertGetId($ins_data); if($pm == 1 && $status == 1){ Db::name('user')->where('uid',$uid)->inc('score', $score)->update(); } if($pm == 2){ Db::name('user')->where('uid', $uid)->dec('score', $score)->update(); } } //签到是否正常 public function lianxu_sign($day,$uid) { $data=date('d',time()-86400); if($data==$day){ return 1;//正常签到 }else{ Db::name('sign')->where('uid',$uid)->where('status','1')->update(['status'=>3]); return 0;//中断签到 } } //每日结算已达到九天签到的养老金 public function jiesuanpension() { //已达到九天的用户 $uid=Db::name('sign')->where('num',9)->where('status',1)->field('uid,id')->select()->toArray(); $pension=0; foreach ($uid as $k => $v){ $pension=Db::name('sign')->where('uid',$v['uid'])->where('status',1)->sum('pension'); if($pension!=0) { $billData = [ 'uid' => $v['uid'], 'link_id' => 0, 'pm' => 1, 'title' => '签到养老金', 'category' => 'now_money', 'type' => 'commission', 'number' => $pension, 'balance' => 0, 'mark' => '连续签到9天得' . $pension . '养老金', 'create_time' => date("Y-m-d H:i:s", time()), 'status' => 1, 'order_sn' => "111111111111111111", 'type_shop' => 0, 'commission_type' => 5, 'order_type' => 1, 'source' => 0, 'gzc' => 0, ]; Db::name('user_bill')->insert($billData); Db::name('sign')->where('uid',$v['uid'])->where('status',1)->update(['status'=>2]); Db::name('user')->where('uid',$v['uid'])->inc('annuity',$pension); Db::name('user')->where('uid',$v['uid'])->inc('annuity_num',1); } echo "签到:给用户".$v['uid'].'--'.$pension.'养老金';echo "
"; } } public function sign_lst() { $uid=$this->request->uid(); $today=date('d',time()); $year=date('Y',time()); $month=date('m',time()); //签到天数 $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->find(); if($sign_day){ if($today!=$sign_day['day']||$sign_day['year']!=$year||$month!=$sign_day['month']) { $res = $this->lianxu_sign($sign_day['day'], $uid); if ($res==1) { $sign_day = $sign_day['num']; } else { $sign_day = 0; } }else{ $sign_day=$sign_day['num']; } }else{ $sign_day=0; } $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension'); $return_data=['pension'=>$pensions,'sign_day'=>$sign_day]; return app('json')->success($return_data); // //查今天有没有签到 // $data=explode("-",date('Y-m-d')); // $year = $data[0]; // $month = $data[1]; // $day = $data[2]; // $signdata=Db::name('sign') // ->where('uid',$uid) // ->where('status',1) // ->where('year',$year) // ->where('month',$month) // ->where('day',$day) // ->find(); // dump($signdata); // if($signdata){ // $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension'); // //签到天数 // $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->value('num'); // }else{ // //查昨天有没有签到 // $data=explode("-",date('Y-m-d',time()-86400)); // $year = $data[0]; // $month = $data[1]; // $day = $data[2]; // $signdata=Db::name('sign') // ->where('uid',$uid) // ->where('status',1) // ->where('year',$year) // ->where('month',$month) // ->where('day',$day) // ->find(); // //昨天没有签到 // if(!$signdata){ // $pensions=$sign_day=0; // }else{ // //昨天签到了 // $pensions=Db::name('sign')->where('uid',$uid)->where('status',1)->sum('pension'); // //签到天数 // $sign_day=Db::name('sign')->where('uid',$uid)->where('status',1)->order('num','desc')->value('num'); // } // } $return_data=['pension'=>$pensions,'sign_day'=>$sign_day??0]; return app('json')->success($return_data); } public function sign_today() { $uid=$this->request->uid(); $today=date('d',time()); $year=date('Y',time()); $month=date('m',time()); $where=[ 'day'=>$today, 'month'=>$month, 'year'=>$year ]; $res=Db::name('sign')->where('uid',$uid)->where($where)->find(); if($res){ return app('json')->success(1); }else{ return app('json')->success(0); } } }