OriginalRepository.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206
  1. <?php
  2. namespace App\Repositories;
  3. use App\Model\GoodsModel;
  4. use App\Model\ShopsModel;
  5. use Hyperf\Database\Model\Builder;
  6. use Hyperf\DbConnection\Db;
  7. use KZ2\Repositories\Model\Repository;
  8. class OriginalRepository extends Repository
  9. {
  10. public function model()
  11. {
  12. return GoodsModel::class;
  13. }
  14. /**
  15. * 只要进入商品详情,下单数和浏览数都加1
  16. * @param $uid
  17. * @return void
  18. */
  19. public function numberOrdersAdd($uid)
  20. {
  21. $goodsInfo = GoodsModel::query()->where('uid', $uid)->first();
  22. $goodsInfo->number_orders += 1;
  23. $goodsInfo->browse += 1;
  24. $goodsInfo->save();
  25. }
  26. /**
  27. * 点赞加1
  28. *
  29. * @param $uid
  30. * @return void
  31. */
  32. public function addLike($uid)
  33. {
  34. GoodsModel::query()->where('uid', $uid)->increment('likes');
  35. }
  36. /**
  37. * 添加商品
  38. *
  39. * @param array $data
  40. * @return bool
  41. */
  42. public function createOne(array $data)
  43. {
  44. $goodsdata = [
  45. 'title' => $data['title'],
  46. 'class_uid' => $data['class_uid'],
  47. 'sort' => $data['sort'],
  48. 'steer_level' => $data['steer_level'],
  49. 'cover' => $data['cover'],
  50. 'status' => $data['status'],
  51. 'coins' => $data['coins'],
  52. 'original_cions' => $data['original_cions'],
  53. 'member_coins' => $data['member_coins'],
  54. 'shops_uid' => $data['shops_uid'],
  55. 'likes' => $data['likes'],
  56. 'browse' => $data['browse'],
  57. 'number_orders' => $data['number_orders'],
  58. 'appraise' => $data['appraise'],
  59. 'introduce' => $data['introduce'],
  60. 'photo_address' => json_encode($data['photo_address']),
  61. 'stock' => $data['stock'],
  62. ];
  63. if ($data['status'] == 2) {
  64. $goodsdata['up_date'] = date('Y-m-d H:i:s');
  65. }
  66. Db::beginTransaction();
  67. $res = GoodsModel::query()->create($goodsdata);
  68. if (!$res) {
  69. Db::rollBack();
  70. return false;
  71. }
  72. $res1 = ShopsModel::query()->where('uid', $data['shops_uid'])->increment('goods_count');
  73. if (!$res1) {
  74. Db::rollBack();
  75. return false;
  76. }
  77. if ($data['status'] == 2) {
  78. $res3 = ShopsModel::query()->where('uid', $data['shops_uid'])->increment('goods_up_count');
  79. if (!$res3) {
  80. Db::rollBack();
  81. return false;
  82. }
  83. }
  84. Db::commit();
  85. return $res;
  86. }
  87. /**
  88. * 修改商品
  89. *
  90. * @param array $data
  91. * @param array $oldGoodsInfo
  92. * @return array|false
  93. */
  94. public function updateOne(array $data,array &$oldGoodsInfo)
  95. {
  96. $goodsInfo = GoodsModel::query()->where('uid', $data['uid'])->first();
  97. if (!$goodsInfo) {
  98. logger('商品不存在');
  99. return false;
  100. }
  101. $oldGoodsInfo = clone $goodsInfo;
  102. $oldGoodsInfo = $oldGoodsInfo->toArray();
  103. if (!empty($data['number_orders'])) {
  104. $goodsInfo->number_orders = $data['number_orders'];
  105. }
  106. if (!empty($data['appraise'])) {
  107. $goodsInfo->appraise = $data['appraise'];
  108. }
  109. if (!empty($data['introduce'])) {
  110. $goodsInfo->introduce = $data['introduce'];
  111. }
  112. if (!empty($data['photo_address'])) {
  113. $goodsInfo->photo_address = json_encode($data['photo_address']);
  114. }
  115. if (!empty($data['stock'])) {
  116. $goodsInfo->stock = $data['stock'];
  117. }
  118. if (!empty($data['shops_uid'])) {
  119. $goodsInfo->shops_uid = $data['shops_uid'];
  120. }
  121. if (!empty($data['likes'])) {
  122. $goodsInfo->likes = $data['likes'];
  123. }
  124. if (!empty($data['browse'])) {
  125. $goodsInfo->browse = $data['browse'];
  126. }
  127. if (!empty($data['title'])) {
  128. $goodsInfo->title = $data['title'];
  129. }
  130. if (!empty($data['class_uid'])) {
  131. $goodsInfo->class_uid = $data['class_uid'];
  132. }
  133. if (!empty($data['sort'])) {
  134. $goodsInfo->sort = $data['sort'];
  135. }
  136. if (!empty($data['status'])) {
  137. $goodsInfo->status = $data['status'];
  138. }
  139. if (!empty($data['coins'])) {
  140. $goodsInfo->coins = $data['coins'];
  141. }
  142. if (!empty($data['original_cions'])) {
  143. $goodsInfo->original_cions = $data['original_cions'];
  144. }
  145. if (!empty($data['member_coins'])) {
  146. $goodsInfo->member_coins = $data['member_coins'];
  147. }
  148. if (!empty($data['steer_level'])) {
  149. $goodsInfo->steer_level = $data['steer_level'];
  150. }
  151. if (!empty($data['cover'])) {
  152. $goodsInfo->cover = $data['cover'];
  153. }
  154. Db::beginTransaction();
  155. $res = $goodsInfo->save();
  156. if (!$res) {
  157. Db::rollBack();
  158. return false;
  159. }
  160. // 下架
  161. if ($goodsInfo['status'] == 2 && $data['status'] != 2) {
  162. $res1 = ShopsModel::query()->where('uid', $data['shops_uid'])->decrement('goods_up_count');
  163. if ($res1) {
  164. Db::rollBack();
  165. return false;
  166. }
  167. }
  168. Db::commit();
  169. return $goodsInfo->toArray();
  170. }
  171. }