zhs il y a 3 ans
Parent
commit
7bd9ca715d

+ 12 - 0
src/main/java/com/supplier/controller/IndexController.java

@@ -4,6 +4,7 @@ import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
 
 /**
  * 页面
@@ -163,4 +164,15 @@ public class IndexController {
     public String personnel(Model model){
         return "permissions/index";
     }
+
+    /**
+     * 权限树
+     * @param model
+     * @return
+     */
+    @RequestMapping("/modify")
+    public String modify(Model model,String id){
+        model.addAttribute("id", id);
+        return "permissions/modify";
+    }
 }

+ 29 - 0
src/main/java/com/supplier/controller/PersonalController.java

@@ -188,4 +188,33 @@ public class PersonalController {
         supplier.setCode((String) ParsingToken.tokenParsing(request).get("code"));
         return personalServce.delChild(supplier);
     }
+
+    /**
+     * 权限赋予
+     * @param supplier 参数
+     * @return 返回结果
+     */
+    @PutMapping("editorModify")
+    public Map<String, Object> editorModify(Supplier supplier){
+        return personalServce.editorModify(supplier);
+    }
+
+    /**
+     * 指定code查询
+     * @param supplier 参数
+     * @return 返回结果
+     */
+    @GetMapping("getModify")
+    public Map<String, Object> getModify(Supplier supplier){
+        Map<String, Object> map = new HashMap<>();
+        try {
+            //获取token
+            map.put("msg", "200");
+            map.put("data", personalServce.getPresonalMessage(supplier.getCode()));
+        } catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+        }
+        return map;
+    }
 }

+ 2 - 0
src/main/java/com/supplier/mapper/PersonalMapper.java

@@ -52,4 +52,6 @@ public interface PersonalMapper {
     int checkCaptchaPhone(Supplier supplier);
 
     void addOfferNumChild(@Param("offerNum") String offerNum, @Param("code") String code);
+
+    void editorModify(Supplier supplier);
 }

+ 2 - 0
src/main/java/com/supplier/service/PersonalServce.java

@@ -36,4 +36,6 @@ public interface PersonalServce {
     Map<String, Object> editorEmployees(Supplier supplier);
 
     Map<String, Object> delChild(Supplier supplier);
+
+    Map<String, Object> editorModify(Supplier supplier);
 }

+ 15 - 0
src/main/java/com/supplier/service/impl/PersonalServiceImpl.java

@@ -113,6 +113,7 @@ public class PersonalServiceImpl implements PersonalServce {
             personalMapper.addBuyOfferNum(buyOfferNum); //购买次数记录
             personalMapper.minusBalanceOf(offerVal.toString(), codeMaster);//修改金额
             personalMapper.addOfferNum(offerNum, codeMaster);//增加次数
+            System.out.println(codeMaster);
             wxPayMapper.updateBalanceChild(Double.parseDouble("0"), codeMaster);//子账号同步金额
             personalMapper.addOfferNumChild("0", codeMaster);//子账号次数同步
             map.put("msg", "200");
@@ -243,6 +244,20 @@ public class PersonalServiceImpl implements PersonalServce {
         return map;
     }
 
+    @Override
+    public Map<String, Object> editorModify(Supplier supplier) {
+        Map<String, Object> map = new HashMap<>();
+        try{
+            personalMapper.editorModify(supplier);
+            map.put("msg", "200");
+        }catch (Exception e){
+            e.printStackTrace();
+            map.put("msg", "500");
+            map.put("errMsg", "服务器请求异常,请稍后再试");
+        }
+        return map;
+    }
+
     /**
      * 用户编号
      * @param id

+ 7 - 0
src/main/resources/config/mapping/PersonalMapper.xml

@@ -32,6 +32,9 @@
                 <if test="headpir != null and headpir != ''">
                     headpir = #{headpir},
                 </if>
+                <if test="permissionsType != null and permissionsType != ''">
+                    permissions_type = #{permissionsType},
+                </if>
             </trim>
         </set>
         where code = #{code}
@@ -243,4 +246,8 @@
     <select id="checkCaptchaPhone" resultType="int" parameterType="Supplier">
         select count(*) from sys_supplier where phone=#{phone} and captcha=#{captcha}
     </select>
+    <!-- 权限赋予 -->
+    <update id="editorModify" parameterType="Supplier">
+        update sys_supplier set permissions_type = #{permissionsType} where code = #{code}
+    </update>
 </mapper>

+ 1 - 1
src/main/resources/config/mapping/WxPayMapper.xml

@@ -204,7 +204,7 @@
             code = #{code}
     </update>
     <!-- 子账户余额同步 -->
-    <update id="updateBalanceChild" parameterType="double">
+    <update id="updateBalanceChild">
         UPDATE sys_supplier
         SET balance_of = (SELECT balance_of FROM sys_supplier WHERE code = #{code})
         WHERE

+ 10 - 3
src/main/resources/static/js/permissions/function.js

@@ -15,13 +15,13 @@ function load(page, limit, phone){
             if(data.msg == "200"){
                 $(".content_div div").remove();
                 $.each(data.data, (index, item) => {
-                    $(".content_div").append("<div id="+ item.id +" class=\"content_column\">\n" +
+                    $(".content_div").append("<div id="+ item.code +" class=\"content_column\">\n" +
                         "<div class=\"content_div_input\">\n" +
                         "<div class=\"head_name\" style=\"width: 5%;\">"+ (index + 1) +"</div>\n" +
                         "<div class=\"head_name\" style=\"width: 37.5%;\">"+ item.name +"</div>\n" +
                         "<div class=\"head_name\" style=\"width: 37.5%;\">"+ item.phone +"</div>\n" +
                         "<div class=\"head_name\" style=\"width: 20%;\">" +
-                        "<button class=\"offer_button button_div_head\" onclick='modify(this)'><img src=\"/images/demandForSingle/offer.png\"/><span>权限修改</span></button>\n" +
+                        "<button class=\"offer_button button_div_head\" onclick='modify(this)'><img src=\"/images/demandForSingle/offer.png\"/><span>权限赋予</span></button>\n" +
                         // "<button class=\"button_div_head layui-btn-danger\" onclick='delChild(this)'><img src=\"/images/demandForSingle/offer.png\"/><span>删除</span></button></div>\n" +
                         "</div>\n" +
                         "</div>")
@@ -55,7 +55,14 @@ function load(page, limit, phone){
 //权限修改
 function modify(obj){
     let id = $(obj).parent().parent().parent().attr("id");
-    console.log(id)
+    layer.open({
+        type: 2,
+        title: false,
+        anim: 1,
+        closeBtn: 1,
+        area: ['500px', '580px'],
+        content: '/page/modify?id=' + id
+    });
 }
 //删除子账号
 function delChild(obj){

+ 3 - 3
src/main/resources/templates/indexHome.html

@@ -142,7 +142,7 @@
 
                             </dl>
                         </li>
-                        <li class="layui-nav-item" name="人员设置" menu="A-4" titleVal="img3" onclick="clickItem(this)">
+                        <li class="layui-nav-item" name="人员设置" menu="A-5" titleVal="img3" onclick="clickItem(this)">
                             <a lay-id="#" lay-url="#">
                                 <i class="ri-shield-keyhole-line"></i>&emsp;<cite name="人员设置"><img src="/images/indeHome/img3.png"/><span>人员设置</span></cite>
                             </a>
@@ -150,7 +150,7 @@
 
                             </dl>
                         </li>
-                        <li class="layui-nav-item" name="途丫旅游" menu="A-5" titleVal="tuya" onclick="clickItem(this)">
+                        <li class="layui-nav-item" name="途丫旅游" menu="A-6" titleVal="tuya" onclick="clickItem(this)">
                             <a lay-id="#" lay-url="#">
                                 <i class="ri-shield-keyhole-line"></i>&emsp;<cite name="途丫旅游"><img src="/images/indeHome/tuya.png"/><span>途丫旅游</span></cite>
                             </a>
@@ -158,7 +158,7 @@
 
                             </dl>
                         </li>
-                        <li class="layui-nav-item" name="操作教程" menu="A-6" titleVal="xitongcaozship" onclick="clickItem(this)">
+                        <li class="layui-nav-item" name="操作教程" menu="A-7" titleVal="xitongcaozship" onclick="clickItem(this)">
                             <a lay-id="#" lay-url="#">
                                 <i class="ri-shield-keyhole-line"></i>&emsp;<cite name="操作教程"><img src="/images/indeHome/xitongcaozship.png"/><span>操作教程</span></cite>
                             </a>

+ 196 - 0
src/main/resources/templates/permissions/modify.html

@@ -0,0 +1,196 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>权限树</title>
+    <link rel="stylesheet" href="/layui/css/layui.css">
+    <script src="/layui/layui.js"></script>
+    <script src="/js/jquery.js"></script>
+    <script src="/js/translationVal.js"></script>
+    <style type="text/css">
+        body,html{
+            width: 100%;
+            height: 100%;
+            overflow: hidden;
+        }
+        #tree{
+            margin: 50px;
+        }
+        .button_div{
+            width: 100%;
+            height: auto;
+            text-align: center;
+        }
+        .layui-btn-normal{
+            width: 230px;
+            height: 40px;
+            background: linear-gradient(270deg, #015EEA 0%, #00C0FA 100%);
+            box-shadow: 0px 3px 60px 2px rgb(44 135 164 / 15%);
+            border-radius: 35px;
+            text-align: center;
+            line-height: 40px;
+            margin: auto;
+            font-size: 18px;
+            cursor: pointer;
+            color: #fff;
+        }
+    </style>
+    <script type="text/javascript">
+        var id = "[[${id}]]";
+        var $ = null;
+        var layer = null;
+        var tree = null;
+        layui.use(['layer', 'tree', 'util'], function(){
+            $ = layui.$
+            layer = layui.layer;
+            tree = layui.tree
+            //树数据
+            var data = [
+                {
+                    title: '报价单',
+                    id: 'A-1',
+                    spread: true,
+                    children: [
+                        {
+                            title: '已回答',
+                            id: 'A-1-1'
+                        },
+                        {
+                            title: '待回答',
+                            id: 'A-1-2'
+                        },
+                        {
+                            title: '已付费',
+                            id: 'A-1-3'
+                        },
+                        {
+                            title: '取消行程',
+                            id: 'A-1-4'
+                        }
+                    ]
+                },
+                {
+                    title: '退款申请',
+                    id: 'A-2',
+                    spread: true,
+                    children: [
+                        {
+                            title: '待审核',
+                            id: 'A-2-1'
+                        },
+                        {
+                            title: '已审核',
+                            id: 'A-2-2'
+                        }
+                    ]
+                },
+                {
+                    title: '路线发布',
+                    id: 'A-3',
+                    spread: true,
+                },
+                {
+                    title: '账户信息',
+                    id: 'A-4',
+                    spread: true,
+                },
+                {
+                    title: '人员设置',
+                    id: 'A-5',
+                    spread: true,
+                },
+                {
+                    title: '途丫旅游',
+                    id: 'A-6',
+                    spread: true,
+                },
+                {
+                    title: '操作教程',
+                    id: 'A-7',
+                    spread: true,
+                }
+            ];
+            //树渲染
+            tree.render({
+                elem: '#tree'
+                ,data: data
+                ,showCheckbox: true  //是否显示复选框
+                ,id: 'demoId'
+                ,isJump: true //是否允许点击节点时弹出新窗口跳转
+            });
+            //保存
+            $(".layui-btn-normal").on("click", function(e){
+                let list = tree.getChecked("demoId");
+                let permissionsType = "";
+                $.each(list, (index, item) => {
+                    permissionsType = permissionsType + item.id + ",";
+                    if(typeof(item.children) != "undefined"){
+                        $.each(item.children, (index, elem) => {
+                            permissionsType = permissionsType + elem.id + ",";
+                        });
+                    }
+                });
+                //增加页面权限
+                $.ajax({
+                    url: "/personal/editorModify",
+                    type: "put",
+                    data: {
+                        "code": id,
+                        "permissionsType": permissionsType.substring(0, permissionsType.length - 1)
+                    },
+                    headers: {"token": localStorage.getItem("token")},
+                    dataType: "json",
+                    success: (data) => {
+                        if(data.msg == "200"){
+                            parent.layer.alert("权限赋予成功");
+                        }
+                        layer.closeAll("loading");
+                    },
+                    error: () => {
+                        layer.alert(paramReturn("服务器异常,请联系管理员", parent.type), {icon: 2});
+                        layer.closeAll("loading");
+                    }
+                });
+            });
+            //数据渲染
+            $.ajax({
+                url: "/personal/getModify",
+                type: "get",
+                data: {
+                    "code": id
+                },
+                headers: {"token": localStorage.getItem("token")},
+                dataType: "json",
+                success: (data) => {
+                    if(data.msg == "200"){
+                        //判断部分父节点里是否存在子节点也被选中情况 layui漏洞 如果父节点被点击则子节点全部被点击
+                        var list = new Array();
+                        for(let i = 1; i < data.data.permissionsType.split(",").length; i++){
+                            let permissionsType = data.data.permissionsType.split(",")[i];
+                            let onPermissionsType = data.data.permissionsType.split(",")[i - 1];
+                            if(permissionsType.indexOf(onPermissionsType) > -1){
+                                list.push(permissionsType);
+                            } else {
+                                list.push(onPermissionsType);
+                            }
+                        }
+                        list.push(data.data.permissionsType.split(",")[data.data.permissionsType.split(",").length - 1]);
+                        tree.setChecked('demoId', list); //单个勾选 id 为 1 的节点
+                    }
+                    layer.closeAll("loading");
+                },
+                error: () => {
+                    layer.alert(paramReturn("服务器异常,请联系管理员", parent.type), {icon: 2});
+                    layer.closeAll("loading");
+                }
+            });
+        });
+    </script>
+</head>
+<body>
+    <div id="tree"></div>
+    <div class="button_div">
+        <button class="layui-btn layui-btn-normal">保存</button>
+    </div>
+</body>
+</html>