WorkClass.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. <?php
  2. namespace bizHd\work\classes;
  3. use bizHd\goods\classes\GoodsClass;
  4. use bizHd\order\classes\OrderGoodsClass;
  5. use common\components\imgUtil;
  6. use common\components\util;
  7. use bizHd\base\classes\BaseClass;
  8. class WorkClass extends BaseClass
  9. {
  10. public static $baseFile = '\bizHd\work\models\Work';
  11. const STATUS_UN_COMPLETE = 0;
  12. const STATUS_COMPLETE = 1;
  13. const STATUS_CANCEL = 2;
  14. //锁定工单 ssh 20220320
  15. public static function lock($work)
  16. {
  17. $work->stockLock = 1;
  18. $work->save();
  19. WorkItemClass::lock($work);
  20. }
  21. //取消工单
  22. public static function cancel($work)
  23. {
  24. if ($work->status == self::STATUS_COMPLETE) {
  25. util::fail('订单已完成');
  26. }
  27. if ($work->status == self::STATUS_CANCEL) {
  28. util::fail('订单已取消');
  29. }
  30. if (isset($work->orderSn) && !empty($work->orderSn)) {
  31. util::fail('此工单有订单,请通过订单取消');
  32. }
  33. //取消锁定,释放库存
  34. WorkItemClass::cancelLock($work);
  35. $work->status = self::STATUS_CANCEL;
  36. $work->save();
  37. }
  38. //完成工单 ssh 20220320
  39. public static function finish($work)
  40. {
  41. $work->status = self::STATUS_COMPLETE;
  42. $work->save();
  43. WorkItemClass::wastage($work);
  44. $num = $work->num ?? 0;
  45. $mainId = $work->mainId ?? 0;
  46. $workSn = $work->workSn ?? '';
  47. $workId = $work->id ?? 0;
  48. $sjId = $work->sjId ?? 0;
  49. $shopId = $work->shopId ?? 0;
  50. $goodsId = $work->goodsId ?? 0;
  51. $bigNum = $work->bigNum ?? 0;
  52. $smallNum = $work->smallNum ?? 0;
  53. //没有商品生成商品
  54. if (empty($goodsId)) {
  55. $name = $work->name ?? '';
  56. $catId = $work->catId ?? 0;
  57. $date = date("Y-m-d H:i:s");
  58. $goodsData = [
  59. 'mainId' => $mainId,
  60. 'name' => $name,
  61. 'content' => '',
  62. 'createTime' => $date,
  63. 'sjId' => $sjId,
  64. 'mainId' => $mainId,
  65. 'shopId' => $shopId,
  66. 'bigNum' => $bigNum,
  67. 'smallNum' => $smallNum,
  68. 'workId' => $workId,
  69. 'workSn' => $workSn,
  70. 'flower' => 1,
  71. ];
  72. if (!empty($catId)) {
  73. $goodsData['catIds'] = [$catId];
  74. }
  75. $goods = GoodsClass::addGoods($goodsData, $work);
  76. $goodsId = $goods->id ?? 0;
  77. }
  78. //库存增加
  79. OrderGoodsClass::addGoodsStockByMakeGoods($workSn, $sjId, $shopId, $mainId, $goodsId, $num);
  80. }
  81. //验证工单 ssh 20220319
  82. public static function valid($work, $mainId)
  83. {
  84. if (empty($work)) {
  85. util::fail('没有找到工单');
  86. }
  87. if (isset($work->mainId) == false || $work->mainId != $mainId) {
  88. util::fail('没有权限');
  89. }
  90. return true;
  91. }
  92. public static function getWorkList($where)
  93. {
  94. $data = self::getList('*', $where);
  95. $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
  96. if (empty($list)) {
  97. return $data;
  98. }
  99. $data['list'] = self::groupBaseInfo($list);
  100. return $data;
  101. }
  102. public static function groupBaseInfo($list)
  103. {
  104. if (empty($list)) {
  105. return $list;
  106. }
  107. foreach ($list as $key => $val) {
  108. $shortCover = $val['cover'] ?? '';
  109. $cover = imgUtil::getPrefix() . 'hhb_small.png';
  110. $bigCover = imgUtil::getPrefix() . 'hhb_small.png';
  111. if (!empty($shortCover)) {
  112. $parse = parse_url(self::groupImg($shortCover));
  113. if (empty($parse['query'])) {
  114. $cover = self::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_110,w_110";
  115. } else {
  116. $cover = self::groupImg($shortCover);
  117. }
  118. $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
  119. }
  120. $list[$key]['cover'] = $cover;
  121. $list[$key]['bigCover'] = $bigCover;
  122. $list[$key]['shortCover'] = $shortCover;
  123. }
  124. return $list;
  125. }
  126. }