| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- <?php
- namespace addons\Happiness\common\service;
- use addons\Happiness\common\logic\order\OrderLogic;
- use addons\Happiness\common\models\HappinessCashierOrder;
- use addons\Happiness\common\models\HappinessCashierOrderDetail;
- use addons\Happiness\common\models\HappinessClerk;
- use addons\Happiness\common\models\HappinessClerkLog;
- use addons\Happiness\common\models\HappinessStore;
- use addons\Happiness\common\models\HappinessStoreGoods;
- use common\enums\StatusEnum;
- use common\helpers\ApiCode;
- use common\enums\AddonsEnum;
- use common\models\goods\Goods;
- use common\models\user\User;
- use yii\helpers\Json;
- use Exception;
- use Money\Exchange;
- use Swoole\Http\Status;
- use Yii;
- class CashierService extends BaseService
- {
- //创建订单商品详情
- public function createDetail($id, $data)
- {
- $t=Yii::$app->db->beginTransaction();
- try {
- $order = HappinessCashierOrder::find()->where(['id' => $id])->asArray()->one();
- $order_detail = [];
- foreach ($data as $key => $value) {
- $order_detail[] = [
- 'attr_id' => $value['id'],
- 'num' => $value['buy_num'],
- ];
- }
- $money = $order['pay_money'];
- $goods_price=bcdiv($money,count($order_detail),2);
- $res = HappinessCashierOrderDetail::batchDataSave($order_detail, [
- 'cashier_order_id' => $id,
- 'mall_id' => $order['mall_id'],
- 'store_id' => $order['store_id'],
- 'user_id' => $order['user_id'],
- 'pay_money' => $goods_price
- ]);
- if (!$res) throw new Exception(HappinessCashierOrderDetail::getStaticError());
- $form = [];
- $form['id'] = $order['id'];
- $form['mall_id'] = $order['mall_id'];
- $form['store_id'] = $order['store_id'];
- $form['user_id'] = $order['user_id'];
- $form['price'] = $order['pay_money'];
- $form['parent_id'] = 0;
- $form['type'] = 2;
-
- $details=HappinessCashierOrderDetail::find()->where(['cashier_order_id' => $id])->asArray()->all();
- $total=array_sum(array_column($details,'goods_price'));
- $order['goods_price']=$total;
- $order['detail']=$details;
- (new OrderLogic)->setStoreCommission($form, $order);
-
- $model = HappinessCashierOrder::find()->where(['id' => $id])->one();
- $model->money = array_sum(array_column($details,'original_goods_price'));
- $model->save();
- //发送佣金
- (new CommissionService())->send($order,0);
- //养老金
- (new PensionService())->record($order,0);
- //pv值
- $store_order['store_id']=$order['store_id'];
- (new PvService)->send($order,0,$store_order);
- (new WeightService())->record($order,0);
- $t->commit();
- return true;
- } catch (Exception $e) {
- $this->error($e->getMessage());
- $t->rollBack();
- return false;
- }
- }
-
- public function settle($id)
- {
- try {
- $order = HappinessCashierOrder::findOne($id);
- $form = [];
- $form['id'] = $order['id'];
- $form['mall_id'] = $order['mall_id'];
- $form['store_id'] = $order['store_id'];
- $form['user_id'] = $order['user_id'];
- $form['price'] = $order['pay_money'];
- $form['parent_id'] = 0;
- $form['type'] = 2;
- (new OrderLogic)->frozeCommission($form, $order);
- //发送佣金
- (new CommissionService())->send($order,1);
- //养老金
- (new PensionService())->record($order,1);
- //pv值
- $store_order['store_id']=$order['store_id'];
- (new PvService)->send($order,1,$store_order);
- //返还提货券
- (new VoucherService())->returnOrderVoucherCashier($order['id']);
- (new WeightService())->record($order,1);
- return true;
- } catch (Exception $e) {
- $this->error($e->getMessage());
- return false;
- }
-
- }
- }
|