LiTaohong 6 سال پیش
والد
کامیت
73538fa11d
30فایلهای تغییر یافته به همراه473 افزوده شده و 68 حذف شده
  1. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/module/ModuleDO.java
  2. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasModuleDO.java
  3. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasTypeModuleDO.java
  4. 11 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/role/MenuDO.java
  5. 22 0
      common/common-entity/src/main/java/com/yihu/jw/entity/base/role/RoleDO.java
  6. 5 0
      common/common-request-mapping/src/main/java/com/yihu/jw/rm/base/BaseRequestMapping.java
  7. 10 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/ModuleVO.java
  8. 10 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/SaasModuleVO.java
  9. 10 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/SaasTypeModuleVO.java
  10. 20 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/role/MenuVO.java
  11. 20 0
      common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/role/RoleVO.java
  12. 6 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/org/BaseOrgSaasDao.java
  13. 4 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/RoleDao.java
  14. 4 0
      svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/RoleMenuDao.java
  15. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleEndpoint.java
  16. 11 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/notice/UserNoticeEndpoint.java
  17. 77 1
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java
  18. 22 0
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/RoleEndpoint.java
  19. 22 10
      svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasEndpoint.java
  20. 2 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java
  21. 13 13
      svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/excelImport/BaseDoctorExcelDOReader.java
  22. 55 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/module/ModuleService.java
  23. 18 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/notice/UserNoticeService.java
  24. 31 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/role/MenuService.java
  25. 10 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/role/RoleMenuService.java
  26. 39 0
      svr/svr-base/src/main/java/com/yihu/jw/base/service/role/RoleService.java
  27. 11 35
      svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasService.java
  28. 1 1
      svr/svr-base/src/main/java/com/yihu/jw/base/service/wx/WechatService.java
  29. 3 3
      svr/svr-manage/src/main/resources/webapp/html/system/role/html/menuRole.html
  30. 2 2
      svr/svr-manage/src/main/resources/webapp/html/system/role/html/userRole.html

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/module/ModuleDO.java

