orderSn.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629
  1. <?php
  2. namespace common\components;
  3. use biz\shop\classes\ShopClass;
  4. use biz\sj\classes\CashSnClass;
  5. use bizGhs\book\classes\BookSnClass;
  6. use bizGhs\clear\classes\ClearRefundSnClass;
  7. use bizGhs\custom\classes\CustomRechargeSnClass;
  8. use bizGhs\express\classes\GhsExpressSnClass;
  9. use bizGhs\ghs\classes\GhsRechargeSnClass;
  10. use bizGhs\live\classes\LiveOrderSnClass;
  11. use bizGhs\order\classes\GiveSnClass;
  12. use bizGhs\order\classes\OrderClass;
  13. use bizGhs\order\classes\OrderMergeSnClass;
  14. use bizHd\cg\classes\AcceptSnClass;
  15. use bizHd\cg\classes\CgMergeSnClass;
  16. use bizHd\cg\classes\CgRefundSnClass;
  17. use bizHd\common\classes\MobileSnClass;
  18. use bizHd\express\classes\ExpressSnClass;
  19. use bizHd\goods\classes\GoodsCgSnClass;
  20. use bizHd\goods\classes\GoodsSnClass;
  21. use bizHd\ljh\classes\LjhSnClass;
  22. use bizHd\order\classes\ScanPayRefundSnClass;
  23. use bizHd\order\classes\ScanPaySnClass;
  24. use bizHd\order\classes\SettleSnClass;
  25. use bizHd\part\classes\PartSnClass;
  26. use bizHd\pd\classes\PdGoodsSnClass;
  27. use bizHd\purchase\classes\PurchaseClearSnClass;
  28. use biz\recharge\classes\RechargeSnClass;
  29. use bizGhs\check\classes\CheckSnClass;
  30. use bizGhs\order\classes\OrderSnClass;
  31. use bizGhs\order\classes\PurchaseSnClass;
  32. use bizHd\px\classes\PxApplySnClass;
  33. use bizHd\refund\classes\HdRefundSnClass;
  34. use bizHd\work\classes\WorkSnClass;
  35. use bizMall\renew\classes\RenewSnClass;
  36. use Yii;
  37. use yii\imagine\Image;
  38. //订单号生成 ssh 2021.1.19
  39. class orderSn
  40. {
  41. public static function getGhsOrderMergeId($data)
  42. {
  43. $data['id'] = null;
  44. $data['salt'] = $data['salt'] ?? stringUtil::charsShuffleLowerCase(10);
  45. $respond = OrderMergeSnClass::add($data);
  46. $id = $respond['id'] ?? 0;
  47. if (empty($id)) {
  48. util::fail('单号没有生成');
  49. }
  50. return $id;
  51. }
  52. public static function getCgMergeId($data)
  53. {
  54. $data['id'] = null;
  55. $data['salt'] = $data['salt'] ?? stringUtil::charsShuffleLowerCase(10);
  56. $respond = CgMergeSnClass::add($data);
  57. $id = $respond['id'] ?? 0;
  58. if (empty($id)) {
  59. util::fail('单号没有生成');
  60. }
  61. return $id;
  62. }
  63. public static function getGhsExpressSn($data)
  64. {
  65. $prefix = 'EX_CS';
  66. if (getenv('YII_ENV', 'local') == 'production') {
  67. $prefix = 'EX';
  68. }
  69. $data['id'] = null;
  70. $respond = GhsExpressSnClass::add($data);
  71. $id = $respond['id'] ?? 0;
  72. if (empty($id)) {
  73. util::fail('单号没有生成');
  74. }
  75. return $prefix . $id;
  76. }
  77. public static function getExpressSn($data)
  78. {
  79. $prefix = 'EX_CS';
  80. if (getenv('YII_ENV', 'local') == 'production') {
  81. $prefix = 'EX';
  82. }
  83. $data['id'] = null;
  84. $respond = ExpressSnClass::add($data);
  85. $id = $respond['id'] ?? 0;
  86. if (empty($id)) {
  87. util::fail('单号没有生成');
  88. }
  89. return $prefix . $id;
  90. }
  91. //客户叫供货商帮忙充值订单号 ssh 20240309
  92. public static function getGhsRechargeSn()
  93. {
  94. $prefix = 'GRS_CS';
  95. if (getenv('YII_ENV', 'local') == 'production') {
  96. $prefix = 'GRS';
  97. }
  98. $respond = GhsRechargeSnClass::add(['id' => null]);
  99. $id = $respond['id'] ?? 0;
  100. if (empty($id)) {
  101. util::fail('单号没有生成');
  102. }
  103. return $prefix . $id;
  104. }
  105. //供货商的客户充值订单号 ssh 20240309
  106. public static function getGhsCustomRechargeSn()
  107. {
  108. $prefix = 'CRS_CS';
  109. if (getenv('YII_ENV', 'local') == 'production') {
  110. $prefix = 'CRS';
  111. }
  112. $respond = CustomRechargeSnClass::add(['id' => null]);
  113. $id = $respond['id'] ?? 0;
  114. if (empty($id)) {
  115. util::fail('单号没有生成');
  116. }
  117. return $prefix . $id;
  118. }
  119. public static function getAcceptSn()
  120. {
  121. $prefix = 'ACC_CS';
  122. if (getenv('YII_ENV', 'local') == 'production') {
  123. $prefix = 'ACC';
  124. }
  125. $respond = AcceptSnClass::add(['id' => null]);
  126. $id = $respond['id'] ?? 0;
  127. if (empty($id)) {
  128. util::fail('单号没有生成');
  129. }
  130. return $prefix . $id;
  131. }
  132. public static function getGiveSn()
  133. {
  134. $prefix = 'GIV_CS';
  135. if (getenv('YII_ENV', 'local') == 'production') {
  136. $prefix = 'GIV';
  137. }
  138. $respond = GiveSnClass::add(['id' => null]);
  139. $id = $respond['id'] ?? 0;
  140. if (empty($id)) {
  141. util::fail('单号没有生成');
  142. }
  143. return $prefix . $id;
  144. }
  145. //供货商订单号生成 ssh 2021.1.19
  146. public static function getGhsOrderSn($params = [])
  147. {
  148. $prefix = 'XSD_CS';
  149. if (getenv('YII_ENV', 'local') == 'production') {
  150. $prefix = 'XSD';
  151. }
  152. $params['id'] = null;
  153. $respond = OrderSnClass::add($params);
  154. $id = $respond['id'] ?? 0;
  155. if (empty($id)) {
  156. util::fail('订单号没有生成');
  157. }
  158. return $prefix . $id;
  159. }
  160. //零售商订单号生成 ssh 2021.1.19
  161. public static function getOrderSn()
  162. {
  163. $prefix = 'KD_CS';
  164. if (getenv('YII_ENV', 'local') == 'production') {
  165. $prefix = 'KD';
  166. }
  167. $respond = \bizHd\order\classes\OrderSnClass::add(['id' => null]);
  168. $id = $respond['id'] ?? 0;
  169. if (empty($id)) {
  170. util::fail('订单号没有生成');
  171. }
  172. return $prefix . $id;
  173. }
  174. public static function getScanPaySn($params)
  175. {
  176. $params['id'] = null;
  177. $prefix = 'SC_CS';
  178. if (getenv('YII_ENV', 'local') == 'production') {
  179. $prefix = 'SC';
  180. }
  181. $respond = ScanPaySnClass::add($params);
  182. $id = $respond['id'] ?? 0;
  183. if (empty($id)) {
  184. util::fail('订单号没有生成');
  185. }
  186. return $prefix . $id;
  187. }
  188. //供货商采购单号 ssh 2021.1.19
  189. public static function getScanPayRefundSn($params = [])
  190. {
  191. $params['id'] = null;
  192. $params['addTime'] = date('Y-m-d H:i:s');
  193. $prefix = 'SR_CS';
  194. if (getenv('YII_ENV', 'local') == 'production') {
  195. $prefix = 'SR';
  196. }
  197. $respond = ScanPayRefundSnClass::add($params);
  198. $id = $respond['id'] ?? 0;
  199. if (empty($id)) {
  200. util::fail('退款单号没有生成');
  201. }
  202. return $prefix . $id;
  203. }
  204. public static function getGhsPurchaseSn()
  205. {
  206. $prefix = 'PH_CS';
  207. if (getenv('YII_ENV', 'local') == 'production') {
  208. $prefix = 'PH';
  209. }
  210. $respond = PurchaseSnClass::add(['id' => null]);
  211. $id = $respond['id'] ?? 0;
  212. if (empty($id)) {
  213. util::fail('采购单号没有生成');
  214. }
  215. return $prefix . $id;
  216. }
  217. //供货商盘点单号 ssh 2021.1.19
  218. public static function getGhsCheckSn()
  219. {
  220. $prefix = 'PD_CS';
  221. if (getenv('YII_ENV', 'local') == 'production') {
  222. $prefix = 'PD';
  223. }
  224. $respond = CheckSnClass::add(['id' => null]);
  225. $id = $respond['id'] ?? 0;
  226. if (empty($id)) {
  227. util::fail('盘点单号没有生成');
  228. }
  229. return $prefix . $id;
  230. }
  231. public static function getPdGoodsSn()
  232. {
  233. $prefix = 'PDG_CS';
  234. if (getenv('YII_ENV', 'local') == 'production') {
  235. $prefix = 'PDG';
  236. }
  237. $respond = PdGoodsSnClass::add(['id' => null]);
  238. $id = $respond['id'] ?? 0;
  239. if (empty($id)) {
  240. util::fail('盘点单号没有生成');
  241. }
  242. return $prefix . $id;
  243. }
  244. //零售商采购单号 ssh 2021.1.19
  245. public static function getPurchaseSn($params = [])
  246. {
  247. $prefix = 'CG_CS';
  248. if (getenv('YII_ENV', 'local') == 'production') {
  249. $prefix = 'CG';
  250. }
  251. $params['id'] = null;
  252. $respond = \bizHd\purchase\classes\PurchaseSnClass::add($params);
  253. $id = $respond['id'] ?? 0;
  254. if (empty($id)) {
  255. util::fail('采购单号没有生成');
  256. }
  257. return $prefix . $id;
  258. }
  259. //零售商采购单号 ssh 2021.1.19
  260. public static function getPurchaseClearSn()
  261. {
  262. $prefix = 'CL_CS';
  263. if (getenv('YII_ENV', 'local') == 'production') {
  264. $prefix = 'CL';
  265. }
  266. $respond = PurchaseClearSnClass::add(['id' => null]);
  267. $id = $respond['id'] ?? 0;
  268. if (empty($id)) {
  269. util::fail('单号没有生成');
  270. }
  271. return $prefix . $id;
  272. }
  273. //供货商入库订单号 lqh 2021.1.23
  274. public static function getGhsStockInSn()
  275. {
  276. $prefix = 'RK_CS';
  277. if (getenv('YII_ENV', 'local') == 'production') {
  278. $prefix = 'RK';
  279. }
  280. $respond = \bizGhs\order\classes\StockInSnClass::add(['id' => null]);
  281. $id = $respond['id'] ?? 0;
  282. if (empty($id)) {
  283. util::fail('入库单号没有生成');
  284. }
  285. return $prefix . $id;
  286. }
  287. //供货商出库订单号 lqh 2021.1.23
  288. public static function getGhsStockOutSn()
  289. {
  290. $prefix = 'CK_CS';
  291. if (getenv('YII_ENV', 'local') == 'production') {
  292. $prefix = 'CK';
  293. }
  294. $respond = \bizGhs\order\classes\StockOutSnClass::add(['id' => null]);
  295. $id = $respond['id'] ?? 0;
  296. if (empty($id)) {
  297. util::fail('出库单号没有生成');
  298. }
  299. return $prefix . $id;
  300. }
  301. //充值单号 ssh 2021.2.20
  302. public static function getRechargeSn()
  303. {
  304. $prefix = 'CZ_CS';
  305. if (getenv('YII_ENV', 'local') == 'production') {
  306. $prefix = 'CZ';
  307. }
  308. $respond = RechargeSnClass::add(['id' => null]);
  309. $id = $respond['id'] ?? 0;
  310. if (empty($id)) {
  311. util::fail('充值单号没有生成');
  312. }
  313. return $prefix . $id;
  314. }
  315. //供货商批量结算订单号 ssh 2021.3.15
  316. public static function getGhsOrderClearSn()
  317. {
  318. // BOC batchOrderClear
  319. $prefix = 'BOC_CS';
  320. if (getenv('YII_ENV', 'local') == 'production') {
  321. $prefix = 'BOC';
  322. }
  323. $respond = OrderClass::add(['id' => null]);
  324. $id = $respond['id'] ?? 0;
  325. if (empty($id)) {
  326. util::fail('订单号没有生成');
  327. }
  328. return $prefix . $id;
  329. }
  330. //培训报名订单号 ssh 2021.3.17
  331. public static function getPxApplySn()
  332. {
  333. $prefix = 'PX_CS';
  334. if (getenv('YII_ENV', 'local') == 'production') {
  335. $prefix = 'PX';
  336. }
  337. $respond = PxApplySnClass::add(['id' => null]);
  338. $id = $respond['id'] ?? 0;
  339. if (empty($id)) {
  340. util::fail('订单号没有生成');
  341. }
  342. return $prefix . $id;
  343. }
  344. //获取续费订单号 ssh 2021.3.24
  345. public static function getRenewSn()
  346. {
  347. $prefix = 'RN_CS';
  348. if (getenv('YII_ENV', 'local') == 'production') {
  349. $prefix = 'RN';
  350. }
  351. $respond = RenewSnClass::add(['id' => null]);
  352. $id = $respond['id'] ?? 0;
  353. if (empty($id)) {
  354. util::fail('订单号没有生成');
  355. }
  356. return $prefix . $id;
  357. }
  358. //获取提现订单号 ssh 2021.5.17
  359. public static function getCashSn()
  360. {
  361. $prefix = 'CH_CS';
  362. if (getenv('YII_ENV', 'local') == 'production') {
  363. $prefix = 'CH';
  364. }
  365. $respond = CashSnClass::add(['id' => null]);
  366. $id = $respond['id'] ?? 0;
  367. if (empty($id)) {
  368. util::fail('订单号没有生成');
  369. }
  370. return $prefix . $id;
  371. }
  372. //供货商报损订单号 lqh 2021.6.211
  373. public static function getGhsStockWastageSn()
  374. {
  375. $prefix = 'WT_CS';
  376. if (getenv('YII_ENV', 'local') == 'production') {
  377. $prefix = 'WT';
  378. }
  379. $respond = \bizGhs\order\classes\StockWastageSnClass::add(['id' => null]);
  380. $id = $respond['id'] ?? 0;
  381. if (empty($id)) {
  382. util::fail('报损单号没有生成');
  383. }
  384. return $prefix . $id;
  385. }
  386. public static function getPartSn()
  387. {
  388. $prefix = 'PT_CS';
  389. if (getenv('YII_ENV', 'local') == 'production') {
  390. $prefix = 'PT';
  391. }
  392. $respond = PartSnClass::add(['id' => null]);
  393. $id = $respond['id'] ?? 0;
  394. if (empty($id)) {
  395. util::fail('拆散单号没有生成');
  396. }
  397. return $prefix . $id;
  398. }
  399. //花店销售单的退款单 ssh 20220427
  400. public static function getHdRefundSn()
  401. {
  402. $prefix = 'RF_CS';
  403. if (getenv('YII_ENV', 'local') == 'production') {
  404. $prefix = 'RF';
  405. }
  406. $respond = HdRefundSnClass::add(['id' => null]);
  407. $id = $respond['id'] ?? 0;
  408. if (empty($id)) {
  409. util::fail('退款单号没有生成');
  410. }
  411. return $prefix . $id;
  412. }
  413. //供货商退款订单号 lqh 2021.6.26
  414. public static function getGhsRefundSn()
  415. {
  416. $prefix = 'TK_CS';
  417. if (getenv('YII_ENV', 'local') == 'production') {
  418. $prefix = 'TK';
  419. }
  420. $respond = \bizGhs\order\classes\RefundSnClass::add(['id' => null]);
  421. $id = $respond['id'] ?? 0;
  422. if (empty($id)) {
  423. util::fail('退款单号没有生成');
  424. }
  425. return $prefix . $id;
  426. }
  427. //零售采购单的退款单 ssh 20219628
  428. public static function getCgRefundSn()
  429. {
  430. $prefix = 'RD_CS';
  431. if (getenv('YII_ENV', 'local') == 'production') {
  432. $prefix = 'RD';
  433. }
  434. $respond = CgRefundSnClass::add(['id' => null]);
  435. $id = $respond['id'] ?? 0;
  436. if (empty($id)) {
  437. util::fail('退款单号没有生成');
  438. }
  439. return $prefix . $id;
  440. }
  441. public static function getClearRefundSn()
  442. {
  443. $prefix = 'RDS_CS';
  444. if (getenv('YII_ENV', 'local') == 'production') {
  445. $prefix = 'RDS';
  446. }
  447. $respond = ClearRefundSnClass::add(['id' => null]);
  448. $id = $respond['id'] ?? 0;
  449. if (empty($id)) {
  450. util::fail('结账退款单号没有生成');
  451. }
  452. return $prefix . $id;
  453. }
  454. //制作单 ssh 20220319
  455. public static function getWorkSn()
  456. {
  457. $prefix = 'WK_CS';
  458. if (getenv('YII_ENV', 'local') == 'production') {
  459. $prefix = 'WK';
  460. }
  461. $respond = WorkSnClass::add(['id' => null]);
  462. $id = $respond['id'] ?? 0;
  463. if (empty($id)) {
  464. util::fail('单号没有生成');
  465. }
  466. return $prefix . $id;
  467. }
  468. //盆栽采购订单号 ssh 20220405
  469. public static function getGoodsCgSn()
  470. {
  471. $prefix = 'GC_CS';
  472. if (getenv('YII_ENV', 'local') == 'production') {
  473. $prefix = 'GC';
  474. }
  475. $respond = GoodsCgSnClass::add(['id' => null]);
  476. $id = $respond['id'] ?? 0;
  477. if (empty($id)) {
  478. util::fail('单号没有生成');
  479. }
  480. return $prefix . $id;
  481. }
  482. //商品有效编号1-开头 ssh 20220405
  483. public static function getGoodsSn($data)
  484. {
  485. $mainId = $data['mainId'] ?? 0;
  486. $shopId = $data['shopId'] ?? 0;
  487. $info = GoodsSnClass::getByCondition(['mainId' => $mainId], true, 'sn DESC', 'id,sn');
  488. if (empty($info)) {
  489. $sn = 1;
  490. } else {
  491. $sn = $info->sn ?? 1;
  492. $sn++;
  493. }
  494. $respond = GoodsSnClass::add(['id' => null, 'mainId' => $mainId, 'shopId' => $shopId, 'sn' => $sn]);
  495. if (empty($respond)) {
  496. util::fail('商品编号生成失败');
  497. }
  498. return $sn;
  499. }
  500. //二批采购退款 ssh 20220909
  501. public static function getGhsCgRefundSn()
  502. {
  503. $prefix = 'GCRD_CS';
  504. if (getenv('YII_ENV', 'local') == 'production') {
  505. $prefix = 'GCRD';
  506. }
  507. $respond = \bizGhs\cg\classes\CgRefundSnClass::add(['id' => null]);
  508. $id = $respond['id'] ?? 0;
  509. if (empty($id)) {
  510. util::fail('单号没有生成');
  511. }
  512. return $prefix . $id;
  513. }
  514. //结账编号 ssh 20220919
  515. public static function getSettleSn()
  516. {
  517. $prefix = 'SL_CS';
  518. if (getenv('YII_ENV', 'local') == 'production') {
  519. $prefix = 'SL';
  520. }
  521. $respond = SettleSnClass::add(['id' => null]);
  522. $id = $respond['id'] ?? 0;
  523. if (empty($id)) {
  524. util::fail('单号没有生成');
  525. }
  526. return $prefix . $id;
  527. }
  528. //生成虚拟手机号 ssh 20230303
  529. public static function getMobileSn()
  530. {
  531. $newMobile = 0;
  532. for ($i = 0; $i <= 999999; $i++) {
  533. $respond = MobileSnClass::add(['id' => null]);
  534. $id = isset($respond['id']) ? (string)$respond['id'] : '';
  535. if (empty($id)) {
  536. util::fail('没有生成手机号');
  537. }
  538. $shop = ShopClass::getByCondition(['mobile' => $id], true);
  539. if (empty($shop)) {
  540. $newMobile = $id;
  541. break;
  542. }
  543. }
  544. if (empty($newMobile)) {
  545. util::fail('生成手机号失败');
  546. }
  547. return $newMobile;
  548. }
  549. //零交会报名单号 ssh 20230303
  550. public static function getLjhApplySn()
  551. {
  552. $prefix = 'LJH_CS';
  553. if (getenv('YII_ENV', 'local') == 'production') {
  554. $prefix = 'LJH';
  555. }
  556. $respond = LjhSnClass::add(['id' => null]);
  557. $id = $respond['id'] ?? 0;
  558. if (empty($id)) {
  559. util::fail('单号没有生成');
  560. }
  561. return $prefix . $id;
  562. }
  563. //预订单活动的编号 ssh 20240609
  564. public static function getBookSn()
  565. {
  566. $respond = BookSnClass::add(['id' => null]);
  567. $id = $respond['id'] ?? 0;
  568. if (empty($id)) {
  569. util::fail('单号没有生成');
  570. }
  571. return $id;
  572. }
  573. public static function getLiveOrderSn()
  574. {
  575. $prefix = 'ZB';
  576. $respond = LiveOrderSnClass::add(['id' => null]);
  577. $id = $respond['id'] ?? 0;
  578. if (empty($id)) {
  579. util::fail('单号没有生成');
  580. }
  581. return $prefix . $id;
  582. }
  583. }