From 283a15a301d412dce4cd58cb6cd87266da8c1262 Mon Sep 17 00:00:00 2001 From: hanshaofeng Date: Thu, 24 Nov 2016 15:52:08 +0800 Subject: [PATCH] permission2 --- .../lyms/platform/biz/BasicConfigServiceTest.java | 2 +- .../service/impl/OrganizationServiceImpl.java | 30 +++++++++++++++++++--- .../operate/web/facade/AccessPermissionFacade.java | 1 + 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java index 4f77d34..9a731f2 100644 --- a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/BasicConfigServiceTest.java @@ -45,7 +45,7 @@ public class BasicConfigServiceTest { try { List list = mongoTemplate.find(new Query(),DataPermissionsModel.class); for (DataPermissionsModel model:list) { - System.out.println(JsonUtil.obj2Str(model)); + System.out.println(JsonUtil.obj2Str(model.getData().keySet())); } } catch (Exception e) { e.printStackTrace(); diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java index 07044f3..5fabf58 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/OrganizationServiceImpl.java @@ -4,6 +4,7 @@ import com.lyms.platform.beans.AddressBean; import com.lyms.platform.biz.dal.ISyncDataDao; import com.lyms.platform.biz.service.DataPermissionService; import com.lyms.platform.common.enums.OrganizationTypeEnum; +import com.lyms.platform.common.enums.PermissionTypeEnums; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.exception.BusinessException; import com.lyms.platform.common.utils.JsonUtil; @@ -21,7 +22,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; @Service("organizationServiceImpl1") public class OrganizationServiceImpl extends DataAccessLayerService implements OrganizationService { @@ -36,8 +39,10 @@ public class OrganizationServiceImpl extends DataAccessLayerService implements O private DataPermissionService dataPermissionService; @Override - public Integer addOrganization(Organization obj) { masterOrganizationMapper.addOrganization(obj); + public Integer addOrganization(Organization obj) { + masterOrganizationMapper.addOrganization(obj); iSyncDataDao.addSyncData("MysqlAdd", obj, obj.getId().toString()); + rebuildDataPermissions(null); return obj.getId(); } @@ -45,12 +50,14 @@ public class OrganizationServiceImpl extends DataAccessLayerService implements O public void updateOrganization(Organization obj) { masterOrganizationMapper.updateOrganization(obj); iSyncDataDao.addSyncData("MysqlUpdate", obj, obj.getId().toString()); + rebuildDataPermissions(null); } @Override public void deleteOrganization(Integer id) { masterOrganizationMapper.deleteOrganization(id); iSyncDataDao.addSyncData("MysqlDel", new Organization(), id.toString()); + rebuildDataPermissions(null); } @Override @@ -152,7 +159,12 @@ public class OrganizationServiceImpl extends DataAccessLayerService implements O for (DataPermissionsModel model : list) { if (StringUtils.isNotBlank(model.getAreaPermission())) { List addressBeanList = JsonUtil.toList(model.getAreaPermission(), AddressBean.class); - List organizationIds = new ArrayList<>(); + Set organizationIds = null; + if (model.getData() != null) { + organizationIds = model.getData().keySet(); + } else { + organizationIds = new HashSet<>(); + } for (AddressBean addressBean:addressBeanList) { OrganizationQuery query = new OrganizationQuery(); query.setProvinceId(addressBean.getP()); @@ -160,8 +172,20 @@ public class OrganizationServiceImpl extends DataAccessLayerService implements O query.setAreaId(addressBean.getA()); query.setStreetId(addressBean.getS()); query.setYn(YnEnums.YES.getId()); -// query.set + List organizationList = masterOrganizationMapper.queryOrganization(query); + for (Organization o:organizationList) { + if (!organizationIds.contains(o.getId().toString())) { + organizationIds.add(o.getId().toString()); + } + } + } + model.getData().clear(); + DataPermissionsModel.SimplePermission permission = new DataPermissionsModel.SimplePermission(); + permission.setType(PermissionTypeEnums.ALL_HOSPITAL.getId()); + for (String id:organizationIds) { + model.addOnePer(id, permission); } + dataPermissionService.updatePermission(model); } } } catch (Exception e) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java index 765052b..ced8af0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java @@ -78,6 +78,7 @@ public class AccessPermissionFacade { dataPermissionsModel.setAreaPermission(accessPermissionAddRequest.getAreaPermission()); dataPermissionsModel.setUserId(Integer.valueOf(accessPermissionAddRequest.getUserId())); dataPermissionService.addOrUpdatePermission(dataPermissionsModel); + organizationService.rebuildDataPermissions(dataPermissionsModel.getUserId()); return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功."); } -- 1.8.3.1