From 6d49a582d30bfc0044d8d1668ea95c56f7388462 Mon Sep 17 00:00:00 2001 From: wangxiaowei Date: Fri, 25 Oct 2024 17:31:56 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E9=94=80=E5=90=88?= =?UTF-8?q?=E4=BC=99=E4=BA=BA=E5=88=86=E6=88=90=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../distribution/DistributionPartner.php | 116 +++++++ .../distribution/DistributionPartnerLogic.php | 99 ++++++ .../distribution_partner/add.html | 133 ++++++++ .../distribution_partner/edit.html | 39 +++ .../distribution_partner/lists.html | 301 ++++++++++++++++++ app/common/enum/DistributionPartnerEnum.php | 27 ++ app/common/logic/RegionLogic.php | 11 + .../distribution/DistributionPartner.php | 9 + 8 files changed, 735 insertions(+) create mode 100755 app/admin/controller/distribution/DistributionPartner.php create mode 100755 app/admin/logic/distribution/DistributionPartnerLogic.php create mode 100755 app/admin/view/distribution/distribution_partner/add.html create mode 100755 app/admin/view/distribution/distribution_partner/edit.html create mode 100755 app/admin/view/distribution/distribution_partner/lists.html create mode 100644 app/common/enum/DistributionPartnerEnum.php create mode 100755 app/common/model/distribution/DistributionPartner.php diff --git a/app/admin/controller/distribution/DistributionPartner.php b/app/admin/controller/distribution/DistributionPartner.php new file mode 100755 index 00000000..879c10d6 --- /dev/null +++ b/app/admin/controller/distribution/DistributionPartner.php @@ -0,0 +1,116 @@ +request->isAjax()){ + $get = $this->request->get(); + if ($get['type'] == 1) { // 店铺类型 + $list = DistributionStoreTypeLogic::templatelists($get); + } else { + $list = DistributionStoreTypeLogic::getConfig(); + } + return JsonServer::success('', $list); + } + return view(); + } + + public function add(){ + if ($this->request->isAjax()){ + $post = $this->request->post(); + $result = DistributionPartnerLogic::add($post); + if ($result === true){ + return JsonServer::success('新增成功'); + } + return JsonServer::error(DistributionStoreTypeLogic::getError()); + } + + $city = DevRegion::where(['level'=>2]) + ->field('id,name') + ->select() + ->toArray(); + + return view('', [ + 'city' => $city, + 'partner' => DistributionPartnerEnum::getPartner() + ]); + } + + public function changeFields(){ + $id = $this->request->get('id'); + + $field = $this->request->get('field'); + $value = $this->request->get('value'); + + if ($field === 'sort') { + $result = DistributionStoreTypeLogic::changeOrderValue($id, $value); + if($result){ + return JsonServer::success('修改成功'); + } + } + + return JsonServer::error('修改失败'); + } + + public function edit($id) + { + if ($this->request->isAjax()) { + $post = $this->request->post(); + + try { + validate(DistributionStoreTypeValidate::class)->check($post); + } catch(ValidateException $e) { + return JsonServer::error($e->getError()); + } + + $result = DistributionStoreTypeLogic::edit($post); + + if ($result === true){ + return JsonServer::success('编辑成功'); + } + return JsonServer::error('编辑失败'); + } + + $info = DistributionStoreTypeLogic::getRechargeTemplate($id); + return view('', [ + 'info' => $info + ]); + } + + public function del($id) + { + if ($this->request->isAjax()) { + $result = DistributionStoreTypeLogic::del($id); + if ($result) { + return JsonServer::success('删除成功'); + } + return JsonServer::error('删除失败'); + } + } + + public function setStoreType(){ + if($this->request->isAjax()){ + $post = $this->request->post(); + + DistributionStoreTypeLogic::setStoreType($post); + return JsonServer::success('设置成功'); + } + } +} \ No newline at end of file diff --git a/app/admin/logic/distribution/DistributionPartnerLogic.php b/app/admin/logic/distribution/DistributionPartnerLogic.php new file mode 100755 index 00000000..d04ec8a2 --- /dev/null +++ b/app/admin/logic/distribution/DistributionPartnerLogic.php @@ -0,0 +1,99 @@ + 0]) + ->order(['sort' => 'desc']) + ->paginate([ + 'page' => $get['page'] ?? 1, + 'list_rows' => $get['limit'] ?? 10, + 'var_page' => 'page' + ]) + ->toArray(); + + return $list; + } + + public static function getConfig(){ + $config = [ + 'open_store_type' => ConfigServer::get('distribution','store_type',0), + ]; + return [$config]; + } + + public static function add($post){ + try{ + $citys = explode(',', $post['citys']); + $cityIds = []; + foreach ($citys as &$v) { + $cityIds[] = RegionLogic::cityCoverId($v); + } + + DistributionPartner::create([ + 'proportion' => str_replace('%', '', $post['proportion']), + 'city' => implode(',', $cityIds), + 'type' => $post['type'], + 'core_city_money' => $post['core_city_money'], + 'un_core_city_money' => $post['un_core_city_money'], + 'is_show' => $post['is_show'], + 'create_time' => time(), + ]); + return true; + }catch(\Exception $e) { + self::$error = $e->getMessage(); + return false; + } + } + + public static function changeOrderValue($id, $value) + { + try { + DistributionStoreType::where('id', $id)->update([ + 'sort' => $value, + 'update_time' => time(), + ]); + return true; + } catch(\Exception $e) { + self::$error = $e->getMessage(); + return false; + } + } + + public static function getRechargeTemplate($id){ + return DistributionStoreType::where(['id' => $id])->find(); + } + + public static function edit($post){ + try{ + DistributionStoreType::update([ + 'id' => $post['id'], + 'title' => $post['title'], + 'money' => $post['money'], + 'sort' => $post['sort'], + 'update_time' => time(), + ]); + return true; + }catch(\Exception $e) { + self::$error = $e->getMessage(); + return false; + } + } + + public static function del($id){ + return DistributionStoreType::where(['id' => $id])->update(['update_time' => time(),'is_delete' => 1]); + } + + public static function setStoreType($post){ + ConfigServer::set('distribution','store_type', $post['open_store_type']); + } +} diff --git a/app/admin/view/distribution/distribution_partner/add.html b/app/admin/view/distribution/distribution_partner/add.html new file mode 100755 index 00000000..09e31e4f --- /dev/null +++ b/app/admin/view/distribution/distribution_partner/add.html @@ -0,0 +1,133 @@ +{layout name="layout2" /} + +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ diff --git a/app/admin/view/distribution/distribution_partner/edit.html b/app/admin/view/distribution/distribution_partner/edit.html new file mode 100755 index 00000000..f3d1bd59 --- /dev/null +++ b/app/admin/view/distribution/distribution_partner/edit.html @@ -0,0 +1,39 @@ +{layout name="layout2" /} +
+ +
+
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+ +
+
+
+ diff --git a/app/admin/view/distribution/distribution_partner/lists.html b/app/admin/view/distribution/distribution_partner/lists.html new file mode 100755 index 00000000..780aed06 --- /dev/null +++ b/app/admin/view/distribution/distribution_partner/lists.html @@ -0,0 +1,301 @@ +{layout name="layout1" /} + +
+
+
+
    +
  • 类型
  • +
  • 设置
  • +
+
+
+
+
+
+ +
+
+ + +
+
+
+
+
+
+ +
+ + +
+
+
+
+ +
+
+
+
+
+
+
+
+ + diff --git a/app/common/enum/DistributionPartnerEnum.php b/app/common/enum/DistributionPartnerEnum.php new file mode 100644 index 00000000..d5f03fa5 --- /dev/null +++ b/app/common/enum/DistributionPartnerEnum.php @@ -0,0 +1,27 @@ + '普通合伙人', + self::REGION_PARTNER => '区域合伙人', + self::SENIOR_PARTNER => '高级合伙人', + self::STRATEGY_PARTNER => '战略合伙人', + ); + + if ($type === 'all') { + return $partner; + } + + return $partner[$type]; + } +} \ No newline at end of file diff --git a/app/common/logic/RegionLogic.php b/app/common/logic/RegionLogic.php index aa089715..0676f9f4 100755 --- a/app/common/logic/RegionLogic.php +++ b/app/common/logic/RegionLogic.php @@ -20,6 +20,7 @@ namespace app\common\logic; +use app\admin\controller\Recharge; use app\common\basics\Logic; use app\common\model\DevRegion; @@ -168,4 +169,14 @@ class RegionLogic extends Logic } return null; } + + public static function cityCoverId($city = '') + { + if ($city) { + $data = DevRegion::where(['level' => 2, 'name' => $city])->field('id')->find(); + if ($data) { + return $data['id']; + } + } + } } \ No newline at end of file diff --git a/app/common/model/distribution/DistributionPartner.php b/app/common/model/distribution/DistributionPartner.php new file mode 100755 index 00000000..8bb0aee3 --- /dev/null +++ b/app/common/model/distribution/DistributionPartner.php @@ -0,0 +1,9 @@ +