diff --git a/.gitignore b/.gitignore index 9be8bf4..dac9a40 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ /public/static/home/dev /public/static/home/oa /config/database.php +/public/.htaccess +/public/nginx.htaccess diff --git a/app/admin/common.php b/app/admin/common.php index fd2aa8a..bf740b5 100644 --- a/app/admin/common.php +++ b/app/admin/common.php @@ -9,6 +9,9 @@ use think\facade\Config; use think\facade\Request; use think\facade\Cache; use think\facade\Db; +use app\admin\model\StoreCategory; // 商品分类模型 +use app\admin\model\StoreBrandCategory; // 商品品牌列表模型 + //获取后台模块当前登录用户的信息 function get_login_admin($key = "") { @@ -93,6 +96,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 +107,69 @@ function set_recursion($result, $pid = 0, $level=-1) set_recursion($result, $v['id'],$level); } } + return $list; } +//读取商品品牌节点列表 +function get_band_calss() +{ + $result = StoreBrandCategory::where('pid', 0)->order('sort desc')->select()->toArray(); + return $result; +} + +//递归排序,用于分类选择 +function set_band_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_band_recursion($result, $v['store_brand_category_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/Band.php b/app/admin/controller/product/Band.php new file mode 100644 index 0000000..f3444a8 --- /dev/null +++ b/app/admin/controller/product/Band.php @@ -0,0 +1,208 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.band/index?category_id='.$this->category_id, + '/admin/product.band/add', + '/admin/product.band/edit', + '/admin/product.band/del', + '/admin/product.band/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 = StoreBrand::where($where)->count(); + + $list = StoreBrand::order('sort desc, brand_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreBrand::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['brand_name'] = $params['brand_name']; // 品牌名称 + $data['is_show'] = isset($params['is_show']); // 状态 + $data['brand_category_id'] = $params['brand_category_id']; // 所属ID + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreBrand::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + $storeBrandCategory = StoreBrandCategory::order('sort desc') + ->where('pid', 0) + ->where('is_show', 1) + ->select(); + + View::assign('storeBrandCategory', $storeBrandCategory); + View::assign('editor', get_system_config('other','editor')); + 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['brand_name'] = $params['brand_name']; // 品牌名称 + $data['is_show'] = isset($params['is_show']); // 状态 + $data['brand_category_id'] = $params['brand_category_id']; // 所属ID + $data['sort'] = $params['sort']; // 排序 + + // 数据更新 + $res = StoreBrand::where('brand_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $supplyChain = StoreBrand::with(['storeBrandCategory'])->find($id); // 取出当前品牌数据 + + $storeBrandCategory = StoreBrandCategory::order('sort desc') + ->where('pid', 0) + ->where('is_show', 1) + ->select(); + + View::assign('storeBrandCategory', $storeBrandCategory); + View::assign('detail', $supplyChain); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + $res = StoreBrand::where('brand_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/controller/product/BrandClassify.php b/app/admin/controller/product/BrandClassify.php new file mode 100644 index 0000000..35978c5 --- /dev/null +++ b/app/admin/controller/product/BrandClassify.php @@ -0,0 +1,216 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.brandClassify/index?category_id='.$this->category_id, + '/admin/product.brandClassify/add', + '/admin/product.brandClassify/edit', + '/admin/product.brandClassify/del', + '/admin/product.brandClassify/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 = StoreBrandCategory::where($where)->count(); + + $list = StoreBrandCategory::order('sort desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreBrandCategory::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreBrandCategory::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + View::assign('editor', get_system_config('other','editor')); + 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['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $res = StoreBrandCategory::where('store_brand_category_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $storeBrandCtegory = StoreBrandCategory::find($id); // 取出当前品牌分类信息 + + View::assign('detail', $storeBrandCtegory); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + // 验证下面是否有子分类 + if(StoreBrandCategory::where('pid', $id)->count()) + { + return to_assign(1, '请先删除子分类!'); + } + + $res = StoreBrandCategory::where('store_brand_category_id', $id)->delete(); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } + + /** + * + * 子分类 + * + */ + public function street($pcode) + { + $storeBrandCategory = StoreBrandCategory::order('sort desc') + ->where('is_show', 1) + ->where('pid', $pcode) + ->select(); + + return json($storeBrandCategory); + } + +} \ No newline at end of file diff --git a/app/admin/controller/product/Classify.php b/app/admin/controller/product/Classify.php new file mode 100644 index 0000000..343e280 --- /dev/null +++ b/app/admin/controller/product/Classify.php @@ -0,0 +1,226 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.classify/index?category_id='.$this->category_id, + '/admin/product.classify/add', + '/admin/product.classify/edit', + '/admin/product.classify/delete' + ]; + } + + /** + * + * 商城分类列表 + * + */ + 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 = StoreCategory::where($where)->count(); + + // $list = StoreCategory::with(['merchant', 'street', 'area'])->order('id desc')->select(); + $list = StoreCategory::order('store_category_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreCategory::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + $param = get_params(); + + if (request()->isAjax()) { + + $params = get_params(); + + $data['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pic'] = $params['pic']; // 图标 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreCategory::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } else { + + $id = isset($param['id']) ? $param['id'] : 0; + $pid = isset($param['pid']) ? $param['pid'] : 0; + + if($id > 0){ + $detail = StoreCategory::find($id); // 分类模型 + View::assign('detail', $detail); + } + + $storeCategoryList = StoreCategory::order('store_category_id desc')->where('pid', 0)->select(); + + View::assign('storeCategoryList', $storeCategoryList); + View::assign('url', $this->url); + + View::assign('id', $id); + View::assign('pid', $pid); + return view(); + + } + } + + /** + * + * 编辑 + * + */ + public function edit() + { + $id = get_params("id"); + if(!$id) return to_assign(1, '非法操作!'); + + if (request()->isAjax()) { + + $params = get_params(); + + $data['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pic'] = $params['pic']; // 图标 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + + // 数据更新 + $res = StoreCategory::where('store_category_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + $category = StoreCategory::with(['storeCategory'])->find($id); // 取出当前供应链数据 + $storeCategoryList = StoreCategory::order('store_category_id desc')->where('pid', 0)->select(); + + View::assign('storeCategoryList', $storeCategoryList); + View::assign('detail', $category); + + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function delete() + { + $id = get_params("id"); + if(!$id) return to_assign(1, '非法操作!'); + + $supplyChain = SupplyChain::with(['linkMerchant'])->find($id); + // 删除关联模型 + $res = $supplyChain->together(['linkMerchant'])->delete(); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } + + /** + * + * 获取子分类 + * + */ + public function street($pcode) + { + $storeCategory = StoreCategory::order('sort desc') + ->where('is_show', 1) + ->where('pid', $pcode) + ->select(); + + return json($storeCategory); + } +} \ No newline at end of file diff --git a/app/admin/controller/product/Comment.php b/app/admin/controller/product/Comment.php new file mode 100644 index 0000000..a4183ba --- /dev/null +++ b/app/admin/controller/product/Comment.php @@ -0,0 +1,263 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.comment/index?category_id='.$this->category_id, + '/admin/product.comment/add', + '/admin/product.comment/edit', + '/admin/product.comment/del', + '/admin/product.comment/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 = StoreProductReply::where($where)->count(); + + $list = StoreProductReply::with(['product'])->order('reply_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreProductReply::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/controller/product/Guarantee.php b/app/admin/controller/product/Guarantee.php new file mode 100644 index 0000000..58c92b3 --- /dev/null +++ b/app/admin/controller/product/Guarantee.php @@ -0,0 +1,196 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.guarantee/index?category_id='.$this->category_id, + '/admin/product.guarantee/add', + '/admin/product.guarantee/edit', + '/admin/product.guarantee/del', + '/admin/product.guarantee/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 = GuaranteeModel::where($where)->count(); + + $list = GuaranteeModel::order('guarantee_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = GuaranteeModel::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['guarantee_name'] = $params['guarantee_name']; // 标签名 + $data['status'] = isset($params['status']) && $params['status'] == 'on'? 1:0; // 状态 + $data['guarantee_info'] = $params['guarantee_info']; // 说明 + $data['image'] = $params['image']; // 说明 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = GuaranteeModel::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + View::assign('editor', get_system_config('other','editor')); + 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['guarantee_name'] = $params['guarantee_name']; // 标签名 + $data['status'] = isset($params['status']) && $params['status'] == 'on'? 1:0; // 状态 + $data['guarantee_info'] = $params['guarantee_info']; // 说明 + $data['image'] = $params['image']; // 说明 + $data['sort'] = $params['sort']; // 排序 + $data['update_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $res = GuaranteeModel::where('guarantee_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $supplyChain = GuaranteeModel::find($id); // 取出当前保障服务数据 + + View::assign('detail', $supplyChain); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + $res = GuaranteeModel::where('guarantee_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/controller/product/Label.php b/app/admin/controller/product/Label.php new file mode 100644 index 0000000..e2643a0 --- /dev/null +++ b/app/admin/controller/product/Label.php @@ -0,0 +1,194 @@ +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['label_name'] = $params['label_name']; // 标签名 + $data['status'] = isset($params['status']) && $params['status'] == 'on'? 1:0; // 状态 + $data['info'] = $params['info']; // 说明 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreProductLabel::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + View::assign('editor', get_system_config('other','editor')); + 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['label_name'] = $params['label_name']; // 标签名 + $data['status'] = isset($params['status']) && $params['status'] == 'on'? 1:0; // 状态 + $data['info'] = $params['info']; // 说明 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $res = StoreProductLabel::where('product_label_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $supplyChain = StoreProductLabel::find($id); // 取出当前供应链数据 + + View::assign('detail', $supplyChain); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + $res = StoreProductLabel::where('product_label_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/controller/product/MerSpecs.php b/app/admin/controller/product/MerSpecs.php new file mode 100644 index 0000000..d65079e --- /dev/null +++ b/app/admin/controller/product/MerSpecs.php @@ -0,0 +1,216 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.priceDescription/index?category_id='.$this->category_id, + '/admin/product.priceDescription/add', + '/admin/product.priceDescription/edit', + '/admin/product.priceDescription/del', + '/admin/product.priceDescription/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 = StoreBrandCategory::where($where)->count(); + + $list = StoreBrandCategory::order('sort desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreBrandCategory::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreBrandCategory::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + View::assign('editor', get_system_config('other','editor')); + 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['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $res = StoreBrandCategory::where('store_brand_category_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $storeBrandCtegory = StoreBrandCategory::find($id); // 取出当前品牌分类信息 + + View::assign('detail', $storeBrandCtegory); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + // 验证下面是否有子分类 + if(StoreBrandCategory::where('pid', $id)->count()) + { + return to_assign(1, '请先删除子分类!'); + } + + $res = StoreBrandCategory::where('store_brand_category_id', $id)->delete(); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } + + /** + * + * 子分类 + * + */ + public function street($pcode) + { + $storeBrandCategory = StoreBrandCategory::order('sort desc') + ->where('is_show', 1) + ->where('pid', $pcode) + ->select(); + + return json($storeBrandCategory); + } + +} \ No newline at end of file diff --git a/app/admin/controller/product/PriceDescription.php b/app/admin/controller/product/PriceDescription.php new file mode 100644 index 0000000..e298bdf --- /dev/null +++ b/app/admin/controller/product/PriceDescription.php @@ -0,0 +1,216 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.priceDescription/index?category_id='.$this->category_id, + '/admin/product.priceDescription/add', + '/admin/product.priceDescription/edit', + '/admin/product.priceDescription/del', + '/admin/product.priceDescription/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 = StoreBrandCategory::where($where)->count(); + + $list = StoreBrandCategory::order('sort desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreBrandCategory::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreBrandCategory::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + View::assign('editor', get_system_config('other','editor')); + 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['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $res = StoreBrandCategory::where('store_brand_category_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $storeBrandCtegory = StoreBrandCategory::find($id); // 取出当前品牌分类信息 + + View::assign('detail', $storeBrandCtegory); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + // 验证下面是否有子分类 + if(StoreBrandCategory::where('pid', $id)->count()) + { + return to_assign(1, '请先删除子分类!'); + } + + $res = StoreBrandCategory::where('store_brand_category_id', $id)->delete(); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } + + /** + * + * 子分类 + * + */ + public function street($pcode) + { + $storeBrandCategory = StoreBrandCategory::order('sort desc') + ->where('is_show', 1) + ->where('pid', $pcode) + ->select(); + + return json($storeBrandCategory); + } + +} \ No newline at end of file diff --git a/app/admin/controller/product/Product.php b/app/admin/controller/product/Product.php new file mode 100644 index 0000000..0d3466a --- /dev/null +++ b/app/admin/controller/product/Product.php @@ -0,0 +1,262 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.product/index?category_id='.$this->category_id, + '/admin/product.product/add', + '/admin/product.product/edit', + '/admin/product.product/delete', + '/admin/product.product/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 = EbStoreProduct::where($where)->count(); + + $list = EbStoreProduct::with(['merchant' => ['merchantType', 'category']])->order('product_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = SupplyChain::with(['merchant' => ['merchantType', 'category']])->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 delete() + { + $id = get_params("id"); + if(!$id) return to_assign(1, '非法操作!'); + + $supplyChain = SupplyChain::with(['linkMerchant'])->find($id); + // 删除关联模型 + $res = $supplyChain->together(['linkMerchant'])->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/controller/product/Specs.php b/app/admin/controller/product/Specs.php new file mode 100644 index 0000000..c421474 --- /dev/null +++ b/app/admin/controller/product/Specs.php @@ -0,0 +1,216 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/product.priceDescription/index?category_id='.$this->category_id, + '/admin/product.priceDescription/add', + '/admin/product.priceDescription/edit', + '/admin/product.priceDescription/del', + '/admin/product.priceDescription/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 = StoreBrandCategory::where($where)->count(); + + $list = StoreBrandCategory::order('sort desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = StoreBrandCategory::select(); + + View::assign('url', $this->url); + View::assign('list', $list); + return view(); + } + } + + /** + * + * 新增 + * + */ + public function add() + { + if (request()->isAjax()) { + + $params = get_params(); + + $data['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据入库 + $res = StoreBrandCategory::create($data); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + }else{ + + View::assign('editor', get_system_config('other','editor')); + 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['cate_name'] = $params['cate_name']; // 分类名称 + $data['is_show'] = isset($params['is_show']) && $params['is_show'] == 'on'? 1:0; // 是否显示 + $data['pid'] = $params['pid']; // 上级分类 + $data['sort'] = $params['sort']; // 排序 + $data['create_time'] = date('Y-m-d H:i:s'); + + // 数据更新 + $res = StoreBrandCategory::where('store_brand_category_id', $params['id'])->update($data); + + if ($res){ + return to_assign(0,'更新成功',['aid'=>$res]); + } + + return to_assign(1, '更新失败,原因:'.$res); + + }else{ + + $storeBrandCtegory = StoreBrandCategory::find($id); // 取出当前品牌分类信息 + + View::assign('detail', $storeBrandCtegory); + View::assign('url', $this->url); + return view(); + } + + } + + /** + * + * 删除 + * + */ + public function del() + { + $id = get_params("id"); + + if(!$id) return to_assign(1, '非法操作!'); + + // 验证下面是否有子分类 + if(StoreBrandCategory::where('pid', $id)->count()) + { + return to_assign(1, '请先删除子分类!'); + } + + $res = StoreBrandCategory::where('store_brand_category_id', $id)->delete(); + + if ($res){ + return to_assign(0,'操作成功',['aid'=>$res]); + } + + return to_assign(1, '操作失败,原因:'.$res); + + } + + /** + * + * 子分类 + * + */ + public function street($pcode) + { + $storeBrandCategory = StoreBrandCategory::order('sort desc') + ->where('is_show', 1) + ->where('pid', $pcode) + ->select(); + + return json($storeBrandCategory); + } + +} \ No newline at end of file diff --git a/app/admin/controller/supplychain/Index.php b/app/admin/controller/supplychain/Index.php new file mode 100644 index 0000000..38a0fec --- /dev/null +++ b/app/admin/controller/supplychain/Index.php @@ -0,0 +1,259 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/supplychain.index/index?category_id='.$this->category_id, + '/admin/supplychain.index/add', + '/admin/supplychain.index/edit', + '/admin/supplychain.index/delete', + '/admin/supplychain.merchant/index', + '/admin/supplychain.merchant/bill', + ]; + } + + /** + * + * 供应链团队列表 + * + */ + public function index() + { + if (request()->isAjax()) { + + $params= get_params(); + + $where[]= ['status','=',0]; + + 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 = SupplyChain::where($where)->count(); + + $list = SupplyChain::with(['merchant', 'street', 'area'])->order('id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $list = SupplyChain::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['shareRate'] = $params['shareRate']; // 分润比例 + $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['shareRate'] = $params['shareRate']; // 分润比例 + $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 delete() + { + $id = get_params("id"); + if(!$id) return to_assign(1, '非法操作!'); + + $supplyChain = SupplyChain::with(['linkMerchant'])->find($id); + // 删除关联模型 + $res = $supplyChain->together(['linkMerchant'])->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/controller/supplychain/Merchant.php b/app/admin/controller/supplychain/Merchant.php new file mode 100644 index 0000000..d77e5f8 --- /dev/null +++ b/app/admin/controller/supplychain/Merchant.php @@ -0,0 +1,185 @@ +adminInfo = get_login_admin(); + $this->category_id=354; + $this->url=[ + '/admin/supplychain.index/index?category_id='.$this->category_id, + '/admin/supplychain.index/add', + '/admin/supplychain.index/edit', + '/admin/supplychain.index/delete', + '/admin/supplychain.merchant/index', + '/admin/supplychain.merchant/bill', + ]; + } + + /** + * + * 供应链团队列表 + * + */ + 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 = SupplyChainLinkMerchant::where($where)->count(); + + $list = SupplyChainLinkMerchant::with(['supplyChain', 'merchant'])->order('id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $total = SupplyChainLinkMerchant::count(); + $list = SupplyChainLinkMerchant::with(['merchant', 'supplyChain'])->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + return view(); + } + } + + /** + * + * 交易订单 + * + */ + public function bill() + { + 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 = StoreOrderModel::where($where)->count(); + + $list = StoreOrderModel::with(['merchant'])->order('order_id desc')->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + + return table_assign(0, '', $result); + + }else{ + + $total = StoreOrderModel::count(); + $list = StoreOrderModel::with(['merchant'])->select(); + + View::assign('url', $this->url); + View::assign('list', $list); + + $result = ['total' => $total, 'data' => $list]; + return view(); + } + + } + + /** + * + * 新增 + * + */ + public function add() + { + return view(); + } + + /** + * + * 编辑 + * + */ + public function edit() + { + return view(); + } + + /** + * + * 删除 + * + */ + public function delete() + { + return view(); + } + +} \ No newline at end of file diff --git a/app/admin/model/EbStoreProduct.php b/app/admin/model/EbStoreProduct.php new file mode 100644 index 0000000..b5a873b --- /dev/null +++ b/app/admin/model/EbStoreProduct.php @@ -0,0 +1,31 @@ +hasOne(Merchant::class, 'mer_id', 'mer_id'); + } + } \ No newline at end of file diff --git a/app/admin/model/GeoArea.php b/app/admin/model/GeoArea.php new file mode 100644 index 0000000..3ac0060 --- /dev/null +++ b/app/admin/model/GeoArea.php @@ -0,0 +1,26 @@ +hasOne(GeoArea::class, 'area_code', 'area_code'); + } + } \ No newline at end of file diff --git a/app/admin/model/GeoCity.php b/app/admin/model/GeoCity.php new file mode 100644 index 0000000..ea24176 --- /dev/null +++ b/app/admin/model/GeoCity.php @@ -0,0 +1,19 @@ +hasOne(GeoArea::class, 'area_code', 'area_code'); + } + } \ No newline at end of file diff --git a/app/admin/model/Guarantee.php b/app/admin/model/Guarantee.php new file mode 100644 index 0000000..22dd3b8 --- /dev/null +++ b/app/admin/model/Guarantee.php @@ -0,0 +1,23 @@ +hasOneThrough(SupplyChainLinkMerchant::class, SupplyChain::class); + } + + /** + * + * 关联商户类型 + * + */ + public function merchantType() + { + return $this->hasOne(MerchantType::class, 'mer_type_id', 'type_id'); + } + + /** + * + * 关联商户类别 + * + */ + public function category() + { + return $this->hasOne(MerchantCategory::class, 'merchant_category_id', 'category_id'); + } + + } \ No newline at end of file diff --git a/app/admin/model/MerchantCategory.php b/app/admin/model/MerchantCategory.php new file mode 100644 index 0000000..b486efa --- /dev/null +++ b/app/admin/model/MerchantCategory.php @@ -0,0 +1,22 @@ +hasOne(StoreBrandCategory::class, 'store_brand_category_id', 'brand_category_id'); + } + } \ No newline at end of file diff --git a/app/admin/model/StoreBrandCategory.php b/app/admin/model/StoreBrandCategory.php new file mode 100644 index 0000000..e9e09c2 --- /dev/null +++ b/app/admin/model/StoreBrandCategory.php @@ -0,0 +1,33 @@ +hasOne(StoreBrandCategory::class, 'store_brand_category_id', 'brand_category_id'); + } + + } \ No newline at end of file diff --git a/app/admin/model/StoreCart.php b/app/admin/model/StoreCart.php new file mode 100644 index 0000000..be58d51 --- /dev/null +++ b/app/admin/model/StoreCart.php @@ -0,0 +1,40 @@ +hasOne(EbStoreProduct::class, 'product_id', 'product_id'); + } + + /** + * + * 所属用户 + * + */ + public function user() + { + return $this->hasOne(Merchant::class, 'mer_id', 'mer_id'); + } + } \ No newline at end of file diff --git a/app/admin/model/StoreCategory.php b/app/admin/model/StoreCategory.php new file mode 100644 index 0000000..44807b6 --- /dev/null +++ b/app/admin/model/StoreCategory.php @@ -0,0 +1,30 @@ +hasOne(StoreCategory::class, 'store_category_id', 'pid'); + } + + } \ No newline at end of file diff --git a/app/admin/model/StoreOrder.php b/app/admin/model/StoreOrder.php new file mode 100644 index 0000000..0fbfa00 --- /dev/null +++ b/app/admin/model/StoreOrder.php @@ -0,0 +1,64 @@ +hasOne(Merchant::class, 'mer_id', 'mer_id'); + } + + /** + * 所属商品 + * + */ + public function cart() + { + return $this->hasOne(StoreCart::class, 'cart_id', 'cart_id'); + } + + /** + * 获取购物车商品 + * + */ + public function getCartIdAttr($value) + { + // 分割为数组 + $cartId = explode(',', $value); + // 购物车ID + $scartList = StoreCart::whereIn('cart_id', $cartId)->with(['product'])->select(); + + return $scartList; + } + + /** + * + * 所属用户 + * + */ + public function user() + { + return $this->hasOne(Merchant::class, 'mer_id', 'mer_id'); + } + } \ 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/model/StoreProductReply.php b/app/admin/model/StoreProductReply.php new file mode 100644 index 0000000..e4fcbb3 --- /dev/null +++ b/app/admin/model/StoreProductReply.php @@ -0,0 +1,51 @@ +hasOne(EbStoreProduct::class, 'product_id', 'product_id'); + } + } \ No newline at end of file diff --git a/app/admin/model/SupplyChain.php b/app/admin/model/SupplyChain.php new file mode 100644 index 0000000..2b6762a --- /dev/null +++ b/app/admin/model/SupplyChain.php @@ -0,0 +1,60 @@ +hasManyThrough(Merchant::class, SupplyChainLinkMerchant::class, 'fa_supply_chain_id', 'mer_id', 'id', 'eb_merchant_id'); + } + + /** + * + * 关联中间表 + * + */ + public function linkMerchant() + { + return $this->hasMany(SupplyChainLinkMerchant::class, 'fa_supply_chain_id'); + } + + /** + * 关联街道 + * + * + */ + public function street() + { + return $this->hasOne(GeoStreet::class, 'street_id', 'street_id'); + } + + /** + * 关联区县 + * + * + */ + public function area() + { + return $this->hasOne(GeoArea::class, 'area_id', 'area_id'); + } + } \ No newline at end of file diff --git a/app/admin/model/SupplyChainLinkMerchant.php b/app/admin/model/SupplyChainLinkMerchant.php new file mode 100644 index 0000000..b2cf046 --- /dev/null +++ b/app/admin/model/SupplyChainLinkMerchant.php @@ -0,0 +1,44 @@ +hasOne(SupplyChain::class, 'id', 'fa_supply_chain_id'); + } + + /** + * + * 所属商户 + * 一对一 + * + */ + public function merchant() + { + return $this->hasOne(Merchant::class, 'mer_id', 'eb_merchant_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..4465a02 --- /dev/null +++ b/app/admin/view/product/Label/add.html @@ -0,0 +1,102 @@ +{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..cf1d79e --- /dev/null +++ b/app/admin/view/product/Label/edit.html @@ -0,0 +1,97 @@ +{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..f764ee9 --- /dev/null +++ b/app/admin/view/product/Label/index.html @@ -0,0 +1,157 @@ +{extend name="common/base"/} + +{block name="body"} + +标题* | ++ | ||||||
简介* | ++ + | +||||||
内容 | ++ + | +||||||
坐标 | +
+ 经度:{$detail.lng} +纬度:{$detail.lat} + + |
+ ||||||
运输距离 | +
+ {volist name='farmers' id='vo'}
+ 距离 {$vo.title} {$vo.juli} 公里 + {/volist} + |
+
标题* | ++ | ||||||
简介* | ++ + | +||||||
内容 | ++ + | +||||||
坐标 | +
+ 经度:{$detail.lng} +纬度:{$detail.lat} + + |
+ ||||||
运输距离 | +
+ {volist name='farmers' id='vo'}
+ 距离 {$vo.title} {$vo.juli} 公里 + {/volist} + |
+