post('openid'); $sign = $request->post('sign'); $amount = $request->post('amount'); $mySign = _sign(compact('openid','amount'),'8T5MJy4FsJoZspq8'); if($sign != $mySign){ return response()->error('PARAM_ERROR'); } $user = UserService::getUserByUnionAndChannelId($openid,6985); if(!$user){ $user = UserService::addUser( ['openid' => $openid, 'unionid' => $openid, 'distribution_channel_id' =>6985, 'send_order_id'=>0, 'is_new'=>1, 'register_ip'=>'' ]); DB::table('xiyue_zsy_users')->insert([ 'uid'=>$user->id, 'xiyue_uid'=>0, 'openid'=>$openid, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s') ]); }else{ $this->_xiyueConsume($openid,$amount); } YearOrderService::save_year_order([ 'uid'=>$user->id, 'fee'=>0, 'send_order_id'=>0, 'distribution_channel_id'=>6985 ]); UserWealthyOperateRecordService::create($user->id,365,6985,'yearRecharge',20190828); return response()->success(); } public function getUserBalance(Request $request){ $openid = $request->post('openid'); $sign = $request->post('sign'); $mySign = _sign(compact('openid'),'8T5MJy4FsJoZspq8'); if($sign != $mySign){ return response()->error('PARAM_ERROR'); } $user = UserService::getUserByUnionAndChannelId($openid,6985); return response()->success($user); } private function _xiyueConsume($openid,$amount){ $user = UserService::getUserByOpenidAndChannelId($openid,6985); if(!$user) return false; if($amount <= 0){ return false; } if($amount > $user->balance || $amount > $user->charge_balance){ return false; } $data = []; $data['uid'] = $user->id; $data['type'] = 'xiyueconsume'; $data['attach'] = ''; $data['created_at'] = date('Y-m-d H:i:s'); $data['updated_at'] = date('Y-m-d H:i:s'); $data['balance'] = $amount; if ($user->charge_balance >= $amount) { $data['charge_balance'] = $amount; $data['reward_balance'] = 0; $user->balance -= $amount; $user->charge_balance -= $amount; } elseif ($user->charge_balance > 0) { $data['charge_balance'] = $user->charge_balance; $data['reward_balance'] = $amount - $user->charge_balance; $reward = $amount - $user->charge_balance; $user->balance -= $amount; $user->charge_balance = 0; $user->reward_balance -= $reward; } else { $data['charge_balance'] = 0; $data['reward_balance'] = $amount; $user->balance -= $amount; $user->reward_balance -= $amount; } $user->save(); DB::table('user_other_consume_record')->insert($data); return true; } public function xiyueConsume(Request $request){ $openid = $request->post('openid'); $sign = $request->post('sign'); $amount = $request->post('amount'); $mySign = _sign(compact('openid','amount'),'8T5MJy4FsJoZspq8'); if(!$openid || !$amount || ($sign != $mySign)){ return response()->error('PARAM_ERROR'); } $user = UserService::getUserByOpenidAndChannelId($openid,6985); if(!$user) return response()->error('PARAM_ERROR'); if($amount <= 0){ return response()->error('PARAM_ERROR'); } if($amount > $user->balance || $amount > $user->charge_balance){ return response()->error('WAP_INSUFFICIENT_BALANCE'); } $data = []; $data['uid'] = $user->id; $data['type'] = 'xiyueconsume'; $data['attach'] = ''; $data['created_at'] = date('Y-m-d H:i:s'); $data['updated_at'] = date('Y-m-d H:i:s'); $data['balance'] = $amount; if ($user->charge_balance >= $amount) { $data['charge_balance'] = $amount; $data['reward_balance'] = 0; $user->balance -= $amount; $user->charge_balance -= $amount; } elseif ($user->charge_balance > 0) { $data['charge_balance'] = $user->charge_balance; $data['reward_balance'] = $amount - $user->charge_balance; $reward = $amount - $user->charge_balance; $user->balance -= $amount; $user->charge_balance = 0; $user->reward_balance -= $reward; } else { $data['charge_balance'] = 0; $data['reward_balance'] = $amount; $user->balance -= $amount; $user->reward_balance -= $amount; } $user->save(); DB::table('user_other_consume_record')->insert($data); return response()->success($user); } }