| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- <?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);
- }
- }
- }
|