فهرست منبع

【Mod】修复收货自动同步标签的缺陷

liuxiangxin 4 ماه پیش
والد
کامیت
32c2af658f
3فایلهای تغییر یافته به همراه55 افزوده شده و 8 حذف شده
  1. 2 0
      app/Http/Controllers/Admin/ImageManager.php
  2. 51 6
      app/Http/Controllers/Api/CustomAddr.php
  3. 2 2
      app/Jobs/WeiBanSync.php

+ 2 - 0
app/Http/Controllers/Admin/ImageManager.php

@@ -104,6 +104,8 @@ class ImageManager extends Auth{
 		if( !preg_match('/^[A-Za-z0-9\_\.]+$/',$folder) ) return ['error'=>$folder.' 文件夹仅支持字母数字_组合'];
 		// 验证是否有这个文件夹
 		$directory					= $directory ? $this->upload_url.'/' : $this->upload_url.'/';
+		// 上级目录
+		$count						= 0;
 		// 替换上级目录
 		$folder 					= str_replace(['../', '..\\', '..'],'',$folder,$count);
 		// 有上级目录

+ 51 - 6
app/Http/Controllers/Api/CustomAddr.php

@@ -6,6 +6,7 @@ use App\Http\Requests\Api\CustomAddr as Request;
 use App\Models\City;
 use App\Models\Custom;
 use App\Models\WeiBan\Follow as WeiBanFollow;
+use App\Facades\Servers\WeiBan\OpenApi;
 
 /**
  * 客户地址
@@ -39,13 +40,19 @@ class CustomAddr extends Api{
 	 * @param	string		$code		授权码
 	 * 
 	 * */
-	public function add(Request $request,Model $Model,Custom $Custom,City $City){
+	public function add(Request $request,Model $Model,Custom $Custom,City $City,WeiBanFollow $WeiBanFollow){
 		// 接口验签
 		// $this->verify_sign();
 		// 验证参数
 		$request->scene('add')->validate();
 		// 检查登录
 		$uid							= $this->checkLogin();
+		// 获取客户信息
+		$custom							= $Custom->getOne($uid);
+		// 如果客户信息不存在的话
+		if( !$custom )					return json_send(['code'=>'error','msg'=>'客户信息不存在','data'=>['error'=>'客户信息不存在']]);
+		// 如果用户状态被拉黑,不允许登录
+		if( $custom['status'] )			return json_send(['code'=>'error','msg'=>'禁用账号','data'=>['error'=>'禁用账号']]);
 		// 接收参数
 		$data['contact_province']		= trim(request('contact_province',''));
 		$data['contact_city']			= trim(request('contact_city',''));
@@ -57,11 +64,9 @@ class CustomAddr extends Api{
 		$data['contact_phone']			= trim(request('contact_phone',''));
 		$data['is_default']				= request('is_default',0);
 		$data['custom_uid']				= $uid;
-		// 获取客户城市ID
-		$cityId							= (int) $Custom->getValue($uid,'city_id');
-		$cityName						= $City->getOne($cityId,'name');
-		$pid 							= $City->getOne($cityId,'pid');
-		$province						= $City->getOne($pid,'name');
+		$cityName						= $custom['city_id'] ? $City->getOne($custom['city_id'],'name') : '';
+		$pid 							= $custom['city_id'] ? $City->getOne($custom['city_id'],'pid') : 0;
+		$province						= $pid ? $City->getOne($pid,'name') : '';
 		// 判断选择的城市名称是不是一致
 		if( trim($cityName) != trim($data['contact_city']) ) return json_send(['code'=>'error','msg'=>'收货地址请选择'.($province=='直辖县级'?$cityName:$province).'/'.$cityName,'data'=>['error'=>'收货地址需与您所选城市一致']]);
 		// 替换地址中间的空格
@@ -77,11 +82,51 @@ class CustomAddr extends Api{
 		$result							= $Model->add($data);
 		// 如果用户状态被拉黑,不允许登录
 		if( !$result )					return json_send(['code'=>'error','msg'=>'保存失败,请重试','data'=>['error'=>'写入失败']]);
+		// 如果存在微伴ID
+		if( !$custom['weiban_extid'] )	return json_send(['code'=>'success','msg'=>'保存成功','data'=>$data]);
+		// 获取客服对应的备注等信息
+		$staffId						= $WeiBanFollow->query()->where([['weiban_extid','=',$custom['weiban_extid']]])->value('staff_id');
+		// 如果存在微伴ID
+		if( !$staffId )					return json_send(['code'=>'success','msg'=>'保存成功','data'=>$data]);
+		// 自动标签
+		if( !$havaNum )					$this->autoTags($province,$cityName,$data['shop_type'],$staffId,$custom['weiban_extid']);
 		// 返回结果
 		return							json_send(['code'=>'success','msg'=>'保存成功','data'=>$data]);
 	}
 
 
+	/**
+     * 自动标签
+     */
+    private function autoTags($province,$cityName,$shopType,$staffId,$weibanExtid){
+		// 如果有地址信息
+        switch ($shopType)          {
+            case '1':
+            $shopType               = '单店';
+            break;
+            case '2':
+            $shopType               = '连锁';
+            break;
+            case '3':
+            $shopType               = '第三终端';
+            break;
+            default:
+            $shopType               = '';
+            break;
+        }
+        // 省份
+        $province                   = str_ireplace(['自治区','壮族','回族','维吾尔','特别行政区','省'],'',$province);
+        // 省份
+        $cityName                   = str_ireplace(['自治州','自治县','蒙古','蒙古族','回族','藏族','维吾尔','苗族','彝族','壮族','布依族','朝鲜族','满族','侗族','瑶族','白族','土家族','哈尼族','哈萨克','傣族','黎族','傈僳族','佤族','畲族','拉祜族','水族','东乡族','纳西族','景颇族','柯尔克孜','土族','达斡尔族','仫佬族','羌族','布朗族','撒拉族','毛南族','仡佬族','锡伯','阿昌族','普米族','塔吉克','怒族','鄂温克族','德昂族','保安族','裕固族','塔塔尔','独龙族'],'',$cityName);
+       	// 打标签
+		if( $province ) 			OpenApi::addTag($staffId,$weibanExtid,'省份',$province);
+        if( $cityName ) 			OpenApi::addTag($staffId,$weibanExtid,$province,$cityName);
+		if( $shopType ) 			OpenApi::addTag($staffId,$weibanExtid,'企业类型',$shopType);
+        // 返回结果
+        return                      ['success'=>'返回结果'];
+    }
+
+
 	/**
 	 * 修改			/api/custom_addr/edit
 	 * 

+ 2 - 2
app/Jobs/WeiBanSync.php

@@ -254,10 +254,10 @@ class WeiBanSync implements ShouldQueue
             case '1':
             $shopType               = '单店';
             break;
-            case '3':
+            case '2':
             $shopType               = '连锁';
             break;
-            case '4':
+            case '3':
             $shopType               = '第三终端';
             break;
             default: