Преглед на файлове

完成菜单配置展示功能开发

wuxw преди 7 години
родител
ревизия
fa74ecf22c

+ 61 - 0
OrderService/src/main/java/com/java110/order/api/PrivilegeApi.java

@@ -0,0 +1,61 @@
+package com.java110.order.api;
+
+import com.java110.core.base.controller.BaseController;
+import com.java110.event.center.DataFlowEventPublishing;
+import com.java110.order.smo.IPrivilegeSMO;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 权限API 处理类
+ * Created by Administrator on 2019/4/1.
+ */
+@RestController
+@RequestMapping(path = "/privilegeApi")
+public class PrivilegeApi extends BaseController {
+    private final static Logger logger = LoggerFactory.getLogger(PrivilegeApi.class);
+
+
+    @Autowired
+    private IPrivilegeSMO privilegeSMOImpl;
+
+    @RequestMapping(path = "/saveUserDefaultPrivilege",method= RequestMethod.POST)
+    @ApiOperation(value="添加用户默认权限", notes="test: 返回 200 表示服务受理成功,其他表示失败")
+    @ApiImplicitParam(paramType="query", name = "privilegeInfo", value = "权限信息", required = true, dataType = "String")
+    public ResponseEntity<String> saveUserDefaultPrivilege(@RequestBody String privilegeInfo, HttpServletRequest request){
+
+        ResponseEntity<String> responseEntity = null;
+
+        try {
+            responseEntity = privilegeSMOImpl.saveUserDefaultPrivilege(privilegeInfo);
+        }catch (Exception e){
+            logger.error("请求订单异常",e);
+            responseEntity =  new ResponseEntity<String>("请求中心服务发生异常,"+e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        }finally {
+            logger.debug("订单服务返回报文为: {}",responseEntity);
+            return responseEntity;
+        }
+
+    }
+
+    public IPrivilegeSMO getPrivilegeSMOImpl() {
+        return privilegeSMOImpl;
+    }
+
+    public void setPrivilegeSMOImpl(IPrivilegeSMO privilegeSMOImpl) {
+        this.privilegeSMOImpl = privilegeSMOImpl;
+    }
+}

+ 17 - 0
OrderService/src/main/java/com/java110/order/dao/IPrivilegeDAO.java

@@ -0,0 +1,17 @@
+package com.java110.order.dao;
+
+import java.util.Map;
+
+/**
+ * 权限数据层操作接口
+ * Created by Administrator on 2019/4/1.
+ */
+public interface IPrivilegeDAO {
+
+    /**
+     * 保存用户权限
+     * @param info
+     * @return
+     */
+    public boolean saveUserDefaultPrivilege(Map info);
+}

+ 37 - 0
OrderService/src/main/java/com/java110/order/dao/impl/PrivilegeDAOImpl.java

@@ -0,0 +1,37 @@
+package com.java110.order.dao.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ResponseConstant;
+import com.java110.common.exception.DAOException;
+import com.java110.core.base.dao.BaseServiceDao;
+import com.java110.order.dao.IPrivilegeDAO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 权限数据层操作
+ * Created by Administrator on 2019/4/1.
+ */
+@Service("privilegeDAOImpl")
+public class PrivilegeDAOImpl extends BaseServiceDao implements IPrivilegeDAO {
+    protected final static Logger logger = LoggerFactory.getLogger(PrivilegeDAOImpl.class);
+
+    @Override
+    public boolean saveUserDefaultPrivilege(Map info) {
+        logger.debug("用户默认权限保存入参:{}",info);
+        List<Map> ps = sqlSessionTemplate.selectList("privilegeDAOImpl.queryUserDefaultPrivilege",info);
+        if(ps.size()>0){
+            //说明用户已经添加了默认权限组,这里不做处理直接返回
+            return true;
+        }
+        int saveFlag = sqlSessionTemplate.insert("privilegeDAOImpl.saveUserDefaultPrivilege",info);
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_CODE_INNER_ERROR,"保存权限信息失败:"+ JSONObject.toJSONString(info));
+        }
+        return true;
+    }
+}

