Browse Source

角色-菜单

wangzhinan 1 year ago
parent
commit
dc0f8e01b1

+ 23 - 0
business/base-service/src/main/java/com/yihu/jw/application/dao/BaseApplicationMenuDao.java

@ -0,0 +1,23 @@
package com.yihu.jw.application.dao;
import com.yihu.jw.entity.base.application.BaseApplicationMenuDO;
import com.yihu.jw.entity.base.area.BaseCityDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 */
public interface BaseApplicationMenuDao extends JpaRepository<BaseApplicationMenuDO, String>, JpaSpecificationExecutor<BaseApplicationMenuDO> {
    @Query("select p from BaseApplicationMenuDO p where p.type = ?1 and p.status=1 order by p.menuSort desc")
    List<BaseApplicationMenuDO> getParentList(String type);
    @Query("select p from BaseApplicationMenuDO p where p.type = ?1 and p.parentId=?2 and p.status=1 order by p.menuSort desc ")
    List<BaseApplicationMenuDO> getChildBuParent(String type,String parentId);
}

+ 14 - 0
business/base-service/src/main/java/com/yihu/jw/application/dao/BaseApplicationRoleDictDao.java

@ -0,0 +1,14 @@
package com.yihu.jw.application.dao;
import com.yihu.jw.entity.base.application.BaseApplicationRoleDictDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
/**
 */
public interface BaseApplicationRoleDictDao extends JpaRepository<BaseApplicationRoleDictDO, String>, JpaSpecificationExecutor<BaseApplicationRoleDictDO> {
}

+ 23 - 0
business/base-service/src/main/java/com/yihu/jw/application/dao/BaseApplicationRoleMenuDao.java

@ -0,0 +1,23 @@
package com.yihu.jw.application.dao;
import com.yihu.jw.entity.base.application.BaseApplicationMenuDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleMenuDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 */
public interface BaseApplicationRoleMenuDao extends JpaRepository<BaseApplicationRoleMenuDO, String>, JpaSpecificationExecutor<BaseApplicationRoleMenuDO> {
    @Modifying
    @Query("delete from BaseApplicationRoleMenuDO  where roleId=?1")
    void deleteByRoleId(String roleId);
    @Query("select p from BaseApplicationRoleMenuDO p where p.roleId=?1 ")
    List<BaseApplicationRoleMenuDO> findByRoleId(String roleId);
}

+ 24 - 0
business/base-service/src/main/java/com/yihu/jw/application/dao/BaseApplicationRoleUserDao.java

@ -0,0 +1,24 @@
package com.yihu.jw.application.dao;
import com.yihu.jw.entity.base.application.BaseApplicationRoleMenuDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleUserDO;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import java.util.List;
/**
 */
public interface BaseApplicationRoleUserDao extends JpaRepository<BaseApplicationRoleUserDO, String>, JpaSpecificationExecutor<BaseApplicationRoleUserDO> {
    @Modifying
    @Query("delete from BaseApplicationRoleUserDO  where roleId=?1")
    void deleteByRoleId(String roleId);
    @Query("select p from BaseApplicationRoleUserDO p where p.roleId=?1 ")
    List<BaseApplicationRoleUserDO> findByRoleId(String roleId);
}

+ 164 - 0
business/base-service/src/main/java/com/yihu/jw/application/service/BaseApplicationMenuService.java

@ -0,0 +1,164 @@
package com.yihu.jw.application.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.application.dao.BaseApplicationMenuDao;
import com.yihu.jw.application.dao.BaseApplicationRoleMenuDao;
import com.yihu.jw.contant.CommonContant;
import com.yihu.jw.entity.base.application.BaseApplicationMenuDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.restmodel.base.role.MenuVO;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.lang3.StringUtils;
import org.jsoup.Connection;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.persistence.criteria.CriteriaBuilder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 应用菜单资源配置
 */
