123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- <?php
- namespace app\clientappapi\controller;
- use app\common\controller\ClientApi;
- use app\main\constants\ErrorCodeConstants;
- use app\main\constants\OrderContents;
- use app\main\constants\PayConstants;
- use app\main\helper\ArrayHelper;
- use app\main\service\AdminService;
- use app\main\service\FinancialService;
- use app\main\service\GoodsService;
- use app\main\service\OrderService;
- use app\main\service\WebUserService;
- class Recharge extends ClientApi {
- /**
- * 商品、支付列表
- */
- public function goodslist()
- {
- $this->userInfo = WebUserService::instance()->getUserInfo();
- $user = WebUserService::instance()->getUserInfo();
- // $free_diankan = FinancialService::instance()->getRechargeModel()->getTotalFreeKandian($user->id);
- // $kandian = intval($user->kandian) + $free_diankan;
- $is_test = AdminService::instance()->checkIsTestChannel($user->agent_id, $user->channel_id);
- $goods_list = model('Goods')->getGoodsListForApp(PayConstants::BUSINESS_APP, $is_test, $user->is_pay);
- foreach ($goods_list as $index => $item) {
- $goods_list[$index]['second_description'] = mb_substr($item['second_description'], 0, 10);
- $goods_list[$index]['icon'] = mb_substr($item['icon'], 0, 3);
- }
- // $pay_list = model('Wxpay')->getListByBusiness(PayConstants::BUSINESS_APP);
- // $pay_list = ArrayHelper::extractColumn($pay_list, ['id','p_desc','icon']);
- $data = [
- // 'pay_list' => $pay_list,
- 'goods_list' => $goods_list,
- ];
- $this->success('商品信息', $data);
- }
- public function paytypelist()
- {
- $pay_list = model('Wxpay')->getListByBusiness(PayConstants::BUSINESS_APP);
- $pay_list = ArrayHelper::extractColumn($pay_list, ['id', 'payment_method', 'p_desc', 'icon']);
- $data = [
- 'pay_list' => $pay_list,
- ];
- $this->success('支付方式信息', $data);
- }
- /**
- * 下单
- */
- public function pay()
- {
- $user_info = WebUserService::instance()->getUserInfo();
- //登录检测
- if (!$user_info->id) {
- $this->error('登录信息获取失败');
- }
- $payment_method = intval($this->getParams('paymentMethod'));
- $payService = OrderService::instance()->getOrderService($payment_method);
- if (!$payService) {
- $this->error('支付方式错误' . $payment_method);
- }
- try{
- $result = $payService->init($payment_method)->setParams($this->params)->setUser($user_info)->saveOrder();
- }catch (\Exception $e) {
- $this->error($e->getMessage());
- }
- if ($result->code == ErrorCodeConstants::SUCCESS) {
- $this->success($result->msg, $result->data);
- } else {
- $this->error($result->msg);
- }
- }
- /**
- * 获取充值记录
- */
- public function record()
- {
- $pageSize = $this->getParams('pageSize');
- $page = $this->getParams('page');
- $userId = WebUserService::instance()->getUserInfo()->id;
- $result = OrderService::instance()->getRechargeRecord($userId, $page, $pageSize);
- if ($result->code == ErrorCodeConstants::SUCCESS) {
- //整理下数据
- $data = [];
- if ($result->data['record_list']) {
- foreach ($result->data['record_list'] as $key => $val) {
- $data[$key] = $val;
- if ($val['business_line'] == PayConstants::BUSINESS_APP) {
- $data[$key]['type_text'] = $val['type_text'] . '-'. $val['notes'];
- }
- if ($val['type'] == '1' || $val['type'] == '3' || $val['type'] == '5' || $val['type'] == '6') { //书币
- if (intval($val['kandian']) == 0) { //免费书币
- if (intval($val['free_kandian']) > 0) {
- $data[$key]['show_item'] = '+' . $val['free_kandian'] . '书币'; //int转string
- $data[$key]['end_date'] = '有效期至:'.Date('Y-m-d', $val['free_endtime']); //书币失效日期
- } else {
- $data[$key]['show_item'] = $val['free_kandian'] . '书币'; //int转string
- $data[$key]['end_date'] = '永久'; //书币失效日期
- }
- if ($val['type'] == 1) {
- $data[$key]['type_text'] = '充值赠送书币';
- } elseif (intval($val['type']) == 6) {
- $data[$key]['type_text'] = '活动赠送书币';
- }
- } else { //永久书币
- if (intval($val['kandian']) > 0) {
- $data[$key]['show_item'] = '+' . $val['kandian'] . '书币'; //int转string
- } else {
- $data[$key]['show_item'] = $val['kandian'] . '书币'; //int转string
- }
- $data[$key]['end_date'] = '永久'; //书币失效日期
- }
- } else { //vip
- if (intval($val['day']) > 0 || intval($val['hour']) > 0) { //加vip时长
- if (intval($val['day']) > 0) {
- $data[$key]['show_item'] = '+' . $val['day'] . '天';
- if (intval($val['hour']) > 0) {
- $data[$key]['show_item'] = $data[$key]['showItem'] . $val['hour'] . '小时';
- }
- } else {
- $data[$key]['show_item'] = '+' . $val['hour'] . '小时';
- }
- } else { //减少vip时长
- if (intval($val['day']) < 0) {
- $data[$key]['show_item'] = $val['day'] . '天';
- if (intval($val['hour']) < 0) {
- $data[$key]['show_item'] = $data[$key]['showItem'] . abs($val['hour']) . '小时';
- }
- } else {
- if (intval($val['hour']) < 0) {
- $data[$key]['show_item'] = $val['hour'] . '小时';
- }
- }
- }
- $days = $val['day'] ?? 0;
- $hour = $val['hour'] ?? 0;
- if ($val['vip_starttime']) {
- $data[$key]['end_date'] = date('Y-m-d H:i:s', strtotime("+{$days} days {$hour} hours ", $val['vip_starttime']));
- } else {
- $data[$key]['end_date'] = '-';
- }
- }
- }
- }
- $this->success($result->msg, ['total' => $result->data['total'], 'record_list' => $data]);
- } else {
- $this->error($result->msg);
- }
- }
- public function checkpaid()
- {
- $id = $this->getParams('orderId');
- $uid = WebUserService::instance()->getUserInfo()->id;
- $mOrder = OrderService::instance()->getOrderModel()
- ->where('out_trade_no', $id)
- ->where('user_id', $uid)
- ->find();
- if ($mOrder) {
- $data = [
- 'state'=>$mOrder['state']
- ];
- if ($data['state'] == OrderContents::ORDER_STATE_PAID) {
- $data['free_kandian'] = FinancialService::instance()->getTotalFreeKandian($uid)->data;
- $data['kandian'] = FinancialService::instance()->getTotalKandian($uid)->data;
- $data['goods'] = GoodsService::instance()->getGoodsModel()->where('id', $mOrder['goods_id'])->find()->toArray();
- }
- $this->success('订单状态', $data);
- } else {
- $this->error('订单查询失败');
- }
- }
- }
|