+ 17 - 0
OrderService/src/main/java/com/java110/order/smo/IPrivilegeSMO.java

@@ -0,0 +1,17 @@
+package com.java110.order.smo;
+
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 权限业务处理类
+ * Created by Administrator on 2019/4/1.
+ */
+public interface IPrivilegeSMO {
+
+    /**
+     * 保存用户默认权限
+     * @param privilegeInfo 权限信息
+     * @return
+     */
+    public ResponseEntity<String> saveUserDefaultPrivilege(String privilegeInfo);
+}

+ 63 - 0
OrderService/src/main/java/com/java110/order/smo/impl/PrivilegeSMOImpl.java

@@ -0,0 +1,63 @@
+package com.java110.order.smo.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.cache.MappingCache;
+import com.java110.common.constant.MappingConstant;
+import com.java110.common.util.Assert;
+import com.java110.order.dao.IPrivilegeDAO;
+import com.java110.order.smo.IPrivilegeSMO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+
+/**
+ * 用户权限处理类
+ * Created by Administrator on 2019/4/1.
+ */
+
+@Service("privilegeSMOImpl")
+public class PrivilegeSMOImpl implements IPrivilegeSMO {
+
+    private final static Logger logger = LoggerFactory.getLogger(PrivilegeSMOImpl.class);
+
+    @Autowired
+    private IPrivilegeDAO privilegeDAOImpl;
+
+    @Override
+    public ResponseEntity<String> saveUserDefaultPrivilege(String privilegeInfo) {
+
+        Assert.isJsonObject(privilegeInfo,"请求报文不是有效的json格式");
+
+        Assert.jsonObjectHaveKey(privilegeInfo,"userId","请求报文中未包含userId节点");
+
+        Assert.jsonObjectHaveKey(privilegeInfo,"storeTypeCd","请求报文中未包含storeTypeCd节点");
+
+
+        JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+
+        String storeTypeCd = privilegeObj.getString("storeTypeCd");
+
+        String defaultPrivilege = MappingCache.getValue(MappingConstant.DOMAIN_DEFAULT_PRIVILEGE_ADMIN,storeTypeCd);
+
+        Assert.hasLength(defaultPrivilege,"在c_mapping 表中未配置商户类型为"+storeTypeCd+" 的默认权限组");
+        privilegeObj.put("pId",defaultPrivilege);
+
+        if(privilegeDAOImpl.saveUserDefaultPrivilege(privilegeObj)){
+            return new ResponseEntity<String>("成功", HttpStatus.OK);
+        }
+
+        return new ResponseEntity<String>("未知异常", HttpStatus.INTERNAL_SERVER_ERROR);
+    }
+
+
+    public IPrivilegeDAO getPrivilegeDAOImpl() {
+        return privilegeDAOImpl;
+    }
+
+    public void setPrivilegeDAOImpl(IPrivilegeDAO privilegeDAOImpl) {
+        this.privilegeDAOImpl = privilegeDAOImpl;
+    }
+}

+ 1 - 0
WebService/src/main/java/com/java110/web/components/LoginComponent.java

@@ -38,6 +38,7 @@ public class LoginComponent {
     }
 
 
+
     public ILoginServiceSMO getLoginServiceSMOImpl() {
         return loginServiceSMOImpl;
     }

+ 47 - 1
WebService/src/main/java/com/java110/web/components/NavComponent.java

