OrderPayDataForm.php 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675
  1. <?php
  2. /**
  3. * 重庆赤晓店信息科技有限公司
  4. * https://www.chixiaodian.com
  5. * Copyright (c) 2023 赤店商城 All rights reserved.
  6. */
  7. namespace app\modules\alliance\models\purchase\order;
  8. use app\constants\OptionSetting;
  9. use app\jobs\CreatedStbzOrderTranJob;
  10. use app\models\AccountLog;
  11. use app\models\Admin;
  12. use app\models\CloudGoodsBind;
  13. use app\models\common\CommonOrder;
  14. use app\models\Goods;
  15. use app\models\GoodsBook;
  16. use app\models\Option;
  17. use app\models\Order;
  18. use app\models\OrderDetail;
  19. use app\models\OrderTransit;
  20. use app\models\OrderUnion;
  21. use app\models\Purchase;
  22. use app\models\SaasUser;
  23. use app\models\Store;
  24. use app\models\StoreCloud;
  25. use app\models\StoreShareMoney;
  26. use app\models\Supplier;
  27. use app\models\User;
  28. use app\models\VerifyCardLog;
  29. use app\models\VerifyCardSale;
  30. use app\modules\admin\models\SupplierForm;
  31. use app\modules\client\models\OrderComplete;
  32. use app\modules\client\models\v1\LoginForm;
  33. use app\modules\client\models\v1\ShareMoneyForm;
  34. use app\utils\Alipay\Alipay;
  35. use app\utils\Alipay\AlipayProfit;
  36. use app\utils\CloudPrint;
  37. use app\utils\OrderNo;
  38. use app\utils\Share\BonusPool;
  39. use app\utils\Wechat\WechatNewPay;
  40. use app\utils\Wechat\WechatPay;
  41. use ByteDance\ByteDance;
  42. use yii\base\Model;
  43. use yii\helpers\Json;
  44. use app\utils\Delivery\Delivery;
  45. use app\modules\alliance\models\purchase\order\OrderSubmitPreviewForm;
  46. use app\models\PurchaseOrder;
  47. use app\models\PurchaseOrderDetail;
  48. use app\modules\alliance\models\AllianceOrderComplete;
  49. use app\modules\admin\models\MerchantForm;
  50. use app\utils\Wechat\WechatBusinessPay;
  51. /**
  52. * @property User $user
  53. * @property Order $order
  54. */
  55. class OrderPayDataForm extends Model
  56. {
  57. public $store_id;
  58. public $order_id;
  59. public $order_id_list;
  60. public $pay_type;
  61. public $user;
  62. public $form_id;
  63. public $parent_user_id;
  64. public $condition;
  65. public $_from = 'mini';
  66. public $is_combine;
  67. /** @var Wechat $wechat */
  68. private $wechat;
  69. private $wechatPay;
  70. private $order;
  71. const PAY_FROM_APP = 'app';
  72. const PAY_FROM_MINI = 'mini';
  73. const PAY_FROM_H5 = 'h5';
  74. const PAY_FROM_OFFICIAL = 'official';
  75. public function rules()
  76. {
  77. return [
  78. [['pay_type', '_from'], 'required'],
  79. [['_from'], 'in', 'range' => ['app', 'mini', 'h5', 'official']],
  80. [['pay_type'], 'in', 'range' => [1, 2, 3]], // 'WECHAT_PAY', 'ALIPAY', 'BALANCE_PAY',
  81. [['form_id', 'order_id_list', '_from'], 'string'],
  82. ['is_combine', 'default', 'value' => 0],
  83. [['parent_user_id', 'condition', 'order_id', 'is_combine'], 'integer'],
  84. ];
  85. }
  86. public function search()
  87. {
  88. $orderType = OrderNo::ORDER_ALLIANCE_PURCHASE;
  89. $this->wechatPay = \Yii::$app->controller->wechatPay;
  90. if (!$this->validate()) {
  91. return [
  92. 'code' => 1,
  93. 'msg' => $this->getErrorSummary(false)[0],
  94. ];
  95. }
  96. if ($this->order_id_list) {
  97. $order_id_list = json_decode($this->order_id_list, true);
  98. if (is_array($order_id_list) && count($order_id_list) == 1) {
  99. $this->order_id = $order_id_list[0];
  100. $this->order_id_list = '';
  101. }
  102. }
  103. $t = \Yii::$app->db->beginTransaction();
  104. if ($this->order_id) { //单个订单付款
  105. $this->order = PurchaseOrder::findOne([
  106. 'id' => $this->order_id,
  107. 'is_delete' => 0,
  108. ]);
  109. //上门安装逻辑
  110. $merchant = new MerchantForm();
  111. $res = $merchant->isNeedInstall($this->order_id, 1);
  112. if ($res['code'] !== 0) {
  113. return $res;
  114. }
  115. if ($this->order->pay_price == 0) {
  116. $this->order->pay_time = time();
  117. $this->order->is_pay = 1;
  118. $this->order->pay_type = 3;
  119. $this->order->trade_status = PurchaseOrder::ORDER_FLOW_NO_SEND;
  120. $this->order->save();
  121. try{
  122. // 支付完成后,相关操作
  123. self::notify($this->order->id);
  124. } catch (\Exception $e) {
  125. $t->rollBack();
  126. return [
  127. 'code' => 1,
  128. 'msg' => '支付失败 ' . $e->getMessage(),
  129. ];
  130. }
  131. $t->commit();
  132. return [
  133. 'code' => 0,
  134. 'msg' => '支付成功'
  135. ];
  136. }
  137. if (!$this->order) {
  138. $t->rollBack();
  139. return [
  140. 'code' => 1,
  141. 'msg' => '订单不存在',
  142. ];
  143. }
  144. if ($this->order->is_delete == 1 || $this->order->trade_status == PurchaseOrder::ORDER_FLOW_CANCEL) {
  145. $t->rollBack();
  146. return [
  147. 'code' => 1,
  148. 'msg' => '订单已取消',
  149. ];
  150. }
  151. if ($this->order->is_pay == 1 || $this->order->trade_status > -1) {
  152. $t->rollBack();
  153. return [
  154. 'code' => 1,
  155. 'msg' => '订单状态异常',
  156. ];
  157. }
  158. $goods_names = '';
  159. $goods_list = PurchaseOrderDetail::find()->where(['order_id' => $this->order->id, 'is_delete' => 0])->asArray()->all();
  160. foreach ($goods_list as $goods) {
  161. $goods_names .= $goods['goods_name'] . ';';
  162. }
  163. $goods_names = mb_substr($goods_names, 0, 32, 'utf-8');
  164. $this->order->order_union_id = 0;
  165. if (!$this->order->save()) {
  166. $t->rollBack();
  167. return [
  168. 'code' => 1,
  169. 'msg' => '订单保存失败'
  170. ];
  171. }
  172. // 余额抵扣支付
  173. // $balance_price = 0;
  174. // if ($this->is_combine) {
  175. // if ($this->user->money >= $this->order->pay_price) {
  176. // $this->pay_type = 3;
  177. // } else {
  178. // $balance_price = $this->user->money;
  179. // $this->order->combine_money = $this->user->money;
  180. // $this->order->is_combine_pay = PurchaseOrder::IS_COMBINE_PAY;
  181. // $this->order->save();
  182. // }
  183. // } else {
  184. // $this->order->combine_money = 0;
  185. // $this->order->is_combine_pay = PurchaseOrder::NOT_COMBINE_PAY;
  186. // $this->order->save();
  187. // }
  188. if ($this->pay_type == 1) {
  189. if ($this->order->pay_price == 0) {
  190. $this->order->is_pay = 1;
  191. $this->order->pay_type = 1;
  192. // if ($this->pay_type == 4) {
  193. // $this->order->pay_type = 4;
  194. // }
  195. $this->order->pay_time = time();
  196. if (!$this->order->save()) {
  197. $t->rollBack();
  198. return [
  199. 'code' => 1,
  200. 'msg' => '支付失败'
  201. ];
  202. }
  203. try{
  204. // 支付完成后,相关操作
  205. self::notify($this->order->id);
  206. } catch (\Exception $e) {
  207. $t->rollBack();
  208. return [
  209. 'code' => 1,
  210. 'msg' => '支付失败 ' . $e->getMessage(),
  211. ];
  212. }
  213. $t->commit();
  214. return [
  215. 'code' => 0,
  216. 'msg' => '0元支付'
  217. ];
  218. }
  219. if ($this->pay_type == 1) {
  220. $balance_price = 0;
  221. // \Yii::error($this->_from);
  222. $result = WechatBusinessPay::orderUnify($this->order, $orderType, $goods_names, 0, false, 0);
  223. if (isset($result['code']) && $result['code'] == 1) {
  224. if ($this->_from == self::PAY_FROM_OFFICIAL) {
  225. $result['wechat_platform_open_id'] = get_user()->wechat_platform_open_id;
  226. $result['h5_auth_link'] = LoginForm::getAuthLink();
  227. }
  228. return $result;
  229. }
  230. // CloudPrint::doPrint($this->order->id, 0, $this->order->store_id);
  231. $t->commit();
  232. return [
  233. 'code' => 0,
  234. 'msg' => 'success',
  235. 'data' => (object)$result['data'],
  236. 'res' => $result['res'],
  237. 'body' => $goods_names
  238. ];
  239. }
  240. if ($this->pay_type == 2) {
  241. if ($this->_from == self::PAY_FROM_MINI) {
  242. if (is_profit_pay('ali')) {
  243. $result = AlipayProfit::mini($this->order, $goods_names, $this->user, '', '', false, 0, $balance_price);
  244. } else {
  245. $result = Alipay::mini($this->order, $goods_names, $this->user, '', '', 0, $balance_price);
  246. }
  247. if (isset($result['code']) && $result['code'] == 1) {
  248. return $result;
  249. }
  250. $t->commit();
  251. return [
  252. 'code' => 0,
  253. 'msg' => 'success',
  254. 'data' => $result['data']['trade_no'],
  255. 'body' => $goods_names
  256. ];
  257. } else {
  258. if (is_profit_pay('ali')) {
  259. $result = AlipayProfit::app($this->order, $goods_names, $this->user, $balance_price);
  260. } else {
  261. $result = Alipay::app($this->order, $goods_names, $this->user, $balance_price);
  262. }
  263. if (isset($result['code']) && $result['code'] == 1) {
  264. $t->commit();
  265. return $result;
  266. }
  267. $t->commit();
  268. return [
  269. 'code' => 0,
  270. 'msg' => 'success',
  271. 'data' => $result['data'],
  272. 'body' => $goods_names
  273. ];
  274. }
  275. }
  276. }
  277. //货到付款和余额支付数据处理
  278. if ($this->pay_type == 3) {
  279. $order = $this->order;
  280. //余额支付 用户余额变动
  281. if ($this->pay_type == 3) {
  282. $order->is_pay = 1;
  283. $order->pay_type = 3;
  284. $order->trade_status = PurchaseOrder::ORDER_FLOW_NO_SEND;
  285. $order->pay_time = time();
  286. if ($order->user_id != get_user_id()) {
  287. $order->pay_user_id = get_user_id();
  288. }
  289. if (!$order->save()) {
  290. $t->rollBack();
  291. return [
  292. 'code' => 1,
  293. 'msg' => '支付失败'
  294. ];
  295. }
  296. }
  297. try{
  298. // 支付完成后,相关操作
  299. $res = self::notify($order->id);
  300. if ($res['code'] !== 0) {
  301. throw new \Exception($res['msg']);
  302. }
  303. } catch (\Exception $e) {
  304. $t->rollBack();
  305. return [
  306. 'code' => 1,
  307. 'msg' => '支付失败 ' . $e->getMessage(),
  308. ];
  309. }
  310. // CloudPrint::doPrint($this->order->id, 0, $this->order->store_id);
  311. $t->commit();
  312. return [
  313. 'code' => 0,
  314. 'msg' => '支付成功',
  315. 'data' => ''
  316. ];
  317. }
  318. } elseif ($this->order_id_list) { //多个订单合并付款
  319. $order_id_list = json_decode($this->order_id_list, true);
  320. if (!$order_id_list) {
  321. $t->rollBack();
  322. return [
  323. 'code' => 1,
  324. 'msg' => '数据错误:订单格式不正确。',
  325. ];
  326. }
  327. $order_list = [];
  328. $total_pay_price = 0;
  329. foreach ($order_id_list as $order_id) {
  330. $order = PurchaseOrder::findOne([
  331. 'id' => $order_id,
  332. 'is_delete' => 0,
  333. ]);
  334. if (!$order) {
  335. $t->rollBack();
  336. return [
  337. 'code' => 1,
  338. 'msg' => '订单不存在',
  339. ];
  340. }
  341. if ($order->is_pay == 1) {
  342. $t->rollBack();
  343. return [
  344. 'code' => 1,
  345. 'msg' => '存在已付款的订单,订单合并支付失败,请到我的订单重新支付。',
  346. ];
  347. }
  348. $order_list[] = $order;
  349. $total_pay_price += doubleval($order->pay_price);
  350. // $this->setReturnData($order);
  351. }
  352. // 余额抵扣支付
  353. $balance_price = 0;
  354. // if ($this->is_combine) {
  355. // if ($this->user->money >= $total_pay_price) {
  356. // $this->pay_type = 3;
  357. // } else {
  358. // $balance_price = $this->user->money;
  359. // $this->order->combine_money = $this->user->money;
  360. // $this->order->is_combine_pay = PurchaseOrder::IS_COMBINE_PAY;
  361. // $this->order->save();
  362. // }
  363. // } else {
  364. // $this->order->combine_money = 0;
  365. // $this->order->is_combine_pay = PurchaseOrder::NOT_COMBINE_PAY;
  366. // $this->order->save();
  367. // }
  368. // 微信支付
  369. if ($this->pay_type == 1) {
  370. $result = WechatBusinessPay::orderUnify($order_list,OrderNo::ORDER_UNION, null, $total_pay_price, false, $balance_price);
  371. if (isset($result['code']) && $result['code'] == 1) {
  372. $t->rollBack();
  373. return $result;
  374. }
  375. // CloudPrint::doPrint($this->order->id, 0, $this->order->store_id);
  376. $t->commit();
  377. return [
  378. 'code' => 0,
  379. 'msg' => 'success',
  380. 'data' => (object)$result['data'],
  381. 'res' => $result['res'],
  382. 'body' => $result['body'],
  383. ];
  384. }
  385. if ($this->pay_type == 2) {
  386. if (is_profit_pay('ali')) {
  387. $result = AlipayProfit::mini($this->order, '', $this->user, '', OrderNo::ORDER_UNION, false, $total_pay_price, $balance_price);
  388. } else {
  389. $result = Alipay::mini($this->order, '', $this->user, '', OrderNo::ORDER_UNION, $total_pay_price, $balance_price);
  390. }
  391. if (isset($result['code']) && $result['code'] == 1) {
  392. return $result;
  393. }
  394. $t->commit();
  395. return [
  396. 'code' => 0,
  397. 'msg' => 'success',
  398. 'data' => $result['data']['trade_no'],
  399. ];
  400. }
  401. //货到付款和余额支付数据处理
  402. if ($this->pay_type == 3) {
  403. //余额支付 用户余额变动
  404. if ($this->pay_type == 3) {
  405. foreach ($order_list as $order) {
  406. $order->is_pay = 1;
  407. $order->pay_type = 3;
  408. $order->trade_status = PurchaseOrder::ORDER_FLOW_NO_SEND;
  409. $order->pay_time = time();
  410. if (!$order->save()) {
  411. $t->rollBack();
  412. return [
  413. 'code' => 1,
  414. 'msg' => '支付失败,数据错误'
  415. ];
  416. }
  417. }
  418. }
  419. try{
  420. $order_ids = [];
  421. foreach ($order_list as $order) {
  422. $order_ids[] = $order->id;
  423. }
  424. // 支付完成后,相关操作
  425. self::notify(0, $order_ids);
  426. } catch (\Exception $e) {
  427. $t->rollBack();
  428. return [
  429. 'code' => 1,
  430. 'msg' => '支付失败 ' . $e->getMessage(),
  431. 'e' => $e->getTrace(),
  432. ];
  433. }
  434. // CloudPrint::doPrint($this->order->id, 0, $this->order->store_id);
  435. //查询订单信息
  436. //var_dump($is_on);
  437. $t->commit();
  438. return [
  439. 'code' => 0,
  440. 'msg' => '订单提交成功'
  441. ];
  442. }
  443. }
  444. }
  445. public static function notify($order_id, $order_ids = []){
  446. // \Yii::error('-----------PurchaseOrder保存失败' . Json::encode($order->getErrors()));
  447. if(count($order_ids) <= 1){
  448. $order_ids = [];
  449. }
  450. $order = PurchaseOrder::findOne($order_id ?: $order_ids);
  451. if ($order) {
  452. $item = \app\models\StoreCloud::findOne(['store_id' => $order->store_id, 'is_delete' => 0, 'is_enable' => 1]);
  453. }
  454. if (empty($item)) {
  455. $item = get_saas_purchase_store_cloud();
  456. }
  457. $form = new MerchantForm();
  458. $form->order_id = $order_id;
  459. $form->type = 1;
  460. $form->token_stroe_cloud_id = $item ? $item->id : 0;
  461. $res = $form->purchaseSetPurchaseOrder($order_ids);
  462. // self::agencyPrice($order_id);
  463. if ($res['code'] === 0) {
  464. if (!empty($res['order_data'])) {
  465. foreach ($res['order_data'] as $index => $order_datum) {
  466. if (!empty($order_datum)) {
  467. $purchase_order = PurchaseOrder::find()->where(['cloud_order_id' => $res['data'][$index]])->asArray()->one();
  468. foreach ($order_datum as $value) {
  469. $purchase = new PurchaseOrder();
  470. $purchase->attributes = $purchase_order;
  471. $purchase->user_id = $purchase_order['user_id'];
  472. $purchase->transaction_id = $purchase_order['transaction_id'];
  473. $purchase->saas_id = $purchase_order['saas_id'];
  474. $purchase->cloud_order_id = $value['id'];
  475. $purchase->cloud_order_no = $value['order_no'];
  476. $purchase->cloud_supplier_id = $value['supplier_id'];
  477. $purchase->express_price = $value['express_price'];
  478. // $purchase->total_price = $value['pay_price'];
  479. // $purchase->pay_price = ($value['pay_price'] + ($value['express_price']));
  480. $purchase->total_price = $value['pay_price'];
  481. $purchase->pay_price = $value['pay_price'];
  482. $result = $purchase->save();
  483. if (!$result) {
  484. return [
  485. 'code' => 1,
  486. 'msg' => implode(';', array_values($purchase->firstErrors))
  487. ];
  488. } else {
  489. PurchaseOrderDetail::updateAll(['is_delete' => 1], ['order_id' => $purchase_order['id']]);
  490. foreach ($value['goods_list'] as $goods) {
  491. // $CloudGoodsBind = CloudGoodsBind::findOne(['cloud_goods_id' => $goods['id'], 'is_delete' => 0]);
  492. $attr = json_decode($goods['attr'], true);
  493. foreach ($attr['attr_list'] as &$attr_list_item) {
  494. $attr_list_item = array_merge($attr_list_item, ['attr_group_name' => '规格']);
  495. }
  496. $PurchaseOrderDetail = new PurchaseOrderDetail();
  497. $PurchaseOrderDetail->order_id = $purchase->id;
  498. $PurchaseOrderDetail->goods_id = $goods['id'];
  499. $PurchaseOrderDetail->goods_name = $goods['name'];
  500. $PurchaseOrderDetail->num = $goods['num'];
  501. $PurchaseOrderDetail->total_price = $attr['wholesale_price'];
  502. $PurchaseOrderDetail->created_at = time();
  503. $PurchaseOrderDetail->attr = json_encode($attr['attr_list']);
  504. $PurchaseOrderDetail->pic = $attr['pic'];
  505. $PurchaseOrderDetail->is_give = intval(($goods['give_goods_id'] > 0));
  506. $PurchaseOrderDetail->save();
  507. }
  508. //上门安装逻辑
  509. $merchant = new MerchantForm();
  510. $res = $merchant->isNeedInstall($purchase->id, 1, true);
  511. if ($res['code'] !== 0) {
  512. return $res;
  513. }
  514. $purchase_order_obj = PurchaseOrder::findOne($purchase_order['id']);
  515. $purchase_order_obj->is_delete = 1;
  516. $purchase_order_obj->save();
  517. $cloud_order = array_merge(['pifa' => 1], $value ?: []);
  518. queue_push(new CreatedStbzOrderTranJob(['data' => $cloud_order]));
  519. }
  520. }
  521. }
  522. }
  523. return [
  524. 'code' => 0,
  525. 'msg' => '成功'
  526. ];
  527. }
  528. } else {
  529. return $res;
  530. }
  531. //单个订单胜天半子
  532. if ($order) {
  533. $cloud_order_id = $order->cloud_order_id;
  534. $supplier_form = new SupplierForm();
  535. $supplier_form->order_id = (string)$cloud_order_id;
  536. $res = $supplier_form->supplierOrderList($order->supplier_id);
  537. debug_log('supplier_order_list' . json_encode($res));
  538. if ($res['code'] === 0) {
  539. $cloud_order = $res['data']['list'][0];
  540. $cloud_order = array_merge(['pifa' => 1], $cloud_order ?: []);
  541. queue_push(new CreatedStbzOrderTranJob(['data' => $cloud_order]));
  542. }
  543. return $res;
  544. } else {
  545. return [
  546. 'code' => 1,
  547. 'msg' => '订单信息错误'
  548. ];
  549. }
  550. }
  551. // //采购商抽佣
  552. // private static function agencyPrice($order_id){
  553. // try {
  554. // $order = PurchaseOrder::find()->where(['id' => $order_id])->asArray()->one();
  555. // $supplier = Supplier::findOne(['cloud_supplier_id' => $order['supplier_id']]);
  556. // $option = Option::get('agency_price_config', 0, 'saas');
  557. // if ($option['value']) {
  558. // $option = json_decode($option['value'], true);
  559. // }
  560. // $province_id = $supplier->province_id;
  561. // $city_id = $supplier->city_id;
  562. // $district_id = $supplier->district_id;
  563. // $city_percent = $option['supplier_city_percent'] ?? 0;
  564. // $district_percent = $option['supplier_district_percent'] ?? 0;
  565. // $province_percent = $option['supplier_province_percent'] ?? 0;
  566. // $rate = 0;
  567. //
  568. // $admin_list = Admin::find()->where(['is_delete' => 0, 'province_id' => $province_id])->andWhere(['>', 'area_level', 0])->asArray()->all();
  569. // $store_user = StoreCloud::findOne(['saas_user_id' => $order['saas_id']]);
  570. // foreach ($admin_list as $item) {
  571. // $price = 0;
  572. // $desc = '';
  573. // if ((int)$item['area_level'] === 3) {
  574. // $price = $order['pay_price'] * ($province_percent / 100) * ($supplier->rate / 100);
  575. // $price = sprintf("%.2f", $price);
  576. // $desc = '商户'. $store_user->name .'订单'. $order['order_no'] .'采购订单-发放 '. $price .'元省代佣金';
  577. // }
  578. // if ((int)$item['area_level'] === 2 && (int)$item['city_id'] === $city_id) {
  579. // $price = $order['pay_price'] * ($city_percent / 100) * ($supplier->rate / 100);
  580. // $price = sprintf("%.2f", $price);
  581. // $desc = '商户'. $store_user->name .'订单'. $order['order_no'] .'采购订单-发放 '. $price .'元省代佣金';
  582. // }
  583. // if ((int)$item['area_level'] === 1 && (int)$item['city_id'] === (int)$city_id && (int)$item['district_id'] === (int)$district_id) {
  584. // $price = $order['pay_price'] * ($district_percent / 100) * ($supplier->rate / 100);
  585. // $price = sprintf("%.2f", $price);
  586. // $desc = '商户'. $store_user->name .'订单'. $order['order_no'] .'采购订单-发放 '. $price .'元省代佣金';
  587. // }
  588. // if (!$price) {
  589. // continue;
  590. // }
  591. // //给用户增加佣金
  592. // $SaasUser = SaasUser::find()->where(['id' => $item['saas_user_id']])->one();
  593. // if ($SaasUser) {
  594. //
  595. // $SaasUser->share_profit = ($SaasUser->share_profit * 1) + ($price * 1);
  596. // $res = $SaasUser->save();
  597. // //增加记录
  598. // if ($res) {
  599. // $form = new StoreShareMoney();
  600. // $form->user_id = $item['saas_user_id'];
  601. // $form->store_id = $order['store_id'];
  602. // $form->profit = $rate;
  603. // $form->total_price = $order['pay_price'];
  604. // $form->desc = $desc;
  605. // $form->order_id = $order_id;
  606. // $form->created_at = time();
  607. // $form->type = 1;
  608. // $form->commission = $price;
  609. // $form->order_type = 1;
  610. // $form->cloud_type = 1;
  611. // $form->status = 1;
  612. // $form->is_send = 1;
  613. // $form->save();
  614. // }
  615. // }
  616. // }
  617. //
  618. //
  619. //
  620. // } catch (\Exception $e) {
  621. // debug_log('抽佣' . $e->getMessage() . $e->getLine());
  622. // \Yii::error($e->getMessage());
  623. // }
  624. // }
  625. //返回数据
  626. private function outPutData($code,$msg,$data=[]){
  627. $putData = [];
  628. $putData['code'] = $code;
  629. $putData['msg'] = $msg;
  630. if($data) $putData['data'] = $data;
  631. if($msg == 'token不能为空'){
  632. $putData['code'] = -1;
  633. }
  634. return $putData;
  635. }
  636. }