gq 7 tahun lalu
induk
melakukan
4b3cf779a1

+ 23 - 9
server/app/Http/Controllers/Admin/Dream/InfoController.php

xqd xqd xqd xqd
@@ -47,10 +47,11 @@ class InfoController extends Controller
         if($x==0) $x = 10;
         foreach ($list as $item) {
 //            $b = $item->parameter;
-            $t = 21*24*60; //梦想发布分钟数
+            $t = ceil((time()-strtotime($item->created_at))/60); //梦想发布分钟数
             $care_num = UserCareDream::where('dream_id',$item->id)->get()->count();
             if ($care_num==0) $care_num=1;
-//            $score = (log($care_num,$x) + ($a/$t) + $b)*100000000000000 ;
+            $item->score = (log($care_num,$x) + ($a/$t) + $item->parameter)*100000000000000 ;
+            $item->save();
             $item->x = log($care_num,$x);
             $item->y = $a/$t;
             $item->score =  $item->score/100000000000000;
@@ -89,6 +90,17 @@ class InfoController extends Controller
      */
     private function _createSave(){
         $data = (array) request('data');
+        $care_num = 1;   //梦想收藏人数 新建梦想时默认为1
+        $setting = BaseSettingsModel::where('category','paihang')->first();
+        $a = $setting?$setting->key:2;
+        $b = $data['parameter'];
+        $x = $setting?$setting->sort:10;
+        $t = 1; //创建梦想时梦想发布时间最小为一分钟
+        if ($care_num == 0) {
+            $data['score'] = (($a/$t) + $b)*100000000000000 ;
+        }else{
+            $data['score'] = (log($care_num,$x) + ($a/$t) + $b)*100000000000000 ;
+        }
         if (is_array($data['sign'])) {
             $data['sign'] = join(',',$data['sign']);
         }
@@ -175,6 +187,7 @@ class InfoController extends Controller
      */
     private function _updateSave() {
         $data = (array) request('data');
+        $dream = DreamInfoModel::find(request('id'));
         if ($data['status']==2) { //审核不过
             $info = [
                 'to_user_id' => $data['user_id'],
@@ -191,19 +204,20 @@ class InfoController extends Controller
             $url[] = array('url'=>U( 'Dream/Info/index'),'title'=>'返回列表');
             return $this->showWarning('请选择梦想状态',$url);
         }
-//        后台修改排行参数时,梦想分数也改变
+//        后台修改排行参数时,排行分数也改变
         $dream_id = request('id');
         $data2 = UserCareDream::where('dream_id',$dream_id)->get();
         $care_num = count($data2);
+       if ($care_num==0) $care_num = 1;   //梦想收藏人数 梦想时默认为1
         $setting = BaseSettingsModel::where('category','paihang')->first();
-        $a = $data['parameter'];
-        $b = $setting?$setting->value:1;
-        $t = 21*3600 / 60;
-        \Log::debug($data['end_time'].' care_num:'.$care_num.' a:'.$a.' b:'.$b.' t:'.$t);
+        $a = $setting?$setting->key:2;
+        $b = $data['parameter'];
+        $x = $setting?$setting->sort:10;
+        $t = ceil((time()-strtotime($dream->created_at))/60); //梦想发布分钟数
         if ($care_num == 0) {
-            $data['score'] = (($a/$t) + $b)*100000000 ;
+            $data['score'] = (($a/$t) + $b)*100000000000000 ;
         }else{
-            $data['score'] = (log($care_num) + ($a/$t) + $b)*100000000 ;
+            $data['score'] = (log($care_num,$x) + ($a/$t) + $b)*100000000000000 ;
         }
         $pics = (array) request('pic');
         if (request("file")) {

+ 1 - 0
server/app/Http/Controllers/Api/V1/AuthController.php

xqd
@@ -119,6 +119,7 @@ class AuthController extends Controller
                 return $this->api(compact( 'user', 'code','token'));
             }
         }
+//        如果走到这里 就检查user_info.phone是否唯一 允许为空
         if (empty($user)) {
             $user = UserInfoModel::create([
                 'phone'=>$phone,

+ 19 - 11
server/app/Http/Controllers/Api/V1/DreamController.php

xqd xqd xqd xqd xqd
@@ -207,7 +207,9 @@ class DreamController extends Controller
         $id = $request->id;    //梦想ID
         $user_care_dream = UserCareDream::where('user_id',$user->id)->where('dream_id',$id)->first();
         $is_collection = empty($user_care_dream) ? 0 :1 ;
+        $dream = DreamInfoModel::find($id);
         if (empty($id)) return $this->error(ErrorCode::KEY_ERROR);
+        if (empty($dream)) return $this->error(ErrorCode::DREAM_NOT_EXIST);
 
         $support_dream = SupportDreamModel::where('dream_id',$id)->get();
         $top = [] ;
@@ -249,12 +251,20 @@ class DreamController extends Controller
 
 //            $money = $user->money;
         $dream_info = DreamInfoModel::find($id);
-        $setting = BaseSettingsModel::where('category','score')->select('key','value')->first();
+//        $setting = BaseSettingsModel::where('category','score')->select('key','value')->first();
+//        $a = count($setting) > 0 ? $setting->key : 0;
+//        $created_at = $dream_info ? $dream_info->created_at : 0;
+//        $b =  intval((time()-strtotime($created_at))/60) ;
+//        $c = count($setting) > 0 ? $setting->value : 0;
+//        $number =round( -$a * $b + $c,1);
+        $setting = BaseSettingsModel::where('category','score')->select('key','value','sort')->first();
         $a = count($setting) > 0 ? $setting->key : 0;
-        $created_at = $dream_info ? $dream_info->created_at : 0;
-        $b =  intval((time()-strtotime($created_at))/60) ;
+        $b = ceil((time()-strtotime($dream_info->created_at))/60); //梦想发布分钟数
         $c = count($setting) > 0 ? $setting->value : 0;
-        $number =round( -$a * $b + $c,1);
+        $n = count($setting) > 0 ? $setting->sort : 0;
+        //Todo 支持乘数目公式      pow(x,y)
+//        exp(x)     $number =  N*exp(-a*(pow(t,1/b)))+1
+        $number =round( $n*exp(-$a*(pow($b,1/$c)))+1,2);
         if ($number <= 1) $number = 1;
         $dream = DreamInfoModel::with(['imgs','user'])->find($id);
         if (empty($dream)) return $this->error(ErrorCode::DREAM_NOT_EXIST);
@@ -404,9 +414,9 @@ class DreamController extends Controller
         }*/
         $user_care_dream = UserCareDream::where('user_id', $user->id)->where('dream_id', $dream_id)->first();
         $is_collection = empty($user_care_dream) ? 0 :1 ;
-        $setting = BaseSettingsModel::where('category','score')->select('key','value')->first();
+        $setting = BaseSettingsModel::where('category','score')->select('key','value','sort')->first();
         $a = count($setting) > 0 ? $setting->key : 0;
-        $b =  intval((time()-strtotime($dream->created_at))/60) ;
+        $b = ceil((time()-strtotime($dream->created_at))/60); //梦想发布分钟数
         $c = count($setting) > 0 ? $setting->value : 0;
         $n = count($setting) > 0 ? $setting->sort : 0;
         //Todo 支持乘数目公式      pow(x,y)
@@ -466,8 +476,6 @@ class DreamController extends Controller
             }
 
 
-
-
             //            梦想实现创建二维码
             if ($dream->coin >= $dream->get_coin && empty($dream->code)) {
                 //        生成二维码
@@ -809,12 +817,12 @@ class DreamController extends Controller
         );
         if($validator->fails()) return $this->validatorError($validator->messages()->all(),ErrorCode::CLIENT_WRONG_PARAMS);
         \Log::debug($user);
-        $care_num = 0;   //梦想收藏人数 新建梦想时默认为1
+        $care_num = 1;   //梦想收藏人数 新建梦想时默认为1
         $setting = BaseSettingsModel::where('category','paihang')->first();
         $a = $setting?$setting->key:1;
-        $b = $setting?$setting->value:1;
+        $b = $setting?$setting->value:0;
         $x = $setting?$setting->sort:10;
-        $t = 21*24*60; //梦想发布分钟
+        $t = 1; //创建梦想时梦想发布时间最小为一分钟
         $days = $request->days;
         $data = $request->except('_token','pics','days');
         $data['user_id'] = $user->id;

+ 9 - 0
server/app/Http/Controllers/Api/V1/IndexController.php

xqd
@@ -273,6 +273,15 @@ class IndexController extends Controller
     {
         foreach ($dreams as $k => $dream) {
             $data = UserCareDream::where('dream_id',$dream->id)->get();
+            $t = ceil((time()-strtotime($dream->created_at))/60); //梦想发布分钟数
+            $care_num = count($data);
+            if (count($data)==0) $care_num=1;
+            $setting = BaseSettingsModel::where('category','paihang')->first();
+            $a = $setting?$setting->key:1;
+            $x = $setting?$setting->sort:10;
+            if($x==0) $x = 10;
+            $dream->score = (log($care_num,$x) + ($a/$t) + $dream->parameter)*100000000000000 ;
+            $dream->save();
             $dream->care_num = count($data);
             $dream->img = $dream->img?$dream->img->pic:'';
         }

+ 2 - 1
server/database/migrations/2017_06_01_091444_create_user_info_table.php

xqd
@@ -19,7 +19,8 @@ class CreateUserInfoTable extends Migration
     {
         Schema::create('user_info', function (Blueprint $table) {
             $table->increments('id')->comment('用户ID');
-            $table->char('phone',11)->unique()->comment('电话');
+//            $table->char('phone',11)->unique()->comment('电话');
+            $table->char('phone',11)->nullable()->comment('电话');
             $table->string('password',100)->default('')->comment('密码');
             $table->string('nickname',100)->default('')->comment('昵称');
             $table->string('avatar')->default('')->comment('用户头像');

+ 5 - 4
server/resources/views/admin/dream/info/edit.blade.php

xqd xqd xqd
@@ -134,7 +134,7 @@
                  <label class="control-label col-sm-3">梦想分</label>
                                     
                    <div class="col-sm-9">
-                     <input id="data_mark" name="data[mark]" class="form-control" value="{{ $data['mark'] or ''}}" required="" aria-required="true"  placeholder=""> 
+                     <input id="data_mark" name="data[mark]" class="form-control" value="{{ $data['mark'] or ''}}"   placeholder="">
                     </div>
                                 
                 </div>
@@ -155,11 +155,11 @@
                  <label class="control-label col-sm-3">排行参数</label>
                                     
                    <div class="col-sm-9">
-                      <input id="data_score" name="data[parameter]" class="form-control" value="{{ $data['parameter'] or ''}}" required="" aria-required="true"  placeholder="">
+                      <input id="" name="data[parameter]" class="form-control" value="{{ $data['parameter'] or ''}}" required="" aria-required="true"  placeholder="">
                     </div>
                                 
                 </div>
-                <div class="form-group">
+             {{--   <div class="form-group">
 
                  <label class="control-label col-sm-3">梦想排行分数</label>
 
@@ -167,12 +167,13 @@
                      <input id="data_score" name="data[score]" class="form-control" value="{{ $data['score'] or ''}}" required="" aria-required="true"  placeholder="">
                     </div>
 
-                </div>
+                </div>--}}
                 <div class="form-group">
                                     
                  <label class="control-label col-sm-3">梦想标签</label>
                    <div class="col-sm-9">
                        <select name="data[sign][]" id="data_sign" class="form-control" size=""  multiple="multiple">
+                           <option value="">无</option>
                            @foreach($signs as $key =>$sign)
                                <option value="{{$sign->value}}" @if(isset($data['sign']) && in_array($sign->value,$data['sign'])  ) selected  @endif>{{$sign->value}}</option>
                            @endforeach

+ 3 - 1
server/resources/views/admin/dream/info/index.blade.php

xqd xqd
@@ -43,6 +43,7 @@
             <th class="sorting" data-sort="get_coin"> 获得梦想币 </th>
 			<th class="sorting" data-sort="mark"> 梦想分 </th>
 			<th class="sorting" data-sort="sign"> 梦想标签 </th>
+			<th class="sorting" data-sort="score"> 首页排行分数 </th>
 			<th class="sorting" data-sort="parameter"> 排行参数 </th>
 			<th class="sorting" data-sort="code"> 二维码 </th>
 			<th class="sorting" data-sort="code"> 扫描时间 </th>
@@ -62,8 +63,9 @@
             <td>{{ $item->name }}</td>
             <td>{{ $item->coin }}</td>
             <td>{{ $item->get_coin }}</td>
-			<td>{{ $item->score }}</td>
+			<td>{{ $item->mark }}</td>
 			<td>{{ $item->sign }}</td>
+			<td>{{ $item->score }}</td>
 			<td>
 				X:{{ $item->x }} <br>
 				Y:{{ $item->y }}<br>

+ 7 - 5
server/resources/views/admin/share.blade.php

xqd xqd xqd
@@ -19,7 +19,7 @@
 <body style="overflow-x: hidden">
 <div style="height: 50px">
     <a href="https://fir.im/jt4h">
-        <div style="float: left;color: red;line-height: 50px;padding-left: 5px">支持({{empty($dream->user) ? '' : $dream->user->nickname}})的梦想!现在就下载喵喵</div>
+        <div style="float: left;color: #666;line-height: 50px;padding-left: 5px">支持({{empty($dream->user) ? '' : $dream->user->nickname}})的梦想!现在就下载喵喵</div>
         <div style="float: right;padding: 5px">
             <img style="width: 40px;height: 40px;" src="http://firicon.fir.im/396004d5e7b572efbefdfee976338331a457282b" alt="">
         </div>
@@ -44,6 +44,7 @@
         <p>{{$days}}</p>
         <p style="font-size: 13px; color: #919191">剩余时间</p>
     </div>
+    {{--判断显示--}}
     <div style="float:right;">
         <p style="text-align: right">{{$dream->mark}}</p>
         <p style="font-size: 13px;; color: #919191">当前获得梦想分数</p>
@@ -51,13 +52,14 @@
 </div>
 <div style="clear:both; height: 50px; padding: 5px 10px;">
     <div style="float:left;">
-        <p style="color: #FF6600">{{$dream->get_coin}}</p>
-        <p style="font-size: 13px; color: #919191">目前已获梦想币</p>
-    </div>
-    <div style="float:right;">
         <p style="text-align: right">{{$dream->coin}}</p>
         <p style="font-size: 13px; color: #919191">我要求的梦想币</p>
     </div>
+    {{--判断显示--}}
+    <div style="text-align: right;float: right">
+        <p style="color: #FF6600">{{$dream->get_coin}}</p>
+        <p style="font-size: 13px; color: #919191">目前已获梦想币</p>
+    </div>
 </div>
 <div style="padding: 0 10px 20px  10px">
     <div style="background-color:#E6E6E6; width: 100%;">