songjiyuan hace 9 años
padre
commit
c246631f65
Se han modificado 1 ficheros con 103 adiciones y 17 borrados
  1. 103 17
      mobile/control/bonus.php

+ 103 - 17
mobile/control/bonus.php

@@ -14,22 +14,40 @@ class bonusControl extends mobileMemberExControl
         parent::__construct();
     }
 
+    /**
+    * 获取红包类型
+    */
+    private function getBonusType($type_id) {
+        static $bonustype;
+        if (empty($bonustype)) {
+            $result = Model()->table('bonus_type')->select();
+            foreach ($result as $key => $value) {
+                $bonustype[$result['type_id']] =  $value;
+            }
+        }
+
+        return $bonustype[$type_id];
+    }
+
+    /**
+    * 获取红包列表, 红包使用列表数据
+    */
     public function bonus_listOp()
     {
         // 检验token
-        // $token = $_GET['key'];
+        $token = $_GET['key'];
 
-        // if (empty($token)) {
-        //     return joutput_error(errcode::ErrInputParam, '输入参数有误');
-        // }
+        if (empty($token)) {
+            return joutput_error(errcode::ErrInputParam, '输入参数有误');
+        }
 
-        // if ($this->checkToken($token) != errcode::Success) {
-        //     return joutput_error($this->err_code, errcode::msg($this->err_code));
-        // }
+        if ($this->checkToken($token) != errcode::Success) {
+            return joutput_error($this->err_code, errcode::msg($this->err_code));
+        }
 
         // 根据token获取用户ID
         $condition['user_id'] = $this->member_info['member_id'];
-        $condition['user_id'] = 36455;
+        //$condition['user_id'] = 36455;
 
         if (!empty($condition['user_id'])) {
 
@@ -46,12 +64,12 @@ class bonusControl extends mobileMemberExControl
             $ret_array['bonus_list'] = array();
             $bonus_list = array();
             foreach ($ret as $value) {
-                $bonus_type = Model()->table('bonus_type')->where(array('type_id' => $value['bonus_type_id']))->limit(1)->select();
+                $bonus_type = $this->getBonusType($value['bonus_type_id']);
 
                 if (!empty($bonus_type)) {
-                    $result['type_name'] = $bonus_type[0]['type_name'];
-                    $result['use_start_date'] = $bonus_type[0]['use_start_date'];
-                    $result['use_end_date'] = $bonus_type[0]['use_end_date'];
+                    $result['type_name'] = $bonus_type['type_name'];
+                    $result['use_start_date'] = $bonus_type['use_start_date'];
+                    $result['use_end_date'] = $bonus_type['use_end_date'];
                 }
 
                 $result['bonus_sn'] = $value['bonus_sn'];
@@ -70,6 +88,56 @@ class bonusControl extends mobileMemberExControl
         }
     }
 
+    /**
+     * 添加余额
+     */
+    private function _add_money_ex($member_id, $pointsnum, $order_sn, $pointsdesc){
+        
+        $obj_validate = new Validate();
+        $obj_validate->validateparam = array(
+            array("input"=>$member_id, "require"=>"true", "message"=>Language::get('admin_points_member_error_again')),
+            array("input"=>$pointsnum, "require"=>"true",'validator'=>'Compare','operator'=>' >= ','to'=>1,"message"=>Language::get('admin_points_points_min_error'))
+        );
+        $error = $obj_validate->validate();
+        if ($error != ''){
+            return -1;
+        }
+        
+        $money = abs(floatval($pointsnum));
+        $memo=trim($pointsdesc);
+        if ($money <= 0) {
+            return -2;  // 输入的金额必需大于0
+        }
+        //查询会员信息
+        $obj_member = Model('member');
+        $member_id = intval($member_id);
+        $member_info = $obj_member->getMemberInfo(array('member_id'=>$member_id));
+
+        if (!is_array($member_info) || count($member_info)<=0){
+            return -3;  // 用户信息不对
+        }
+        $available_predeposit=floatval($member_info['available_predeposit']);
+        $freeze_predeposit=floatval($member_info['freeze_predeposit']);
+        $model_pd = Model('predeposit');
+       
+        try {
+            //扣除冻结的预存款
+            $data = array();
+            $data['member_id'] = $member_info['member_id'];
+            $data['member_name'] = $member_info['member_name'];
+            $data['amount'] = $money;
+            $data['order_sn'] = $order_sn;
+            $data['admin_name'] = $admininfo['name'];
+            $data['pdr_sn'] = $order_sn;
+            $data['lg_desc'] = $memo;
+            $model_pd->changePd("bonus_add_money",$data);
+            return 0; // 操作成功
+        } catch (Exception $e) {
+            return -7;  // 操作异常
+        }
+        return -8;
+    }
+
     // 红包绑定
     public function bind_bonusOp()
     {
@@ -84,6 +152,9 @@ class bonusControl extends mobileMemberExControl
             return joutput_error($this->err_code, errcode::msg($this->err_code));
         }
 
+        // 技术债务
+        //$this->member_info['member_id'] = 36455;
+
         // 获取user_id
         $condition['member_id'] = $this->member_info['member_id'];
 
@@ -101,20 +172,35 @@ class bonusControl extends mobileMemberExControl
 
                     $bonus_info = array();
                     foreach ($user_bonus as $value) {
-
-                        $bonus_type = Model()->table('bonus_type')->where(array('type_id' => $value['bonus_type_id']))->limit(1)->select();
-
+                        $bonus_type = $this->getBonusType($value['bonus_type_id']);
                         $info = [];
-                        $info['sender'] = $bonus_type[0]['sender'];
-                        $info['type_name'] = $bonus_type[0]['type_name'];
+                        $info['sender'] = $bonus_type['sender'];
+                        $info['type_name'] = $bonus_type['type_name'];
                         $info['bonus_value'] = $value['bonus_value'];
 
                         array_push($bonus_info, $info);
                     }
                     // 更新为已领取
                     $data['user_id'] = $this->member_info['member_id'];
+
+                    Model::beginTransaction();
+
+                    // 添加预存款
+                    $ret = $this->_add_money_ex($data['user_id'], $user_bonus[0]['bonus_value'], $user_bonus[0]["bonus_sn"]);
+                    if (0 != $ret) {
+                        Model::rollback();
+                        return joutput_error(errcode::ErrDB, "数据库错误");
+                    }
+
                     $ret = Model()->table('user_bonus')->where(array('user_mobile' => $member[0]['member_mobile']))->update($data);
 
+                    if (0 == $ret) {
+                        Model::rollback();
+                        return joutput_error(errcode::ErrDB, "数据库错误");
+                    }
+
+                    Model::commit();
+
                     // 返回存在红包
                     joutput_data(array('have_bonus' => 1, 'bonus_info' => $bonus_info));