From 709c7f4ab7ab2ca530abc410cae7ea8623a98733 Mon Sep 17 00:00:00 2001 From: monanxiao Date: Sat, 4 Mar 2023 17:33:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=95=86=E5=93=81=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=88=97=E8=A1=A8=E3=80=81=E5=95=86=E5=93=81=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E3=80=81=E5=95=86=E5=93=81=E8=AF=84=E8=AE=BA=E5=90=8E?= =?UTF-8?q?=E5=8F=B0=E9=9B=86=E6=88=90=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/common.php | 34 +++ app/admin/controller/product/Classify.php | 96 +++---- app/admin/controller/product/Label.php | 264 +++++++++++++++++ app/admin/model/StoreProductLabel.php | 51 ++++ app/admin/view/product/Label/add.html | 96 +++++++ app/admin/view/product/Label/edit.html | 188 ++++++++++++ app/admin/view/product/Label/index.html | 200 +++++++++++++ app/admin/view/product/classify/add.html | 319 +++++++++------------ app/admin/view/product/classify/index.html | 181 +++++------- 9 files changed, 1082 insertions(+), 347 deletions(-) create mode 100644 app/admin/controller/product/Label.php create mode 100644 app/admin/model/StoreProductLabel.php create mode 100644 app/admin/view/product/Label/add.html create mode 100644 app/admin/view/product/Label/edit.html create mode 100644 app/admin/view/product/Label/index.html diff --git a/app/admin/common.php b/app/admin/common.php index fd2aa8a..fae15ee 100644 --- a/app/admin/common.php +++ b/app/admin/common.php @@ -9,6 +9,8 @@ use think\facade\Config; use think\facade\Request; use think\facade\Cache; use think\facade\Db; +use app\admin\model\StoreCategory; // 商品分类模型 + //获取后台模块当前登录用户的信息 function get_login_admin($key = "") { @@ -93,6 +95,7 @@ function set_recursion($result, $pid = 0, $level=-1) static $list = array(); static $space = ['','├─','§§├─','§§§§├─','§§§§§§├─']; $level++; + foreach ($result as $k => $v) { if ($v['pid'] == $pid) { if ($pid != 0) { @@ -103,9 +106,40 @@ function set_recursion($result, $pid = 0, $level=-1) set_recursion($result, $v['id'],$level); } } + return $list; } +//读取商品分类节点列表 +function get_product_calss() +{ + $result = StoreCategory::select()->toArray(); + return $result; +} + +//递归排序,用于分类选择 +function set_product_recursion($result, $pid = 0, $level=-1) +{ + /*记录排序后的类别数组*/ + static $list = array(); + static $space = ['','├─','§§├─','§§§§├─','§§§§§§├─']; + $level++; + + foreach ($result as $k => $v) { + if ($v['pid'] == $pid) { + if ($pid != 0) { + $v['cate_name'] = $space[$level] . $v['cate_name']; + } + /*将该类别的数据放入list中*/ + $list[] = $v; + set_product_recursion($result, $v['store_category_id'],$level); + } + } + + return $list; +} + + /** * 根据id递归返回子数据 * @param $data 数据 diff --git a/app/admin/controller/product/Classify.php b/app/admin/controller/product/Classify.php index efd9cbb..cd8cf4c 100644 --- a/app/admin/controller/product/Classify.php +++ b/app/admin/controller/product/Classify.php @@ -71,10 +71,10 @@ class Classify extends BaseController } } - $total = StoreCategory::where('level', 0)->where('mer_id', 0)->where($where)->count(); + $total = StoreCategory::where('mer_id', 0)->where($where)->count(); // $list = StoreCategory::with(['merchant', 'street', 'area'])->order('id desc')->select(); - $list = StoreCategory::where('level', 0)->where('mer_id', 0)->order('store_category_id desc')->select(); + $list = StoreCategory::where('mer_id', 0)->order('store_category_id desc')->select(); View::assign('url', $this->url); View::assign('list', $list); @@ -85,7 +85,7 @@ class Classify extends BaseController }else{ - $list = StoreCategory::where('level', 0)->where('mer_id', 0)->select(); + $list = StoreCategory::where('mer_id', 0)->select(); View::assign('url', $this->url); View::assign('list', $list); @@ -100,59 +100,59 @@ class Classify extends BaseController */ public function add() { + $param = get_params(); + if (request()->isAjax()) { + $param['src'] = preg_replace('# #','',$param['src']); + if ($param['id'] > 0) { + try { + validate(RuleCheck::class)->scene('edit')->check($param); + } catch (ValidateException $e) { + // 验证失败 输出错误信息 + return to_assign(1, $e->getError()); + } + Db::name('AdminRule')->strict(false)->field(true)->update($param); + add_log('edit', $param['id'], $param); + } else { + try { + validate(RuleCheck::class)->scene('add')->check($param); + } catch (ValidateException $e) { + // 验证失败 输出错误信息 + return to_assign(1, $e->getError()); + } + $param['create_time'] = time(); + $rid = Db::name('AdminRule')->strict(false)->field(true)->insertGetId($param); + //自动为系统所有者管理组分配新增的节点 + $group = Db::name('AdminGroup')->find(1); + if (!empty($group)) { + $newGroup['id'] = 1; + $newGroup['rules'] = $group['rules'] . ',' . $rid; + Db::name('AdminGroup')->strict(false)->field(true)->update($newGroup); + add_log('add', $rid, $param); + } + } + // 删除后台节点缓存 + clear_cache('adminRules'); + return to_assign(); + } else { - $params = get_params(); + $id = isset($param['id']) ? $param['id'] : 0; + $pid = isset($param['pid']) ? $param['pid'] : 0; - $data['user_id'] = $this->adminInfo['id']; // 操作用户ID - $data['name'] = $params['title']; // 团队名称 - $data['tel'] = $params['phone']; // 联系电话 - $data['mer_id_list'] = json_encode($params['mer_id']); // 已选商户 - - $data['street_id'] = $params['street_id']; // 街道ID - $street = GeoStreet::where('street_id', $data['street_id'])->find(); // 街道数据 - $data['lng'] = $street['lng']; // 经度 - $data['lat'] = $street['lat']; // 纬度 - $area = $street->area; // 区数据 - $data['area_id'] = $area['area_id']; // 区县id - $city = $area->city; // 获取市级 - $data['address'] = $city['city_name'] . $area['area_name'] . $street['street_name']; // 实际地址 - $data['create_time'] = date('Y-m-d H:i:s'); - - // 数据入库 - $res = SupplyChain::create($data); - - // 关联数据入库 - foreach ($params['mer_id'] as $v) { - - $dataLink = [ - 'eb_merchant_id' => $v, // 商户ID - 'user_id' => $data['user_id'], - 'create_time' => $data['create_time'], - ]; - - $res->linkMerchant()->save($dataLink); // 插入关联数据 + if($id > 0){ + $detail = StoreCategory::find($id); // 分类模型 + View::assign('detail', $detail); } - if ($res){ - return to_assign(0,'操作成功',['aid'=>$res]); - } + $storeCategoryList = StoreCategory::select(); - return to_assign(1, '操作失败,原因:'.$res); - - }else{ - - // 取出正常的商家 - $merchant = Merchant::where('status', 1)->column('mer_id, real_name'); - - // 区域模型 - $arealist = GeoArea::where('city_code', '510500')->select(); - - View::assign('editor', get_system_config('other','editor')); - View::assign('arealist', $arealist); - View::assign('merchant', $merchant); + View::assign('storeCategoryList', $storeCategoryList); View::assign('url', $this->url); + + View::assign('id', $id); + View::assign('pid', $pid); return view(); + } } diff --git a/app/admin/controller/product/Label.php b/app/admin/controller/product/Label.php new file mode 100644 index 0000000..e2596d6 --- /dev/null +++ b/app/admin/controller/product/Label.php @@ -0,0 +1,264 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.label/index?category_id='.$this->category_id, + '/admin/product.label/add', + '/admin/product.label/edit', + '/admin/product.label/del', + '/admin/product.label/index', + ]; + } + + /** + * + * 商品评论列表 + * + */ + public function index() + { + if (request()->isAjax()) { + + $params= get_params(); + + $where = []; + + if (isset($params['keywords']) && !empty($params['keywords'])){ + $where[]= ['name','like','%'.$params['keywords'].'%']; + } + if($this->adminInfo['position_id'] != 1){ //不是超级管理员 + $www['admin_id'] = $this->adminInfo['id']; + $user_address = Db::table('fa_szxc_information_useraddress')->where($www)->find(); + if ($user_address){ + if($user_address['auth_range'] == 1){ + $where[] = ['village_id','=',$user_address['village_id']]; + }elseif ($user_address['auth_range'] == 2){ + $where[] = ['street_id','=',$user_address['street_id']]; + }elseif ($user_address['auth_range'] == 3){ + $where[] = ['area_id','=',$user_address['area_id']]; + }else{ + $where[] = ['village_id','=',$user_address['village_id']]; + } + }else{ + $where[] = ['village_id','=','']; + } + } + + $total = StoreProductLabel::where($where)->count(); + + $list = StoreProductLabel::with(['product'])->order('product_label_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreProductLabel::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['user_id'] = $this->adminInfo['id']; // 操作用户ID + $data['name'] = $params['title']; // 团队名称 + $data['tel'] = $params['phone']; // 联系电话 + $data['mer_id_list'] = json_encode($params['mer_id']); // 已选商户 + + $data['street_id'] = $params['street_id']; // 街道ID + $street = GeoStreet::where('street_id', $data['street_id'])->find(); // 街道数据 + $data['lng'] = $street['lng']; // 经度 + $data['lat'] = $street['lat']; // 纬度 + $area = $street->area; // 区数据 + $data['area_id'] = $area['area_id']; // 区县id + $city = $area->city; // 获取市级 + $data['address'] = $city['city_name'] . $area['area_name'] . $street['street_name']; // 实际地址 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = SupplyChain::create($data); + + // 关联数据入库 + foreach ($params['mer_id'] as $v) { + + $dataLink = [ + 'eb_merchant_id' => $v, // 商户ID + 'user_id' => $data['user_id'], + 'create_time' => $data['create_time'], + ]; + + $res->linkMerchant()->save($dataLink); // 插入关联数据 + } + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + // 取出正常的商家 + $merchant = Merchant::where('status', 1)->column('mer_id, real_name'); + + // 区域模型 + $arealist = GeoArea::where('city_code', '510500')->select(); + + View::assign('editor', get_system_config('other','editor')); + View::assign('arealist', $arealist); + View::assign('merchant', $merchant); + View::assign('url', $this->url); + return view(); + } + } + + /** + * + * 编辑 + * + */ + public function edit() + { + $id = get_params("id"); + if(!$id) return to_assign(1, '非法操作!'); + + if (request()->isAjax()) { + + $params = get_params(); + + $data['id'] = $params['id']; // 当前ID + $data['user_id'] = $this->adminInfo['id']; // 操作用户ID + $data['name'] = $params['title']; // 团队名称 + $data['tel'] = $params['phone']; // 联系电话 + $data['mer_id_list'] = isset($params['mer_id']) ? json_encode($params['mer_id']) : null; // 已选商户 + $data['street_id'] = $params['street_id']; // 街道ID + $street = GeoStreet::where('street_id', $data['street_id'])->find(); // 街道数据 + $data['lng'] = $street['lng']; // 经度 + $data['lat'] = $street['lat']; // 纬度 + $area = $street->area; // 区数据 + $data['area_id'] = $area['area_id']; // 区县id + $city = $area->city; // 获取市级 + $data['address'] = $city['city_name'] . $area['area_name'] . $street['street_name']; // 实际地址 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $supplyChain = SupplyChain::with(['linkMerchant'])->find($data['id']); + $res = $supplyChain->update($data); + + // 获取关联数据一对一---曲线救国 + $linkMerchant = $supplyChain['linkMerchant']; + // $linkMerchantArr = $linkMerchant->column('id'); + + // 先删除关联数据-- 曲线救国 + $linkMerchant->delete(); + + // 关联商户状态 + if($data['mer_id_list']) + { + // 再重新将关联数据入库 + foreach ($params['mer_id'] as $v) { + + $dataLink = [ + 'eb_merchant_id' => $v, // 商户ID + 'user_id' => $data['user_id'], + 'create_time' => $data['create_time'], + ]; + + $supplyChain->linkMerchant()->save($dataLink); + } + } + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + $supplyChain = SupplyChain::with(['merchant', 'street', 'area'])->find($id); // 取出当前供应链数据 + + View::assign('detail', $supplyChain); + + // 取出正常的商家 + $merchant = Merchant::where('status', 1)->column('mer_id, real_name'); + // 区域模型 + $arealist = GeoArea::where('city_code', '510500')->select(); + + View::assign('arealist', $arealist); + View::assign('merchant', $merchant); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + $res = StoreProductReply::where('reply_id', $id)->delete(); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } + +} \ No newline at end of file diff --git a/app/admin/model/StoreProductLabel.php b/app/admin/model/StoreProductLabel.php new file mode 100644 index 0000000..881f58a --- /dev/null +++ b/app/admin/model/StoreProductLabel.php @@ -0,0 +1,51 @@ +hasOne(EbStoreProduct::class, 'product_id', 'product_id'); + } + } \ No newline at end of file diff --git a/app/admin/view/product/Label/add.html b/app/admin/view/product/Label/add.html new file mode 100644 index 0000000..d5e2d1e --- /dev/null +++ b/app/admin/view/product/Label/add.html @@ -0,0 +1,96 @@ +{extend name="common/base"/} +{block name="style"} + +{/block} + +{block name="body"} +
+

