diff --git a/Server/application/chukebao/model/TokensRecord.php b/Server/application/chukebao/model/TokensRecord.php index 77f121b8..e61c06fb 100644 --- a/Server/application/chukebao/model/TokensRecord.php +++ b/Server/application/chukebao/model/TokensRecord.php @@ -6,7 +6,7 @@ use think\Model; class TokensRecord extends Model { protected $pk = 'id'; - protected $name = 'kf_tokens_record'; + protected $name = 'tokens_record'; // 自动写入时间戳 protected $autoWriteTimestamp = true; diff --git a/Server/application/common/controller/PaymentService.php b/Server/application/common/controller/PaymentService.php index 3e7e6a25..66e70d5b 100644 --- a/Server/application/common/controller/PaymentService.php +++ b/Server/application/common/controller/PaymentService.php @@ -81,15 +81,15 @@ class PaymentService if ($parsed['status'] == 0 && $parsed['result_code'] == 0) { Db::commit(); - return json(['code' => 200, 'msg' => '订单创建成功', 'data' => $parsed['code_url']]); + return json_encode(['code' => 200, 'msg' => '订单创建成功', 'data' => $parsed['code_img_url']]); } else { Db::rollback(); - return json(['code' => 500, 'msg' => '订单创建失败:' . $parsed['err_msg']]); + return json_encode(['code' => 500, 'msg' => '订单创建失败:' . $parsed['err_msg']]); } } catch (\Exception $e) { Db::rollback(); - return json(['code' => 500, 'msg' => '订单创建失败:' . $e->getMessage()]); + return json_encode(['code' => 500, 'msg' => '订单创建失败:' . $e->getMessage()]); } } diff --git a/Server/application/cunkebao/config/route.php b/Server/application/cunkebao/config/route.php index 4c6e51b2..860e3e2b 100644 --- a/Server/application/cunkebao/config/route.php +++ b/Server/application/cunkebao/config/route.php @@ -142,6 +142,15 @@ Route::group('v1/', function () { Route::get('friendRequestTaskStats', 'app\cunkebao\controller\StatsController@getFriendRequestTaskStats'); Route::get('userInfoStats', 'app\cunkebao\controller\StatsController@userInfoStats'); }); + + // 算力相关 + Route::group('tokens', function () { + Route::get('list', 'app\cunkebao\controller\TokensController@getList'); + Route::post('pay', 'app\cunkebao\controller\TokensController@pay'); + }); + + + })->middleware(['jwt']); diff --git a/Server/application/cunkebao/controller/TokensController.php b/Server/application/cunkebao/controller/TokensController.php new file mode 100644 index 00000000..d71ab105 --- /dev/null +++ b/Server/application/cunkebao/controller/TokensController.php @@ -0,0 +1,86 @@ +request->param('page', 1); + $limit = $this->request->param('limit', 10); + $where = [ + ['isDel', '=', 0], + ['status', '=', 1], + ]; + $query = TokensPackage::where($where); + $total = $query->count(); + $list = $query->where($where)->page($page, $limit)->order('id desc')->select(); + foreach ($list as &$item) { + $item['description'] = json_decode($item['description'], true); + $item['price'] = number_format($item['price'] / 100, 2); + $item['originalPrice'] = number_format($item['originalPrice'] / 100, 2); + } + unset($item); + return ResponseHelper::success(['list' => $list, 'total' => $total]); + } + + + public function pay() + { + $id = $this->request->param('id', ''); + $price = $this->request->param('price', ''); + $userId = $this->getUserInfo('id'); + $companyId = $this->getUserInfo('companyId'); + + if (empty($id) && empty($price)) { + return ResponseHelper::error('套餐和自定义购买金额必须选一个'); + } + + if (!empty($id)){ + $package = TokensPackage::where(['id' => $id, 'status' => 1, 'isDel' => 0])->find(); + if (empty($package)) { + return ResponseHelper::error('套餐不存在或者已禁用'); + } + + if ($package['price'] <= 0){ + return ResponseHelper::error('套餐金额异常'); + }else{ + $price = $package['price']; + } + }else{ + $package = [ + 'id' => 0, + 'name' => '自定义购买算力', + 'price' => intval($price * 100) + ]; + } + + $orderNo = date('YmdHis') . rand(100000, 999999); + $order = [ + 'companyId' => $companyId, + 'userId' => $userId, + 'orderNo' => $orderNo, + 'goodsId' => $package['id'], + 'goodsName' => $package['name'], + 'orderType' => 1, + 'money' => $package['price'] + ]; + $paymentService = new PaymentService(); + $res = $paymentService->createOrder($order); + $res = json_decode($res, true); + if ($res['code'] == 200){ + return ResponseHelper::success(['orderNo' => $orderNo,'code_url' => $res['data']],'订单创建成功'); + }else{ + return ResponseHelper::error($res['msg']); + } + + + + } + + +} \ No newline at end of file diff --git a/Server/application/cunkebao/model/TokensPackage.php b/Server/application/cunkebao/model/TokensPackage.php new file mode 100644 index 00000000..069cce74 --- /dev/null +++ b/Server/application/cunkebao/model/TokensPackage.php @@ -0,0 +1,17 @@ +