jh-admin/addon/cashier/api/controller/Pay.php

108 lines
4.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* SAAS应用系统 --- 十年开发经验汇集巨献!
* ==========================================================
* Copy right 2020-2050 成都众联思索科技有限公司,保留所有权利。
* ----------------------------------------------------------
* 官方网址: https://www.zoomtk.com
* 这不是自由软件!未经允许不得用于商业目或程序代码摘取及修改。
* 任何企业和个人未经允许对程序代码以任何形式任何目的再发布传播。
* 唯一发布渠道www.zoomtk.com;非官方渠道统一视为侵权行为。
* ==========================================================
*/
namespace addon\cashier\api\controller;
use addon\cashier\model\order\CashierOrderCreate as CashierOrderCreateModel;
use app\api\controller\BaseApi;
use app\model\order\Config as ConfigModel;
use app\model\order\OrderCommon as OrderCommonModel;
use app\model\system\Pay as PayModel;
class Pay extends BaseApi
{
/***
* 收银支付类型
* @return false|string
*/
public function type()
{
$pay = new PayModel();
$config_model = new ConfigModel();
$info = $pay->getPayType($this->params);
$temp = empty($info) ? [] : $info;
$type = [];
foreach ($temp['data'] as $k => $v) {
array_push($type, $v["pay_type"]);
}
//余额支付配置
$balance_config = $config_model->getBalanceConfig($this->site_id, $this->app_module)[ 'data' ][ 'value' ];
if($balance_config['balance_show']){
array_push($type,'balance');
}
$type = implode(",", $type);
return $this->response(success(0, '', ['pay_type' => $type]));
}
/**
* 创建订单
*/
public function create(){
$token = $this->checkToken();
if ($token['code'] < 0) return $this->response($token);
$order_id = $this->params['order_id'] ?? 0;
$order_create_model = new CashierOrderCreateModel();
$data = [
'site_id' => $this->site_id,//站点id
'sku_array' => [
[
'sku_id' => time(),
'card_item_id' => 0,
'money' => $this->params['money']
]
],
'order_id' => $order_id,
'member_id' => $this->member_id,//购买会员(可有可无)
'store_id' => $this->params['store_id'] ?? 0,
'order_from' => $this->params['app_type'],
'order_from_name' => $this->params['app_type_name'],
'type' => 'goods',
'source' => $this->params['source'] ?? '',// is_buy 普通购买 cart 购物车 参与活动,
'remark' => $this->params['remark'] ?? '',
'operator' => '',//操作人员,
'cashier_type' => 'cashier',
'create_time' => time(),
'legumes_integral_use' => isset($this->params[ 'legumes_integral_use' ]) ? $this->params[ 'legumes_integral_use' ] : 0,// 使用的豆豆积分
];
if (empty($data['sku_array'])) {
return $this->response($this->error('', '缺少必填参数商品数据'));
}
$res = $order_create_model->create($data);
return $this->response($res);
}
// 获取买单记录
public function orderList(){
// 用户登录
$token = $this->checkToken();
if ($token[ 'code' ] < 0) return $this->response($token);
// 基本参数
$page_index = isset($this->params['page']) ? $this->params['page'] : 1;
$page_size = isset($this->params['page_size']) ? $this->params['page_size'] : PAGE_LIST_ROWS;
// 条件生成
$condition = [
["member_id","=",$this->member_id],
["site_id","=",$this->site_id],
["is_delete",'=',0],
["order_type","in",5],
['order_from','=','cashier'],
['order_status','in', [1,10]],
];
// 月度列表
$order_common_model = new OrderCommonModel();
$field = "order_name,order_id,member_id,order_money,create_time";
$res = $order_common_model->getMemberOrderPageList($condition, $page_index, $page_size, "create_time desc", $field);
$res['data']['statistics'] = model('order')->getInfo($condition,'IFNULL(SUM(order_money),0) as sum_order_money');
return $this->response($res);
}
}