WorkClass.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. $num = $work->num ?? 0;
  44. $mainId = $work->mainId ?? 0;
  45. $workSn = $work->workSn ?? '';
  46. $workId = $work->id ?? 0;
  47. $sjId = $work->sjId ?? 0;
  48. $shopId = $work->shopId ?? 0;
  49. $goodsId = $work->goodsId ?? 0;
  50. $bigNum = $work->bigNum ?? 0;
  51. $smallNum = $work->smallNum ?? 0;
  52. //没有商品生成商品
  53. if (empty($goodsId)) {
  54. $name = $work->name ?? '';
  55. $catId = $work->catId ?? 0;
  56. $date = date("Y-m-d H:i:s");
  57. $goodsData = [
  58. 'mainId' => $mainId,
  59. 'name' => $name,
  60. 'content' => '',
  61. 'createTime' => $date,
  62. 'sjId' => $sjId,
  63. 'mainId' => $mainId,
  64. 'shopId' => $shopId,
  65. 'bigNum' => $bigNum,
  66. 'smallNum' => $smallNum,
  67. 'workId' => $workId,
  68. 'workSn' => $workSn,
  69. ];
  70. if (!empty($catId)) {
  71. $goodsData['catIds'] = [$catId];
  72. }
  73. $goods = GoodsClass::addGoods($goodsData, $work);
  74. $goodsId = $goods->id ?? 0;
  75. }
  76. //库存增加
  77. OrderGoodsClass::addGoodsStockByMakeGoods($workSn, $sjId, $shopId, $mainId, $goodsId, $num);
  78. }
  79. //验证工单 ssh 20220319
  80. public static function valid($work, $mainId)
  81. {
  82. if (empty($work)) {
  83. util::fail('没有找到工单');
  84. }
  85. if (isset($work->mainId) == false || $work->mainId != $mainId) {
  86. util::fail('没有权限');
  87. }
  88. return true;
  89. }
  90. public static function getWorkList($where)
  91. {
  92. $data = self::getList('*', $where);
  93. $list = isset($data['list']) && !empty($data['list']) ? $data['list'] : [];
  94. if (empty($list)) {
  95. return $data;
  96. }
  97. $data['list'] = self::groupBaseInfo($list);
  98. return $data;
  99. }
  100. public static function groupBaseInfo($list)
  101. {
  102. if (empty($list)) {
  103. return $list;
  104. }
  105. foreach ($list as $key => $val) {
  106. $shortCover = $val['cover'] ?? '';
  107. $cover = imgUtil::getPrefix() . 'hhb_small.png';
  108. $bigCover = imgUtil::getPrefix() . 'hhb_small.png';
  109. if (!empty($shortCover)) {
  110. $parse = parse_url(self::groupImg($shortCover));
  111. if (empty($parse['query'])) {
  112. $cover = self::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_110,w_110";
  113. } else {
  114. $cover = self::groupImg($shortCover);
  115. }
  116. $bigCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_700,w_700";
  117. }
  118. $list[$key]['cover'] = $cover;
  119. $list[$key]['bigCover'] = $bigCover;
  120. $list[$key]['shortCover'] = $shortCover;
  121. }
  122. return $list;
  123. }
  124. }