添加

+ + + + + + + + + + + + + +
姓名* + +
职务* + + 电话* + +
+
+ + +
+ +
+{/block} + + + +{block name="script"} + + + + +{/block} + \ No newline at end of file diff --git a/app/admin/view/product/Label/edit.html b/app/admin/view/product/Label/edit.html new file mode 100644 index 0000000..2ebf4e4 --- /dev/null +++ b/app/admin/view/product/Label/edit.html @@ -0,0 +1,188 @@ +{extend name="common/base"/} +{block name="style"} + +{/block} + +{block name="body"} +
+ +

编辑

+ + + + + + + + + + + + + + + + + + +
选择商户 +
+ +
+
+
+
+
+ +
+ +
+
+
+
+ +
+ + +
+
+
+
+ +
+ +
+
+
+
+ +
+ +
+
+
+
+ + +
+
+{/block} + + + +{block name="script"} + + + + +{/block} + \ No newline at end of file diff --git a/app/admin/view/product/Label/index.html b/app/admin/view/product/Label/index.html new file mode 100644 index 0000000..3bc5c51 --- /dev/null +++ b/app/admin/view/product/Label/index.html @@ -0,0 +1,200 @@ +{extend name="common/base"/} + +{block name="body"} + +
+
+
+ +
+ +
+
+
+ + + + + + + + +{/block} + + + +{block name="script"} + +{/block} + \ No newline at end of file diff --git a/app/admin/view/product/classify/add.html b/app/admin/view/product/classify/add.html index b4b9888..fcc0291 100644 --- a/app/admin/view/product/classify/add.html +++ b/app/admin/view/product/classify/add.html @@ -1,200 +1,147 @@ -{extend name="common/base"/} -{block name="style"} - -{/block} +{extend name="common/base" /} {block name="body"}
-

关联商户

- - - - - - - - - - - - - - - - - - - - - - - - -
选择商户 -
- -
-
-
- -
-
-
-
-
-
-
- -
- -
-
-
-
- -
- -
-
-
请选择所在地址* -
- -
-
- -
-
-
-
-
-
- - -
- +

添加分类

+ {if condition="$id eq 0"} + + + + + + + + + + + + + + + + + + + +
上级分类* + + +
分类名称* + + +
排序 + + +
+ +
+ +
+
+
分类图片 +
+ +
+ + +
+
+
+ {else/} + + + + + + + + + + + + + + + + + + + + + + + +
父级菜单/节点* + + + 左侧菜单显示* + + + +
菜单/节点名称* + + + 操作日志名称* + + +
菜单/节点URL + + 菜单排序 + +
菜单图标 + + [查看图标] +
+ {/if} +
+ + + +
{/block} {block name="script"} - - {/block} \ No newline at end of file diff --git a/app/admin/view/product/classify/index.html b/app/admin/view/product/classify/index.html index ea8a104..4ff66ac 100644 --- a/app/admin/view/product/classify/index.html +++ b/app/admin/view/product/classify/index.html @@ -9,7 +9,12 @@ -
+
+ +
+
+
+