moonsflyer 2 hónapja
szülő
commit
d7676b87cf
53 módosított fájl, 0 hozzáadás és 6926 törlés
  1. 0 58
      app/admin/controller/distribution/Apply.php
  2. 0 89
      app/admin/controller/distribution/Center.php
  3. 0 47
      app/admin/controller/distribution/DistributionGoods.php
  4. 0 84
      app/admin/controller/distribution/DistributionLevel.php
  5. 0 112
      app/admin/controller/distribution/DistributionMember.php
  6. 0 25
      app/admin/controller/distribution/DistributionOrder.php
  7. 0 49
      app/admin/controller/distribution/DistributionSetting.php
  8. 0 154
      app/admin/controller/distribution/Member.php
  9. 0 22
      app/admin/controller/distribution/Record.php
  10. 0 36
      app/admin/controller/distribution/Setting.php
  11. 0 143
      app/admin/logic/distribution/ApplyLogic.php
  12. 0 143
      app/admin/logic/distribution/CenterLogic.php
  13. 0 169
      app/admin/logic/distribution/DistributionGoodsLogic.php
  14. 0 514
      app/admin/logic/distribution/DistributionLevelLogic.php
  15. 0 231
      app/admin/logic/distribution/DistributionMemberLogic.php
  16. 0 110
      app/admin/logic/distribution/DistributionOrderLogic.php
  17. 0 95
      app/admin/logic/distribution/DistributionSettingLogic.php
  18. 0 414
      app/admin/logic/distribution/MemberLogic.php
  19. 0 84
      app/admin/logic/distribution/RecordLogic.php
  20. 0 19
      app/admin/validate/ExpressValidate.php
  21. 0 151
      app/admin/validate/distribution/DistributionLevelValidate.php
  22. 0 101
      app/admin/validate/distribution/MemberValidate.php
  23. 0 25
      app/admin/view/distribution/apply/audit.html
  24. 0 46
      app/admin/view/distribution/apply/detail.html
  25. 0 169
      app/admin/view/distribution/apply/lists.html
  26. 0 152
      app/admin/view/distribution/center/center.html
  27. 0 37
      app/admin/view/distribution/center/data.html
  28. 0 119
      app/admin/view/distribution/distribution_goods/detail.html
  29. 0 187
      app/admin/view/distribution/distribution_goods/index.html
  30. 0 138
      app/admin/view/distribution/distribution_level/add.html
  31. 0 139
      app/admin/view/distribution/distribution_level/edit.html
  32. 0 81
      app/admin/view/distribution/distribution_level/edit_default.html
  33. 0 171
      app/admin/view/distribution/distribution_level/index.html
  34. 0 74
      app/admin/view/distribution/distribution_member/adjust.html
  35. 0 276
      app/admin/view/distribution/distribution_member/index.html
  36. 0 83
      app/admin/view/distribution/distribution_member/open.html
  37. 0 124
      app/admin/view/distribution/distribution_member/user_lists.html
  38. 0 188
      app/admin/view/distribution/distribution_order/index.html
  39. 0 119
      app/admin/view/distribution/distribution_setting/index.html
  40. 0 87
      app/admin/view/distribution/distribution_setting/settlement.html
  41. 0 31
      app/admin/view/distribution/member/add_member.html
  42. 0 91
      app/admin/view/distribution/member/audit_lists.html
  43. 0 119
      app/admin/view/distribution/member/earnings_detail.html
  44. 0 178
      app/admin/view/distribution/member/fans.html
  45. 0 460
      app/admin/view/distribution/member/index.html
  46. 0 75
      app/admin/view/distribution/member/info.html
  47. 0 93
      app/admin/view/distribution/member/member_lists.html
  48. 0 57
      app/admin/view/distribution/member/update_leader.html
  49. 0 216
      app/admin/view/distribution/record/lists.html
  50. 0 115
      app/admin/view/distribution/setting/setting.html
  51. 0 100
      app/admin/view/express/add.html
  52. 0 142
      app/admin/view/express/edit.html
  53. 0 184
      app/common/logic/ExpressLogic.php

+ 0 - 58
app/admin/controller/distribution/Apply.php

@@ -1,58 +0,0 @@
-<?php
-
-
-namespace app\admin\controller\distribution;
-
-
-use app\admin\logic\distribution\ApplyLogic;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-use think\facade\View;
-
-class Apply extends AdminBase
-{
-    /**
-     * @Notes: 分销申请列表
-     * @Author: 张无忌
-     */
-    public function lists()
-    {
-        if ($this->request->isAjax()) {
-            $get = $this->request->get();
-            $lists = ApplyLogic::lists($get);
-            return JsonServer::success('获取成功', $lists);
-        }
-
-        return view();
-    }
-
-    /**
-     * @Notes: 分销申请详细
-     * @Author: 张无忌
-     */
-    public function detail()
-    {
-        $id = $this->request->get('id');
-        View::assign('detail', ApplyLogic::detail($id));
-        return view();
-    }
-
-    /**
-     * @Notes: 审核分销申请
-     * @Author: 张无忌
-     */
-    public function audit()
-    {
-        if ($this->request->isAjax()) {
-            $post = $this->request->post();
-            $res = ApplyLogic::audit($post);
-            if ($res === false) {
-                $message = ApplyLogic::getError() ?: '审核失败';
-                return JsonServer::error($message);
-            }
-            return JsonServer::success('审核成功');
-        }
-
-        return view();
-    }
-}

+ 0 - 89
app/admin/controller/distribution/Center.php

@@ -1,89 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\CenterLogic;
-use app\common\basics\AdminBase;
-use app\common\model\distribution\Distribution;
-use app\common\model\distribution\DistributionLevel;
-use app\common\model\user\User;
-use app\common\server\JsonServer;
-use app\common\model\distribution\DistributionOrderGoods;
-
-class Center extends AdminBase
-{
-    public function data()
-    {
-        // 已结算: 已结算
-        $settled = DistributionOrderGoods::where(['status'=>2])->sum('money');
-        // 预估: 待返佣 + 已结算
-        $estimate = DistributionOrderGoods::where('status', 'in', [1, 2])->sum('money');
-        return view('', [
-            'settled' => $settled,
-            'estimate' => $estimate
-        ]);
-    }
-
-    /**
-     * @notes 数据概览
-     * @return \think\response\Json
-     * @author Tab
-     * @date 2021/9/6 14:35
-     */
-    public function center()
-    {
-        $data = CenterLogic::center();
-        return view('', ['data' => $data]);
-    }
-
-    /**
-     * @notes 分销初始化数据
-     * @return \think\response\Json
-     * @author Tab
-     * @date 2021/9/6 14:26
-     */
-    public function updateTable()
-    {
-        try {
-            $defaultLevel = DistributionLevel::where('is_default', 1)->findOrEmpty()->toArray();
-            if (empty($defaultLevel)) {
-                // 没有默认等级,初始化
-                DistributionLevel::create([
-                    'name' => '默认等级',
-                    'weights' => '1',
-                    'is_default' => '1',
-                    'remark' => '默认等级',
-                    'update_relation' => '1'
-                ]);
-            }
-            // 默认分销会员等级
-            $defaultLevelId = DistributionLevel::where('is_default', 1)->value('id');
-            // 生成分销基础信息表
-            $users = User::field('id,is_distribution')
-                ->where(['del' => 0])
-                ->select()
-                ->toArray();
-            $distribution = Distribution::column('user_id');
-            $addData = [];
-            foreach($users as $item) {
-                if (in_array($item['id'], $distribution)) {
-                    // 已有基础分销记录,跳过
-                    continue;
-                }
-                $data = [
-                    'user_id' => $item['id'],
-                    'level_id' => $defaultLevelId,
-                    'is_distribution' => $item['is_distribution'],
-                    'is_freeze' => 0,
-                    'remark' => '',
-                ];
-                $addData[] = $data;
-            }
-            $distributionModel = new Distribution();
-            $distributionModel->saveAll($addData);
-
-            return JsonServer::success('初始化数据完成');
-        } catch(\Exception $e) {
-            return JsonServer::error($e->getMessage());
-        }
-    }
-}

+ 0 - 47
app/admin/controller/distribution/DistributionGoods.php

@@ -1,47 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\DistributionGoodsLogic;
-use app\common\basics\AdminBase;
-use app\admin\logic\goods\CategoryLogic as MallCategoryLogic;
-use app\common\server\JsonServer;
-use app\shop\logic\goods\CategoryLogic as ShopCategoryLogic;
-
-/**
- * 分销商品
- * Class DistributionGoodsLogic
- * @package app\admin\controller\distribution
- */
-class DistributionGoods extends AdminBase
-{
-    /**
-     * @notes 分销商品列表页
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/2 17:30
-     */
-    public function index()
-    {
-        if ($this->request->isPost()) {
-            $params = $this->request->post();
-            $lists = DistributionGoodsLogic::lists($params);
-            return JsonServer::success('', $lists);
-        }
-        // 显示分销商品列表页
-        $cate_list = MallCategoryLogic::categoryTreeeTree();
-        return view('', ['cate_list' => $cate_list]);
-    }
-
-    /**
-     * @notes 查看商品佣金比例
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/2 17:57
-     */
-    public function detail()
-    {
-        $params = $this->request->get();
-        $detail = DistributionGoodsLogic::detail($params);
-        return view('', ['detail' => $detail]);
-    }
-}

+ 0 - 84
app/admin/controller/distribution/DistributionLevel.php

@@ -1,84 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\DistributionLevelLogic;
-use app\admin\validate\distribution\DistributionLevelValidate;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-
-class DistributionLevel extends AdminBase
-{
-    /**
-     * @notes 分销等级列表
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/1 11:01
-     */
-    public function index()
-    {
-        if ($this->request->isPost()) {
-            $result = DistributionLevelLogic::index();
-            return JsonServer::success('', $result);
-        }
-        return view();
-    }
-
-    /**
-     * @notes 添加分销等级
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/1 12:02
-     */
-    public function add()
-    {
-        if ($this->request->isPost()) {
-            $params = (new DistributionLevelValidate())->goCheck('add');
-            $result = DistributionLevelLogic::add($params);
-            if($result) {
-                return JsonServer::success('添加成功');
-            }
-            return JsonServer::error(DistributionLevelLogic::getError());
-        }
-        // 显示添加页面
-        return view();
-    }
-
-    /**
-     * @notes 编辑分销等级
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/1 15:39
-     */
-    public function edit()
-    {
-        if ($this->request->isPost()) {
-            $params = (new DistributionLevelValidate())->goCheck('edit');
-            $result = DistributionLevelLogic::edit($params);
-            if($result) {
-                return JsonServer::success('编辑成功');
-            }
-            return JsonServer::error(DistributionLevelLogic::getError());
-        }
-
-        $params = $this->request->get();
-        $detail = DistributionLevelLogic::detail($params);
-        $template = $detail['is_default'] ? 'edit_default' : 'edit';
-        return view($template, ['detail' => $detail]);
-    }
-
-    /**
-     * @notes 删除分销等级
-     * @return \think\response\Json
-     * @author Tab
-     * @date 2021/9/1 16:18
-     */
-    public function delete()
-    {
-        $params = $this->request->post();
-        $result = DistributionLevelLogic::delete($params);
-        if($result) {
-            return JsonServer::success('删除成功');
-        }
-        return JsonServer::error(DistributionLevelLogic::getError());
-    }
-}

+ 0 - 112
app/admin/controller/distribution/DistributionMember.php

@@ -1,112 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\DistributionLevelLogic;
-use app\admin\logic\distribution\DistributionMemberLogic;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-
-/**
- * 分销会员
- * Class DistributionMember
- * @package app\admin\controller\distribution
- */
-class DistributionMember extends AdminBase
-{
-    /**
-     * @notes 分销会员列表
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/2 18:26
-     */
-    public function index()
-    {
-        if ($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = DistributionMemberLogic::lists($params);
-            return JsonServer::success('', $result);
-        }
-        $levels = DistributionLevelLogic::getLevels();
-        return view('', ['levels' => $levels]);
-    }
-
-    /**
-     * @notes 开通分销会员
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/2 19:32
-     */
-    public function open()
-    {
-        if($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = DistributionMemberLogic::open($params);
-            if($result) {
-                return JsonServer::success('开通成功');
-            }
-            return JsonServer::error(DistributionMemberLogic::getError());
-        }
-        $levels = DistributionLevelLogic::getLevels();
-        return view('', ['levels' => $levels]);
-    }
-
-    /**
-     * @notes 用户列表
-     * @return \think\response\Json|\think\response\View
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\DbException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @author Tab
-     * @date 2021/9/3 11:50
-     */
-    public function userLists()
-    {
-        if ($this->request->isPost()) {
-            $params = $this->request->post();
-            $lists = DistributionMemberLogic::getUserLists($params);
-            return JsonServer::success('', $lists);
-        }
-        return view();
-    }
-
-    /**
-     * @notes 分销会员等级调整
-     * @return \think\response\Json|\think\response\View
-     * @author Tab
-     * @date 2021/9/3 14:10
-     */
-    public function adjust()
-    {
-        if($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = DistributionMemberLogic::adjust($params);
-            if($result) {
-                return JsonServer::success('调整成功');
-            }
-            return JsonServer::error(DistributionMemberLogic::getError());
-        }
-        $params = $this->request->get();
-        $user = DistributionMemberLogic::getUser($params);
-        $levels = DistributionLevelLogic::getLevels();
-        return view('', [
-            'user' => $user,
-            'levels' => $levels
-        ]);
-    }
-
-    /**
-     * @notes 冻结资格/恢复资格
-     * @return \think\response\Json
-     * @author Tab
-     * @date 2021/9/3 14:20
-     */
-    public function isFreeze()
-    {
-        $params = $this->request->post();
-        $result = DistributionMemberLogic::isFreeze($params);
-        if($result) {
-            return JsonServer::success('操作成功');
-        }
-        return JsonServer::error(DistributionMemberLogic::getError());
-    }
-}

+ 0 - 25
app/admin/controller/distribution/DistributionOrder.php

@@ -1,25 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\DistributionOrderLogic;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-
-class DistributionOrder extends AdminBase
-{
-    /**
-     * @notes 分销订单列表
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/3 16:53
-     */
-    public function index()
-    {
-        if($this->request->isPost()) {
-            $params = $this->request->post();
-            $result = DistributionOrderLogic::lists($params);
-            return JsonServer::success('', $result);
-        }
-        return view();
-    }
-}

+ 0 - 49
app/admin/controller/distribution/DistributionSetting.php

@@ -1,49 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\DistributionSettingLogic;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-
-class DistributionSetting extends AdminBase
-{
-    /**
-     * @notes 基础设置
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/1 9:14
-     */
-    public function index()
-    {
-        $config = DistributionSettingLogic::getConfig();
-        return view('', ['config' => $config]);
-    }
-
-    /**
-     * @notes 分销设置
-     * @return \think\response\Json
-     * @author Tab
-     * @date 2021/9/1 9:15
-     */
-    public function set()
-    {
-        $params = $this->request->post();
-        $result = DistributionSettingLogic::set($params);
-        if ($result) {
-            return JsonServer::success('设置成功');
-        }
-        return JsonServer::error(DistributionSettingLogic::getError());
-    }
-
-    /**
-     * @notes 结算设置
-     * @return \think\response\View
-     * @author Tab
-     * @date 2021/9/1 9:17
-     */
-    public function settlement()
-    {
-        $config = DistributionSettingLogic::getConfig();
-        return view('', ['config' => $config]);
-    }
-}

+ 0 - 154
app/admin/controller/distribution/Member.php

