Browse Source

购买同一个装扮,时间要能延续上,不要重复两个

lizhen_gitee 1 year ago
parent
commit
9e2e7e9c53

+ 3 - 1
application/api/controller/Topicdongtai.php

@@ -446,7 +446,9 @@ class Topicdongtai extends Api
             }
 
             //系统消息
-            $msg_id = \app\common\model\Message::addMessage($dt_user_id,'动态点赞',$this->auth->nickname.'赞了你的动态','dongtai_good',$id);
+            if($dt_user_id != $this->auth->id){
+                $msg_id = \app\common\model\Message::addMessage($dt_user_id,'动态点赞',$this->auth->nickname.'赞了你的动态','dongtai_good',$id);
+            }
 
             Db::commit();
             $this->success('点赞成功');

+ 38 - 14
application/api/controller/Userdecorate.php

@@ -35,6 +35,8 @@ class Userdecorate extends Api
      * 购买并加入我的背包
      */
     public function buy_one() {
+        $this->apiLimit();
+
         $did = input_post('did',''); //装扮ID
         if (!$did) {
             $this->error();
@@ -54,22 +56,44 @@ class Userdecorate extends Api
         Db::startTrans();
 
         // 添加到背包
-        $data = [
-            'user_id' => $this->auth->id,
-            'decorate_id' => $decorate['id'],
-            'decorate_type' => $decorate['type'],
-            'is_using' => 0,
-            'end_time' => time() + ($decorate['days'] * 86400),
-            'createtime' => time(),
-            'updatetime' => time(),
-        ];
-
-        $log_id = Db::name('user_decorate')->insertGetId($data);
-        if(!$log_id){
-            Db::rollback();
-            $this->error('购买失败');
+        $check =  Db::name('user_decorate')->where('user_id',$this->auth->id)->where('decorate_id',$decorate['id'])->order('id desc')->lock(true)->find();
+        if(!$check){
+            $data = [
+                'user_id' => $this->auth->id,
+                'decorate_id' => $decorate['id'],
+                'decorate_type' => $decorate['type'],
+                'is_using' => 0,
+                'end_time' => time() + (intval($decorate['days']) * 86400),
+                'createtime' => time(),
+                'updatetime' => time(),
+            ];
+
+            $log_id = Db::name('user_decorate')->insertGetId($data);
+            if(!$log_id){
+                Db::rollback();
+                $this->error('购买失败');
+            }
+        }else{
+            $update = [
+                'updatetime' => time(),
+            ];
+
+            if($check['endtime'] < time()){
+                //过期了
+                $update['endtime'] = time() + (intval($decorate['days']) * 86400);
+            }else{
+                //追加日期
+                $update['endtime'] = $check['endtime'] + (intval($decorate['days']) * 86400);
+            }
+
+            $rs_update = Db::name('user_decorate')->where('id',$check['id'])->update($update);
+            if($rs_update === false){
+                Db::rollback();
+                $this->error('购买失败');
+            }
         }
 
+        //扣钱
         $rs = model('wallet')->lockChangeAccountRemain($this->auth->id,'gold',-$decorate['price'],31,'购买装扮','user_decorate',$log_id);
         if($rs['status'] === false){
             Db::rollback();

+ 1 - 1
public/assets/js/backend/useraudit.js

@@ -31,7 +31,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
 //                        {field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
                         {field: 'bio', title: __('Bio'), operate: 'LIKE'},
                         {field: 'new_bio', title: __('New_bio'), operate: 'LIKE'},
-                        {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
+                        {field: 'createtime',sortable:true, title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status},
                         {field: 'audittime', title: __('Audittime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'auditremark', title: __('Auditremark'), operate: 'LIKE'},

+ 1 - 1
public/assets/js/backend/userdecoratelianmeng.js

@@ -35,7 +35,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'decoratelianmeng.type', title: __('Decoratelianmeng.type'),searchList: {"1":__('Decoratelianmeng.type 1'),"2":__('Decoratelianmeng.type 2'),"3":__('Decoratelianmeng.type 3'),"4":__('Decoratelianmeng.type 4')}, formatter: Table.api.formatter.normal},
                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
-                        {field: 'is_using', title: __('Is_using'), searchList: {"1":__('Is_using 1'),"0":__('Is_using 0')}, formatter: Table.api.formatter.normal},
+                        {field: 'is_using', sortable:true, title: __('Is_using'), searchList: {"1":__('Is_using 1'),"0":__('Is_using 0')}, formatter: Table.api.formatter.normal},
                         {field: 'plat_name', title: __('Plat_name'), operate: 'LIKE'},
                         {field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status},
                         {field: 'audittime', title: __('Audittime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},