From 9568df3f2a0169d7cce679c9b1d6cbabcb080cd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=AF=E7=AB=8B?= Date: Fri, 26 Mar 2021 16:26:07 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/data/service/GoodsService.php | 82 +++++++++++++++---------------- app/data/service/OrderService.php | 16 +++--- 2 files changed, 49 insertions(+), 49 deletions(-) diff --git a/app/data/service/GoodsService.php b/app/data/service/GoodsService.php index 0c8be413d..b0cd9f64e 100644 --- a/app/data/service/GoodsService.php +++ b/app/data/service/GoodsService.php @@ -13,6 +13,17 @@ use think\admin\Service; class GoodsService extends Service { + /** + * 获取商品标签数据 + * @return array + */ + public function getMarkData(): array + { + $map = ['status' => 1]; + $query = $this->app->db->name('ShopGoodsMark'); + return $query->where($map)->order('sort desc,id desc')->column('name'); + } + /** * 获取分类数据 * @param string $type 数据格式 arr2tree | arr2table @@ -29,14 +40,39 @@ class GoodsService extends Service } /** - * 获取商品标签数据 + * 获取分类数据 + * @param boolean $simple 简化数据 * @return array */ - public function getMarkData(): array + public function getCateData($simple = true): array { - $map = ['status' => 1]; - $query = $this->app->db->name('ShopGoodsMark'); - return $query->where($map)->order('sort desc,id desc')->column('name'); + $map = ['status' => 1, 'deleted' => 0]; + $cates = $this->app->db->name('ShopGoodsCate')->where($map)->column('id,pid,name', 'id'); + foreach ($cates as $cate) if (isset($cates[$cate['pid']])) $cates[$cate['id']]['parent'] =& $cates[$cate['pid']]; + foreach ($cates as $key => $cate) { + $id = $cate['id']; + $cates[$id]['ids'][] = $cate['id']; + $cates[$id]['names'][] = $cate['name']; + while (isset($cate['parent']) && $cate = $cate['parent']) { + $cates[$id]['ids'][] = $cate['id']; + $cates[$id]['names'][] = $cate['name']; + } + $cates[$id]['ids'] = array_reverse($cates[$id]['ids']); + $cates[$id]['names'] = array_reverse($cates[$id]['names']); + if ($simple && count($cates[$id]['names']) !== $this->getCateMax()) { + unset($cates[$key]); + } + } + return $cates; + } + + /** + * 最大分类等级 + * @return integer + */ + public function getCateMax(): int + { + return 3; } /** @@ -105,40 +141,4 @@ class GoodsService extends Service return $data; } - /** - * 获取分类数据 - * @param boolean $simple 简化数据 - * @return array - */ - public function getCateData($simple = true): array - { - $map = ['status' => 1, 'deleted' => 0]; - $cates = $this->app->db->name('ShopGoodsCate')->where($map)->column('id,pid,name', 'id'); - foreach ($cates as $cate) if (isset($cates[$cate['pid']])) $cates[$cate['id']]['parent'] =& $cates[$cate['pid']]; - foreach ($cates as $key => $cate) { - $id = $cate['id']; - $cates[$id]['ids'][] = $cate['id']; - $cates[$id]['names'][] = $cate['name']; - while (isset($cate['parent']) && $cate = $cate['parent']) { - $cates[$id]['ids'][] = $cate['id']; - $cates[$id]['names'][] = $cate['name']; - } - $cates[$id]['ids'] = array_reverse($cates[$id]['ids']); - $cates[$id]['names'] = array_reverse($cates[$id]['names']); - if ($simple && count($cates[$id]['names']) !== $this->getCateMax()) { - unset($cates[$key]); - } - } - return $cates; - } - - /** - * 最大分类等级 - * @return integer - */ - public function getCateMax(): int - { - return 3; - } - } \ No newline at end of file diff --git a/app/data/service/OrderService.php b/app/data/service/OrderService.php index 158bf75de..7243201b1 100644 --- a/app/data/service/OrderService.php +++ b/app/data/service/OrderService.php @@ -74,7 +74,7 @@ class OrderService extends Service /** * 刷新用户入会礼包 - * @param integer $uid + * @param integer $uid 用户UID * @return integer * @throws \think\db\exception\DbException */ @@ -82,17 +82,16 @@ class OrderService extends Service { // 检查是否购买入会礼包 $query = $this->app->db->table('shop_order a')->join('shop_order_item b', 'a.order_no=b.order_no'); - $count = $query->where("a.uid={$uid} and a.status>=4 and a.payment_status=1 and b.vip_entry>0")->count(); - $buyVipEntry = $count > 0 ? 1 : 0; + $entry = $query->where("a.uid={$uid} and a.status>=4 and a.payment_status=1 and b.vip_entry>0")->count() ? 1 : 0; // 用户最后支付时间 $query = $this->app->db->name('ShopOrder'); - $buyLastMap = [['uid', '=', $uid], ['status', '>=', 4], ['payment_status', '=', 1]]; - $buyLastDate = $query->where($buyLastMap)->order('payment_datetime desc')->value('payment_datetime'); + $lastMap = [['uid', '=', $uid], ['status', '>=', 4], ['payment_status', '=', 1]]; + $lastDate = $query->where($lastMap)->order('payment_datetime desc')->value('payment_datetime'); // 更新用户支付信息 $this->app->db->name('DataUser')->where(['id' => $uid])->update([ - 'buy_vip_entry' => $buyVipEntry, 'buy_last_date' => $buyLastDate, + 'buy_vip_entry' => $entry, 'buy_last_date' => $lastDate, ]); - return $buyVipEntry; + return $entry; } /** @@ -126,6 +125,7 @@ class OrderService extends Service */ public function buildData(array &$data = [], $from = true): array { + if (empty($data)) return $data; // 关联发货信息 $nobs = array_unique(array_column($data, 'order_no')); $trucks = $this->app->db->name('ShopOrderSend')->whereIn('order_no', $nobs)->column('*', 'order_no'); @@ -135,7 +135,7 @@ class OrderService extends Service $items = $query->withoutField('id,uid,status,deleted,create_at')->whereIn('order_no', $nobs)->select()->toArray(); // 关联用户数据 $fields = 'phone,username,nickname,headimg,status,vip_code,vip_name'; - UserAdminService::instance()->buildByUid($data, 'uid', 'user', $fields); + if ($data) UserAdminService::instance()->buildByUid($data, 'uid', 'user', $fields); if ($from) UserAdminService::instance()->buildByUid($data, 'puid1', 'from', $fields); foreach ($data as &$vo) { [$vo['sales'], $vo['truck'], $vo['items']] = [0, $trucks[$vo['order_no']] ?? [], []];