isAjax()){ $eid = LotteryActivity::where([['del','=',0],['root_id','=',request()->employee->root_id],['employee_id','>',0],['type','=',1]])->group('employee_id')->column('employee_id'); $where = [ ['id','in',$eid], ['grant_id', '>', 0], ['root_id', '=', request()->employee->root_id] ]; // 运营人员列表 $employee = Employee::where($where)->field(['id', 'opt_name as name'])->select()->toArray(); View::assign('employee', $employee); return View::fetch(); } $request = request(); $data=$request->only(['page','limit','keyword','employee_id','date']); $this->sel_act_status(); //条件 $condition = [ ['root_id','=',$request->employee->root_id], ['type','=',1] ]; if(!empty($data['keyword'])){ $condition[] = ['title', 'like', '%' . $data['keyword'] . '%']; } if (!empty($data['employee_id'])) { $condition[] = ['employee_id', '=', $data['employee_id']]; } if (!empty($data['date'])) { $arr = explode(' - ',$data['date']); $condition[] = ['start_date','<=', $arr[0]]; $condition[] = ['end_date', '>=', $arr[1]]; } $list=LotteryActivity::with(['employee','good'=>function($query){$query->field('actid,good_name,good_img,stock');}, 'lotteryluckyuser'=>function($query){ $query->field('actid,status,uid'); }]) ->withCount(['lotteryuser']) ->where($condition) ->page($data['page'], $data['limit']) ->order(['addtime' => 'desc']) ->select() ->toArray(); $count=LotteryActivity::where($condition)->count(); foreach($list as $key=>$val){ $gdnum=0; foreach($val['good'] as $n=>$m){ $gdnum+=$m['stock']; } $list[$key]['good_num']=$gdnum; $list[$key]['share_num']=$val['share_num']?$val['share_num']:0; $list[$key]['lottery_num']=$val['lotteryuser_count']?$val['lotteryuser_count']:0; $list[$key]['yes_num']=count($val['lotteryluckyuser']); $list[$key]['yes_crm']=LotteryLuckyUser::where('actid',$val['id'])->group('uid')->count(); $wiped_num=0; foreach($val['lotteryluckyuser'] as $k=>$v){ if($v['status']==2){ $wiped_num++; } } $list[$key]['wiped_num']=$wiped_num; } return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } //查询到期的活动 public function sel_act_status() { $time=date('Y-m-d',time()); $ms=LotteryActivity::where('end_date','<',$time)->update(['status'=>2]); } //修改活动状态 public function up_act_sta() { $request = request(); $data=$request->only(['id']); $act_data=LotteryActivity::where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]])->find(); if($act_data['status']==2){ $you=LotteryActivity::where([['status','=',1],['root_id','=',$request->employee->root_id],['type','=',$act_data['type']]])->count(); if(!empty($you)){ return json(['code' => 1, 'msg' => '已有活动在进行,暂时不能开启']); }else{ if($act_data['end_date'] < date('Y-m-d',time())){ return json(['code' => 1, 'msg' => '活动时间已经结束']); } $act_data->status=1; } }else{ $act_data->status=2; } $ms=$act_data->save(); if($ms){ return json(['code' => 0, 'msg' => '修改成功']); }else{ return json(['code' => 1, 'msg' => '修改失败']); } } //添加图片 public function add_img() { $request = request(); $data=$request->only(['good_img']); return json(['code' => 0, 'data' => $data['good_img'], 'msg' => '获取成功']); } //添加活动 public function add_activity() { if (!request()->isAjax()) return View::fetch(); $request = request(); $data=$request->only(['title','start_date','end_date','lottery_num','share_count','good','prizeList','type','lottery_tel','lottery_address','shareimg']); if(empty($data['shareimg'])) return json(['code' => 1, 'msg' => '请选择分享封面图']); $good=json_decode(strip_tags($data['prizeList']),true); $add['root_id']=$request->employee->root_id; $add['type'] = $data['type']; $add['title'] = $data['title']; $add['start_date'] = $data['start_date']; $add['end_date'] = $data['end_date']; $add['lottery_num'] = $data['lottery_num']; $add['share_count'] = $data['share_count']; $add['employee_id'] = request()->employee->id; $add['lottery_tel'] = $data['lottery_tel']; $add['lottery_address'] = $data['lottery_address']; $add['shareimg'] = $data['shareimg']; $you=LotteryActivity::where([['root_id','=',$request->employee->root_id],['status','=','1'],['type','=',$data['type']]])->count(); if(!empty($you)){ $add['status'] = 2; } Db::startTrans(); try { $ms=LotteryActivity::insertGetId($add); $xin=null; $allpr=0; foreach($good as $key=>$val){ $xin[]=array( 'good_name'=>$val['name'], 'good_img' =>$val['url'], 'probability'=>$val['probability'], 'stock'=>$val['num'], 'actid'=>$ms, 'surplus'=>$val['num'] ); $allpr+=$val['probability']; } if($allpr>100){ return json(['code' => 1, 'msg' => '所有奖品概率不能大于100']); } LotteryActivityGoods::insertAll($xin); Db::commit(); }catch (\Exception $e) { Db::rollback(); //var_dump($e->getMessage()); return json(['code' => 1, 'msg' => '提交数据失败.']); } if($ms){ return json(['code' => 0, 'msg' => '添加成功']); }else{ return json(['code' => 1, 'msg' => '添加失败']); } } //编辑活动 public function edit_activity() { $request = request(); $data=$request->only(['title','start_date','end_date','lottery_num','share_count','good','id','prizeList','lottery_tel','lottery_address','shareimg']); $act_data=LotteryActivity::with(['good'])->where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]])->find(); if (!request()->isAjax()){ View::assign('act_data',$act_data); return View::fetch(); }else{ $add['title'] = $data['title']; $add['start_date'] = $data['start_date']; $add['end_date'] = $data['end_date']; $add['lottery_num'] = $data['lottery_num']; $add['share_count'] = $data['share_count']; $add['lottery_tel'] = $data['lottery_tel']; $add['lottery_address'] = $data['lottery_address']; if(!empty($data['shareimg'])) $add['shareimg'] = $data['shareimg']; $ms=LotteryActivity::where([['id','=',$data['id']],['root_id','=',$request->employee->root_id]])->update($add); $good=json_decode(strip_tags($data['prizeList']),true); $gen = $in = null; $ali_oss_bindurl='http://' .config('app.ali_oss_bindurl').'/'; $allpr=0; foreach($good as $key=>$val){ if($val['id']){ $gen[]=array( 'id' =>$val['id'], 'good_name'=>$val['name'], 'good_img' =>str_replace($ali_oss_bindurl,'',$val['url']), 'probability'=>$val['probability'], 'stock'=>$val['num'], 'surplus'=>$val['num'] ); }else{ $in[]=array( 'good_name'=>$val['name'], 'good_img' =>$val['url'], 'probability'=>$val['probability'], 'stock'=>$val['num'], 'actid'=>$data['id'], 'surplus'=>$val['num'] ); } $allpr+=$val['probability']; } if($allpr>100){ return json(['code' => 1, 'msg' => '所有奖品概率不能大于100']); } $ltg = new LotteryActivityGoods; if(!empty($gen)) $ltg->saveAll($gen); if(!empty($in)) $ltg->insertAll($in); return json(['code' => 0, 'msg' => '修改成功']); } } //中奖客户 public function winning_customer() { $request = request(); $data=$request->only(['id','page','limit','employee','org','keyword','type']); if (!request()->isAjax()){ // 部门 $org = OrgLogic::struc($request->employee->root_id); View::assign('org', $org); $orgids = orgSubIds(request()->employee->root_id); View::assign('orgids', json_encode($orgids)); View::assign('id', $data['id']); return View::fetch(); } $data['type']=!empty($data['type'])?$data['type']:1; $where[] = ['actid','=',$data['id']]; if(!empty($data['employee'])){ $where[] = ['empid','=',$data['employee']]; } if(!empty($data['keyword'])){ $uid=User::where([['phone','=',$data['keyword']],['root_id','=',$request->employee->root_id]])->value('id'); $where[] = ['uid','=',$uid]; } if(empty($data['employee']) && !empty($data['org'])){ $employee = EmployeeLogic::employeelist($data['org'], [], 1, 1000); $aoid=null; foreach($employee as $key=>$val){ $aoid.=$val['id'].','; } if(!empty($aoid)){ $where[] = ['empid','in',(trim($aoid,','))]; } } $actid=$data['id']; if($data['type']==1){ $list=LotteryLuckyUser::with([ 'user'=>function($query){ $query->field('id,nickname,phone,headimgurl'); }, 'good'=>function($query){ $query->field('id,good_name,good_img'); }, 'emp'=>function($query){ $query->field('id,name'); }, 'lotteryuser'=>function($query) use ($actid){ $query->where("actid =". $actid)->field('uid,share_img,id'); //$query->field('uid,share_img,id'); } ]) ->where($where) ->page($data['page'], $data['limit']) ->order('lucky_time desc') ->select() ->toArray(); $count=LotteryLuckyUser::where($where)->count(); } if($data['type']==2){ $where[]=['is_prize','=',0]; $list=LotteryUser::with([ 'user'=>function($query){ $query->field('id,nickname,headimgurl,phone'); }, 'emp'=>function($query){ $query->field('id,name'); } ]) ->where($where) ->page($data['page'], $data['limit']) ->order('addtime desc') ->select() ->toArray(); $count=LotteryUser::where($where)->count(); } return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } //确认核销奖品 public function wiped_lottery() { $request = request(); $data=$request->only(['id','wiped_sn']); $ms=LotteryLuckyUser::where('id','=',$data['id'])->find(); if($ms['wiped_sn']==$data['wiped_sn']){ $ms->status=2; $ms->save(); return json(['code' => 0, 'msg' => '核销成功']); }else{ return json(['code' => 1, 'msg' => '核销码错误']); } } //奖品详情 public function prize_list() { $request = request(); $data=$request->only(['id','page'=>1,'limit'=>10]); if (!request()->isAjax()){ View::assign('id', $data['id']); return View::fetch(); } $list=LotteryActivityGoods::where('actid','=',$data['id'])->page($data['page'],$data['limit'])->select()->toArray(); $count=LotteryActivityGoods::where('actid','=',$data['id'])->count(); foreach($list as $key=>$val){ $yes=LotteryLuckyUser::where([['good_id','=',$val['id']],['actid','=',$val['actid']]])->count(); $list[$key]['yes']=$yes; $list[$key]['no']=$val['stock']-$yes; } return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } //砸金蛋 public function golden_eggs_list() { if (!request()->isAjax()){ $eid = LotteryActivity::where([['del','=',0],['root_id','=',request()->employee->root_id],['employee_id','>',0],['type','=',2]])->group('employee_id')->column('employee_id'); $where = [ ['id','in',$eid], ['grant_id', '>', 0], ['root_id', '=', request()->employee->root_id] ]; // 运营人员列表 $employee = Employee::where($where)->field(['id', 'opt_name as name'])->select()->toArray(); View::assign('employee', $employee); return View::fetch(); } $request = request(); $data=$request->only(['page','limit','keyword','employee_id','date']); $this->sel_act_status(); //条件 $condition = [ ['root_id','=',$request->employee->root_id], ['type','=',2] ]; if(!empty($data['keyword'])){ $condition[] = ['title', 'like', '%' . $data['keyword'] . '%']; } if (!empty($data['employee_id'])) { $condition[] = ['employee_id', '=', $data['employee_id']]; } if (!empty($data['date'])) { $arr = explode(' - ',$data['date']); $condition[] = ['start_date','<=', $arr[0]]; $condition[] = ['end_date', '>=', $arr[1]]; } $list=LotteryActivity::with(['employee','good'=>function($query){$query->field('actid,good_name,good_img,stock');}, 'lotteryluckyuser'=>function($query){ $query->field('actid,status,uid'); }]) ->withCount(['lotteryuser']) ->where($condition) //->page($data['page'], $data['limit']) ->order('addtime desc') ->select() ->toArray(); $count=LotteryActivity::where($condition)->count(); foreach($list as $key=>$val){ $gdnum=0; foreach($val['good'] as $n=>$m){ $gdnum+=$m['stock']; } $list[$key]['good_num']=$gdnum; $list[$key]['share_num']=$val['share_num']?$val['share_num']:0; $list[$key]['lottery_num']=$val['lotteryuser_count']?$val['lotteryuser_count']:0; $list[$key]['yes_num']=count($val['lotteryluckyuser']); $list[$key]['yes_crm']=LotteryLuckyUser::where('actid',$val['id'])->group('uid')->count(); $wiped_num=0; foreach($val['lotteryluckyuser'] as $k=>$v){ if($v['status']==2){ $wiped_num++; } } $list[$key]['wiped_num']=$wiped_num; } return json(['code' => 0, 'count'=>$count,'data' => $list, 'msg' => '获取成功']); } //删除奖品 public function delActgood($id) { $actids = LotteryActivity::where([['root_id','=',request()->employee->root_id],['del','=',0]])->column('id'); $check = LotteryActivityGoods::where([['id','=',$id],['actid','in',$actids]])->find(); if(!empty($check)){ $cg = LotteryLuckyUser::where('good_id','=',$id)->count(); if($cg > 0) return json(['code' => 1, 'msg' => '些奖品已经有人中奖,暂时无法删除']); $check->delete(); } return json(['code' => 0, 'msg' => '删除成功']); } //砸金蛋-添加活动 public function golden_eggs_add() { return View::fetch(); } //砸金蛋-编辑活动 public function golden_eggs_edit() { return View::fetch(); } //砸金蛋-中奖客户 public function golden_eggs_winning() { return View::fetch(); } //砸金蛋-奖励详情 public function golden_eggs_prize() { return View::fetch(); } } ?>