Bhikkhu-Kosalla 4 лет назад
Родитель
Сommit
c2a7603d8b
1 измененных файлов с 48 добавлено и 10 удалено
  1. 48 10
      public/app/api/controller/user_dicts.php

+ 48 - 10
public/app/api/controller/user_dicts.php

@@ -1,7 +1,8 @@
 <?php
 require_once __DIR__."/../model/user_dicts.php";
 require_once __DIR__."/controller.php";
-
+require_once __DIR__."/../../public/snowflakeid.php";
+require_once __DIR__."/../../public/function.php";
 
 Class CtlUserDict extends Controller{
 	public function index(){
@@ -52,6 +53,8 @@ Class CtlUserDict extends Controller{
 		if(!isset($_COOKIE["user_id"])){
 			$this->error("not login");
 		}
+        $snowflake = new SnowFlakeId();
+
 		$_data = json_decode($_POST["data"],true);
 		switch($_POST["view"]){
 			case "wbw":
@@ -73,9 +76,11 @@ Class CtlUserDict extends Controller{
 					
 					if($isDoesntExist){
 						#不存在插入数据
+						$word["id"]=$snowflake->id();
 						$word["source"]='_USER_WBW_';
+						$word["create_time"]=mTime();
 						$word["creator_id"]=$_COOKIE["user_id"];
-						$id = UserDict::insertGetId($word);
+						$id = UserDict::insert($word);
 						$updateOk = $this->update_sys_wbw($word);
 						$this->update_redis($word);
 						$iOk++;
@@ -89,6 +94,7 @@ Class CtlUserDict extends Controller{
 	}	
 		
 	public function show(){
+
 		$result = UserDict::find($_GET["id"]);
 		if($result){
 			$this->ok($result);
@@ -97,6 +103,7 @@ Class CtlUserDict extends Controller{
 		}
 	}
 	public function update(){
+        $snowflake = new SnowFlakeId();
 		$data = json_decode($_POST["data"],true);
 
 		$result = UserDict::where('id', $data["id"])
@@ -131,6 +138,7 @@ Class CtlUserDict extends Controller{
 	更新系统wbw汇总表
 	*/
 	private function update_sys_wbw($data){
+        $snowflake = new SnowFlakeId();
 		#查询用户重复的数据
 		$count = UserDict::where('word',$data["word"])
 		->where('type',$data["type"])
@@ -141,7 +149,9 @@ Class CtlUserDict extends Controller{
 		->where('factormean',$data["factormean"])
 		->where('source','_USER_WBW_')
 		->count();
+
 		if($count==0){
+            # 没有任何用户有这个数据
 			#删除数据
 			$result = UserDict::where('word',$data["word"])
 			->where('type',$data["type"])
@@ -155,7 +165,7 @@ Class CtlUserDict extends Controller{
 			return($result);
 
 		}else{
-			#更新或新增
+            #更新或新增
 			#查询最早上传这个数据的用户
 			$creator_id = UserDict::where('word',$data["word"])
 							->where('type',$data["type"])
@@ -167,8 +177,21 @@ Class CtlUserDict extends Controller{
 							->where('source','_USER_WBW_')
 							->orderby("created_at",'asc')
 							->value("creator_id");
-			$result = UserDict::updateOrInsert(
+
+            $count = UserDict::where('word',$data["word"])
+                        ->where('type',$data["type"])
+                        ->where('grammar',$data["grammar"])
+                        ->where('parent',$data["parent"])
+                        ->where('mean',$data["mean"])
+                        ->where('factors',$data["factors"])
+                        ->where('factormean',$data["factormean"])
+                        ->where('source','_SYS_USER_WBW_')
+                        ->count();
+            if($count==0){
+                #系统字典没有 新增
+                $result = UserDict::insert(
 				[
+                    'id' =>$snowflake->id(),
 					'word'=>$data["word"],
 					'type'=>$data["type"],
 					'grammar'=>$data["grammar"],
@@ -176,12 +199,27 @@ Class CtlUserDict extends Controller{
 					'mean'=>$data["mean"],
 					'factors'=>$data["factors"],
 					'factormean'=>$data["factormean"],
-					'source'=>"_SYS_USER_WBW_"
-				],
-				[
-					'creator_id' => $creator_id,
-					'ref_counter' => $count
-				]);
+					'source'=>"_SYS_USER_WBW_",
+                    'creator_id' => $creator_id,
+					'ref_counter' => 1,
+                    "create_time"=>mTime()
+                    ]);
+            }else{
+                #有,更新
+                $result = UserDict::where('word',$data["word"])
+                        ->where('type',$data["type"])
+                        ->where('grammar',$data["grammar"])
+                        ->where('parent',$data["parent"])
+                        ->where('mean',$data["mean"])
+                        ->where('factors',$data["factors"])
+                        ->where('factormean',$data["factormean"])
+                        ->where('source','_SYS_USER_WBW_')
+                        ->update(
+                    [
+                        'creator_id'=>$creator_id,
+                        'ref_counter'=>$count
+                    ]);
+            }
 			return($result);
 		}
 	}