jun hai 4 meses
pai
achega
f0908172a9
Modificáronse 53 ficheiros con 792 adicións e 379 borrados
  1. 7 19
      app/Console/Commands/WorkSync.php
  2. 0 1
      app/Console/Kernel.php
  3. 19 5
      app/Http/Controllers/Admin/CouponActive.php
  4. 17 12
      app/Http/Controllers/Admin/Custom.php
  5. 115 4
      app/Http/Controllers/Admin/CustomClockinRecord.php
  6. 56 0
      app/Http/Controllers/Admin/CustomScore.php
  7. 17 5
      app/Http/Controllers/Admin/LotteryOrder.php
  8. 17 5
      app/Http/Controllers/Admin/LotteryScore.php
  9. 6 6
      app/Http/Controllers/Admin/Orders.php
  10. 25 7
      app/Http/Controllers/Admin/Product.php
  11. 16 6
      app/Http/Controllers/Admin/Promo.php
  12. 158 0
      app/Http/Controllers/Admin/School.php
  13. 115 109
      app/Http/Controllers/Admin/ScoreClockinActive.php
  14. 1 1
      app/Http/Controllers/Admin/WeibanQrcode.php
  15. 3 3
      app/Http/Controllers/Api/Coupon/Active.php
  16. 26 8
      app/Http/Controllers/Api/Custom.php
  17. 5 5
      app/Http/Controllers/Api/Lottery/Order.php
  18. 3 3
      app/Http/Controllers/Api/Lottery/Score.php
  19. 6 6
      app/Http/Controllers/Api/Orders.php
  20. 7 5
      app/Http/Controllers/Api/Product.php
  21. 27 3
      app/Http/Controllers/Api/Score/Clockin.php
  22. 5 5
      app/Http/Controllers/Api/ShopCart.php
  23. 11 9
      app/Http/Controllers/Api/WechatWork.php
  24. 1 1
      app/Http/Controllers/Api/WeiZan/Orders.php
  25. 4 2
      app/Http/Requests/Admin/ContactWay.php
  26. 4 4
      app/Models/FilesManager.php
  27. 3 3
      app/Models/Traits/Orders/Status.php
  28. 1 44
      app/Models/Work/Tag.php
  29. 2 4
      app/Servers/WechatWork/CorpTag.php
  30. 2 2
      config/wechat.php
  31. 1 1
      config/wechatpay.php
  32. 5 0
      public/nginx.htaccess
  33. 3 3
      resources/views/admin/contact_way/add.blade.php
  34. 3 3
      resources/views/admin/contact_way/edit.blade.php
  35. 14 1
      resources/views/admin/contact_way/index.blade.php
  36. 1 1
      resources/views/admin/corp_tag/tags.blade.php
  37. 4 4
      resources/views/admin/coupon_active/add.blade.php
  38. 4 4
      resources/views/admin/coupon_active/edit.blade.php
  39. 2 2
      resources/views/admin/custom/edit.blade.php
  40. 7 7
      resources/views/admin/custom/index.blade.php
  41. 1 1
      resources/views/admin/custom_clockin_record/index.blade.php
  42. 4 4
      resources/views/admin/lottery_order/add.blade.php
  43. 4 4
      resources/views/admin/lottery_order/edit.blade.php
  44. 6 6
      resources/views/admin/lottery_score/add.blade.php
  45. 6 6
      resources/views/admin/lottery_score/edit.blade.php
  46. 8 8
      resources/views/admin/product/add.blade.php
  47. 8 8
      resources/views/admin/product/copy.blade.php
  48. 8 8
      resources/views/admin/product/edit.blade.php
  49. 6 6
      resources/views/admin/promo/add.blade.php
  50. 6 6
      resources/views/admin/promo/edit.blade.php
  51. 4 4
      resources/views/admin/score_clockin_active/add.blade.php
  52. 4 4
      resources/views/admin/score_clockin_active/edit.blade.php
  53. 4 1
      routes/api.php

+ 7 - 19
app/Console/Commands/WorkSync.php

@@ -10,8 +10,6 @@ use App\Models\Work\Sync as Model;
 use App\Models\Work\Tag as WorkTag;
 use App\Models\Work\User as WorkUser;
 use App\Models\Work\External as WorkExternal;
