124 lines
4.8 KiB
PHP
124 lines
4.8 KiB
PHP
<?php
|
|
|
|
|
|
namespace addon\memberrecharge\model\cashier;
|
|
|
|
use app\model\BaseModel;
|
|
|
|
class Calculate extends BaseModel
|
|
{
|
|
|
|
/**
|
|
* 计算
|
|
* @param $data
|
|
* @return array
|
|
*/
|
|
public function calculate($data)
|
|
{
|
|
$type = $data['type'] ?? '';
|
|
if ($type == 'recharge') {
|
|
$order_name = '';
|
|
$goods_list = [];
|
|
|
|
$data['cashier_order_type'] = 'recharge';
|
|
$goods_money = 0;
|
|
$sku_array = $data['sku_array'];
|
|
$reward = $data['reward'] ?? [];
|
|
$reward_goods_list = $data['reward_goods_list'] ?? [];
|
|
$sku_ids = [];
|
|
$money_array = [];
|
|
foreach ($sku_array as $k => $v) {
|
|
$item_recharge_id = $v['recharge_id'] ?? 0;
|
|
if ($item_recharge_id > 0) {
|
|
$sku_ids[] = $item_recharge_id;
|
|
}
|
|
$item_money = $v['money'] ?? 0;
|
|
if ($item_money > 0) {
|
|
$money_array[] = $item_money;
|
|
}
|
|
}
|
|
$goods_image = 'upload/cashier/member-recharge-icon.png';
|
|
if (!empty($sku_ids)) {
|
|
$member_recharge_condition = array(
|
|
['recharge_id', 'in', $sku_ids]
|
|
);
|
|
$member_recharge_list = model('member_recharge')->getList($member_recharge_condition);
|
|
|
|
|
|
if (!empty($member_recharge_list)) {
|
|
foreach ($member_recharge_list as $k => $v) {
|
|
$item_sku_id = $v['recharge_id'];
|
|
$price = $v['buy_price'];
|
|
$item_goods_id = 0;//sku_id已经是充值个体组件
|
|
$num = 1;
|
|
$item_goods_money = $price * $num;
|
|
$goods_money += $item_goods_money;
|
|
$sku_name = '充值套餐'.$v['recharge_name'];
|
|
$order_name = string_split($order_name, ',', '充值套餐'.$v['recharge_name']);
|
|
$goods_list[] = array(
|
|
'goods_id' => $item_goods_id,
|
|
'sku_id' => $item_sku_id,
|
|
'price' => $price,
|
|
'num' => $num,
|
|
'goods_money' => $item_goods_money,
|
|
'sku_name' => $sku_name,
|
|
'real_goods_money' => $item_goods_money,
|
|
'goods_name' => '充值礼包',
|
|
'goods_image' => $goods_image,
|
|
'spec_name' => $v['recharge_name'],
|
|
'goods_class' => 'recharge',
|
|
'goods_class_name' => '充值礼包',
|
|
'is_virtual' => 1
|
|
);
|
|
|
|
}
|
|
}
|
|
}
|
|
if (!empty($money_array)) {
|
|
foreach ($money_array as $k => $v) {
|
|
$item_sku_id = 0;
|
|
$price = $v;
|
|
if ($price > 0) {
|
|
$item_goods_id = 0;
|
|
$num = 1;
|
|
$item_goods_money = $price * $num;
|
|
$goods_money += $item_goods_money;
|
|
$sku_name = '自定义充值金额' . $item_goods_money;
|
|
$order_name = string_split($order_name, ',', '自定义充值金额' . $item_goods_money);
|
|
$goods_list[] = array(
|
|
'goods_id' => $item_goods_id,
|
|
'sku_id' => $item_sku_id,
|
|
'price' => $price,
|
|
'num' => $num,
|
|
'goods_money' => $item_goods_money,
|
|
'real_goods_money' => $item_goods_money,
|
|
'sku_name' => $sku_name,
|
|
'goods_name' => '充值',
|
|
'goods_image' => $goods_image,
|
|
'spec_name' => '自定义充值',
|
|
'goods_class' => 'recharge',
|
|
'goods_class_name' => '充值礼包',
|
|
'is_virtual' => 1
|
|
);
|
|
}
|
|
|
|
}
|
|
}
|
|
if (empty($goods_list))
|
|
return $this->error([], '缺少必填参数商品数据');
|
|
|
|
$data['goods_money'] = $goods_money;
|
|
$order_money = $goods_money;
|
|
$real_goods_money = $goods_money;
|
|
$pay_money = $goods_money;
|
|
$data['goods_list'] = $goods_list;
|
|
$data['real_goods_money'] = $real_goods_money;
|
|
$data['order_name'] = $order_name;
|
|
$data['order_money'] = $order_money;
|
|
$data['pay_money'] = $pay_money;
|
|
|
|
return $this->success($data);
|
|
}
|
|
}
|
|
|
|
} |