wuxw
2019-05-30 f39cd4d82c3952f8587ebff9a7e8ede73b46bcda
Merge branch 'master' of https://github.com/java110/MicroCommunity
2个文件已添加
25个文件已修改
1个文件已删除
357 ■■■■ 已修改文件
Api/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/src/main/java/com/java110/api/listener/menu/QueryMenuServiceListener.java 115 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
CommunityService/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
OrderService/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Readme.md 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ShopService/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
StoreService/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
UserService/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/docker/docker-compose.yml 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/docker/onStart.sh 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/components/MenuComponent.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/IMenuServiceSMO.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/impl/MenuServiceSMOImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/java/com/java110/web/smo/impl/NavServiceSMOImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/menu/menu.js 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/components/nav/nav.js 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/static/js/core.js 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WebService/src/main/resources/static/js/vc-constant.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/index.html 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
docs/start/vedio.md 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eureka/bin/start_eureka.sh 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eureka/docker/Dockerfile 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eureka/docker/bin/start_eureka.sh 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
eureka/docker/docker-compose.yml 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-common/src/main/java/com/java110/common/util/CommonUtil.java 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-event/src/main/java/com/java110/event/service/api/ServiceDataFlowListener.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
reBuildAll.sh 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
restartAll.sh 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Api/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "8008:8008"
       volumes:
       - ../target/Api.jar:/root/target/Api.jar
       - ../target/Api.jar:/root/target/Api.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
Api/src/main/java/com/java110/api/listener/menu/QueryMenuServiceListener.java
@@ -39,6 +39,7 @@
    /**
     * 业务处理
     *
     * @param event
     */
    @Override
