dao = $dao; } //商户统计 public function report_form($uid,$merId,$day){ $payPrice = getModelTime(Db::name("store_order")->where('paid', 1)->where("status","<>",-1)->when($merId, function ($query, $merId) { $query->where('mer_id', $merId); }), $day, 'pay_time')->sum('mer_money'); if($payPrice <= 0){ //支付金额 //也就是应到金额 //也可以是已到金额 $payPrice=getModelTime(Db::name("store_order")->where('paid', 1)->where("status","<>",-1)->when($merId, function ($query, $merId) { $query->where('mer_id', $merId); }), $day, 'pay_time')->sum('pay_price'); $extension_one=getModelTime(Db::name("store_order")->where('paid', 1)->where("status","<>",-1)->when($merId, function ($query, $merId) { $query->where('mer_id', $merId); }), $day, 'pay_time')->sum('extension_one'); $payPrice = $payPrice - $extension_one; } if ($day=="today"){ $day_where=[ date("Y-m-d")." 0:0:0", date("Y-m-d")." 23:59:59" ]; }elseif ($day=="yesterday"){ $day_where=[ date("Y-m-d",strtotime("-1 day"))." 0:0:0", date("Y-m-d",strtotime("-1 day"))." 23:59:59" ]; }else{ $day_where=[ $day." 0:0:0", $day." 23:59:59" ]; } //锁定会员 $userlist=Db::name("store_order") ->alias("so") ->join("user u","u.uid=so.uid") ->where(['paid'=>1,"so.mer_id"=>$merId]) ->where("so.create_time","between time",$day_where) ->group("so.uid") ->field("u.mer_id,u.uid") ->select(); $lockUserNo=0; $lockUser=Db::name("user") ->where(["mer_id"=>$merId]) ->whereTime('locktime','between',$day_where) ->count(); $lockunion_users=Db::name("union_users") ->where(["lock_mer_id"=>$merId]) ->whereTime('lock_time','between',$day_where) ->count(); $lockUser=$lockUser+$lockunion_users; $payYang=Db::name("user_bill") ->where(["commission_type"=>3,"uid"=>$uid]) ->where('create_time','between time',$day_where) ->sum("number"); //会员数 $userCount=$lockUser+$lockUserNo; //储蓄金额 $chuxu=0; //储蓄人数 $chuxuren=0; //锁定会员返利 $lockUserfan=Db::name("user_bill")->where("uid",$uid) ->where("create_time","between time",$day_where)->sum("number"); //跨店收入 $kuadian=Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>7]) ->where("create_time","between time",$day_where)->sum("number"); //推荐人 $recommender=Db::name("merchant")->where("mer_id",$merId) ->where("create_time","between time",$day_where)->value("recommender"); $jiangli=Db::name("user_bill") ->alias("ub") ->join("store_order so","so.order_sn=ub.order_sn") ->where(["so.uid"=>$recommender,"commission_type"=>3,"so.mer_id"=>$merId]) ->where("so.create_time","between time",$day_where) ->count(); //商家线下充值获得金额 $offlineRecharge1 = Db::name('order_merchant') ->where("mer_id", $merId) ->where('status', 1) ->where("create_time","between time",$day_where) ->sum('money'); $offlineRecharge2 = Db::name('order_merchant') ->where("mer_id", $merId) ->where('status', 1) ->where("create_time","between time",$day_where) ->sum('available'); $souxufee = Db::name('order_merchant') ->where("mer_id", $merId) ->where('status', 1) ->where("create_time","between time",$day_where) ->sum('swipe_fee'); //sat刷卡手续费比例 // $souxufee = systemConfig('yanglao'); // $offlineRecharge = bcmul($offlineRecharge1, (100 - $souxufee) * 0.01, 2); // $offlineRecharge = bcsub($offlineRecharge, $offlineRecharge2, 2); $offlineRecharge=bcsub($offlineRecharge1,bcadd($offlineRecharge2,$souxufee,2),2); //消费分 $startTime = strtotime('today'); $endTime = strtotime('tomorrow -1second'); $score = Db::name('merchant_consumption_score_log') -> where('mer_id',$merId) ->where('status','<>',2) ->where("add_time >= '$startTime' and add_time <= '$endTime'") -> sum('consumption_score'); return ["score"=>$score,"payPrice"=>$payPrice,"realtoPrice"=>$kuadian,"lockUser"=>$lockUser,"lockUserNo"=>$lockUserNo,"payYang"=>$payYang,"userCount"=>$userCount,"chuxu"=>$chuxu,"chuxuren"=>$chuxuren,"lockUserfan"=>$lockUserfan,"jiangli"=>$jiangli,"xiaofei"=>0,"offlineRecharge"=>$offlineRecharge]; } //商户 public function index($uid,$where) { if ($where["mer_id"]){ // $where["branch"]=1; }else{ $where=[]; $where["branch"]=0; $where["uid"]=$uid; } $mer=Db::name("merchant") ->alias("m") ->join("merchant_category mc","mc.merchant_category_id=m.category_id","left") ->where($where) ->field("mer_id,mer_name,mer_avatar,m.create_time,mc.category_name,mer_phone,consumption_score")->find(); if ($mer){ $mer["paycode"]=""; $base_commission=Db::name("system_config_value") ->where(["mer_id"=>$mer["mer_id"],"config_key"=>"base_commission"]) ->value("value"); $mer["base_commission"]=floatval($base_commission)?$base_commission:0; $yx = Db::name("merchant_yx") ->where(["mer_id"=>$mer["mer_id"],"status"=>1]) ->value("sn"); $mer["yx_sn"] = $yx; return $mer; }else{ // return $uid; $mer_id=Db::name("store_staff")->where("uid",$uid)->value("mer_id"); $where=["mer_id"=>$mer_id]; $mer=Db::name("merchant") ->alias("m") ->join("merchant_category mc","mc.merchant_category_id=m.category_id","left") ->where($where) ->field("mer_id,mer_name,mer_avatar,m.create_time,mc.category_name,mer_phone")->find(); $mer["paycode"]=""; $base_commission=Db::name("system_config_value") ->where(["mer_id"=>$mer["mer_id"],"config_key"=>"base_commission"]) ->value("value"); $mer["base_commission"]=floatval($base_commission)?$base_commission:0; $yx = Db::name("merchant_yx") ->where(["mer_id"=>$mer["mer_id"],"status"=>1]) ->value("sn"); $mer["yx_sn"] = $yx; return $mer; } } public function set_rebate($uid,$data){ $where=[]; $where["mer_id"]=$data["mer_id"]; $where["config_key"]="base_commission"; $merbili=Db::name("system_config_value") ->where($where)->count(); $base_commission = systemConfig('extension_one_rate'); $consumption_score = Db::name('merchant') -> where('uid',$uid) -> where('mer_id',$data['mer_id']) -> field('consumption_score') -> find(); if($consumption_score['consumption_score'] == 1){ $base_commission = $base_commission > 2 ? $base_commission : 2; } if($base_commission>0&&$base_commission>$data["value"]){ return ["code"=>0,"msg"=>"设置比例不可低于".$base_commission."%"]; } if ($merbili){ $mer=Db::name("system_config_value") ->where($where) ->update( [ "value"=>$data["value"] ] ); }else{ $mer=Db::name("system_config_value") ->insert( [ "config_key"=>"base_commission", "mer_id"=>$data["mer_id"], "value"=>$data["value"] ] ); } if ($mer){ // return $mer; return ["code"=>1,"msg"=>"设置成功"]; }else{ // return []; return ["code"=>0,"msg"=>"设置失败"]; } } public function newest_data($uid,$data){ $where=[]; $where["so.mer_id"]=$data["mer_id"]; $where["paid"]=1; $page=empty($data["page"])?1:$data["page"]; $limit=empty($data["limit"])?10:$data["limit"]; $list=Db::name("store_order") ->alias("so") ->where($where) ->join("user u","u.uid=so.uid") // ->group("so.uid") ->field("so.pay_price as ying_price,so.total_price as xf_price,u.uid,u.nickname,u.avatar,u.mer_id") ->page($page,$limit) ->select()->toArray(); // $count=Db::name("store_order") // ->alias("so") // ->where($where) // ->join("user u","u.uid=so.uid") // ->group("so.uid") // ->count(); $list2=Db::name("order_merchant") ->alias("so") ->where($where) ->where(["paid"=>1]) ->field("so.money as ying_price,so.money as xf_price,uid,nickname,avatar,mer_id,pay_user_id") ->page($page,1000) ->order("id desc") ->select()->toArray(); // $users=[]; foreach ($list2 as $k=>&$v){ if ($v["uid"]==0){ $v["uid"]=$v["pay_user_id"]; } $mer_id=Db::name("user")->where(["mer_id"=>$v["mer_id"],"uid"=>$v["uid"]])->count(); $mer_id2=Db::name("union_users")->where(["lock_mer_id"=>$v["mer_id"],"unionid"=>$v["uid"]])->count(); if(!$mer_id&&!$mer_id2){ $v["mer_id"]=0; } unset($list2[$k]["pay_user_id"]); } // if ($users){ // $users=implode(",",$users); // $union_users=Db::name("union_users")->field("lock_time,uid,nickname,avatar,lock_mer_id as mer_id,balance as xf_price")->where(["lock_mer_id"=>$data["mer_id"],"uid"=>["not in",$users]])->select()->toArray(); // }else{ // $union_users=Db::name("union_users")->field("lock_time,uid,nickname,avatar,lock_mer_id as mer_id,balance as xf_price")->where(["lock_mer_id"=>$data["mer_id"]])->select()->toArray(); // } // $newstafflsit=array_merge($union_users,$stafflsit); // foreach ($union_users as &$v){ // $v["ying_price"]=$v["xf_price"]; //// $user_certification=Db::name("mer_id")->where(["uid"=>$v["uid"],"status"=>1])->count(); //// $v["mer_id"] =$user_certification; // } $list=array_merge($list2,$list); // $list=array_merge($list,$union_users); if ($list){ return ["list"=>$list,"count"=>count($list)]; }else{ return []; } } public function branch_list($uid,$data){ $where=[]; // $where["uid"]=$uid; $where["branch"]=$data["mer_id"]; $list=Db::name("merchant") ->where($where) ->field("mer_id,mer_name,mer_avatar,create_time") ->select(); if ($list){ return $list; }else{ return []; } } public function recharge_list($uid,$data){ $where=[]; $where["mer_id"]=$data["mer_id"]; $list=Db::name("recharge") ->where($where) ->select()->toArray(); foreach ($list as &$v){ $v["statime"]=date("Y-m-d",$v["statime"]); $v["endtime"]=date("Y-m-d",$v["endtime"]); } if ($list){ return $list; }else{ return []; } } public function add_recharge($uid,$data){ $where=[]; $where["mer_id"]=$data["mer_id"]; if (!empty($data["statime"])){ $data["statime"]=strtotime($data["statime"]); } if (!empty($data["endtime"])){ $data["endtime"]=strtotime($data["endtime"]); } if ($data["id"]){ $res=Db::name("recharge")->where("id",$data["id"])->update($data); }else{ $res=Db::name("recharge")->insert($data); } if ($res){ return $res; }else{ return []; } } public function get_recharge_on($uid,$data){ $res=Db::name("recharge")->where($data)->find(); if ($res){ return $res; }else{ return []; } } public function del_recharge($uid,$data){ $one=Db::name("recharge")->where("id","in",$data['id'])->find(); if ($one){ $res=Db::name("recharge")->where("id","in",$data['id'])->delete(); }else{ $res=''; } if ($res){ return $res; }else{ return []; } } public function add_staff($uid,$data){ $user= Db::name("user")->where("account",$data["phone"])->find(); if ($user){ $isMerchant = Db::name("merchant") -> where(['uid'=>$user['uid']]) -> find(); if($isMerchant){ throw new ValidateException('此账户是商户,无法添加为员工'); } $staff= Db::name("store_staff")->where("uid",$user["uid"])->find(); if ($staff){ return []; } $data["uid"]=$user["uid"]; }else{ $repository = app()->make(\app\common\repositories\user\UserRepository::class); $user = $repository->registr($data['phone'], $data['password'],'APP',""); $data["uid"]=$user["uid"]; } if (!empty($data["password"])){ unset($data["password"]); } $res=Db::name("store_staff")->insert($data); return $res; } public function staff_list($uid,$data){ $where["sos.mer_id"]=$data["mer_id"]; $where["sos.status"]=1; $page = empty($data["page"])?1:$data["page"]; $limit= empty( $data["limit"])?10:$data["limit"]; $stafflsit= Db::name("store_staff") ->alias("sos") ->join("store_branch sob","sob.id=sos.department") ->join("user u","u.uid=sos.uid") ->where($where) ->page($page,$limit) ->field("sos.*,sob.branch,u.avatar") ->select()->toArray(); $count= Db::name("store_staff") ->alias("sos") ->join("store_branch sob","sob.id=sos.department") ->where($where) ->count(); foreach ($stafflsit as &$v){ $v["pwd"]="******"; } if ($stafflsit){ return ["list"=>$stafflsit,"count"=>$count]; }else{ return []; } } public function get_staff_one($uid,$data){ $staff= Db::name("store_staff") ->where(["id"=>$data["id"]]) ->find(); return $staff; } public function edit_staff($uid,$data){ $staff= Db::name("store_staff") ->where("id",$data["id"]) ->update( $data ); return $staff; } public function del_staff($uid,$data){ if ($data["id"]){ $staff= Db::name("store_staff") ->where("id","in",$data["id"]) ->delete(); }else{ $staff=[]; } return $staff; } public function mer_user($uid,$data){ // $where["paid"]=1; $where[]=["u.mer_id","=",$data["mer_id"]]; // $where["u.mer_id"]=["in","0,".$data["mer_id"]]; if ($data["search"]){ // $where["u.nickname"] =["like","%".$data["search"]."%"]; $where[] =["u.nickname","like","%".$data["search"]."%"]; } $page = empty($data["page"])?1:$data["page"]; $limit= empty( $data["limit"])?10:$data["limit"]; $stafflsit= Db::name("user") ->alias("u") ->where($where) // ->join("store_order so","so.uid=u.uid") // ->page($page,$limit) // sum(so.pay_price) as ying_price,sum(so.total_price) as xf_price ->field("u.uid,u.nickname,u.avatar,u.mer_id") ->select()->toArray(); $count= Db::name("user") ->alias("u") // ->join("store_order so","so.uid=u.uid") ->where($where) ->count(); foreach ($stafflsit as &$v){ if($v["uid"]){ $xf_price=Db::name("order_merchant")->where(["paid"=>1,"uid"=>$v["uid"]])->sum("money"); $xf_price2=Db::name("store_order")->where(["paid"=>1,"uid"=>$v["uid"]])->sum("total_price"); $v["xf_price"]=$xf_price+$xf_price2; } } $wheres=[]; if ($data["search"]){ $wheres[] =["nickname","like","%".$data["search"]."%"]; } $union_users=Db::name("union_users")->where($wheres)->field("uid,nickname,avatar,unionid,lock_mer_id as mer_id,balance as xf_price")->where(["lock_mer_id"=>$data["mer_id"],"uid"=>0])->select()->toArray(); foreach ($union_users as &$v){ $v["uid"]=$v["unionid"]; $v["xf_price"]=Db::name("order_merchant")->where(["paid"=>1,"pay_user_id"=>$v["unionid"]])->sum("money"); } $newstafflsit=array_merge($union_users,$stafflsit); if ($newstafflsit){ return ["list"=>$newstafflsit,"count"=>count($newstafflsit)]; }else{ return []; } } public function mer_user_info($uid,$data){ $userinfo=Db::name("user")->where("uid",$data["uid"]) ->field("uid,nickname,avatar,create_time,mer_id")->find(); $list=Db::name("user_recharge")->where(["mer_id"=>$data["mer_id"],"uid"=>$data["uid"],"paid"=>1])->select()->toArray(); $chonglist=[]; foreach ($list as $v){ $chonglist[]= [ "title"=>"充值", "refund_price"=>$v["refund_price"], "price"=>$v["price"]+$v["give_price"], "create_time"=>$v["create_time"] ]; } if(!$userinfo){ $userinfo=Db::name("union_users")->where("unionid",$data["uid"]) ->field("unionid as uid,nickname,avatar,create_time,lock_mer_id as mer_id")->find(); $lists=Db::name("order_merchant")->where(["pay_user_id"=>$data["uid"],"paid"=>1])->select()->toArray(); // $chonglist=[]; foreach ($lists as $vs){ $chonglist[]= [ "title"=>"充值", "refund_price"=>$vs["money"], "price"=>$vs["money"]+$vs["give_money"], "create_time"=>$vs["create_time"] ]; } }else{ $lists=Db::name("order_merchant")->where(["uid"=>$data["uid"],"paid"=>1])->select()->toArray(); // $chonglist=[]; foreach ($lists as $vs){ $chonglist[]= [ "title"=>"充值", "refund_price"=>$vs["money"], "price"=>$vs["money"]+$vs["give_money"], "create_time"=>$vs["create_time"] ]; } } return ["user_info"=>$userinfo,"consumption"=>$chonglist]; } public function add_branch($uid,$data){ $store_branch=Db::name("store_branch")->where(["branch"=>$data["branch"],"mer_id"=>$data["mer_id"]])->find(); if ($store_branch){ return []; } $res=Db::name("store_branch")->insert($data); return $res; } public function get_branch($uid,$data){ $res=Db::name("store_branch")->where(["mer_id"=>$data["mer_id"]])->select(); return $res; } public function del_branch($uid,$data){ $store_branch=Db::name("store_branch")->where(["id"=>$data["id"],"mer_id"=>$data["mer_id"]])->find(); if ($store_branch){ $res=Db::name("store_branch")->where(["id"=>$store_branch["id"]])->delete(); }else{ $res=[]; } return $res; } public function branch_quanxian($uid){ $res=Db::name("store_branch_jurisdiction")->select(); return $res; } public function lock_count($uid,$data){ //今日新增锁定:会员 // $daylock=Db::name("store_order") // ->alias("so") // ->join("user u","u.uid=so.uid") // ->where(["so.mer_id"=>$data["mer_id"],'paid'=>1,"so.mer_id"=>0]) // ->whereTime("pay_time",'today') // ->group("so.mer_id") // ->count(); $lockUser=Db::name("user") ->where(["mer_id"=>$data["mer_id"]]) ->whereTime("locktime",'today') ->count(); $lockunion_users=Db::name("union_users") ->where(["lock_mer_id"=>$data["mer_id"]]) ->whereTime('lock_time','today') ->count(); $daylock=$lockUser+$lockunion_users; //累计锁定:会员 $lockUsers=Db::name("user") ->where(["mer_id"=>$data["mer_id"]]) ->count(); $lockunion_userss=Db::name("union_users") ->where(["lock_mer_id"=>$data["mer_id"],"uid"=>0]) ->count(); $countlock=$lockUsers+$lockunion_userss; //今日线下奖励 $offlineRecharge1 =Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>3,"type"=>'commission',"source"=>1])->whereTime("create_time",'today')->sum("number"); $dayprice = $offlineRecharge1; // $dayprice=$offlineRecharge; //累计线下奖励 $offlineRecharge22=Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>3,"type"=>'commission',"source"=>1])->sum("number"); $countprice = $offlineRecharge22; // $countprice=0; //今日线上奖励 $dayupprice=Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>["in","2,3,4"],"type"=>'commission'])->whereTime("create_time",'today')->sum("number"); //线上累计奖励 $countupprice=Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>["in","2,3,4"],"type"=>'commission'])->sum("number"); //线上已到账奖励 $daoupprice=Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>["in","2,3,4"],"type"=>'commission'])->where(["uid"=>$uid,"status"=>1])->sum("number"); return [ "daylock"=> $daylock, "countlock"=> $countlock, "dayprice"=>$dayprice, "countprice"=>$countprice, "dayupprice"=>$dayupprice, "countupprice"=>$countupprice, "daoupprice"=>$daoupprice ]; } public function count_price($uid,$data){ $uids=Db::name("merchant")->where("mer_id",$data["mer_id"])->value("uid"); $daoupprice=Db::name("user")->where(["uid"=>$uids])->value("brokerage_price"); // $qiyeprice=Db::name("merchant_reconciliation")->where(["mer_id"=>$data["mer_id"],"status"=>2])->sum("price"); // $daoupprice=Db::name("user_bill")->where(["uid"=>$uid,"commission_type"=>3,"type"=>'commission',"source"=>1])->sum("number"); //商家线下充值获得金额 //商家线下充值获得金额 $offlineRecharge1 = Db::name('order_merchant') ->where("mer_id", $data["mer_id"]) ->where('status', '>', 0) ->sum('money'); $offlineRecharge2 = Db::name('order_merchant') ->where("mer_id", $data["mer_id"]) ->where('status', '>', 0) ->sum('available'); // $payPrice=getModelTime(Db::name("store_order")->where('paid', 1)->when($merId, function ($query, $merId) { // $query->where('mer_id', $merId); // }), $day, 'pay_time')->sum('pay_price'); $payPrice=Db::name("store_order")->where('mer_id', $data["mer_id"])->where('paid', 1)->sum('pay_price'); $offlineRecharge = bcsub($offlineRecharge1, $offlineRecharge2, 2); $qiyeprice=bcadd($offlineRecharge,$payPrice,2); return ["daoupprice"=>$daoupprice,"qiyeprice"=>$qiyeprice]; } public function msg_notice($uid,$data){ $page = empty($data["page"])?1:$data["page"]; $limit= empty( $data["limit"])?10:$data["limit"]; $list=Db::name("notice_shop")->where(["mer_id"=>$data["mer_id"],"is_del"=>0,"status"=>1])->page($page,$limit)->select()->toArray(); $count=Db::name("notice_shop")->where(["mer_id"=>$data["mer_id"],"is_del"=>0,"status"=>1])->count(); return ["list"=>$list,"count"=>$count]; } public function del_notice($uid,$data){ $list=Db::name("notice_shop")->where(["mer_id"=>$data["mer_id"],"is_del"=>0])->update(["is_del"=>1]); return $list; } public function tuijian($uid,$data){ $res=Db::name("user") ->where(["mer_id"=>$data["mer_id"]]) ->field("nickname,avatar,uid") ->select()->toArray(); foreach ($res as &$v){ $v["lock"]=1; } return $res; } public function add_user($uid,$data){ $spread_uid=Db::name("merchant")->where("mer_id",$data["mer_id"])->value("uid"); $user= Db::name("user")->where("account",$data["phone"])->find(); if ($user){ return false; }else{ $data["spread"]=$spread_uid; $repository = app()->make(\app\common\repositories\user\UserRepository::class); $res = $repository->addregistr($data); } return $res; } //商户统计 public function statistical_chart($uid,$merId){ $date=$this->get_weeks(); $categories=$date; $payPrice=[]; $lockUser=[]; $lockUserNo=[]; foreach ($date as $v){ $payPrice[]=$this->payPrice($uid,$merId,$v); $lockUser[]=$this->lockUser($uid,$merId,$v); $lockUserNo[]=$this->lockUserNo($uid,$merId,$v); $payYang[]=$this->payYang($uid,$merId,$v); } $ydPrice=[0,0,0,0,0,0,0]; $series=[ [ "name"=>"营业收入", "data"=>$ydPrice ], [ "name"=>"跨店收入", "data"=>$payPrice ], [ "name"=>"锁定会员数", "data"=>$lockUser ], [ "name"=>"待锁定会员", "data"=>$lockUserNo ], [ "name"=>"推广收入", "data"=>$payYang ] ]; return [ "categories"=>$categories, "series"=>$series ]; } function get_weeks($time = '', $format='Y-m-d'){ $time = $time != '' ? $time : time(); //组合数据 $date = []; for ($i=1; $i<=7; $i++){ $date[] = date($format ,strtotime( '+' . $i-7 .' days', $time)); } return $date; } public function payPrice($uid,$merId,$day) { //支付金额 //也就是应到金额 //也可以是已到金额 // $payPrice = getModelTime(Db::name("store_order")->where('paid', 1)->when($merId, function ($query, $merId) { // $query->where('mer_id', $merId); // }), $day, 'pay_time')->sum('pay_price'); $payPrice =Db::name("store_order") ->where(['paid'=>1,"mer_id"=>$merId]) ->whereTime('pay_time','between',[$day." 0:0:0",$day." 23:59:59"]) ->sum('pay_price'); return $payPrice; } public function lockUser($uid,$merId,$day) { //支付金额 //也就是应到金额 //也可以是已到金额 // $lockUser=Db::name("store_order") // ->alias("so") // ->join("user u","u.uid=so.uid") // ->where(['paid'=>1,"so.mer_id"=>$merId,"u.mer_id"=>$merId]) // ->whereTime('so.create_time','between',[$day." 0:0:0",$day." 23:59:59"]) // ->group("so.uid") // ->count(); $lockUser=Db::name("user") ->where(["mer_id"=>$merId]) ->whereTime('locktime','between',[$day." 0:0:0",$day." 23:59:59"]) ->count(); // $lockUsers $lockunion_users=Db::name("union_users") ->where(["lock_mer_id"=>$merId]) ->whereTime('lock_time','between',[$day." 0:0:0",$day." 23:59:59"]) ->count(); $lockUser=$lockUser+$lockunion_users; return $lockUser; } public function lockUserNo($uid,$merId,$day) { //待锁定 $lockUserNo =Db::name("store_order") ->alias("so") ->join("user u","u.uid=so.uid") ->where(['paid'=>1,"so.mer_id"=>$merId,"u.mer_id"=>0]) ->where('so.create_time','between time',[$day." 0:0:0",$day." 23:59:59"]) ->group("so.uid") ->count(); return $lockUserNo; } public function payYang($uid,$merId,$day) { //贡献养老金 // $payYang=Db::name("store_order") // ->alias("so") // ->join("user_bill u","u.order_sn=so.order_sn") // ->where(['paid'=>1,"u.commission_type"=>3,"so.mer_id"=>$merId]) // $uid $payYang=Db::name("user_bill") ->where(["commission_type"=>3,"uid"=>$uid]) ->where('create_time','between time',[$day." 0:0:0",$day." 23:59:59"]) ->sum("number"); return $payYang; } public function get_mer_info($merId){ if ($merId){ $mer=Db::name("merchant") ->where("mer_id",$merId) ->field("mer_name,mer_id,mer_address,mer_avatar as mer_banner") ->find(); if ($mer){ // "statime"=>["<",time()],"endtime"=>[">",time()], $mer["recharge"]=Db::name("recharge") ->where(["mer_id"=>$merId]) ->whereTime('statime', '<=', time()) ->whereTime('endtime', '>=', time()) ->select(); } return $mer; }else{ return []; } } /** * 根据商户id获取锁定用户数 * ljj * 2021-2-25 * @param $mer_id 商户号 * @return int */ public function get_lock_num($mer_id){ $lockUser=Db::name("user") ->where(["mer_id"=>$mer_id]) ->count(); $lockunion_users=Db::name("union_users") ->where(["lock_mer_id"=>$mer_id]) ->count(); $daylock=$lockUser+$lockunion_users; return $daylock?$daylock:0; } /** * 商户端调整 * 商户会员列表 * ljj 2021/2/27 */ public function new_mer_user($uid,$data){ $where[]=["mer_id","=",$data["mer_id"]]; if ($data["search"]){ $where[] =["u.name","like","%".$data["search"]."%"]; } $page = empty($data["page"])?1:$data["page"]; $limit= empty( $data["limit"])?10:$data["limit"]; $lsit= Db::name("merchant_user") ->where($where) ->page($page,$limit) ->select()->toArray(); $count= Db::name("merchant_user") ->where($where) ->count(); if ($lsit){ return ["list"=>$lsit,"count"=>$count]; }else{ return []; } } /** * 商户端 * ljj 2021/2/27 */ public function new_add_mer_user($uid,$data){ $count=Db::name("merchant_user")->where("phone",$data["phone"])->count(); if($count){ return []; } $id = Db::name("merchant_user")->insertGetId( [ "phone"=>$data["phone"], "mer_id"=>$data["mer_id"], "sex"=>$data["sex"], "birthday"=>$data["birthday"], "name"=>$data["name"], ] ); $MerchantRepository = app()->make( \app\common\repositories\system\merchant\MerchantRepository::class); $codeurl=$MerchantRepository->offlineUserQrcode(intval($data["mer_id"]),$id); return Db::name("merchant_user")->where('id', $id)->update(["codeurl"=>$codeurl]); } /** * 商户端 * ljj 2021/2/27 * 会员详情 */ public function merchant_user_log($uid,$data){ $userinfo=Db::name("merchant_user")->where("id",$data["uid"]) ->find(); if($userinfo){ $lists=Db::name("merchant_user_log")->where("uid",$userinfo["id"]) ->select()->toArray(); $chonglist=[]; foreach ($lists as $vs){ $chonglist[]= [ "title"=>$vs["pm"]?"充值":"消费", "refund_price"=>$vs["number"], "price"=>$vs["number"], "mark"=>$vs["mark"], "create_time"=>$vs["create_time"], "pm"=>$vs["pm"] ]; } return ["user_info"=>$userinfo,"consumption"=>$chonglist]; }else{ return ["user_info"=>[],"consumption"=>[]]; } } /** * 会员管理 * 操作金额 减 */ public function reduce_money($uid,$data){ $money=Db::name("merchant_user")->where("id",$data["id"])->value("money"); if ($money<$data["money"]){ return []; } $number=round($data["money"],2); $data=[ "uid"=>$data["id"], "pm"=>0, "title"=>"消费", "number"=>$number, "mark"=>"消费", "status"=>1, "mer_id"=>$data["mer_id"], ]; Db::name("merchant_user_log")->insert($data); Db::name("merchant_user")->where("id",$uid)->dec('money', $number) ->update(); return true; } /** * 绑定音响 * @Author:lin * @Date: 2021/3/29 */ public function set_yx($data){ $where=[]; $where["mer_id"]=$data["mer_id"]; $where['status'] = 1; $check=Db::name("merchant_yx") ->where($where) ->find(); if($check){ return ["code"=>0,"msg"=>"此商户已绑定音响"]; } $check1 = Db::name("merchant_yx") ->where('sn',$data['sn']) ->where('status',1) ->find(); Log::info("=====================".Db::name("merchant_yx") -> getLastSql()); if($check1){ return ["code"=>0,"msg"=>"此音响已被绑定"]; } if(!is_numeric($data['sn'])){ return ["code"=>0,"msg"=>"二维码无效"]; } $mer=Db::name("merchant_yx") ->insert( [ "uid"=>$data['uid'], "mer_id"=>$data["mer_id"], "sn"=>$data['sn'], "status"=>1 ] ); if ($mer){ return ["code"=>1,"msg"=>"绑定成功"]; } return ["code"=>0,"msg"=>"绑定失败"]; } //每周需释放消费分列表 public function consumptionScoreList(){ return Db::name('merchant_consumption_score') -> where('stages > 0 and surplus_score > 0') -> select(); } //消费分处理 public function consumptionScore($mer_id,$uid,$consumption_score,$surplus_score,$stages,$id=0){ if($id == 0){ $ins = [ 'mer_id' => $mer_id, 'uid' => $uid, 'consumption_score' => $consumption_score, 'surplus_score' => $surplus_score, 'stages' => $stages, 'add_time' => time() ]; Db::name('merchant_consumption_score') -> insert($ins); //商户表增加相应消费分 Db::name('merchant') -> where('mer_id',$mer_id) -> inc('score',$consumption_score); }else{ $c = Db::name('merchant_consumption_score') -> where('id',$id) -> find(); $sf = bcdiv($c['surplus_score'] , $c['stages'],2);//释放分 剩余分 除以 剩余期数 $update = [ 'surplus_score' => bcsub($c['surplus_score'],$sf,2), 'stages' => $c['stages'] - 1 ]; //消费分表修改期数与剩余消费分 Db::name('merchant_consumption_score') -> where('id',$id) -> update($update); //商户表减少相应消费分 Db::name('merchant') -> where('mer_id',$mer_id) -> dec('score',$sf); //消费分记录表 $this -> consumptionScoreLog($mer_id,$uid,$sf,'释放消费分',1,2); //消费分变成积分 $userRepository = app()->make(UserRepository::class); $userRepository -> sign_add($uid,$sf,1,'商户释放消费分','','',''); //消费分状态改为已释放 $startTime = strtotime('last week 00:00:00'); $endTime = strtotime('this week 00:00:00 -1second'); Db::name('merchant_consumption_score_log') -> where('mer_id',$mer_id) ->where('status',3) ->where("update_time >= '$startTime' and update_time <= '$endTime'") -> update(['status'=>1]); } } public function getConsumptionScoreLog($mer_id){ $startTime = strtotime('last week 00:00:00'); $endTime = strtotime('this week 00:00:00 -1second'); return Db::name('merchant_consumption_score_log') -> where('mer_id',$mer_id) ->where('status',3) ->where("update_time >= '$startTime' and update_time <= '$endTime'") -> sum('consumption_score'); } public function consumptionScoreLog($mer_id,$uid,$consumption_score,$mark,$status=1,$pm=1,$order_id='',$source=0){ $merchant = Db::name('merchant') -> where('mer_id',$mer_id) -> field('score,uid,consumption_score') -> find(); if($merchant['consumption_score'] != 1) return false; if($uid == 0){ $uid = $merchant['uid']; } $ins = [ 'mer_id' => $mer_id, 'uid' => $uid, 'consumption_score' => $consumption_score, 'pm' => $pm, 'mark' => $mark, 'status' => $status, 'order_id' => $order_id, 'add_time' => time(), 'source' => $source, 'update_time' => time(), 'surplus' => $merchant['score'] ]; Db::name('merchant_consumption_score_log') -> insert($ins); } }