123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447 |
- <?php
- namespace app\sys\controller;
- use think\facade\View;
- use think\facade\Request;
- use app\model\LotteryActivity;
- use app\model\LotteryActivityGoods;
- use app\model\LotteryLuckyUser;
- use think\facade\Db;
- use app\logics\OrgLogic;
- use app\model\LotteryUser;
- use app\logics\EmployeeLogic;
- use app\model\User;
- use app\model\Employee;
- class Turntable extends Base
- {
- //活动列表
- public function list()
- {
- if (!request()->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();
- }
- }
- ?>
|