| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253 |
- <?php
- /**
- * Niushop商城系统 - 团队十年电商经验汇集巨献!
- * =========================================================
- * Copy right 2019-2029 上海牛之云网络科技有限公司, 保留所有权利。
- * ----------------------------------------------
- * 官方网址: https://www.niushop.com
- * =========================================================
- */
- namespace addon\store\model\cashier;
- use addon\memberrecharge\model\RechargeOrder;
- use addon\store\model\goods\GoodsData;
- use addon\store\model\member\MemberOnceCard;
- use addon\store\model\stock\Stock;
- use addon\store\model\store\Store;
- use addon\store\model\yuyue\Yuyue;
- 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 CashierTrade extends BaseModel
- {
- public function toSend($item,$order_info)
- {
- $action_type = $item[ 'trade_type' ];//操作类型
- switch ( $action_type ) {
- case 'oncecard'://卡项
- $result = $this->toOncecard($item, $order_info);
- break;
- case ''://实物
- $result = $this->toGoods($item, $order_info);
- break;
- case 'service'://服务
- $result = $this->toService($item, $order_info);
- break;
- }
- if (!empty($result)) {
- if ($result[ 'code' ] < 0) {
- return $result;
- }
- }
- //累加销量
- $goods_data_model = new GoodsData();
- $goods_data_model->incGoodsSaleNum($item);
- return $this->success();
- }
- /**
- * 生成卡项
- * @param $params
- * @return array
- */
- public function toOncecard($params, $order_info)
- {
- $member_oncecard_model = new MemberOnceCard();
- $cashier_type = $order_info['cashier_type'];
- $is_gift = $params['is_gift'];
- if($cashier_type == 'online' || $is_gift){
- $params['delivery_method'] = 'buy';
- }
- $num = $params['num'];
- $i = 0;
- $create_card_id_array = [];
- while($i < $num){
- $result = $member_oncecard_model->create($params);
- if ($result[ 'code' ] < 0) {
- return $result;
- }
- $create_card_id_array[] = $result['data'];
- $i++;
- }
- if(!empty($create_card_id_array)){
- $order_goods_id = $params['order_goods_id'];
- $create_card_id = implode(',', $create_card_id_array);
- $condition = array(
- ['order_goods_id', '=', $order_goods_id]
- );
- $data = array(
- 'create_card_id' => $create_card_id
- );
- model('store_cashier_order_goods')->update($data, $condition);
- }
- return $this->success();
- }
- /**
- * 生成预约服务
- * @param $order_info
- * @return array
- */
- public function toService($params, $order_info)
- {
- $extend = json_decode($params[ 'extend' ], true);
- $member_oncecard_model = new MemberOnceCard();
- $cashier_type = $order_info['cashier_type'];
- $is_gift = $params['is_gift'];
- if($cashier_type == 'online' || $is_gift){
- $result = $member_oncecard_model->create($params);
- if ($result[ 'code' ] < 0) {
- return $result;
- }
- $create_card_id_array = [$result['data']];
- if(!empty($create_card_id_array)){
- $order_goods_id = $params['order_goods_id'];
- $create_card_id = implode(',', $create_card_id_array);
- $condition = array(
- ['order_goods_id', '=', $order_goods_id]
- );
- $data = array(
- 'create_card_id' => $create_card_id
- );
- model('store_cashier_order_goods')->update($data, $condition);
- }
- }
- if (!empty($extend)) {
- $order_id = $params[ 'order_id' ];
- $order_condition = array (
- [ 'order_id', '=', $order_id ]
- );
- $order_info = model('store_cashier_order')->getInfo($order_condition);
- //去生成预约服务
- $goods_id = $params[ 'goods_id' ];
- $sku_id = $params[ 'sku_id' ];
- $store_id = $params[ 'store_id' ];
- $site_id = $params[ 'site_id' ];
- $member_id = $params[ 'member_id' ];
- $site_type = $order_info[ 'site_type' ];
- $yuyue_goods_list = [
- [
- 'sku_id' => $sku_id,
- 'goods_id' => $goods_id,
- 'servicer_id' => $extend[ 'servicer_id' ] ?? 0,
- 'card_id' => 0
- ]
- ];
- $yuyue_model = new Yuyue();
- $yuyue_data = array (
- 'date' => $extend[ 'date' ] ?? '',
- 'time' => $extend[ 'time' ] ?? '',
- 'remark' => $extend[ 'remark' ] ?? '',
- 'store_id' => $store_id,
- 'member_id' => $member_id,
- 'site_id' => $site_id,
- 'app_module' => $site_type,
- 'goods' => $yuyue_goods_list
- );
- $result = $yuyue_model->addYuyue($yuyue_data);
- }
- return $this->success();
- }
- /**
- * 实物处理
- * @param $params
- * @param $order_info
- * @return array
- */
- public function toGoods($params, $order_info){
- $cashier_type = $order_info['cashier_type'];
- $is_gift = $params['is_gift'];
- if($cashier_type == 'online' || $is_gift){
- $member_oncecard_model = new MemberOnceCard();
- $result = $member_oncecard_model->create($params);
- if ($result[ 'code' ] < 0) {
- return $result;
- }
- $create_card_id_array = [$result['data']];
- if(!empty($create_card_id_array)){
- $order_goods_id = $params['order_goods_id'];
- $create_card_id = implode(',', $create_card_id_array);
- $condition = array(
- ['order_goods_id', '=', $order_goods_id]
- );
- $data = array(
- 'create_card_id' => $create_card_id
- );
- model('store_cashier_order_goods')->update($data, $condition);
- }
- }else{
- //扣除库存
- $cashier_order_goods_model = new CashierOrderGoods();
- $result = $cashier_order_goods_model->orderGoodsOutput($params);
- }
- return $result;
- }
- /**
- *关闭收货相关的业务
- * @param $params
- */
- public function tradeClose($params)
- {
- $order_goods_id = $params[ 'order_goods_id' ];
- $order_id = $params[ 'order_id' ];
- $trade_type = $params[ 'trade_type' ];
- $create_card_id = $params['create_card_id'] ?? '';
- $refund_status = $params['refund_status'];
- if(!empty($create_card_id)){
- $create_card_id = explode(',', $create_card_id);
- $member_oncecard_model = new MemberOnceCard();
- $member_oncecard_model->memberOncecardClose($create_card_id);
- }
- //todo 考虑退次卡
- $result = event('CashierTradeClose', $params, true);
- if (empty($result)) {
- switch ( $trade_type ) {
- case 'oncecard'://卡项
- break;
- case 'service'://服务商品
- break;
- case ''://实物商品
- break;
- }
- return $this->success();
- } else {
- return $result;
- }
- }
- }
|