| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com
- * =========================================================
- */
- namespace addon\store\model\cashier;
- use addon\memberrecharge\model\RechargeOrder;
- use addon\store\model\member\MemberOnceCard;
- use addon\store\model\stock\Stock;
- use addon\store\model\store\Store;
- use app\model\BaseModel;
- use app\model\member\Member;
- use app\model\member\MemberAccount;
- use app\model\member\MemberLevelOrder;
- use app\model\order\OrderCommon;
- use app\model\order\OrderCreateTool;
- use app\model\order\OrderGoods;
- use app\model\site\Site;
- use app\model\system\Pay;
- use think\facade\Cache;
- use think\facade\Queue;
- /**
- * 收银订单
- *
- * @author Administrator
- *
- */
- class CashierOrderGoods extends BaseModel
- {
- public function setOrderGoodsIsDecStock($condition){
- $data = array(
- 'is_dec_stock' => 1
- );
- model('store_cashier_order_goods')->update($data, $condition);
- return $this->success();
- }
- /**
- * 实物商品出库
- * @param $params
- */
- public function orderGoodsOutput($params){
- $order_goods_id = $params['order_goods_id'];
- $order_goods_condition = array(
- ['order_goods_id', '=', $order_goods_id]
- );
- $info = model('store_cashier_order_goods')->getInfo($order_goods_condition);
- if(empty($info)){
- return $this->error();
- }
- $is_dec_stock = $info['is_dec_stock'];
- if($is_dec_stock == 0){
- //扣除库存
- $stock_model = new Stock();
- $goods_sku_list = array(
- [
- 'goods_sku_id' => $params['sku_id'],
- 'goods_id' => $params['goods_id'],
- 'goods_num' => $params['num']
- ]
- );
- $stock_params = [
- 'site_id' => $params['site_id'],
- 'store_id' => $params['store_id'],
- 'goods_sku_list' => $goods_sku_list,
- 'is_dec_sale_stock' => 1
- ];
- $result = $stock_model->sellOutput($stock_params);
- if($result['code'] < 0){
- return $result;
- }
- $this->setOrderGoodsIsDecStock($order_goods_condition);
- }
- return $this->success();
- }
- /**
- * 获取订单项的真实商品金额
- * @param $order_goods_info
- * @param $order_info
- */
- public function getOrderGoodsRealMoney($order_goods_info)
- {
- $order_goods_id = $order_goods_info[ 'order_goods_id' ];
- //计算当前订单项的优惠
- $order_offset_model = new CashierOrderOffset();
- $discount_money = $order_offset_model->getOrderGoodsOffsetMoney($order_goods_id);
- $real_goods_money = $order_goods_info[ 'goods_money' ] - $discount_money;//真实商品金额
- $real_goods_money = $real_goods_money < 0 ? 0 : $real_goods_money;
- return $real_goods_money;
- }
- /**
- * 订单项关闭
- * @param $params
- */
- public function orderGoodsClose($params)
- {
- $order_id = $params[ 'order_id' ];
- $order_goods_id = $params[ 'order_goods_id' ];
- //管理核销相关
- $order_trade_model = new CashierTrade();
- $order_common_model = new CashierOrderCommon();
- $order_condition = array (
- [ 'order_id', '=', $order_id ]
- );
- $order_info = $order_common_model->getOrderInfo($order_condition)[ 'data' ] ?? [];
- if (empty($order_info))
- return $this->error([], '订单不存在');
- $order_goods_condition = array(
- ['order_goods_id', '=', $order_goods_id]
- );
- $order_goods_info = model('store_cashier_order_goods')->getInfo($order_goods_condition);
- $status = $order_goods_info['order_goods_status'];
- if($status == 'close'){
- return $this->error([], '订单项不可以重复关闭');
- }
- $order_goods_data = array(
- 'order_goods_status' => 'close'
- );
- model('store_cashier_order_goods')->update($order_goods_data, $order_goods_condition);
- $trade_result = $order_trade_model->tradeClose($order_goods_info);
- if ($trade_result[ 'code' ] < 0)
- return $trade_result;
- // 订单项关闭
- event('CashierOrderGoodsClose', ['order_goods_id' => $order_goods_id, 'order_id' => $order_id, 'site_id' => $params['site_id'] ]);
- return $this->success();
- }
- }
|