wuxw
2019-08-13 9e29441646434d9f54a2c3e855a724633885d8a4
WebService/src/main/java/com/java110/web/smo/impl/PrivilegeServiceSMOImpl.java
@@ -87,6 +87,200 @@
    }
    /**
     * 保存权限组
     * @param pd
     * @return
     */
    @Override
    public ResponseEntity<String> savePrivilegeGroup(IPageData pd) {
        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
        JSONObject privilegeInfoObj = JSONObject.parseObject(pd.getReqData());
        Assert.jsonObjectHaveKey(privilegeInfoObj,"name","请求报文中未包含权限组名称 节点");
        Assert.jsonObjectHaveKey(privilegeInfoObj,"description","请求报文中未包含权限组描述 节点");
        Assert.hasLength(privilegeInfoObj.getString("name"),"请求报文中权限组名称不能为空");
        ResponseEntity<String> storeInfo = super.getStoreInfo(pd,restTemplate);
        if(storeInfo.getStatusCode() != HttpStatus.OK){
            return storeInfo;
        }
        // 商户返回信息
        JSONObject storeInfoObj = JSONObject.parseObject(storeInfo.getBody());
        String  storeId = storeInfoObj.getString("storeId");
        String  storeTypeCd = storeInfoObj.getString("storeTypeCd");
        privilegeInfoObj.put("storeId",storeId);
        privilegeInfoObj.put("storeTypeCd",storeTypeCd);
        ResponseEntity<String> privilegeGroup = super.callCenterService(restTemplate,pd,privilegeInfoObj.toJSONString(),
                ServiceConstant.SERVICE_API_URL+"/api/save.privilegeGroup.info" , HttpMethod.POST);
        return privilegeGroup;
    }
    /**
     * 删除权限组
     * @param pd
     * @return
     */
    @Override
    public ResponseEntity<String> deletePrivilegeGroup(IPageData pd) {
        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
        JSONObject privilegeInfoObj = JSONObject.parseObject(pd.getReqData());
        Assert.jsonObjectHaveKey(privilegeInfoObj,"pgId","请求报文中未包含权限组ID 节点");
        ResponseEntity<String> storeInfo = super.getStoreInfo(pd,restTemplate);
        if(storeInfo.getStatusCode() != HttpStatus.OK){
            return storeInfo;
        }
        // 商户返回信息
        JSONObject storeInfoObj = JSONObject.parseObject(storeInfo.getBody());
        String  storeId = storeInfoObj.getString("storeId");
        String  storeTypeCd = storeInfoObj.getString("storeTypeCd");
        privilegeInfoObj.put("storeId",storeId);
        privilegeInfoObj.put("storeTypeCd",storeTypeCd);
        ResponseEntity<String> privilegeGroup = super.callCenterService(restTemplate,pd,privilegeInfoObj.toJSONString(),
                ServiceConstant.SERVICE_API_URL+"/api/delete.privilegeGroup.info" , HttpMethod.POST);
        return privilegeGroup;
    }
    @Override
    public ResponseEntity<String> listNoAddPrivilege(IPageData pd) {
        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
        JSONObject privilegeInfoObj = JSONObject.parseObject(pd.getReqData());
        Assert.jsonObjectHaveKey(privilegeInfoObj,"pgId","请求报文中未包含权限组ID 节点");
        ResponseEntity<String> storeInfo = super.getStoreInfo(pd,restTemplate);
        if(storeInfo.getStatusCode() != HttpStatus.OK){
            return storeInfo;
        }
        // 商户返回信息
        JSONObject storeInfoObj = JSONObject.parseObject(storeInfo.getBody());
        String  storeId = storeInfoObj.getString("storeId");
        String  storeTypeCd = storeInfoObj.getString("storeTypeCd");
        String pgId = privilegeInfoObj.getString("pgId");
        ResponseEntity<String> privileges = super.callCenterService(restTemplate,pd,"",
                ServiceConstant.SERVICE_API_URL+"/api/query.privilegeGroup.noAddPrivilege?storeId="+storeId+"&storeTypeCd="+storeTypeCd+"&pgId="+pgId , HttpMethod.GET);
        if(privileges.getStatusCode() != HttpStatus.OK){
            return privileges;
        }
        JSONObject resultObj = JSONObject.parseObject(privileges.getBody().toString());
        return new ResponseEntity<String>(resultObj.getJSONArray("privileges").toJSONString(),HttpStatus.OK);
    }
    @Override
    public ResponseEntity<String> addPrivilegeToPrivilegeGroup(IPageData pd) {
        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
        JSONObject privilegeInfoObj = JSONObject.parseObject(pd.getReqData());
        Assert.jsonObjectHaveKey(privilegeInfoObj,"pgId","请求报文中未包含权限组ID 节点");
        Assert.jsonObjectHaveKey(privilegeInfoObj,"pId","请求报文中未包含权限ID 节点");
        ResponseEntity<String> storeInfo = super.getStoreInfo(pd,restTemplate);
        if(storeInfo.getStatusCode() != HttpStatus.OK){
            return storeInfo;
        }
        // 商户返回信息
        JSONObject storeInfoObj = JSONObject.parseObject(storeInfo.getBody());
        String  storeId = storeInfoObj.getString("storeId");
        privilegeInfoObj.put("storeId",storeId);
        ResponseEntity<String> privilegeGroup = super.callCenterService(restTemplate,pd,privilegeInfoObj.toJSONString(),
                ServiceConstant.SERVICE_API_URL+"/api/add.privilege.PrivilegeGroup" , HttpMethod.POST);
        return privilegeGroup;
    }
    /**
     * 删除权限
     * @param pd
     * @return
     */
    @Override
    public ResponseEntity<String> deletePrivilegeFromPrivilegeGroup(IPageData pd) {
        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
        JSONObject privilegeInfoObj = JSONObject.parseObject(pd.getReqData());
        Assert.jsonObjectHaveKey(privilegeInfoObj,"pgId","请求报文中未包含权限组ID 节点");
        Assert.jsonObjectHaveKey(privilegeInfoObj,"pId","请求报文中未包含权限ID 节点");
        ResponseEntity<String> storeInfo = super.getStoreInfo(pd,restTemplate);
        if(storeInfo.getStatusCode() != HttpStatus.OK){
            return storeInfo;
        }
        // 商户返回信息
        JSONObject storeInfoObj = JSONObject.parseObject(storeInfo.getBody());
        String  storeId = storeInfoObj.getString("storeId");
        privilegeInfoObj.put("storeId",storeId);
        ResponseEntity<String> privilegeGroup = super.callCenterService(restTemplate,pd,privilegeInfoObj.toJSONString(),
                ServiceConstant.SERVICE_API_URL+"/api/delete.privilege.PrivilegeGroup" , HttpMethod.POST);
        return privilegeGroup;
    }
    /**
     *
     * @param pd
     * @return
     */
    @Override
    public ResponseEntity<String> listStaffPrivileges(IPageData pd) {
        Assert.hasLength(pd.getUserId(),"用户未登录请先登录");
        JSONObject privilegeInfoObj = JSONObject.parseObject(pd.getReqData());
        Assert.jsonObjectHaveKey(privilegeInfoObj,"staffId","请求报文中未包含员工ID 节点");
        ResponseEntity<String> storeInfo = super.getStoreInfo(pd,restTemplate);
        if(storeInfo.getStatusCode() != HttpStatus.OK){
            return storeInfo;
        }
        // 商户返回信息
        JSONObject storeInfoObj = JSONObject.parseObject(storeInfo.getBody());
        String  storeId = storeInfoObj.getString("storeId");
        privilegeInfoObj.put("storeId",storeId);
        ResponseEntity<String> privilegeGroup = super.callCenterService(restTemplate,pd,"",
                ServiceConstant.SERVICE_API_URL+"/api/query.user.privilege?userId="+privilegeInfoObj.getString("staffId")+"&domain="+storeInfoObj.getString("storeTypeCd") , HttpMethod.GET);
        if(privilegeGroup.getStatusCode() != HttpStatus.OK){
            return privilegeGroup;
        }
        JSONObject resultObj = JSONObject.parseObject(privilegeGroup.getBody().toString());
        JSONArray privileges = resultObj.getJSONArray("privileges");
        JSONObject resObj = new JSONObject();
        resObj.put("datas",privileges);
        return new ResponseEntity<String>(resObj.toJSONString(),HttpStatus.OK);
    }
    public RestTemplate getRestTemplate() {
        return restTemplate;
    }