@@ -3,6 +3,8 @@ package com.java110.web.components;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.context.IPageData;
+import com.java110.web.smo.INavServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
@@ -15,10 +17,12 @@ import org.springframework.stereotype.Component;
 @Component("nav")
 public class NavComponent {
 
+    @Autowired
+    private INavServiceSMO navServiceSMOImpl;
 
     public ResponseEntity<String> getNavData(IPageData pd){
 
-        String result = "{'welcomeText':'欢迎访问HC小区管理系统,学文!','noticeSize':10," +
+        String result = "{'noticeSize':10," +
                 "'moreNoticeUrl':'/moreNotice','notices':[" +
                 "{'msg':'新系统开发测试','date':'2019-03-19'}," +
                 "{'msg':'权限检查测试','date':'2019-03-21'}," +
@@ -29,4 +33,46 @@ public class NavComponent {
 
         return new ResponseEntity<String>(nav.toJSONString(), HttpStatus.OK);
     }
+
+
+    /**
+     * 退出登录
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> logout(IPageData pd){
+        ResponseEntity<String> responseEntity = null;
+        try{
+            responseEntity =  navServiceSMOImpl.doExit(pd);
+        }catch (Exception e){
+            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        }finally {
+            return responseEntity;
+        }
+    }
+
+    /**
+     * 获取用户信息
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> getUserInfo(IPageData pd){
+        ResponseEntity<String> responseEntity = null;
+        try{
+            responseEntity =  navServiceSMOImpl.getUserInfo(pd);
+        }catch (Exception e){
+            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        }finally {
+            return responseEntity;
+        }
+    }
+
+
+    public INavServiceSMO getNavServiceSMOImpl() {
+        return navServiceSMOImpl;
+    }
+
+    public void setNavServiceSMOImpl(INavServiceSMO navServiceSMOImpl) {
+        this.navServiceSMOImpl = navServiceSMOImpl;
+    }
 }

+ 2 - 0
WebService/src/main/java/com/java110/web/smo/ILoginServiceSMO.java

@@ -29,4 +29,6 @@ public interface ILoginServiceSMO {
      * @return
      */
     public ResponseEntity<String> validate(IPageData pd);
+
+
 }

+ 26 - 0
WebService/src/main/java/com/java110/web/smo/INavServiceSMO.java

@@ -0,0 +1,26 @@
+package com.java110.web.smo;
+
+import com.java110.core.context.IPageData;
+import org.springframework.http.ResponseEntity;
+
+/**
+ * 当行栏组件
+ * Created by Administrator on 2019/4/1.
+ */
+public interface INavServiceSMO {
+
+
+    /**
+     * 用户退出
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> doExit(IPageData pd);
+
+    /**
+     * 获取用户信息
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> getUserInfo(IPageData pd);
+}

+ 65 - 0
WebService/src/main/java/com/java110/web/smo/impl/NavServiceSMOImpl.java

@@ -0,0 +1,65 @@
+package com.java110.web.smo.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.common.constant.ServiceConstant;
+import com.java110.core.context.IPageData;
+import com.java110.web.core.BaseComponentSMO;
+import com.java110.web.smo.INavServiceSMO;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.util.Assert;
+import org.springframework.web.client.RestTemplate;
+
+/**
+ * 导航栏业务处理类
+ * Created by Administrator on 2019/4/1.
+ */
+@Service("navServiceSMOImpl")
+public class NavServiceSMOImpl extends BaseComponentSMO implements INavServiceSMO {
+    private final static Logger logger = LoggerFactory.getLogger(NavServiceSMOImpl.class);
+
+    @Autowired
+    private RestTemplate restTemplate;
+
+    /**
+     * 用户退出
+     * @param pd
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> doExit(IPageData pd) {
+        ResponseEntity<String> responseEntity = null;
+        JSONObject exitInfo = new JSONObject();
+        exitInfo.put("token",pd.getToken());
+        responseEntity = this.callCenterService(restTemplate,pd,exitInfo.toJSONString(), ServiceConstant.SERVICE_API_URL+"/api/user.service.logout", HttpMethod.POST);
+
+        return responseEntity;
+    }
+
+    /**
+     * 获取用户信息
+     * @param pd
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> getUserInfo(IPageData pd) {
+        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
+        ResponseEntity<String> responseEntity = null;
+        responseEntity = this.callCenterService(restTemplate,pd,"", ServiceConstant.SERVICE_API_URL+"/api/query.user.userInfo?userId="+pd.getUserId(), HttpMethod.GET);
+        // 过滤返回报文中的字段,只返回name字段
+        //{"address":"","orderTypeCd":"Q","serviceCode":"","responseTime":"20190401194712","sex":"","localtionCd":"","userId":"302019033054910001","levelCd":"00","transactionId":"-1","dataFlowId":"-1","response":{"code":"0000","message":"成功"},"name":"996icu","tel":"18909780341","bId":"-1","businessType":"","email":""}
+
+        if(responseEntity.getStatusCode() == HttpStatus.OK){
+            JSONObject tmpUserInfo = JSONObject.parseObject(responseEntity.getBody().toString());
+            JSONObject resultUserInfo = new JSONObject();
+            resultUserInfo.put("name",tmpUserInfo.getString("name"));
+            responseEntity = new ResponseEntity<String>(resultUserInfo.toJSONString(),HttpStatus.OK);
+        }
+        return responseEntity;
+    }
+}

+ 2 - 2
WebService/src/main/resources/components/nav/nav.html

@@ -9,7 +9,7 @@
     </div>
     <ul class="nav navbar-top-links navbar-right">
         <li style="padding: 20px">
-            <span class="m-r-sm text-muted welcome-message">{{nav.welcomeText}}</span>
+            <span class="m-r-sm text-muted welcome-message">欢迎访问HC小区管理系统,{{userName}}!</span>
         </li>
         <li class="dropdown">
             <a class="dropdown-toggle count-info" data-toggle="dropdown" href="#">
@@ -40,7 +40,7 @@
 
 
         <li>
-            <a href="/flow/login">
+            <a v-on:click="logout()">
                 <i class="fa fa-sign-out"></i> 退出
             </a>
         </li>

+ 45 - 1
WebService/src/main/resources/components/nav/nav.js

@@ -5,10 +5,12 @@
     var vm = new Vue({
         el:'#nav',
         data:{
-            nav:{}
+            nav:{},
+            userName:"",
         },
         mounted:function(){
             this.getNavData();
+            this.getUserInfo();
         },
         methods:{
             getNavData:function(){
@@ -27,8 +29,50 @@
                              }
                            );
 
+            },
+            logout:function(){
+                var param = {
+                    msg:123
+                };
+                  //发送get请求
+               vc.http.post('nav',
+                            'logout',
+                            JSON.stringify(param),
+                           {
+                               emulateJSON:true
+                            },
+                             function(json,res){
+                               if(res.status == 200){
+                                   vc.jumpToPage("/flow/login");
+                                   return ;
+                               }
+                             },function(){
+                                console.log('请求失败处理');
+                             }
+                           );
+            },
+            getUserInfo:function(){
+                //获取用户名
+                var param = {
+                                    msg:'123',
+                };
+
+                //发送get请求
+               vc.http.get('nav',
+                            'getUserInfo',
+                             param,
+                             function(json,res){
+                                if(res.status == 200){
+                                    var tmpUserInfo = JSON.parse(json);
+                                   vm.userName = tmpUserInfo.name;
+                               }
+                             },function(){
+                                console.log('请求失败处理');
+                             }
+                           );
             }
         }
 
+
     });
 })(window.vc);

+ 6 - 0
java110-common/src/main/java/com/java110/common/constant/MappingConstant.java

@@ -93,5 +93,11 @@ public class MappingConstant {
     public final static String KEY_STAFF_DEFAULT_PASSWORD = "STAFF_DEFAULT_PASSWORD";
 
 
+    /**
+     * 默认权限
+     */
+    public final static String DOMAIN_DEFAULT_PRIVILEGE_ADMIN = "DEFAULT_PRIVILEGE_ADMIN";
+
+
 
 }

+ 19 - 0
java110-config/src/main/resources/mapper/center/PrivilegeDAOImplMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="privilegeDAOImpl">
+    <select id="queryUserDefaultPrivilege" parameterType="map" resultType="map">
+        SELECT a.`p_id` pId,a.`privilege_flag` privilegeFlag,a.`user_id` userId FROM p_privilege_user a WHERE a.`p_id` = #{pId}
+        AND a.`user_id` = #{userId}
+        AND a.`privilege_flag` = '1'
+        AND a.`status_cd` = '0'
+    </select>
+
+    <!-- 保存属性信息 c_business_attrs -->
+    <insert id="saveBusinessAttrs" parameterType="Map">
+        <![CDATA[
+            INSERT INTO p_privilege_user(p_id,privilege_flag,user_id) VALUES(#{pId},'1',#{userId})
+        ]]>
+    </insert>
+</mapper>