瀏覽代碼

完成删除权限功能

吴学文 7 年之前
父節點
當前提交
da88500096

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

@@ -157,6 +157,24 @@ public class PrivilegeApi extends BaseController {
     }
 
 
+    @RequestMapping(path = "/deleteStaffPrivilegeOrPrivilegeGroup",method= RequestMethod.POST)
+    @ApiOperation(value="删除用户权限或权限组", notes="test: 返回 200 表示服务受理成功,其他表示失败")
+    @ApiImplicitParam(paramType="query", name = "privilegeInfo", value = "权限信息", required = true, dataType = "String")
+    public ResponseEntity<String> deleteStaffPrivilegeOrPrivilegeGroup(@RequestBody String privilegeInfo,HttpServletRequest request){
+        ResponseEntity<String> responseEntity = null;
+
+        try {
+            responseEntity = privilegeSMOImpl.deleteStaffPrivilegeOrPrivilegeGroup(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;

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

@@ -74,4 +74,11 @@ public interface IPrivilegeDAO {
      * @return
      */
     public boolean addUserPrivilege(Map info);
+
+    /**
+     * 删除用户权限
+     * @param info
+     * @return
+     */
+    public boolean deleteUserPrivilege(Map info);
 }

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

@@ -158,5 +158,19 @@ public class PrivilegeDAOImpl extends BaseServiceDao implements IPrivilegeDAO {
         return true;
     }
 
+    /**
+     * 删除用户权限
+     * @param info
+     * @return
+     */
+    @Override
+    public boolean deleteUserPrivilege(Map info) {
+        int saveFlag = sqlSessionTemplate.insert("privilegeDAOImpl.deleteUserPrivilege",info);
+        if(saveFlag < 1){
+            throw new DAOException(ResponseConstant.RESULT_CODE_INNER_ERROR,"删除权限信息失败:"+ JSONObject.toJSONString(info));
+        }
+        return true;
+    }
+
 
 }

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

@@ -61,4 +61,14 @@ public interface IPrivilegeSMO {
      */
     public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(String privilegeInfo);
 
+    /**
+     * 删除员工权限
+     * @param privilegeInfo
+     * @return
+     */
+    public ResponseEntity<String> deleteStaffPrivilegeOrPrivilegeGroup(String privilegeInfo);
+
+
+
+
 }

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

@@ -203,6 +203,56 @@ public class PrivilegeSMOImpl implements IPrivilegeSMO {
         return new ResponseEntity<String>("成功", HttpStatus.OK);
     }
 
+    /**
+     * 删除员工权限
+     * @param privilegeInfo
+     * @return
+     */
+    @Override
+    public ResponseEntity<String> deleteStaffPrivilegeOrPrivilegeGroup(String privilegeInfo) {
+        JSONObject privilegeObj = validateDeleteStaffPrivilegeData(privilegeInfo);
+        //根据权限组ID和商户ID查询是否有数据
+        String pFlag = privilegeObj.getString("pFlag");//权限组
+        privilegeObj.put("privilegeFlag","1".equals(pFlag)?"1":"0");
+        List<Map> privilegeGroups = privilegeDAOImpl.queryUserPrivilege(privilegeObj);
+        Assert.isNotNull(privilegeGroups, "不存在该权限" + privilegeInfo);
+
+        if (!privilegeDAOImpl.deleteUserPrivilege(privilegeObj)) {
+            return new ResponseEntity<String>("添加权限失败", HttpStatus.INTERNAL_SERVER_ERROR);
+        }
+
+        return new ResponseEntity<String>("成功", HttpStatus.OK);
+    }
+
+    /**
+     * 数据校验
+     * @param privilegeInfo
+     * @return
+     */
+    private JSONObject validateDeleteStaffPrivilegeData(String privilegeInfo) {
+
+        Assert.isJsonObject(privilegeInfo, "请求报文不是有效的json格式");
+
+        Assert.jsonObjectHaveKey(privilegeInfo, "pId", "请求报文中未包含pId节点");
+
+        Assert.jsonObjectHaveKey(privilegeInfo, "pFlag", "请求报文中未包含pFlag节点");
+
+        Assert.jsonObjectHaveKey(privilegeInfo, "userId", "请求报文中未包含userId节点");
+
+        Assert.jsonObjectHaveKey(privilegeInfo, "storeId", "请求报文中未包含storeId节点");
+
+        Assert.jsonObjectHaveKey(privilegeInfo, "storeTypeCd", "请求报文中未包含storeTypeCd节点");
+
+        JSONObject privilegeObj = JSONObject.parseObject(privilegeInfo);
+        String pFlag = privilegeObj.getString("pFlag");//权限组
+        if("1".equals(pFlag)){
+            validatePrivilegeGroup(privilegeObj);
+            return privilegeObj;
+        }
+        validatePrivilege(privilegeObj);
+        return privilegeObj;
+    }
+
     private JSONObject validateData(String privilegeInfo) {
 
         Assert.isJsonObject(privilegeInfo, "请求报文不是有效的json格式");

+ 40 - 0
WebService/src/main/java/com/java110/web/components/staff/DeleteStaffPrivilegeComponent.java

@@ -0,0 +1,40 @@
+package com.java110.web.components.staff;
+
+
+import com.java110.core.context.IPageData;
+import com.java110.web.smo.IStaffServiceSMO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.stereotype.Component;
+
+import java.awt.geom.IllegalPathStateException;
+
+@Component("deleteStaffPrivilege")
+public class DeleteStaffPrivilegeComponent {
+
+
+    @Autowired
+    private IStaffServiceSMO staffServiceSMOImpl;
+
+    public ResponseEntity<String> delete(IPageData pd){
+
+        ResponseEntity<String> responseEntity = null;
+        try{
+            responseEntity =  staffServiceSMOImpl.deleteStaffPrivilege(pd);
+        }catch (Exception e){
+            responseEntity = new ResponseEntity<String>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
+        }finally {
+            return responseEntity;
+        }
+    }
+
+
+    public IStaffServiceSMO getStaffServiceSMOImpl() {
+        return staffServiceSMOImpl;
+    }
+
+    public void setStaffServiceSMOImpl(IStaffServiceSMO staffServiceSMOImpl) {
+        this.staffServiceSMOImpl = staffServiceSMOImpl;
+    }
+}

+ 7 - 0
WebService/src/main/java/com/java110/web/smo/IStaffServiceSMO.java

@@ -61,4 +61,11 @@ public interface IStaffServiceSMO {
      * @return
      */
     public ResponseEntity<String> addStaffPrivilegeOrPrivilegeGroup(IPageData pd);
+
+    /**
+     * 删除权限
+     * @param pd
+     * @return
+     */
+    public ResponseEntity<String> deleteStaffPrivilege(IPageData pd);
 }

+ 25 - 0
WebService/src/main/java/com/java110/web/smo/impl/StaffServiceSMOImpl.java

@@ -236,6 +236,31 @@ public class StaffServiceSMOImpl extends BaseComponentSMO implements IStaffServi
         return responseEntity;
     }
 
+    @Override
+    public ResponseEntity<String> deleteStaffPrivilege(IPageData pd) {
+        ResponseEntity<String> responseEntity = null;
+        Assert.jsonObjectHaveKey(pd.getReqData(),"userId","请求报文格式错误或未包含用户ID信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(),"pId","请求报文格式错误或未包含权限ID信息");
+        Assert.jsonObjectHaveKey(pd.getReqData(),"pFlag","请求报文格式错误");
+        JSONObject _paramObj = JSONObject.parseObject(pd.getReqData());
+        responseEntity = super.getStoreInfo(pd,restTemplate);
+        if(responseEntity.getStatusCode() != HttpStatus.OK){
+            return responseEntity;
+        }
+        Assert.jsonObjectHaveKey(responseEntity.getBody().toString(),"storeId","根据用户ID查询商户ID失败,未包含storeId节点");
+
+        String storeId = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeId");
+        String storeTypeCd = JSONObject.parseObject(responseEntity.getBody().toString()).getString("storeTypeCd");
+        _paramObj.put("storeId",storeId);
+        _paramObj.put("storeTypeCd",storeTypeCd);
+
+        //修改用户信息
+        responseEntity = this.callCenterService(restTemplate,pd,_paramObj.toJSONString(),
+                ServiceConstant.SERVICE_API_URL+"/api/delete.privilege.userPrivilege",
+                HttpMethod.POST);
+
+        return responseEntity;    }
+
     /**
      * 修改员工 数据校验
      * @param pd

+ 19 - 0
WebService/src/main/resources/components/delete-staff-privilege/deleteStaffPrivilege.html

@@ -0,0 +1,19 @@
+<div class="modal fade" id="deleteStaffPrivilegeModel" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <h5 class="modal-title" id="exampleModalLabel">请确认您的操作!</h5>
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
+                    <span aria-hidden="true">&times;</span>
+                </button>
+            </div>
+            <div class="modal-body">
+                <tr align="center"><th>{{deleteStaffPrivilegeInfo.deleteMessage}}</th></tr>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-secondary" data-dismiss="modal" v-on:click="closeDeleteStaffPrivilegeModel()">点错了</button>
+                <button type="button" class="btn btn-primary" v-on:click="deleteStaffPrivilege()">确认删除</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 70 - 0
WebService/src/main/resources/components/delete-staff-privilege/deleteStaffPrivilege.js

@@ -0,0 +1,70 @@
+(function(vc,vm){
+
+    vc.extends({
+        data:{
+            deleteStaffPrivilegeInfo:{
+                _currentStaffId:'',
+                _currentPId:'',
+                _currentPFlag:'',
+                deleteMessage:'',
+            }
+        },
+         _initMethod:function(){
+
+         },
+         _initEvent:function(){
+             vc.on('deleteStaffPrivilege','openStaffPrivilegeModel',function(_params){
+
+                vc.component.deleteStaffPrivilegeInfo._currentStaffId = _params.staffId;
+                vc.component.deleteStaffPrivilegeInfo._currentPId = _params._pId;
+                if(_params.pgId == '-1'){
+
+                   vc.component.deleteStaffPrivilegeInfo._currentPFlag = '0';
+                   vc.component.deleteStaffPrivilegeInfo.deleteMessage = '确定是否删除当前权限';
+                }else{
+                   vc.component.deleteStaffPrivilegeInfo._currentPId = _params.pgId;
+                   vc.component.deleteStaffPrivilegeInfo._currentPFlag = '1';
+                    vc.component.deleteStaffPrivilegeInfo.deleteMessage = '您删除是权限组下权限,会删除整个权限组权限,确认是否删除';
+
+                }
+                $('#deleteStaffPrivilegeModel').modal('show');
+
+            });
+        },
+        methods:{
+            deleteStaffPrivilege:function(){
+                var param = {
+                    userId:vc.component.deleteStaffPrivilegeInfo._currentStaffId,
+                    pId:vc.component.deleteStaffPrivilegeInfo._currentPId,
+                    pFlag:vc.component.deleteStaffPrivilegeInfo._currentPFlag,
+                }
+                vc.http.post(
+                    'deleteStaffPrivilege',
+                    'delete',
+                    JSON.stringify(vc.component.deleteStaffInfo),
+                    {
+                        emulateJSON:true
+                     },
+                     function(json,res){
+                        //vm.menus = vm.refreshMenuActive(JSON.parse(json),0);
+                        if(res.status == 200){
+                            //关闭model
+                            $('#deleteStaffModel').modal('hide');
+                            vc.component.$emit('deleteStaff_reload_event',{});
+                            return ;
+                        }
+                        vc.component.deleteStaffInfo.errorInfo = json;
+                     },
+                     function(errInfo,error){
+                        console.log('请求失败处理');
+
+                        vc.component.deleteStaffInfo.errorInfo = errInfo;
+                     });
+            },
+            closeDeleteStaffPrivilegeModel:function(){
+                $('#deleteStaffPrivilegeModel').modal('hide');
+            }
+        }
+    });
+
+})(window.vc,window.vc.component);

+ 2 - 0
WebService/src/main/resources/components/staff-privilege/staffPrivilege.html

@@ -58,4 +58,6 @@
             </div>
         </div>
     </div>
+    <!-- 删除员工权限 -->
+    <vc:create name="deleteStaffPrivilege"></vc:create>
 </div>

+ 5 - 2
WebService/src/main/resources/components/staff-privilege/staffPrivilege.js

@@ -3,7 +3,8 @@
     vc.extends({
         data:{
             staffPrivilegeInfo:{
-                privileges:[]
+                privileges:[],
+                _currentStaffId:'',
             }
         },
         _initMethod:function(){
@@ -16,6 +17,7 @@
         },
         methods:{
             _loadStaffPrivileges:function(_param){
+                vc.component.staffPrivilegeInfo._currentStaffId=_param.staffId;
                 var param = {
                     params:{
                         staffId:_param.staffId
@@ -34,7 +36,8 @@
                           });
             },
             _openDeleteStaffPrivilegeModel:function(_staffPrivilege){
-
+                _staffPrivilege.staffId = vc.component.staffPrivilegeInfo._currentStaffId;
+                vc.emit('deleteStaffPrivilege','openStaffPrivilegeModel',_staffPrivilege);
             }
         }
     });

+ 1 - 1
docs/_coverpage.md

@@ -1,6 +1,6 @@
 ![logo](favicon.ico)
 
-# HC小区管理系统<small>0.0.6</small>
+# HC小区管理系统<small>0.0.6基础稳定版</small>
 
 > hc小区管理系统是为物业企业打造的智慧物业综合管理平台.
 

+ 5 - 0
docs/_sidebar.md

@@ -11,6 +11,7 @@
   * [用户校验登录](api/user/checkLogin.md)
   * [用户退出登录](api/user/logout.md)
   * [保存商户](api/store/saveStore.md)
+  * [删除用户权限](api/privilege/deleteStaffPrivilege.md)
 
 * 服务端接口协议
 
@@ -31,3 +32,7 @@
 * 工具类接口
 
   * [刷新缓存](api/utils/clearCache)
+
+* 二次开发教程
+
+  * [添加服务](develop/addService)

+ 63 - 0
docs/api/privilege/deleteStaffPrivilege.md

@@ -0,0 +1,63 @@
+
+
+**1\. 删除员工权限**
+###### 接口功能
+> 用户通过web端或APP删除员工权限接口
+
+###### URL
+> [http://api.java110.com:8008/api/delete.privilege.userPrivilege](http://api.java110.com:8008/api/delete.privilege.userPrivilege)
+
+###### 支持格式
+> JSON
+
+###### HTTP请求方式
+> POST
+
+###### 请求参数(header部分)
+|参数名称|约束|类型|长度|描述|取值说明|
+| :-: | :-: | :-: | :-: | :-: | :-:|
+|app_id|1|String|30|应用ID|Api服务分配                      |
+|transaction_id|1|String|30|请求流水号|不能重复 1000000000+YYYYMMDDhhmmss+6位序列 |
+|sign|1|String|-|签名|请参考签名说明|
+|req_time|1|String|-|请求时间|YYYYMMDDhhmmss|
+
+###### 请求参数(body部分)
+|参数名称|约束|类型|长度|描述|取值说明|
+| :-: | :-: | :-: | :-: | :-: | :-: |
+|pId|1|String|30|权限ID或权限组ID|-|
+|pFlag|1|String|4|权限标志|1表示权限组 0表示权限|
+|userId|1|String|30|用户ID|用户ID|
+|storeId|1|String|30|用户所在的商户ID|用户所在的商户ID|
+|storeTypeCd|?|String|12|用户所在的商户类别|-|
+
+###### 返回协议
+
+当http返回状态不为200 时请求处理失败 body内容为失败的原因
+
+当http返回状态为200时请求处理成功,body内容为返回内容,
+
+
+
+###### 举例
+> 地址:[http://api.java110.com:8008/api/delete.privilege.userPrivilege](http://api.java110.com:8008/api/delete.privilege.userPrivilege)
+
+``` javascript
+请求头信息:
+Content-Type:application/json
+USER_ID:1234
+APP_ID:8000418002
+TRANSACTION_ID:10029082726
+REQ_TIME:20181113225612
+SIGN:aabdncdhdbd878sbdudn898
+请求报文:
+{
+     "pId": "500201904001",
+     "pFlag": "0",
+     "userId": "302019040332500002",
+     "storeId": "302019040332500002",
+     "storeTypeCd": "302019040332500002"
+}
+返回报文:
+成功
+
+```

+ 11 - 0
docs/develop/addService.md

@@ -0,0 +1,11 @@
+## 添加服务表
+
+>  insert into c_service(service_id,service_code,business_type_cd,name,seq,is_instance,url,method,provide_app_id)
+>  values('78','delete.privilege.userPrivilege','API','删除用户权限','1','NT','http://order-service/privilegeApi/deleteStaffPrivilegeOrPrivilegeGroup','POST','8000418002');
+
+## 服务绑定应用
+
+> insert into c_route(app_id,service_id,order_type_cd,invoke_model)
+> values('8000418004','78','Q','S');
+
+

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

@@ -132,4 +132,20 @@
         ]]>
     </insert>
 
+    <!-- 删除权限组 -->
+    <update id="deleteUserPrivilege" parameterType="Map">
+        update p_privilege_user ppu set ppu.status_cd = '1'
+        where 1=1
+        <if test="pId != null and pId != ''">
+            and ppu.p_id= #{pId}
+        </if>
+        <if test="privilegeFlag != null and privilegeFlag != ''">
+            and ppu.privilege_flag = #{privilegeFlag}
+        </if>
+        <if test="userId != null and userId != ''">
+            and ppu.user_id = #{userId}
+        </if>
+        and ppu.status_cd = '0'
+    </update>
+
 </mapper>