@@ -46,30 +47,30 @@
        DataFlowContext dataFlowContext = event.getDataFlowContext();
        AppService service = event.getAppService();
        //get 方式下 请求参数会转化到header 中
        Map<String,String> requestHeaders = dataFlowContext.getRequestHeaders();
        Assert.hasKey(requestHeaders,"userId","请求信息中未包含userId信息");
        Map<String, String> requestHeaders = dataFlowContext.getRequestHeaders();
        Assert.hasKey(requestHeaders, "userId", "请求信息中未包含userId信息");
        String userId = requestHeaders.get("userId");
        //根据用户查询 商户类
        String domain = queryStoreTypeCd(dataFlowContext,userId);
        domain = StringUtil.isEmpty(domain)?"-1":domain;
        ResponseEntity responseEntity= null;
        String requestUrl = service.getUrl() + "?userId="+userId+"&domain="+domain;
        dataFlowContext.getRequestHeaders().put("REQUEST_URL",requestUrl);
        String domain = queryStoreTypeCd(dataFlowContext, userId);
        domain = StringUtil.isEmpty(domain) ? "-1" : domain;
        ResponseEntity responseEntity = null;
        String requestUrl = service.getUrl() + "?userId=" + userId + "&domain=" + domain;
        dataFlowContext.getRequestHeaders().put("REQUEST_URL", requestUrl);
        HttpHeaders header = new HttpHeaders();
        header.add(CommonConstant.HTTP_SERVICE.toLowerCase(),ServiceCodeConstant.SERVICE_CODE_QUERY_MENU_INFO);
        header.add(CommonConstant.HTTP_SERVICE.toLowerCase(), ServiceCodeConstant.SERVICE_CODE_QUERY_MENU_INFO);
        HttpEntity<String> httpEntity = new HttpEntity<String>("", header);
        doRequest(dataFlowContext,service,httpEntity);
        doRequest(dataFlowContext, service, httpEntity);
        responseEntity = dataFlowContext.getResponseEntity();
        //如果调用后端失败了 则直接返回
        if(responseEntity.getStatusCode() != HttpStatus.OK){
            return ;
        if (responseEntity.getStatusCode() != HttpStatus.OK) {
            return;
        }
        JSONObject resultObj = JSONObject.parseObject(responseEntity.getBody().toString());
        if(!resultObj.containsKey("menus")){
            return ;
        if (!resultObj.containsKey("menus")) {
            return;
        }
        dataFlowContext.setResponseEntity(refreshMenusInfo(resultObj.getJSONArray("menus")));
@@ -78,26 +79,27 @@
    /**
     * 根据用户ID查询商户信息
     *
     * @param dataFlowContext
     * @param userId
     * @return
     */
    private String queryStoreTypeCd(DataFlowContext dataFlowContext,String userId){
        ResponseEntity responseEntity= null;
    private String queryStoreTypeCd(DataFlowContext dataFlowContext, String userId) {
        ResponseEntity responseEntity = null;
        AppService appService = DataFlowFactory.getService(dataFlowContext.getAppId(), ServiceCodeConstant.SERVICE_CODE_QUERY_STORE_BYUSER);
        if(appService == null){
            responseEntity = new ResponseEntity<String>("当前没有权限访问"+ServiceCodeConstant.SERVICE_CODE_QUERY_USER_LOGIN,HttpStatus.UNAUTHORIZED);
        if (appService == null) {
            responseEntity = new ResponseEntity<String>("当前没有权限访问" + ServiceCodeConstant.SERVICE_CODE_QUERY_USER_LOGIN, HttpStatus.UNAUTHORIZED);
            dataFlowContext.setResponseEntity(responseEntity);
            return "";
        }
        String requestUrl = appService.getUrl() + "?userId="+userId;
        String requestUrl = appService.getUrl() + "?userId=" + userId;
        HttpHeaders header = new HttpHeaders();
        header.add(CommonConstant.HTTP_SERVICE.toLowerCase(),ServiceCodeConstant.SERVICE_CODE_QUERY_STORE_BYUSER);
        header.add(CommonConstant.HTTP_SERVICE.toLowerCase(), ServiceCodeConstant.SERVICE_CODE_QUERY_STORE_BYUSER);
        HttpEntity<String> httpEntity = new HttpEntity<String>("", header);
        doRequest(dataFlowContext,appService,httpEntity);
        doRequest(dataFlowContext, appService, httpEntity);
        responseEntity = dataFlowContext.getResponseEntity();
        if(responseEntity.getStatusCode() != HttpStatus.OK){
        if (responseEntity.getStatusCode() != HttpStatus.OK) {
            dataFlowContext.setResponseEntity(responseEntity);
        }
@@ -107,62 +109,65 @@
    /**
     * 刷新菜单信息
     * 将 数据 [{
     "gId": "800201904001",
     "menuDescription": "添加员工",
     "menuGroupSeq": 1,
     "menuSeq": 1,
     "icon": "fa-desktop",
     "mId": "700201904001",
     "menuName": "添加员工",
     "pId": "500201904001",
     "menuGroupName": "员工管理",
     "label": "",
     "menuGroupDescription": "员工管理",
     "url": "/"
     }],
     转为:
     * "gId": "800201904001",
     * "menuDescription": "添加员工",
     * "menuGroupSeq": 1,
     * "menuSeq": 1,
     * "icon": "fa-desktop",
     * "mId": "700201904001",
     * "menuName": "添加员工",
     * "pId": "500201904001",
     * "menuGroupName": "员工管理",
     * "label": "",
     * "menuGroupDescription": "员工管理",
     * "url": "/"
     * }],
     * 转为:
     * "[{'id':1,'icon':'fa-desktop','name':'我的菜单','label':'HOT','childs':[" +
     "{'name':'子菜单','href':'http://www.baidu.com'}]}," +
     "{'id':2,'icon':'fa-flask','name':'我的菜单','childs':[],'href':'/doc'}," +
     "{'id':3,'icon':'fa-globe','name':'我的菜单','childs':[{'name':'子菜单','href':'http://www.baidu.com'}]}" +
     "]";
     * @param menusList 菜单列表
     * "{'name':'子菜单','href':'http://www.baidu.com'}]}," +
     * "{'id':2,'icon':'fa-flask','name':'我的菜单','childs':[],'href':'/doc'}," +
     * "{'id':3,'icon':'fa-globe','name':'我的菜单','childs':[{'name':'子菜单','href':'http://www.baidu.com'}]}" +
     * "]";
     *
     * @param menusList 菜单列表
     * @return
     */
    private ResponseEntity<String> refreshMenusInfo(JSONArray menusList){
    private ResponseEntity<String> refreshMenusInfo(JSONArray menusList) {
        JSONArray tempMenus = new JSONArray();
        JSONObject tempMenu = null;
        for(int menuIndex = 0 ; menuIndex < menusList.size(); menuIndex ++){
        for (int menuIndex = 0; menuIndex < menusList.size(); menuIndex++) {
            JSONObject tMenu = menusList.getJSONObject(menuIndex);
            tempMenu = this.getMenuFromMenus(tempMenus,tMenu.getString("gId"));
            if(tempMenu == null){
            tempMenu = this.getMenuFromMenus(tempMenus, tMenu.getString("gId"));
            if (tempMenu == null) {
                tempMenu = new JSONObject();
                tempMenu.put("id",tMenu.getString("gId"));
                tempMenu.put("icon",tMenu.getString("icon"));
                tempMenu.put("name",tMenu.getString("menuGroupName"));
                tempMenu.put("label",tMenu.getString("label"));
                tempMenu.put("childs",new JSONArray());
                tempMenu.put("id", tMenu.getString("gId"));
                tempMenu.put("icon", tMenu.getString("icon"));
                tempMenu.put("name", tMenu.getString("menuGroupName"));
                tempMenu.put("label", tMenu.getString("label"));
                tempMenu.put("seq", tMenu.getString("menuGroupSeq"));
                tempMenu.put("childs", new JSONArray());
                tempMenus.add(tempMenu);
            }
            //获取孩子菜单
            JSONArray childs = tempMenu.getJSONArray("childs");
            JSONObject childMenu = new JSONObject();
            childMenu.put("name",tMenu.getString("menuName"));
            childMenu.put("href",tMenu.getString("url"));
            childMenu.put("name", tMenu.getString("menuName"));
            childMenu.put("href", tMenu.getString("url"));
            childMenu.put("seq", tMenu.getString("menuSeq"));
            childs.add(childMenu);
        }
        return new ResponseEntity<String>(tempMenus.toJSONString(),HttpStatus.OK);
        return new ResponseEntity<String>(tempMenus.toJSONString(), HttpStatus.OK);
    }
    /**
     * 在菜单列表查询菜单
     *
     * @param gId
     * @return
     */
    private JSONObject getMenuFromMenus(JSONArray tempMenus,String gId){
        for(int tempIndex = 0 ; tempIndex < tempMenus.size();tempIndex ++){
            if(tempMenus.getJSONObject(tempIndex).getString("id").equals(gId)){
    private JSONObject getMenuFromMenus(JSONArray tempMenus, String gId) {
        for (int tempIndex = 0; tempIndex < tempMenus.size(); tempIndex++) {
            if (tempMenus.getJSONObject(tempIndex).getString("id").equals(gId)) {
                return tempMenus.getJSONObject(tempIndex);
            }
        }
CommunityService/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "8009:8009"
       volumes:
       - ../target/CommunityService.jar:/root/target/CommunityService.jar
       - ../target/CommunityService.jar:/root/target/CommunityService.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
OrderService/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "8001:8001"
       volumes:
       - ../target/OrderService.jar:/root/target/OrderService.jar
       - ../target/OrderService.jar:/root/target/OrderService.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
Readme.md
@@ -5,9 +5,11 @@
### 代码分享视频
1、[小区管理系统源码讲解](http://www.iqiyi.com/w_19s7u6le2p.html#vfrm=16-1-1-1)
1、[安装视频](http://www.iqiyi.com/w_19s9dzcnp9.html)
2、[小区管理系统服务端开发视频](http://www.iqiyi.com/w_19s7omicex.html#curid=38432723509_ef5ddb9c572fa848bcdd80f193d78eeb)
2、[小区管理系统源码讲解](http://www.iqiyi.com/w_19s7u6le2p.html#vfrm=16-1-1-1)
3、[小区管理系统服务端开发视频](http://www.iqiyi.com/w_19s7omicex.html#curid=38432723509_ef5ddb9c572fa848bcdd80f193d78eeb)
### 分支说明(branch)
@@ -38,7 +40,7 @@
### 如何安装(how to install)
[从这里安装](docs/install.md)
[安装文档](docs/install.md)
### 解决方案
@@ -79,6 +81,7 @@
### 成为开发者
如果您对小区 物业 有较深的理解,也致力于开发一套系统方便与物业,业主沟通交流,如果您还有空闲的时间,不怕吃苦,hc小区开发团队欢迎您的加入!
qq群号 992420128
![image](join_me.JPG)
ShopService/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "8007:8007"
       volumes:
       - ../target/ShopService.jar:/root/target/ShopService.jar
       - ../target/ShopService.jar:/root/target/ShopService.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
StoreService/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "8006:8006"
       volumes:
       - ../target/StoreService.jar:/root/target/StoreService.jar
       - ../target/StoreService.jar:/root/target/StoreService.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
UserService/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "8002:8002"
       volumes:
       - ../target/UserService.jar:/root/target/UserService.jar
       - ../target/UserService.jar:/root/target/UserService.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
WebService/docker/docker-compose.yml
@@ -9,4 +9,11 @@
       ports:
       - "443:8443"
       volumes:
       - ../target/WebService.jar:/root/target/WebService.jar
       - ../target/WebService.jar:/root/target/WebService.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
WebService/docker/onStart.sh
@@ -4,8 +4,8 @@
cp  -r ../target .
docker build -t java110/console .
docker build -t java110/web .
docker run -ti --name console_test -p8443:8443 -idt java110/console:latest
docker run -ti --name web_test -p8443:8443 -idt java110/web:latest
docker logs -f console_test
docker logs -f web_test
WebService/src/main/java/com/java110/web/components/MenuComponent.java
@@ -1,6 +1,5 @@
package com.java110.web.components;
import com.alibaba.fastjson.JSONArray;
import com.java110.core.context.IPageData;
import com.java110.web.smo.IMenuServiceSMO;
import org.springframework.beans.factory.annotation.Autowired;
@@ -20,9 +19,10 @@
    /**
     * 测试版本号
     *
     * @return
     */
    public ResponseEntity<String> getMenus(IPageData pd){
    public ResponseEntity<String> getMenus(IPageData pd) {
       /* String menuData = "[{'id':1,'icon':'fa-desktop','name':'我的菜单','label':'HOT','childs':[" +
                "{'name':'子菜单','href':'http://www.baidu.com'}]}," +
@@ -36,11 +36,11 @@
        */
        ResponseEntity<String> responseEntity = null;
        try{
            responseEntity =  menuServiceSMOImpl.queryMenusByUserId(pd);
        }catch (Exception e){
        try {
            responseEntity = menuServiceSMOImpl.queryMenusByUserId(pd);
        } catch (Exception e) {
            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
        }finally {
        } finally {
            return responseEntity;
        }
    }
WebService/src/main/java/com/java110/web/smo/IMenuServiceSMO.java
@@ -12,6 +12,6 @@
     * 根据用户查菜单
     * @return
     */
    public ResponseEntity<String> queryMenusByUserId(IPageData pd);
     ResponseEntity<String> queryMenusByUserId(IPageData pd);
}
WebService/src/main/java/com/java110/web/smo/impl/MenuServiceSMOImpl.java
@@ -30,7 +30,6 @@
    /**
     *
     * @param pd
     * @return
     */
@@ -38,10 +37,10 @@
    public ResponseEntity<String> queryMenusByUserId(IPageData pd) {
        ResponseEntity<String> responseEntity = null;
        Assert.hasLength(pd.getUserId(),"用户还没有登录");
        Assert.hasLength(pd.getUserId(), "用户还没有登录");
        responseEntity = this.callCenterService(restTemplate,pd,"",
                ServiceConstant.SERVICE_API_URL+"/api/query.menu.info?userId="+pd.getUserId(), HttpMethod.GET);
        responseEntity = this.callCenterService(restTemplate, pd, "",
                ServiceConstant.SERVICE_API_URL + "/api/query.menu.info?userId=" + pd.getUserId(), HttpMethod.GET);
        return responseEntity;
    }
WebService/src/main/java/com/java110/web/smo/impl/NavServiceSMOImpl.java
@@ -4,6 +4,7 @@
import com.alibaba.fastjson.JSONObject;
import com.java110.common.constant.ServiceConstant;
import com.java110.common.constant.StatusConstant;
import com.java110.common.util.CommonUtil;
import com.java110.core.context.IPageData;
import com.java110.web.core.BaseComponentSMO;
import com.java110.web.smo.ICommunityServiceSMO;
@@ -79,6 +80,12 @@
            JSONObject tmpUserInfo = JSONObject.parseObject(responseEntity.getBody().toString());
            JSONObject resultUserInfo = new JSONObject();
            resultUserInfo.put("name", tmpUserInfo.getString("name"));
            resultUserInfo.put("address", tmpUserInfo.getString("address"));
            resultUserInfo.put("sex", tmpUserInfo.getString("sex"));
            resultUserInfo.put("localtionCd", tmpUserInfo.getString("localtionCd"));
            resultUserInfo.put("levelCd", tmpUserInfo.getString("levelCd"));
            resultUserInfo.put("tel", CommonUtil.mobileEncrypt(tmpUserInfo.getString("tel")));
            resultUserInfo.put("email", tmpUserInfo.getString("email"));
            responseEntity = new ResponseEntity<String>(resultUserInfo.toJSONString(), HttpStatus.OK);
        }
        return responseEntity;
WebService/src/main/resources/components/menu/menu.js
@@ -42,6 +42,15 @@
           },
           refreshMenuActive:function(jsonArray,_id){
                for(var menuIndex =0 ; menuIndex < jsonArray.length;menuIndex ++){
                    if(jsonArray[menuIndex].hasOwnProperty('childs')){
                        var _childs = jsonArray[menuIndex].childs;
                        _childs.sort(function(_child,_newChild){
                            return _child.seq - _newChild.seq
                        });
                        jsonArray[menuIndex].childs = _childs;
                    }
                    if(_id === jsonArray[menuIndex].id){
                        if(jsonArray[menuIndex].active === true){
                            //如果当前本身是打开状态,说明 需要关闭
@@ -54,6 +63,10 @@
                    jsonArray[menuIndex].active=false;
                }
                jsonArray.sort(function(a,b){
                            return a.seq - b.seq
                });
                return  jsonArray;
           },
           switchMenu:function(_id){
WebService/src/main/resources/components/nav/nav.js
@@ -17,10 +17,11 @@
        mounted:function(){
            this.getNavCommunity();
            this.getNavData();
            this.getUserInfo();
            //this.getUserInfo();
        },
        methods:{
            getNavData:function(){
                var param = {
                    msg:'123',
                };
@@ -59,6 +60,12 @@
                           );
            },
            getUserInfo:function(){
//                var _userInfo = vc.getData("_userInfo");
//                //浏览器缓存中能获取到
//                if(_userInfo != null && _userInfo != undefined){
//                    vm.userName = _userInfo.name;
//                    return ;
//                }
                //获取用户名
                var param = {
                                    msg:'123',
@@ -71,7 +78,9 @@
                             function(json,res){
                                if(res.status == 200){
                                    var tmpUserInfo = JSON.parse(json);
                                    console.log(vm,tmpUserInfo);
                                   vm.userName = tmpUserInfo.name;
//                                   vc.saveData("_userInfo",tmpUserInfo);
                               }
                             },function(){
                                console.log('请求失败处理');
@@ -124,4 +133,7 @@
    });
     vm.getUserInfo();
})(window.vc);
WebService/src/main/resources/static/js/core.js
@@ -69,10 +69,23 @@
                });
        },
        get:function(componentCode,componentMethod,param,successCallback,errorCallback){
                //加入缓存机制
                var _getPath = '/'+componentCode +'/' +componentMethod;
                if(vc.constant.GET_CACHE_URL.includes(_getPath)){
                    var _cacheData = vc.getData(_getPath);
                    //浏览器缓存中能获取到
                    if(_cacheData != null && _cacheData != undefined){
                        successCallback(JSON.stringify(_cacheData),{status:200});
                        return ;
                    }
                }
                vc.loading('open');
                Vue.http.get('/callComponent/'+componentCode +"/"+componentMethod, param)
                .then(function(res){
                    successCallback(res.bodyText,res);
                    if(vc.constant.GET_CACHE_URL.includes(_getPath) && res.status == 200){
                         vc.saveData(_getPath,JSON.parse(res.bodyText));
                    }
                    vc.loading('close');
                }, function(error){
                    errorCallback(error.bodyText,error);
@@ -146,6 +159,15 @@
        return JSON.parse(window.localStorage.getItem('hc_menus'));
    };
    //保存用户菜单
    vc.saveData = function(_key,_value){
        window.localStorage.setItem(_key,JSON.stringify(_value));
    };
    //获取用户菜单
    vc.getData = function(_key){
        return JSON.parse(window.localStorage.getItem(_key));
    };
    //保存当前小区信息 _communityInfo : {"communityId":"123213","name":"测试小区"}
    vc.setCurrentCommunity = function(_currentCommunityInfo){
        window.localStorage.setItem('hc_currentCommunityInfo',JSON.stringify(_currentCommunityInfo));
WebService/src/main/resources/static/js/vc-constant.js
@@ -5,6 +5,7 @@
    var constant = {
        REQUIRED_MSG:"不能为空",
        GET_CACHE_URL:["/nav/getUserInfo"]
    }
    vc.constant = constant;
})(window.vc);
docs/index.html
@@ -12,8 +12,8 @@
</head>
<body>
<nav>
    <a href="https://www.iqiyi.com/w_19s7u6le2p.html">视频</a>
    <a href="http://blog.java110.com">博客</a>
    <a href="https://www.java110.com/#/start/vedio">视频</a>
    <a target="_blank" href="https://demo.java110.com">演示环境</a>
</nav>
<div id="app"></div>
<script>
docs/start/vedio.md
@@ -3,6 +3,11 @@
:-: | :-: | :-: | :-:
v0.01|初稿|2019-04-22|wuxw
## 小区管理系统安装视频
[点这里](http://www.iqiyi.com/w_19s9dzcnp9.html)
## 小区管理系统代码分享视频
[点这里](http://www.iqiyi.com/w_19s7u6le2p.html#vfrm=16-1-1-1)
eureka/bin/start_eureka.sh
File was deleted
eureka/docker/Dockerfile
@@ -1,8 +1,6 @@
FROM registry.cn-beijing.aliyuncs.com/sxd/ubuntu-java8:1.0
MAINTAINER wuxw <wuxw7@asiainfo.com>
ADD target/eureka.jar /root/target/
ADD bin/start_eureka.sh /root/
eureka/docker/bin/start_eureka.sh
New file
@@ -0,0 +1,6 @@
#!/bin/bash
#### normal dev model
nohup java -jar target/eureka.jar > eureka.log 2>&1 &
tail -100f eureka.log
eureka/docker/docker-compose.yml
New file
@@ -0,0 +1,19 @@
version: '2'
services:
   eureka:
       container_name: eureka-1
       build:
          context: .
          dockerfile: Dockerfile
       restart: always
       ports:
       - "8761:8761"
       volumes:
       - ../target/eureka.jar:/root/target/eureka.jar
#       extra_hosts:
#       - "dev.java110.com:192.168.1.18"
#       - "dev.db.java110.com:192.168.1.18"
#       - "dev.zk.java110.com:192.168.1.18"
#       - "dev.kafka.java110.com:192.168.1.18"
#       - "dev.redis.java110.com:192.168.1.18"
#       - "api.java110.com:92.168.1.18"
java110-common/src/main/java/com/java110/common/util/CommonUtil.java
@@ -16,10 +16,11 @@
    /**
     * 将 30*1000 转为 30000
     * 不能出现小数点等
     *
     * @param val
     * @return
     */
    public static int multiplicativeStringToInteger(String val){
    public static int multiplicativeStringToInteger(String val) {
        try {
            if (StringUtils.isEmpty(val)) {
                return 0;
@@ -27,19 +28,19 @@
            if (val.contains("*")) {
                String[] vals = val.split("\\*");
                int value = 1;
                for(int vIndex = 0 ; vIndex < vals.length;vIndex++){
                    if(!NumberUtils.isNumber(vals[vIndex])){
                for (int vIndex = 0; vIndex < vals.length; vIndex++) {
                    if (!NumberUtils.isNumber(vals[vIndex])) {
                        throw new ClassCastException("配置的数据有问题,必须配置为30*1000格式");
                    }
                    value *= Integer.parseInt(vals[vIndex]);
                }
                return value;
            }
            if(NumberUtils.isNumber(val)){
            if (NumberUtils.isNumber(val)) {
                return Integer.parseInt(val);
            }
        }catch (Exception e){
            logger.error("---------------[CommonUtil.multiplicativeStringToInteger]----------------类型转换失败",e);
        } catch (Exception e) {
            logger.error("---------------[CommonUtil.multiplicativeStringToInteger]----------------类型转换失败", e);
            return 0;
        }
        return 0;
@@ -47,19 +48,36 @@
    /**
     * 生成六位验证码
     *
     * @return
     */
    public static String generateVerificationCode(){
    public static String generateVerificationCode() {
        Random random = new Random();
        String result="";
        for(int i=0;i<6;i++){
            result+=random.nextInt(10);
        String result = "";
        for (int i = 0; i < 6; i++) {
            result += random.nextInt(10);
        }
        return result;
    }
    // 手机号码前三后四脱敏
    public static String mobileEncrypt(String mobile) {
        if (StringUtils.isEmpty(mobile) || (mobile.length() != 11)) {
            return mobile;
        }
        return mobile.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
    }
    //身份证前三后四脱敏
    public static String idEncrypt(String id) {
        if (StringUtils.isEmpty(id) || (id.length() < 8)) {
            return id;
        }
        return id.replaceAll("(?<=\\w{3})\\w(?=\\w{4})", "*");
    }
    //效验
    public static boolean sqlValidate(String str) {
java110-event/src/main/java/com/java110/event/service/api/ServiceDataFlowListener.java
@@ -1,7 +1,6 @@
package com.java110.event.service.api;
import com.java110.event.app.order.Ordered;
import com.java110.event.service.BusinessServiceDataFlowEvent;
import org.springframework.http.HttpMethod;
import java.util.EventListener;
reBuildAll.sh
@@ -5,9 +5,11 @@
mvn clean install -Dmaven.test.skip=true
mvn package -Dmaven.test.skip=true
#docker-compose -f ./eureka/docker/docker-compose.yml       up -d --build --force-recreate;
docker-compose -f ./Api/docker/docker-compose.yml       up -d --build --force-recreate;
docker-compose -f ./OrderService/docker/docker-compose.yml       up -d --build --force-recreate;
docker-compose -f ./CommunityService/docker/docker-compose.yml       up -d --build --force-recreate;
docker-compose -f ./StoreService/docker/docker-compose.yml       up -d --build --force-recreate;
docker-compose -f ./UserService/docker/docker-compose.yml       up -d --build --force-recreate;
docker-compose -f ./WebService/docker/docker-compose.yml       up -d --build --force-recreate;
restartAll.sh
@@ -4,4 +4,5 @@
docker-compose -f ./OrderService/docker/docker-compose.yml      restart;
docker-compose -f ./CommunityService/docker/docker-compose.yml       restart;
docker-compose -f ./StoreService/docker/docker-compose.yml       restart;
docker-compose -f ./UserService/docker/docker-compose.yml       restart;
docker-compose -f ./UserService/docker/docker-compose.yml       restart;
docker-compose -f ./WebService/docker/docker-compose.yml       restart;