@@ -1,154 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\common\basics\AdminBase;
-use app\common\model\distribution\DistributionMemberApply;
-use app\common\server\JsonServer;
-use app\admin\logic\distribution\MemberLogic;
-use app\admin\validate\distribution\MemberValidate;
-use think\exception\ValidateException;
-
-class Member extends AdminBase
-{
-    public function index()
-    {
-        if ($this->request->isAjax()) {
-            $get = $this->request->get();
-            $type = $get['type'] ?? 'member';
-            if ($type == 'member') {
-                return JsonServer::success('获取成功', MemberLogic::memberLists($get));
-            }
-            return JsonServer::success('获取成功', MemberLogic::auditLists($get));
-        }
-
-        return view('index', ['status' => DistributionMemberApply::getApplyStatus(true)]);
-    }
-
-    public function addMember()
-    {
-        if ($this->request->isAjax()) {
-            $post = $this->request->post();
-            try{
-                validate(MemberValidate::class)->scene('add')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-
-            $result = MemberLogic::addMember($post);
-            if($result === true) {
-               return JsonServer::success('添加成功');
-            }
-            return JsonServer::error($result);
-        }
-        return view();
-    }
-
-    public function info()
-    {
-        $get = $this->request->get();
-        $info = MemberLogic::getMemberInfo($get);
-        return view('info', ['detail'=>$info]);
-    }
-
-    public function fans()
-    {
-        if ($this->request->isAjax()) {
-            $get = $this->request->get();
-            return JsonServer::success('', MemberLogic::getFansLists($get));
-        }
-
-        $user_id = $this->request->get('id');
-        return view('', ['user_id'=>$user_id]);
-    }
-
-    public function earningsDetail()
-    {
-        if ($this->request->isAjax()) {
-            $get = $this->request->get();
-            return JsonServer::success('', MemberLogic::getEarningsDetail($get));
-        }
-
-        $user_id = $this->request->get('id');
-        return view('', ['user_id'=>$user_id]);
-    }
-
-    public function updateLeader()
-    {
-        if ($this->request->isAjax()) {
-            $post = $this->request->post();
-            try{
-                validate(MemberValidate::class)->scene('updateLeader')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            $result = MemberLogic::updateRelation($post);
-            if ($result === true){
-                return JsonServer::success('操作成功');
-            }
-            return JsonServer::error($result);
-        }
-
-        $user_id = $this->request->get('id');
-        return view('',[
-            'first_leader' => MemberLogic::getLeaderInfo($user_id),
-            'user_id' => $user_id
-        ]);
-    }
-
-    public function freeze()
-    {
-        if ($this->request->isAjax()) {
-            $post = $this->request->post();
-            try{
-                validate(MemberValidate::class)->scene('freeze')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            $result = MemberLogic::freeze($post);
-            if($result === true) {
-                return JsonServer::success('操作成功');
-            }
-            return JsonServer::error('操作失败');
-        }
-    }
-
-    // 删除分销资格
-    public function del()
-    {
-        if($this->request->isPost()) {
-            $post = $this->request->post();
-            $result = MemberLogic::del($post);
-            if($result === true) {
-                return JsonServer::success('操作成功');
-            }
-            return JsonServer::error('操作失败');
-        }
-    }
-
-
-    /**
-     * 审核分销会员
-     */
-    public function audit()
-    {
-        if ($this->request->isAjax()) {
-            $post = $this->request->post();
-            try{
-                validate(MemberValidate::class)->scene('audit')->check($post);
-            }catch(ValidateException $e) {
-                return JsonServer::error($e->getError());
-            }
-            if ($post['type'] == 'pass') {
-                $res = MemberLogic::auditPass($post);
-            } else {
-                $res = MemberLogic::auditRefuse($post);
-            }
-
-            if ($res !== true) {
-                return JsonServer::error('操作失败');
-            }
-            return JsonServer::success('操作成功');
-        }
-    }
-
-}

+ 0 - 22
app/admin/controller/distribution/Record.php

@@ -1,22 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\admin\logic\distribution\RecordLogic;
-use app\common\basics\AdminBase;
-use app\common\server\JsonServer;
-use app\common\utils\Time;
-
-class Record extends AdminBase
-{
-    public function lists()
-    {
-        if($this->request->isAjax()) {
-            $get = $this->request->get();
-            $data = RecordLogic::lists($get);
-            return JsonServer::success('', $data);
-        }
-        return view('', [
-            'time' => Time::getTime()
-        ]);
-    }
-}

+ 0 - 36
app/admin/controller/distribution/Setting.php

@@ -1,36 +0,0 @@
-<?php
-namespace app\admin\controller\distribution;
-
-use app\common\basics\AdminBase;
-use app\common\server\ConfigServer;
-use app\common\server\JsonServer;
-
-class Setting extends AdminBase
-{
-    /**
-     * 分销设置
-     */
-    public function setting()
-    {
-        if($this->request->isPost()) {
-            $post = $this->request->post();
-            ConfigServer::set('distribution', 'is_open', $post['is_open']);
-            ConfigServer::set('distribution', 'member_apply', $post['member_apply']);
-            if(isset($post['image'])) {
-                // 图片链接去除域名再入库
-                $domain = $this->request->domain();
-                $post['image'] = str_replace($domain, '', $post['image']);
-                ConfigServer::set('distribution', 'image', $post['image']);
-            }else{
-                ConfigServer::set('distribution', 'image', '');
-            }
-            return JsonServer::success('设置成功');
-        }
-        $config = [
-            'is_open' => ConfigServer::get('distribution', 'is_open', 1),
-            'member_apply' => ConfigServer::get('distribution', 'member_apply', 1),
-            'image' => ConfigServer::get('distribution', 'image', ''),
-        ];
-        return view('', ['config' => $config]);
-    }
-}

+ 0 - 143
app/admin/logic/distribution/ApplyLogic.php

@@ -1,143 +0,0 @@
-<?php
-
-
-namespace app\admin\logic\distribution;
-
-
-use app\common\basics\Logic;
-use app\common\logic\DistributionLogic;
-use app\common\model\distribution\Distribution;
-use app\common\model\distribution\DistributionMemberApply;
-use app\common\model\user\User;
-use app\common\server\AreaServer;
-use app\common\server\UrlServer;
-use think\facade\Db;
-
-class ApplyLogic extends Logic
-{
-    /**
-     * @Notes: 分销申请列表
-     * @Author: 张无忌
-     * @param $get
-     * @return array
-     */
-    public static function lists($get)
-    {
-        try {
-            $where[] = ['DMA.status', '=', $get['type'] ?? 0];
-            $where[] = ['U.user_delete', '=', 0];
-            if (!empty($get['keyword']) and $get['keyword']) {
-                switch ($get['keyword_type']) {
-                    case 'sn':
-                        $where[] = ['U.sn', 'like', '%'.$get['keyword'].'%'];
-                        break;
-                    case 'nickname':
-                        $where[] = ['U.nickname', 'like', '%'.$get['keyword'].'%'];
-                        break;
-                    case 'mobile':
-                        $where[] = ['U.mobile', '=', $get['keyword']];
-                        break;
-                }
-            }
-
-            $model = new DistributionMemberApply();
-            $lists = $model->field(['DMA.*'])->alias('DMA')
-                ->where($where)
-                ->with(['user.level'])
-                ->join('user U', 'U.id = DMA.user_id')
-                ->paginate([
-                    'page'      => $get['page'],
-                    'list_rows' => $get['limit'],
-                    'var_page' => 'page'
-                ])->toArray();
-
-            foreach ($lists['data'] as &$item) {
-                if ($item['user']) {
-                    $item['user']['avatar'] = UrlServer::getFileUrl($item['user']['avatar']);
-                }
-                $item['region'] = AreaServer::getAddress([
-                    $item['province'],
-                    $item['city'],
-                    $item['district']]
-                );
-            }
-
-            return ['count'=>$lists['total'], 'lists'=>$lists['data']];
-        } catch (\Exception $e) {
-            return ['error'=>$e->getMessage()];
-        }
-    }
-
-    /**
-     * @Notes: 分销申请详细
-     * @Author: 张无忌
-     * @param $id
-     * @return array
-     */
-    public static function detail($id)
-    {
-        $model = new DistributionMemberApply();
-        $detail = $model->field(true)
-            ->with(['user.level'])
-            ->findOrEmpty($id)
-            ->toArray();
-
-        $detail['status_text'] = DistributionMemberApply::getApplyStatus($detail['status']);
-        $detail['region'] = AreaServer::getAddress([
-                $detail['province'],
-                $detail['city'],
-                $detail['district']]
-        );
-
-        return $detail;
-    }
-
-    /**
-     * @Notes: 审核分销申请
-     * @Author: 张无忌
-     * @param $post
-     * @return bool
-     */
-    public static function audit($post)
-    {
-        Db::startTrans();
-        try {
-            if ($post['audit_status'] == 1) {
-                // 审核通过
-                $model = new DistributionMemberApply();
-                $apply = $model->field(true)->findOrEmpty((int)$post['id'])->toArray();
-
-                DistributionMemberApply::update([
-                    'status'        => $post['audit_status'],
-                    'denial_reason' => $post['denial_reason'] ?? '',
-                    'update_time'   => time()
-                ], ['id'=>(int)$post['id']]);
-
-                $distribution = Distribution::where('user_id', $apply['user_id'])->findOrEmpty()->toArray();
-                if (empty($distribution)) {
-                    // 生成分销基础信息表
-                    DistributionLogic::add($apply['user_id']);
-                }
-                // 更新分销基础信息表
-                Distribution::where('user_id', $apply['user_id'])->update([
-                    'is_distribution' => 1,
-                    'distribution_time' => time()
-                ]);
-            } else {
-                // 审核拒绝
-                DistributionMemberApply::update([
-                    'status'        => $post['audit_status'],
-                    'denial_reason' => $post['denial_reason'] ?? '',
-                    'update_time'   => time()
-                ], ['id'=>(int)$post['id']]);
-            }
-
-            Db::commit();
-            return true;
-        } catch (\Exception $e) {
-            Db::rollback();
-            static::$error = $e->getMessage();
-            return false;
-        }
-    }
-}

+ 0 - 143
app/admin/logic/distribution/CenterLogic.php

@@ -1,143 +0,0 @@
-<?php
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\distribution\Distribution;
-use app\common\model\distribution\DistributionOrderGoods;
-use app\common\server\UrlServer;
-
-class CenterLogic extends Logic
-{
-    /**
-     * @notes 数据概览
-     * @return array
-     * @author Tab
-     * @date 2021/9/6 14:40
-     */
-    public static function center()
-    {
-        $data = [
-            'earnings' => self::earnings(),
-            'members' => self::members(),
-            'topGoods' => self::topGoods(),
-            'topMembers' => self::topMembers(),
-        ];
-
-        return $data;
-    }
-
-    /**
-     * @notes 佣金数据
-     * @return array
-     * @author Tab
-     * @date 2021/9/6 14:46
-     */
-    public static function earnings()
-    {
-        // 累计已入账佣金
-        $totalSuccess = DistributionOrderGoods::where([
-            'status' => 2,
-        ])->sum('money');
-        // 今日已入账佣金
-        $totalTodaySuccess = DistributionOrderGoods::where([
-            'status' => 2,
-        ])->whereDay('settlement_time')->sum('money');
-        // 累计待结算佣金
-        $totalWait = DistributionOrderGoods::where([
-            'status' => 1,
-        ])->sum('money');
-        // 今日待结算佣金
-        $totalTodayWait = DistributionOrderGoods::where([
-            'status' => 1,
-        ])->whereDay('create_time')->sum('money');
-
-        return [
-            'total_success' => $totalSuccess,
-            'total_today_success' => $totalTodaySuccess,
-            'total_wait' => $totalWait,
-            'total_today_wait' => $totalTodayWait,
-        ];
-    }
-
-    /**
-     * @notes 分销会员数据
-     * @author Tab
-     * @date 2021/9/6 14:57
-     */
-    public static function members()
-    {
-        $members = Distribution::where('is_distribution', 1)->count();
-        $users = Distribution::count();
-        $proportion = 0;
-        if ($users) {
-            $proportion = round(($members / $users), 2) * 100;
-        }
-
-
-        return [
-            'members' => $members,
-            'proportion' => $proportion,
-        ];
-    }
-
-    /**
-     * @notes 分销商品排行榜
-     * @author Tab
-     * @date 2021/9/6 14:59
-     */
-    public static function topGoods()
-    {
-        $field = [
-            'sum(dog.money)' => 'total_money',
-            'og.image' => 'goods_image',
-            'og.goods_name',
-        ];
-        $where = [
-            'dog.status' => 2, // 已入账
-        ];
-        $topGoods = DistributionOrderGoods::alias('dog')
-            ->leftJoin('order_goods og', 'og.id = dog.order_goods_id')
-            ->field($field)
-            ->where($where)
-            ->group('dog.money,og.image,og.goods_name')
-            ->order('total_money', 'desc')
-            ->limit(10)
-            ->select()
-            ->toArray();
-
-        return $topGoods;
-    }
-
-    /**
-     * @notes 分销会员排行榜
-     * @return mixed
-     * @author Tab
-     * @date 2021/9/6 15:01
-     */
-    public static function topMembers()
-    {
-        $field = [
-            'sum(dog.money)' => 'total_money',
-            'u.avatar',
-            'u.nickname',
-        ];
-        $where = [
-            'dog.status' => 2, // 已入账
-        ];
-        $topMembers = DistributionOrderGoods::alias('dog')
-            ->leftJoin('user u', 'u.id = dog.user_id')
-            ->field($field)
-            ->where($where)
-            ->group('dog.money,u.avatar,u.nickname')
-            ->order('total_money', 'desc')
-            ->limit(10)
-            ->select()
-            ->toArray();
-
-        foreach($topMembers as &$item) {
-            $item['avatar'] = empty($item['avatar']) ? '' : UrlServer::getFileUrl($item['avatar']);
-        }
-
-        return $topMembers;
-    }
-}

+ 0 - 169
app/admin/logic/distribution/DistributionGoodsLogic.php

@@ -1,169 +0,0 @@
-<?php
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\distribution\DistributionGoods;
-use app\common\model\distribution\DistributionLevel;
-use app\common\model\goods\Goods;
-
-class DistributionGoodsLogic extends Logic
-{
-    /**
-     * @notes 分销商品列表
-     * @param $params
-     * @return array
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\DbException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @author Tab
-     * @date 2021/9/2 17:41
-     */
-    public static function lists($params)
-    {
-        $where = [
-            ['del', '<>', '1'],
-        ];
-        // 商品信息
-        if (isset($params['keyword']) && !empty($params['keyword'])) {
-            $where[] = ['name|code', 'like', '%'. $params['keyword']. '%'];
-        }
-        // 平台商品分类
-        if (isset($params['platform_cate_id']) && $params['platform_cate_id'] != 'all') {
-            $where[] = ['first_cate_id|second_cate_id|third_cate_id', '=', $params['platform_cate_id']];
-        }
-
-        $field = [
-            'id',
-            'code',
-            'name',
-            'image',
-            'max_price',
-            'min_price',
-            'id' => 'distribution_flag',
-            'shop_id',
-        ];
-        $lists = Goods::with(['Shop'])
-            ->field($field)
-            ->where($where)
-            ->withSearch('is_distribution', ["is_distribution" => 1])
-            ->page($params['page'], $params['limit'])
-            ->order([
-                'shop_id' => 'desc',
-                'id' => 'desc'
-            ])
-            ->select()
-            ->toArray();
-
-        $count = Goods::field($field)
-            ->where($where)
-            ->withSearch('is_distribution', ["is_distribution" => 1])
-            ->count();
-
-        return [
-            'count' => $count,
-            'lists' => $lists
-        ];
-    }
-
-    /**
-     * @notes 商品详情
-     * @param $params
-     * @return array
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\DbException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @author Tab
-     * @date 2021/9/1 19:59
-     */
-    public static function detail($params)
-    {
-        // 商品信息
-        $goods = Goods::field('id,code,name')->with('goods_item')->findOrEmpty($params['id'])->toArray();
-        // 分销等级信息
-        $distributionLevelLists = DistributionLevel::order('weights', 'asc')->select()->toArray();
-        // 商品分销信息
-        $distributionGoods = DistributionGoods::where('goods_id', $params['id'])->select()->toArray();
-        if(empty($distributionGoods)) {
-            // 未参与分销
-            $goods['is_distribution'] = 0;
-            $goods['rule'] = 1;
-            $ratio = self::formatLevel($distributionLevelLists, $goods);
-        } else {
-            $goods['is_distribution'] = $distributionGoods[0]['is_distribution'];
-            $goods['rule'] = $distributionGoods[0]['rule'];
-            if($distributionGoods[0]['rule'] == 1) {
-                $ratio = self::formatLevel($distributionLevelLists, $goods);
-            } else {
-                $ratio = self::formatGoods($distributionLevelLists, $goods);
-            }
-        }
-
-        return [
-            'goods' => $goods,
-            'ratio' => $ratio
-        ];
-    }
-
-    /**
-     * @notes 拼装分销等级佣金比例
-     * @param $distributionLevelLists
-     * @param $goods
-     * @return array
-     * @author Tab
-     * @date 2021/9/1 19:44
-     */
-    public static function formatLevel($distributionLevelLists, $goods)
-    {
-        $ratio = [];
-        foreach($distributionLevelLists as $level) {
-            foreach($goods['goods_item'] as $item) {
-                $temp = [
-                    'level_id' => $level['id'],
-                    'level_name' => $level['name'],
-                    'first_ratio' => $level['first_ratio'],
-                    'second_ratio' => $level['second_ratio'],
-                    'goods_id' => $item['goods_id'],
-                    'item_id' => $item['id'],
-                    'spec_value_str' => $item['spec_value_str'],
-                    'price' => $item['price']
-                ];
-                $ratio[] = $temp;
-            }
-        }
-        return $ratio;
-    }
-
-    /**
-     * @notes 拼装单独设置的佣金比例
-     * @param $distributionLevelLists
-     * @param $goods
-     * @param $distributionGoods
-     * @return array
-     * @author Tab
-     * @date 2021/9/2 9:28
-     */
-    public static function formatGoods($distributionLevelLists, $goods)
-    {
-        $ratio = [];
-        foreach($distributionLevelLists as $level) {
-            foreach($goods['goods_item'] as $item) {
-                $record = DistributionGoods::where([
-                    'level_id' => $level['id'],
-                    'item_id' =>  $item['id'],
-                ])->findOrEmpty()->toArray();
-                $temp = [
-                    'level_id' => $level['id'],
-                    'level_name' => $level['name'],
-                    'first_ratio' => $record['first_ratio'],
-                    'second_ratio' => $record['second_ratio'],
-                    'goods_id' => $item['goods_id'],
-                    'item_id' => $item['id'],
-                    'spec_value_str' => $item['spec_value_str'],
-                    'price' => $item['price']
-                ];
-                $ratio[] = $temp;
-            }
-        }
-        return $ratio;
-    }
-}

+ 0 - 514
app/admin/logic/distribution/DistributionLevelLogic.php

@@ -1,514 +0,0 @@
-<?php
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\distribution\Distribution;
-use app\common\model\distribution\DistributionGoods;
-use app\common\model\distribution\DistributionLevel;
-use app\common\model\distribution\DistributionLevelUpdate;
-use app\common\model\distribution\DistributionOrderGoods;
-use app\common\model\order\Order;
-use app\common\model\order\OrderTrade;
-use think\facade\Db;
-
-class DistributionLevelLogic extends Logic
-{
-    /**
-     * @notes 分销等级列表
-     * @return array
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\DbException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @author Tab
-     * @date 2021/9/1 16:19
-     */
-    public static function index()
-    {
-        $field = [
-            'id',
-            'name',
-            'weights' => 'weights_desc',
-            'first_ratio',
-            'second_ratio',
-            'is_default',
-            'id' => 'members_num'
-        ];
-        $lists = DistributionLevel::field($field)
-            ->order('weights', 'asc')
-            ->select()
-            ->toArray();
-
-        $count = DistributionLevel::count();
-
-        return [
-            'count' => $count,
-            'lists' => $lists,
-        ];
-    }
-
-    /**
-     * @notes 添加分销会员等级
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/1 14:53
-     */
-    public static function add($params)
-    {
-        Db::startTrans();
-        try{
-            // 写入等级主表
-            $params['remark'] = $params['remark'] ?? '';
-            // 佣金比例保留两位小数
-            $params['first_ratio'] = !empty($params['first_ratio']) ? round($params['first_ratio'], 2) : 0;
-            $params['second_ratio'] = !empty($params['second_ratio']) ? round($params['second_ratio'], 2) : 0;
-            $newLevel = DistributionLevel::create($params);
-
-            // 写入升级条件表
-            self::addUpdateCondition($params, $newLevel->id);
-
-            // 处理分销商品比例
-            self::updateDistributionGoods($newLevel->id);
-
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    /**
-     * @notes 添加更新升级条件
-     * @param $params
-     * @param $level_id
-     * @throws \Exception
-     * @author Tab
-     * @date 2021/9/1 15:08
-     */
-    public static function addUpdateCondition($params, $level_id)
-    {
-        $updateConditionData = [];
-        foreach($params['update_condition'] as $key) {
-            // 判断是否在规定的条件字段
-            if(!in_array($key, DistributionLevel::UPDATE_CONDITION_FIELDS, true)) {
-                continue;
-            }
-            if ($params[$key] < 0) {
-                throw new \Exception('升级条件不允许小于0');
-            }
-            // 获取键对应值的字段名
-            $valueField = DistributionLevel::getValueFiled($key);
-            $updateConditionData[] = [
-                'level_id' => $level_id,
-                'key' => $key,
-                $valueField => $params[$key]
-            ];
-        }
-        (new DistributionLevelUpdate())->saveAll($updateConditionData);
-    }
-
-    /**
-     * @notes 获取分销等级详情
-     * @param $params
-     * @return array
-     * @author Tab
-     * @date 2021/9/1 15:36
-     */
-    public static function detail($params)
-    {
-        $level = DistributionLevel::withoutField('create_time,update_time,delete_time')->findOrEmpty($params['id']);
-        if($level->isEmpty()) {
-            return [];
-        }
-        $level = $level->toArray();
-        // 默认等级
-        if($level['is_default']) {
-            unset($level['self_ratio']);
-            unset($level['third_ratio']);
-            unset($level['update_relation']);
-            return $level;
-        }
-        // 自定义等级
-        $level['update_condition'] = self::getUpdateCondition($level);
-        unset($level['self_ratio']);
-        unset($level['third_ratio']);
-
-        return $level;
-    }
-
-    /**
-     * @notes 获取升级条件
-     * @param $level
-     * @return array
-     * @author Tab
-     * @date 2021/9/1 15:36
-     */
-    public static function getUpdateCondition($level)
-    {
-        $updateCondition = DistributionLevelUpdate::where('level_id', $level['id'])->column('key,value_int,value_decimal,value_text');
-        $updateConditionData = [];
-        foreach($updateCondition as $item) {
-            if($item['value_int']) {
-                $updateConditionData[$item['key']] = $item['value_int'];
-                continue;
-            }
-            if($item['value_decimal']) {
-                $updateConditionData[$item['key']] = $item['value_decimal'];
-                continue;
-            }
-            if($item['value_text']) {
-                $updateConditionData[$item['key']] = $item['value_text'];
-                continue;
-            }
-        }
-        $data = [
-            'keys' => array_keys($updateConditionData),
-            'data' => $updateConditionData
-        ];
-        // 补全条件
-        foreach(DistributionLevel::UPDATE_CONDITION_FIELDS as $field) {
-            if(!isset($data['data'][$field])) {
-                $data['data'][$field] =  '';
-            }
-        }
-        return $data;
-    }
-
-    /**
-     * @notes 编辑分销等级
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/1 16:20
-     */
-    public static function edit($params)
-    {
-        Db::startTrans();
-        try{
-            $params['remark'] = $params['remark'] ?? '';
-            $level = DistributionLevel::findOrEmpty($params['id']);
-            if($level->isEmpty()) {
-                throw new \Exception('等级不存在');
-            }
-
-            // 佣金比例保留两位小数
-            $params['first_ratio'] = !empty($params['first_ratio']) ? round($params['first_ratio'], 2) : 0;
-            $params['second_ratio'] = !empty($params['second_ratio']) ? round($params['second_ratio'], 2) : 0;
-
-            // 默认等级
-            if($level->is_default) {
-                $level->allowField(['name', 'first_ratio', 'second_ratio','remark'])->save($params);
-                Db::commit();
-                return true;
-            }
-            // 自定义等级 - 更新主表信息
-            if(!$params['weights'] > 1) {
-                throw new \Exception('级别须大于1');
-            }
-            if(!isset($params['update_relation'])) {
-                throw new \Exception('请选择升级关系');
-            }
-            if(!isset($params['update_condition']) || !count($params['update_condition'])) {
-                throw new \Exception('请选择升级条件');
-            }
-            $level->allowField(['name', 'weights', 'first_ratio', 'second_ratio','remark', 'update_relation'])->save($params);
-
-            // 自定义等级 - 删除旧升级条件
-            $deleteIds = DistributionLevelUpdate::where('level_id', $level->id)->column('id');
-            DistributionLevelUpdate::destroy($deleteIds);
-
-            // 自定义等级 - 添加新的升级条件
-            self::addUpdateCondition($params, $level->id);
-
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    /**
-     * @notes 删除分销等级
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/1 16:21
-     */
-    public static function delete($params)
-    {
-        Db::startTrans();
-        try{
-            $level = DistributionLevel::findOrEmpty($params['id']);
-            if($level->isEmpty()) {
-                throw new \Exception('等级不存在');
-            }
-            if($level->is_default) {
-                throw new \Exception('系统默认等级不允许删除');
-            }
-
-            // 重置该等级下的分销会员为系统默认等级
-            $defaultId = DistributionLevel::where('is_default', 1)->value('id');
-            Distribution::where('level_id', $level->id)->update(['level_id' => $defaultId]);
-
-            // 删除升级条件
-            $deleteIds = DistributionLevelUpdate::where('level_id', $level->id)->column('id');
-            DistributionLevelUpdate::destroy($deleteIds);
-
-            // 删除该等级下的分销商品比例
-            $deleteIds = DistributionGoods::where('level_id', $level->id)->column('id');
-            DistributionGoods::destroy($deleteIds);
-
-            // 删除等级
-            $level->delete();
-
-            Db::commit();
-            return true;
-        }catch(\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    /**
-     * @notes 更新分销会员等级
-     * @param $userId
-     * @return false
-     * @author Tab
-     * @date 2021/9/2 16:39
-     */
-    public static function updateDistributionLevel($userId)
-    {
-        // 非默认等级
-        $levels = DistributionLevel::where('is_default', 0)
-            ->order('weights', 'desc')
-            ->column('id,name,weights,update_relation', 'id');
-
-        $userInfo = Distribution::alias('d')
-            ->leftJoin('distribution_level dl', 'dl.id = d.level_id')
-            ->field('d.is_distribution,d.level_id,dl.weights')
-            ->where('d.user_id', $userId)
-            ->findOrEmpty()
-            ->toArray();
-
-        // 非分销会员直接返回false
-        if(empty($userInfo) || !$userInfo['is_distribution']) {
-            return false;
-        }
-
-        foreach($levels as $level) {
-            if(self::isMeetConditions($userId, $level) && $level['weights'] > $userInfo['weights']) {
-                // 满足升级条件且是升更高的等级
-                Distribution::where(['user_id' => $userId])->update(['level_id' => $level['id']]);
-                break;
-            }
-        }
-    }
-
-    /**
-     * @notes 判断是否满足当前等级的升级条件
-     * @param $userId
-     * @param $level
-     * @return bool
-     * @author Tab
-     * @date 2021/9/2 16:42
-     */
-    public static function isMeetConditions($userId, $level)
-    {
-        $updateRelation = $level['update_relation'];
-        // 任一条件满足升级
-        if($updateRelation == 1) {
-            $flagOr = self::singleConsumptionAmountFlag($userId, $level, $updateRelation)
-                || self::cumulativeConsumptionAmountFlag($userId, $level, $updateRelation)
-                || self::cumulativeConsumptionTimesFlag($userId, $level, $updateRelation)
-                || self::returnedCommissionFlag($userId, $level, $updateRelation);
-            return $flagOr;
-        }
-
-        // 全部条件满足升级
-        if($updateRelation == 2) {
-            $flagAnd = self::singleConsumptionAmountFlag($userId, $level, $updateRelation)
-                && self::cumulativeConsumptionAmountFlag($userId, $level, $updateRelation)
-                && self::cumulativeConsumptionTimesFlag($userId, $level, $updateRelation)
-                && self::returnedCommissionFlag($userId, $level, $updateRelation);
-            return $flagAnd;
-        }
-    }
-
-    /**
-     * @notes 判断是否满足单笔消费金额条件
-     * @param $userId
-     * @param $level
-     * @return bool
-     * @author Tab
-     * @date 2021/9/2 16:44
-     */
-    public static function singleConsumptionAmountFlag($userId, $level, $updateRelation)
-    {
-        $condition = DistributionLevelUpdate::field('value_int,value_decimal,value_text')
-            ->where([
-                'level_id' => $level['id'],
-                'key' => 'singleConsumptionAmount'
-            ])
-            ->findOrEmpty();
-        if($condition->isEmpty()) {
-            // 等级条件为满足任一条件(updateRelation=1)  返回false (满足已设置的任一条件时才升级,未设置的条件归为未满足,返回false)
-            // 等级条件为满足全部条件(updateRelation=2)  返回true  (满足已设置的所有条件时才升级,未设置的条件归为已满足,返回true)
-            return $updateRelation == 2;
-        }
-        $recentOrder = Order::where([
-            'user_id' =>  $userId,
-            'pay_status' => 1
-        ])
-            ->order('id', 'desc')
-            ->findOrEmpty();
-        if($recentOrder->isEmpty()) {
-            return false;
-        }
-        $singleConsumptionAmount = OrderTrade::where('id', $recentOrder['trade_id'])->findOrEmpty()->toArray();
-        if($singleConsumptionAmount['order_amount'] >= $condition['value_decimal']) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @notes 判断是否满足累计消费金额条件
-     * @param $userId
-     * @param $level
-     * @return bool
-     * @author Tab
-     * @date 2021/9/2 16:50
-     */
-    public static function cumulativeConsumptionAmountFlag($userId, $level, $updateRelation)
-    {
-        $condition = DistributionLevelUpdate::field('value_int,value_decimal,value_text')
-            ->where([
-                'level_id' => $level['id'],
-                'key' => 'cumulativeConsumptionAmount'
-            ])
-            ->findOrEmpty();
-        if($condition->isEmpty()) {
-            // 等级条件为满足任一条件(updateRelation=1)  返回false (满足已设置的任一条件时才升级,未设置的条件归为未满足,返回false)
-            // 等级条件为满足全部条件(updateRelation=2)  返回true  (满足已设置的所有条件时才升级,未设置的条件归为已满足,返回true)
-            return $updateRelation == 2;
-        }
-        $cumulativeConsumptionAmount = Order::where([
-            'user_id' =>  $userId,
-            'pay_status' => 1
-        ])->sum('order_amount');
-        if($cumulativeConsumptionAmount >= $condition['value_decimal']) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @notes 判断是否满足累计消费次数条件
-     * @param $userId
-     * @param $level
-     * @return bool
-     * @author Tab
-     * @date 2021/9/2 16:53
-     */
-    public static function cumulativeConsumptionTimesFlag($userId, $level, $updateRelation)
-    {
-        $condition = DistributionLevelUpdate::field('value_int,value_decimal,value_text')
-            ->where([
-                'level_id' => $level['id'],
-                'key' => 'cumulativeConsumptionTimes'
-            ])
-            ->findOrEmpty();
-        if($condition->isEmpty()) {
-            // 等级条件为满足任一条件(updateRelation=1)  返回false (满足已设置的任一条件时才升级,未设置的条件归为未满足,返回false)
-            // 等级条件为满足全部条件(updateRelation=2)  返回true  (满足已设置的所有条件时才升级,未设置的条件归为已满足,返回true)
-            return $updateRelation == 2;
-        }
-        $allTradeIds = Order::where([
-            'user_id' =>  $userId,
-            'pay_status' => 1
-        ])->column('trade_id');
-        $cumulativeConsumptionTimes = count(array_unique($allTradeIds));
-        if($cumulativeConsumptionTimes >= $condition['value_int']) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @notes 判断是否消费已返佣金条件
-     * @param $userId
-     * @param $level
-     * @return bool
-     * @author Tab
-     * @date 2021/9/2 17:06
-     */
-    public static function returnedCommissionFlag($userId, $level, $updateRelation)
-    {
-        $condition = DistributionLevelUpdate::field('value_int,value_decimal,value_text')
-            ->where([
-                'level_id' => $level['id'],
-                'key' => 'returnedCommission'
-            ])
-            ->findOrEmpty();
-        if($condition->isEmpty()) {
-            // 等级条件为满足任一条件(updateRelation=1)  返回false (满足已设置的任一条件时才升级,未设置的条件归为未满足,返回false)
-            // 等级条件为满足全部条件(updateRelation=2)  返回true  (满足已设置的所有条件时才升级,未设置的条件归为已满足,返回true)
-            return $updateRelation == 2;
-        }
-        $returnedCommission = DistributionOrderGoods::where([
-            'user_id' => $userId,
-            'status' => 2
-        ])->sum('money');
-        if($returnedCommission >= $condition['value_decimal']) {
-            return true;
-        }
-        return false;
-    }
-
-    /**
-     * @notes 获取所有分销会员等级
-     * @return array
-     * @author Tab
-     * @date 2021/9/2 18:31
-     */
-    public static function getLevels()
-    {
-        return DistributionLevel::order('weights', 'asc')->column('id, name,weights');
-    }
-
-    /**
-     * @notes 更新分销商品比例
-     * @param $levelId
-     * @author Tab
-     * @date 2021/9/7 17:27
-     */
-    public static function updateDistributionGoods($levelId)
-    {
-        // 处理单独设置比例的商品,新增分销会等级佣金比例初始化为0
-        $field = [
-            'shop_id',
-            'goods_id',
-            'item_id',
-        ];
-       $distribution = DistributionGoods::distinct(true)->field($field)->where('rule', 2)->select()->toArray();
-       $addData = [];
-       foreach($distribution as $item) {
-            $temp = [
-                'shop_id' => $item['shop_id'],
-                'goods_id' => $item['goods_id'],
-                'item_id' => $item['item_id'],
-                'level_id' => $levelId,
-                'first_ratio' => 0,
-                'second_ratio' => 0,
-                'rule' => 2,
-            ];
-            $addData[] = $temp;
-       }
-        (new  DistributionGoods())->saveAll($addData);
-    }
-}

+ 0 - 231
app/admin/logic/distribution/DistributionMemberLogic.php

@@ -1,231 +0,0 @@
-<?php
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\distribution\Distribution;
-use app\common\model\distribution\DistributionLevel;
-use app\common\model\distribution\DistributionOrderGoods;
-use app\common\model\user\User;
-use app\common\server\UrlServer;
-
-/**
- * 分销会员逻辑层
- * Class DistributionMemberLogic
- * @package app\admin\logic\distribution
- */
-class DistributionMemberLogic extends Logic
-{
-    /**
-     * @notes 分销会员列表
-     * @param $params
-     * @return array
-     * @author Tab
-     * @date 2021/9/2 18:44
-     */
-    public static function lists($params)
-    {
-        $where = [
-            ['d.is_distribution', '=', 1]
-        ];
-        // 用户信息
-        if (isset($params['keyword']) && !empty($params['keyword'])) {
-            $where[] = ['u.sn|u.nickname', 'like', '%'. $params['keyword'] .'%'];
-        }
-        // 分销等级
-        if (isset($params['level_id']) && $params['level_id'] != 'all') {
-            $where[] = ['d.id', '=', $params['level_id']];
-        }
-        // 分销状态
-        if (isset($params['is_freeze']) && $params['is_freeze'] != 'all') {
-            $where[] = ['d.is_freeze', '=', $params['is_freeze']];
-        }
-
-        $field = [
-            'u.id' => 'user_id',
-            'u.sn' => 'user_sn',
-            'u.avatar',
-            'u.nickname',
-            'u.user_delete',
-            'dl.id' => 'level_id',
-            'dl.weights',
-            'dl.name' => 'level_name',
-            'd.is_freeze',
-            'd.distribution_time',
-        ];
-        $lists = Distribution::alias('d')
-            ->leftJoin('user u', 'u.id = d.user_id')
-            ->leftJoin('distribution_level dl', 'dl.id = d.level_id')
-            ->field($field)
-            ->where($where)
-            ->order('u.id', 'desc')
-            ->page($params['page'], $params['limit'])
-            ->select()
-            ->toArray();
-
-        $count = Distribution::alias('d')
-            ->leftJoin('user u', 'u.id = d.user_id')
-            ->leftJoin('distribution_level dl', 'dl.id = d.level_id')
-            ->field($field)
-            ->where($where)
-            ->count();
-
-        foreach($lists as &$item) {
-            $item['avatar'] = empty($item['avatar']) ? '' : UrlServer::getFileUrl($item['avatar']);
-            $item['earnings'] = DistributionOrderGoods::getEarnings($item['user_id']);
-        }
-
-        return [
-            'count' => $count,
-            'lists' => $lists
-        ];
-    }
-
-    /**
-     * @notes 用户列表
-     * @param $params
-     * @return array
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\DbException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @author Tab
-     * @date 2021/9/3 9:55
-     */
-    public static function getUserLists($params)
-    {
-        $where[] = ['del', '=', 0];
-        $where[] = ['user_delete', '=', 0];
-        // 用户信息
-        if (isset($params['keyword']) && !empty($params['keyword'])) {
-            $where[] = ['sn|nickname', 'like', '%'. $params['keyword'] .'%'];
-        }
-
-        $lists = User::field('id,sn,nickname,id as distribution')
-            ->where($where)
-            ->withSearch(['distribution'], $params)
-            ->page($params['page'], $params['limit'])
-            ->select()
-            ->toArray();
-        $count = User::where($where)->withSearch(['distribution'], $params)->count();
-
-        return [
-            'count' => $count,
-            'lists' => $lists,
-        ];
-    }
-
-    /**
-     * @notes 开通分销会员
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/3 11:09
-     */
-    public  static function open($params)
-    {
-        try {
-            $user = User::where('id', $params['user_id'])->findOrEmpty()->toArray();
-            if(empty($user)) {
-                throw new \Exception('用户不存在');
-            }
-            if (User::UserIsDelete($params['user_id'])) {
-                throw new \Exception('用户已注销');
-            }
-            $distribution = Distribution::where('user_id', $params['user_id'])->findOrEmpty()->toArray();
-            if(!empty($distribution) && $distribution['is_distribution'] == 1) {
-                throw new \Exception('用户已是分销会员');
-            }
-            if(!empty($distribution) && $distribution['is_distribution'] == 0) {
-                Distribution::where('user_id', $params['user_id'])->update([
-                    'is_distribution'   => 1,
-                    'distribution_time' => time(),
-                    'level_id'          => $params['level_id'],
-                ]);
-            }
-            if(empty($distribution)) {
-                $data = [
-                    'user_id' => $params['user_id'],
-                    'level_id' => $params['level_id'],
-                    'is_distribution' => 1,
-                    'is_freeze' => 0,
-                    'remark' => '后台开通分销',
-                    'distribution_time' => time()
-                ];
-
-                Distribution::create($data);
-            }
-
-            return true;
-        } catch (\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    public static function getUser($params)
-    {
-        $field = [
-            'u.id' => 'user_id',
-            'u.sn' => 'user_sn',
-            'u.nickname' => 'user_nickname',
-            'dl.name' => 'level_name',
-            'dl.weights',
-        ];
-        $info = Distribution::alias('d')
-            ->leftJoin('user u', 'u.id = d.user_id')
-            ->leftJoin('distribution_level dl', 'dl.id = d.level_id')
-            ->field($field)
-            ->where('d.user_id', $params['id'])
-            ->findOrEmpty()
-            ->toArray();
-
-        return $info;
-    }
-
-    /**
-     * @notes 分销会员等级调整
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/3 14:14
-     */
-    public static function adjust($params)
-    {
-        try {
-            if (User::UserIsDelete($params['user_id'])) {
-                throw new \Exception('用户已注销');
-            }
-            Distribution::where(['user_id' => $params['user_id']])->update([
-                'level_id' => $params['level_id']
-            ]);
-
-            return true;
-        } catch (\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    /**
-     * @notes 冻结资格/恢复资格
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/3 14:24
-     */
-    public static function isFreeze($params)
-    {
-        try {
-            if (User::UserIsDelete($params['user_id'])) {
-                throw new \Exception('用户已注销');
-            }
-            Distribution::where(['user_id' => $params['user_id']])->update([
-                'is_freeze' => $params['is_freeze']
-            ]);
-
-            return true;
-        } catch(\Exception $e) {
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-}

+ 0 - 110
app/admin/logic/distribution/DistributionOrderLogic.php

@@ -1,110 +0,0 @@
-<?php
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\distribution\DistributionLevel;
-use app\common\model\distribution\DistributionOrderGoods;
-use app\common\model\user\User;
-use app\common\server\UrlServer;
-
-class DistributionOrderLogic extends Logic
-{
-    /**
-     * @notes 分销订单列表
-     * @param $params
-     * @return int[]
-     * @author Tab
-     * @date 2021/9/3 14:53
-     */
-    public static function lists($params)
-    {
-        $where= [];
-        // 订单信息
-        if (isset($params['order_keyword']) && !empty($params['order_keyword'])) {
-            $where[] = ['o.order_sn', '=', $params['order_keyword']];
-        }
-        // 商品名称
-        if (isset($params['goods_keyword']) && !empty($params['goods_keyword'])) {
-            $where[] = ['og.goods_name', 'like', '%'.$params['goods_keyword'].'%'];
-        }
-        // 分销会员
-        if (isset($params['distribution_keyword']) && !empty($params['distribution_keyword'])) {
-            $where[] = ['u.sn|u.nickname', 'like', '%'.$params['distribution_keyword'].'%'];
-        }
-        // 佣金状态
-        if (isset($params['status']) && !empty($params['status'])) {
-            $where[] = ['dog.status', '=', $params['status']];
-        }
-
-        $field = [
-            'o.id' => 'order_id',
-            'o.order_sn',
-            'o.create_time' => 'order_create_time',
-            'o.user_id' => 'order_user_id',
-            'u.id' => 'distribution_user_id',
-            'u.avatar' => 'distribution_avatar',
-            'u.sn' => 'distribution_sn',
-            'u.nickname' => 'distribution_nickname',
-            'og.image' => 'goods_image',
-            'og.goods_name' => 'goods_name',
-            'og.spec_value' => 'spec_value',
-            'og.goods_num' => 'goods_num',
-            'og.total_pay_price' => 'total_pay_price',
-            'dog.level_id',
-            'dog.level',
-            'dog.ratio',
-            'dog.money',
-            'dog.status' => 'status_desc',
-            'dog.settlement_time',
-            's.id' => 'shop_id',
-            's.name' => 'shop_name',
-            's.logo' => 'shop_logo',
-        ];
-
-        $lists = DistributionOrderGoods::alias('dog')
-            ->leftJoin('order o', 'o.id = dog.order_id')
-            ->leftJoin('user u', 'u.id = dog.user_id')
-            ->leftJoin('order_goods og', 'og.id = dog.order_goods_id')
-            ->leftJoin('distribution_level dl', 'dl.id = dog.level_id')
-            ->leftJoin('shop s', 's.id = dog.shop_id')
-            ->field($field)
-            ->where($where)
-            ->order('dog.id', 'desc')
-            ->page($params['page'], $params['limit'])
-            ->select()
-            ->toArray();
-
-        $count = DistributionOrderGoods::alias('dog')
-            ->leftJoin('order o', 'o.id = dog.order_id')
-            ->leftJoin('user u', 'u.id = dog.user_id')
-            ->leftJoin('order_goods og', 'og.id = dog.order_goods_id')
-            ->leftJoin('distribution_level dl', 'dl.id = dog.level_id')
-            ->leftJoin('shop s', 's.id = dog.shop_id')
-            ->field($field)
-            ->where($where)
-            ->count();
-
-        foreach($lists as &$item) {
-            $item['order_create_time'] = date('Y-m-d H:i:s', $item['order_create_time']);
-            $item['user_info'] = User::getUserInfo($item['order_user_id']);
-            if ($item['user_info'] == '系统') {
-                // 用户不存在(已被删除的情况)
-                $item['user_info'] = [
-                    'avatar' => '',
-                    'nickname' => '-',
-                    'sn' => '-',
-                ];
-            }
-            $item['distribution_avatar'] = empty($item['distribution_avatar']) ? '' : UrlServer::getFileUrl($item['distribution_avatar']);
-            $item['user_info']['avatar'] = empty($item['user_info']['avatar']) ? '' : UrlServer::getFileUrl($item['user_info']['avatar']);
-            $item['level_name'] = DistributionLevel::getLevelName($item['level_id']);
-            $item['shop_logo'] = empty($item['shop_logo']) ? '' : UrlServer::getFileUrl($item['shop_logo']);
-            $item['goods_image'] = empty($item['goods_image']) ? '' : UrlServer::getFileUrl($item['goods_image']);
-        }
-
-        return [
-            'count' => $count,
-            'lists' => $lists
-        ];
-    }
-}

+ 0 - 95
app/admin/logic/distribution/DistributionSettingLogic.php

@@ -1,95 +0,0 @@
-<?php
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\logic\DistributionLogic;
-use app\common\model\distribution\Distribution;
-use app\common\model\user\User;
-use app\common\server\ConfigServer;
-use think\facade\Db;
-
-class DistributionSettingLogic extends Logic
-{
-    /**
-     * @notes 获取分销配置
-     * @return array
-     * @author Tab
-     * @date 2021/8/31 17:45
-     */
-    public static function getConfig()
-    {
-        $config = [
-            // 分销功能 0-关闭(默认) 1-开启
-            'is_open' => ConfigServer::get('distribution', 'is_open', 0),
-            // 分销层级 1-一级分销 2-二级分销(默认)
-            'level' => ConfigServer::get('distribution', 'level', 2),
-            // 商品详情是否显示佣金 0-不显示(默认) 1-默认
-            'is_show_earnings' => ConfigServer::get('distribution', 'is_show_earnings', 0),
-            // 详情页佣金可见用户 0-全部用户 1-分销商
-            'show_earnings_scope' => ConfigServer::get('distribution', 'show_earnings_scope', 0),
-            // 开通分销会员条件 1-无条件 2-申请分销(默认) 3-指定分销
-            'apply_condition' => ConfigServer::get('distribution', 'apply_condition', 2),
-            // 佣金计算方式 1-商品实际支付金额(默认)
-            'cale_method' => ConfigServer::get('distribution', 'cale_method', 1),
-            // 结算时机 1-订单完成后(默认)
-            'settlement' => ConfigServer::get('distribution', 'settlement', 1),
-            // 结算时机 订单完成后多少天内(默认7天)
-            'settlement_days' => ConfigServer::get('distribution', 'settlement_days', 7),
-        ];
-        return $config;
-    }
-
-    /**
-     * @notes 分销设置
-     * @param $params
-     * @return bool
-     * @author Tab
-     * @date 2021/9/2 14:47
-     */
-    public static function set($params)
-    {
-        Db::startTrans();
-        try {
-            $allowFields = ['is_open', 'level', 'is_show_earnings', 'apply_condition', 'cale_method', 'settlement_days', 'show_earnings_scope'];
-            foreach ($allowFields as $field) {
-                if(isset($params[$field])) {
-                    ConfigServer::set('distribution', $field, $params[$field]);
-                }
-                if($field == 'apply_condition' && isset($params[$field]) && $params[$field] == 1) {
-                    // 开通分销会员无条件时,所有会员均成为分销会员
-                    self::distribution();
-                }
-            }
-            Db::commit();
-            return true;
-        } catch (\Exception $e) {
-            Db::rollback();
-            self::$error = $e->getMessage();
-            return false;
-        }
-    }
-
-    /**
-     * @notes 全员分销
-     * @author Tab
-     * @date 2021/9/2 14:38
-     */
-    public static function distribution()
-    {
-        // 将非分销会员变为分销会员
-        Distribution::where('is_distribution', 0)->update([
-            'is_distribution' => 1
-        ]);
-        // 获取所有分销会员id
-        $distributionIds = Distribution::distinct(true)->column('user_id');
-        // 查找未生成分销会员基础信息表的会员
-        $notDistributionIds = User::where([
-            ['id', 'not in', $distributionIds],
-            ['del', '=', 0],
-        ])->column('id');
-        foreach($notDistributionIds as $userId) {
-            // 生成分销会员基础信息表
-            DistributionLogic::add($userId);
-        }
-    }
-}

+ 0 - 414
app/admin/logic/distribution/MemberLogic.php

@@ -1,414 +0,0 @@
-<?php
-// +----------------------------------------------------------------------
-// | likeshop开源商城系统
-// +----------------------------------------------------------------------
-// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
-// | gitee下载:https://gitee.com/likeshop_gitee
-// | github下载:https://github.com/likeshop-github
-// | 访问官网:https://www.likeshop.cn
-// | 访问社区:https://home.likeshop.cn
-// | 访问手册:http://doc.likeshop.cn
-// | 微信公众号:likeshop技术社区
-// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
-// |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
-// | 禁止对系统程序代码以任何目的,任何形式的再发布
-// | likeshop团队版权所有并拥有最终解释权
-// +----------------------------------------------------------------------
-// | author: likeshop.cn.team
-// +----------------------------------------------------------------------
-
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\user\User;
-use app\common\model\user\UserLevel;
-use app\common\server\UrlServer;
-use app\common\model\WithdrawApply;
-use app\common\model\distribution\DistributionOrderGoods;
-use app\common\model\distribution\DistributionMemberApply;
-use think\facade\Db;
-
-class MemberLogic extends Logic
-{
-    public static function memberLists($get)
-    {
-        // 关键词
-        $where[] = ['is_distribution', '=', 1];
-        if (!empty($get['search_key']) && !empty($get['keyword'])) {
-            $where[] = [$get['search_key'], '=', trim($get['keyword'])];
-        }
-        //分销状态
-        if (isset($get['freeze_distribution']) && $get['freeze_distribution'] != '') {
-            $where[] = ['freeze_distribution', '=', $get['freeze_distribution']];
-        }
-
-        $user = new User();
-        $count = $user->where($where)->count();
-
-        $lists = $user
-            ->where($where)
-            ->page($get['page'], $get['limit'])
-            ->append(['fans', 'distribution_order', 'leader'])
-            ->hidden(['password,pay_password,salt'])
-            ->order('id desc')
-            ->select()
-            ->toArray();
-
-        foreach ($lists as &$item) {
-            $item['avatar'] = UrlServer::getFileUrl($item['avatar']);
-
-            $item['distribution_num'] = $item['distribution_order']['num'] ?? 0;//分销订单数
-            $item['distribution_amount'] = $item['distribution_order']['amount'] ?? 0;//分销订单金额
-            $item['distribution_money'] = $item['distribution_order']['money'] ?? 0;//分销佣金
-        }
-        return ['count' => $count, 'lists' => $lists];
-    }
-
-    public static function addMember($post)
-    {
-        // 根据会员编号查询用户
-        $user = User::field('id,sn,is_distribution,distribution_add_remarks,del')
-            ->where(['sn'=>$post['sn']])->findOrEmpty();
-        // 校验用户
-        if ($user->isEmpty()) { return '该用户不存在!'; }
-        $user = $user->toArray();
-        if ($user['del'] === 1) { return '该用户已被删除!'; }
-        if ($user['is_distribution']) { return '该用户已是分销会员,无需重复添加'; }
-        $result =  User::where(['id' => (int)$user['id']])->update([
-            'is_distribution'          => 1,
-            'distribution_add_remarks' => $post['remarks'] ?? '',
-            'update_time' => time()
-        ]);
-        return $result ? true : '添加失败';
-    }
-
-    public static function getMemberInfo($get)
-    {
-        $user_id = $get['id'];
-        $user = User::alias('u')
-            ->field('u.*,u.sn as user_sn')
-            ->leftJoin('distribution_order_goods d', 'd.user_id = u.id')
-            ->where('u.id', $user_id)
-            ->append(['distribution_order'])
-            ->hidden(['password', 'pay_password', 'salt'])
-            ->find();
-
-        $user['distribution_text'] = '否';
-        if ($user['is_distribution'] == 1) {
-            $user['distribution_text'] = '是';
-        }
-
-        //上级编号
-        $user['first_leader_sn'] = User::where('id', $user['first_leader'])->value('sn');
-        //直推会员数
-        $user['first_fans'] = User::where(['first_leader' => $user_id, 'del' => 0])->count();
-        // 已提现金额
-        $have_withdraw = WithdrawApply::where(['status' => WithdrawApply::STATUS_SUCCESS, 'user_id' => $user_id])
-            ->sum('money');
-
-        $user['distribution_num'] = $user['distribution_order']['num'] ?? 0;//分销订单数
-        $user['distribution_amount'] = $user['distribution_order']['amount'] ?? 0;//分销订单金额
-        $user['distribution_money'] = $user['distribution_order']['money'] ?? 0;//分销佣金
-        $user['have_withdraw'] = $have_withdraw;//已提现金额
-        return $user;
-    }
-
-    public static function getFansLists($get)
-    {
-        $user_id = $get['id'];
-        $where = [];
-        if (!empty($get['search_key']) && !empty($get['keyword'])) {
-            $keyword = $get['keyword'];
-            $where[] = [$get['search_key'], 'like', '%' . $keyword . '%'];
-        }
-
-        $fans_type = $get['type'] ?? 'all';
-        if ($fans_type == 'all') {
-            $where[] = ['first_leader|second_leader|third_leader', '=', $user_id];
-        } else {
-            $where[] = [$fans_type, '=', $user_id];
-        }
-
-        $user = new User();
-        $count = $user
-            ->where($where)
-            ->append(['fans', 'distribution_order'])
-            ->hidden(['password,pay_password,salt'])
-            ->count();
-
-        $lists = $user
-            ->where($where)
-            ->append(['fans', 'distribution_order'])
-            ->hidden(['password,pay_password,salt'])
-            ->page($get['page'], $get['limit'])
-            ->select()->toArray();
-
-        // 用户等级列表
-        $user_level = UserLevel::where(['del' => 0])->column('name', 'id');
-        // 提取所有上级id
-        $leader_ids = array_column($lists, 'first_leader');
-        // 所有上级列表
-        $leaders = User::where('id', 'in', $leader_ids)
-            ->column('sn,nickname,mobile,level', 'id');
-
-        foreach ($lists as &$item) {
-            $item['avatar'] = UrlServer::getFileUrl($item['avatar']);
-            $item['leader'] = $leaders[$item['first_leader']] ?? [];
-            if (!empty($item['leader'])) {
-                $leader_level = $item['leader']['level'] ?? 0;
-                $item['leader']['level'] = $user_level[$leader_level] ?? '无等级';
-            }
-            $item['distribution_num'] = $item['distribution_order']['num'] ?? 0;//分销订单数
-            $item['distribution_amount'] = $item['distribution_order']['amount'] ?? 0;//分销订单金额
-            $item['distribution_money'] = $item['distribution_order']['money'] ?? 0;//分销佣金
-        }
-
-        return ['count' => $count, 'lists' => $lists];
-    }
-
-    public static function getEarningsDetail($get)
-    {
-        $user_id = $get['id'];
-        $where = [];
-        $where[] = ['d.user_id', '=', $user_id];
-        $where[] = ['d.status', '=', DistributionOrderGoods::STATUS_SUCCESS];
-
-        //记录时间
-        if (isset($get['start_time']) && $get['start_time'] != '') {
-            $where[] = ['d.create_time', '>=', strtotime($get['start_time'])];
-        }
-        if (isset($get['end_time']) && $get['end_time'] != '') {
-            $where[] = ['d.create_time', '<=', strtotime($get['end_time'])];
-        }
-
-        $count = DistributionOrderGoods::alias('d')
-            ->field('d.id as distribution_id, d.sn, o.order_sn, d.money, d.create_time')
-            ->join('order_goods og', 'og.id = d.order_goods_id')
-            ->join('order o', 'o.id = og.order_id')
-            ->where($where)
-            ->count();
-
-        $lists = DistributionOrderGoods::alias('d')
-            ->field('d.id as distribution_id, d.sn, o.order_sn, d.money, d.create_time')
-            ->join('order_goods og', 'og.id = d.order_goods_id')
-            ->join('order o', 'o.id = og.order_id')
-            ->where($where)
-            ->page($get['page'], $get['limit'])
-            ->select();
-
-        foreach ($lists as &$item) {
-            $item['type'] = '分销佣金';
-        }
-
-        return ['count' => $count, 'lists' => $lists];
-    }
-
-    public static function getLeaderInfo($user_id)
-    {
-        $first_leader = User::alias('u')
-            ->field('u1.nickname,u1.sn')
-            ->join('user u1', 'u1.id = u.first_leader')
-            ->where('u.id', $user_id)
-            ->find();
-
-        $leader_data = '无';
-        if ($first_leader) {
-            $leader_data = $first_leader['nickname'] . '(' . $first_leader['sn'] . ')';
-        }
-        return $leader_data;
-    }
-
-    public static function updateRelation($post)
-    {
-        Db::startTrans();
-        try{
-            $user_id = $post['user_id'];
-            $referrer_sn =  $post['referrer_sn'];
-
-            //清空上级
-            $data = [
-                'first_leader' => 0,
-                'second_leader' => 0,
-                'third_leader' => 0,
-                'ancestor_relation' => '',
-            ];
-            $my_first_leader = 0;
-            $my_second_leader = 0;
-            $my_ancestor_relation = '';
-
-            if ($post['change_type'] == 'appoint'){
-                //指定上级
-                $my_leader = User::where(['sn' => $referrer_sn])->findOrEmpty();
-
-                //更新我的第一上级、第二上级、第三上级、关系链
-                $my_first_leader = $my_leader['id'];
-                $my_second_leader = $my_leader['first_leader'];
-                $my_third_leader = $my_leader['second_leader'];
-                $my_ancestor_relation = trim("{$my_first_leader},{$my_leader['ancestor_relation']}", ',');
-                $data = [
-                    'first_leader' => $my_first_leader,
-                    'second_leader' => $my_second_leader,
-                    'third_leader' => $my_third_leader,
-                    'ancestor_relation' => $my_ancestor_relation,
-                ];
-            }
-            // 更新我的上级、上上级、上上上级、关系链
-            User::where(['id' => $user_id])->update($data);
-
-            //更新我向下一级的第二上级、第三上级
-            $data = [
-                'second_leader' => $my_first_leader,
-                'third_leader' => $my_second_leader,
-            ];
-            User::where(['first_leader' => $user_id])->update($data);
-
-            //更新我向下二级的第三级
-            $data = [
-                'third_leader' => $my_first_leader,
-            ];
-            User::where(['second_leader' => $user_id])->update($data);
-
-            //更新当前用户所有后代的关系链
-            $posterityArr = User::field('id,ancestor_relation')
-                ->whereFindInSet('ancestor_relation', $post['user_id'])
-                ->select()
-                ->toArray();
-            $updateData = [];
-            $replace_ancestor_relation = $post['user_id'] . ','. $my_ancestor_relation;
-            foreach($posterityArr as $item) {
-                $updateData[] = [
-                    'id' => $item['id'],
-                    'ancestor_relation' => str_replace($post['user_id'], $replace_ancestor_relation, $item['ancestor_relation'])
-                ];
-            }
-            // 批量更新
-            (new User())->saveAll($updateData);
-
-            Db::commit();
-            return true;
-        } catch (Exception $e){
-            Db::rollback();
-            return $e->getMessage();
-        }
-    }
-
-    public static function freeze($post)
-    {
-        $user = User::where('id', $post['id'])->find();
-        $user->freeze_distribution = 1;
-        if ($post['type'] == 'unfreeze'){
-            $user->freeze_distribution = 0;
-        }
-        return $user->save();
-    }
-
-    public static function del($post)
-    {
-        $user = User::find($post['id']);
-        $user->is_distribution = 0;
-        $user->update_time = time();
-        return $user->save();
-    }
-
-    /**
-     * 待审核会员列表
-     */
-    public static function auditLists($get)
-    {
-        $where = [];
-        if (!empty($get['search_key']) && !empty($get['keyword'])) {
-            $keyword = $get['keyword'];
-            if ($get['search_key'] == 'mobile') {
-                $where[] = ['u.mobile', 'like', '%' . $keyword . '%'];
-            } else {
-                $where[] = [$get['search_key'], 'like', '%' . $keyword . '%'];
-            }
-        }
-        //审核状态
-        if (isset($get['status']) && $get['status'] != '') {
-            $where[] = ['status', '=', $get['status']];
-        }
-
-
-        $field = [
-            'a.*', 'u.sn', 'u.nickname', 'u.mobile', 'u.level', 'u.sex', 'a.reason',
-            'u.create_time' => 'register_time', 'u.avatar', 'u.first_leader'
-        ];
-
-        $count = DistributionMemberApply::alias('a')
-            ->join('user u', 'u.id = a.user_id')
-            ->where($where)
-            ->count();
-
-        $lists = DistributionMemberApply::alias('a')
-            ->field($field)
-            ->join('user u', 'u.id = a.user_id')
-            ->order('a.id desc')
-            ->page($get['page'], $get['limit'])
-            ->where($where)
-            ->select()
-            ->toArray();
-
-        $user_level = UserLevel::where(['del' => 0])->column('name', 'id');
-
-        $leader_ids = array_column($lists, 'first_leader');
-        $leaders = User::where('id', 'in', $leader_ids)
-            ->column('sn,nickname,mobile,level', 'id');
-
-        foreach ($lists as &$item) {
-            $item['level'] = $user_level[$item['level']] ?? '无等级';
-            $item['sex'] = self::getSexText($item['sex']);
-            $item['register_time'] = date('Y-m-d H:i:s', $item['register_time']);
-            $item['status_text'] = DistributionMemberApply::getApplyStatus($item['status']);
-            $item['leader'] = $leaders[$item['first_leader']] ?? [];
-            $item['avatar'] = UrlServer::getFileUrl($item['avatar']);
-            if (!empty($item['leader'])) {
-                $leader_level = $item['leader']['level'] ?? 0;
-                $item['leader']['level'] = $user_level[$leader_level] ?? '无等级';
-            }
-        }
-        return ['count' => $count, 'lists' => $lists];
-    }
-
-    public static function getSexText($value)
-    {
-        switch ($value) {
-            case 1:
-                return '男';
-            case 2:
-                return '女';
-            default:
-                return '未知';
-        }
-    }
-
-    public static function auditPass($post)
-    {
-        Db::startTrans();
-        try {
-            $apply = DistributionMemberApply::where('id', $post['id'])->find();
-            $apply->status = DistributionMemberApply::STATUS_AUDIT_SUCCESS;
-            $apply->update_time = time();
-            $apply->save();
-
-            $user = User::where('id', $apply['user_id'])->find();
-            $user->is_distribution = 1;
-            $user->save();
-
-            Db::commit();
-            return true;
-        } catch (Exception $e) {
-            Db::rollback();
-            return $e->getMessage();
-        }
-    }
-
-    public static function auditRefuse($post)
-    {
-        $apply = DistributionMemberApply::where('id', $post['id'])->find();
-        $apply->status = DistributionMemberApply::STATUS_AUDIT_ERROR;
-        $apply->denial_reason = $post['denial_reason'] ?? '';
-        $apply->save();
-        return true;
-    }
-}

+ 0 - 84
app/admin/logic/distribution/RecordLogic.php

@@ -1,84 +0,0 @@
-<?php
-// +----------------------------------------------------------------------
-// | likeshop开源商城系统
-// +----------------------------------------------------------------------
-// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
-// | gitee下载:https://gitee.com/likeshop_gitee
-// | github下载:https://github.com/likeshop-github
-// | 访问官网:https://www.likeshop.cn
-// | 访问社区:https://home.likeshop.cn
-// | 访问手册:http://doc.likeshop.cn
-// | 微信公众号:likeshop技术社区
-// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
-// |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
-// | 禁止对系统程序代码以任何目的,任何形式的再发布
-// | likeshop团队版权所有并拥有最终解释权
-// +----------------------------------------------------------------------
-// | author: likeshop.cn.team
-// +----------------------------------------------------------------------
-
-namespace app\admin\logic\distribution;
-
-use app\common\basics\Logic;
-use app\common\model\distribution\DistributionOrderGoods;
-
-class RecordLogic extends Logic
-{
-    public static function lists($get)
-    {
-        $where = [];
-        // 搜索
-        if(!empty($get['keyword'])) {
-            $fieldDesc = '';
-            switch($get['keyword_type']) {
-                case 'order_sn':
-                    $fieldDesc = 'o.order_sn';
-                    break;
-                case 'user_nickname':
-                    $fieldDesc = 'u.nickname';
-                    break;
-                case 'user_sn':
-                    $fieldDesc = 'u.sn';
-                    break;
-                case 'user_mobile':
-                    $fieldDesc = 'u.mobile';
-                    break;
-            }
-            $where[] = [$fieldDesc, '=', trim($get['keyword'])];
-        }
-        // 佣金状态
-        if(!empty($get['status'])) {
-            $where[] = ['dog.status', '=', $get['status']];
-        }
-        // 记录时间
-        if(!empty($get['start_time'])) {
-            $where[] = ['dog.create_time', '>=', strtotime($get['start_time'])];
-        }
-        if(!empty($get['end_time'])) {
-            $where[] = ['dog.create_time', '<=', strtotime($get['end_time'])];
-        }
-        $lists = DistributionOrderGoods::alias('dog')
-            ->field('dog.money, dog.status as status_desc,dog.create_time as distribution_create_time,u.nickname as user_nickname,u.sn as user_sn,u.mobile as user_mobile,og.total_pay_price,o.order_sn')
-            ->leftJoin('user u', 'u.id=dog.user_id')
-            ->leftJoin('order_goods og', 'og.id=dog.order_goods_id')
-            ->leftJoin('order o', 'o.id=og.order_id')
-            ->where($where)
-            ->order('dog.create_time', 'desc')
-            ->page($get['page'], $get['limit'])
-            ->select()
-            ->toArray();
-
-        $count = DistributionOrderGoods::alias('dog')
-            ->field('dog.money, dog.status as status_desc,dog.create_time as distribution_create_time,u.nickname as user_nickname,u.sn as user_sn,u.mobile as user_mobile,og.total_pay_price,o.order_sn')
-            ->leftJoin('user u', 'u.id=dog.user_id')
-            ->leftJoin('order_goods og', 'og.id=dog.order_goods_id')
-            ->leftJoin('order o', 'o.id=og.order_id')
-            ->where($where)
-            ->count();
-
-        return [
-            'count' => $count,
-            'lists' => $lists
-        ];
-    }
-}

+ 0 - 19
app/admin/validate/ExpressValidate.php

@@ -1,19 +0,0 @@
-<?php
-
-namespace app\admin\validate;
-
-use app\common\basics\Validate;
-
-class ExpressValidate extends Validate
-{
-    protected $rule = [
-        'name' => 'require|unique:Express,name^del',
-        'poster' => 'require',
-    ];
-
-    protected $message = [
-        'name.unique' => '该名称已存在',
-        'poster.require' => '图标不能为空',
-    ];
-
-}

+ 0 - 151
app/admin/validate/distribution/DistributionLevelValidate.php

@@ -1,151 +0,0 @@
-<?php
-// +----------------------------------------------------------------------
-// | likeshop开源商城系统
-// +----------------------------------------------------------------------
-// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
-// | gitee下载:https://gitee.com/likeshop_gitee
-// | github下载:https://github.com/likeshop-github
-// | 访问官网:https://www.likeshop.cn
-// | 访问社区:https://home.likeshop.cn
-// | 访问手册:http://doc.likeshop.cn
-// | 微信公众号:likeshop技术社区
-// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
-// |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
-// | 禁止对系统程序代码以任何目的,任何形式的再发布
-// | likeshop团队版权所有并拥有最终解释权
-// +----------------------------------------------------------------------
-// | author: likeshop.cn.team
-// +----------------------------------------------------------------------
-
-namespace app\admin\validate\distribution;
-
-use app\common\basics\Validate;
-use app\common\model\distribution\DistributionLevel;
-
-class DistributionLevelValidate extends  Validate
-{
-    protected $rule = [
-        'name' => 'require|checkName',
-        'weights' => 'require|integer|gt:1|checkWeights',
-        'first_ratio' => 'require|between:0,100',
-        'second_ratio' => 'require|between:0,100',
-        'update_relation' => 'require|in:1,2',
-        'update_condition' => 'require|array|checkCondition',
-        'singleConsumptionAmount' => 'gt:0',
-        'cumulativeConsumptionAmount' => 'gt:0',
-        'cumulativeConsumptionTimes' => 'integer|gt:0',
-        'returnedCommission' => 'gt:0',
-        'id' => 'require'
-    ];
-
-
-    protected  $message = [
-        'name.require' => '请填写等级名称',
-        'weights.require' => '请输入级别',
-        'weights.integer' => '级别须为整型',
-        'weights.gt' => '级别须大于1',
-        'first_ratio.require' => '请输入一级佣金比例',
-        'first_ratio.between' => '一级佣金比例须在0-100之间',
-        'second_ratio.require' => '请输入二级佣金比例',
-        'second_ratio.between' => '二级佣金比例须在0-100之间',
-        'update_relation.require' => '请选择升级关系',
-        'update_relation.in' => '升级关系状态值错误',
-        'update_condition.require' => '请选择升级条件',
-        'update_condition.array' => '升级条件数据格式错误',
-        'singleConsumptionAmount.gt' => '单笔消费金额须大于0',
-        'cumulativeConsumptionAmount.gt' => '累计消费金额须大于0',
-        'cumulativeConsumptionTimes.gt' => '累计消费次数须大于0',
-        'cumulativeConsumptionTimes.integer' => '累计消费次数须为整数',
-        'returnedCommission.gt' => '已结算佣金收入须大于0',
-        'id.require' => '参数缺失',
-    ];
-
-    /**
-     * @notes 添加分销等级
-     * @return DistributionLevelValidate
-     * @author Tab
-     * @date 2021/9/1 14:45
-     */
-    public function sceneAdd()
-    {
-        return $this->only(['name', 'weights', 'self_ratio', 'first_ratio', 'second_ratio', 'update_condition', 'update_relation', 'singleConsumptionAmount', 'cumulativeConsumptionAmount', 'cumulativeConsumptionTimes', 'returnedCommission']);
-    }
-
-    /**
-     * @notes 编辑分销等级
-     * @return DistributionLevelValidate
-     * @author Tab
-     * @date 2021/9/1 15:49
-     */
-    public function sceneEdit()
-    {
-        return $this->only(['id', 'name', 'weights', 'first_ratio', 'second_ratio'])
-            ->remove('weights', 'gt');
-    }
-
-    /**
-     * @notes 校验等级名称
-     * @param $value
-     * @param $rule
-     * @param $data
-     * @return bool|string
-     * @author Tab
-     * @date 2021/9/1 14:42
-     */
-    public function checkName($value, $rule, $data)
-    {
-        $where = [['name', '=', $value]];
-        if(isset($data['id'])) {
-            // 编辑的场景
-            $where[] = ['id', '<>', $data['id']];
-        }
-        $level = DistributionLevel::where($where)->findOrEmpty();
-        if(!$level->isEmpty()) {
-            return '等级名称已存在';
-        }
-        return true;
-    }
-
-    /**
-     * @notes 校验等级级别
-     * @param $value
-     * @param $rule
-     * @param $data
-     * @return bool|string
-     * @author Tab
-     * @date 2021/9/1 14:42
-     */
-    public function checkWeights($value, $rule, $data)
-    {
-        $where = [['weights', '=', $value]];
-        if(isset($data['id'])) {
-            // 编辑的场景
-            $where[] = ['id', '<>', $data['id']];
-        }
-        $level = DistributionLevel::where($where)->findOrEmpty();
-        if(!$level->isEmpty()) {
-            return '等级级别已存在';
-        }
-        return true;
-    }
-
-    /**
-     * @notes 校验升级条件
-     * @param $value
-     * @return bool|string
-     * @author Tab
-     * @date 2021/9/1 14:43
-     */
-    public function checkCondition($value, $rule, $data)
-    {
-        if(!count($value)) {
-            return '请选择升级条件';
-        }
-        foreach($value as $v) {
-            if(!isset($data[$v]) || empty($data[$v])) {
-                return '升级条件数据未填写';
-            }
-        }
-        return true;
-    }
-}

+ 0 - 101
app/admin/validate/distribution/MemberValidate.php

@@ -1,101 +0,0 @@
-<?php
-// +----------------------------------------------------------------------
-// | likeshop开源商城系统
-// +----------------------------------------------------------------------
-// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
-// | gitee下载:https://gitee.com/likeshop_gitee
-// | github下载:https://github.com/likeshop-github
-// | 访问官网:https://www.likeshop.cn
-// | 访问社区:https://home.likeshop.cn
-// | 访问手册:http://doc.likeshop.cn
-// | 微信公众号:likeshop技术社区
-// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
-// |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
-// | 禁止对系统程序代码以任何目的,任何形式的再发布
-// | likeshop团队版权所有并拥有最终解释权
-// +----------------------------------------------------------------------
-// | author: likeshop.cn.team
-// +----------------------------------------------------------------------
-
-namespace app\admin\validate\distribution;
-
-use think\Validate;
-use app\common\model\user\User;
-
-class MemberValidate extends Validate
-{
-    protected $rule = [
-        // 添加分销会员
-        'sn' => 'require|max:10',
-        'remarks' => 'max:100',
-        // 更新上级
-        'user_id' => 'require',
-        'change_type' => 'require',
-        'referrer_sn' => 'requireIf:change_type,appoint|checkReferrer',
-        // 冻结、解冻资格/ 审核分销会员
-        'id' => 'require',
-        'type' => 'require',
-    ];
-
-
-    protected  $message = [
-        'sn.require' => '请输入会员编号',
-        'sn.max' => '会员编号不能超过10个字符',
-        'remarks.max' => '备注不能超过100个字符',
-        'user_id.require' => '会员id不能为空',
-        'change_type.require' => '调整方式不能为空',
-        'referrer_sn.requireIf' => '指定上级不能为空',
-        'id.require' => '请输入会员id',
-        'type.require' => '请输入类型',
-    ];
-
-    public function sceneAdd()
-    {
-        return $this->only(['sn', 'remarks']);
-    }
-
-    public function sceneUpdateLeader()
-    {
-        return $this->only(['user_id', 'change_type', 'referrer_sn']);
-    }
-
-    public function sceneFreeze()
-    {
-        return $this->only(['id', 'type']);
-    }
-
-    public function sceneAudit()
-    {
-        return $this->only(['id', 'type']);
-    }
-
-    public function checkReferrer($value, $rule, $data)
-    {
-        if (empty($value) && $data['change_type'] == 'clear'){
-            return true;
-        }
-
-        $referrer = User::where('sn', $value)->findOrEmpty();
-
-        if ($referrer->isEmpty()){
-            return '推荐人不存在';
-        }
-
-        $referrer = $referrer->toArray();
-
-        if ($referrer['id'] == $data['user_id']){
-            return '上级推荐人不能是自己';
-        }
-
-        if ($referrer['is_distribution'] == 0){
-            return '对方不是分销会员';
-        }
-
-        $ancestor_relation = explode(',', $referrer['ancestor_relation']);
-        if (!empty($ancestor_relation) && in_array($data['user_id'], $ancestor_relation)) {
-            return '推荐人不能是自己的任意下级';
-        }
-
-        return true;
-    }
-}

+ 0 - 25
app/admin/view/distribution/apply/audit.html

@@ -1,25 +0,0 @@
-{layout name="layout2" /}
-
-<div class="layui-card layui-form" style="box-shadow:none;">
-    <div class="layui-card-body">
-        <div class="layui-form-item">
-            <label class="layui-form-label"><span style="color:red;">*</span>审核结果</label>
-            <div class="layui-input-block">
-                <input type="radio" name="audit_status" value="1" title="审核通过">
-                <input type="radio" name="audit_status" value="2" title="审核拒绝" checked>
-            </div>
-            <div class="layui-form-mid layui-word-aux">审核通过即可成为分销会员</div>
-        </div>
-
-        <div class="layui-form-item layui-form-text">
-            <label for="denial_reason" class="layui-form-label">审核说明</label>
-            <div class="layui-input-block">
-                <textarea name="denial_reason" id="denial_reason" placeholder="请输入内容" class="layui-textarea"></textarea>
-            </div>
-        </div>
-
-        <div class="layui-form-item layui-hide">
-            <input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
-        </div>
-    </div>
-</div>

+ 0 - 46
app/admin/view/distribution/apply/detail.html

@@ -1,46 +0,0 @@
-{layout name="layout1" /}
-
-<style>
-    .layui-input-block { line-height: 39px; }
-</style>
-
-<div class="layui-card">
-    <div class="layui-card-body">
-        <div class="layui-form-item">
-            <label class="layui-form-label">会员编号:</label>
-            <div class="layui-input-block">{$detail.user.sn}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">会员昵称:</label>
-            <div class="layui-input-block">{$detail.user.nickname}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">会员等级:</label>
-            <div class="layui-input-block">{$detail.user.level.name ?: '未知'}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">手机号码:</label>
-            <div class="layui-input-block">{$detail.user.mobile ?: '未知'}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">真实姓名:</label>
-            <div class="layui-input-block">{$detail.real_name}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">联系手机:</label>
-            <div class="layui-input-block">{$detail.mobile}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">现住区域:</label>
-            <div class="layui-input-block">{$detail.region}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">申请状态:</label>
-            <div class="layui-input-block">{$detail.status_text}</div>
-        </div>
-        <div class="layui-form-item">
-            <label class="layui-form-label">审核说明:</label>
-            <div class="layui-input-block">{$detail.reason}</div>
-        </div>
-    </div>
-</div>

+ 0 - 169
app/admin/view/distribution/apply/lists.html

@@ -1,169 +0,0 @@
-{layout name="layout1" /}
-<div class="wrapper" >
-    <div class="layui-card">
-        <!-- 提示 -->
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>* 分销会员申请列表,申请审核通过后即可成为分销会员;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-
-        <!-- 搜索区域 -->
-        <div class="layui-card-body layui-form">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <label for="keyword_type" class="layui-form-label">会员信息:</label>
-                    <div class="layui-input-inline">
-                        <select name="keyword_type" id="keyword_type">
-                            <option value="sn">会员编号</option>
-                            <option value="nickname">会员昵称</option>
-                            <option value="mobile">手机号码</option>
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-input-inline">
-                        <input type="text" name="keyword" autocomplete="off" class="layui-input">
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <a class="layui-btn layui-btn-sm layui-btn-normal" lay-submit lay-filter="search">搜索</a>
-                    <a class="layui-btn layui-btn-sm layui-btn-primary" lay-submit lay-filter="clear-search">重置</a>
-                </div>
-            </div>
-        </div>
-
-        <!-- 主体 -->
-        <div class="layui-tab layui-tab-card" lay-filter="like-tabs">
-            <ul class="layui-tab-title">
-                <li data-type="0" class="layui-this">待审核会员列表</li>
-                <li data-type="1">审核通过会员列表</li>
-                <li data-type="2">审核拒绝会员列表</li>
-            </ul>
-            <div class="layui-tab-content" style="padding: 0 15px;">
-                <table id="like-table-lists" lay-filter="like-table-lists"></table>
-                <script type="text/html" id="table-userInfo">
-                    <img src="{{d.user.avatar}}" alt="头像" style="width:60px;height:60px;margin-right:5px;">
-                    <div class="layui-inline" style="text-align:left;">
-                        <p>会员编号:{{d.user.sn}}</p>
-                        <p>会员昵称:{{d.user.nickname}}</p>
-                        <p>会员等级:{{d.user.level.name || '未知'}}</p>
-                    </div>
-                </script>
-                <script type="text/html" id="table-operation">
-                    <a class="layui-btn layui-btn-primary layui-btn-sm" lay-event="detail">申请详情</a>
-                    {{#  if(d.status === 0){ }}
-                        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="audit">审核</a>
-                    {{#  } }}
-                </script>
-            </div>
-        </div>
-    </div>
-</div>
-
-
-<script>
-    layui.use(["table", "form", "element", "laydate"], function() {
-        var table = layui.table;
-        var form = layui.form;
-        var element = layui.element;
-        var laydate = layui.laydate;
-
-        like.tableLists("#like-table-lists", "{:url()}", [
-            {field:"id", width:60, title:"ID"}
-            ,{field:"user", width:250, title:"会员信息", templet:'#table-userInfo'}
-            ,{field:"real_name", width:100, align:"center", title:"真实姓名"}
-            ,{field:"mobile", width:120, align:"center",title:"联系手机"}
-            ,{field:"region", width:150, align:"center", title:"现住区域"}
-            ,{field:"reason", width:150, align:"center", title:"申请原因"}
-            ,{title:"操作", width:230, align:"center", fixed:"right", toolbar:"#table-operation"}
-        ]);
-
-        var active = {
-            detail: function (obj) {
-                layer.open({
-                    type: 2
-                    ,title: "申请详情"
-                    ,content: "{:url('distribution.Apply/detail')}?id=" + obj.data.id
-                    ,area: ["600px", "600px"]
-
-                });
-            },
-            audit: function (obj) {
-                layer.open({
-                    type: 2
-                    ,title: "审核分销会员申请"
-                    ,content: "{:url('distribution.Apply/audit')}?id=" + obj.data.id
-                    ,area: ["420px", "360px"]
-                    ,btn: ["确定", "取消"]
-                    ,yes: function(index, layero){
-                        var iframeWindow = window["layui-layer-iframe" + index];
-                        var submit = layero.find("iframe").contents().find("#addSubmit");
-                        iframeWindow.layui.form.on("submit(addSubmit)", function(data){
-                            data.field["id"] = obj.data.id;
-                            like.ajax({
-                                url: "{:url('distribution.Apply/audit')}",
-                                data: data.field,
-                                type: "POST",
-                                success:function(res) {
-                                    if(res.code === 1) {
-                                        layui.layer.msg(res.msg);
-                                        layer.close(index);
-                                        table.reload("like-table-lists", {
-                                            where: {},
-                                            page: { cur: 1 }
-                                        });
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger("click");
-                    }
-                });
-            }
-        };
-        like.eventClick(active);
-
-        element.on("tab(like-tabs)", function(){
-            var type = this.getAttribute("data-type");
-            table.reload("like-table-lists", {
-                where: {type: type},
-                page: { cur: 1 }
-            });
-        });
-
-        /**
-         * 搜索
-         */
-        form.on("submit(search)", function(data){
-            data.field["type"] = $(".layui-tab-title li.layui-this").attr("lay-id");
-            table.reload("like-table-lists", {
-                where: data.field,
-                page: {
-                    curr: 1
-                }
-            });
-        });
-
-        /**
-         * 清空搜索
-         */
-        form.on("submit(clear-search)", function(){
-            var type = $(".layui-tab-title li.layui-this").attr("lay-id");
-            $("#keyword_type").val("");
-            $("#keyword").val("");
-            form.render("select");
-            table.reload("like-table-lists", {
-                where: {type: type},
-                page: {
-                    curr: 1
-                }
-            });
-        });
-    });
-</script>

+ 0 - 152
app/admin/view/distribution/center/center.html

@@ -1,152 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .title {
-        font-size: 16px;
-        text-align: center;
-    }
-    .data {
-        margin-top: 10px;
-        font-size: 20px;
-        text-align: center;
-    }
-    .layui-table {
-        width: 500px;
-        margin-left: 10px;
-    }
-    html,
-    body {
-        height: 100%;
-    }
-    #content {
-        height: 100%;
-        background: #FFFFFF;
-    }
-</style>
-<div class="wrapper">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div id="content">
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>佣金概览</legend>
-            <div class="layui-field-box">
-                <div class="layui-row">
-                    <div class="layui-col-md2 title">
-                        累计已入账佣金/元
-                    </div>
-                    <div class="layui-col-md2 title">
-                        今日入账佣金/元
-                    </div>
-                    <div class="layui-col-md2 title">
-                        待结算佣金/元
-                    </div>
-                    <div class="layui-col-md2 title">
-                        今日新增待结算佣金/元
-                    </div>
-                </div>
-                <div class="layui-row">
-                    <div class="layui-col-md2 data">
-                        {$data.earnings.total_success}
-                    </div>
-                    <div class="layui-col-md2 data">
-                        {$data.earnings.total_today_success}
-                    </div>
-                    <div class="layui-col-md2 data">
-                        {$data.earnings.total_wait}
-                    </div>
-                    <div class="layui-col-md2 data">
-                        {$data.earnings.total_today_wait}
-                    </div>
-                </div>
-            </div>
-        </fieldset>
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>分销会员概览</legend>
-            <div class="layui-field-box">
-                <div class="layui-row">
-                    <div class="layui-col-md2 title">
-                        分销会员/人
-                    </div>
-                    <div class="layui-col-md2 title">
-                        分销会员占比/百分比
-                    </div>
-                </div>
-                <div class="layui-row">
-                    <div class="layui-col-md2 data">
-                        {$data.members.members}
-                    </div>
-                    <div class="layui-col-md2 data">
-                        {$data.members.proportion} %
-                    </div>
-                </div>
-            </div>
-        </fieldset>
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>分销商品排行榜</legend>
-            <div class="layui-field-box">
-                <table class="layui-table">
-                    <colgroup>
-                        <col width="150">
-                        <col width="200">
-                        <col>
-                    </colgroup>
-                    <thead>
-                    <tr>
-                        <th>排名</th>
-                        <th>商品名称</th>
-                        <th>已入账佣金</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    {foreach $data.topGoods as $key=>$item }
-                    <tr>
-                        <td>{$key+1}</td>
-                        <td> <img src="{$item.goods_image}" style="height:60px;width: 60px;margin-right:5px;" class="image-show">{$item.goods_name}</td>
-                        <td>{$item.total_money}</td>
-                    </tr>
-                    {/foreach}
-                    </tbody>
-                </table>
-            </div>
-        </fieldset>
-        <fieldset class="layui-elem-field layui-field-title">
-            <legend>分销会员排行榜</legend>
-            <div class="layui-field-box">
-                <table class="layui-table">
-                    <colgroup>
-                        <col width="150">
-                        <col width="200">
-                        <col>
-                    </colgroup>
-                    <thead>
-                    <tr>
-                        <th>排名</th>
-                        <th>会员名称</th>
-                        <th>已入账佣金</th>
-                    </tr>
-                    </thead>
-                    <tbody>
-                    {foreach $data.topMembers as $key=>$item }
-                    <tr>
-                        <td>{$key+1}</td>
-                        <td> <img src="{$item.avatar}" style="height:60px;width: 60px;margin-right:5px;" class="image-show">{$item.nickname}</td>
-                        <td>{$item.total_money}</td>
-                    </tr>
-                    {/foreach}
-                    </tbody>
-                </table>
-            </div>
-        </fieldset>
-    </div>
-        </div>
-    </div>
-</div>
-
-
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['table'], function(){
-        let table = layui.table;
-    });
-</script>

+ 0 - 37
app/admin/view/distribution/center/data.html

@@ -1,37 +0,0 @@
-{layout name="layout1" /}
-<div>
-    <div class="layui-panel">
-        <div style="padding: 15px;font-size: 15px;font-weight: bold;color: black;">分销中心</div>
-
-        <div class="layui-inline">
-            <div class="layui-card" style="margin: 10px;width:300px;background: #eeeeee;">
-                <div class="layui-card-header" style="font-weight: bold;text-align: center;">已结算分销佣金金额</div>
-                <div class="layui-card-body" style="text-align: center;font-size: 30px;">
-                    {$settled}
-                </div>
-            </div>
-        </div>
-
-        <div class="layui-inline">
-            <div class="layui-card" style="margin: 10px;width:300px;background: #eeeeee;">
-                <div class="layui-card-header" style="font-weight: bold;text-align: center;">预估分销佣金金额</div>
-                <div class="layui-card-body" style="text-align: center;font-size: 30px;">
-                    {$estimate}
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<style>
-    .layui-panel {
-        margin: 15px;
-    }
-</style>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form'], function(){
-
-    });
-</script>

+ 0 - 119
app/admin/view/distribution/distribution_goods/detail.html

@@ -1,119 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-    .layui-input-block {
-        line-height: 36px;
-    }
-    .layui-input {
-        width: 300px;
-    }
-    .layui-textarea {
-        width: 300px;
-    }
-    .reqRed:before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<form class="layui-form">
-    <input type="hidden" name="id" value="{$detail.goods.id}" />
-    <div class="layui-form-item">
-        <label class="layui-form-label">商品编号</label>
-        <div class="layui-input-block">
-            {$detail.goods.code}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">商品名称</label>
-        <div class="layui-input-block">
-            {$detail.goods.name}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">分销状态</label>
-        <div class="layui-inline">
-            <input type="radio"  name="is_distribution" value="0" title="不参与" {if $detail.goods.is_distribution == 0}checked{/if}>
-            <input type="radio"  name="is_distribution" value="1" title="参与" {if $detail.goods.is_distribution == 1}checked{/if}>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">佣金规则</label>
-        <div class="layui-inline">
-            <input type="radio"  lay-filter="default" name="rule" value="1" title="默认分销等级佣金规则" {if isset($detail.goods.rule) && $detail.goods.rule == 1}checked{/if}>
-            <input type="radio"  lay-filter="customize" name="rule" value="2" title="单独设置" {if isset($detail.goods.rule) && $detail.goods.rule == 2}checked{/if}>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline">
-            <table class="layui-table {if $detail.goods.rule == 1}layui-hide{/if}">
-                <colgroup>
-                    <col width="200">
-                    <col width="200">
-                    <col width="200">
-                    <col width="200">
-                    <col>
-                </colgroup>
-                <thead>
-                <tr>
-                    <th>分销等级</th>
-                    <th>商品规格</th>
-                    <th>价格</th>
-                    <th class="reqRed">一级佣金比例(%)</th>
-                    <th class="reqRed">二级佣金比例(%)</th>
-                </tr>
-                </thead>
-                <tbody>
-                {foreach $detail.ratio as $item }
-                <input type="hidden" name="items[]" value="{$item['item_id']}">
-                <input type="hidden" name="levels[]" value="{$item['level_id']}">
-                <tr>
-                    <td>{$item.level_name}</td>
-                    <td>{$item.spec_value_str}</td>
-                    <td>{$item.price}</td>
-                    <td>
-                        <input type="number" min="0" name="first_ratio[]" value="{$item.first_ratio}" class="layui-input" />
-                    </td>
-                    <td>
-                        <input type="number" min="0" name="second_ratio[]" value="{$item.second_ratio}" class="layui-input" />
-                    </td>
-                </tr>
-                {/foreach}
-                </tbody>
-            </table>
-        </div>
-    </div>
-
-    <div class="layui-form-item">
-        <div class="layui-input-block layui-hide">
-            <button class="layui-btn" lay-submit lay-filter="setSubmit" id="setSubmit">立即提交</button>
-        </div>
-    </div>
-</form>
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer;
-
-        form.on('radio(default)', function(data){
-            $('.layui-table').addClass('layui-hide');
-        });
-        form.on('radio(customize)', function(data){
-            $('.layui-table').removeClass('layui-hide');
-        });
-    });
-</script>

+ 0 - 187
app/admin/view/distribution/distribution_goods/index.html

@@ -1,187 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .btns {
-        margin-top: 15px;
-    }
-    .layui-table-cell {
-        height: auto;
-    }
-    .layui-form-label {
-        width: 120px;
-    }
-</style>
-<div class="wrapper">
-    <div class="layui-card">
-        <!--操作提示-->
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*查看商品分销佣金比例;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-            <!--搜索区域-->
-        <div class="layui-card-body layui-form">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <div class="layui-form-label">商品信息:</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="keyword" name="keyword" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">平台商品分类:</div>
-                    <div class="layui-input-inline">
-                        <select name="platform_cate_id" id="platform_cate_id"  placeholder="请选择" >
-                            <option value="all">全部</option>
-                            {foreach $cate_list as $val }
-                            <option value="{$val.id}">{$val.html}{$val.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                </div>
-<!--                <div class="layui-inline">-->
-<!--                    <div class="layui-form-label">分销状态:</div>-->
-<!--                    <div class="layui-input-inline">-->
-<!--                        <select name="is_distribution" id="is_distribution"  placeholder="请选择" >-->
-<!--                            <option value="all">全部</option>-->
-<!--                            <option value="0">不参与</option>-->
-<!--                            <option value="1">参与</option>-->
-<!--                        </select>-->
-<!--                    </div>-->
-<!--                </div>-->
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
-                    <button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
-                </div>
-            </div>
-        </div>
-        <!--主体区域-->
-        <div class="layui-card-body">
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--工具条模板-->
-            <script type="text/html" id="operate">
-                <a class="layui-btn layui-btn-sm layui-bg-blue" lay-event="detail">查看佣金设置</a>
-            </script>
-            <!--自定义模板-->
-            <script type="text/html" id="shop-info">
-                <img src="{{d.Shop.logo}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>商家编号:{{d.Shop.id}}</p>
-                    <p>商家名称:{{d.Shop.name}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="goods-info">
-                <img src="{{d.image}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>商品编号:{{d.code}}</p>
-                    <p>商品名称:{{d.name}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="goods-price">
-                ¥ {{d.min_price}} - ¥ {{d.max_price}}
-            </script>
-            <script type="text/html" id="goods-distribution">
-                {{#  if(d.distribution_flag){ }}
-                参与
-                {{#  } else { }}
-                不参与
-                {{#  } }}
-            </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table', 'form'], function () {
-        let $ = layui.$
-            , form = layui.form
-            , table = layui.table;
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('lists', {
-                where: field,
-                page: {curr: 1}
-            });
-        });
-
-        //清空查询
-        form.on('submit(reset)', function(){
-            $('#keyword').val('');
-            $('#platform_cate_id').val('all');
-            $('#shop_cate_id').val('all');
-            $('#is_distribution').val('all');
-            form.render('select');
-            //刷新列表
-            table.reload('lists', {
-                where: [], page: {curr: 1}
-            });
-        });
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,url: '{:url("distribution.distribution_goods/index")}' //数据接口
-            ,method: 'post'
-            ,page: true //开启分页
-            ,cols: [[ //表头
-                {templet: '#shop-info', title: '商家信息'}
-                ,{templet: '#goods-info', title: '商品信息'}
-                ,{templet: '#goods-price', title: '价格', width:200}
-                // ,{templet: '#goods-distribution',align:'center', title: '分销状态', width: 150}
-                ,{title: '操作', align:'center', toolbar: '#operate',  width: 150}
-            ]]
-            , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-        // 工具条事件
-        table.on('tool(lists)', function(obj){
-            var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
-
-            if(layEvent === 'detail'){ // 设置佣金
-                id = obj.data.id;
-                // 弹窗显示添加页
-                layer.open({
-                    type: 2
-                    ,title: "查看佣金比例"
-                    ,content: "{:url('distribution.distribution_goods/detail')}?id=" + id
-                    ,area: ["90%", "90%"]
-                    ,btn: ["返回"]
-                });
-            }
-        });
-
-    });
-
-
-</script>

+ 0 - 138
app/admin/view/distribution/distribution_level/add.html

@@ -1,138 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-    .layui-input {
-        width: 300px;
-    }
-    .layui-textarea {
-        width: 300px;
-    }
-    .reqRed:before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-    .checkbox-width{
-        width: 120px;
-    }
-</style>
-<form class="layui-form">
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级名称</label>
-        <div class="layui-input-block">
-            <input type="text" name="name" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级级别</label>
-        <div class="layui-inline">
-            <input type="number" min="2" name="weights" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            级
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">等级描述</label>
-        <div class="layui-input-block">
-            <textarea name="remark" class="layui-textarea"></textarea>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">一级佣金比例</label>
-        <div class="layui-inline">
-            <input type="number" min="0" name="first_ratio" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            %
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">二级佣金比例</label>
-        <div class="layui-inline">
-            <input type="number" min="0" name="second_ratio" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            %
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级条件</label>
-        <div class="layui-inline">
-            <input type="radio" name="update_relation" value="1" title="满足以下任一条件">
-            <input type="radio" name="update_relation" value="2" title="满足以下全部条件">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="singleConsumptionAmount" title="单笔消费金额">
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="singleConsumptionAmount" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            元
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="cumulativeConsumptionAmount" title="累计消费金额">
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="cumulativeConsumptionAmount" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            元
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="cumulativeConsumptionTimes" title="累计消费次数">
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="cumulativeConsumptionTimes" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            次
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="returnedCommission" title="已结算佣金收入">
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="returnedCommission" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            元
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <div class="layui-input-block layui-hide">
-            <button class="layui-btn" lay-submit lay-filter="addSubmit" id="addSubmit">立即提交</button>
-        </div>
-    </div>
-</form>
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer;
-    });
-</script>

+ 0 - 139
app/admin/view/distribution/distribution_level/edit.html

@@ -1,139 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-    .layui-input {
-        width: 300px;
-    }
-    .layui-textarea {
-        width: 300px;
-    }
-    .reqRed:before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-    .checkbox-width{
-        width: 120px;
-    }
-</style>
-<form class="layui-form">
-    <input type="hidden" name="id" value="{$detail.id}" />
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级名称</label>
-        <div class="layui-input-block">
-            <input type="text" name="name" value="{$detail.name}" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级级别</label>
-        <div class="layui-inline">
-            <input type="number" min="2" name="weights" value="{$detail.weights}"  required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            级
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">等级描述</label>
-        <div class="layui-input-block">
-            <textarea name="remark" class="layui-textarea">{$detail.remark}</textarea>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">一级佣金比例</label>
-        <div class="layui-inline">
-            <input type="number" min="0" name="first_ratio" value="{$detail.first_ratio}" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            %
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">二级佣金比例</label>
-        <div class="layui-inline">
-            <input type="number" min="0" name="second_ratio" value="{$detail.second_ratio}" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            %
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级条件</label>
-        <div class="layui-inline">
-            <input type="radio" name="update_relation" value="1" {if $detail.update_relation == 1}checked{/if} title="满足以下任一条件">
-            <input type="radio" name="update_relation" value="2" {if $detail.update_relation == 2}checked{/if} title="满足以下全部条件">
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="singleConsumptionAmount" title="单笔消费金额" {if in_array('singleConsumptionAmount', $detail.update_condition.keys)}checked{/if}>
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="singleConsumptionAmount" value="{$detail.update_condition.data.singleConsumptionAmount}" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            元
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="cumulativeConsumptionAmount" title="累计消费金额" {if in_array('cumulativeConsumptionAmount', $detail.update_condition.keys)}checked{/if}>
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="cumulativeConsumptionAmount" value="{$detail.update_condition.data.cumulativeConsumptionAmount}" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            元
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="cumulativeConsumptionTimes" title="累计消费次数" {if in_array('cumulativeConsumptionTimes', $detail.update_condition.keys)}checked{/if}>
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="cumulativeConsumptionTimes" value="{$detail.update_condition.data.cumulativeConsumptionTimes}" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            次
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <div class="layui-inline checkbox-width">
-            <input type="checkbox" lay-skin="primary" name="update_condition[]" value="returnedCommission" title="已结算佣金收入" {if in_array('returnedCommission', $detail.update_condition.keys)}checked{/if}>
-        </div>
-        <div class="layui-inline">
-            <input type="number" min="0" name="returnedCommission" value="{$detail.update_condition.data.returnedCommission}" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            元
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <div class="layui-input-block layui-hide">
-            <button class="layui-btn" lay-submit lay-filter="editSubmit" id="editSubmit">立即提交</button>
-        </div>
-    </div>
-</form>
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer;
-    });
-</script>

+ 0 - 81
app/admin/view/distribution/distribution_level/edit_default.html

@@ -1,81 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-    .layui-input {
-        width: 300px;
-    }
-    .layui-textarea {
-        width: 300px;
-    }
-    .reqRed:before {
-        content: '*';
-        color: red;
-        margin-right: 5px;
-    }
-</style>
-<form class="layui-form">
-    <input type="hidden" name="id" value="{$detail.id}">
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级名称</label>
-        <div class="layui-input-block">
-            <input type="text" name="name" value="{$detail.name}" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">等级级别</label>
-        <div class="layui-inline">
-            <input type="text" name="weights" value="{$detail.weights}" required  lay-verify="required" autocomplete="off" class="layui-input layui-disabled" />
-        </div>
-        <div class="layui-inline">
-            级
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">等级描述</label>
-        <div class="layui-input-block">
-            <textarea name="remark" class="layui-textarea">{$detail.remark}</textarea>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">一级佣金比例</label>
-        <div class="layui-inline">
-            <input type="number" min="0" name="first_ratio" value="{$detail.first_ratio}" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            %
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">二级佣金比例</label>
-        <div class="layui-inline">
-            <input type="number" min="0" name="second_ratio" value="{$detail.second_ratio}" required  lay-verify="required" autocomplete="off" class="layui-input" />
-        </div>
-        <div class="layui-inline">
-            %
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <div class="layui-input-block layui-hide">
-            <button class="layui-btn" lay-submit lay-filter="editSubmit" id="editSubmit">立即提交</button>
-        </div>
-    </div>
-</form>
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer;
-    });
-</script>

+ 0 - 171
app/admin/view/distribution/distribution_level/index.html

@@ -1,171 +0,0 @@
-{layout name="layout1" /}
-<style>
-
-</style>
-<div class="wrapper">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <!--操作提示-->
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*管理分销会员的等级,系统默认等级不能删除;</p>
-                        <p>*删除分销等级时,会重新调整分销会员等级为系统默认等级,请谨慎操作;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="layui-card-body">
-            <!--功能按钮-->
-            <div class="btns">
-                <buttion class="layui-btn layui-btn-sm layui-bg-blue" id="add">添加分销等级</buttion>
-            </div>
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--工具条模板-->
-            <script type="text/html" id="operate">
-                <a class="layui-btn layui-btn-sm layui-bg-blue" lay-event="edit">编辑</a>
-                {{#  if(d.is_default != 1){ }}
-                <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="del">删除</a>
-                {{#  } }}
-            </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table'], function () {
-        let $ = layui.$
-            , table = layui.table;
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,height: 312
-            ,url: '{:url("distribution.distribution_level/index")}' //数据接口
-            ,method: 'post'
-            ,page: false //开启分页
-            ,cols: [[ //表头
-                {field: 'weights_desc', title: '等级级别', width:150}
-                ,{field: 'name', title: '等级名称', width:150}
-                ,{field: 'first_ratio', title: '一级佣金比例', width:150}
-                ,{field: 'second_ratio', title: '二级佣金比例', width: 150}
-                ,{field: 'members_num', title: '分销会员数', width: 150}
-                ,{title: '操作', toolbar: '#operate'}
-            ]]                    , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-        // 工具条事件
-        table.on('tool(lists)', function(obj){
-            var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
-
-            if(layEvent === 'del'){ //删除
-                layer.confirm('确定要删除吗?', function(index){
-                    layer.close(index);
-                    like.ajax({
-                        url: "{:url('distribution.distribution_level/delete')}",
-                        data: {id: obj.data.id},
-                        type: "post",
-                        success:function(res) {
-                            if(res.code === 1) {
-                                layui.layer.msg(res.msg);
-                                layer.close(index);
-                                table.reload("lists");
-                            }
-                        }
-                    });
-                });
-            } else if(layEvent === 'edit'){ //编辑
-                id = obj.data.id;
-                // 弹窗显示添加页
-                layer.open({
-                    type: 2
-                    ,title: "编辑分销等级"
-                    ,content: "{:url('distribution.distribution_level/edit')}?id=" + id
-                    ,area: ["90%", "90%"]
-                    ,btn: ["确定", "取消"]
-                    ,yes: function(index, layero){
-                        var iframeWindow = window["layui-layer-iframe" + index];
-                        var submit = layero.find("iframe").contents().find("#editSubmit");
-                        iframeWindow.layui.form.on("submit(editSubmit)", function(data){
-                            like.ajax({
-                                url: "{:url('distribution.distribution_level/edit')}",
-                                data: data.field,
-                                type: "post",
-                                success:function(res) {
-                                    if(res.code === 1) {
-                                        layui.layer.msg(res.msg);
-                                        layer.close(index);
-                                        table.reload("lists");
-                                    }
-                                }
-                            });
-                            return false;
-                        });
-                        submit.trigger("click");
-                    }
-                });
-            }
-        });
-
-        // 功能按钮
-        $('#add').click(function() {
-            // 弹窗显示添加页
-            layer.open({
-                type: 2
-                ,title: "添加分销等级"
-                ,content: "{:url('distribution.distribution_level/add')}"
-                ,area: ["90%", "90%"]
-                ,btn: ["确定", "取消"]
-                ,yes: function(index, layero){
-                    var iframeWindow = window["layui-layer-iframe" + index];
-                    var submit = layero.find("iframe").contents().find("#addSubmit");
-                    iframeWindow.layui.form.on("submit(addSubmit)", function(data){
-                        like.ajax({
-                            url: "{:url('distribution.distribution_level/add')}",
-                            data: data.field,
-                            type: "post",
-                            success:function(res) {
-                                if(res.code === 1) {
-                                    layui.layer.msg(res.msg);
-                                    layer.close(index);
-                                    table.reload("lists");
-                                }
-                            }
-                        });
-                       return false;
-                    });
-                    submit.trigger("click");
-                }
-            });
-        });
-
-
-    });
-
-
-</script>

+ 0 - 74
app/admin/view/distribution/distribution_member/adjust.html

@@ -1,74 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .layui-form {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-    .layui-input-block {
-        width: 300px;
-        line-height: 38px;
-    }
-    .layui-btn {
-        margin-top: 5px;
-    }
-    select {
-        width: 300px;
-    }
-    .layui-input {
-        width: 300px;
-    }
-</style>
-<form class="layui-form">
-    <input type="hidden" name="user_id" value="{$user.user_id}">
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户编号</label>
-        <div class="layui-input-block">
-            {$user.user_sn}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户昵称</label>
-        <div class="layui-input-block">
-            {$user.user_nickname}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">当前分销等级</label>
-        <div class="layui-input-block">
-            {$user.level_name}
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">分销等级</label>
-        <div class="layui-inline">
-            <select name="level_id" id="level_id"  placeholder="请选择" >
-                {foreach $levels as $val }
-                <option value="{$val.id}">{$val.name}({$val.weights})级</option>
-                {/foreach}
-            </select>
-        </div>
-    </div>
-
-    <div class="layui-form-item">
-        <div class="layui-input-block layui-hide">
-            <button class="layui-btn" lay-submit lay-filter="formSubmit" id="formSubmit">立即提交</button>
-        </div>
-    </div>
-</form>
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer
-            , element = layui.element;
-    });
-</script>

+ 0 - 276
app/admin/view/distribution/distribution_member/index.html

@@ -1,276 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .layui-form-label {
-        width: 120px;
-    }
-</style>
-<div class="wrapper">
-    <div class="layui-card">
-        <!--操作提示-->
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*分销会员;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--搜索区域-->
-        <div class="layui-card-body layui-form">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <div class="layui-form-label">用户信息:</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="keyword" name="keyword" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">分销会员等级:</div>
-                    <div class="layui-input-inline">
-                        <select name="level_id" id="level_id"  placeholder="请选择" >
-                            <option value="all">全部</option>
-                            {foreach $levels as $val }
-                            <option value="{$val.id}">{$val.name}</option>
-                            {/foreach}
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">分销状态:</div>
-                    <div class="layui-input-inline">
-                        <select name="is_freeze" id="is_freeze"  placeholder="请选择" >
-                            <option value="all">全部</option>
-                            <option value="0">正常</option>
-                            <option value="1">冻结</option>
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
-                    <button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
-                </div>
-            </div>
-        </div>
-        <div class="layui-card-body">
-            <!--功能按钮-->
-            <div class="btns">
-                <buttion class="layui-btn layui-btn-sm layui-bg-blue" id="open">开通分销会员</buttion>
-            </div>
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--工具条模板-->
-            <script type="text/html" id="operate">
-                <a class="layui-btn layui-btn-sm layui-bg-blue" lay-event="adjust">等级调整</a>
-                {{#  if(d.is_freeze == 0){ }}
-                <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="freeze">冻结资格</a>
-                {{#  } else { }}
-                <a class="layui-btn layui-bg-blue layui-btn-sm" lay-event="unfreeze">恢复资格</a>
-                {{#  } }}
-            </script>
-            <!--自定义模板-->
-            <script type="text/html" id="user-info">
-                <img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>用户编号:{{d.user_sn}}</p>
-                    <p>用户昵称:{{d.nickname}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="level-info">
-                {{d.level_name}}({{d.weights}})级
-            </script>
-            <script type="text/html" id="earnings-wait">
-                {{d.earnings.wait}}
-            </script>
-            <script type="text/html" id="earnings-success">
-                {{d.earnings.success}}
-            </script>
-            <script type="text/html" id="earnings-fail">
-                {{d.earnings.fail}}
-            </script>
-            <script type="text/html" id="user-distribution">
-                {{#  if(d.is_freeze){ }}
-                冻结
-                {{#  } else { }}
-                正常
-                {{#  } }}
-            </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table', 'form'], function () {
-        let $ = layui.$
-            , form = layui.form
-            , table = layui.table;
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('lists', {
-                where: field,
-                page: {curr: 1}
-            });
-        });
-
-        //清空查询
-        form.on('submit(reset)', function(){
-            $('#keyword').val('');
-            $('#level_id').val('all');
-            $('#is_freeze').val('all');
-            form.render('select');
-            //刷新列表
-            table.reload('lists', {
-                where: [], page: {curr: 1}
-            });
-        });
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,url: '{:url("distribution.distribution_member/index")}' //数据接口
-            ,method: 'post'
-            ,page: true //开启分页
-            ,cols: [[ //表头
-                {templet: '#user-info', title: '用户信息', width:250}
-                ,{templet: '#level-info', title: '分销等级', width:180}
-                ,{templet: '#earnings-success', title: '已入账佣金', width:120}
-                ,{templet: '#earnings-wait', title: '待结算佣金', width:120}
-                ,{templet: '#earnings-fail', title: '已失效佣金', width:120}
-                ,{templet: '#user-distribution', title: '分销状态', width: 120}
-                ,{field: 'distribution_time', title: '成为分销会员时间', width: 200}
-                ,{title: '操作', toolbar: '#operate', width: 200}
-            ]]
-            , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-        // 工具条事件
-        table.on('tool(lists)', function(obj){
-            var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
-
-            if(layEvent === 'freeze'){ // 冻结资格
-                layer.confirm('确定要冻结资格吗?', function(index){
-                    layer.close(index);
-                    like.ajax({
-                        url: "{:url('distribution.distribution_member/isFreeze')}",
-                        data: {user_id: obj.data.user_id,is_freeze:1},
-                        type: "post",
-                        success:function(res) {
-                            if(res.code === 1) {
-                                layui.layer.msg(res.msg);
-                                layer.close(index);
-                                table.reload("lists");
-                            }
-                        }
-                    });
-                });
-            } else if(layEvent === 'unfreeze'){ // 恢复资格
-                layer.confirm('确定要恢复资格吗?', function(index){
-                    layer.close(index);
-                    like.ajax({
-                        url: "{:url('distribution.distribution_member/isFreeze')}",
-                        data: {user_id: obj.data.user_id,is_freeze:0},
-                        type: "post",
-                        success:function(res) {
-                            if(res.code === 1) {
-                                layui.layer.msg(res.msg);
-                                layer.close(index);
-                                table.reload("lists");
-                            }
-                        }
-                    });
-                });
-            } else if(layEvent === 'adjust'){ // 分销等级调整
-                id = obj.data.user_id;
-                // 分销等级调整
-                layer.open({
-                    type: 2
-                    ,title: "分销等级调整"
-                    ,content: "{:url('distribution.distribution_member/adjust')}?id=" + id
-                    ,area: ["90%", "90%"]
-                    ,btn: ["确定", "取消"]
-                    ,yes: function(index, layero){
-                        var iframeWindow = window["layui-layer-iframe" + index];
-                        var submit = layero.find("iframe").contents().find("#formSubmit");
-                        iframeWindow.layui.form.on("submit(formSubmit)", function(data){
-                            like.ajax({
-                                url: "{:url('distribution.distribution_member/adjust')}",
-                                data: data.field,
-                                type: "post",
-                                success:function(res) {
-                                    if(res.code === 1) {
-                                        layui.layer.msg(res.msg);
-                                        layer.close(index);
-                                        table.reload("lists");
-                                    }
-                                }
-                            });
-                            return false;
-                        });
-                        submit.trigger("click");
-                    }
-                });
-            }
-        });
-
-        // 功能按钮
-        $('#open').click(function() { // 开通分销会员
-            layer.open({
-                type: 2
-                ,title: "开通分销会员"
-                ,content: "{:url('distribution.distribution_member/open')}"
-                ,area: ["90%", "90%"]
-                ,btn: ["确定", "取消"]
-                ,yes: function(index, layero){
-                    var iframeWindow = window["layui-layer-iframe" + index];
-                    var submit = layero.find("iframe").contents().find("#openSubmit");
-                    iframeWindow.layui.form.on("submit(openSubmit)", function(data){
-                        like.ajax({
-                            url: "{:url('distribution.distribution_member/open')}",
-                            data: data.field,
-                            type: "post",
-                            success:function(res) {
-                                if(res.code === 1) {
-                                    layui.layer.msg(res.msg);
-                                    layer.close(index);
-                                    table.reload("lists");
-                                }
-                            }
-                        });
-                        return false;
-                    });
-                    submit.trigger("click");
-                }
-            });
-        });
-
-    });
-
-
-</script>

+ 0 - 83
app/admin/view/distribution/distribution_member/open.html

@@ -1,83 +0,0 @@
-{layout name="layout2" /}
-<style>
-    /*.layui-form {*/
-    /*    margin: 5px;*/
-    /*}*/
-    /*.layui-form-label {*/
-    /*    width: 120px;*/
-    /*    text-align: left;*/
-    /*    padding-left:30px;*/
-    /*}*/
-    .layui-input-block {
-        width: 300px;
-        line-height: 36px;
-    }
-    .layui-btn {
-        margin-top: 5px;
-    }
-    select {
-        width: 300px;
-    }
-    .layui-input {
-        width: 300px;
-    }
-</style>
-<form class="layui-form">
-    <input type="hidden" name="user_id" id="user_id"  value="0">
-    <div class="layui-form-item">
-        <label class="layui-form-label">用户信息</label>
-        <div class="layui-inline">
-            <span id="user_selected"></span>
-        </div>
-        <div class="layui-inline">
-            <button class="layui-btn layui-btn-sm layui-bg-blue" id="show-user">选择用户</button>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">分销等级</label>
-        <div class="layui-input-block">
-            <select name="level_id" id="level_id"  placeholder="请选择" >
-                {foreach $levels as $val }
-                <option value="{$val.id}">{$val.name}({$val.weights})级</option>
-                {/foreach}
-            </select>
-        </div>
-    </div>
-
-    <div class="layui-form-item">
-        <div class="layui-input-block layui-hide">
-            <button class="layui-btn" lay-submit lay-filter="openSubmit" id="openSubmit">立即提交</button>
-        </div>
-    </div>
-</form>
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer
-            , element = layui.element;
-
-        $('#show-user').click(function() {
-            layer.open({
-                type: 2
-                ,title: "选择用户"
-                ,content: "{:url('distribution.distribution_member/userLists')}"
-                ,area: ["90%", "90%"]
-                ,btn: ["确定", "取消"]
-                ,yes: function(index, layero){
-                    var iframeWindow = window["layui-layer-iframe" + index];
-                    let user_selected = iframeWindow.user_selected();
-                    $('#user_selected').html(user_selected.nickname + '(' + user_selected.sn + ')');
-                    $('#user_id').val(user_selected.id);
-                    layer.close(index);
-                }
-            });
-            return false;
-        });
-    });
-</script>

+ 0 - 124
app/admin/view/distribution/distribution_member/user_lists.html

@@ -1,124 +0,0 @@
-{layout name="layout1" /}
-<style>
-</style>
-<div class="wrapper">
-    <div class="layui-card">
-        <div class="layui-card-body layui-form">
-            <!--搜索区域-->
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <div class="layui-form-label">用户信息:</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="keyword" name="keyword" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">分销状态:</div>
-                    <div class="layui-input-inline">
-                        <select name="is_distribution" id="is_distribution"  placeholder="请选择" >
-                            <option value="all">全部</option>
-                            <option value="1">分销会员</option>
-                            <option value="0">非分销会员</option>
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
-                    <button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
-                </div>
-            </div>
-        </div>
-        <div class="layui-card-body">
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--自定义模板-->
-            <script type="text/html" id="user-info">
-                <img src="{{d.avatar}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>用户编号:{{d.user_sn}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.nickname}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="level-info">
-                {{d.level_name}}({{d.weights}})级
-            </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table', 'form'], function () {
-        let $ = layui.$
-            , form = layui.form
-            , table = layui.table;
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('lists', {
-                where: field,
-                page: {curr: 1}
-            });
-        });
-
-        // 获取选中的用户信息
-        window.user_selected = function user_selected()
-        {
-            var checkStatus = table.checkStatus('lists');
-            return checkStatus.data[0]; //获取选中行的数据
-        }
-
-        //清空查询
-        form.on('submit(reset)', function(){
-            $('#keyword').val('');
-            $('#is_distribution').val('all');
-            form.render('select');
-            //刷新列表
-            table.reload('lists', {
-                where: [], page: {curr: 1}
-            });
-        });
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,url: '{:url("distribution.distribution_member/userLists")}' //数据接口
-            ,method: 'post'
-            ,page: true //开启分页
-            ,cols: [[ //表头
-                {type: 'radio'}
-                ,{field: 'sn', title: '用户编号', width:380}
-                ,{field: 'nickname', title: '用户昵称', width:180}
-                ,{field: 'distribution', title: '是否分销会员', width:120}
-            ]]
-            , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-    });
-
-
-</script>

+ 0 - 188
app/admin/view/distribution/distribution_order/index.html

@@ -1,188 +0,0 @@
-{layout name="layout1" /}
-<style>
-</style>
-<div class="wrapper">
-    <div class="layui-card">
-        <!--操作提示-->
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*分销订单明细;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <!--搜索区域-->
-        <div class="layui-card-body layui-form">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <div class="layui-form-label">订单信息:</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="order_keyword" name="order_keyword" placeholder="订单编号" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">商品信息:</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="goods_keyword" name="goods_keyword" placeholder="名称" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">分销会员:</div>
-                    <div class="layui-input-inline">
-                        <input type="text" id="distribution_keyword" placeholder="编号/昵称" name="distribution_keyword" class="layui-input" />
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-form-label">佣金状态:</div>
-                    <div class="layui-input-inline">
-                        <select name="status" id="status"  placeholder="请选择" >
-                            <option value="0">全部</option>
-                            <option value="1">待返佣</option>
-                            <option value="2">已结算</option>
-                            <option value="3">已失效</option>
-                        </select>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-primary layui-bg-blue" lay-submit lay-filter="search">搜索</button>
-                    <button class="layui-btn layui-btn-primary" lay-submit lay-filter="reset">重置</button>
-                </div>
-            </div>
-        </div>
-        <!--主体区域-->
-        <div class="layui-card-body">
-            <!--数据表格-->
-            <table id="lists" lay-filter="lists"></table>
-            <!--自定义模板-->
-            <script type="text/html" id="shop-info">
-                <img src="{{d.shop_logo}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>商家编号:{{d.shop_id}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">商家名称:{{d.shop_name}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="order-info">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>订单编号:{{d.order_sn}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">下单时间:{{d.order_create_time}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="user-info">
-                <img src="{{d.user_info.avatar}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>用户编号:{{d.user_info.sn}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">用户昵称:{{d.user_info.nickname}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="goods-info">
-                <img src="{{d.goods_image}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>商品名称:{{d.goods_name}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">规格名称:{{d.spec_value}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">数量:{{d.goods_num}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">实付金额:{{d.total_pay_price}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="distribution-member-info">
-                <img src="{{d.distribution_avatar}}" style="height:60px;width: 60px" class="image-show">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>分销会员编号:{{d.distribution_sn}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">分销会员昵称:{{d.distribution_nickname}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="distribution-order-info">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>分销等级:{{d.level_name}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">分销层级:{{d.level}}级</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">佣金比例:{{d.ratio}}</p>
-                </div>
-            </script>
-            <script type="text/html" id="earnings-info">
-                <div class="layui-input-inline"  style="text-align: left;">
-                    <p>佣金金额:{{d.money}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">佣金状态:{{d.status_desc}}</p>
-                    <p style="width: 300px;text-overflow:ellipsis;overflow: hidden">结算时间:{{d.settlement_time}}</p>
-                </div>
-            </script>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['table', 'form'], function () {
-        let $ = layui.$
-            , form = layui.form
-            , table = layui.table;
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('lists', {
-                where: field,
-                page: {curr: 1}
-            });
-        });
-
-        //清空查询
-        form.on('submit(reset)', function(){
-            $('#order_keyword').val('');
-            $('#goods_keyword').val('');
-            $('#distribution_keyword').val('');
-            $('#status').val('0');
-            form.render('select');
-            //刷新列表
-            table.reload('lists', {
-                where: [], page: {curr: 1}
-            });
-        });
-
-        // 数据表格渲染
-        table.render({
-            elem: '#lists'
-            ,url: '{:url("distribution.distribution_order/index")}' //数据接口
-            ,method: 'post'
-            ,page: true //开启分页
-            ,cols: [[ //表头
-                {templet: '#shop-info', title: '商家信息', width:280}
-                ,{templet: '#order-info', title: '订单信息', width:280}
-                ,{templet: '#user-info', title: '买家信息', width:280}
-                ,{templet: '#goods-info', title: '商品信息', width:280}
-                ,{templet: '#distribution-member-info', title: '分销会员', width:280}
-                ,{templet: '#distribution-order-info', title: '分销信息', width:280}
-                ,{templet: '#earnings-info', title: '佣金信息', fixed: 'right', width: 280}
-            ]]
-            , text: {none: '暂无数据!'}
-            , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code": res.code,
-                    "msg": res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            ,done: function(res, curr, count){
-                // 解决操作栏因为内容过多换行问题
-                $(".layui-table-main tr").each(function (index, val) {
-                    $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                    $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                });
-            }
-        });
-
-
-    });
-
-
-</script>

+ 0 - 119
app/admin/view/distribution/distribution_setting/index.html

@@ -1,119 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .layui-panel {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-</style>
-<div class="wrapper">
-    <!-- 面板 -->
-    <div class="layui-panel">
-        <!-- 表单 -->
-        <form class="layui-form">
-            <!-- 字段集区块 -->
-            <fieldset class="layui-elem-field layui-field-title">
-                <legend>分销设置</legend>
-                <div class="layui-field-box">
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">分销功能</label>
-                        <div class="layui-input-block">
-                            <input type="radio" name="is_open" value="0" title="关闭" {if $config.is_open == 0}checked{/if}>
-                            <input type="radio" name="is_open" value="1" title="开启" {if $config.is_open == 1}checked{/if}>
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block layui-word-aux">
-                            关闭分销功能后不会再产生新的分销佣金,商城端分销入口会关闭。
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">分销层级</label>
-                        <div class="layui-input-block">
-                            <input type="radio" name="level" value="1" title="一级分销" {if $config.level == 1}checked{/if}>
-                            <input type="radio" name="level" value="2" title="二级分销" {if $config.level == 2}checked{/if}>
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block layui-word-aux">
-                            允许发放佣金的分销层级
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">商品详情显示佣金</label>
-                        <div class="layui-input-block">
-                            <input type="radio" name="is_show_earnings" value="0" title="隐藏" {if $config.is_show_earnings == 0}checked{/if}>
-                            <input type="radio" name="is_show_earnings" value="1" title="显示" {if $config.is_show_earnings == 1}checked{/if}>
-                        </div>
-                        <div class="layui-input-block layui-word-aux">是否在商品详情显示佣金奖励提示</div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">详情页佣金可见用户</label>
-                        <div class="layui-input-block">
-                            <input type="radio" name="show_earnings_scope" value="0" title="全部用户" {if $config.show_earnings_scope == 0}checked{/if}>
-                            <input type="radio" name="show_earnings_scope" value="1" title="分销商" {if $config.show_earnings_scope == 1}checked{/if}>
-                        </div>
-                        <div class="layui-input-block layui-word-aux">选择全部用户,则所有人在商品详情都可以看到佣金奖励提示</div>
-                    </div>
-                </div>
-            </fieldset>
-            <!-- 字段集区块 -->
-            <fieldset class="layui-elem-field layui-field-title">
-                <legend>分销资格</legend>
-                <div class="layui-field-box">
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">开通分销会员条件</label>
-                        <div class="layui-input-block">
-                            <input type="radio" name="apply_condition" value="1" title="无条件" {if $config.apply_condition == 1}checked{/if}>
-                            <input type="radio" name="apply_condition" value="2" title="申请分销" {if $config.apply_condition == 2}checked{/if}>
-                            <input type="radio" name="apply_condition" value="3" title="指定分销" {if $config.apply_condition == 3}checked{/if}>
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block layui-word-aux">
-                            开通分销会员条件切换至无条件时,所有用户都将开通分销会员资格。
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block">
-                            <button class="layui-btn layui-bg-blue layui-btn layui-btn-sm" lay-submit lay-filter="*">保存设置</button>
-                        </div>
-                    </div>
-                </div>
-            </fieldset>
-        </form>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer;
-
-        form.on('submit(*)', function (data) {
-            like.ajax({
-                url: '{:url("distribution.distribution_setting/set")}'
-                , data: data.field
-                , type: 'post'
-                , success: function (res) {
-                    layer.msg(res.msg);
-                },
-            });
-            return false; //阻止表单跳转
-        });
-
-    });
-</script>

+ 0 - 87
app/admin/view/distribution/distribution_setting/settlement.html

@@ -1,87 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .layui-panel {
-        margin: 5px;
-    }
-    .layui-form-label {
-        width: 120px;
-        text-align: left;
-        padding-left:30px;
-    }
-</style>
-<div class="wrapper">
-    <!-- 面板 -->
-    <div class="layui-panel">
-        <!-- 表单 -->
-        <form class="layui-form">
-            <!-- 字段集区块 -->
-            <fieldset class="layui-elem-field layui-field-title">
-                <legend>结算设置</legend>
-                <div class="layui-field-box">
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">佣金计算方式</label>
-                        <div class="layui-input-block">
-                            <input type="radio" name="cale_method" value="1" title="商品实际支付金额" {if $config.cale_method == 1}checked{/if}>
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block layui-word-aux">
-                            根据商品实际支付金额及相应的佣金比例计算佣金
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label">结算时机</label>
-                        <div class="layui-inline">
-                            <input type="radio" name="settlement" value="1" title="订单完成后" {if $config.settlement == 1}checked{/if}>
-                        </div>
-                        <div class="layui-inline">
-                            <input type="number" min="0" name="settlement_days" value="{$config.settlement_days}" class="layui-input" />
-                        </div>
-                        <div class="layui-inline">
-                            天
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block layui-word-aux">
-                            预估佣金结算后无法进行回收,请谨慎设置结算天数
-                        </div>
-                    </div>
-                    <div class="layui-form-item">
-                        <label class="layui-form-label"></label>
-                        <div class="layui-input-block">
-                            <button class="layui-btn layui-bg-blue layui-btn layui-btn-sm" lay-submit lay-filter="*">保存设置</button>
-                        </div>
-                    </div>
-                </div>
-            </fieldset>
-        </form>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , layer = layui.layer;
-
-        form.on('submit(*)', function (data) {
-            like.ajax({
-                url: '{:url("distribution.distribution_setting/set")}'
-                , data: data.field
-                , type: 'post'
-                , success: function (res) {
-                    layer.msg(res.msg);
-                },
-            });
-            return false; //阻止表单跳转
-        });
-
-    });
-</script>

+ 0 - 31
app/admin/view/distribution/member/add_member.html

@@ -1,31 +0,0 @@
-{layout name="layout2" /}
-
-<div class="layui-card layui-form">
-    <div class="layui-card-body">
-        <div class="layui-form-item">
-            <label for="sn" class="layui-form-label"><span style="color:red;">*</span>会员编号:</label>
-            <div class="layui-input-inline" style="width: 250px;">
-                <input type="text" id="sn" name="sn" lay-verType="tips" lay-verify="required" autocomplete="off" class="layui-input">
-            </div>
-        </div>
-        <div class="layui-form-item">
-            <label for="remarks" class="layui-form-label">备注信息:</label>
-            <div class="layui-input-inline" style="width: 250px;">
-                <textarea id="remarks" name="remarks" placeholder="请输入内容不超100个字符" class="layui-textarea"></textarea>
-            </div>
-        </div>
-
-        <div class="layui-form-item layui-hide">
-            <input type="button" lay-submit lay-filter="addSubmit" id="addSubmit" value="确认">
-        </div>
-    </div>
-</div>
-
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['form'], function () {
-        var form = layui.form;
-    });
-</script>

+ 0 - 91
app/admin/view/distribution/member/audit_lists.html

@@ -1,91 +0,0 @@
-<style>
-    .layui-table-cell {
-        height: auto;
-    }
-</style>
-<div class="layui-fluid">
-
-    <div class="layui-form layui-card-header layuiadmin-card-header-auto">
-        <div class="layui-form-item">
-
-            <div class="layui-inline">
-                <label class="layui-form-label">会员信息:</label>
-                <div class="layui-input-block">
-                    <select name="search_key">
-                        <option value="sn">会员编号</option>
-                        <option value="nickname">会员昵称</option>
-                        <option value="mobile">手机号码</option>
-                    </select>
-                </div>
-            </div>
-
-            <div class="layui-inline">
-                <input type="text" name="keyword" id="audit_keyword" placeholder="请输入搜索内容" autocomplete="off" class="layui-input">
-            </div>
-
-            <div class="layui-inline">
-                <label class="layui-form-label">审核状态:</label>
-                <div class="layui-input-block">
-                    <select name="status" id="audit_status">
-                        <option value="">全部</option>
-                        {foreach $status as $item => $val}
-                        <option value="{$item}">{$val}</option>
-                        {/foreach}
-                    </select>
-                </div>
-            </div>
-
-            <div class="layui-inline">
-                <button class="layui-btn layui-btn-sm layuiadmin-btn-audit {$view_theme_color}" lay-submit lay-filter="audit-search">
-                    查询
-                </button>
-                <button class="layui-btn layui-btn-sm layuiadmin-btn-audit layui-btn-primary " lay-submit
-                        lay-filter="audit-clear-search">重置
-                </button>
-            </div>
-        </div>
-    </div>
-
-
-    <table id="audit-lists" lay-filter="audit-lists"></table>
-
-    <script type="text/html" id="audit-operation">
-        {{#  if(d.status == 0){ }}
-        <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="pass">审核通过</a>
-        <a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="refuse">审核拒绝</a>
-        {{#  } }}
-    </script>
-
-    <script type="text/html" id="icon">
-        <img src="{{d.icon}}" style="height:80px;width: 80px" class="image-show">
-    </script>
-
-    <!--会员信息-->
-    <script type="text/html" id="user-info">
-        <img src="{{d.avatar}}" style="height:80px;width: 80px" class="image-show">
-        <div class="layui-input-inline"  style="text-align: left">
-            <p>会员编号:{{d.sn}}</p>
-            <p>会员昵称:{{d.nickname}}</p>
-            <p>手机号码:{{d.mobile}}</p>
-            <p>会员等级:{{d.level}}</p>
-            <!--            <p>性别:{{d.sex}}</p>-->
-            <!--            <p>注册时间:{{d.create_time}}</p>-->
-        </div>
-    </script>
-
-    <!--上级推荐人信息-->
-    <script type="text/html" id="leader-info">
-        {{#  if(d.leader.length == 0){ }}
-        <p>无</p>
-
-        {{#  } else { }}
-        <div class="layui-input-inline" >
-            <p>会员编号:{{d.leader.sn}}</p>
-            <p>会员昵称:{{d.leader.nickname}}</p>
-            <!--                <p>手机号码:{{d.leader.mobile}}</p>-->
-            <p>会员等级: {{d.leader.level}}</p>
-        </div>
-        {{#  } }}
-    </script>
-
-</div>

+ 0 - 119
app/admin/view/distribution/member/earnings_detail.html

@@ -1,119 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .layui-table-cell {
-        height: auto;
-    }
-</style>
-
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-form layui-card-header layuiadmin-card-header-auto">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <label class="layui-form-label">记录时间:</label>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input time" id="start_time" name="start_time"  autocomplete="off">
-                    </div>
-                    <div class="layui-input-inline" style="margin-right: 5px;width: 10px;">
-                        <label class="layui-form-mid">-</label>
-                    </div>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input time" id="end_time" name="end_time"  autocomplete="off">
-                    </div>
-                </div>
-
-                <div class="layui-inline">
-                    <button class="layui-btn layuiadmin-btn-earnings {$view_theme_color}" lay-submit lay-filter="earnings-search">查询</button>
-                    <button class="layui-btn layuiadmin-btn-earnings layui-btn-primary }" lay-submit lay-filter="earnings-clear-search">重置</button>
-                </div>
-            </div>
-
-        </div>
-
-        <div class="layui-card-body">
-            <table id="earnings-lists" lay-filter="earnings-lists"></table>
-        </div>
-    </div>
-</div>
-
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['table','laydate'], function(){
-        var $ = layui.$
-            ,form = layui.form
-            ,table = layui.table
-            ,laydate = layui.laydate;
-
-        var user_id = {$user_id | raw};
-
-        //日期时间范围
-        laydate.render({
-            elem: '#start_time'
-            , type: 'datetime'
-            ,theme: '#1E9FFF'
-        });
-
-        laydate.render({
-            elem: '#end_time'
-            , type: 'datetime'
-            ,theme: '#1E9FFF'
-        });
-
-        //监听搜索
-        form.on('submit(earnings-search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('earnings-lists', {
-                where: field,
-                page: {
-                    curr:1
-                }
-            });
-        });
-
-        //清空查询
-        form.on('submit(earnings-clear-search)', function(){
-            $('#start_time').val('');
-            $('#end_time').val('');
-            form.render('select');
-            //刷新列表
-            table.reload('earnings-lists', {
-                where: [],
-                page: {
-                    curr: 1
-                }
-            });
-        });
-
-
-        table.render({
-            id:'earnings-lists'
-            ,elem: '#earnings-lists'
-            ,url: '{:url("distribution.member/earningsDetail")}?id='+user_id
-            ,cols: [[
-                {field: 'sn',title: '记录编号'}
-                ,{field: 'order_sn', title: '来源订单'}
-                ,{field: 'money', title: '收入金额'}
-                ,{field: 'type', title: '收入类型'}
-                ,{field: 'create_time', title: '记录日期'}
-            ]]
-            ,page:true
-            ,text: {none: '暂无数据!'}
-            ,parseData: function(res){
-                return {
-                    "code":res.code,
-                    "msg":res.msg,
-                    "count": res.data.count,
-                    "data": res.data.lists,
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-        });
-
-    });
-
-</script>

+ 0 - 178
app/admin/view/distribution/member/fans.html

@@ -1,178 +0,0 @@
-{layout name="layout1" /}
-<style>
-    .layui-table-cell {
-        font-size:14px;
-        padding:0 5px;
-        height:auto;
-        overflow:visible;
-        text-overflow:inherit;
-        white-space:normal;
-        word-break: break-all;
-    }
-</style>
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-tab layui-tab-card" lay-filter="tab-all">
-
-            <ul class="layui-tab-title">
-                <li data-type='all' class="layui-this">全部</li>
-                <li data-type="first_leader">一级粉丝</li>
-                <li data-type="second_leader">二级粉丝</li>
-                <li data-type="third_leader">三级粉丝</li>
-            </ul>
-
-            <div class="layui-tab-item layui-show">
-                <div class="layui-card">
-                    <div class="layui-form layui-card-header layuiadmin-card-header-auto">
-                        <div class="layui-form-item">
-
-                            <div class="layui-row">
-                                <div class="layui-inline">
-                                    <label class="layui-form-label">会员信息:</label>
-                                    <div class="layui-input-block">
-                                        <select name="search_key">
-                                            <option value="sn">会员编号</option>
-                                            <option value="nickname">会员昵称</option>
-                                            <option value="mobile">手机号码</option>
-                                        </select>
-                                    </div>
-                                </div>
-
-                                <div class="layui-inline">
-                                    <input type="text" name="keyword" id="keyword" placeholder="请输入搜索内容" autocomplete="off" class="layui-input">
-                                </div>
-
-                                <div class="layui-inline">
-                                    <button class="layui-btn layuiadmin-btn-member {$view_theme_color}" lay-submit lay-filter="fans-search">
-                                        查询
-                                    </button>
-                                    <button class="layui-btn layuiadmin-btn-express layui-btn-primary " lay-submit
-                                            lay-filter="fans-clear-search">重置
-                                    </button>
-                                </div>
-
-                            </div>
-                        </div>
-                    </div>
-
-                    <div class="layui-card-body">
-                        <table id="fans-lists" lay-filter="fans-lists"></table>
-                        <script type="text/html" id="member-operation">
-                            <div style="text-align: left">
-                                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="info">分销资料</a>
-                                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="fans">推广会员</a>
-                                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="earnings_detail">收入明细</a><br/>
-                                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="update_leader" style="margin-top: 5px">修改上级</a>
-                                <a class="layui-btn layui-btn-normal layui-btn-sm" lay-event="freeze" style="margin-top: 5px">冻结资格</a>
-                            </div>
-                        </script>
-
-                        <!--会员信息-->
-                        <script type="text/html" id="user-info">
-                            <img src="{{d.avatar}}" style="height:80px;width: 80px" class="image-show">
-                            <div class="layui-input-inline"  style="text-align: left">
-                                <p>会员编号:{{d.sn}}</p>
-                                <p>会员昵称:{{d.nickname}}</p>
-                                <p>手机号码:{{d.mobile}}</p>
-                                <p>会员等级:</p>
-                                <p>性别:{{d.sex}}</p>
-                                <p>注册时间:{{d.create_time}}</p>
-                            </div>
-                        </script>
-
-                        <!--会员信息-->
-                        <script type="text/html" id="leader-info">
-                            {{#  if(d.leader.length == 0){ }}
-                            <p>无</p>
-
-                            {{#  } else { }}
-                            <div class="layui-input-inline" >
-                                <p>会员编号:{{d.leader.sn}}</p>
-                                <p>会员昵称:{{d.leader.nickname}}</p>
-                                <p>手机号码:{{d.leader.mobile}}</p>
-                                <p>会员等级: {{d.leader.level}}</p>
-                            </div>
-                            {{#  } }}
-                        </script>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use([ 'table', 'laydate'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , table = layui.table
-            , element = layui.element
-            , laydate = layui.laydate;
-
-        var user_id = {$user_id | raw};
-        //图片放大
-        $(document).on('click', '.image-show', function () {
-            var src = $(this).attr('src');
-            like.showImg(src,600);
-        });
-
-        //监听搜索
-        form.on('submit(fans-search)', function (data) {
-            var field = data.field;
-            //执行重载
-            table.reload('fans-lists', {
-                where: field
-            });
-        });
-        //清空查询
-        form.on('submit(fans-clear-search)', function () {
-            $('#keyword').val('');
-            form.render('select');
-            //刷新列表
-            table.reload('fans-lists', {
-                where: []
-            });
-        });
-
-        //获取列表
-        getList('all');
-        //切换列表
-        element.on('tab(tab-all)', function (data) {
-            $('#keyword').val('');
-            form.render('select');
-            var type = $(this).attr('data-type');
-            getList(type);
-        });
-
-        function getList(type) {
-            table.render({
-                elem: '#fans-lists'
-                , url: '{:url("distribution.member/fans")}?id=' + user_id + '&type=' +  type
-                , cols: [[
-                    {type: 'numbers', title: '序号', align: 'center'}
-                    , {field: 'user', title: '会员信息', templet: '#user-info', width: 350, align: 'center'}
-                    , {field: 'leader', title: '上级推荐人',  width: 260, align: 'center', templet:'#leader-info'}
-                    , {field: 'fans', title: '推广会员数',  align: 'center'}
-                    , {field: 'distribution_num', title: '分销订单数',  align: 'center'}
-                    , {field: 'distribution_amount', title: '分销订单金额',  align: 'center'}
-                    , {field: 'distribution_money', title: '分销佣金', align: 'center'}
-                ]]
-                , page: true
-                , text: {none: '暂无数据!'}
-                , parseData: function (res) {
-                    return {
-                        "code": res.code,
-                        "msg": res.msg,
-                        "count": res.data.count,
-                        "data": res.data.lists,
-                    };
-                },
-                response: {
-                    statusCode: 1
-                }
-            });
-        }
-    });
-</script>

+ 0 - 460
app/admin/view/distribution/member/index.html

@@ -1,460 +0,0 @@
-{layout name="layout1" /}
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*分销会员列表,可查看分销员佣金详情,直推会员,分销订单,以及修改分销会员上级;</p>
-                        <p>*分销佣金需要订单完成并且超出售后期限后系统自动结算。</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="layui-tab layui-tab-card" lay-filter="tab-all">
-            <ul class="layui-tab-title">
-<!--                <li data-type='member' class="layui-this">分销会员列表</li>-->
-<!--                <li data-type='audit'>申请分销会员列表</li>-->
-            </ul>
-            <div class="layui-tab-content">
-                <!--分销会员列表-->
-                <div class="layui-tab-item layui-show ">
-                    {include file="/distribution/member/member_lists"/}
-                </div>
-
-                <!--待审核分销会员列表-->
-                <div class="layui-tab-item">
-                    {include file="/distribution/member/audit_lists"/}
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).use(['element','table', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , table = layui.table
-            , element = layui.element;
-
-        //图片放大
-        $(document).on('click', '.image-show', function () {
-            var src = $(this).attr('src');
-            like.showImg(src,600);
-        });
-
-
-        getLists('member');
-
-        //切换列表
-        element.on('tab(tab-all)', function (data) {
-            form.render('select');
-            var type = $(this).attr('data-type');
-            getLists(type);
-        });
-
-
-        function getLists(type) {
-            // 会员列表
-            if (type == 'member') {
-                table.render({
-                    elem: '#member-lists'
-                    , url: '{:url("distribution.member/index")}?type=member'
-                    , cols: [[
-                        {field: 'id', title: 'ID', align: 'center'}
-                        , {field: 'user', title: '会员信息', templet: '#user-info', width: 350}
-                        , {field: 'distribution_code', title: '邀请码', width: 100, align: 'center'}
-                        , {field: 'leader', title: '上级推荐人',  width: 280, align: 'center', templet:'#leader-info'}
-                        , {field: 'fans', title: '推广会员数', width: 110, align: 'center'}
-                        , {field: 'distribution_num', title: '分销订单数', width: 110, align: 'center'}
-                        , {field: 'distribution_amount', title: '分销订单金额', width: 130, align: 'center'}
-                        , {field: 'distribution_money', title: '分销佣金', width: 110, align: 'center'}
-                        , {fixed: 'right', title: '操作', width: 280, align: 'center', toolbar: '#member-operation'}
-                    ]]
-                    , page: true
-                    , text: {none: '暂无数据!'}
-                    , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                        return {
-                            "code": res.code,
-                            "msg": res.msg,
-                            "count": res.data.count, //解析数据长度
-                            "data": res.data.lists, //解析数据列表
-                        };
-                    },
-                    response: {
-                        statusCode: 1
-                    }
-                    ,done: function(res, curr, count){
-                        // 解决操作栏因为内容过多换行问题
-                        $(".layui-table-main tr").each(function (index, val) {
-                            $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                            $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                        });
-                    }
-                });
-            }
-
-            // 审核会员列表
-            if (type == 'audit') {
-                table.render({
-                    elem: '#audit-lists'
-                    , url: '{:url("distribution.member/index")}?type=audit'
-                    , cols: [[
-                        {type: 'numbers', title: '序号', align: 'center'}
-                        , {field: 'user', title: '会员信息', templet: '#user-info'}
-                        , {field: 'leader', title: '上级推荐人',  align: 'center', templet:'#leader-info'}
-                        , {field: 'reason', title: '申请原因',  align: 'center'}
-                        , {field: 'denial_reason', title: '拒绝原因',  align: 'center'}
-                        , {field: 'status_text', title: '状态', width: 110, align: 'center'}
-                        , {field: 'create_time', width: 180, title: '申请时间', align: 'center'}
-                        , {fixed: 'right', title: '操作', width: 200, align: 'center', toolbar: '#audit-operation'}
-                    ]]
-                    , page: true
-                    , text: {none: '暂无数据!'}
-                    , parseData: function (res) { //将原始数据解析成 table 组件所规定的数据
-                        return {
-                            "code": res.code,
-                            "msg": res.msg,
-                            "count": res.data.count, //解析数据长度
-                            "data": res.data.lists, //解析数据列表
-                        };
-                    },
-                    response: {
-                        statusCode: 1
-                    }
-                    ,done: function(res, curr, count){
-                        // 解决操作栏因为内容过多换行问题
-                        $(".layui-table-main tr").each(function (index, val) {
-                            $($(".layui-table-fixed-l .layui-table-body tbody tr")[index]).height($(val).height());
-                            $($(".layui-table-fixed-r .layui-table-body tbody tr")[index]).height($(val).height());
-                        });
-                    }
-                });
-            }
-        }
-
-
-        //==============================================会员列表start===============================================
-        var active = {
-            add: function(){
-                var index = layer.open({
-                    type: 2
-                    ,title: '添加分销会员'
-                    ,content: '{:url("distribution.member/addMember")}'
-                    ,area: ['500px', '400px']
-                    ,btn: ['保存', '取消']
-                    ,maxmin: true
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submitID = 'addSubmit'
-                            ,submit = layero.find('iframe').contents().find('#'+ submitID);
-                        //监听提交
-                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
-                            var field = data.field;
-                            like.ajax({
-                                url:'{:url("distribution.member/addMember")}',
-                                data:field,
-                                type:"post",
-                                success:function(res) {
-                                    if(res.code === 1) {
-                                        layui.layer.msg(res.msg, {offset:'15px',icon:1,time:1000});
-                                        layer.close(index);
-                                        table.reload('member-lists', {
-                                            where: []
-                                        });
-                                    }
-                                }
-                            });
-                        });
-
-                        submit.trigger('click');
-                    }
-                    ,cancel: function(index, layero){
-                        var window_index = index;
-                        layer.confirm('尚未保存,确定关闭吗?', {
-                            time: 0, //不自动关闭
-                            btn: ['确定', '取消'],
-                            yes: function(index){
-                                layer.close(index);
-                                layer.close(window_index);
-                            }
-                        });
-                        return false;
-                    }
-                });
-            },
-        };
-        $('.layui-btn.layuiadmin-btn').on('click', function(){
-            var type = $(this).data('type');
-            active[type] ? active[type].call(this) : '';
-        });
-
-
-        form.on('submit(member-search)', function (data) {
-            var field = data.field;
-            //执行重载
-            table.reload('member-lists', {
-                where: field,
-                page: {
-                    curr: 1
-                }
-            });
-        });
-
-        //清空查询
-        form.on('submit(member-clear-search)', function () {
-            $('#freeze_distribution').val('');
-            $('#member_keyword').val('');
-            form.render('select');
-            //刷新列表
-            table.reload('member-lists', {
-                where: [],
-                page: {
-                    curr: 1
-                }
-            });
-        });
-
-        table.on('tool(member-lists)', function (obj) {
-
-            var id = obj.data.id;
-            var nickname = obj.data.nickname;
-
-            if (obj.event === 'freeze' || obj.event === 'unfreeze') {
-
-                var type = 'freeze';
-                var confirm_text = '确定冻结分销会员:';
-                if (obj.event === 'unfreeze'){
-                    type = 'unfreeze';
-                    confirm_text = '确定解冻分销会员:';
-                }
-
-                layer.confirm(confirm_text + '<span style="color: red">'+nickname+'</span>', function (index) {
-                    like.ajax({
-                        url: '{:url("distribution.member/freeze")}',
-                        data: {'id':id, 'type': type},
-                        type: "post",
-                        success: function (res) {
-                            if (res.code == 1) {
-                                layui.layer.msg(res.msg, {
-                                    offset: '15px'
-                                    , icon: 1
-                                    , time: 1000
-                                });
-                                table.reload('member-lists');
-                                layer.close(index);
-                            }
-                        }
-                    });
-                    layer.close(index);
-                });
-            }
-
-            if(obj.event === 'del') { // 删除资格
-                layer.confirm('确定删除分销资格<span style="color: red">'+nickname+'</span>', function (index) {
-                    like.ajax({
-                        url: '{:url("distribution.member/del")}',
-                        data: {'id':id},
-                        type: "post",
-                        success: function (res) {
-                            if (res.code == 1) {
-                                layui.layer.msg(res.msg, {
-                                    offset: '15px'
-                                    , icon: 1
-                                    , time: 1000
-                                });
-                                table.reload('member-lists');
-                                layer.close(index);
-                            }
-                        }
-                    });
-                    layer.close(index);
-                });
-            }
-
-            // 会员分销资料(分销资料)
-            if (obj.event === 'info') {
-                layer.open({
-                    type: 2
-                    ,title: '分销资料'
-                    ,content: '{:url("distribution.member/info")}?id='+id
-                    ,area: ['90%', '90%']
-                    ,btn:['返回']
-                })
-            }
-
-            //推广会员
-            if (obj.event === 'fans') {
-                layer.open({
-                    type: 2
-                    ,title: '推广会员'
-                    ,content: '{:url("distribution.member/fans")}?id='+id
-                    ,area: ['90%', '90%']
-                    ,btn:['返回']
-                })
-            }
-
-            //收入明细
-            if (obj.event === 'earnings_detail') {
-                layer.open({
-                    type: 2
-                    ,title: '收入明细'
-                    ,content: '{:url("distribution.member/earningsDetail")}?id='+id
-                    ,area: ['90%', '90%']
-                    ,btn:['返回']
-                })
-            }
-
-            //修改上级
-            if (obj.event === 'update_leader') {
-                layer.open({
-                    type: 2
-                    ,title: '修改上级'
-                    ,content: '{:url("distribution.member/updateLeader")}?id='+id
-                    ,area: ['60%', '60%']
-                    ,btn:['确认', '返回']
-                    ,yes: function(index, layero){
-                        var iframeWindow = window['layui-layer-iframe'+ index]
-                            ,submitID = 'update-leader-submit'
-                            ,submit = layero.find('iframe').contents().find('#'+ submitID);
-
-                        //监听提交
-                        iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
-                            var field = data.field;
-                            like.ajax({
-                                url:'{:url("distribution.member/updateLeader")}',
-                                data:field,
-                                type:"post",
-                                success:function(res)
-                                {
-                                    if(res.code == 1)
-                                    {
-                                        layui.layer.msg(res.msg, {
-                                            offset: '15px'
-                                            , icon: 1
-                                            , time: 1000
-                                        });
-                                        table.reload('member-lists');
-                                        layer.close(index);
-                                    }
-                                }
-                            });
-                        });
-                        submit.trigger('click');
-                    }
-                })
-            }
-
-        });
-
-        //==============================================会员列表end===============================================
-
-
-        //==============================================会员审核列表start==========================================
-
-        form.on('submit(audit-clear-search)', function () {
-            $('#audit_keyword').val('');
-            $('#audit_status').val('');
-            form.render('select');
-            //刷新列表
-            table.reload('audit-lists', {
-                where: [],
-                page: {
-                    curr: 1
-                }
-            });
-        });
-
-
-        form.on('submit(audit-search)', function (data) {
-            var field = data.field;
-            //执行重载
-            table.reload('audit-lists', {
-                where: field,
-                page: {
-                    curr: 1
-                }
-            });
-        });
-
-        //会员审核操作
-        table.on('tool(audit-lists)', function (obj) {
-
-            var id = obj.data.id;
-            var nickname = obj.data.nickname;
-
-            var confirm_text = '';
-            var data= {};
-
-            if (obj.event === 'pass') {
-                confirm_text = '确定审核通过分销申请:'+ nickname;
-                data = {'id': id, 'type': 'pass'};
-                auditAjax(confirm_text, data);
-            }
-
-            if (obj.event === 'refuse') {
-                layer.prompt({
-                    formType: 2,
-                    value: '',
-                    title: '请输入拒绝原因',
-                    area: ['400px', '120px'] //自定义文本域宽高
-                }, function(value, index, elem){
-                    confirm_text = '确定审核拒绝分销申请:'+ nickname;
-                    data = {'id': id, 'type': 'refuse', 'denial_reason': value};
-                    like.ajax({
-                        url: '{:url("distribution.member/audit")}',
-                        data: data,
-                        type: "post",
-                        success: function (res) {
-                            if (res.code == 1) {
-                                layui.layer.msg(res.msg, {
-                                    offset: '15px'
-                                    , icon: 1
-                                    , time: 1000
-                                });
-                                table.reload('audit-lists');
-                                layer.close(index);
-                            }
-                        }
-                    });
-                    layer.close(index);
-                });
-            }
-        });
-
-        //审核操作
-        function auditAjax(confirm_text, data) {
-            layer.confirm(confirm_text, function (index) {
-                like.ajax({
-                    url: '{:url("distribution.member/audit")}',
-                    data: data,
-                    type: "post",
-                    success: function (res) {
-                        if (res.code == 1) {
-                            layui.layer.msg(res.msg, {
-                                offset: '15px'
-                                , icon: 1
-                                , time: 1000
-                            });
-                            table.reload('audit-lists');
-                            layer.close(index);
-                        }
-                    }
-                });
-                layer.close(index);
-            });
-        }
-
-        //==============================================会员审核列表end===========================================
-
-    });
-
-
-</script>

+ 0 - 75
app/admin/view/distribution/member/info.html

@@ -1,75 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .div-flex {
-        display: flex;
-        align-items: center;
-        justify-content: left;
-    }
-    .width-160 {
-        width: 200px;
-    }
-    .layui-table th {
-        text-align: center;
-    }
-    .layui-form-label {
-        width: 120px;
-    }
-</style>
-
-<div class="layui-card-body" >
-    <!--基本信息-->
-    <div class="layui-form" lay-filter="layuiadmin-form-member" id="layuiadmin-form-member" >
-        <div class="layui-form-item">
-            <fieldset class="layui-elem-field layui-field-title">
-                <legend>基本信息</legend>
-            </fieldset>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">会员编号:</label>
-            <div class="width-160">{$detail.user_sn}</div>
-            <label class="layui-form-label ">会员昵称:</label>
-            <div class="width-160">{$detail.nickname}</div>
-            <label class="layui-form-label ">手机号码:</label>
-            <div class="width-160">{$detail.mobile}</div>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">分销员:</label>
-            <div class="width-160">{$detail.distribution_text}</div>
-            <label class="layui-form-label ">邀请码:</label>
-            <div class="width-160">{$detail.distribution_code}</div>
-            <label class="layui-form-label ">上级推荐人编号:</label>
-            <div class="width-160">{$detail.first_leader_sn}</div>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">直推会员数:</label>
-            <div class="width-160">{$detail.first_fans}</div>
-        </div>
-
-        <!--分销信息-->
-        <div class="layui-form-item">
-            <fieldset class="layui-elem-field layui-field-title">
-                <legend>分销信息</legend>
-            </fieldset>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">分销订单数:</label>
-            <div class="width-160">{$detail.distribution_num}</div>
-            <label class="layui-form-label ">分销订单金额:</label>
-            <div class="width-160">{$detail.distribution_amount}</div>
-            <label class="layui-form-label ">分销佣金:</label>
-            <div class="width-160">{$detail.distribution_money}</div>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">可提现佣金:</label>
-            <div class="width-160">{$detail.earnings}</div>
-            <label class="layui-form-label ">已提现佣金:</label>
-            <div class="width-160">{$detail.have_withdraw}</div>
-        </div>
-
-    </div>
-</div>

+ 0 - 93
app/admin/view/distribution/member/member_lists.html

@@ -1,93 +0,0 @@
-<style>
-    .operation-btn{
-        margin: 5px;
-    }
-</style>
-<div class="layui-fluid">
-    <div class="layui-form">
-        <div class="layui-form-item">
-            <div class="layui-inline">
-                <label class="layui-form-label">会员信息:</label>
-                <div class="layui-input-block">
-                    <select name="search_key">
-                        <option value="sn">会员编号</option>
-                        <option value="nickname">会员昵称</option>
-                        <option value="mobile">手机号码</option>
-                    </select>
-                </div>
-            </div>
-            <div class="layui-inline">
-                <input type="text" name="keyword" id="member_keyword" placeholder="请输入搜索内容" autocomplete="off" class="layui-input">
-            </div>
-
-            <div class="layui-inline">
-                <label class="layui-form-label">分销状态:</label>
-                <div class="layui-input-block">
-                    <select name="freeze_distribution" id="freeze_distribution">
-                        <option value="">全部</option>
-                        <option value="0">未冻结</option>
-                        <option value="1">已冻结</option>
-                    </select>
-                </div>
-            </div>
-
-            <div class="layui-inline">
-                <button class="layui-btn layui-btn-sm layuiadmin-btn-member {$view_theme_color}" lay-submit lay-filter="member-search">
-                    查询
-                </button>
-                <button class="layui-btn layui-btn-sm layuiadmin-btn-express layui-btn-primary " lay-submit
-                        lay-filter="member-clear-search">重置
-                </button>
-            </div>
-        </div>
-    </div>
-
-    <div style="margin: 10px 0" class="add">
-        <button class="layui-btn layui-btn-sm layuiadmin-btn {$view_theme_color}" data-type="add">添加分销会员</button>
-    </div>
-    <table id="member-lists" lay-filter="member-lists"></table>
-
-    <script type="text/html" id="member-operation">
-        <div style="text-align: left">
-            <a class="layui-btn layui-btn-primary layui-btn-sm operation-btn" lay-event="info">分销资料</a>
-            <a class="layui-btn layui-btn-primary layui-btn-sm operation-btn" lay-event="fans">推广会员</a>
-            <a class="layui-btn layui-btn-primary layui-btn-sm operation-btn" lay-event="earnings_detail">收入明细</a><br/>
-            <a class="layui-btn layui-btn-normal layui-btn-sm operation-btn" lay-event="update_leader" >修改上级</a>
-            {{#  if(d.freeze_distribution == 0){ }}
-            <a class="layui-btn layui-btn-danger layui-btn-sm operation-btn" lay-event="freeze" >冻结资格</a>
-            {{#  } else { }}
-            <a class="layui-btn layui-btn-danger layui-btn-sm operation-btn" lay-event="unfreeze" >解冻资格</a>
-            {{#  } }}
-            <a class="layui-btn layui-btn-danger layui-btn-sm operation-btn" lay-event="del" >删除资格</a>
-        </div>
-    </script>
-
-    <!--会员信息-->
-    <script type="text/html" id="user-info">
-        <img src="{{d.avatar}}" style="height:80px;width: 80px" class="image-show">
-        <div class="layui-input-inline"  style="text-align: left">
-            <p>会员编号:{{d.sn}}</p>
-            <p>会员昵称:{{d.nickname}}</p>
-            <p>手机号码:{{d.mobile}}</p>
-            <p>会员等级:{{d.level}}</p>
-            <!--            <p>性别:{{d.sex}}</p>-->
-            <!--            <p>注册时间:{{d.create_time}}</p>-->
-        </div>
-    </script>
-
-    <!--会员信息-->
-    <script type="text/html" id="leader-info">
-        {{#  if(d.leader.length == 0){ }}
-        <p>无</p>
-
-        {{#  } else { }}
-        <div class="layui-input-inline" >
-            <p>会员编号:{{d.leader.sn}}</p>
-            <p>会员昵称:{{d.leader.nickname}}</p>
-            <p>手机号码:{{d.leader.mobile}}</p>
-            <p>会员等级: {{d.leader.level}}</p>
-        </div>
-        {{#  } }}
-    </script>
-
-</div>

+ 0 - 57
app/admin/view/distribution/member/update_leader.html

@@ -1,57 +0,0 @@
-{layout name="layout2" /}
-<style>
-    .div-flex {
-        display: flex;
-        align-items: center;
-        justify-content: left;
-    }
-    .layui-form-label {
-        width: 120px;
-    }
-    .width-160 {
-        width: 200px;
-    }
-</style>
-
-<div class="layui-card-body" >
-    <!--基本信息-->
-    <div class="layui-form" lay-filter="layuiadmin-form-update-leader" id="layuiadmin-form-update-leader" >
-        <input type="hidden" name="user_id" value="{$user_id}">
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">当前上级:</label>
-            <div class="width-160">{$first_leader}</div>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">调整方式:</label>
-            <div>
-                <select name="change_type" lay-verify="required">
-                    <option value="clear">清空上级</option>
-                    <option value="appoint">指定上级推荐人</option>
-                </select>
-            </div>
-        </div>
-
-        <div class="layui-form-item div-flex">
-            <label class="layui-form-label ">上级推荐人编号:</label>
-            <div>
-                <input type="text" name="referrer_sn" autocomplete="off" class="layui-input">
-            </div>
-        </div>
-
-        <div class="layui-form-item layui-hide">
-            <input type="button" lay-submit lay-filter="update-leader-submit" id="update-leader-submit" value="确认">
-        </div>
-    </div>
-</div>
-
-<script type="text/javascript">
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['element', 'jquery', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form;
-    });
-</script>

+ 0 - 216
app/admin/view/distribution/record/lists.html

@@ -1,216 +0,0 @@
-{layout name="layout1" /}
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*佣金记录用于查看每笔订单的分销佣金明细;</p>
-                        <p>*佣金状态分为:待结算,已返佣,已失效。订单结算后才会进行返佣,结算前如果有售后退款,则佣金会失效;</p>
-                    </div>
-                </div>
-            </div>
-        </div>
-        <div class="layui-form">
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <label class="layui-form-label">搜索类型:</label>
-                    <div class="layui-input-inline" style="width: 200px;">
-                        <select name="keyword_type" id="keyword_type">
-                            <option value="order_sn">订单编号</option>
-                            <option value="user_nickname">会员昵称</option>
-                            <option value="user_sn">会员编号</option>
-                            <option value="user_mobile">会员手机号码</option>
-                        </select>
-                    </div>
-                    <div class="layui-input-inline" style="width: 200px;">
-                        <input type="text" id="keyword" name="keyword" placeholder="请填入搜索内容" autocomplete="off" class="layui-input">
-                    </div>
-                    <label class="layui-form-label">佣金状态:</label>
-                    <div class="layui-input-inline" style="width: 200px;">
-                        <select name="status" id="status">
-                            <option value="">全部</option>
-                            <option value="1">待返佣</option>
-                            <option value="2">已结算</option>
-                            <option value="3">已失效</option>
-                        </select>
-                    </div>
-                </div>
-            </div>
-            <div class="layui-form-item">
-                <div class="layui-inline">
-                    <label class="layui-form-label">记录时间:</label>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input time" id="start_time" name="start_time"  autocomplete="off">
-                    </div>
-                    <div class="layui-input-inline" style="margin-right: 5px;width: 10px;">
-                        <label class="layui-form-mid">-</label>
-                    </div>
-                    <div class="layui-input-inline">
-                        <input type="text" class="layui-input time" id="end_time" name="end_time"  autocomplete="off">
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <div class="layui-btn-group">
-                        <button type="button" id="today" day="1" class="layui-btn layui-btn-sm layui-btn-primary day">今天</button>
-                        <button type="button"  day="-1" class="layui-btn layui-btn-sm layui-btn-primary day">昨天</button>
-                        <button type="button"  day="7" class="layui-btn layui-btn-sm layui-btn-primary day">近7天</button>
-                        <button type="button"  day="30" class="layui-btn layui-btn-sm layui-btn-primary day">近30天</button>
-                    </div>
-                </div>
-                <div class="layui-inline">
-                    <button class="layui-btn layui-btn-sm layuiadmin-btn-account {$view_theme_color}" lay-submit lay-filter="search">查询</button>
-                    <button class="layui-btn layui-btn-sm layuiadmin-btn-account layui-btn-primary }" lay-submit lay-filter="clear-search">重置</button>
-                </div>
-            </div>
-
-        </div>
-
-        <div class="layui-card-body">
-            <table id="account-lists" lay-filter="account-lists"></table>
-        </div>
-    </div>
-</div>
-<script type="text/html" id="money-info">
- ¥ {{d.money}}
-</script>
-<style>
-    .layui-table-cell {
-        height: auto;
-    }
-</style>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/' //静态资源所在路径
-    }).use(['table','laydate'], function(){
-        var $ = layui.$
-            ,form = layui.form
-            ,table = layui.table
-            ,laydate = layui.laydate;
-
-        //日期时间范围
-        laydate.render({
-            elem: '#start_time'
-            , type: 'datetime'
-            ,theme: '#1E9FFF'
-        });
-
-        laydate.render({
-            elem: '#end_time'
-            , type: 'datetime'
-            ,theme: '#1E9FFF'
-        });
-
-        //监听搜索
-        form.on('submit(search)', function(data){
-            var field = data.field;
-            //执行重载
-            table.reload('account-lists', {
-                where: field,
-                page: {
-                    curr: 1 //重新从第 1 页开始
-                }
-            });
-        });
-
-        //重置
-        form.on('submit(clear-search)', function(){
-            $('.day').removeClass('layui-btn-normal');
-            $('.day').removeClass('layui-btn-primary');
-            $('.day').addClass('layui-btn-primary');
-            $('#keyword').val('');
-            $('#keyword_type').val('sn');
-            $('#order_source').val(0);
-            $('#start_time').val('');
-            $('#end_time').val('');
-            form.render('select');
-            //刷新列表
-            table.reload('account-lists', {
-                where: [],
-                page: {
-                    curr: 1 //重新从第 1 页开始
-                }
-            });
-        });
-    });
-
-    layui.define(['table', 'form'], function(exports){
-        var $ = layui.$
-            ,table = layui.table
-            ,form = layui.form;
-
-        table.render({
-            id:'account-lists'
-            ,elem: '#account-lists'
-            ,url: '{:url("distribution.record/lists")}'
-            ,cols: [[
-                {field: 'user_nickname',title: '会员昵称'}
-                ,{field: 'user_sn', title: '会员编号'}
-                ,{field: 'user_mobile', title: '手机号码'}
-                ,{field: 'order_sn', title: '订单编号'}
-                ,{field: 'total_pay_price', title: '订单金额 '}
-                ,{title: '分销佣金', templet:'#money-info'}
-                ,{field: 'status_desc', title: '佣金状态'}
-                ,{field: 'distribution_create_time', title: '记录时间'}
-
-            ]]
-            ,page:true
-            ,text: {none: '暂无数据!'}
-            ,parseData: function(res){ //将原始数据解析成 table 组件所规定的数据
-                return {
-                    "code":res.code,
-                    "msg":res.msg,
-                    "count": res.data.count, //解析数据长度
-                    "data": res.data.lists, //解析数据列表
-                };
-            },
-            response: {
-                statusCode: 1
-            }
-            , done: function fix() {
-                $(".layui-table-main tr").each(function (index, val) {
-                    $(".layui-table-fixed").each(function () {
-                        $($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
-                    });
-                });
-                $(".layui-table-header tr").each(function (index, val) {
-                    $(".layui-table-fixed").each(function () {
-                        $($(this).find(".layui-table-header thead tr")[index]).height($(val).height());
-                    });
-                });
-                window.onresize = function () {
-                    fix()
-                }
-            }
-        });
-
-        $('.day').click(function(){
-            $('.day').removeClass('layui-btn-normal');
-            $('.day').removeClass('layui-btn-primary');
-            $('.day').addClass('layui-btn-primary');
-            $(this).removeClass('layui-btn-primary');
-            $(this).addClass('layui-btn-normal');
-            var day = $(this).attr('day');
-            switch (day) {
-                case '-1':
-                    $('#start_time').val('{$time.yesterday[0]}');
-                    $('#end_time').val('{$time.yesterday[1]}');
-                    break;
-                case '1':
-                    $('#start_time').val('{$time.today[0]}');
-                    $('#end_time').val('{$time.today[1]}');
-                    break;
-                case '7':
-                    $('#start_time').val('{$time.days_ago7[0]}');
-                    $('#end_time').val('{$time.days_ago7[1]}');
-                    break;
-                case '30':
-                    $('#start_time').val('{$time.days_ago30[0]}');
-                    $('#end_time').val('{$time.days_ago30[1]}');
-                    break;
-            }
-        });
-    });
-</script>

+ 0 - 115
app/admin/view/distribution/setting/setting.html

@@ -1,115 +0,0 @@
-{layout name="layout1" /}
-<div class="layui-fluid">
-    <div class="layui-card">
-        <div class="layui-card-body">
-            <div class="layui-collapse like-layui-collapse" lay-accordion="" style="border:1px dashed #c4c4c4">
-                <div class="layui-colla-item">
-                    <h2 class="layui-colla-title like-layui-colla-title" style="background-color: #fff">操作提示</h2>
-                    <div class="layui-colla-content layui-show">
-                        <p>*分销推广相关的设置</p>
-                        <p>*分销会员开通方式:申请分销是指,成为分销员需要申请并审核通过;全员分销是指,会员注册账号即成为分销会员;</p>
-                    </div>
-                </div>
-            </div>
-            <!-- 分销设置 -->
-            <div class="layui-form" lay-filter="" style="margin-top:30px;">
-                <div class="layui-form-item">
-                    <label class="layui-form-label" style="white-space: nowrap;width:120px ">自定义分销海报:</label>
-                    <div class="layui-input-block">
-                        <div class="like-upload-image">
-                            {if $config.image}
-                            <div class="upload-image-div">
-                                <img src="{$config.image}" alt="img">
-                                <input type="hidden" name="image" value="{$config.image}">
-                                <div class="del-upload-btn">x</div>
-                            </div>
-                            <div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="image"> + 添加图片</a></div>
-                            {else}
-                            <div class="upload-image-elem"><a class="add-upload-image" id="image"> + 添加图片</a></div>
-                            {/if}
-                        </div>
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <label class="layui-form-label" style="white-space: nowrap;width:120px "></label>
-                    <div class="layui-input-block layui-word-aux">
-                        自定义分销推广海报图片,建议尺寸:800*800像素
-                    </div>
-                </div>
-                <div class="layui-form-item ">
-                    <label class="layui-form-label" style="white-space: nowrap;width:120px ">分销会员开通方式:</label>
-                    <div class="layui-input-block">
-                        <input type="radio" name="member_apply" value="1" title="申请分销" {if
-                               condition="$config.member_apply eq 1" }checked{/if}>
-                        <input type="radio" name="member_apply" value="2" title="全员分销" {if
-                               condition="$config.member_apply eq 2" }checked{/if}>
-                    </div>
-                    <div class="layui-form-mid layui-word-aux" style="white-space: nowrap">
-                        不同的分销方式,会员获得分销资格的途径不同
-                    </div>
-                </div>
-                <div class="layui-form-item ">
-                    <label class="layui-form-label" style="white-space: nowrap;width:120px; ">分销功能:</label>
-                    <div class="layui-input-inline">
-                        <input type="radio" name="is_open" value="1" title="开启" {if
-                               condition="$config.is_open eq 1" }checked{/if}>
-                        <input type="radio" name="is_open" value="0" title="关闭" {if
-                               condition="$config.is_open eq 0" }checked{/if}>
-                        <div class=" layui-form-mid layui-word-aux" style="white-space: nowrap">
-                            开启或关闭分销功能,关闭后不发放分销佣金,隐藏分销相关功能及界面。
-                        </div>
-                    </div>
-                </div>
-                <div class="layui-form-item">
-                    <div class="layui-input-block">
-                        <button class="layui-btn layui-btn-sm {$view_theme_color}" lay-submit
-                                lay-filter="confirm">确认
-                        </button>
-                    </div>
-                </div>
-            </div>
-        </div>
-    </div>
-</div>
-
-
-<script>
-
-    layui.config({
-        version: "{$front_version}",
-        base: '/static/lib/'
-    }).use(['element', 'form'], function () {
-        var $ = layui.$
-            , form = layui.form
-            , element = layui.element;
-
-        // 图片上传
-        like.delUpload();
-        // 自定义分销海报
-        $(document).on("click", "#image", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "image",
-                that: $(this)
-            });
-        })
-
-        form.on('submit(confirm)', function (data) {
-            like.ajax({
-                url: '{:url("distribution.setting/setting")}'
-                , data: data.field
-                , type: 'post'
-                , success: function (res) {
-                    layer.msg(res.msg, {
-                        offset: '15px'
-                        , icon: 1
-                        , time: 1500
-                    }, function () {
-                        location.href = location.href;
-                    });
-                },
-            });
-        });
-
-    });
-</script>

+ 0 - 100
app/admin/view/express/add.html

@@ -1,100 +0,0 @@
-{layout name="layout2" /}
-<script src="__PUBLIC__/static/common/js/area.js"></script>
-<style>
-    .layui-form-label {
-        color: #6a6f6c;
-    }
-    html{
-        background-color: #ffffff;
-    }
-    .reqRed::before {
-        content: '*';
-        color: red;
-    }
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-unit" id="layuiadmin-form-unit" style="padding: 20px 30px 0 0;background-color: #ffffff">
-    <input type="hidden" value="0" name="id">
-    <div class="layui-form-item">
-        <label class="layui-form-label reqRed">快递公司:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="name" lay-verify="required" lay-vertype="tips" placeholder="请输入快递公司" autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item" style="margin-bottom: 0px">
-        <label class="layui-form-label reqRed">快递图标:</label>
-        <div class="layui-input-block" id="Couriericon">
-            <div class="like-upload-image">
-                <div class="upload-image-elem"><a class="add-upload-image" id="courier_icon"> + 添加图片</a></div>
-            </div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <span style="color: #a3a3a3;font-size: 9px">快递图标,建议宽高尺寸200px*200px。</span>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">公司网址:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="website"  lay-vertype="tips" placeholder="请输入公司网址" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" ></label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">快递编码:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="code"  lay-vertype="tips" placeholder="请输入快递编码" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" >快递公司拼音简称。</label>
-        </div>
-    </div>
-
-    <div class="layui-form-item">
-        <label class="layui-form-label" style="white-space: nowrap">快递100编码:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="code100"  lay-vertype="tips" placeholder="请输入快递100编码" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" style="white-space: nowrap" >快递公司在快递100平台的编码,方便快递查询跟踪。</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label" style="white-space: nowrap;left: 10px;">快递鸟编码:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="codebird"  lay-vertype="tips" placeholder="请输入快递鸟" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" style="white-space: nowrap" >快递公司在快递鸟平台的编码,方便快递查询跟踪。</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">排序:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="sort"  lay-vertype="tips" placeholder="请输入排序" autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="express-submit" id="express-submit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).extend({
-        likeedit: 'likeedit/likeedit'
-    }).use(['table', 'form', 'element', 'likeedit'], function() {
-        var form = layui.form
-            ,$ = layui.$
-            , element = layui.element
-            , likeedit = layui.likeedit;
-
-        // 监听图片删除
-        like.delUpload();
-        // 快递图标上传
-        $(document).on("click", "#courier_icon", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "poster",
-                that: $(this),
-                content: '{:url("file/lists")}?type=10'
-            });
-        })
-
-
-    })
-</script>

+ 0 - 142
app/admin/view/express/edit.html

@@ -1,142 +0,0 @@
-{layout name="layout2" /}
-<script src="__PUBLIC__/static/common/js/area.js"></script>
-<style>
-    .layui-form-label {
-        color: #6a6f6c;
-    }
-    .goods-li {
-        float: left;
-        opacity: 1;
-        position: relative;
-    }
-
-    .goods-img {
-        width: 80px;
-        height: 80px;
-        padding: 4px;
-    }
-    .goods-img-del-x {
-        position: absolute;
-        z-index: 100;
-        top: -4px;
-        right: -2px;
-        width: 20px;
-        height: 20px;
-        font-size: 16px;
-        line-height: 16px;
-        color: #fff;
-        text-align: center;
-        cursor: pointer;
-        background: hsla(0, 0%, 60%, .6);
-        border-radius: 10px;}
-    html{
-        background-color: #ffffff;
-    }
-</style>
-<div class="layui-form" lay-filter="layuiadmin-form-supplier" id="layuiadmin-form-supplier" style="padding: 20px 30px 0 0;background-color: #ffffff">
-    <input type="hidden" value="{$info.id}" name="id">
-    <div class="layui-form-item">
-        <label class="layui-form-label"><font color="red">*</font>快递公司:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="name" value="{$info.name}" lay-verify="required" lay-vertype="tips" placeholder="请输入快递公司" autocomplete="off" class="layui-input" >
-        </div>
-    </div>
-    <!--快递图标-->
-<!--    <div class="layui-form-item">-->
-<!--        <label class="layui-form-label"><font color="red">*</font>快递图标:</label>-->
-<!--        <div class="layui-inline">-->
-<!--            <div style="height:80px;line-height:80px">-->
-<!--                <input name="icon" type="hidden" value="{$info.icon}" >-->
-<!--                {if !empty($info.icon)}-->
-<!--                <div class="goods-img-add" style="display: none"></div>-->
-<!--                <div class="goods-li">-->
-<!--                    <img class="goods-img" src="{$info.abs_icon}">-->
-<!--                    <a class="goods-img-del-x" style="display: none">x</a>-->
-<!--                </div>-->
-<!--                {else}-->
-<!--                <div class="goods-img-add"></div>-->
-<!--                {/if}-->
-<!--            </div>-->
-<!--            <div class=" layui-form-mid layui-word-aux">快递图标,建议宽高尺寸200px*200px。</div>-->
-
-<!--        </div>-->
-<!--    </div>-->
-
-    <div class="layui-form-item" style="margin-bottom: 0px">
-        <label class="layui-form-label"><span class="form-label-asterisk">*</span>快递图标:</label>
-        <div class="layui-input-block" id="Couriericon">
-            <div class="upload-image-div">
-                <img src="{$info.abs_icon}" alt="img" />
-                <input type="hidden" name="poster" value="{$info.abs_icon}">
-                <div class="del-upload-btn">x</div>
-            </div>
-            <div class="upload-image-elem" style="display:none;"><a class="add-upload-image" id="courier_icon"> + 添加图片</a></div>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label"></label>
-        <span style="color: #a3a3a3;font-size: 9px">快递图标,建议宽高尺寸200px*200px。</span>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">公司网址:</label>
-        <div class="layui-input-inline" >
-            <input type="text" name="website" value="{$info.website}"  lay-vertype="tips" placeholder="请输入联系电话" autocomplete="off" class="layui-input" >
-            <label class=" layui-form-mid layui-word-aux" ></label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">快递编码:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="code" value="{$info.code}"   placeholder="请输入快递编码" lay-vertype="tips" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" >快递公司拼音简称。</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label" style="white-space: nowrap">快递100编码:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="code100" value="{$info.code100}"   placeholder="请输入快递100编码" lay-vertype="tips" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" style="white-space: nowrap" >快递公司在快递100平台的编码,方便快递查询跟踪。</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label" style="white-space: nowrap;left: 10px;">快递鸟编码:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="codebird" value="{$info.codebird}"   placeholder="请输入快递鸟编码" lay-vertype="tips" autocomplete="off" class="layui-input">
-            <label class=" layui-form-mid layui-word-aux" style="white-space: nowrap" >快递公司在快递鸟平台的编码,方便快递查询跟踪。</label>
-        </div>
-    </div>
-    <div class="layui-form-item">
-        <label class="layui-form-label">排序:</label>
-        <div class="layui-input-inline">
-            <input type="text" name="sort" value="{$info.sort}"   placeholder="请输入排序" lay-vertype="tips" autocomplete="off" class="layui-input">
-        </div>
-    </div>
-    <div class="layui-form-item layui-hide">
-        <input type="button" lay-submit lay-filter="express-submit-edit" id="express-submit-edit" value="确认">
-    </div>
-</div>
-<script>
-    layui.config({
-        version:"{$front_version}",
-        base: '/static/lib/'
-    }).extend({
-        likeedit: 'likeedit/likeedit'
-    }).use(['table', 'form', 'element', 'likeedit'], function() {
-        var form = layui.form
-            ,$ = layui.$
-            , element = layui.element
-            , likeedit = layui.likeedit;
-
-        like.delUpload();
-        // 快递图标上传
-        $(document).on("click", "#courier_icon", function () {
-            like.imageUpload({
-                limit: 1,
-                field: "poster",
-                that: $(this),
-                content: '{:url("file/lists")}?type=10'
-            });
-        })
-
-    })
-</script>

+ 0 - 184
app/common/logic/ExpressLogic.php

@@ -1,184 +0,0 @@
-<?php
-// +----------------------------------------------------------------------
-// | likeshop开源商城系统
-// +----------------------------------------------------------------------
-// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
-// | gitee下载:https://gitee.com/likeshop_gitee
-// | github下载:https://github.com/likeshop-github
-// | 访问官网:https://www.likeshop.cn
-// | 访问社区:https://home.likeshop.cn
-// | 访问手册:http://doc.likeshop.cn
-// | 微信公众号:likeshop技术社区
-// | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
-// |  likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
-// | 禁止对系统程序代码以任何目的,任何形式的再发布
-// | likeshop团队版权所有并拥有最终解释权
-// +----------------------------------------------------------------------
-// | author: likeshop.cn.team
-// +----------------------------------------------------------------------
-
-
-namespace app\common\logic;
-
-use app\common\server\ConfigServer;
-
-use app\common\server\UrlServer;
-use think\facade\Db;
-use think\Exception;
-
-class ExpressLogic
-{
-    /**
-     * 列表
-     * @param $get
-     * @return array
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     */
-    public static function lists($get)
-    {
-        $where = [];
-        $where[] = ['del', '=', '0'];
-
-        if (isset($get['express_name']) && $get['express_name'] != '') {
-            $where[] = ['name', 'like', '%' . trim($get['express_name']) . '%'];
-        }
-
-        $count = Db::name('express')
-            ->where($where)
-            ->count();
-
-        $lists = Db::name('express')
-            ->where($where)
-            ->page($get['page'], $get['limit'])
-            ->select()->toArray();
-
-        foreach ($lists as $key => &$item) {
-            $item['icon'] = UrlServer::getFileUrl($item['icon']);
-        }
-        return ['lists' => $lists, 'count' => $count];
-    }
-
-
-    /**
-     * 添加
-     * @param $post
-     * @return array|\PDOStatement|string|\think\Model|null
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     */
-    public static function addExpress($post)
-    {
-        $time = time();
-        $data = [
-            'name' => $post['name'],
-            'icon' => clearDomain($post['poster']),
-            'website' => $post['website'],
-            'code' => $post['code'],
-            'code100' => $post['code100'],
-            'codebird' => $post['codebird'],
-            'sort' => $post['sort'],
-            'create_time' => $time
-        ];
-        $result = Db::name('express')->insert($data);
-        return $result;
-    }
-
-    /**
-     * 获取信息
-     * @param $id
-     * @return array|\PDOStatement|string|\think\Model|null
-     * @throws \think\db\exception\DataNotFoundException
-     * @throws \think\db\exception\ModelNotFoundException
-     * @throws \think\exception\DbException
-     */
-    public static function info($id)
-    {
-        $detail = Db::name('express')->where(['id' => $id, 'del' => 0])->find();
-        $detail['abs_icon'] = UrlServer::getFileUrl($detail['icon']);
-        return $detail;
-    }
-
-
-    /**
-     * 编辑
-     * @param $post
-     * @return int|string
-     * @throws Exception
-     * @throws \think\exception\PDOException
-     */
-    public static function editExpress($post)
-    {
-        $data = [
-            'name' => $post['name'],
-            'icon' => UrlServer::setFileUrl($post['poster']),
-            'website' => $post['website'],
-            'code' => $post['code'],
-            'code100' => $post['code100'],
-            'codebird' => $post['codebird'],
-            'sort' => $post['sort'],
-            'update_time' => time()
-        ];
-        $result = Db::name('express')->where(['id' => $post['id']])->update($data);
-        return $result;
-    }
-
-
-    /**
-     * 删除
-     * @param $delData
-     * @return int|string
-     * @throws Exception
-     * @throws \think\exception\PDOException
-     */
-    public static function delExpress($delData)
-    {
-        $data = [
-            'del' => 1,
-            'update_time' => time(),
-        ];
-        return Db::name('express')->where(['del' => 0, 'id' => $delData])->update($data);
-    }
-
-
-
-
-    public static function getExpress()
-    {
-        $config = [
-            'way' => ConfigServer::get('express', 'way', 'kd100'),
-            'kd100_appkey' => ConfigServer::get('kd100', 'appkey', ''),
-            'kd100_customer' => ConfigServer::get('kd100', 'appsecret', ''),
-            'kdniao_appkey' => ConfigServer::get('kdniao', 'appkey', ''),
-            'kdniao_ebussinessid' => ConfigServer::get('kdniao', 'appsecret', ''),
-            'kdniao_type' => ConfigServer::get('kdniao', 'type', 'free'),
-        ];
-        return $config;
-    }
-
-    //快递100
-    public static function kd100(){
-        $config = [
-            'appkey' => ConfigServer::get('kd100', 'appkey', ''),
-            'appsecret' => ConfigServer::get('kd100', 'appsecret', ''),
-
-        ];
-        return $config;
-    }
-    //快递鸟
-    public static function kdniao(){
-        $res=[
-            'appkey2' => ConfigServer::get('kdniao', 'appkey', ''),
-            'appsecret2' => ConfigServer::get('kdniao', 'appsecret', ''),
-        ];
-        return $res;
-    }
-    //快递方式
-    public static function way(){
-        $way = ConfigServer::get('express', 'way', '');
-        return $way;
-    }
-
-}