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 683a6af..701f369 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 @@ -1,8 +1,9 @@ package com.lyms.platform.biz; import java.text.SimpleDateFormat; -import java.util.Date; +import java.util.*; +import com.lyms.platform.pojo.DataPermissionsModel; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; @@ -13,6 +14,7 @@ import com.lyms.platform.pojo.BabyModel; import com.lyms.platform.pojo.PuerperaModel; import com.lyms.platform.pojo.VisitModel; import com.lyms.platform.query.PuerperaModelQuery; +import org.springframework.data.mongodb.core.MongoTemplate; public class BasicConfigServiceTest { public static void main(String[] args) throws Exception { @@ -67,9 +69,44 @@ public class BasicConfigServiceTest { for (PuerperaModel users2 : users) { System.out.println(users2.toString()); }*/ - addBaby(applicationContext); + addDataPermission(applicationContext); } - + + public static void addDataPermission(ApplicationContext applicationContext){ + MongoTemplate mongoTemplate + =(MongoTemplate)applicationContext.getBean("mongoTemplate"); + DataPermissionsModel DataPermissionsModel + =new DataPermissionsModel(); + DataPermissionsModel.setId("1"); + com.lyms.platform.pojo.DataPermissionsModel.SimplePermission SimplePermission =new DataPermissionsModel.SimplePermission(); + SimplePermission.setType(1); + + + com.lyms.platform.pojo.DataPermissionsModel.SimplePermission SimplePermission1 =new DataPermissionsModel.SimplePermission(); + List dept=new ArrayList<>(); + dept.add("xxxx1"); + dept.add("xxxx2"); + SimplePermission1.setDeptid(dept); + SimplePermission1.setType(2); + + com.lyms.platform.pojo.DataPermissionsModel.SimplePermission SimplePermission2 =new DataPermissionsModel.SimplePermission(); + List dept1=new ArrayList<>(); + dept1.add("xxxx1"); + dept1.add("xxxx2"); + SimplePermission2.setType(1); + + com.lyms.platform.pojo.DataPermissionsModel.SimplePermission SimplePermission3 =new DataPermissionsModel.SimplePermission(); + SimplePermission3.setType(1); + + Map date= new HashMap<>(); + date.put("xxxxxx",SimplePermission); + date.put("xxxxxx1",SimplePermission1); + date.put("xxxxxx2",SimplePermission2); + date.put("xxxxxx3",SimplePermission3); + DataPermissionsModel.setData(date); + mongoTemplate.save(DataPermissionsModel); + } + public static void addVisit(ApplicationContext applicationContext){ VisitModel visitModel = new VisitModel(); diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IDataPermissionDao.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IDataPermissionDao.java new file mode 100644 index 0000000..7a9d1c2 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/IDataPermissionDao.java @@ -0,0 +1,23 @@ +package com.lyms.platform.biz.dal; + +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.pojo.DataPermissionsModel; +import com.lyms.platform.pojo.VisitModel; + +import java.util.List; + +public interface IDataPermissionDao { + + public DataPermissionsModel addPermission(DataPermissionsModel obj); + + public void updatePermission(DataPermissionsModel obj, String id); + + public void deletePermission(String id); + + public DataPermissionsModel getPermission(String id); + + public List queryPermission(MongoQuery query); + + public Page findPage(MongoQuery query); +} diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/DataPermissionDaoImpl.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/DataPermissionDaoImpl.java new file mode 100644 index 0000000..8af108e --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/dal/impl/DataPermissionDaoImpl.java @@ -0,0 +1,42 @@ +package com.lyms.platform.biz.dal.impl; + +import com.lyms.platform.biz.dal.IDataPermissionDao; +import com.lyms.platform.common.dao.BaseMongoDAOImpl; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.dao.operator.Page; +import com.lyms.platform.pojo.DataPermissionsModel; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Created by Administrator on 2016/3/29 0029. + */ +@Repository("dataPermissionDao") +public class DataPermissionDaoImpl extends BaseMongoDAOImpl implements IDataPermissionDao { + public DataPermissionsModel addPermission(DataPermissionsModel obj){ + return save(obj); + } + + public void updatePermission(DataPermissionsModel obj, String id){ + update(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery(), obj); + } + + public void deletePermission(String id){ + delete(new MongoQuery(new MongoCondition("id", id, MongoOper.IS)).convertToMongoQuery()); + } + + public DataPermissionsModel getPermission(String id){ + return findById(id); + } + + public List queryPermission(MongoQuery query){ + return find(query.convertToMongoQuery()); + } + + public Page findPage(MongoQuery query){ + return findPage(query.convertToMongoQuery()); + } +} \ No newline at end of file diff --git a/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DataPermissionService.java b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DataPermissionService.java new file mode 100644 index 0000000..03074f4 --- /dev/null +++ b/platform-biz-patient-service/src/main/java/com/lyms/platform/biz/service/DataPermissionService.java @@ -0,0 +1,46 @@ +package com.lyms.platform.biz.service; + +import com.lyms.platform.biz.dal.IDataPermissionDao; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.pojo.DataPermissionsModel; +import com.lyms.platform.query.DataPermissionsModelQuery; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Sort; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * + * 数据访问权限模型 + * + * Created by Administrator on 2016/3/29 0029. + */ +@Service +public class DataPermissionService { + @Autowired + private IDataPermissionDao iDataPermissionDao; + + + public void addPermission(DataPermissionsModel obj) { + iDataPermissionDao.addPermission(obj); + } + + public void updatePermission(DataPermissionsModel obj) { + iDataPermissionDao.updatePermission(obj, obj.getId() + ""); + } + + public List queryPermission(DataPermissionsModelQuery visitQuery) { + MongoQuery query = visitQuery.convertToQuery(); + + return iDataPermissionDao.queryPermission(query.addOrder(Sort.Direction.ASC, "id")); + } + public void addOrUpdatePermission(DataPermissionsModel obj){ + if(StringUtils.isEmpty(obj.getId())){ + addPermission(obj); + }else { + updatePermission(obj); + } + } +} \ No newline at end of file diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Permissions.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Permissions.java index 354f168..533ebbf 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Permissions.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Permissions.java @@ -19,6 +19,15 @@ public class Permissions { private Date modified; private Date created; private Integer ismenu; + private int weight; + + public int getWeight() { + return weight; + } + + public void setWeight(int weight) { + this.weight = weight; + } public Integer getId() { return id; diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java index f6752cd..99bc759 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Roles.java @@ -2,12 +2,48 @@ package com.lyms.platform.permission.model; import java.util.Date; -public class Roles {private Integer id;private Integer type;private String name;private Integer publishId;private String publishName;private Integer yn;private Integer enable;private Date modified;private Date created;private String remarks;private String shortCode; +public class Roles { + private Integer id; + private Integer type; + private String name; + private Integer publishId; + private String publishName; + private Integer yn; + private Integer enable; + private Date modified; + private Date created; + private String remarks; + private String shortCode; + private String hospitalid; + private Integer permissiontype; -public Integer getId() { - return id; + public String getHospitalid() { + return hospitalid; } + public void setHospitalid(String hospitalid) { + this.hospitalid = hospitalid; + } + + public Integer getPermissiontype() { + return permissiontype; + } + + public void setPermissiontype(Integer permissiontype) { + this.permissiontype = permissiontype; + } + + public String getShortCode() { + return shortCode; + } + + public void setShortCode(String shortCode) { + this.shortCode = shortCode; + } + + public Integer getId() { + return id; + } public void setId(Integer id) { @@ -15,111 +51,101 @@ public Integer getId() { } -public Integer getType() { + public Integer getType() { return type; } - public void setType(Integer type) { this.type = type; } -public String getName() { + public String getName() { return name; } - public void setName(String name) { this.name = name; } -public Integer getPublishId() { + public Integer getPublishId() { return publishId; } - public void setPublishId(Integer publishId) { this.publishId = publishId; } -public String getPublishName() { + public String getPublishName() { return publishName; } - public void setPublishName(String publishName) { this.publishName = publishName; } -public Integer getYn() { + public Integer getYn() { return yn; } - public void setYn(Integer yn) { this.yn = yn; } -public Integer getEnable() { + public Integer getEnable() { return enable; } - public void setEnable(Integer enable) { this.enable = enable; } -public Date getModified() { + public Date getModified() { return modified; } - public void setModified(Date modified) { this.modified = modified; } -public Date getCreated() { + public Date getCreated() { return created; } - public void setCreated(Date created) { this.created = created; } -public String getRemarks() { + public String getRemarks() { return remarks; } - public void setRemarks(String remarks) { this.remarks = remarks; } -public String getShortcode() { + public String getShortcode() { return shortCode; } - public void setShortcode(String shortCode) { this.shortCode = shortCode; diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java index 7bb5a7b..826d65f 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/Users.java @@ -2,190 +2,190 @@ package com.lyms.platform.permission.model; import java.util.Date; -public class Users {private Integer id;private Integer logincenterId;private Integer type;private Integer orgId;private Integer deptId;private String name;private String account;private String pwd;private String phone;private Integer publishId;private String publishName;private Integer yn;private Integer enable;private Date modified;private Date created;private String remarks;private Date lastLoginTime; - -public Integer getId() { +public class Users { + private Integer id; + private Integer logincenterId; + private Integer type; + private Integer orgId; + private Integer deptId; + private String name; + private String account; + private String pwd; + private String phone; + private Integer publishId; + private String publishName; + private Integer yn; + private Integer enable; + private Date modified; + private Date created; + private String remarks; + private Date lastLoginTime; + + public Integer getId() { return id; } - public void setId(Integer id) { this.id = id; } -public Integer getLogincenterId() { + public Integer getLogincenterId() { return logincenterId; } - public void setLogincenterId(Integer logincenterId) { this.logincenterId = logincenterId; } -public Integer getType() { + public Integer getType() { return type; } - public void setType(Integer type) { this.type = type; } -public Integer getOrgId() { + public Integer getOrgId() { return orgId; } - public void setOrgId(Integer orgId) { this.orgId = orgId; } -public Integer getDeptId() { + public Integer getDeptId() { return deptId; } - public void setDeptId(Integer deptId) { this.deptId = deptId; } -public String getName() { + public String getName() { return name; } - public void setName(String name) { this.name = name; } -public String getAccount() { + public String getAccount() { return account; } - public void setAccount(String account) { this.account = account; } -public String getPwd() { + public String getPwd() { return pwd; } - public void setPwd(String pwd) { this.pwd = pwd; } -public String getPhone() { + public String getPhone() { return phone; } - public void setPhone(String phone) { this.phone = phone; } -public Integer getPublishId() { + public Integer getPublishId() { return publishId; } - public void setPublishId(Integer publishId) { this.publishId = publishId; } -public String getPublishName() { + public String getPublishName() { return publishName; } - public void setPublishName(String publishName) { this.publishName = publishName; } -public Integer getYn() { + public Integer getYn() { return yn; } - public void setYn(Integer yn) { this.yn = yn; } -public Integer getEnable() { + public Integer getEnable() { return enable; } - public void setEnable(Integer enable) { this.enable = enable; } -public Date getModified() { + public Date getModified() { return modified; } - public void setModified(Date modified) { this.modified = modified; } -public Date getCreated() { + public Date getCreated() { return created; } - public void setCreated(Date created) { this.created = created; } -public String getRemarks() { + public String getRemarks() { return remarks; } - public void setRemarks(String remarks) { this.remarks = remarks; } -public Date getLastLoginTime() { + public Date getLastLoginTime() { return lastLoginTime; } - public void setLastLoginTime(Date lastLoginTime) { this.lastLoginTime = lastLoginTime; diff --git a/platform-common/src/main/java/com/lyms/platform/common/base/ExceptionHandlerController.java b/platform-common/src/main/java/com/lyms/platform/common/base/ExceptionHandlerController.java index b276176..31e5874 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/base/ExceptionHandlerController.java +++ b/platform-common/src/main/java/com/lyms/platform/common/base/ExceptionHandlerController.java @@ -130,7 +130,8 @@ public class ExceptionHandlerController { Map map = new HashMap(); List fieldErrors = bindingResult.getFieldErrors(); for (org.springframework.validation.FieldError fieldError : fieldErrors) { - map.put("errorcode", fieldError); + map.put("errorcode", ErrorCodeConstants.PARAMETER_ERROR); + map.put("errormsg",fieldError.getDefaultMessage()); break; } return map; diff --git a/platform-common/src/main/java/com/lyms/platform/common/enums/PermissionTypeEnums.java b/platform-common/src/main/java/com/lyms/platform/common/enums/PermissionTypeEnums.java new file mode 100644 index 0000000..343307e --- /dev/null +++ b/platform-common/src/main/java/com/lyms/platform/common/enums/PermissionTypeEnums.java @@ -0,0 +1,50 @@ +package com.lyms.platform.common.enums; + +/** + * + * 权限类型枚举定义 + * + * Created by Administrator on 2016/3/29 0029. + */ +public enum PermissionTypeEnums { + + ONLY_SELF("仅自己",1),THEIR_DEPARTMENT("查看本科室患者数据",2),ALL_DEPARTMENT("全科室患者数据",3),ALL_HOSPITAL("全院患者数据",4); + + public static enum Type{ + ADMIN(1),USER(2); + private Type(int id){ + this.id=id; + } + private int id; + + public int getId() { + return id; + } + } + + + private PermissionTypeEnums(String title,int id){ + this.id=id; + this.title=title; + } + + public static PermissionTypeEnums getEnumsById(int id){ + for(PermissionTypeEnums permissionTypeEnums:values()){ + if(id==permissionTypeEnums.getId()){ + return permissionTypeEnums; + } + } + return null; + } + + private int id; + private String title; + + public int getId() { + return id; + } + + public String getTitle() { + return title; + } +} \ No newline at end of file diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/Assert.java b/platform-common/src/main/java/com/lyms/platform/common/utils/Assert.java index a36756a..29a3d1f 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/Assert.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/Assert.java @@ -1,5 +1,6 @@ package com.lyms.platform.common.utils; +import com.lyms.platform.common.constants.ErrorCodeConstants; import com.lyms.platform.common.exception.BusinessException; /** @@ -20,7 +21,7 @@ public class Assert { public static void notNull(Object object, String message) { if (object == null) { - throw new BusinessException(); + throw new BusinessException(ErrorCodeConstants.BUSINESS_ERROR+"",message); } } } diff --git a/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java b/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java new file mode 100644 index 0000000..3389bfc --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/pojo/DataPermissionsModel.java @@ -0,0 +1,82 @@ +package com.lyms.platform.pojo; + +import com.lyms.platform.common.enums.PermissionTypeEnums; +import com.lyms.platform.common.exception.BusinessException; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * 数据权限存储模型 + * + * Created by Administrator on 2016/3/29 0029. + */ +@Document(collection = "lyms_data_permission") +public class DataPermissionsModel extends BaseModel { + // + @Id + private String id; + + private Integer userId; + + private Map data=new HashMap(); + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public Map getData() { + return data; + } + + public void setData(Map data) { + this.data = data; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + //增加一条医院的权限 + public void addOnePer(String orgId,SimplePermission permission){ + data.put(orgId,permission); + } + + public static class SimplePermission { + //1 自己 2 自己科室 3 全部科室 4 + private int type=PermissionTypeEnums.ONLY_SELF.getId(); + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + private List deptid; + + public List getDeptid() { + return deptid; + } + + public void setDeptid(List deptid) { + if(PermissionTypeEnums.ONLY_SELF.getId() ==type){ + return; + } + this.deptid = deptid; + } + } +} \ No newline at end of file diff --git a/platform-dal/src/main/java/com/lyms/platform/query/DataPermissionsModelQuery.java b/platform-dal/src/main/java/com/lyms/platform/query/DataPermissionsModelQuery.java new file mode 100644 index 0000000..9ddae88 --- /dev/null +++ b/platform-dal/src/main/java/com/lyms/platform/query/DataPermissionsModelQuery.java @@ -0,0 +1,56 @@ +package com.lyms.platform.query; + +import com.lyms.platform.common.base.IConvertToNativeQuery; +import com.lyms.platform.common.dao.BaseQuery; +import com.lyms.platform.common.dao.operator.MongoCondition; +import com.lyms.platform.common.dao.operator.MongoOper; +import com.lyms.platform.common.dao.operator.MongoQuery; +import com.lyms.platform.common.enums.PermissionTypeEnums; +import com.lyms.platform.common.result.BaseModel; +import org.springframework.data.mongodb.core.mapping.Document; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * 数据权限存储模型 + * + * Created by Administrator on 2016/3/29 0029. + */ +public class DataPermissionsModelQuery extends BaseQuery implements IConvertToNativeQuery { + // + private String id; + + private Integer userId; + + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public Integer getUserId() { + return userId; + } + + public void setUserId(Integer userId) { + this.userId = userId; + } + + public MongoQuery convertToQuery() { + + MongoCondition condition =MongoCondition.newInstance(); + if(null!=id){ + condition=MongoCondition.newInstance("id",id, MongoOper.IS); + } + if(null!=userId){ + condition=condition.and("userId",userId,MongoOper.IS); + } + return condition.toMongoQuery(); + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PermissionsController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PermissionsController.java index 094b758..295d1a6 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PermissionsController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/PermissionsController.java @@ -4,21 +4,26 @@ package com.lyms.platform.operate.web.controller; import com.lyms.platform.common.annotation.TokenRequired; import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.base.ContextHolder; +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.result.BaseResponse; +import com.lyms.platform.common.utils.Assert; import com.lyms.platform.common.utils.JsonUtil; import com.lyms.platform.common.utils.ResultUtils; +import com.lyms.platform.operate.web.facade.AccessPermissionFacade; +import com.lyms.platform.operate.web.request.AccessPermissionAddRequest; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; +import com.lyms.platform.pojo.DataPermissionsModel; import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import java.util.*; /** @@ -32,6 +37,9 @@ public class PermissionsController extends BaseController { private PermissionsService permissionsService; @Autowired private UsersService usersService; + + @Autowired + private DepartmentsService departmentsService; @Autowired private TokenService tokenService; @Autowired @@ -43,6 +51,8 @@ public class PermissionsController extends BaseController { private static String CHECK="check"; private Integer TYPE = 1; + @Autowired + private AccessPermissionFacade accessPermissionFacade; /** @@ -58,6 +68,24 @@ public class PermissionsController extends BaseController { ResultUtils.buildSuccessResultAndWrite(response, permissionses); } + @TokenRequired + @RequestMapping(value = "/accesspermissions", method = RequestMethod.GET) + public void getAccessPermission(HttpServletResponse response){ + List> list = new ArrayList<>(); + for(PermissionTypeEnums permissionTypeEnums:PermissionTypeEnums.values()){ + Map data = new HashMap(); + data.put("id",permissionTypeEnums.getId()); + data.put("title",permissionTypeEnums.getTitle()); + list.add(data); + } + ResultUtils.buildSuccessResultAndWrite(response,list); + } -} +// @TokenRequired + @RequestMapping(value = "/accesspermissions", method = RequestMethod.POST) + @ResponseBody + public BaseResponse addDataAccessPermission(@Valid AccessPermissionAddRequest accessPermissionAddRequest){ + return accessPermissionFacade.addAccessPermission(accessPermissionAddRequest); + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java index 343b140..ee3e4cd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RolesController.java @@ -6,6 +6,7 @@ import com.lyms.platform.common.base.BaseController; import com.lyms.platform.common.base.LoginContext; import com.lyms.platform.common.enums.YnEnums; import com.lyms.platform.common.exception.BusinessException; +import com.lyms.platform.common.utils.Assert; import com.lyms.platform.common.utils.ResultUtils; import com.lyms.platform.permission.model.*; import com.lyms.platform.permission.service.*; @@ -90,6 +91,26 @@ public class RolesController extends BaseController { + + + /** + * 角色绑定访问权限 + */ + @RequestMapping(value = "/roles/permissionv2", method = RequestMethod.POST) + @TokenRequired + public void updateUserPermission(HttpServletResponse response, + @RequestParam(value = "id") Integer id, + @RequestParam(value = "type") String accessPermType) { + Roles roles = rolesService.getRoles(id); + + Assert.notNull(roles,"角色为空."); + + roles.setPermissiontype(Integer.valueOf(accessPermType)); + + rolesService.updateRoles(roles); + ResultUtils.buildSuccessResultAndWrite(response); + + } /** * 创建角色 * @param response 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 new file mode 100644 index 0000000..2a55ab5 --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/AccessPermissionFacade.java @@ -0,0 +1,104 @@ +package com.lyms.platform.operate.web.facade; + +import com.lyms.platform.biz.service.DataPermissionService; +import com.lyms.platform.common.constants.ErrorCodeConstants; +import com.lyms.platform.common.enums.PermissionTypeEnums; +import com.lyms.platform.common.result.BaseResponse; +import com.lyms.platform.common.utils.Assert; +import com.lyms.platform.operate.web.request.AccessPermissionAddRequest; +import com.lyms.platform.permission.model.Roles; +import com.lyms.platform.permission.model.Users; +import com.lyms.platform.permission.service.RolesService; +import com.lyms.platform.permission.service.UserRoleMapsService; +import com.lyms.platform.permission.service.UsersService; +import com.lyms.platform.pojo.DataPermissionsModel; +import com.lyms.platform.query.DataPermissionsModelQuery; +import com.sun.xml.internal.rngom.parse.host.Base; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang.math.NumberUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * + * 数据访问权限的门面 + * + * Created by Administrator on 2016/3/30 0030. + */ +@Component +public class AccessPermissionFacade { + + @Autowired + private UsersService usersService; + @Autowired + private RolesService rolesService; + @Autowired + private UserRoleMapsService userRoleMapsService; + @Autowired + private DataPermissionService dataPermissionService; + + //修改访问权限 + public BaseResponse updateAccessPermission(){ + return new BaseResponse(); + } + + /** + * + * 增加访问权限 + * + * @param accessPermissionAddRequest + * @return + */ + public BaseResponse addAccessPermission(AccessPermissionAddRequest accessPermissionAddRequest){ + + Users users =usersService.getUsers(NumberUtils.toInt(accessPermissionAddRequest.getUserId())); + + Assert.notNull(users, "用户信息不存在."); + DataPermissionsModelQuery dataPermissionsModelQuery = new DataPermissionsModelQuery(); + dataPermissionsModelQuery.setUserId(Integer.valueOf(accessPermissionAddRequest.getUserId())); + List data =dataPermissionService.queryPermission(dataPermissionsModelQuery); + DataPermissionsModel dataPermissionsModel =null; + DataPermissionsModel.SimplePermission permission = new DataPermissionsModel.SimplePermission();; + if(CollectionUtils.isNotEmpty(data)){ + dataPermissionsModel=data.get(0); + }else{ + dataPermissionsModel=new DataPermissionsModel(); + } + + //如果院内权限 + if(PermissionTypeEnums.Type.USER.getId()==NumberUtils.toInt(accessPermissionAddRequest.getType())){ + //根据角色id拿对应的访问权限 + Roles roles = rolesService.getRoles(Integer.valueOf(accessPermissionAddRequest.getBizId())); + //角色没有绑定访问权限的情况 + if(null==roles.getPermissiontype()){ + return new BaseResponse().setErrorcode(ErrorCodeConstants.BUSINESS_ERROR).setErrormsg("角色没有绑定权限."); + } + + PermissionTypeEnums permissionTypeEnums = PermissionTypeEnums.getEnumsById(roles.getPermissiontype()); + + Assert.notNull(permissionTypeEnums, "权限类型不存在."); + + permission.setType(permissionTypeEnums.getId()); + dataPermissionsModel.addOnePer( roles.getHospitalid(), permission); + }else if(PermissionTypeEnums.Type.ADMIN.getId()==NumberUtils.toInt(accessPermissionAddRequest.getType())){ + //如果是院外的权限,就只需要设置医院的id + permission.setType(PermissionTypeEnums.ALL_HOSPITAL.getId()); + if(StringUtils.isNotEmpty(accessPermissionAddRequest.getBizId())){ + String[] hospitalIds= accessPermissionAddRequest.getBizId().split(","); + for(String id:hospitalIds){ + dataPermissionsModel.addOnePer(id, permission); + } + } + } + + dataPermissionsModel.setUserId(Integer.valueOf(accessPermissionAddRequest.getUserId())); + dataPermissionService.addOrUpdatePermission(dataPermissionsModel); + return new BaseResponse().setErrorcode(ErrorCodeConstants.SUCCESS).setErrormsg("成功."); + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java new file mode 100644 index 0000000..392b56d --- /dev/null +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/AccessPermissionAddRequest.java @@ -0,0 +1,52 @@ +package com.lyms.platform.operate.web.request; + +import com.lyms.platform.common.base.IBasicRequestConvert; +import com.lyms.platform.common.core.annotation.form.Form; +import com.lyms.platform.common.core.annotation.form.FormParam; +import com.lyms.platform.pojo.DataPermissionsModel; +import org.hibernate.validator.constraints.NotEmpty; + +import javax.validation.constraints.Pattern; + +/** + * Created by Administrator on 2016/3/29 0029. + */ +@Form +public class AccessPermissionAddRequest { + //1、管理员权限 2、用户权限 + @FormParam + @Pattern(regexp = "^[1|2]$",message = "type must 1/2.") + private String type; + //角色id或者医院id + @FormParam("bizid") + @NotEmpty + private String bizId; + //用户id/角色id + @FormParam("userid") + private String userId; + + + public String getBizId() { + return bizId; + } + + public void setBizId(String bizId) { + this.bizId = bizId; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getUserId() { + return userId; + } + + public void setUserId(String userId) { + this.userId = userId; + } +} \ No newline at end of file diff --git a/platform-operate-api/src/main/resources/spring/spring-mongodb.xml b/platform-operate-api/src/main/resources/spring/spring-mongodb.xml index 3bf24cd..8ac6fbe 100644 --- a/platform-operate-api/src/main/resources/spring/spring-mongodb.xml +++ b/platform-operate-api/src/main/resources/spring/spring-mongodb.xml @@ -12,6 +12,23 @@ + + + + + + + + + + + + + + + + +