-use App\Facades\Servers\WechatWork\CorpTag as CorpTag;
-use App\Facades\Servers\Logs\Log;
 
 class WorkSync extends Command
 {
@@ -46,17 +44,9 @@ class WorkSync extends Command
      */
     public function handle()
     {
-		try {
-			// 执行任务
-			$this->run_task();
-			return 0;
-		} catch (\Throwable $th) {
-			// 记录错误信息
-			Log::error('work_sync',$th->getMessage());
-			// 返回结果
-			return 0;
-		}
-		
+		// 执行任务
+        $this->run_task();
+		return 0;
     }
 
     /**
@@ -96,8 +86,6 @@ class WorkSync extends Command
 			// 结束
 			return  			['error'=>'未获取到外部联系人'];
 		}
-		// 获取标签数据
-		$corpTagList			= CorpTag::getList();
 		// 实例其他模型
 		$CustomModel			= New Custom();
 		$WorkExternalModel		= New WorkExternal();
@@ -137,10 +125,10 @@ class WorkSync extends Command
 			$followUser['remark_mobiles']	= implode(',',$value['follow_info']['remark_mobiles']);
 			$followUser['remark_company']	= empty($value['external_contact']['corp_name'])? (empty($value['follow_info']['remark_corp_name']) ? '' : $value['follow_info']['remark_corp_name']) : $value['external_contact']['corp_name'];
 			$followUsers[]					= $followUser;
-			foreach ($corpTagList as $group){
-				foreach ($group['tag'] as $tag){
-					if( in_array($tag['id'],$value['follow_info']['tag_id']) ) $followTags[] = ['group_name'=>$group['group_name'],'tag_name'=>$tag['name'],'tag_id'=>$tag['id'],'type'=>1,'external_userid'=>$followUser['external_userid'],'work_userid'=>$followUser['work_userid']];
-				}
+			// 跟进人员标签组合
+			foreach ( $value['follow_info']['tag_id'] as $tagId ) {
+				// 重组
+				$followTags[]				= ['tag_id'=>$tagId,'external_userid'=>$followUser['external_userid'],'work_userid'=>$followUser['work_userid'],'update_time'=>$time];
 			}
 			// 跟进人员是否备注手机号
 			$extUser['phone']				= $value['follow_info']['remark_mobiles'] ? $value['follow_info']['remark_mobiles'][0] : '';

+ 0 - 1
app/Console/Kernel.php

@@ -32,7 +32,6 @@ class Kernel extends ConsoleKernel
         $schedule->command('product_delist')->everyMinute();
         //拼团活动
         $schedule->command('regiment')->everyMinute();
-        // 企微同步
         $schedule->command('work_sync')->runInBackground();
 
     }

+ 19 - 5
app/Http/Controllers/Admin/CouponActive.php

@@ -5,7 +5,9 @@ use App\Http\Requests\Admin\Coupon\Active as Request;
 use App\Models\Coupon\Active as Model;
 use App\Models\Coupon\ActiveCoupon as ActiveCoupon;
 use App\Models\City;
-use App\Facades\Servers\WechatWork\CorpTag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
+
+use function PHPUnit\Framework\isNull;
 
 /**
  * 优惠券领取活动
@@ -71,7 +73,7 @@ class CouponActive extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add(Request $request,Model $Model,City $City){
+	public function add(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -100,7 +102,13 @@ class CouponActive extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('tagList',$tagList);
@@ -113,7 +121,7 @@ class CouponActive extends Auth{
 	 * 修改
 	 * 
 	 * */
-	public function edit(Request $request,Model $Model,City $City){
+	public function edit(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
 		// 接收参数
 		$id							= request('id',0);
 		// 查询用户
@@ -151,7 +159,13 @@ class CouponActive extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('tagList',$tagList);

+ 17 - 12
app/Http/Controllers/Admin/Custom.php

@@ -6,7 +6,7 @@ use App\Models\Custom as Model;
 use App\Models\CustomAddr;
 use App\Models\CustomScore;
 use Illuminate\Support\Carbon;
-use App\Models\Work\External as WorkExternal;
+use App\Models\WeiBan\Follow as WeiBanFollow;
 use App\Models\FilesManager;
 use App\Models\WeiBan\External as WeiBanExternal;
 use PhpOffice\PhpSpreadsheet\Cell\DataType;
@@ -33,12 +33,12 @@ class Custom extends Auth{
 	 * 列表页
 	 * 
 	 * */
-    public function index(Model $Model,CustomScore $CustomScore,City $City,WorkExternal $WorkExternal){
+    public function index(Model $Model,CustomScore $CustomScore,WeiBanFollow $WeiBanFollow,City $City){
  		// 接受参数
 		$code					= request('custom_code','');
 		$phone					= request('phone','');
 		$username				= request('username','');
-		$extId					= request('external_userid','');
+		$weibanId				= request('weiban_extid','');
 		$cityId					= request('city_id',0);
 		$status					= request('status');
 		$startTime				= request('start_time','');
@@ -51,7 +51,7 @@ class Custom extends Auth{
 		if( $phone )			$map[] = ['phone','=',$phone];
 		if( $username )			$map[] = ['username','=',$username];
 		if( $cityId )			$map[] = ['city_id','=',$cityId];
-		if( $extId )			$map[] = ['external_userid','=',$extId];
+		if( $weibanId )			$map[] = ['weiban_extid','=',$weibanId];
 		if( $startTime )		$map[] = ['insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()];
 		if( $startTime )		$map[] = ['insert_time','<=',Carbon::createFromFormat('Y-m-d',$startTime)->endOfDay()->getTimestamp()];
 		if( !is_null($status) )	$map[] = ['status','=',$status];
@@ -65,8 +65,13 @@ class Custom extends Auth{
 			$value['custom_code'] 	= $Model->idToCode($value['uid']);
 			// id转编号
 			$value['custom_score'] 	= $CustomScore->getCustomScore($value['uid']);
-			// 如果不存在企微ID,查询数据库
-			if( !$value['external_userid'] ) $value['external_userid'] = (string) $WorkExternal->query()->where([['custom_uid', '=',$value['uid']]])->value('external_userid');
+			// 如果不存在微伴ID
+			if( !$value['weiban_extid'] )	{
+				// 通过手机号查询注册的账号
+				$value['weiban_extid'] 	= (string) $WeiBanFollow->query()->where([['phone_number','=',$value['phone']]])->value('weiban_extid');
+				// 如果存在的话,修正
+				if( $value['weiban_extid'] ) $Model->edit($value['uid'],['weiban_extid'=>$value['weiban_extid']]);
+			}
 			// 重组
 			$list[$key]				= $value;
 		}
@@ -129,7 +134,7 @@ class Custom extends Auth{
 			$data['username']		= request('username','');
 			$data['phone']			= request('phone','');
 			$data['city_id']		= request('city_id',0);
-			$data['external_userid']= request('external_userid','');
+			$data['weiban_extid']	= request('weiban_extid','');
 			// 写入数据表
 			$result					= $Model->edit($uid,$data);
 			// 如果操作失败
@@ -202,7 +207,7 @@ class Custom extends Auth{
 			// 获取手机号,查询是否用客户
 			$custom							= $Model->getOneByPhone($value['phone']);
 			// 组装数据
-			$data							= ['external_userid'=>$value['external_userid'],'username'=>$value['username']];
+			$data							= ['weiban_extid'=>$value['weiban_extid'],'username'=>$value['username']];
 			// 如果客户不存在
 			if( !$custom )					$data['phone'] = $value['phone'];
 			// 如果存在城市ID,才修改城市
@@ -232,7 +237,7 @@ class Custom extends Auth{
 		$code					= request('custom_code','');
 		$phone					= request('phone','');
 		$username				= request('username','');
-		$extId					= request('external_userid','');
+		$weibanId				= request('weiban_extid','');
 		$cityId					= request('city_id',0);
 		$status					= request('status');
 		$startTime				= request('start_time','');
@@ -245,7 +250,7 @@ class Custom extends Auth{
 		if( $phone )			$map[] = ['phone','=',$phone];
 		if( $username )			$map[] = ['username','=',$username];
 		if( $cityId )			$map[] = ['city_id','=',$cityId];
-		if( $extId )			$map[] = ['external_userid','=',$extId];
+		if( $weibanId )			$map[] = ['weiban_extid','=',$weibanId];
 		if( $startTime )		$map[] = ['insert_time','>=',Carbon::createFromFormat('Y-m-d',$startTime)->startOfDay()->getTimestamp()];
 		if( $startTime )		$map[] = ['insert_time','<=',Carbon::createFromFormat('Y-m-d',$startTime)->endOfDay()->getTimestamp()];
 		if( !is_null($status) )	$map[] = ['status','=',$status];
@@ -285,7 +290,7 @@ class Custom extends Auth{
 			//避免 = + - 识别成公式
             $sheet->setCellValueExplicit('B'.$row, $value['username'],DataType::TYPE_STRING);
             $sheet->setCellValue('C'.$row, $value['phone']);
-			$sheet->setCellValue('D'.$row, $value['external_userid']);
+			$sheet->setCellValue('D'.$row, $value['weiban_extid']);
 			$sheet->setCellValue('E'.$row, $value['city_name']);
 			$sheet->setCellValue('F'.$row, $value['status']?'禁用':'正常');
 			$sheet->setCellValue('G'.$row, date('Y-m-d H:i:s',$value['insert_time']));
@@ -329,7 +334,7 @@ class Custom extends Auth{
 		->setCellValue('A1', '客户编码')
 		->setCellValue('B1', '客户昵称')
 		->setCellValue('C1', '联系方式')
-		->setCellValue('D1', '微ID')
+		->setCellValue('D1', '微ID')
 		->setCellValue('E1', '客户城市')
 		->setCellValue('F1', '客户状态')
 		->setCellValue('G1', '创建时间')

+ 115 - 4
app/Http/Controllers/Admin/CustomClockinRecord.php

@@ -1,9 +1,12 @@
 <?php namespace App\Http\Controllers\Admin;
 
+use App\Http\Requests\Admin\Custom as Request;
 use App\Models\City;
 use App\Models\Custom as Custom;
 use Illuminate\Support\Carbon;
 use App\Models\WeiBan\Follow as WeiBanFollow;
+use App\Models\FilesManager;
+use App\Models\WeiBan\External as WeiBanExternal;
 use App\Models\CustomClockinRecord as Model;
 use PhpOffice\PhpSpreadsheet\IOFactory;
 use PhpOffice\PhpSpreadsheet\Spreadsheet;
@@ -28,7 +31,7 @@ class CustomClockinRecord extends Auth{
 	 * 列表页
 	 * 
 	 * */
-    public function index(Model $Model,Custom $Custom,City $City){
+    public function index(Model $Model,Custom $Custom,CustomScore $CustomScore,WeiBanFollow $WeiBanFollow,City $City){
  		// 接受参数
 		$code					= request('custom_code','');
 		$phone					= request('phone','');
@@ -66,6 +69,13 @@ class CustomClockinRecord extends Auth{
 			$value['city_name'] 	= $value['city_id'] ? $City->getOne($value['city_id'],'name') : '';
 			// id转编号
 			$value['custom_code'] 	= $Custom->idToCode($value['uid']);
+            // 如果不存在微伴ID
+            if( !$value['weiban_extid'] )	{
+                // 通过手机号查询注册的账号
+                $value['weiban_extid'] 	= (string) $WeiBanFollow->query()->where([['phone_number','=',$value['phone']]])->value('weiban_extid');
+                // 如果存在的话,修正
+                if( $value['weiban_extid'] ) $Model->edit($value['uid'],['weiban_extid'=>$value['weiban_extid']]);
+            }
 			// 重组
 			$list[$key]				= $value;
 		}
@@ -80,11 +90,105 @@ class CustomClockinRecord extends Auth{
 		return 						$this->fetch();
     }
 
+	/**
+	 * 添加
+	 * 
+	 * */
+	public function add(Request $request,Model $Model){
+		if( request()->isMethod('post') ){
+			// 验证参数
+			$request->scene('add')->validate();
+			// 接收数据
+			// 接收数据
+			$data['username']		= request('username','');
+			$data['phone']			= request('phone','');
+			// 写入数据表
+			$uid					= $Model->add($data);
+			// 如果操作失败
+			if( !$uid ) 			return json_send(['code'=>'error','msg'=>'新增失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$uid,1,[],$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']);
+		}
+		// 分配数据
+		$this->assign('crumbs','新增');
+		// 加载模板
+		return						$this->fetch(); 
+	}
+
+	/**
+	 * 修改
+	 * 
+	 * */
+	public function edit(Request $request,Model $Model,City $City){
+		// 接收参数
+		$uid						= request('uid',0);
+		// 查询用户
+		$oldData					= $Model->where(['uid'=>$uid])->first();
+		// 修改
+		if(request()->isMethod('post')){
+			// 验证参数
+			$request->scene('edit')->validate();
+			// 如果用户不存在
+			if( !$oldData )			return json_send(['code'=>'error','msg'=>'用户不存在']);
+			// 转数组
+			$oldData				= $oldData->toArray();
+			// 接收数据
+			$data['username']		= request('username','');
+			$data['phone']			= request('phone','');
+			$data['city_id']		= request('city_id',0);
+			$data['weiban_extid']	= request('weiban_extid','');
+			// 写入数据表
+			$result					= $Model->edit($uid,$data);
+			// 如果操作失败
+			if( !$result ) 			return json_send(['code'=>'error','msg'=>'新增失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$uid,2,$oldData,$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']);
+		}
+		// 错误告知
+		if( !$oldData )				return $this->error('查无数据');
+		// 获取列表
+		$cityList					= $City->getCityList();
+		// 分配数据
+		$this->assign('cityList',$cityList);
+		$this->assign('oldData',$oldData);
+		$this->assign('crumbs','修改');
+		// 加载模板
+		return						$this->fetch();
+	}
+
+	/**
+	 * 修改状态
+	 * 
+	 * */
+	public function set_status(Request $request,Model $Model){
+		// 验证参数
+		$request->scene('set_status')->validate();
+		// 设置状态
+		$uid				= request('uid',0);
+		$status				= request('status',0);
+		// 查询用户
+		$oldData			= $Model->where(['uid'=>$uid])->first();
+		// 如果用户不存在
+		if( !$oldData )		return json_send(['code'=>'error','msg'=>'用户不存在']);
+		// 执行修改
+		$result				= $Model->edit($uid,['status'=>$status]);		
+		// 提示新增失败
+		if( !$result )		return json_send(['code'=>'error','msg'=>'设置失败']);
+		// 记录行为
+		$this->addAdminHistory(admin('uid'),$Model->getTable(),$uid,2,$oldData,['status'=>$status]);
+		// 告知结果
+		return 				json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
+	}
+
     /**
      * 导出表格
      *
      * */
-    public function down_excel(Model $Model,Custom $Custom,City $City){
+    public function down_excel(Model $Model,Custom $Custom,CustomScore $CustomScore,WeiBanFollow $WeiBanFollow,City $City){
         // 接受参数
         $code					= request('custom_code','');
         $phone					= request('phone','');
@@ -121,6 +225,13 @@ class CustomClockinRecord extends Auth{
             $value['city_name'] 	= $value['city_id'] ? $City->getOne($value['city_id'],'name') : '';
             // id转编号
             $value['custom_code'] 	= $Custom->idToCode($value['uid']);
+            // 如果不存在微伴ID
+            if( !$value['weiban_extid'] )	{
+                // 通过手机号查询注册的账号
+                $value['weiban_extid'] 	= (string) $WeiBanFollow->query()->where([['phone_number','=',$value['phone']]])->value('weiban_extid');
+                // 如果存在的话,修正
+                if( $value['weiban_extid'] ) $Model->edit($value['uid'],['weiban_extid'=>$value['weiban_extid']]);
+            }
             // 重组
             $list[$key]				= $value;
         }
@@ -152,7 +263,7 @@ class CustomClockinRecord extends Auth{
             $sheet->setCellValue('C'.$row, $value['username']);
             $sheet->setCellValue('D'.$row, $value['active_name']);
             $sheet->setCellValue('E'.$row, $value['phone']);
-            $sheet->setCellValue('F'.$row, $value['external_userid']);
+            $sheet->setCellValue('F'.$row, $value['weiban_extid']);
             $sheet->setCellValue('G'.$row, $value['city_name']);
             $sheet->setCellValue('H'.$row, date('Y-m-d H:i:s',$value['clockin_time']));
             $sheet->setCellValue('I'.$row, $value['clockin_day']);
@@ -198,7 +309,7 @@ class CustomClockinRecord extends Auth{
             ->setCellValue('C1', '客户昵称')
             ->setCellValue('D1', '活动名称')
             ->setCellValue('E1', '联系方式')
-            ->setCellValue('F1', '微ID')
+            ->setCellValue('F1', '微ID')
             ->setCellValue('G1', '客户城市')
             ->setCellValue('H1', '打卡时间')
             ->setCellValue('I1', '连续打卡天数');

+ 56 - 0
app/Http/Controllers/Admin/CustomScore.php

@@ -138,5 +138,61 @@ class CustomScore extends Auth{
 		return								json_send(['code'=>'success','msg'=>'批量导入成功','path'=>'']);
 	}
 
+	/**
+	 * 表格导入
+	 * 
+	 * */
+	public function import_weiban( Request $request,Model $Model,Custom $Custom,FilesManager $FilesManager){
+		// 验证参数
+		$request->scene('import_execl')->validate();
+		// 获取表格信息
+		$file								= request()->file('score_file');
+		// 返回结果
+		$sheetList							= $FilesManager->weibanToScore($file);
+		// 如果不存在结果
+		if( isset($sheetList['error']) )	return json_send(['code'=>'error','msg'=>$sheetList['error']]);
+        // 通过微伴ID查询用户ID
+        $uidList							= $Custom->query()->whereIn('weiban_extid',array_column($sheetList,'weiban_extid'))->pluck('uid as custom_uid','weiban_extid')->toArray();
+		// 未知用户
+		$noUsers							= [];
+		// 循环列表
+		foreach ($sheetList as $key=>$value) 		{
+			// 如果查询不到数据
+			if( empty($uidList[$value['weiban_extid']]) )   {
+				// 判断
+				$noUsers[]					= $value['weiban_extid'];
+				unset($sheetList[$key]);
+				continue;
+			}
+			// 获取客户ID
+			$value['custom_uid']			= $uidList[$value['weiban_extid']];
+			// 重组
+			$sheetList[$key]				= $value;
+		}
+		// 组合数据,写入订单表,子表
+		DB::beginTransaction();
+		// 错误信息
+		try {
+			// 循环表格数据
+			foreach ($sheetList as $value) 		{
+				// 写入数据表
+				$payId							= $Model->trade($value['custom_uid'],0,$value['score'],4,($value['score']>0?1:2),$value['description']);
+				// 如果操作失败
+				if( isset($payId['error']) ) 	{
+					// 回滚
+					DB::rollBack();
+					// 结果提示
+					return 						json_send(['code'=>'error','msg'=>$value['weiban_extid'].'=>'.$payId['error']]);
+				}
+			}
+			// 提交事务
+			DB::commit();
+			// 提示成功
+			return								json_send(['code'=>'success','msg'=>($noUsers? ' 以下不存用户<br/>'.implode('<br/>',$noUsers) : '批量导入成功'),'path'=>'']);
+		} catch (\Throwable $th) {
+			// 提示成功
+			return								json_send(['code'=>'success','msg'=>'批量导入失败','path'=>'','data'=>['error'=>$th->getMessage()]]);
+		}
+	}
 
 }

+ 17 - 5
app/Http/Controllers/Admin/LotteryOrder.php

@@ -5,7 +5,7 @@ use App\Http\Requests\Admin\Lottery\Order as Request;
 use App\Models\Lottery\Order as Model;
 use App\Models\City;
 use App\Models\Lottery\OrderReward;
-use App\Facades\Servers\WechatWork\CorpTag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 
 /**
  * 优惠券自动发放规则
@@ -71,7 +71,7 @@ class LotteryOrder extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add(Request $request,Model $Model,City $City){
+	public function add(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -100,7 +100,13 @@ class LotteryOrder extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('tagList',$tagList);
@@ -113,7 +119,7 @@ class LotteryOrder extends Auth{
 	 * 修改
 	 * 
 	 * */
-	public function edit(Request $request,Model $Model,City $City){
+	public function edit(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
 		// 接收参数
 		$id							= request('id',0);
 		// 查询用户
@@ -151,7 +157,13 @@ class LotteryOrder extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('tagList',$tagList);

+ 17 - 5
app/Http/Controllers/Admin/LotteryScore.php

@@ -4,7 +4,7 @@ use App\Http\Requests\Admin\LotteryScore as Request;
 use App\Models\Lottery\Score as Model;
 use App\Models\City;
 use App\Models\Lottery\ScoreReward;
-use App\Facades\Servers\WechatWork\CorpTag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 
 /**
  * 优惠券自动发放规则
@@ -49,7 +49,7 @@ class LotteryScore extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add(Request $request,Model $Model,City $City){
+	public function add(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -80,7 +80,13 @@ class LotteryScore extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('tagList',$tagList);
@@ -93,7 +99,7 @@ class LotteryScore extends Auth{
 	 * 修改
 	 * 
 	 * */
-	public function edit(Request $request,Model $Model,City $City){
+	public function edit(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
 		// 接收参数
 		$id							= request('id',0);
 		// 查询用户
@@ -133,7 +139,13 @@ class LotteryScore extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('tagList',$tagList);

+ 6 - 6
app/Http/Controllers/Admin/Orders.php

@@ -237,7 +237,7 @@ class Orders extends Auth{
 		// 循环表格数据
 		foreach ($sheetList as $value) 		{
 			// 状态更改
-			$value['status']				= $Model->getWeiZanStatus($value['status']);
+			$value['status']				= $Model->getWeibanStatus($value['status']);
 			// 客户手机号
 			$orderList[$value['weizan_orderid']]['custom']				= ['phone'=>$value['contact_phone'],'username'=>$value['buyer_nick']];
 			// 组合成订单的收件地址
@@ -341,7 +341,7 @@ class Orders extends Auth{
 			// 如果客户ID有误
 			if( !$orderId )					return json_send(['code'=>'error','msg'=>$value['order_code'].'编码有误']);
 			// 订单状态
-			$status							= $Model->getWeiZanStatus($value['status']);
+			$status							= $Model->getWeibanStatus($value['status']);
 			// 状态提示
 			if( $status < 0 )				return json_send(['code'=>'error','msg'=>$value['order_code'].'状态有误']);
 			// 修改数据
@@ -411,7 +411,7 @@ class Orders extends Auth{
 										'orders_product.pay_total',
 										'orders_product.status',
 										'orders_product.insert_time',
-										'custom.username as custom_name','custom.external_userid as external_userid',
+										'custom.username as custom_name','custom.weiban_extid as weiban_extid',
 										'orders_addr.contact_name','orders_addr.contact_shop','orders_addr.contact_phone','orders_addr.contact_province','orders_addr.contact_city','orders_addr.contact_area','orders_addr.contact_addr'
 									])->get()->toArray();
 		// 返回结果
@@ -428,7 +428,7 @@ class Orders extends Auth{
 			$data[$value['order_id']]['order_id'] = $value['order_id'];
 			$data[$value['order_id']]['custom_uid'] = $value['custom_uid'];
 			$data[$value['order_id']]['custom_name'] = $value['custom_name'];
-			$data[$value['order_id']]['external_userid'] = $value['external_userid'];
+			$data[$value['order_id']]['weiban_extid'] = $value['weiban_extid'];
 			$data[$value['order_id']]['status'] = $value['status'];
 			$data[$value['order_id']]['insert_time'] = $value['insert_time'];
 			// 地址
@@ -494,7 +494,7 @@ class Orders extends Auth{
 			$sheet->setCellValue('H'.$row, $value['contact_city']);
 			$sheet->setCellValue('I'.$row, $value['contact_area']);
 			$sheet->setCellValue('J'.$row, $value['contact_addr']);
-			$sheet->setCellValue('S'.$row, $value['external_userid']);
+			$sheet->setCellValue('S'.$row, $value['weiban_extid']);
 			$sheet->setCellValue('T'.$row, date('Y-m-d H:i:s',$value['insert_time']));
 			// 循环产品
 			foreach ($value['product'] as $v) {
@@ -574,7 +574,7 @@ class Orders extends Auth{
 		->setCellValue('P1', '产品数量')
 		->setCellValue('Q1', '优惠金额')
 		->setCellValue('R1', '产品金额')
-		->setCellValue('S1', '微ID')
+		->setCellValue('S1', '微ID')
 		->setCellValue('T1', '下单时间');
 		// 返回结果
 		return 					$sheet;

+ 25 - 7
app/Http/Controllers/Admin/Product.php

@@ -16,7 +16,7 @@ use App\Models\Product\Skus as ProductSkus;
 use App\Models\Product\City as ProductCity;
 use App\Models\ProductPhoto;
 use Illuminate\Support\Facades\DB;
-use App\Facades\Servers\WechatWork\CorpTag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 
 /**
  * 产品管理
@@ -112,7 +112,7 @@ class Product extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add( Request $request, Model $Model,Course $Course,ProductPhoto $ProductPhoto,Producer $Producer,Business $Business,ProductType $ProductType,ProductSpec $ProductSpec,ProductAttr $ProductAttr,ProductSkus $ProductSkus,City $City,ProductCity $ProductCity){
+	public function add( Request $request, Model $Model,Course $Course,WeiBanTags $WeiBanTags,ProductPhoto $ProductPhoto,Producer $Producer,Business $Business,ProductType $ProductType,ProductSpec $ProductSpec,ProductAttr $ProductAttr,ProductSkus $ProductSkus,City $City,ProductCity $ProductCity){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -296,7 +296,13 @@ class Product extends Auth{
 		$producerList			= $Producer->getList();
         $courseList				= $Course->getList();
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData				= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList				= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('crumbs','新增');
 		$this->assign('tagList',$tagList);
@@ -313,7 +319,7 @@ class Product extends Auth{
 	 * 编辑
 	 * 
 	 * */
-	public function edit( Request $request, Model $Model,Course $Course,ProductPhoto $ProductPhoto,Producer $Producer,Business $Business,ProductType $ProductType,ProductSpec $ProductSpec,ProductAttr $ProductAttr,ProductSkus $ProductSkus,City $City,ProductCity $ProductCity){
+	public function edit( Request $request, Model $Model,Course $Course,WeiBanTags $WeiBanTags,ProductPhoto $ProductPhoto,Producer $Producer,Business $Business,ProductType $ProductType,ProductSpec $ProductSpec,ProductAttr $ProductAttr,ProductSkus $ProductSkus,City $City,ProductCity $ProductCity){
 		if(request()->isMethod('post')){
 			// 验证参数
 			$request->scene('edit')->validate();
@@ -525,7 +531,13 @@ class Product extends Auth{
 		$producerList			= $Producer->getList();
         $courseList				= $Course->getList();
 		// 标签列表
-		$tagList				= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 分配数据
 		$this->assign('tagList',$tagList);
 		$this->assign('typeList',$typeList);
@@ -547,7 +559,7 @@ class Product extends Auth{
 	 * 编辑
 	 * 
 	 * */
-	public function copy( Request $request, Model $Model,ProductPhoto $ProductPhoto,Producer $Producer,Business $Business,ProductType $ProductType,ProductSpec $ProductSpec,ProductAttr $ProductAttr,ProductSkus $ProductSkus,City $City,ProductCity $ProductCity){
+	public function copy( Request $request, Model $Model,WeiBanTags $WeiBanTags,ProductPhoto $ProductPhoto,Producer $Producer,Business $Business,ProductType $ProductType,ProductSpec $ProductSpec,ProductAttr $ProductAttr,ProductSkus $ProductSkus,City $City,ProductCity $ProductCity){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -750,7 +762,13 @@ class Product extends Auth{
 			$skuList[$key]			= $value;
 		}
 		// 标签列表
-		$tagList					= WorkTag::getList();
+		$tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+		// 标签列表
+		$tagList					= [];
+		// 循环数据
+		foreach ($tagData as $value) {
+			$tagList[$value['group']][] = $value['name'];
+		}
 		// 获取类型数据
 		$typeList				= $ProductType->getList();
 		$cityList				= $City->getCityList();

+ 16 - 6
app/Http/Controllers/Admin/Promo.php

@@ -6,7 +6,7 @@ use App\Models\PromoRebate;
 use App\Models\Product;
 use Illuminate\Support\Facades\DB;
 use App\Models\City;
-use App\Facades\Servers\WechatWork\CorpTag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 
 /**
  * 产品促销活动
@@ -91,7 +91,7 @@ class Promo extends Auth{
 	 * 添加
 	 * 
 	 * */
-	public function add( Request $request, Model $Model,City $City,PromoRebate $PromoRebate,Product $Product){
+	public function add( Request $request, Model $Model,City $City,PromoRebate $PromoRebate,Product $Product,WeiBanTags $WeiBanTags){
 		if( request()->isMethod('post') ){
 			// 验证参数
 			$request->scene('add')->validate();
@@ -167,8 +167,12 @@ class Promo extends Auth{
 		// 获取列表
 		$cityList					= $City->getCityList();
         // 标签列表
-		$tagList					= WorkTag::getList();
-		// 交易类型
+        $tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+        $tagList					= [];
+        // 循环数据
+        foreach ($tagData as $value) {
+            $tagList[$value['group']][] = $value['name'];
+        }
 		$grantList					= $Model->getGrantTypeList();
 		// 分配数据
 		$this->assign('cityList',$cityList);
@@ -183,7 +187,7 @@ class Promo extends Auth{
 	 * 编辑
 	 * 
 	 * */
-	public function edit( Request $request, Model $Model,City $City,PromoRebate $PromoRebate,Product $Product){
+	public function edit( Request $request, Model $Model,City $City,PromoRebate $PromoRebate,Product $Product,WeiBanTags $WeiBanTags){
 		// 接收参数
 		$id							= request('id',0);
 		// 查询数据
@@ -282,7 +286,13 @@ class Promo extends Auth{
 		$cityList					= $City->getCityList();
 		$grantList					= $Model->getGrantTypeList();
         // 标签列表
-		$tagList					= WorkTag::getList();
+        $tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
+        // 标签列表
+        $tagList					= [];
+        // 循环数据
+        foreach ($tagData as $value) {
+            $tagList[$value['group']][] = $value['name'];
+        }
 		// 分配数据
 		$this->assign('cityList',$cityList);
 		$this->assign('grantList',$grantList);

+ 158 - 0
app/Http/Controllers/Admin/School.php

@@ -0,0 +1,158 @@
+<?php namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\Admin\Banner as Request;
+use App\Models\Banner as Model;
+use App\Models\City;
+
+/**
+ * banner管理
+ *
+ * @author    刘相欣
+ *
+ */
+class School extends Auth{
+	
+	protected function _initialize(){
+		parent::_initialize();
+		$this->assign('breadcrumb1','学校管理');
+		$this->assign('breadcrumb2','学校列表');
+	}
+	
+	/**
+	 * 首页列表
+	 * 
+	 * */
+    public function index(Model $Model){
+		// 接受参数
+		$name					= request('name','');
+		// 查询条件
+		$map 					= [];
+		// 编码ID
+		if( $name )				$map[] = ['name','=',$name];
+		// 查询数据
+		$list					= $Model->query()->where($map)->orderByDesc('id')->paginate(request('limit',config('page_num',10)))->appends(request()->all());
+		// 循环处理数据
+		foreach ($list as $key => $value) {
+			// id转编号
+			$value['thumb']		= $value['thumb'] ? path_compat($value['thumb']) : '';
+			// 重组
+			$list[$key]			= $value;
+		}
+		// 分配数据
+		$this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
+		$this->assign('list', $list);
+		// 加载模板
+		return $this->fetch();
+    }
+
+	/**
+	 * 添加
+	 * 
+	 * */
+	public function add( Request $request, Model $Model,City $City){
+		if( request()->isMethod('post') ){
+			// 验证参数
+			$request->scene('add')->validate();
+			// 组合数据
+			$data['name']			= request('name','');
+			$data['thumb']			= request('thumb','');
+			$data['type']			= request('type',0);
+			$data['link_url']		= request('link_url','');
+			$cityIds				= request('city_ids',[]);
+			$data['city_ids']		= implode(',',$cityIds);
+			$data['start_time']		= request('start_time','');
+			$data['end_time']		= request('end_time','');
+			$data['start_time']		= $data['start_time'] ? strtotime($data['start_time']) : 0;
+			$data['end_time']		= $data['end_time'] ? strtotime($data['end_time']) : 0;
+			// 限购提示
+			if( $data['type'] && ( !$data['start_time'] || !$data['end_time'] )) 	return json_send(['code'=>'error','msg'=>'下单显示请填写活动时间','data'=>['error'=>'下单显示请填写时间']]);
+			// 写入
+			$id						= $Model->add($data);
+			// 提示新增失败
+			if( !$id )				return json_send(['code'=>'error','msg'=>'新增失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,1,[],$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']);
+		}
+		// 获取列表
+		$cityList					= $City->getCityList();
+		// 分配数据
+		$this->assign('crumbs','新增');
+		$this->assign('cityList',$cityList);
+		// 加载模板
+		return 					$this->fetch();
+	}
+	
+	/**
+	 * 编辑
+	 * 
+	 * */
+	public function edit( Request $request, Model $Model,City $City){
+		if(request()->isMethod('post')){
+			// 验证参数
+			$request->scene('edit')->validate();
+			// 组合数据
+			$id						= request('id',0);
+			$data['name']			= request('name','');
+			$data['thumb']			= request('thumb','');
+			$data['type']			= request('type',0);
+			$data['link_url']		= request('link_url','');
+			$cityIds				= request('city_ids',[]);
+			$data['city_ids']		= implode(',',$cityIds);
+			$data['start_time']		= request('start_time','');
+			$data['end_time']		= request('end_time','');
+			$data['start_time']		= $data['start_time'] ? strtotime($data['start_time']) : 0;
+			$data['end_time']		= $data['end_time'] ? strtotime($data['end_time']) : 0;
+			// 限购提示
+			if( $data['type'] && ( !$data['start_time'] || !$data['end_time'] )) 	return json_send(['code'=>'error','msg'=>'下单显示请填写活动时间','data'=>['error'=>'下单显示请填写时间']]);
+			// 如果没有选择,则意味着全部
+			$cityIds				= $cityIds ? $cityIds : [1];
+			// 写入
+			$result					= $Model->edit($id,$data);
+			// 提示新增失败
+			if( !$result )			return json_send(['code'=>'error','msg'=>'修改失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,[],$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']);
+		}
+		// 接收参数
+		$id							= request('id',0);
+		// 查询数据
+		$oldData					= $Model->where(['id'=>$id])->first();
+		// 如果是没有数据
+		if( !$oldData ) 			return $this->error('查无数据');
+		// 获取城市ID
+		$oldData['city_ids']		= explode(',',$oldData['city_ids']);
+		// 获取列表
+		$cityList					= $City->getCityList();
+		// 分配数据
+		$this->assign('oldData',$oldData);
+		$this->assign('cityList',$cityList);
+		$this->assign('crumbs','修改');
+		// 加载模板
+		return 						$this->fetch();
+	}
+
+	/**
+	 * 状态
+	 * 
+	 * */
+	public function set_status( Request $request, Model $Model ){
+		// 验证参数
+		$request->scene('set_status')->validate();
+		// 接收参数
+		$id				= request('id',0);
+		$status			= request('status',0);
+		// 查询数据
+		$result			= $Model->edit($id,['status'=>$status]);
+		// 提示新增失败
+		if( !$result )	return json_send(['code'=>'error','msg'=>'设置失败']);
+		// 记录行为
+		$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,[],['status'=>$status]);
+		// 告知结果
+		return			json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
+	}
+
+}

+ 115 - 109
app/Http/Controllers/Admin/ScoreClockinActive.php

@@ -1,13 +1,11 @@
-<?php
-
-namespace App\Http\Controllers\Admin;
+<?php namespace App\Http\Controllers\Admin;
 
 use App\Facades\Servers\WechatMini\Mini;
 use App\Http\Requests\Admin\ScoreClockinActive as Request;
 use App\Models\City;
 use App\Models\Score\ClockinActive as Model;
 use App\Models\Score\Clockin as Clockin;
-use App\Facades\Servers\WechatWork\CorpTag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 use Illuminate\Support\Facades\DB;
 
 
@@ -17,54 +15,52 @@ use Illuminate\Support\Facades\DB;
  * @author    jun
  * 
  */
-class ScoreClockinActive extends Auth
-{
+class ScoreClockinActive extends Auth{
 
-    protected function _initialize()
-    {
-        parent::_initialize();
-        $this->assign('breadcrumb1', '任务打卡');
-        $this->assign('breadcrumb2', '打卡任务');
-    }
+	protected function _initialize(){
+		parent::_initialize();
+		$this->assign('breadcrumb1','任务打卡');
+		$this->assign('breadcrumb2','打卡任务');
+	}
 
     /**
      * 列表页
      *
      * */
-    public function index(Model $Model, City $City) {
+    public function index(Request $request, Model $Model, City $City){
         // 接收参数
-        $name                    = request('name', '');
+        $name					= request('name','');
         // 查询条件
-        $map                     = [];
+        $map 					= [];
         // 组合条件
-        if ($name)                $map[] = ['name', '=', $name];
+        if( $name )				$map[] = ['name','=',$name];
         // 查询数据
-        $list                    = $Model->query()->where($map)->orderByDesc('id')->paginate(config('page_num', 10));
+        $list					= $Model->query()->where($map)->orderByDesc('id')->paginate(config('page_num',10));
         // 循环处理数据
         foreach ($list as $key => $value) {
             // 小程序链接
-            $value['mp_urllink'] = $this->getUrlLink($value['id']);
-            if ($value['city_ids']) {
+            $value['mp_urllink']= $this->getUrlLink($value['id']);
+            if( $value['city_ids'] ) {
                 // 解析数组
-                $cityids            = explode(',', $value['city_ids']);
+                $cityids			= explode(',',$value['city_ids']);
                 // 获取城市
-                foreach ($cityids as $kk => $vv) {
+                foreach ($cityids as $kk=>$vv) 	{
                     // 获取值
-                    $vv                = $City->getOne($vv, 'name');
+                    $vv				= $City->getOne($vv,'name');
                     // 获取城市名
-                    $cityids[$kk]    = $vv;
+                    $cityids[$kk]	= $vv;
                 }
                 // 城市列表
-                $value['city_ids']    = implode('、', $cityids);
+                $value['city_ids']	= implode('、',$cityids);
             }
             // 重组
-            $list[$key]            = $value;
+            $list[$key]			= $value;
         }
         // 分配数据
         $this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
-        $this->assign('list', $list);
+        $this->assign('list',$list);
         // 加载模板
-        return                     $this->fetch();
+        return 					$this->fetch();
     }
 
     /**
@@ -73,180 +69,190 @@ class ScoreClockinActive extends Auth
      */
     private function getUrlLink($id){
         // 结果数据
-        $link                  = cache('admin:clockin:active:urllink:' . $id);
+        $link                  = cache('admin:clockin:active:urllink:'.$id);
         // 不存在数据
-        if (is_null($link)) {
+        if ( is_null($link) ) {
             // 从数据库获取数据
-            $link              = Mini::getUrlLink('pages/clockin/active', '?id=' . $id);
+            $link              = Mini::getUrlLink('pages/clockin/active','?id='.$id);
             // 存起来
-            cache(['admin:clockin:active:urllink:' . $id => $link], $link ? now()->addDays(28) : now()->addMinutes(3));
+            cache(['admin:clockin:active:urllink:'.$id=>$link],$link ? now()->addDays(28) : now()->addMinutes(3));
         }
         // 返回结果
         return                  $link;
+
     }
 
     /**
      * 添加
      *
      * */
-    public function add(Request $request, Model $Model, City $City){
-        if (request()->isMethod('post')) {
+    public function add(Request $request, Model $Model, City $City, WeiBanTags $WeiBanTags){
+        if( request()->isMethod('post') ){
             // 验证参数
             $request->scene('add')->validate();
             // 接收数据
-            $data['banner_img']        = request('banner_img', '');
-            $data['name']            = request('name', '');
-            $data['active_rule']    = request('active_rule', '');
-            $data['start_time']        = request('start_time', '');
-            $data['end_time']        = request('end_time', '');
-            $data['start_time']        = $data['start_time'] ? strtotime($data['start_time']) : 0;
-            $data['end_time']        = $data['end_time'] ? strtotime($data['end_time']) : 0;
-            $cityIds                = request('city_ids', []);
-            $tagScope                = request('tag_scope', []);
-            $data['city_ids']        = implode(',', $cityIds);
-            $data['tag_scope']        = implode(',', $tagScope);
-            $data['status']            = 1;
+            $data['banner_img']		= request('banner_img','');
+            $data['name']			= request('name','');
+            $data['active_rule']	= request('active_rule','');
+            $data['start_time']		= request('start_time','');
+            $data['end_time']		= request('end_time','');
+            $data['start_time']		= $data['start_time'] ? strtotime($data['start_time']) : 0;
+            $data['end_time']		= $data['end_time'] ? strtotime($data['end_time']) : 0;
+            $cityIds				= request('city_ids',[]);
+            $tagScope				= request('tag_scope',[]);
+            $data['city_ids']		= implode(',',$cityIds);
+            $data['tag_scope']		= implode(',',$tagScope);
+            $data['status']			= 1;
             // 写入数据表
-            $id                        = $Model->add($data);
+            $id						= $Model->add($data);
             // 如果操作失败
-            if (!$id)                 return json_send(['code' => 'error', 'msg' => '新增失败']);
+            if( !$id ) 				return json_send(['code'=>'error','msg'=>'新增失败']);
             // 记录行为
-            $this->addAdminHistory(admin('uid'), $Model->getTable(), $id, 1, [], $data);
+            $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,1,[],$data);
             // 告知结果
-            return                    json_send(['code' => 'success', 'msg' => '新增成功', 'action' => 'add']);
+            return					json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']);
         }
         // 获取列表
-        $cityList                    = $City->getCityList();
+        $cityList					= $City->getCityList();
+        // 标签列表
+        $tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
         // 标签列表
-		$tagList					= WorkTag::getList();
+        $tagList					= [];
+        // 循环数据
+        foreach ($tagData as $value) {
+            $tagList[$value['group']][] = $value['name'];
+        }
         // 分配数据
-        $this->assign('cityList', $cityList);
-        $this->assign('tagList', $tagList);
-        $this->assign('crumbs', '新增');
+        $this->assign('cityList',$cityList);
+        $this->assign('tagList',$tagList);
+        $this->assign('crumbs','新增');
         // 加载模板
-        return                        $this->fetch();
+        return						$this->fetch();
     }
 
     /**
      * 修改
      *
      * */
-    public function edit(Request $request, Model $Model, City $City)
-    {
+    public function edit(Request $request,Model $Model,City $City,WeiBanTags $WeiBanTags){
         // 接收参数
-        $id                            = request('id', 0);
+        $id							= request('id',0);
         // 查询用户
-        $oldData                    = $Model->where(['id' => $id])->first();
+        $oldData					= $Model->where(['id'=>$id])->first();
         // 修改
-        if (request()->isMethod('post')) {
+        if(request()->isMethod('post')){
             // 验证参数
             $request->scene('edit')->validate();
             // 接收数据
-            $data['banner_img']        = request('banner_img', '');
-            $data['name']            = request('name', '');
-            $data['active_rule']    = request('active_rule', '');
-            $data['start_time']        = request('start_time', '');
-            $data['end_time']        = request('end_time', '');
-            $data['start_time']        = $data['start_time'] ? strtotime($data['start_time']) : 0;
-            $data['end_time']        = $data['end_time'] ? strtotime($data['end_time']) : 0;
-            $cityIds                = request('city_ids', []);
-            $tagScope                = request('tag_scope', []);
-            $data['city_ids']        = implode(',', $cityIds);
-            $data['tag_scope']        = implode(',', $tagScope);
+            $data['banner_img']		= request('banner_img','');
+            $data['name']			= request('name','');
+            $data['active_rule']	= request('active_rule','');
+            $data['start_time']		= request('start_time','');
+            $data['end_time']		= request('end_time','');
+            $data['start_time']		= $data['start_time'] ? strtotime($data['start_time']) : 0;
+            $data['end_time']		= $data['end_time'] ? strtotime($data['end_time']) : 0;
+            $cityIds				= request('city_ids',[]);
+            $tagScope				= request('tag_scope',[]);
+            $data['city_ids']		= implode(',',$cityIds);
+            $data['tag_scope']		= implode(',',$tagScope);
             // 写入数据表
-            $result                    = $Model->edit($id, $data);
+            $result					= $Model->edit($id,$data);
             // 如果操作失败
-            if (!$result)             return json_send(['code' => 'error', 'msg' => '修改失败']);
+            if( !$result ) 			return json_send(['code'=>'error','msg'=>'修改失败']);
             // 记录行为
-            $this->addAdminHistory(admin('uid'), $Model->getTable(), $id, 2, $oldData, $data);
+            $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,$data);
             // 告知结果
-            return                    json_send(['code' => 'success', 'msg' => '修改成功', 'action' => 'edit']);
+            return					json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']);
         }
         // 错误告知
-        if (!$oldData)                return $this->error('查无数据');
+        if( !$oldData )				return $this->error('查无数据');
         // 获取城市ID
-        $oldData['city_ids']        = explode(',', $oldData['city_ids']);
-        $oldData['tag_scope']        = explode(',', $oldData['tag_scope']);
+        $oldData['city_ids']		= explode(',',$oldData['city_ids']);
+        $oldData['tag_scope']		= explode(',',$oldData['tag_scope']);
         // 获取列表
-        $cityList                    = $City->getCityList();
+        $cityList					= $City->getCityList();
+        // 标签列表
+        $tagData					= $WeiBanTags->query()->groupBy('group')->groupBy('name')->get(['group','name'])->toArray();
         // 标签列表
-		$tagList					= WorkTag::getList();
+        $tagList					= [];
+        // 循环数据
+        foreach ($tagData as $value) {
+            $tagList[$value['group']][] = $value['name'];
+        }
         // 分配数据
-        $this->assign('cityList', $cityList);
-        $this->assign('tagList', $tagList);
-        $this->assign('oldData', $oldData);
-        $this->assign('crumbs', '修改');
+        $this->assign('cityList',$cityList);
+        $this->assign('tagList',$tagList);
+        $this->assign('oldData',$oldData);
+        $this->assign('crumbs','修改');
         // 加载模板
-        return                        $this->fetch();
+        return						$this->fetch();
     }
 
     /**
      * 修改状态
      *
      * */
-    public function set_status(Request $request, Model $Model)
-    {
+    public function set_status(Request $request,Model $Model){
         // 验证参数
         $request->scene('set_status')->validate();
         // 设置状态
-        $id                = request('id', 0);
-        $status            = request('status', 0);
+        $id				= request('id',0);
+        $status			= request('status',0);
         // 查询用户
-        $oldData        = $Model->where(['id' => $id])->first();
+        $oldData		= $Model->where(['id'=>$id])->first();
         // 如果用户不存在
-        if (!$oldData)    return json_send(['code' => 'error', 'msg' => '数据不存在']);
+        if( !$oldData )	return json_send(['code'=>'error','msg'=>'数据不存在']);
         // 执行修改
-        $result            = $Model->edit($id, ['status' => $status]);
+        $result			= $Model->edit($id,['status'=>$status]);
         // 提示新增失败
-        if (!$result)    return json_send(['code' => 'error', 'msg' => '设置失败']);
+        if( !$result )	return json_send(['code'=>'error','msg'=>'设置失败']);
         // 记录行为
-        $this->addAdminHistory(admin('uid'), $Model->getTable(), $id, 2, $oldData, ['status' => $status]);
+        $this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,['status'=>$status]);
         // 告知结果
-        return             json_send(['code' => 'success', 'msg' => '设置成功', 'path' => '']);
+        return 			json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
     }
     /**
      * 复制
      *
      * */
-    public function copy(Request $request, Model $Model, Clockin $Clockin)
-    {
+    public function copy(Request $request,Model $Model,Clockin $Clockin){
         // 验证参数
         $request->scene('copy')->validate();
         // 设置状态
-        $id                = request('id', 0);
+        $id				= request('id',0);
         $time           =   time();
         // 查询
-        $data            = $Model->where(['id' => $id])->first()->toArray();
-        if (!$data)     json_send(['code' => 'error', 'msg' => '复制失败,活动不存在']);
+        $data		    = $Model->where(['id'=>$id])->first()->toArray();
+        if (!$data)     json_send(['code'=>'error','msg'=>'复制失败,活动不存在']);
         $clockinList    = $Clockin->getActiveList($id);
         DB::beginTransaction();
         try {
             unset($data['id']);
             $data['status'] = 1;
-            $data['name'] = $data['name'] . '复制';
+            $data['name'] = $data['name'].'复制';
             //复制活动
             $newId          = $Model->add($data);
-            if (!$newId) {
+            if (!$newId){
                 DB::rollBack();
-                return json_send(['code' => 'error', 'msg' => '复制失败']);
+                return json_send(['code'=>'error','msg'=>'复制失败']);
             }
-            if ($clockinList) {
-                foreach ($clockinList as &$clockin) {
+            if ($clockinList){
+                foreach ($clockinList as &$clockin){
                     $clockin['active_id'] = $newId;
                     $clockin['insert_time'] = $time;
                     $clockin['update_time'] = $time;
                     unset($clockin['id']);
                 }
                 $re = $Clockin->Query()->insert($clockinList);
-                if (!$re)   return  json_send(['code' => 'error', 'msg' => '复制失败']);
+                if (!$re)   return  json_send(['code'=>'error','msg'=>'复制失败']);
             }
             DB::commit();
-        } catch (\Exception $e) {
+        }catch (\Exception $e){
             // 回退数据
             DB::rollBack();
             // 失败提示
-            return                        json_send(['code' => 'error', 'msg' => '复制失败', 'data' => ['error' => $e->getMessage() . $e->getLine()]]);
+            return						json_send(['code'=>'error','msg'=>'复制失败','data'=>['error'=>$e->getMessage().$e->getLine()]]);
         }
-        return json_send(['code' => 'success', 'msg' => '复制成功', 'path' => '']);
+        return json_send(['code'=>'success','msg'=>'复制成功','path'=>'']);
     }
 }

+ 1 - 1
app/Http/Controllers/Admin/WeibanQrcode.php

@@ -15,7 +15,7 @@ class WeibanQrcode extends Auth{
 	protected function _initialize(){
 		parent::_initialize();
 		$this->assign('breadcrumb1','客户管理');
-		$this->assign('breadcrumb2','客服配置');
+		$this->assign('breadcrumb2','客服二维码');
 	}
 	
 	/**

+ 3 - 3
app/Http/Controllers/Api/Coupon/Active.php

@@ -9,7 +9,7 @@ use App\Models\Coupon\ActiveCoupon;
 use App\Models\CouponProduct;
 use App\Models\CouponRebate;
 use App\Models\CustomCoupon;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 /**
  * 优惠券活动
  * 
@@ -23,7 +23,7 @@ class Active extends Api{
 	 * 
 	 * 
 	 * */
-	public function get_detail(Request $request,Model $Model,Custom $Custom,WorkTag $WorkTag,City $City,ActiveCoupon $ActiveCoupon,CustomCoupon $CustomCoupon,CouponProduct $CouponProduct,CouponRebate $CouponRebate){
+	public function get_detail(Request $request,Model $Model,Custom $Custom,WeiBanTags $WeiBanTags,City $City,ActiveCoupon $ActiveCoupon,CustomCoupon $CustomCoupon,CouponProduct $CouponProduct,CouponRebate $CouponRebate){
 		// 接口验签
 		// $this->verify_sign();
 		// 验证参数
@@ -47,7 +47,7 @@ class Active extends Api{
 			// 解析数组
 			$data['tag_scope']			= explode(',',$data['tag_scope']);
 			// 查询用户标签
-			$tags						= $WorkTag->getListByExtid($custom['external_userid']);
+			$tags						= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
 			// 标签范围限定时,默认不能参与
 			$data['allow_join'] 		= 0;
 			// 判断标签是不是存在

+ 26 - 8
app/Http/Controllers/Api/Custom.php

@@ -1,12 +1,13 @@
 <?php namespace App\Http\Controllers\Api;
 
+use App\Facades\Servers\WeiBan\OpenApi;
 use App\Http\Controllers\Api\Api;
 use App\Models\Custom as Model;
-use App\Models\Work\State as WorkState;
+use App\Models\WeiBan\Qrcode as WeiBanQrcode;
 use Vinkla\Hashids\Facades\Hashids;
 use App\Http\Requests\Api\Custom as Request;
 use App\Models\City;
-use App\Models\Work\External as WorkExternal;
+use App\Models\WeiBan\Follow as WeiBanFollow;
 
 /**
  * 客户接口
@@ -23,7 +24,7 @@ class Custom extends Api{
 	 * @param	string		$code		授权码
 	 * 
 	 * */
-	public function get_info(Model $Model,WorkState $WorkState,City $City,WorkExternal $WorkExternal){
+	public function get_info(Model $Model,WeiBanQrcode $WeiBanQrcode,City $City,WeiBanFollow $WeiBanFollow){
 		// 接口验签
 		// $this->verify_sign();
 		// 检查登录
@@ -32,8 +33,25 @@ class Custom extends Api{
 		$custom							= $Model->getOne($uid);
 		// 用户不存在
 		if( empty($custom) )			return json_send(['code'=>'error','msg'=>'用户不存在','data'=>['error'=>'用户不存在']]);
-		// 如果不存在企微ID,查询数据库
-		if( !$custom['external_userid'] ) $custom['external_userid'] = (string) $WorkExternal->query()->where([['custom_uid', '=',$custom['uid']]])->value('external_userid');
+		// 如果不存在微伴ID
+		if( !$custom['weiban_extid'] )	{
+			// 通过手机号查询注册的账号
+			$custom['weiban_extid'] 	= (string) $WeiBanFollow->query()->where([['phone_number','=',$custom['phone']]])->value('weiban_extid');
+			// 不存在,通过接口获取数据
+			if( !$custom['weiban_extid'] ) {
+				// 获取用户列表
+				$userList 				= OpenApi::getUserListByPhone($custom['phone']);
+				// 如果有的话
+				if( $userList )			{
+					// 获取第一个
+					$extUser			= array_shift($userList);
+					// 获取对应的ID
+					$custom['weiban_extid'] = empty($extUser['id']) ? '' : $extUser['id'];
+				}
+			}
+			// 存在则修正
+			if( $custom['weiban_extid'] )	$Model->edit($custom['uid'],['weiban_extid'=>$custom['weiban_extid']]);
+		}
 		// 头像
 		$custom['uid']					= Hashids::encodeHex($custom['uid']);
 		// 头像
@@ -41,7 +59,7 @@ class Custom extends Api{
 		// 手机号
 		$custom['phone']				= hide_phone($custom['phone']);
 		// 如果没有关联企微,获取二维码,已关联的不验证
-		$followQrcode					= $custom['external_userid'] ?  '' : $WorkState->getFollowQrcode($custom['city_id']);
+		$followQrcode					= $custom['weiban_extid'] ?  ['thumb'=>'','link_url'=>''] : $WeiBanQrcode->getFollowQrcode($custom['city_id']);
 		// 城市ID换城市名
 		$cityId							= (string) $City->getOne($custom['city_id'],'name');
 		// 所需数组组合
@@ -53,8 +71,8 @@ class Custom extends Api{
 											'company_id'=>1, // 无需验证资质
 											'show_price'=>$cityId?1:0, // 是否选择了城市处理
 											'city_id'=>$cityId,
-											'follow_qrcode'=>$followQrcode,
-											'follow_linkurl'=>'',
+											'follow_qrcode'=>$followQrcode['thumb'],
+											'follow_linkurl'=>$followQrcode['link_url'],
 										];
 		// 返回结果
 		return							json_send(['code'=>'success','msg'=>'获取成功','data'=>$custom]);

+ 5 - 5
app/Http/Controllers/Api/Lottery/Order.php

@@ -10,7 +10,7 @@ use App\Models\Lottery\OrderProduct as LotteryOrderProduct;
 use App\Models\Lottery\OrderRecord;
 use App\Models\Lottery\OrderReward as OrderReward;
 use App\Models\OrdersProduct;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 use Illuminate\Support\Facades\DB;
 
 /**
@@ -26,7 +26,7 @@ class Order extends Api{
 	 * 
 	 * 
 	 * */
-	public function get_detail(Model $Model,Custom $Custom,OrderReward $OrderReward,LotteryOrderProduct $LotteryOrderProduct,WorkTag $WorkTag,OrdersProduct $OrdersProduct,OrderUsed $OrderUsed){
+	public function get_detail(Model $Model,Custom $Custom,OrderReward $OrderReward,LotteryOrderProduct $LotteryOrderProduct,WeiBanTags $WeiBanTags,OrdersProduct $OrdersProduct,OrderUsed $OrderUsed){
 		// 接口验签
 		// $this->verify_sign();
 		// 检查登录
@@ -48,7 +48,7 @@ class Order extends Api{
 			// 解析数组
 			$data['tag_scope']			= explode(',',$data['tag_scope']);
 			// 查询用户标签
-			$tags						= $WorkTag->getListByExtid($custom['external_userid']);
+			$tags						= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
 			// 标签范围限定时,默认不能参与
 			$data['allow_join'] 		= 0;
 			// 判断标签是不是存在
@@ -109,7 +109,7 @@ class Order extends Api{
 	 * 积分抽奖		/api/lottery_score/get_reward
 	 * 
 	 * */
-	public function get_reward(Model $Model,Custom $Custom,OrderReward $OrderReward,WorkTag $WorkTag,CustomScore $CustomScore,LotteryOrderProduct $LotteryOrderProduct,CustomCoupon $CustomCoupon,OrderRecord $OrderRecord,OrdersProduct $OrdersProduct,OrderUsed $OrderUsed){
+	public function get_reward(Model $Model,Custom $Custom,OrderReward $OrderReward,WeiBanTags $WeiBanTags,CustomScore $CustomScore,LotteryOrderProduct $LotteryOrderProduct,CustomCoupon $CustomCoupon,OrderRecord $OrderRecord,OrdersProduct $OrdersProduct,OrderUsed $OrderUsed){
 		// 接口验签
 		// $this->verify_sign();
 		// 检查登录
@@ -141,7 +141,7 @@ class Order extends Api{
 			// 解析数组
 			$data['tag_scope']			= explode(',',$data['tag_scope']);
 			// 查询用户标签
-			$tags						= $WorkTag->getListByExtid($custom['external_userid']);
+			$tags						= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
 			// 标签范围限定时,默认不能参与
 			$data['allow_join'] 		= 0;
 			// 判断标签是不是存在

+ 3 - 3
app/Http/Controllers/Api/Lottery/Score.php

@@ -7,7 +7,7 @@ use App\Models\CustomCoupon;
 use App\Models\CustomScore;
 use App\Models\Lottery\ScoreRecord;
 use App\Models\Lottery\ScoreReward as ScoreReward;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 use Illuminate\Support\Facades\DB;
 
 /**
@@ -67,7 +67,7 @@ class Score extends Api{
 	 * 积分抽奖		/api/lottery_score/get_reward
 	 * 
 	 * */
-	public function get_reward(Model $Model,Custom $Custom,ScoreReward $ScoreReward,WorkTag $WorkTag,CustomScore $CustomScore,CustomCoupon $CustomCoupon,ScoreRecord $ScoreRecord){
+	public function get_reward(Model $Model,Custom $Custom,ScoreReward $ScoreReward,WeiBanTags $WeiBanTags,CustomScore $CustomScore,CustomCoupon $CustomCoupon,ScoreRecord $ScoreRecord){
 		// 接口验签
 		// $this->verify_sign();
 		// 检查登录
@@ -101,7 +101,7 @@ class Score extends Api{
 			// 解析数组
 			$data['tag_scope']			= explode(',',$data['tag_scope']);
 			// 查询用户标签
-			$tags						= $WorkTag->getListByExtid($custom['external_userid']);
+			$tags						= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
 			// 标签范围限定时,默认不能参与
 			$data['allow_join'] 		= 0;
 			// 判断标签是不是存在

+ 6 - 6
app/Http/Controllers/Api/Orders.php

@@ -18,10 +18,10 @@ use App\Models\RegimentActive;
 use App\Models\RegimentRecord;
 use App\Models\ShopCart;
 use Illuminate\Support\Facades\DB;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 use App\Models\PromoProduct as PromoProduct;
 use Kra8\Snowflake\Snowflake;
-
+use Monolog\Handler\IFTTTHandler;
 
 /**
  * 订单接口
@@ -35,7 +35,7 @@ class Orders extends Api{
 	 * 创建订单						 	/api/orders/create
 	 * 
 	 * */
-	public function create(Request $request,Custom $Custom,City $City,Model $Model,WorkTag $WorkTag,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,Product $Product,ProductSkus $ProductSkus,CustomCoupon $CustomCoupon,ShopCart $ShopCart,CustomAddr $CustomAddr,CustomScore $CustomScore,PromoProduct $PromoProduct){
+	public function create(Request $request,Custom $Custom,City $City,Model $Model,WeiBanTags $WeiBanTags,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,Product $Product,ProductSkus $ProductSkus,CustomCoupon $CustomCoupon,ShopCart $ShopCart,CustomAddr $CustomAddr,CustomScore $CustomScore,PromoProduct $PromoProduct){
 		// 接口验签
 		// $this->verify_sign();
 		// 验证参数
@@ -80,7 +80,7 @@ class Orders extends Api{
 			$buyNum[$value['product_id']] = isset($buyNum[$value['product_id']]) ? ($buyNum[$value['product_id']] + $value['buy_num']) : $value['buy_num'];
 		}
 		// 查询用户标签
-		$tags							= $WorkTag->getListByExtid($custom['external_userid']);
+		$tags							= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
 		// 查询产品信息
 		$productList					= $Product->getListByIds(array_column($buyList,'product_id'));
 		$skusList						= $ProductSkus->getListByIds(array_column($buyList,'product_skuid'));
@@ -617,7 +617,7 @@ class Orders extends Api{
      * 创建拼团订单						 	/api/orders/create_regiment
      *
      * */
-    public function create_regiment(Request $request,Custom $Custom,City $City,Model $Model,WorkTag $WorkTag,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,Product $Product,ProductSkus $ProductSkus,CustomCoupon $CustomCoupon,ShopCart $ShopCart,CustomAddr $CustomAddr,CustomScore $CustomScore){
+    public function create_regiment(Request $request,Custom $Custom,City $City,Model $Model,WeiBanTags $WeiBanTags,OrdersAddr $OrdersAddr,OrdersProduct $OrdersProduct,Product $Product,ProductSkus $ProductSkus,CustomCoupon $CustomCoupon,ShopCart $ShopCart,CustomAddr $CustomAddr,CustomScore $CustomScore){
         // 接口验签
         // $this->verify_sign();
         // 验证参数
@@ -698,7 +698,7 @@ class Orders extends Api{
             ->count('id');
         if ($regimentRecordCount >= $regimentActiveInfo['participation_number'])    return json_send(['code'=>'error','msg'=>'该活动每人仅限参与'.$regimentActiveInfo['participation_number'].'次','data'=>['error'=>'该活动每人仅限参与'.$regimentActiveInfo['participation_number'].'次']]);
 
-        $tags							= $WorkTag->getListByExtid($custom['external_userid']);
+        $tags							= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
         // 查询产品信息
         $productList					= $Product->getListByIds(array_column($buyList,'product_id'));
         // 当前时间

+ 7 - 5
app/Http/Controllers/Api/Product.php

@@ -6,14 +6,16 @@ use App\Models\Business;
 use App\Models\Custom;
 use App\Models\Product as Model;
 use App\Models\Product\Attr as ProductAttr;
+use App\Models\Product\City as ProductCity;
 use App\Models\Product\Spec as ProductSpec;
 use App\Models\Product\Skus as ProductSkus;
 use App\Models\ProductPhoto;
+use App\Models\Promo;
 use App\Models\PromoProduct;
 use App\Models\PromoRebate;
 use App\Models\RegimentActive;
 use App\Models\Regiment;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 
 /**
  * 产品接口
@@ -31,7 +33,7 @@ class Product extends Api{
 	 * @param	int		$limit			每页条数,默认10条
 	 * 
 	 * */
-	public function get_list(Request $request,Model $Model,Custom $Custom,RegimentActive $RegimentActive,WorkTag $WorkTag){
+	public function get_list(Request $request,Model $Model,Custom $Custom,RegimentActive $RegimentActive,WeiBanTags $WeiBanTags){
 		// 接口验签
 		// $this->verify_sign();
         // 验证参数
@@ -87,7 +89,7 @@ class Product extends Api{
         $tags                       =   [];
         $cityId                     =   '';
         if ($custom){
-            $tags					= $WorkTag->getListByExtid($custom['external_userid']);
+            $tags					= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
             $cityId					= $custom['city_id'];
         }
 		// 处理请求
@@ -157,7 +159,7 @@ class Product extends Api{
 	 * @param	int     $id		        产品id
 	 * 
 	 * */
-	public function get_detail(Request $request,Model $Model,ProductPhoto $ProductPhoto,Business $Business,ProductAttr $ProductAttr,ProductSpec $ProductSpec,ProductSkus $ProductSkus,RegimentActive $RegimentActive,Regiment $Regiment,Custom $Custom,WorkTag $WorkTag,PromoProduct $PromoProduct){
+	public function get_detail(Request $request,Model $Model,ProductPhoto $ProductPhoto,Business $Business,ProductAttr $ProductAttr,ProductSpec $ProductSpec,ProductSkus $ProductSkus,RegimentActive $RegimentActive,Regiment $Regiment,Custom $Custom,WeiBanTags $WeiBanTags,PromoProduct $PromoProduct){
 		// 接口验签
 		// $this->verify_sign();
         // 验证参数
@@ -273,7 +275,7 @@ class Product extends Api{
         $tags                       =   [];
         $cityId                     =   '';
         if ($custom){
-            $tags					= $WorkTag->getListByExtid($custom['external_userid']);
+            $tags					= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
             $cityId					= $custom['city_id'];
         }
         //促销活动信息

+ 27 - 3
app/Http/Controllers/Api/Score/Clockin.php

@@ -4,8 +4,10 @@ use App\Http\Controllers\Api\Api;
 use App\Models\Custom as Custom;
 use App\Models\Score\Clockin as Model;
 use App\Models\Score\ClockinActive as ClockinActive;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 use App\Models\CustomClockinRecord;
+use http\Env\Request;
+use Illuminate\Support\Carbon;
 
 /**
  * 任务-打卡
@@ -19,7 +21,29 @@ class Clockin extends Api
      * 列表                     /api/score_clockin/get_list
      * 
      */
-    public function get_list(Model $Model, Custom $Custom, ClockinActive $ClockinActive, WorkTag  $WorkTag, CustomClockinRecord $CustomClockinRecord)
+    /*public function get_list(Model $Model)
+    {
+        // 接口验签
+		// $this->verify_sign();
+		// 验证登录
+		$uid						= $this->getUid();
+        // 获取列表
+        $list                       = $Model->getList();
+        $isMark                     = $Model->isMarkClock($uid);
+        $isMark['finish_day']       = empty($isMark['finish_day'])?0:$isMark['finish_day'];
+        // 循环处理
+        foreach ( $list as $key => $value ) {
+            // 是否已打卡,打卡天数内(含)为已打卡
+            $value['is_finish']     = $isMark['finish_day'] >= $value['what_day'] ? 1 : 0;
+            // 重新赋值
+            $list[$key]             = $value;
+        }
+        // 去除主键
+        $list                       = array_values($list);
+        // 返回结果
+        return                      json_send(['code'=>'success','msg'=>'获取成功','data'=>['list'=>$list,'is_mark'=>$isMark]]);
+    }*/
+    public function get_list(Model $Model, Custom $Custom, ClockinActive $ClockinActive, WeiBanTags  $WeiBanTags, CustomClockinRecord $CustomClockinRecord)
     {
         // 接口验签
         // $this->verify_sign();
@@ -31,7 +55,7 @@ class Clockin extends Api
         if( !$custom['city_id'] )	return json_send(['code'=>'error','msg'=>'请选择所在城市','data'=>['error'=>'请选择所在城市']]);
         $cityId						= $custom['city_id'];
         // 查询用户标签
-        $tags						= $WorkTag->getListByExtid($custom['external_userid']);
+        $tags						= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
         //获取打卡活动列表
         $activeList					= $ClockinActive->getList();
         if (!$activeList)           return json_send(['code'=>'error','msg'=>'暂无签到活动','data'=>['error'=>'暂无签到活动']]);

+ 5 - 5
app/Http/Controllers/Api/ShopCart.php

@@ -7,7 +7,7 @@ use App\Models\PromoRebate;
 use App\Models\ShopCart as Model;
 use App\Models\PromoProduct as PromoProduct;
 use App\Models\Custom as Custom;
-use App\Models\Work\Tag as WorkTag;
+use App\Models\WeiBan\Tags as WeiBanTags;
 
 /**
  * 购物车接口
@@ -101,7 +101,7 @@ class ShopCart extends Api{
 	 * @param	int     $id		        购物车id
 	 * 
 	 * */
-	public function get_list(Request $request,Model $Model,ProductSkus $ProductSkus,PromoProduct $PromoProduct,Custom $Custom,WorkTag $WorkTag){
+	public function get_list(Request $request,Model $Model,ProductSkus $ProductSkus,PromoProduct $PromoProduct,Custom $Custom,WeiBanTags $WeiBanTags){
 		// 接口验签
 		// $this->verify_sign();
         // 验证参数
@@ -122,7 +122,7 @@ class ShopCart extends Api{
         $tags                       =   [];
         $cityId                     =   '';
         if ($custom){
-            $tags					= $WorkTag->getListByExtid($custom['external_userid']);
+            $tags					= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
             $cityId					= $custom['city_id'];
         }
 		// 循环处理数据
@@ -205,7 +205,7 @@ class ShopCart extends Api{
 	 * @param	int     $id		        购物车id
 	 * 
 	 * */
-	public function check_list(Request $request,Model $Model,ProductSkus $ProductSkus,PromoProduct $PromoProduct,Custom $Custom,WorkTag $WorkTag){
+	public function check_list(Request $request,Model $Model,ProductSkus $ProductSkus,PromoProduct $PromoProduct,Custom $Custom,WeiBanTags $WeiBanTags){
 		// 接口验签
 		// $this->verify_sign();
         // 验证参数
@@ -237,7 +237,7 @@ class ShopCart extends Api{
         $tags                       =   [];
         $cityId                     =   '';
         if ($custom){
-            $tags					= $WorkTag->getListByExtid($custom['external_userid']);
+            $tags					= $WeiBanTags->getListByWeibanExtid($custom['weiban_extid']);
             $cityId					= $custom['city_id'];
         }
         $promoProductList           =   [];

+ 11 - 9
app/Http/Controllers/Api/WechatWork.php

@@ -64,14 +64,12 @@ class WechatWork extends Api{
 	 */
 	public function addExternal($message){
 		// 实例
-		$WorkExternal				= New WorkExternal;
-		$WorkState					= new WorkState;
-		$WorkUser					= New WorkUser;
-		$WorkTag					= New Worktag;
-		// 参数
-		$state						= [];
+		$WorkExternal			= New WorkExternal;
+		$WorkState				= new WorkState;
+		$WorkUser				= New WorkUser;
+		$WorkTag				= New Worktag;
 		// 通过state获取附加参数以判断用户类型
-		$state						= isset($message['State']) ? parse_str($message['State'],$state) : [];
+		parse_str($message['State'],$state);
 		// 获取附加参数
 		$state						= empty($state['state_id']) ? [] : $WorkState->getOne($state['state_id']);
 		// 存在客户标签,给客户增加标签
@@ -91,7 +89,7 @@ class WechatWork extends Api{
 		// 跳转链接
 		$link						= Mini::getUrlLink('pages/bind/user',http_build_query(['kailin_uid'=>Hashids::encodeHex($id),'work_userid'=>$message['UserID']]));
 		// 欢迎语
-		$welcome					= $link ? ['link'=>['title'=>'请点此绑定账号','desc'=>'绑定账号是为了给您提供更优服务','url'=>$link]] : ['text'=>['content'=>'请联系您的对接人员为您录入信息']];
+		$welcome					= $link ? ['link'=>['title'=>'请点此填写表单','desc'=>'填写表单信息为了给您提供更优服务','url'=>$link]] : ['text'=>['content'=>'请联系您的对接人员为您录入信息']];
 		// 发送欢迎语
 		ExternalContact::sendWelcome($message['WelcomeCode'],$welcome);
 		// 循环跟进人员
@@ -150,8 +148,12 @@ class WechatWork extends Api{
 		// 实例
 		$WorkUser					= New WorkUser;
 		$WorkTag					= New WorkTag;
+		// 获取客户详情
+		$extUser					= ExternalContact::getOne($message['ExternalUserID']);
+		// 如果没有获取到数据的话
+		if( !$extUser )				return ['error'=>'企微ID不存在'];
 		// 删除跟进人员信息
-		$WorkUser->updateByExtUser($message['ExternalUserID'],$message['UserID'],['status'=>4]);
+		$WorkUser->delByExtUser($message['ExternalUserID'],$message['UserID']);
 		// 删除跟进人员标签
 		$WorkTag->delByExtUser($message['ExternalUserID'],$message['UserID']);
 		// 返回结果

+ 1 - 1
app/Http/Controllers/Api/WeiZan/Orders.php

@@ -38,7 +38,7 @@ class Orders extends Api{
 		$order['insert_time']			= request('create_time','');
 		$order['update_time']			= request('modify_time','');
 		$order['status']				= request('status','');
-		$order['status']				= $Model->getWeiZanStatus($order['status']);
+		$order['status']				= $Model->getWeibanStatus($order['status']);
 		$order['coupon_total']			= $order['pay_total'] - $order['price_total'];
 		$order['insert_time']			= strtotime($order['insert_time']);
 		$order['update_time']			= strtotime($order['update_time']);

+ 4 - 2
app/Http/Requests/Admin/ContactWay.php

@@ -20,6 +20,7 @@ class ContactWay extends BaseRequest
             // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
             // 验证字段,验证规则,提示信息
             'user'                  => 'required|array',
+            'config_id'             => 'required|string',
             'id'                    => 'required',
         ];
     }
@@ -27,7 +28,7 @@ class ContactWay extends BaseRequest
     // 场景列表
     protected   $scenes         = [
         'add'                   => ['user'],
-        'edit'                  => ['id','user'],
+        'edit'                  => ['config_id','user'],
         'set_follow'            => ['id']
 	];
 
@@ -39,8 +40,9 @@ class ContactWay extends BaseRequest
     public function messages()
     {
         return [
-            'id.required'   		    => 'ID未知',
+            'config_id.required'   		=> 'ID未知',
             'user.required'   		    => '请选择接待人员',
+            'status.array'   		    => '接待人员格式有误',
         ];
     }
 

+ 4 - 4
app/Models/FilesManager.php

@@ -352,7 +352,7 @@ class FilesManager extends Model
                 if( isset($column[$kk]) )       $custom[$column[$kk]] = $vv;
             }
             // 验证必须数据
-            if( empty($custom['external_userid']) )      return ['error' => ($row + 1).' 没有识别到微ID'];
+            if( empty($custom['weiban_extid']) )      return ['error' => ($row + 1).' 没有识别到微ID'];
             if( empty($custom['username']) )          return ['error' => ($row + 1).' 没有识别到用户昵称'];
             if( empty($custom['phone']) )             return ['error' => ($row + 1).' 没有识别到用户手机号'];
             // 没有详细地址,则默认为空
@@ -381,7 +381,7 @@ class FilesManager extends Model
         $field                              = [];
         // 循环列标题
         foreach ($column as $key => $value) {
-            if( $value == '企微ID')         $field[$key] = 'external_userid';
+            if( $value == '微伴ID')         $field[$key] = 'weiban_extid';
             if( $value == '用户昵称')        $field[$key] = 'username';
             if( $value == '用户手机号' )     $field[$key] = 'phone';
             if( $value == '收货人')          $field[$key] = 'contact_name';
@@ -491,7 +491,7 @@ class FilesManager extends Model
                 if( isset($column[$kk]) )       $custom[$column[$kk]] = $vv;
             }
             // 验证必须数据
-            if( empty($custom['external_userid']) )    return ['error' => ($row + 1).' 没有识别到微ID'];
+            if( empty($custom['weiban_extid']) )    return ['error' => ($row + 1).' 没有识别到微ID'];
             // if( empty($custom['phone']) )           return ['error' => ($row + 1).' 没有识别到联系方式'];
             if( empty($custom['score']) )           return ['error' => ($row + 1).' 没有识别到积分数量'];
             if( empty($custom['description']) )     $custom['description'] = '';
@@ -513,7 +513,7 @@ class FilesManager extends Model
         $field                              = [];
         // 循环列标题
         foreach ($column as $key => $value) {
-            if( $value == '企微ID')         $field[$key]  = 'external_userid';
+            if( $value == '微伴ID')         $field[$key]  = 'weiban_extid';
             // if( $value == '联系方式')        $field[$key]  = 'phone';
             if( $value == '积分数量')        $field[$key] = 'score';
             if( $value == '备注' )          $field[$key] = 'description';

+ 3 - 3
app/Models/Traits/Orders/Status.php

@@ -108,14 +108,14 @@ trait Status
     /**
      * 获取交易类型
      * 
-     * @param   string       $weizanStatus     交易状态
+     * @param   string       getWeibanStatus     交易状态
      * 
      */
-    public function getWeiZanStatus($weizanStatus){
+    public function getWeibanStatus($weibanStatus){
         // 状态列表
         $list               = ['待付款'=>0,'待发货'=>2,'待收货'=>3,'已完成'=>8,'已退款'=>6,'取消交易'=>4];
         // 返回结果
-        return              isset($list[$weizanStatus]) ? $list[$weizanStatus] : 0;
+        return              isset($list[$weibanStatus]) ? $list[$weibanStatus] : 0;
     }
 
 }

+ 1 - 44
app/Models/Work/Tag.php

@@ -81,49 +81,6 @@ class Tag extends Model
         return          $data->toArray();
     }
 
-    /**
-     * 获取列表
-     * 
-     */
-    public function getListByExtid($extUserId)
-    {
-        // 返回结果
-        $list           = $this->query()->where([['external_userid','=',$extUserId]])->get(['id','tag_name as name','group_name as group','external_userid','work_userid'])->toArray();
-        // 返回结果
-        if( !$list )    return [];
-        // 数据结构
-        return          $list;
-    }
-
-    /**
-     * 通过外部联系人ID查询标签
-     * 
-     * @param string $extUserId 外部联系人ID
-     * @param string $userId    跟进人员ID
-     * 
-     */
-    public function getPulckByExtUserId($extUserId,$userId)
-    {
-        // 返回结果
-        $data           = $this->query()->where([['external_userid','=',$extUserId],['work_userid','=',$userId]])->pluck('tag_id')->toArray();
-        // 数据结构
-        return          $data;
-    }
-
-    /**
-     * 通过外部联系人ID查询标签
-     * 
-     * @param string $extUserId 外部联系人ID
-     * 
-     */
-    public function getListByExtUserId($extUserId)
-    {
-        // 返回结果
-        $data           = $this->query()->where([['external_userid','=',$extUserId]])->pluck('tag_id')->toArray();
-        // 数据结构
-        return          $data;
-    }
-
 
     /**
      * 通过外部联系人ID查询用户
@@ -139,7 +96,7 @@ class Tag extends Model
         // 先删除所有
         $this->query()->where([['external_userid','=',$extUserId],['work_userid','=',$userId]])->delete();
         // 如果没有标签数据
-        if( !$tags )                return 1;
+        if( !$tags )                return 0;
         // 时间
         $time					    = time();
         // 循环处理标签

+ 2 - 4
app/Servers/WechatWork/CorpTag.php

@@ -93,14 +93,12 @@ class CorpTag extends Work{
      * 
      * @param string    $userId         跟进人员ID
      * @param string    $extUserid      外部联系人ID
-     * @param array     $addTag         添加的标签ID列表
-     * @param array     $removeTag      删除的标签ID列表
+     * @param string    $addTag         添加的标签ID列表
+     * @param string    $removeTag      删除的标签ID列表
      */
     public function markTags($userId,$extUserid,$addTag=[],$removeTag=[]){
         // 如果同时为空
         if( !$addTag && !$removeTag )   return false;
-        $addTag                         = array_values($addTag);
-        $removeTag                      = array_values($removeTag);
         // 组合参数
         $params                         = ['userid'=>$userId,'external_userid'=>$extUserid,'add_tag'=>$addTag,'remove_tag'=>$removeTag];
         // 获取部门列表

+ 2 - 2
config/wechat.php

@@ -2,8 +2,8 @@
 
 return [
     'mini'=>[
-        'app_id' => 'wxe270937ea4d7f7d5',
-        'secret' => 'af6899e266636c46e2d5ac7b3c4387d5',
+        'app_id' => 'wx81ecb2c83d56e663',
+        'secret' => '19193895ca05984d9823d4dde43faca0',
         // 下面为可选项
         // 指定 API 调用返回结果的类型:array(default)/collection/object/raw/自定义类名
         'response_type' => 'array',

+ 1 - 1
config/wechatpay.php

@@ -1,6 +1,6 @@
 <?php
 return array(
-    'appid'                 => "wxe270937ea4d7f7d5",//appid
+    'appid'                 => "wx81ecb2c83d56e663",//appid
     'mchid'                 => "1612111355",//微信直连商户号mchid
     'certificate'           => '68E43B250D73977F1DC0E0D0827AF25A8BFB1777', //证书序列号
     'APIV3'                 => 'iD1xB1mH6zO7pP2wD1rU4aD2nH7oL2lN',

+ 5 - 0
public/nginx.htaccess

@@ -0,0 +1,5 @@
+location / {
+if (!-e $request_filename){
+rewrite ^/(.*)$ /index.php/$1 last;
+}
+}

+ 3 - 3
resources/views/admin/contact_way/add.blade.php

@@ -5,7 +5,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 @section('content')
 <form class="post-form" action="" method="post">
 	<div class="form-group col-sm-12">
-		<label class="control-label">二维码名称<span class="text-red">*</span></label>
+		<label class="control-label">码名称<span class="text-red">*</span></label>
 		<input class="form-control" required="required" type="text" placeholder="备注说明" name="remark" maxlength="30" value="" />
 	</div>
 	<div id="users" >
@@ -42,7 +42,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
-	<!-- <div class="form-group col-sm-12">
+	<div class="form-group col-sm-12">
 		<label class="control-label">商业人员/地区代表</label>
 		<select name="custom_uid" class="form-control selectpicker" data-live-search="true" data-live-search-placeholder="搜索人员" data-none-results-text="未搜索到 {0}" title="使用对象" >
 			<option value="" > 无</option>
@@ -54,7 +54,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			</optgroup>
 			@endforeach
 		</select>
-	</div> -->
+	</div>
 	<div class="form-group col-sm-12">
 		@csrf
 		<input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />

+ 3 - 3
resources/views/admin/contact_way/edit.blade.php

@@ -5,7 +5,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 @section('content')
 <form class="post-form" action="" method="post">
 	<div class="form-group col-sm-12">
-		<label class="control-label">二维码名称<span class="text-red">*</span></label>
+		<label class="control-label">码名称<span class="text-red">*</span></label>
 		<input class="form-control" required="required" type="text" placeholder="备注说明" name="remark" maxlength="30" value="{{$oldData['remark']}}" />
 	</div>
 	<div id="users" >
@@ -42,7 +42,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
-	<!-- <div class="form-group col-sm-12">
+	<div class="form-group col-sm-12">
 		<label class="control-label">商业人员/地区代表</label>
 		<select name="custom_uid" class="form-control selectpicker" data-live-search="true" data-live-search-placeholder="搜索人员" data-none-results-text="未搜索到 {0}" title="使用对象" >
 			<option value="" > 无</option>
@@ -54,7 +54,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			</optgroup>
 			@endforeach
 		</select>
-	</div> -->
+	</div>
 	<div class="form-group col-sm-12">
 		@csrf
 		<input type="hidden" name="config_id" id="config_id" value="{{$oldData['config_id']}}" />

+ 14 - 1
resources/views/admin/contact_way/index.blade.php

@@ -25,6 +25,17 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
+	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-2" style="margin-right: 2px;">
+		<select name="custom_uid" class="form-control selectpicker" require="" data-live-search="true" data-live-search-placeholder="搜索人员" data-none-results-text="未搜索到 {0}" title="使用对象" >
+			@foreach ($customList as $group)
+			<optgroup label="{{$group['user_group']}}">
+				@foreach ($group['user_list'] as $user)
+				<option value="{{$user['uid']}}" data-content='<img src="{{$user["userpic"]}}" alt="" height="30"> {{$user["username"]}}' > {{$user['username']}} </option>
+				@endforeach
+			</optgroup>
+			@endforeach
+		</select>
+	</div>
 	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-2" style="margin-right: 2px;">
 		<select name="is_follow" class="form-control" require="" >
 			<option value="0" > 推送客服 </option>
@@ -42,8 +53,9 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 				<thead>
 					<tr>
 						<th>二维码</th>
-						<th>二维码名称</th>
+						<th>码名称</th>
 						<th>接待客服</th>
+						<th>商业人员/地区代表</th>
 						<th>标签信息</th>
 						<th>配置ID</th>
 						<th>操作</th>
@@ -63,6 +75,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 									@endforeach
 								@endforeach
 							</td>
+							<td>{{$a['custom_name']}}</td>
 							<td>
 								@foreach ($corpTagList as $group)
 									@foreach ($group['tag'] as $tag)

+ 1 - 1
resources/views/admin/corp_tag/tags.blade.php

@@ -33,7 +33,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 								<td>{{$a['group_name']}}</td>
 								<td>
 									@if(check_auth('admin/corp_tag/tag_edit'))
-									<a href="{{url('admin/corp_tag/tag_edit?'.http_build_query(['id'=>$v['id'],'name'=>$v['name'],'order'=>$v['order']]))}}" class="btn btn-sm btn-warning" >编辑标签</a>
+									<a href="{{url('admin/corp_tag/tag_edit?'.http_build_query(['tag_id'=>$v['id'],'name'=>$v['name'],'order'=>$v['order']]))}}" class="btn btn-sm btn-warning" >编辑标签</a>
 									@endif
 									@if(check_auth('admin/corp_tag/del'))
 									<a  data-url="{{url('admin/corp_tag/del?'.http_build_query(['tag_id'=>$v['id']]))}}" class="set_status btn btn-sm btn-danger" >删除标签</a>

+ 4 - 4
resources/views/admin/coupon_active/add.blade.php

@@ -40,10 +40,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-5">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}" >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 4 - 4
resources/views/admin/coupon_active/edit.blade.php

@@ -40,10 +40,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-5">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 2 - 2
resources/views/admin/custom/edit.blade.php

@@ -13,8 +13,8 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<input class="form-control" required="required" type="text" placeholder="联系方式,请填写手机号" name="phone" value="{{$oldData['phone']}}" />
 	</div>
 	<div class="form-group col-sm-12">
-		<label class="control-label">微ID</label>
-		<input class="form-control" type="text" placeholder="企微ID,请尽量不要留空" name="external_userid" value="{{$oldData['external_userid']}}" />
+		<label class="control-label">微ID</label>
+		<input class="form-control" type="text" placeholder="微伴ID,请尽量不要留空" name="weiban_extid" value="{{$oldData['weiban_extid']}}" />
 	</div>
 	<div class="form-group col-sm-12">
 		<label class="control-label">客户城市</label>

+ 7 - 7
resources/views/admin/custom/index.blade.php

@@ -13,10 +13,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<a href="javascript:;" class="btn btn-primary upload_score"> <span class="fa fa-upload"></span> 积分批量导入</a>
 	<a href="/uploads/score_tpl.xlsx" class="btn btn-primary" download="积分批量导入模版"> <span class="fa fa-download"></span> 积分模版</a>
 	@endif
-	<!-- @if( check_auth('admin/custom_score/import_weiban') )
-	<a href="javascript:;" class="btn btn-primary upload_weiban_score"> <span class="fa fa-upload"></span> 微积分导入</a>
-	<a href="/uploads/weiban_score_tpl.xlsx" class="btn btn-primary" download="积分批量导入模版"> <span class="fa fa-download"></span> 微模版</a>
-	@endif -->
+	@if( check_auth('admin/custom_score/import_weiban') )
+	<a href="javascript:;" class="btn btn-primary upload_weiban_score"> <span class="fa fa-upload"></span> 微积分导入</a>
+	<a href="/uploads/weiban_score_tpl.xlsx" class="btn btn-primary" download="积分批量导入模版"> <span class="fa fa-download"></span> 微模版</a>
+	@endif
 </div>
 @endif
 <form action="" method="get" name="thisform" class="form-horizontal form-line">
@@ -27,7 +27,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<input type="text" class="form-control" name="phone" value="{{request('phone','')}}" placeholder="请输入联系方式查询" />
 	</div>
 	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-2" style="margin-right: 2px;">
-		<input type="text" class="form-control" name="external_userid" value="{{request('external_userid','')}}" placeholder="请输入企微ID查询" />
+		<input type="text" class="form-control" name="weiban_extid" value="{{request('weiban_extid','')}}" placeholder="请输入微伴ID查询" />
 	</div>
 	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-2" style="margin-right: 2px;">
 		<select name="status" class="form-control">
@@ -69,7 +69,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 						<th>客户昵称</th>
 						<th>联系方式</th>
 						<th>客户积分</th>
-						<th>微ID</th>
+						<th>微ID</th>
 						<th>客户城市</th>
 						<th>客户状态</th>
 						<th>创建时间</th>
@@ -85,7 +85,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 							<td> {{$a['username']}} </td>
 							<td> {{$a['phone']}} </td>
 							<td> {{$a['custom_score']['score']}} </td>
-							<td> <a href="{{url('admin/work_external/index?'.http_build_query(['id'=>$a['external_userid']]))}}">{{$a['external_userid']}}</a></td>
+							<td> <a href="{{url('admin/weiban_external/index?'.http_build_query(['id'=>$a['weiban_extid']]))}}">{{$a['weiban_extid']}}</a></td>
 							<td> {{$a['city_name']}} </td>
 							<td> {{$a['status']?'禁用':'正常'}} </td>
 							<td> {{date('Y/m/d H:i:s',$a['insert_time'])}}</td>

+ 1 - 1
resources/views/admin/custom_clockin_record/index.blade.php

@@ -64,7 +64,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 							<td> {{$a['username']}} </td>
 							<td> {{$a['active_name']}} </td>
 							<td> {{$a['phone']}} </td>
-							<td> <a href="{{url('admin/work_external/index?'.http_build_query(['id'=>$a['external_userid']]))}}">{{$a['external_userid']}}</a></td>
+							<td> <a href="{{url('admin/weiban_external/index?'.http_build_query(['id'=>$a['weiban_extid']]))}}">{{$a['weiban_extid']}}</a></td>
 							<td> {{$a['city_name']}} </td>
 							<td> {{$a['status']?'禁用':'正常'}} </td>
 							<td> {{date('Y/m/d H:i:s',$a['clockin_time'])}}</td>

+ 4 - 4
resources/views/admin/lottery_order/add.blade.php

@@ -40,10 +40,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-5">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}" >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 4 - 4
resources/views/admin/lottery_order/edit.blade.php

@@ -40,10 +40,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-5">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 6 - 6
resources/views/admin/lottery_score/add.blade.php

@@ -33,7 +33,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<label class="control-label">结束时间</label>
 		<input class="form-control" required="required" type="datetime-local" placeholder="结束时间" name="end_time" value="" />
 	</div>
-	<div class="form-group col-sm-5">
+	<div class="form-group col-sm-6">
 		<label class="control-label">活动城市</label>
 		<select name="city_ids[]" class="form-control selectpicker" data-max-options="20" data-live-search="true" data-live-search-placeholder="搜索城市" data-none-results-text="未搜索到 {0}" title="选择城市" multiple>
 			@foreach ($cityList as $group)
@@ -45,13 +45,13 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
-	<div class="form-group col-sm-5">
+	<div class="form-group col-sm-6">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}" >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 6 - 6
resources/views/admin/lottery_score/edit.blade.php

@@ -33,7 +33,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<label class="control-label">结束时间</label>
 		<input class="form-control" required="required" type="datetime-local" placeholder="结束时间" name="end_time" value="{{date('Y-m-d H:i',$oldData['end_time'])}}" />
 	</div>
-	<div class="form-group col-sm-5">
+	<div class="form-group col-sm-6">
 		<label class="control-label">活动城市</label>
 		<select name="city_ids[]" class="form-control selectpicker" data-max-options="20" data-live-search="true" data-live-search-placeholder="搜索城市" data-none-results-text="未搜索到 {0}" title="选择城市" multiple>
 			@foreach ($cityList as $group)
@@ -45,13 +45,13 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 			@endforeach
 		</select>
 	</div>
-	<div class="form-group col-sm-5">
+	<div class="form-group col-sm-6">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 8 - 8
resources/views/admin/product/add.blade.php

@@ -138,10 +138,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}" >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach
@@ -150,10 +150,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">标签排除(标签存在延迟,请慎用)</label>
 		<select name="tag_exclude[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}" >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 8 - 8
resources/views/admin/product/copy.blade.php

@@ -137,10 +137,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach
@@ -149,10 +149,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">标签排除(标签存在延迟,请慎用)</label>
 		<select name="tag_exclude[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_exclude']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_exclude'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 8 - 8
resources/views/admin/product/edit.blade.php

@@ -137,10 +137,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach
@@ -149,10 +149,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-2">
 		<label class="control-label">标签排除(标签存在延迟,请慎用)</label>
 		<select name="tag_exclude[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_exclude']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_exclude'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 6 - 6
resources/views/admin/promo/add.blade.php

@@ -50,12 +50,12 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-4">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
-				@endforeach
-			</optgroup>
+			@foreach ($tagList as $group=>$tags)
+				<optgroup label="{{$group}}">
+					@foreach ($tags as $tag)
+						<option value="{{$tag}}" >{{$tag}}</option>
+					@endforeach
+				</optgroup>
 			@endforeach
 		</select>
 	</div>

+ 6 - 6
resources/views/admin/promo/edit.blade.php

@@ -50,12 +50,12 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-4">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
-				@endforeach
-			</optgroup>
+			@foreach ($tagList as $group=>$tags)
+				<optgroup label="{{$group}}">
+					@foreach ($tags as $tag)
+						<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
+					@endforeach
+				</optgroup>
 			@endforeach
 		</select>
 	</div>

+ 4 - 4
resources/views/admin/score_clockin_active/add.blade.php

@@ -40,10 +40,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-5">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}" >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 4 - 4
resources/views/admin/score_clockin_active/edit.blade.php

@@ -40,10 +40,10 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 	<div class="form-group col-sm-5">
 		<label class="control-label">标签范围(标签存在延迟,请慎用)</label>
 		<select name="tag_scope[]" class="form-control selectpicker" data-max-options="10" data-live-search="true" data-live-search-placeholder="搜索标签" data-none-results-text="未搜索到 {0}" title="选择标签" multiple>
-			@foreach ($tagList as $group)
-			<optgroup label="{{$group['group_name']}}">
-				@foreach ($group['tag'] as $tag)
-				<option value="{{$tag['name']}}" @if( in_array($tag['name'],$oldData['tag_scope']) ) selected="" @endif >{{$tag['name']}}</option>
+			@foreach ($tagList as $group=>$tags)
+			<optgroup label="{{$group}}">
+				@foreach ($tags as $tag)
+				<option value="{{$tag}}"  @if(in_array($tag,$oldData['tag_scope'])) selected @endif >{{$tag}}</option>
 				@endforeach
 			</optgroup>
 			@endforeach

+ 4 - 1
routes/api.php

@@ -213,4 +213,7 @@ Route::any('course/cancel_reservation',[\App\Http\Controllers\Api\Course::class,
 // 微信支付
 Route::any('wechat_pay/pay',[\App\Http\Controllers\Api\WechatPay::class,'pay']);
 // 微信支付回调
-Route::any('wechat_pay/notify',[\App\Http\Controllers\Api\WechatPay::class,'notify']);
+Route::any('wechat_pay/notify',[\App\Http\Controllers\Api\WechatPay::class,'notify']);
+
+// 学校列表
+Route::any('school/get_list',[\App\Http\Controllers\Api\School::class,'get_list']);