@Service
public class BaseApplicationMenuService extends BaseJpaService<BaseApplicationMenuDO, BaseApplicationMenuDao> {
    @Autowired
    private BaseApplicationMenuDao applicationMenuDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    /**
     * 创建和修改应用菜单实体
     *
     * @param menuDO
     * @return
     */
    public BaseApplicationMenuDO insertAndUpdateMenu(BaseApplicationMenuDO menuDO){
        if (StringUtils.isNoneBlank(menuDO.getId())){
            menuDO.setUpdateTime(new Date());
        }else {
            menuDO.setCreateTime(new Date());
        }
        return applicationMenuDao.save(menuDO);
    }
    /**
     * 根据id删除菜单实体
     * @param id
     */
    public void deleteById(String id){
        applicationMenuDao.deleteById(id);
    }
    /**
     * 根据id获取菜单资源详情
     * @param id
     * @return
     */
    public BaseApplicationMenuDO findById(String id){
        return applicationMenuDao.findById(id).get();
    }
    /**
     * 获取资源菜单树型结构
     * @param type
     * @return
     */
    public List<BaseApplicationMenuDO> getMenuTree(String type){
        List<BaseApplicationMenuDO> baseApplicationMenuDOS = applicationMenuDao.getParentList(type);
        Map<String,List<BaseApplicationMenuDO>> map = baseApplicationMenuDOS.stream().collect(Collectors.groupingBy(BaseApplicationMenuDO::getParentId));
        baseApplicationMenuDOS.forEach(menu->{
            List<BaseApplicationMenuDO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
        });
        List<BaseApplicationMenuDO> applicationMenuDOS = new ArrayList<>();
        for (BaseApplicationMenuDO menuDO:baseApplicationMenuDOS){
            if (menuDO.getParentId().equalsIgnoreCase("0")){
                applicationMenuDOS.add(menuDO);
            }
        }
        return applicationMenuDOS;
    }
    /**
     * 查询资源菜单列表
     * @param type
     * @param saasId
     * @param orgCode
     * @param name
     * @param status
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop selectByCondition(String type,String saasId, String orgCode, String name, Integer status, Integer page, Integer size){
        MixEnvelop mixEnvelop = new MixEnvelop();
        String sql = "SELECT\n" +
                "\tm.id,\n" +
                "\tm. CODE AS \"code\",\n" +
                "\tm. NAME AS \"name\",\n" +
                "\tm.saas_id AS \"saasId\",\n" +
                "\ts. NAME AS \"saasName\",\n" +
                "\tm.org_code AS \"orgCode\",\n" +
                "\tm.identify AS \"identify\",\n" +
                "\tm.parent_id AS \"parentId\",\n" +
                "\tm.menu_sort AS \"menuSort\",\n" +
                "\tm.type AS \"type\",\n" +
                "\tm. STATUS AS \"status\",\n" +
                "\tm.icon AS \"icon\",\n" +
                "\tm.url AS \"url\",\n" +
                "\tm.url_param AS \"urlParam\",\n" +
                "\tm.description AS \"description\",\n" +
                "\tm.create_time AS \"createTime\"\n" +
                "FROM\n" +
                "\tbase_application_menu m\n" +
                "LEFT JOIN base_saas s ON s.id = m.saas_id\n" +
                "LEFT JOIN base_org o ON m.org_code = o. CODE ";
        String sqlTotal = " SELECT\n" +
                "\tCOUNT(1) as total\n" +
                "FROM\n" +
                "\tbase_application_menu m\n" +
                "LEFT JOIN base_saas s ON s.id = m.saas_id\n" +
                "LEFT JOIN base_org o ON m.org_code = o. CODE ";
        String condition = " where 1=1 ";
        if (StringUtils.isNoneBlank(type)){
            condition +=" and m.type ='"+type+"' ";
        }
        if (StringUtils.isNoneBlank(saasId)){
            condition +=" and m.saas_id ='"+saasId+"' ";
        }
        if (StringUtils.isNoneBlank(orgCode)){
            condition +=" and m.org_code ='"+orgCode+"' ";
        }
        if (StringUtils.isNoneBlank(name)){
            condition +=" and m.name like '%"+name+"%' ";
        }
        if (status!=null){
            condition +=" and m.status = '"+status+"' ";
        }
        String orderCondition = " order by m.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderCondition,page,size);
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlTotal+condition);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(size);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
}

+ 200 - 0
business/base-service/src/main/java/com/yihu/jw/application/service/BaseApplicationRoleDictService.java

@ -0,0 +1,200 @@
package com.yihu.jw.application.service;
import com.yihu.jw.application.dao.BaseApplicationMenuDao;
import com.yihu.jw.application.dao.BaseApplicationRoleDictDao;
import com.yihu.jw.application.dao.BaseApplicationRoleMenuDao;
import com.yihu.jw.application.dao.BaseApplicationRoleUserDao;
import com.yihu.jw.entity.base.application.BaseApplicationMenuDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleDictDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleMenuDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleUserDO;
import com.yihu.jw.mysql.query.BaseJpaService;
import com.yihu.jw.restmodel.web.MixEnvelop;
import com.yihu.jw.utils.hibernate.HibenateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * 应用角色配置
 */
@Service
@Transactional
public class BaseApplicationRoleDictService extends BaseJpaService<BaseApplicationRoleDictDO, BaseApplicationRoleDictDao> {
    @Autowired
    private BaseApplicationRoleDictDao applicationRoleDictDao;
    @Autowired
    private HibenateUtils hibenateUtils;
    @Autowired
    private BaseApplicationRoleMenuDao applicationRoleMenuDao;
    @Autowired
    private BaseApplicationRoleUserDao applicationRoleUserDao;
    /**
     * 创建和修改应用角色
     *
     * @param roleDictDO
     * @return
     */
    public BaseApplicationRoleDictDO insertAndUpdateRole(BaseApplicationRoleDictDO roleDictDO){
        if (StringUtils.isNoneBlank(roleDictDO.getId())){
            roleDictDO.setUpdateTime(new Date());
        }else {
            roleDictDO.setCreateTime(new Date());
        }
        return applicationRoleDictDao.save(roleDictDO);
    }
    /**
     * 根据id删除应用角色
     * @param id
     */
    public void deleteById(String id){
        applicationRoleDictDao.deleteById(id);
    }
    /**
     * 根据id获取应用角色
     * @param id
     * @return
     */
    public BaseApplicationRoleDictDO findById(String id){
        return applicationRoleDictDao.findById(id).get();
    }
    /**
     * 查询应用角色列表
     * @param type
     * @param saasId
     * @param orgCode
     * @param name
     * @param status
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop selectByCondition(String type, String saasId, String orgCode, String name, Integer status, Integer page, Integer size){
        MixEnvelop mixEnvelop = new MixEnvelop();
        String sql = "SELECT\n" +
                "\tm.id,\n" +
                "\tm.saas_id AS \"saasId\",\n" +
                "\ts.NAME AS \"saasName\",\n" +
                "\tm.org_code AS \"orgCode\",\n" +
                "\to.name as \"orgName\",\n" +
                "\tm.type AS \"type\",\n" +
                "\tm.STATUS AS \"status\",\n" +
                "\tm.create_time AS \"createTime\"\n" +
                "FROM\n" +
                "\tbase_application_role_dict m\n" +
                "LEFT JOIN base_saas s ON s.id = m.saas_id\n" +
                "LEFT JOIN base_org o ON m.org_code = o. CODE ";
        String sqlTotal = " SELECT\n" +
                "\tCOUNT(1) as total\n" +
                "FROM\n" +
                "\tbase_application_role_dict m\n" +
                "LEFT JOIN base_saas s ON s.id = m.saas_id\n" +
                "LEFT JOIN base_org o ON m.org_code = o. CODE ";
        String condition = " where 1=1 ";
        if (StringUtils.isNoneBlank(type)){
            condition +=" and m.type ='"+type+"' ";
        }
        if (StringUtils.isNoneBlank(saasId)){
            condition +=" and m.saas_id ='"+saasId+"' ";
        }
        if (StringUtils.isNoneBlank(orgCode)){
            condition +=" and m.org_code ='"+orgCode+"' ";
        }
        if (StringUtils.isNoneBlank(name)){
            condition +=" and m.name like '%"+name+"%' ";
        }
        if (status!=null){
            condition +=" and m.status = '"+status+"' ";
        }
        String orderCondition = " order by m.create_time desc ";
        List<Map<String,Object>> list = hibenateUtils.createSQLQuery(sql+condition+orderCondition,page,size);
        Long count = 0L;
        List<Map<String,Object>> total = hibenateUtils.createSQLQuery(sqlTotal+condition);
        if(total!=null){
            //mysql 与 Oracle 聚合函数返回类型不一致,需要判断装换
            count = hibenateUtils.objTransformLong(total.get(0).get("total"));
        }
        mixEnvelop.setTotalCount(count.intValue());
        mixEnvelop.setDetailModelList(list);
        mixEnvelop.setPageSize(size);
        mixEnvelop.setCurrPage(page);
        return mixEnvelop;
    }
    /**
     * 角色成员配置
     *
     * @param roleUserDOS
     * @return
     * @throws Exception
     */
    public List<BaseApplicationRoleUserDO> insertRoleUser(List<BaseApplicationRoleUserDO> roleUserDOS) throws Exception {
        if (roleUserDOS!=null&&roleUserDOS.size()!=0){
            String roleId = roleUserDOS.get(0).getRoleId();
            applicationRoleUserDao.deleteByRoleId(roleId);
            for (BaseApplicationRoleUserDO roleUserDO:roleUserDOS){
                roleUserDO.setCreateTime(new Date());
            }
            return applicationRoleUserDao.saveAll(roleUserDOS);
        }else {
            throw new Exception("参数为空");
        }
    }
    /**
     * 根据角色id获取角色关联的成员
     * @param roleId
     * @return
     */
    public List<BaseApplicationRoleUserDO> selectUserByRoleId(String roleId){
        return applicationRoleUserDao.findByRoleId(roleId);
    }
    /**
     * 根据角色id获取角色关联的菜单
     * @param roleId
     * @return
     */
    public List<BaseApplicationRoleMenuDO> selectMenuByRoleId(String roleId){
        return applicationRoleMenuDao.findByRoleId(roleId);
    }
    /**
     * 角色菜单配置
     *
     * @param roleMenuDOS
     * @return
     * @throws Exception
     */
    public List<BaseApplicationRoleMenuDO> insertRoleMenu(List<BaseApplicationRoleMenuDO> roleMenuDOS) throws Exception {
        if (roleMenuDOS!=null&&roleMenuDOS.size()!=0){
            String roleId = roleMenuDOS.get(0).getRoleId();
            applicationRoleMenuDao.deleteByRoleId(roleId);
            for (BaseApplicationRoleMenuDO roleMenuDO:roleMenuDOS){
                roleMenuDO.setCreateTime(new Date());
            }
            return applicationRoleMenuDao.saveAll(roleMenuDOS);
        }else {
            throw new Exception("参数为空");
        }
    }
}

+ 149 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/application/BaseApplicationMenuDO.java

@ -0,0 +1,149 @@
package com.yihu.jw.entity.base.application;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.List;
/**
 *
 * 应用菜单资源配置
 * @author Administrator on  2018年09月05日
 *
 */
@Entity
@Table(name = "base_application_menu")
public class BaseApplicationMenuDO extends UuidIdentityEntityWithOperator {
    private String saasId;//租户id
    private String orgCode;//机构id
    private String identify;//应用端标识(V_APPLICATION_IDENTIFY)
    private String parentId;//父级节点
    private String menuSort;//菜单排序
    private String code;//菜单编码
    private String name;//菜单名称
    private String type;//角色类型(字典V_APPLICATION_ROLE_DICT)
    private Integer status;//是否生效(1生效0失效)
    private String icon;//图标
    private String url;//url地址
    private String urlParam;//地址参数
    private String description;//描述
    private List<BaseApplicationMenuDO> children;
    @Transient
    public List<BaseApplicationMenuDO> getChildren() {
        return children;
    }
    public void setChildren(List<BaseApplicationMenuDO> children) {
        this.children = children;
    }
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public String getIdentify() {
        return identify;
    }
    public void setIdentify(String identify) {
        this.identify = identify;
    }
    public String getParentId() {
        return parentId;
    }
    public void setParentId(String parentId) {
        this.parentId = parentId;
    }
    public String getMenuSort() {
        return menuSort;
    }
    public void setMenuSort(String menuSort) {
        this.menuSort = menuSort;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
    public String getIcon() {
        return icon;
    }
    public void setIcon(String icon) {
        this.icon = icon;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUrlParam() {
        return urlParam;
    }
    public void setUrlParam(String urlParam) {
        this.urlParam = urlParam;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

+ 70 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/application/BaseApplicationRoleDictDO.java

@ -0,0 +1,70 @@
package com.yihu.jw.entity.base.application;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.IntegerIdentityEntity;
import com.yihu.jw.entity.UuidIdentityEntityWithCreateTime;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import java.util.Date;
/**
 *
 * 应用角色配置
 * @author Administrator on  2018年09月05日
 *
 */
@Entity
@Table(name = "base_application_role_dict")
public class BaseApplicationRoleDictDO extends UuidIdentityEntityWithOperator {
    private String name;//角色名称
    private String type;//角色类型(字典V_APPLICATION_ROLE_DICT)
    private String saasId;//租户id
    private String orgCode;//机构id
    private Integer status;//是否生效1生效0失效
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public String getSaasId() {
        return saasId;
    }
    public void setSaasId(String saasId) {
        this.saasId = saasId;
    }
    public String getOrgCode() {
        return orgCode;
    }
    public void setOrgCode(String orgCode) {
        this.orgCode = orgCode;
    }
    public Integer getStatus() {
        return status;
    }
    public void setStatus(Integer status) {
        this.status = status;
    }
}

+ 37 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/application/BaseApplicationRoleMenuDO.java

@ -0,0 +1,37 @@
package com.yihu.jw.entity.base.application;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 *
 * 应用角色-菜单配置
 * @author Administrator on  2018年09月05日
 *
 */
@Entity
@Table(name = "base_application_role_menu")
public class BaseApplicationRoleMenuDO extends UuidIdentityEntityWithOperator {
    private String roleId;//应用角色id关联base_application_role表
    private String menuId;//关联菜单id
    public String getRoleId() {
        return roleId;
    }
    public void setRoleId(String roleId) {
        this.roleId = roleId;
    }
    public String getMenuId() {
        return menuId;
    }
    public void setMenuId(String menuId) {
        this.menuId = menuId;
    }
}

+ 55 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/application/BaseApplicationRoleUserDO.java

@ -0,0 +1,55 @@
package com.yihu.jw.entity.base.application;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
/**
 *
 * 应用角色-用户配置
 * @author Administrator on  2018年09月05日
 *
 */
@Entity
@Table(name = "base_application_role_user")
public class BaseApplicationRoleUserDO extends UuidIdentityEntityWithOperator {
    private String roleId;//角色id
    private String type;//角色类型(字典V_APPLICATION_ROLE_DICT)
    private Integer userType;//用户类型(1患者2医生)
    private String userCode;//用户code
    public String getRoleId() {
        return roleId;
    }
    public void setRoleId(String roleId) {
        this.roleId = roleId;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Integer getUserType() {
        return userType;
    }
    public void setUserType(Integer userType) {
        this.userType = userType;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
}

+ 27 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java

@ -960,6 +960,33 @@ public class BaseRequestMapping {
        public static final String CategoriesAll = "/resources/categories/all";
        public static final String CategoriesSearch = "/resources/categories/search";
    }
    /*
     * 应用角色菜单资源
     */
    public static class ApplicationMenu extends Basic {
        public static final String PREFIX = "/applicationMenu";
        public static final String insertAndUpdateMenu = "/insertAndUpdateMenu";
        public static final String deleteById = "/deleteById";
        public static final String findById = "/findById";
        public static final String getMenuTree = "/getMenuTree";
        public static final String selectByCondition = "/selectByCondition";
    }
    /*
     * 应用角色
     */
    public static class ApplicationRoleDict extends Basic {
        public static final String PREFIX = "/applicationRoleId";
        public static final String insertAndUpdateRole = "/insertAndUpdateRole";
        public static final String deleteById = "/deleteById";
        public static final String findById = "/findById";
        public static final String selectUserByRoleId = "/selectUserByRoleId";
        public static final String selectByCondition = "/selectByCondition";
        public static final String insertRoleUser ="/insertRoleUser";
        public static final String selectMenuByRoleId="/selectMenuByRoleId";
        public static final String insertRoleMenu = "/insertRoleMenu";
    }
}

+ 89 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/application/BaseApplicationMenuEndpoint.java

@ -0,0 +1,89 @@
package com.yihu.jw.base.endpoint.application;
import com.yihu.jw.application.service.BaseApplicationMenuService;
import com.yihu.jw.area.service.BaseCityService;
import com.yihu.jw.entity.base.application.BaseApplicationMenuDO;
import com.yihu.jw.entity.base.area.BaseCityDO;
import com.yihu.jw.restmodel.base.area.BaseCityVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.PageEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*
* @since 1.
*/
@RestController
@RequestMapping(value = BaseRequestMapping.ApplicationMenu.PREFIX)
@Api(value = "应用资源菜单管理", description = "应用资源菜单管理", tags = {"应用资源菜单管理"})
public class BaseApplicationMenuEndpoint extends EnvelopRestEndpoint {
@Autowired
private BaseApplicationMenuService applicationMenuService;
    @PostMapping(value = BaseRequestMapping.ApplicationMenu.insertAndUpdateMenu)
    @ApiOperation(value = "创建和修改应用菜单实体")
    public ObjEnvelop insertAndUpdateMenu(
        @ApiParam(name = "jsonData", value = "Json数据", required = true)
        @RequestParam(value = "jsonData") String jsonData) throws Exception {
            BaseApplicationMenuDO menuDO = toEntity(jsonData, BaseApplicationMenuDO.class);
            menuDO = applicationMenuService.insertAndUpdateMenu(menuDO);
            return success(menuDO);
    }
    @PostMapping(value = BaseRequestMapping.ApplicationMenu.DELETE)
    @ApiOperation(value = "根据id删除菜单实体")
    public Envelop delete(@ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
        @RequestParam(value = "ids") String ids) {
        applicationMenuService.delete(ids.split(","));
        return success("删除成功");
    }
    @GetMapping(value = BaseRequestMapping.ApplicationMenu.findById)
    @ApiOperation(value = "根据id获取菜单资源详情")
    public ObjEnvelop findById (
        @ApiParam(name = "id", value = "id", required = true)
        @RequestParam(value = "id") String id) throws Exception {
        return success(applicationMenuService.findById(id));
    }
    @GetMapping(value = BaseRequestMapping.ApplicationMenu.getMenuTree)
    @ApiOperation(value = "获取资源菜单树型结构")
    public Envelop getMenuTree (
            @ApiParam(name = "type", value = "type", required = true)
            @RequestParam(value = "type") String type) throws Exception {
        return success(applicationMenuService.getMenuTree(type));
    }
    @GetMapping(value = BaseRequestMapping.ApplicationMenu.selectByCondition)
    @ApiOperation(value = "查询资源菜单列表")
    public Envelop selectByCondition (
            @ApiParam(name = "type", value = "角色类型(字典V_APPLICATION_ROLE_DICT)", required = false)
            @RequestParam(value = "type",required = false) String type,
            @ApiParam(name = "saasId", value = "租户id", required = false)
            @RequestParam(value = "saasId",required = false) String saasId,
            @ApiParam(name = "orgCode", value = "机构id", required = false)
            @RequestParam(value = "orgCode",required = false) String orgCode,
            @ApiParam(name = "name", value = "资源菜单名称", required = false)
            @RequestParam(value = "name",required = false) String name,
            @ApiParam(name = "status", value = "是否生效(1生效0失效)", required = false)
            @RequestParam(value = "status",required = false) Integer status,
            @ApiParam(name = "page", value = "页码", required = false)
            @RequestParam(value = "page",required = false) Integer page,
            @ApiParam(name = "size", value = "大小", required = false)
            @RequestParam(value = "size",required = false) Integer size) throws Exception {
        return success(applicationMenuService.selectByCondition(type,saasId,orgCode,name,status,page,size));
    }
 }

+ 134 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/application/BaseApplicationRoleDictEndpoint.java

@ -0,0 +1,134 @@
package com.yihu.jw.base.endpoint.application;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.application.service.BaseApplicationMenuService;
import com.yihu.jw.application.service.BaseApplicationRoleDictService;
import com.yihu.jw.entity.base.application.BaseApplicationMenuDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleDictDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleMenuDO;
import com.yihu.jw.entity.base.application.BaseApplicationRoleUserDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.base.BaseRequestMapping;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.w3c.dom.ls.LSInput;
import java.util.ArrayList;
import java.util.List;
/**
*
* @since 1.
*/
@RestController
@RequestMapping(value = BaseRequestMapping.ApplicationRoleDict.PREFIX)
@Api(value = "应用角色管理", description = "应用角色管理", tags = {"应用角色管理"})
public class BaseApplicationRoleDictEndpoint extends EnvelopRestEndpoint {
@Autowired
private BaseApplicationRoleDictService applicationRoleDictService;
    @PostMapping(value = BaseRequestMapping.ApplicationRoleDict.insertAndUpdateRole)
    @ApiOperation(value = "创建和修改应用角色")
    public ObjEnvelop insertAndUpdateMenu(
        @ApiParam(name = "jsonData", value = "Json数据", required = true)
        @RequestParam(value = "jsonData") String jsonData) throws Exception {
        BaseApplicationRoleDictDO roleDictDO = toEntity(jsonData, BaseApplicationRoleDictDO.class);
        roleDictDO = applicationRoleDictService.insertAndUpdateRole(roleDictDO);
        return success(roleDictDO);
    }
    @PostMapping(value = BaseRequestMapping.ApplicationRoleDict.DELETE)
    @ApiOperation(value = "根据id删除应用角色")
    public Envelop delete(@ApiParam(name = "ids", value = "id串,中间用,分隔", required = true)
        @RequestParam(value = "ids") String ids) {
        applicationRoleDictService.delete(ids.split(","));
        return success("删除成功");
    }
    @GetMapping(value = BaseRequestMapping.ApplicationRoleDict.findById)
    @ApiOperation(value = "根据id获取菜单资源详情")
    public ObjEnvelop findById (
        @ApiParam(name = "id", value = "id", required = true)
        @RequestParam(value = "id") String id) throws Exception {
        return success(applicationRoleDictService.findById(id));
    }
    @GetMapping(value = BaseRequestMapping.ApplicationRoleDict.selectByCondition)
    @ApiOperation(value = "查询角色配置列表")
    public Envelop selectByCondition (
            @ApiParam(name = "type", value = "角色类型(字典V_APPLICATION_ROLE_DICT)", required = false)
            @RequestParam(value = "type",required = false) String type,
            @ApiParam(name = "saasId", value = "租户id", required = false)
            @RequestParam(value = "saasId",required = false) String saasId,
            @ApiParam(name = "orgCode", value = "机构id", required = false)
            @RequestParam(value = "orgCode",required = false) String orgCode,
            @ApiParam(name = "name", value = "资源菜单名称", required = false)
            @RequestParam(value = "name",required = false) String name,
            @ApiParam(name = "status", value = "是否生效(1生效0失效)", required = false)
            @RequestParam(value = "status",required = false) Integer status,
            @ApiParam(name = "page", value = "页码", required = false)
            @RequestParam(value = "page",required = false) Integer page,
            @ApiParam(name = "size", value = "大小", required = false)
            @RequestParam(value = "size",required = false) Integer size) throws Exception {
        return success(applicationRoleDictService.selectByCondition(type,saasId,orgCode,name,status,page,size));
    }
    @PostMapping(value = BaseRequestMapping.ApplicationRoleDict.insertRoleUser)
    @ApiOperation(value = "角色成员配置")
    public Envelop insertRoleUser (
            @ApiParam(name = "jsonData", value = "jsonData实体", required = true)
            @RequestParam(value = "jsonData") String jsonData) throws Exception {
        JSONArray array = JSONArray.parseArray(jsonData);
        List<BaseApplicationRoleUserDO> roleUserDOS = new ArrayList<>();
        for (int i=0;i<array.size();i++){
            JSONObject object = array.getJSONObject(i);
            BaseApplicationRoleUserDO roleUserDO = toEntity(object.toJSONString(), BaseApplicationRoleUserDO.class);
            roleUserDOS.add(roleUserDO);
        }
        return success(applicationRoleDictService.insertRoleUser(roleUserDOS));
    }
    @PostMapping(value = BaseRequestMapping.ApplicationRoleDict.insertRoleMenu)
    @ApiOperation(value = "角色菜单配置")
    public Envelop insertRoleMenu (
            @ApiParam(name = "jsonData", value = "jsonData实体", required = true)
            @RequestParam(value = "jsonData") String jsonData) throws Exception {
        JSONArray array = JSONArray.parseArray(jsonData);
        List<BaseApplicationRoleMenuDO> roleMenuDOS = new ArrayList<>();
        for (int i=0;i<array.size();i++){
            JSONObject object = array.getJSONObject(i);
            BaseApplicationRoleMenuDO roleMenuDO = toEntity(object.toJSONString(), BaseApplicationRoleMenuDO.class);
            roleMenuDOS.add(roleMenuDO);
        }
        return success(applicationRoleDictService.insertRoleMenu(roleMenuDOS));
    }
    @GetMapping(value = BaseRequestMapping.ApplicationRoleDict.selectUserByRoleId)
    @ApiOperation(value = "根据角色id获取角色关联的成员")
    public Envelop selectUserByRoleId (
            @ApiParam(name = "roleId", value = "角色id", required = true)
            @RequestParam(value = "roleId") String roleId) throws Exception {
        return success(applicationRoleDictService.selectUserByRoleId(roleId));
    }
    @GetMapping(value = BaseRequestMapping.ApplicationRoleDict.selectMenuByRoleId)
    @ApiOperation(value = "根据角色id获取角色关联的菜单")
    public Envelop selectMenuByRoleId (
            @ApiParam(name = "roleId", value = "角色id", required = true)
            @RequestParam(value = "roleId") String roleId) throws Exception {
        return success(applicationRoleDictService.selectMenuByRoleId(roleId));
    }
 }