| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- <?php
- namespace App\Repositories;
- use App\Model\GoodsModel;
- use App\Model\ShopsModel;
- use Hyperf\Database\Model\Builder;
- use Hyperf\DbConnection\Db;
- use KZ2\Repositories\Model\Repository;
- class OriginalRepository extends Repository
- {
- public function model()
- {
- return GoodsModel::class;
- }
- /**
- * 只要进入商品详情,下单数和浏览数都加1
- * @param $uid
- * @return void
- */
- public function numberOrdersAdd($uid)
- {
- $goodsInfo = GoodsModel::query()->where('uid', $uid)->first();
- $goodsInfo->number_orders += 1;
- $goodsInfo->browse += 1;
- $goodsInfo->save();
- }
- /**
- * 点赞加1
- *
- * @param $uid
- * @return void
- */
- public function addLike($uid)
- {
- GoodsModel::query()->where('uid', $uid)->increment('likes');
- }
- /**
- * 添加商品
- *
- * @param array $data
- * @return bool
- */
- public function createOne(array $data)
- {
- $goodsdata = [
- 'title' => $data['title'],
- 'class_uid' => $data['class_uid'],
- 'sort' => $data['sort'],
- 'steer_level' => $data['steer_level'],
- 'cover' => $data['cover'],
- 'status' => $data['status'],
- 'coins' => $data['coins'],
- 'original_cions' => $data['original_cions'],
- 'member_coins' => $data['member_coins'],
- 'shops_uid' => $data['shops_uid'],
- 'likes' => $data['likes'],
- 'browse' => $data['browse'],
- 'number_orders' => $data['number_orders'],
- 'appraise' => $data['appraise'],
- 'introduce' => $data['introduce'],
- 'photo_address' => json_encode($data['photo_address']),
- 'stock' => $data['stock'],
- ];
- if ($data['status'] == 2) {
- $goodsdata['up_date'] = date('Y-m-d H:i:s');
- }
- Db::beginTransaction();
- $res = GoodsModel::query()->create($goodsdata);
- if (!$res) {
- Db::rollBack();
- return false;
- }
- $res1 = ShopsModel::query()->where('uid', $data['shops_uid'])->increment('goods_count');
- if (!$res1) {
- Db::rollBack();
- return false;
- }
- if ($data['status'] == 2) {
- $res3 = ShopsModel::query()->where('uid', $data['shops_uid'])->increment('goods_up_count');
- if (!$res3) {
- Db::rollBack();
- return false;
- }
- }
- Db::commit();
- return $res;
- }
- /**
- * 修改商品
- *
- * @param array $data
- * @param array $oldGoodsInfo
- * @return array|false
- */
- public function updateOne(array $data,array &$oldGoodsInfo)
- {
- $goodsInfo = GoodsModel::query()->where('uid', $data['uid'])->first();
- if (!$goodsInfo) {
- logger('商品不存在');
- return false;
- }
- $oldGoodsInfo = clone $goodsInfo;
- $oldGoodsInfo = $oldGoodsInfo->toArray();
- if (!empty($data['number_orders'])) {
- $goodsInfo->number_orders = $data['number_orders'];
- }
- if (!empty($data['appraise'])) {
- $goodsInfo->appraise = $data['appraise'];
- }
- if (!empty($data['introduce'])) {
- $goodsInfo->introduce = $data['introduce'];
- }
- if (!empty($data['photo_address'])) {
- $goodsInfo->photo_address = json_encode($data['photo_address']);
- }
- if (!empty($data['stock'])) {
- $goodsInfo->stock = $data['stock'];
- }
- if (!empty($data['shops_uid'])) {
- $goodsInfo->shops_uid = $data['shops_uid'];
- }
- if (!empty($data['likes'])) {
- $goodsInfo->likes = $data['likes'];
- }
- if (!empty($data['browse'])) {
- $goodsInfo->browse = $data['browse'];
- }
- if (!empty($data['title'])) {
- $goodsInfo->title = $data['title'];
- }
- if (!empty($data['class_uid'])) {
- $goodsInfo->class_uid = $data['class_uid'];
- }
- if (!empty($data['sort'])) {
- $goodsInfo->sort = $data['sort'];
- }
- if (!empty($data['status'])) {
- $goodsInfo->status = $data['status'];
- }
- if (!empty($data['coins'])) {
- $goodsInfo->coins = $data['coins'];
- }
- if (!empty($data['original_cions'])) {
- $goodsInfo->original_cions = $data['original_cions'];
- }
- if (!empty($data['member_coins'])) {
- $goodsInfo->member_coins = $data['member_coins'];
- }
- if (!empty($data['steer_level'])) {
- $goodsInfo->steer_level = $data['steer_level'];
- }
- if (!empty($data['cover'])) {
- $goodsInfo->cover = $data['cover'];
- }
- Db::beginTransaction();
- $res = $goodsInfo->save();
- if (!$res) {
- Db::rollBack();
- return false;
- }
- // 下架
- if ($goodsInfo['status'] == 2 && $data['status'] != 2) {
- $res1 = ShopsModel::query()->where('uid', $data['shops_uid'])->decrement('goods_up_count');
- if ($res1) {
- Db::rollBack();
- return false;
- }
- }
- Db::commit();
- return $goodsInfo->toArray();
- }
- }
|