@ -141,6 +141,8 @@ public class ModuleDO extends UuidIdentityEntityWithOperator {
	private Integer status;
	//类型
	private Integer type;
	//菜单层级
	private Integer level;
	//备注
	private String remark;
	//0-表示有子节点,1-表示没有子节点
@ -235,6 +237,15 @@ public class ModuleDO extends UuidIdentityEntityWithOperator {
		this.isMust = isMust;
	}
	@Column(name = "level")
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
	@Transient
	public List<ModuleDO> getChildren() {
		return children;

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasModuleDO.java

@ -31,6 +31,8 @@ public class SaasModuleDO extends UuidIdentityEntityWithOperator {
	private Integer status;
	//类型
	private Integer type;
	//菜单层级
	private Integer level;
	//备注
	private String remark;
	//0-表示有子节点,1-表示没有子节点
@ -143,6 +145,15 @@ public class SaasModuleDO extends UuidIdentityEntityWithOperator {
		this.isMust = isMust;
	}
	@Column(name = "level")
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
	@Transient
	public List<SaasModuleDO> getChildren() {
		return children;

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/module/SaasTypeModuleDO.java

@ -31,6 +31,8 @@ public class SaasTypeModuleDO extends UuidIdentityEntityWithOperator {
	private Integer status;
	//类型
	private Integer type;
	//菜单层级
	private Integer level;
	//备注
	private String remark;
	//0-表示有子节点,1-表示没有子节点
@ -143,6 +145,15 @@ public class SaasTypeModuleDO extends UuidIdentityEntityWithOperator {
		this.isMust = isMust;
	}
	@Column(name = "level")
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
	@Transient
	public List<SaasTypeModuleDO> getChildren() {
		return children;

+ 11 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/role/MenuDO.java

@ -36,6 +36,8 @@ public class MenuDO extends UuidIdentityEntityWithOperator {
	 * 排序
	 */
	private Integer sort;
	//菜单层级
	private Integer level;
	/**
	 * 父级ID
	 */
@ -145,6 +147,15 @@ public class MenuDO extends UuidIdentityEntityWithOperator {
		this.show = show;
	}
	@Column(name = "level")
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
	@Transient
	public String getParentName() {
		return parentName;

+ 22 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/role/RoleDO.java

@ -45,6 +45,10 @@ public class RoleDO extends UuidIdentityEntityWithOperator {
	 */
	private Boolean system;
	private String saasId;
	private Integer status;//1生效,-1失效
	@Column(name = "name", length = 50)
	public String getName() {
		return this.name;
@ -89,4 +93,22 @@ public class RoleDO extends UuidIdentityEntityWithOperator {
	public void setType(String type) {
		this.type = type;
	}
	@Column(name = "saas_id")
	public String getSaasId() {
		return saasId;
	}
	public void setSaasId(String saasId) {
		this.saasId = saasId;
	}
	@Column(name = "status")
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
}

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

@ -185,6 +185,9 @@ public class BaseRequestMapping {
     */
    public static class Role extends Basic {
        public static final String PREFIX  = "/role";
        public static final String api_success ="success";
        public static final String saveRole ="/saveRole";
        public static final String findRoleNameExist ="/findRoleNameExist";
    }
    /**
@ -198,6 +201,7 @@ public class BaseRequestMapping {
        public static final String MOVE_DOWN  = "/moveDown";
        public static final String GET_TREE  = "/getTree";
        public static final String FIND_ALL  = "/findAll";
        public static final String findRoleMenuTree  = "/findRoleMenuTree";
    }
    /**
@ -221,6 +225,7 @@ public class BaseRequestMapping {
     */
    public static class UserNotice extends Basic {
        public static final String PREFIX  = "/userNotice";
        public static final String COUNT  = "/count";
    }
    /**

+ 10 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/ModuleVO.java

@ -26,6 +26,8 @@ public class ModuleVO extends UuidIdentityVOWithOperator {
    private Integer type;
    @ApiModelProperty(value = "状态", example = "1有效,0失效")
    private Integer status;
    @ApiModelProperty(value = "层级", example = "0")
    private Integer level;
    @ApiModelProperty(value = "备注", example = "我是备注")
    private String remark;
    @ApiModelProperty(value = "节点信息(0-表示有子节点,1-表示没有子节点)", example = "1")
@ -124,4 +126,12 @@ public class ModuleVO extends UuidIdentityVOWithOperator {
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    public Integer getLevel() {
        return level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
}

+ 10 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/SaasModuleVO.java

@ -26,6 +26,8 @@ public class SaasModuleVO extends UuidIdentityVOWithOperator {
	private String parentModuleId;
	@ApiModelProperty(value = "状态", example = "1有效,0失效")
	private Integer status;
	@ApiModelProperty(value = "层级", example = "0")
	private Integer level;
	@ApiModelProperty(value = "类型", example = "0通用,1医生端你,2居民端")
	private Integer type;
	@ApiModelProperty(value = "备注", example = "备注")
@ -134,4 +136,12 @@ public class SaasModuleVO extends UuidIdentityVOWithOperator {
	public void setChildren(List<SaasModuleVO> children) {
		this.children = children;
	}
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
}

+ 10 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/module/SaasTypeModuleVO.java

@ -28,6 +28,8 @@ public class SaasTypeModuleVO extends UuidIdentityVOWithOperator {
	private Integer status;
	@ApiModelProperty(value = "类型", example = "0通用,1医生端你,2居民端")
	private Integer type;
	@ApiModelProperty(value = "层级", example = "0")
	private Integer level;
	@ApiModelProperty(value = "备注", example = "备注")
	private String remark;
	@ApiModelProperty(value = "0-表示有子节点,1-表示没有子节点", example = "1")
@ -144,4 +146,12 @@ public class SaasTypeModuleVO extends UuidIdentityVOWithOperator {
	public void setIsCheck(Integer isCheck) {
		this.isCheck = isCheck;
	}
	public Integer getLevel() {
		return level;
	}
	public void setLevel(Integer level) {
		this.level = level;
	}
}

+ 20 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/role/MenuVO.java

@ -23,6 +23,8 @@ public class MenuVO extends UuidIdentityVOWithOperator {
//    private String method;
    @ApiModelProperty(value = "排序", example = "1")
    private Integer sort;
    @ApiModelProperty(value = "层级", example = "0")
    private Integer level;
    @ApiModelProperty(value = "父级ID", example = "父级ID")
    private String parentId;
    @ApiModelProperty(value = "父级名称", example = "父级名称")
@ -33,6 +35,8 @@ public class MenuVO extends UuidIdentityVOWithOperator {
    private String remark;
    @ApiModelProperty(value = "是否展示(1是,2否)", example = "1")
    private Integer show;
    @ApiModelProperty(value = "是否选择", example = "是否选择")
    private Boolean checked;
    @ApiModelProperty(value = "子集")
    private List<MenuVO> children = new ArrayList<>();
@ -115,4 +119,20 @@ public class MenuVO extends UuidIdentityVOWithOperator {
    public void setParentName(String parentName) {
        this.parentName = parentName;
    }
    public Integer getLevel() {
        return level;
    }
    public void setLevel(Integer level) {
        this.level = level;
    }
    public Boolean getChecked() {
        return checked;
    }
    public void setChecked(Boolean checked) {
        this.checked = checked;
    }
}

+ 20 - 0
common/common-rest-model/src/main/java/com/yihu/jw/restmodel/base/role/RoleVO.java

@ -21,6 +21,10 @@ public class RoleVO extends UuidIdentityVOWithOperator {
	private String code;
	@ApiModelProperty(value = "1.系统管理员,2.saas管理员,3.机构管理员", example = "1")
	private String type;
	@ApiModelProperty(value = "sassId", example = "1")
	private String saasId;
	@ApiModelProperty(value =  "状态: -1 删除,1有效.", example = "1")
	private Integer status;
	public String getName() {
		return this.name;
@ -61,4 +65,20 @@ public class RoleVO extends UuidIdentityVOWithOperator {
	public void setType(String type) {
		this.type = type;
	}
	public String getSaasId() {
		return saasId;
	}
	public void setSaasId(String saasId) {
		this.saasId = saasId;
	}
	public Integer getStatus() {
		return status;
	}
	public void setStatus(Integer status) {
		this.status = status;
	}
}

+ 6 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/org/BaseOrgSaasDao.java

@ -2,6 +2,8 @@ package com.yihu.jw.base.dao.org;
import com.yihu.jw.entity.base.org.BaseOrgSaasDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
@ -27,4 +29,8 @@ public interface BaseOrgSaasDao extends PagingAndSortingRepository<BaseOrgSaasDO
    @Query("select distinct orgCode from BaseOrgSaasDO where saasid = ?1")
    Set<String> findOrgCodeListBySaasid(String saasid);
    @Modifying
    @Query("delete from BaseOrgSaasDO p where p.saasid=?1 ")
    void deleteBySaasId(String saasId);
}

+ 4 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/RoleDao.java

@ -4,6 +4,8 @@ import com.yihu.jw.entity.base.role.RoleDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Dao - 角色
 * Created by progr1mmer on 2018/8/17.
@ -11,4 +13,6 @@ import org.springframework.data.repository.PagingAndSortingRepository;
public interface RoleDao extends PagingAndSortingRepository<RoleDO, String>, JpaSpecificationExecutor<RoleDO> {
    RoleDO findByCode(String code);
    List<RoleDO> findByNameAndStatus(String name,Integer status);
}

+ 4 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/dao/role/RoleMenuDao.java

@ -4,8 +4,12 @@ import com.yihu.jw.entity.base.role.RoleMenuDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * @author yeshijie on 2018/9/26.
 */
public interface RoleMenuDao extends PagingAndSortingRepository<RoleMenuDO, String>, JpaSpecificationExecutor<RoleMenuDO> {
    List<RoleMenuDO> findByRoleId(String roleId);
}

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/module/ModuleEndpoint.java

@ -93,7 +93,7 @@ public class ModuleEndpoint extends EnvelopRestEndpoint {
        if(count > 1){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Module.NAME_IS_EXIST), ObjEnvelop.class);
        }
        module = moduleService.save(module);
        module = moduleService.updateModule(module);
        return success(module, ModuleVO.class);
    }

+ 11 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/notice/UserNoticeEndpoint.java

@ -54,4 +54,15 @@ public class UserNoticeEndpoint extends EnvelopRestEndpoint {
        return userNoticeService.queryPage(page, size, userId);
    }
    @GetMapping(value = BaseRequestMapping.UserNotice.COUNT)
    @ApiOperation(value = "根据用户id,判断该用户是否有未读消息")
    public ObjEnvelop<Long> countUserNotice() throws Exception {
        String userId = getUID();
        if(StringUtils.isBlank(userId)){
            return failed("用户信息获取失败!",ObjEnvelop.class);
        }
        Long lo=userNoticeService.countUnReadNotice(userId);
        return success("success",lo);
    }
}

+ 77 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/MenuEndpoint.java

@ -2,8 +2,10 @@ package com.yihu.jw.base.endpoint.role;
import com.yihu.jw.base.contant.CommonContant;
import com.yihu.jw.base.service.role.MenuService;
import com.yihu.jw.base.service.role.RoleMenuService;
import com.yihu.jw.base.util.ErrorCodeUtil;
import com.yihu.jw.entity.base.role.MenuDO;
import com.yihu.jw.entity.base.role.RoleMenuDO;
import com.yihu.jw.exception.code.BaseErrorCode;
import com.yihu.jw.restmodel.base.role.MenuVO;
import com.yihu.jw.restmodel.web.Envelop;
@ -38,6 +40,9 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
    @Autowired
    private ErrorCodeUtil errorCodeUtil;
    @Autowired
    private RoleMenuService roleMenuService;
    @PostMapping(value = BaseRequestMapping.Menu.CREATE)
    @ApiOperation(value = "创建")
    public ObjEnvelop<MenuVO> create (
@ -102,7 +107,7 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
        if(count>1){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Menu.NAME_IS_EXIST), ObjEnvelop.class);
        }
        menuDO = menuService.save(menuDO);
        menuDO = menuService.updateMenu(menuDO);
        return success(menuDO);
    }
@ -170,6 +175,7 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
            }
        });
        Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
        menuVOs.forEach(menu->{
            List<MenuVO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
@ -204,4 +210,74 @@ public class MenuEndpoint extends EnvelopRestEndpoint {
        return success(menuVOs);
    }
    @GetMapping(value = BaseRequestMapping.Menu.findRoleMenuTree)
    @ApiOperation(value = "获取角色菜单列表")
    public ListEnvelop<MenuVO> findRoleMenuTree (
            @ApiParam(name = "status", value = "状态")
            @RequestParam(value = "status", required = false) String status,
            @ApiParam(name = "name", value = "名称")
            @RequestParam(value = "name", required = false) String name,
            @ApiParam(name = "roleId", value = "角色id")
            @RequestParam(value = "roleId", required = false)String roleId) throws Exception {
        String filters = "";
        if(StringUtils.isNotBlank(status)){
            filters = "status="+status+";";
        }
        if(StringUtils.isNotBlank(name)){
            filters += "name?"+name+";";
        }
        //获取所有选择树
        List<RoleMenuDO> roleMenus = roleMenuService.findRoleMenu(roleId);
        List<MenuDO> menuDOs = menuService.search(null, filters, "+sort");
        List<MenuVO> menuVOs = convertToModels(menuDOs,new ArrayList<>(menuDOs.size()), MenuVO.class);
        menuVOs.forEach(menuVO -> {
            if(CommonContant.DEFAULT_PARENTID.equals(menuVO.getParentId())){
                menuVO.setParentName(CommonContant.DEFAULT_PARENTNAME);
            }else {
                MenuDO menuDO = menuService.findOne(menuVO.getParentId());
                menuVO.setParentName(menuDO.getName());
            }
            //对比树是否被选择
            if(checkedTree(menuVO.getId(),roleMenus)){
                menuVO.setChecked(true);
            }else{
                menuVO.setChecked(false);
            }
        });
        Map<String,List<MenuVO>> map = menuVOs.stream().collect(Collectors.groupingBy(MenuVO::getParentId));
        menuVOs.forEach(menu->{
            List<MenuVO> tmp = map.get(menu.getId());
            menu.setChildren(tmp);
        });
        if(StringUtils.isBlank(name)){
            menuVOs = menuVOs.stream()
                    .filter(menu -> CommonContant.DEFAULT_PARENTID.equals(menu.getParentId()))
                    .collect(Collectors.toList());
        }
        return success(menuVOs);
    }
    /**
     * 验证树是否被选择
     * @param menuId
     * @param roleMenus
     * @return
     */
    public Boolean checkedTree(String menuId,List<RoleMenuDO> roleMenus){
        if(roleMenus!=null&&roleMenus.size()>0){
            for(RoleMenuDO roleMenuDO:roleMenus){
                if(menuId.equals(roleMenuDO.getMenuId())){
                    return true;
                }
            }
        }
        return false;
    }
}

+ 22 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/role/RoleEndpoint.java

@ -1,7 +1,11 @@
package com.yihu.jw.base.endpoint.role;
import com.alibaba.fastjson.JSONArray;
import com.yihu.jw.base.service.role.RoleService;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.role.RoleMenuDO;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.base.wx.WxWechatSaasDO;
import com.yihu.jw.restmodel.base.role.RoleVO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
@ -93,4 +97,22 @@ public class RoleEndpoint extends EnvelopRestEndpoint {
        return success(roleDOS, RoleVO.class);
    }
    @PostMapping(value = BaseRequestMapping.Role.saveRole)
    @ApiOperation(value = "保存角色与菜单")
    public Envelop saveRole(@ApiParam(name = "roleJson", value = "角色json")
                            @RequestParam(value = "roleJson", required = false)String roleJson,
                            @ApiParam(name = "roleMenuJosn", value = "角色菜单json")
                            @RequestParam(value = "roleMenuJosn", required = false)String roleMenuJosn)throws Exception {
        RoleDO roleDO = toEntity(roleJson, RoleDO.class);
        List<RoleMenuDO> list = (List<RoleMenuDO>) JSONArray.parseArray(roleMenuJosn, RoleMenuDO.class);
        return roleService.saveRole(roleDO,list);
    }
    @GetMapping(value = BaseRequestMapping.Role.findRoleNameExist)
    @ApiOperation(value = "判断角色是否存在")
    public ObjEnvelop<Boolean> findRoleNameExist(@ApiParam(name = "name", value = "角色名称")
                                     @RequestParam(value = "name", required = false)String name) {
        return success(BaseRequestMapping.Role.api_success,roleService.findRoleNameExist(name));
    }
}

+ 22 - 10
svr/svr-base/src/main/java/com/yihu/jw/base/endpoint/saas/SaasEndpoint.java

@ -15,6 +15,7 @@ import com.yihu.jw.entity.base.saas.SaasDO;
import com.yihu.jw.entity.base.saas.SaasTypeDictDO;
import com.yihu.jw.entity.base.user.UserDO;
import com.yihu.jw.exception.code.BaseErrorCode;
import com.yihu.jw.restmodel.base.module.ModuleVO;
import com.yihu.jw.restmodel.base.module.SaasModuleVO;
import com.yihu.jw.restmodel.base.saas.SaasVO;
import com.yihu.jw.restmodel.web.Envelop;
@ -73,10 +74,10 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
            @RequestParam String jsonSaas) throws Exception {
        SaasDO saasDO = toEntity(jsonSaas, SaasDO.class);
        if(!ValidateUtil.isValidMobileNo(saasDO.getMobile())){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.MOBILE_IS_EXIST), Envelop.class);
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.PHONE_IS_NOT_FORMAT), Envelop.class);
        }
        if(!ValidateUtil.isValidEmail(saasDO.getEmail())){
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.EMAIL_IS_EXIST), Envelop.class);
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.EMAIL_IS_NOT_FORMAT), Envelop.class);
        }
        if (saasService.search("name=" + saasDO.getName()).size() > 0) {
            return failed(errorCodeUtil.getErrorMsg(BaseErrorCode.Saas.NAME_IS_EXIST), Envelop.class);
@ -223,25 +224,36 @@ public class SaasEndpoint extends EnvelopRestEndpoint {
    @GetMapping(value = BaseRequestMapping.Saas.FIND_MODULE_BY_SAASID)
    @ApiOperation(value = "获取租户的模块列表")
    public ListEnvelop<SaasModuleVO> findModuleBySaasId (
    public ListEnvelop<ModuleVO> findModuleBySaasId (
            @ApiParam(name = "saasId", value = "saasId")
            @RequestParam(value = "saasId", required = true) String saasId) throws Exception {
        String filters = "status="+ ModuleDO.Status.available.getValue()+";";
        if(StringUtils.isNotBlank(saasId)){
            filters = "saasId="+saasId;
            filters += "saasId="+saasId;
        }
        List<SaasModuleDO> modules = saasModuleService.search(null, filters, null);
        List<SaasModuleVO> moduleVOs = convertToModels(modules,new ArrayList<>(modules.size()),SaasModuleVO.class);
        Map<String,List<SaasModuleVO>> map = moduleVOs.stream().collect(Collectors.groupingBy(SaasModuleVO::getParentModuleId));
        moduleVOs.forEach(module->{
            List<SaasModuleVO> tmp = map.get(module.getId());
        List<ModuleVO> moduleVOList = new ArrayList<>(moduleVOs.size());
        //转化为module
        moduleVOs.forEach(one->{
            ModuleVO vo = new ModuleVO();
            vo.setId(one.getModuleId());
            vo.setParentId(one.getParentModuleId());
            vo.setIsMust(one.getIsMust());
            vo.setName(one.getName());
            moduleVOList.add(vo);
        });
        List<ModuleVO> moduleVOList2 = moduleVOList;
        Map<String,List<ModuleVO>> map = moduleVOList2.stream().collect(Collectors.groupingBy(ModuleVO::getParentId));
        moduleVOList2.forEach(module->{
            List<ModuleVO> tmp = map.get(module.getId());
            module.setChildren(tmp);
        });
        moduleVOs = moduleVOs.stream()
                .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentModuleId()))
        moduleVOList2 = moduleVOList2.stream()
                .filter(module -> CommonContant.DEFAULT_PARENTID.equals(module.getParentId()))
                .collect(Collectors.toList());
        return success(moduleVOs);
        return success(moduleVOList2);
    }
    @PostMapping(value = BaseRequestMapping.Saas.AUDIT)

+ 2 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/BaseDoctorService.java

@ -606,6 +606,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
            baseDoctorDO.setIsFamous(one.getIsFamous());
            baseDoctorDO.setExpertise(one.getExpertise());
            baseDoctorDO.setIntroduce(one.getBrief());
            baseDoctorDO.setPassword(baseDoctorDO.getIdcard().substring(11,17));
            if(!StringUtils.isEmpty(one.getJobTitleName())){
                String[] job = one.getJobTitleName().split(",");
                String jobCode = job[0];
@ -613,7 +614,7 @@ public class BaseDoctorService extends BaseJpaService<BaseDoctorDO, BaseDoctorDa
                baseDoctorDO.setJobTitleCode(jobTitleDO.getCode());
                baseDoctorDO.setJobTitleName(jobTitleDO.getName());
            }
//            baseDoctorDao.save(baseDoctorDO);
            baseDoctorDao.save(baseDoctorDO);
            if(!StringUtils.isEmpty(one.getHospitalInfo())){
                BaseOrgDO orgDO = null;
                DictHospitalDeptDO hospitalDeptDO = null;

+ 13 - 13
svr/svr-base/src/main/java/com/yihu/jw/base/service/doctor/excelImport/BaseDoctorExcelDOReader.java

@ -60,7 +60,7 @@ public class BaseDoctorExcelDOReader extends AExcelReader {
                    baseDoctorExcelDO.setHospitalInfo(replaceBlank(getCellCont(sheet, i, 5)));
                    baseDoctorExcelDO.setJobTitleName(replaceBlank(getCellCont(sheet, i, 6)));
                    baseDoctorExcelDO.setRoleInfo(replaceBlank(getCellCont(sheet, i, 7)));
                    baseDoctorExcelDO.setIsFamous(null == getCellCont(sheet, i, 8)?null:Integer.valueOf(replaceBlank(getCellCont(sheet, i, 7)).trim()));
                    baseDoctorExcelDO.setIsFamous(null == getCellCont(sheet, i, 8)?null:Integer.valueOf(replaceBlank(getCellCont(sheet, i, 8)).trim()));
                    baseDoctorExcelDO.setExpertise(replaceBlank(getCellCont(sheet, i, 9)));
                    baseDoctorExcelDO.setBrief(replaceBlank(getCellCont(sheet, i, 10)));
                    baseDoctorExcelDO.setExcelSeq(i);
@ -95,15 +95,15 @@ public class BaseDoctorExcelDOReader extends AExcelReader {
                String orgCode = org[0];
                String deptCode = dept[0];
                String dutyCode = duty[0];
                if(!baseOrgDao.existsByCode(orgCode)){
                    return 0;
                }
                if(!deptDao.existsByCodeAndOrgCode(deptCode,orgCode)){
                    return 0;
                }
                if(!dutyDao.existsByCode(dutyCode)){
                    return 0;
                }
//                if(!baseOrgDao.existsByCode(orgCode)){
//                    return 0;
//                }
//                if(!deptDao.existsByCodeAndOrgCode(deptCode,orgCode)){
//                    return 0;
//                }
//                if(!dutyDao.existsByCode(dutyCode)){
//                    return 0;
//                }
            }
        }
        if(StringUtils.isNotEmpty(baseDoctorExcelDO.getRoleInfo())){
@ -111,9 +111,9 @@ public class BaseDoctorExcelDOReader extends AExcelReader {
            for(String role:roles){
                String[] element = role.split(",");
                String roleCode = element[0];
                if(jobTitleDao.existsByCode(roleCode)){
                    return 0;
                }
//                if(jobTitleDao.existsByCode(roleCode)){
//                    return 0;
//                }
            }
        }
        return rs;

+ 55 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/module/ModuleService.java

@ -39,6 +39,47 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
    @Autowired
    private SaasDao saasDao;
    /**
     * 修改
     * @param moduleDO
     * @return
     */
    @Transactional(rollbackFor = Exception.class)
    public ModuleDO updateModule(ModuleDO moduleDO){
        ModuleDO oldModule = moduleDao.findOne(moduleDO.getId());
        if(StringUtils.isBlank(moduleDO.getParentId())){
            moduleDO.setParentId(CommonContant.DEFAULT_PARENTID);
        }
        ModuleDO parentModule = null;
        //设置level
        if(CommonContant.DEFAULT_PARENTID.equals(moduleDO.getParentId())){
            moduleDO.setLevel(0);
        }else {
            parentModule = moduleDao.findOne(moduleDO.getParentId());
            moduleDO.setLevel(parentModule.getLevel()+1);
        }
        moduleDO.setDel(1);
        moduleDO.setIsEnd(1);
        moduleDao.save(moduleDO);
        //父节点设置非根节点
        if(!CommonContant.DEFAULT_PARENTID.equals(moduleDO.getParentId())){
            if(ModuleDO.End.no.getValue().equals(parentModule.getIsEnd())){
                parentModule.setIsEnd(ModuleDO.End.have.getValue());
                moduleDao.save(parentModule);
            }
        }
        //若新增某必选业务模块,则需为所有已创建的租户和租户类型添加此业务模块
        if(ModuleDO.Must.nonMust.getValue().equals(oldModule.getIsMust())&&
                ModuleDO.Must.must.getValue().equals(moduleDO.getIsMust())){
            addSubModule(moduleDO);
        }
        return moduleDO;
    }
    /**
     * 新增模块
     * @param moduleDO
@ -49,12 +90,21 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
        if(StringUtils.isBlank(moduleDO.getParentId())){
            moduleDO.setParentId(CommonContant.DEFAULT_PARENTID);
        }
        ModuleDO parentModule = null;
        //设置level
        if(CommonContant.DEFAULT_PARENTID.equals(moduleDO.getParentId())){
            moduleDO.setLevel(0);
        }else {
            parentModule = moduleDao.findOne(moduleDO.getParentId());
            moduleDO.setLevel(parentModule.getLevel()+1);
        }
        moduleDO.setDel(1);
        moduleDO.setIsEnd(1);
        moduleDao.save(moduleDO);
        //父节点设置非根节点
        if(!CommonContant.DEFAULT_PARENTID.equals(moduleDO.getParentId())){
            ModuleDO parentModule = moduleDao.findOne(moduleDO.getParentId());
            if(ModuleDO.End.no.getValue().equals(parentModule.getIsEnd())){
                parentModule.setIsEnd(ModuleDO.End.have.getValue());
                moduleDao.save(parentModule);
@ -100,6 +150,7 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
                saasTypeModuleDO.setSaasTypeId(saasTypeDictDO.getId());
                saasTypeModuleDO.setType(moduleDO.getType());
                saasTypeModuleDO.setUrl(moduleDO.getUrl());
                saasTypeModuleDO.setLevel(moduleDO.getLevel());
                saasTypeModuleDOList.add(saasTypeModuleDO);
                //父模块非必选
@ -119,6 +170,7 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
                        typeModuleDO.setSaasTypeId(saasTypeDictDO.getId());
                        typeModuleDO.setType(parentModule.getType());
                        typeModuleDO.setUrl(parentModule.getUrl());
                        typeModuleDO.setLevel(parentModule.getLevel());
                        saasTypeModuleDOList.add(typeModuleDO);
                    }
                }
@ -143,6 +195,7 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
                saasModuleDO.setSaasId(saasDO.getId());
                saasModuleDO.setType(moduleDO.getType());
                saasModuleDO.setUrl(moduleDO.getUrl());
                saasModuleDO.setLevel(moduleDO.getLevel());
                saasModuleDOList.add(saasModuleDO);
                //父模块非必选
@ -162,6 +215,7 @@ public class ModuleService extends BaseJpaService<ModuleDO, ModuleDao> {
                        saasModule.setSaasId(saasDO.getId());
                        saasModule.setType(parentModule.getType());
                        saasModule.setUrl(parentModule.getUrl());
                        saasModule.setLevel(parentModule.getLevel());
                        saasModuleDOList.add(saasModule);
                    }
                }

+ 18 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/notice/UserNoticeService.java

@ -73,6 +73,24 @@ public class UserNoticeService extends BaseJpaService<UserNoticeDO, UserNoticeDa
        return PageEnvelop.getSuccessListWithPage("查找成功",list, page, size,count);
    }
    /**
     * 查找该用户是否存在未读公告
     * @param userId
     * @return
     */
    public Long countUnReadNotice(String userId){
        StringBuffer sqlCount = new StringBuffer("SELECT COUNT(*) count from base_notice n , base_user_notice u WHERE n.del = '1' ");
        List<Object> args = new ArrayList<>();
        if(StringUtils.isNotBlank(userId)){
            sqlCount.append(" and u.user_id='").append(userId).append("' ");
            args.add(userId);
        }
        sqlCount.append(" and u.notice_id = n.id and u.del = '1'");
        List<Map<String,Object>> countList = jdbcTempalte.queryForList(sqlCount.toString());
        long count = Long.valueOf(countList.get(0).get("count").toString());
        return count;
    }
}

+ 31 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/role/MenuService.java

@ -31,6 +31,29 @@ public class MenuService extends BaseJpaService<MenuDO, MenuDao> {
        menuDao.updateStatus(id,status);
    }
    /**
     * 修改菜单
     * @param menuDO
     * @return
     */
    public MenuDO updateMenu(MenuDO menuDO){
        if(StringUtils.isBlank(menuDO.getParentId())){
            menuDO.setParentId(CommonContant.DEFAULT_PARENTID);
            menuDO.setLevel(0);
        }
        //设置level
        if(CommonContant.DEFAULT_PARENTID.equals(menuDO.getParentId())){
            menuDO.setLevel(0);
        }else {
            MenuDO parentMemu = menuDao.findOne(menuDO.getParentId());
            menuDO.setLevel(parentMemu.getLevel()+1);
        }
        int sort = menuDao.countMenuByParentId(menuDO.getParentId())+1;
        menuDO.setSort(sort);
        menuDao.save(menuDO);
        return menuDO;
    }
    /**
     * 新增菜单
     * @param menuDO
@ -39,6 +62,14 @@ public class MenuService extends BaseJpaService<MenuDO, MenuDao> {
    public MenuDO addMenu(MenuDO menuDO){
        if(StringUtils.isBlank(menuDO.getParentId())){
            menuDO.setParentId(CommonContant.DEFAULT_PARENTID);
            menuDO.setLevel(0);
        }
        //设置level
        if(CommonContant.DEFAULT_PARENTID.equals(menuDO.getParentId())){
            menuDO.setLevel(0);
        }else {
            MenuDO parentMemu = menuDao.findOne(menuDO.getParentId());
            menuDO.setLevel(parentMemu.getLevel()+1);
        }
        int sort = menuDao.countMenuByParentId(menuDO.getParentId())+1;
        menuDO.setSort(sort);

+ 10 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/role/RoleMenuService.java

@ -3,12 +3,22 @@ package com.yihu.jw.base.service.role;
import com.yihu.jw.base.dao.role.RoleMenuDao;
import com.yihu.jw.entity.base.role.RoleMenuDO;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * 角色菜单
 * @author yeshijie on 2018/9/26.
 */
@Service
public class RoleMenuService extends BaseJpaService<RoleMenuDO, RoleMenuDao> {
    @Autowired
    private RoleMenuDao roleMenuDao;
    public List<RoleMenuDO> findRoleMenu(String roleId){
        return roleMenuDao.findByRoleId(roleId);
    }
}

+ 39 - 0
svr/svr-base/src/main/java/com/yihu/jw/base/service/role/RoleService.java

@ -1,14 +1,53 @@
package com.yihu.jw.base.service.role;
import com.yihu.jw.base.dao.role.RoleDao;
import com.yihu.jw.base.dao.role.RoleMenuDao;
import com.yihu.jw.entity.base.role.RoleDO;
import com.yihu.jw.entity.base.role.RoleMenuDO;
import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.rm.base.BaseRequestMapping;
import com.yihu.mysql.query.BaseJpaService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
 * Service - 角色
 * Created by progr1mmer on 2018/8/17.
 */
@Service
public class RoleService extends BaseJpaService<RoleDO, RoleDao> {
    @Autowired
    private RoleDao roleDao;
    @Autowired
    private RoleMenuDao roleMenuDao;
    public Envelop saveRole(RoleDO roleDO, List<RoleMenuDO> list){
        RoleDO role = roleDao.save(roleDO);
        List<RoleMenuDO> rs =  roleMenuDao.findByRoleId(role.getId());
        if(rs!=null&&rs.size()>0){
            roleMenuDao.delete(rs);
        }
        if(list!=null&&list.size()>0){
            for(RoleMenuDO r:list){
                r.setRoleId(role.getId());
            }
            roleMenuDao.save(list);
        }
        return Envelop.getSuccess(BaseRequestMapping.Role.api_success);
    }
    public Boolean findRoleNameExist(String name){
        List<RoleDO> list = roleDao.findByNameAndStatus(name,1);
        if(list!=null&&list.size()>0){
            return true;
        }
        return false;
    }
}

+ 11 - 35
svr/svr-base/src/main/java/com/yihu/jw/base/service/saas/SaasService.java

@ -100,7 +100,7 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
    /**
     * 默认租户管理员角色code
     */
    private final String roleCode = "saasAdmin";
    private final String roleCode = "2";
    /**
     * 注册新增
@ -113,8 +113,8 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
        saas.setStatus(SaasDO.Status.auditPassed);
        saas = saasDao.save(saas);
        List<BaseOrgDO> orgDOList = saas.getOrgList();
        List<BaseOrgSaasDO> baseOrgSaasDOs = new ArrayList<>(orgDOList.size());
        if(orgDOList!=null&&orgDOList.size()>0){
            List<BaseOrgSaasDO> baseOrgSaasDOs = new ArrayList<>(orgDOList.size());
            String saasId = saas.getId();
            orgDOList.forEach(org->{
                BaseOrgSaasDO baseOrgSaasDO = new BaseOrgSaasDO();
@ -122,8 +122,8 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
                baseOrgSaasDO.setSaasid(saasId);
                baseOrgSaasDOs.add(baseOrgSaasDO);
            });
            baseOrgSaasDao.save(baseOrgSaasDOs);
        }
        baseOrgSaasDao.save(baseOrgSaasDOs);
        //用户信息初始化
        UserDO userDO = new UserDO();
@ -222,40 +222,18 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
        userDO.setEmail(saas.getEmail());
        userDO.setMobile(saas.getMobile());
        userDO.setName(saas.getManagerName());
        baseOrgDao.deleteBySaasId(saasId);
        baseOrgSaasDao.deleteBySaasId(saasId);
        List<BaseOrgDO> orgDOList = saas.getOrgList();
        if(orgDOList!=null&&orgDOList.size()>0){
            List<BaseOrgSaasDO> baseOrgSaasDOs = new ArrayList<>(orgDOList.size());
            orgDOList.forEach(org->{
                BaseOrgDO orgDO = baseOrgDao.findByCodeAndSaasId(org.getCode(),defaultSaasId);
                org.setSaasid(saasId);
                org.setName(orgDO.getName());
                org.setCreateTime(new Date());
                org.setAddress(orgDO.getAddress());
                org.setAlias(orgDO.getAlias());
                org.setBrief(orgDO.getBrief());
                org.setCityCode(orgDO.getCityCode());
                org.setCityName(orgDO.getCityName());
                org.setDel(orgDO.getDel());
                org.setIntro(orgDO.getIntro());
                org.setLatitude(orgDO.getLatitude());
                org.setLegalperson(orgDO.getLegalperson());
                org.setLongitude(orgDO.getLongitude());
                org.setName(orgDO.getName());
                org.setOrgAdmin(orgDO.getOrgAdmin());
                org.setOrgUrl(orgDO.getOrgUrl());
                org.setPhoto(orgDO.getPhoto());
                org.setProvinceCode(orgDO.getProvinceCode());
                org.setProvinceName(orgDO.getProvinceName());
                org.setQrcode(orgDO.getQrcode());
                org.setSpell(orgDO.getSpell());
                org.setStreetCode(orgDO.getStreetCode());
                org.setStreetName(orgDO.getStreetName());
                org.setTownCode(orgDO.getTownCode());
                org.setTownName(orgDO.getTownName());
                org.setType(orgDO.getType());
                BaseOrgSaasDO baseOrgSaasDO = new BaseOrgSaasDO();
                baseOrgSaasDO.setOrgCode(org.getCode());
                baseOrgSaasDO.setSaasid(saasId);
                baseOrgSaasDOs.add(baseOrgSaasDO);
            });
            baseOrgSaasDao.save(baseOrgSaasDOs);
        }
        baseOrgDao.save(orgDOList);
        saasDao.save(oldSaas);
        userDao.save(userDO);
        return oldSaas;
@ -287,6 +265,7 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
            saasModuleDO.setStatus(moduleDO.getStatus());
            saasModuleDO.setType(moduleDO.getType());
            saasModuleDO.setUrl(moduleDO.getUrl());
            saasModuleDO.setLevel(moduleDO.getLevel());
        });
        saasDao.save(oldSaas);
        saasModuleDao.save(saasModuleDOList);
@ -361,8 +340,6 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
            user.setEnabled(true);
            user.setLocked(false);
            user.setSalt(randomString(5));
            //姓名
            user.setName(user.getEmail());
            //账号
            user.setUsername(user.getEmail());
            String password = user.getPassword();
@ -380,7 +357,6 @@ public class SaasService extends BaseJpaService<SaasDO, SaasDao> {
        }
        saas.setManager(user.getId());
        saas.setManagerName(user.getName());
        saas.setAppId(getCode());
        saas.setAppSecret(getCode());
        saas = saasDao.save(saas);

+ 1 - 1
svr/svr-base/src/main/java/com/yihu/jw/base/service/wx/WechatService.java

@ -205,7 +205,7 @@ public class WechatService {
                "from wx_wechat t";
        if(StringUtils.isNotBlank(saasId)){
            sql += " JOIN wx_wechat_saas s ON s.wechat_id = t.id " +
                   " WHERE s.saas_id ="+saasId;
                   " WHERE s.saas_id = '"+saasId+"'";
        }
        List<WxComboVO> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper(WxComboVO.class));
        return MixEnvelop.getSuccessList(BaseRequestMapping.WeChat.api_success,list);

+ 3 - 3
svr/svr-manage/src/main/resources/webapp/html/system/role/html/menuRole.html

@ -26,7 +26,7 @@
    </form>
</div>
<script>
    var roleCode = $("#myModal").attr("data-code");
    var roleModuleCode = $("#myModal").attr("data-code");
    var existMenuCodes = "";
    getExistMenuCodes();
    $("#divTree").jstree({
@ -51,7 +51,7 @@
        var menuCodes = codeArr.join(",");
       var data = {
            menuCodes:menuCodes,
            roleCode:roleCode
            roleModuleCode:roleModuleCode
        };
        do_get(server+"/manage/menuRole/change",data,function(data){
            reloadPrivilege();
@ -65,7 +65,7 @@
    function getExistMenuCodes(){
        var url = server+"/manage/menuRole/getMenuRoles";
        var data={
            roleCode:roleCode
            roleModuleCode:roleModuleCode
        }
        do_get(url,data,function(data){
            existMenuCodes = data;

+ 2 - 2
svr/svr-manage/src/main/resources/webapp/html/system/role/html/userRole.html

@ -121,7 +121,7 @@
        var url=server+"/manage/userRole/changeUserRole";
        var data={
            userCode:userCode,
            roleCode:code,
            roleModuleCode:code,
            usercode:usercode
        };
        do_get(url,data,function(data){
@ -136,7 +136,7 @@
        $.ajax({
            url:server+"/manage/userRole/getUserCodes",
            type: 'GET',
            data: {userCode:userCode,roleCode:code},
            data: {userCode:userCode,roleModuleCode:code},
            success: function(data){
                selectedCode = data.obj;
            },