Commit b1c24772d0a6c7d0763acd239fa31165069d72bd

Authored by Jiang
0 parents

初始化项目

Showing 58 changed files with 4844 additions and 0 deletions

Too many changes to show.

To preserve performance only 58 of 331 files are displayed.

.gitignore 0 → 100644
  1 +++ a/.gitignore
  1 +*.iml
  2 +.idea
  3 +.classpath
  4 +*/target/
  5 +*/webapp/WEB-INF/classes
  6 +*/webapp/WEB-INF/lib
  7 +*.MF
  8 +**/WEB-INF/classes/
  9 +**/WEB-INF/lib
  10 +**/.settings/
  11 +**/.classpath
  12 +**/.project
0 \ No newline at end of file 13 \ No newline at end of file
diligrp-manage-dao/.gitignore 0 → 100644
  1 +++ a/diligrp-manage-dao/.gitignore
  1 +/target/
diligrp-manage-dao/pom.xml 0 → 100644
  1 +++ a/diligrp-manage-dao/pom.xml
  1 +<?xml version="1.0"?>
  2 +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <parent>
  6 + <groupId>com.b2c.manage</groupId>
  7 + <artifactId>diligrp-manage</artifactId>
  8 + <version>0.0.1-SNAPSHOT</version>
  9 + </parent>
  10 + <groupId>com.b2c.manage.dao</groupId>
  11 + <artifactId>diligrp-manage-dao</artifactId>
  12 + <packaging>jar</packaging>
  13 + <name>diligrp-manage-dao</name>
  14 + <url>http://maven.apache.org</url>
  15 + <properties>
  16 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  17 + </properties>
  18 + <dependencies>
  19 + <dependency>
  20 + <groupId>com.b2c.manage.domain</groupId>
  21 + <artifactId>diligrp-manage-domain</artifactId>
  22 + <version>0.0.1-SNAPSHOT</version>
  23 + </dependency>
  24 + </dependencies>
  25 + <build>
  26 + <finalName>diligrp-manage-dao</finalName>
  27 + </build>
  28 +</project>
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/DataAuthDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/DataAuthDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +import com.diligrp.website.util.dao.IBaseDao;
  5 +
  6 +import com.diligrp.manage.domain.DataAuth;
  7 +
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * <B>Description</B> <br />
  12 + * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved.
  13 + * <br />
  14 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  15 + * <B>Company</B> 地利集团
  16 + *
  17 + * @createTime 2015-10-4 10:02:13
  18 + * @author template
  19 + */
  20 +public interface DataAuthDao extends IBaseDao<DataAuth> {
  21 + public List<DataAuth> findByType(Long userId, String type);
  22 +
  23 + public List<DataAuth> findByUser(Long userId);
  24 +
  25 + public DataAuth findByData(Long userId, String type, String dataAuth);
  26 +
  27 + public List<DataAuth> findByParentDataId(String parentDataId, String type, Long userId);
  28 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/MenuDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/MenuDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import java.util.List;
  6 +
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +import com.diligrp.website.util.dao.IBaseDao;
  10 +import com.diligrp.website.util.dao.BaseQuery;
  11 +
  12 +import com.diligrp.manage.domain.Menu;
  13 +import com.diligrp.manage.domain.MenuJson;
  14 +
  15 +/**
  16 + * <B>Description</B> <br />
  17 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  18 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  19 + * <B>Company</B> 地利集团
  20 + * @createTime 2014-7-3 14:24:39
  21 + * @author template
  22 + */
  23 +public interface MenuDao extends IBaseDao<Menu> {
  24 + /**
  25 + * 根据用户ID获取菜单
  26 + * @param id
  27 + * @return
  28 + */
  29 + public List<Menu> findByUserId(Long id);
  30 +
  31 +
  32 + /**
  33 + * 根据父节点查询菜单
  34 + * @param id
  35 + * @return
  36 + */
  37 + public List<Menu> findByParent(Long id);
  38 +
  39 + /**
  40 + * 查询出所有的菜单
  41 + * @return
  42 + */
  43 + public List<Menu> findAll();
  44 +
  45 + public List<Menu> findByRole(Long id);
  46 +
  47 + public Boolean delByNavbar(Long id);
  48 +
  49 +
  50 + public List<MenuJson> findAllMenuJson();
  51 +
  52 +
  53 + public Integer countAllChild(Long parentId);
  54 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/NavbarDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/NavbarDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import java.util.List;
  6 +
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +import com.diligrp.website.util.dao.IBaseDao;
  10 +import com.diligrp.website.util.dao.BaseQuery;
  11 +
  12 +import com.diligrp.manage.domain.Navbar;
  13 +
  14 +/**
  15 + * <B>Description</B> <br />
  16 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  17 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  18 + * <B>Company</B> 地利集团
  19 + * @createTime 2014-7-3 14:24:40
  20 + * @author template
  21 + */
  22 +public interface NavbarDao extends IBaseDao<Navbar> {
  23 + public List<Navbar> findAll(BaseQuery bq);
  24 +
  25 + /**
  26 + * 根据名称查询
  27 + * @param name
  28 + * @return
  29 + */
  30 + public Navbar findByCode(String name);
  31 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/ResourceDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/ResourceDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import com.diligrp.manage.domain.Resource;
  6 +import com.diligrp.website.util.dao.IBaseDao;
  7 +
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * <B>Description</B> <br />
  12 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  13 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  14 + * <B>Company</B> 地利集团
  15 + * @createTime 2014-7-3 14:24:40
  16 + * @author template
  17 + */
  18 +public interface ResourceDao extends IBaseDao<Resource> {
  19 +
  20 +// TODO:并不清楚最终目的,转 ResourceUrlDao
  21 + List<Resource> listAllResourceJson(Resource req);
  22 +
  23 + /**
  24 + *
  25 + * this method is 查询所有的Resource的URL记录
  26 + * @return
  27 + * @createTime 2014-8-19 下午2:46:01
  28 + * @author Nick
  29 + */
  30 +// TODO: 转 ResourceUrlDao
  31 + public List<String> listAllUrls();
  32 +
  33 + List<Resource> findByRole(Long id);
  34 +
  35 +// TODO: 转 ResourceUrlDao
  36 + List<Resource> findAll(Integer status);
  37 +
  38 +// TODO: 检查唯一性 ? 可能不需要
  39 + boolean checkResourceUrlUnique(String url, Long id);
  40 +
  41 +// TODO: 检查唯一性 ? 可能不需要
  42 + boolean checkResourceNameUnique(String resourceName, Long id);
  43 +
  44 + List<Resource> findByParent(Long id);
  45 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/ResourceUrlDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/ResourceUrlDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import com.diligrp.manage.domain.ResourceUrl;
  6 +import com.diligrp.website.util.dao.IBaseDao;
  7 +
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * <B>Description</B> <br />
  12 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  13 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  14 + * <B>Company</B> 地利集团
  15 + * @createTime 2014-7-3 14:24:40
  16 + * @author template
  17 + */
  18 +public interface ResourceUrlDao extends IBaseDao<ResourceUrl> {
  19 +
  20 +// TODO: 转 ResourceUrlDao
  21 +// List<Resource> findAll(Integer status);
  22 + public boolean deleteByParentId(Long id);
  23 +
  24 + public List<ResourceUrl> listAll();
  25 +
  26 + public List<ResourceUrl> getResUrlsByRoleId(Long roleId) ;
  27 +
  28 + public List<ResourceUrl> listByResourceID(Long id);
  29 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/RoleDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/RoleDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import com.diligrp.manage.domain.Role;
  6 +import com.diligrp.manage.domain.RoleUser;
  7 +import com.diligrp.manage.domain.UserRole;
  8 +import com.diligrp.website.util.dao.IBaseDao;
  9 +
  10 +import java.util.List;
  11 +import java.util.Map;
  12 +
  13 +/**
  14 + * <B>Description</B> <br />
  15 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  16 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  17 + * <B>Company</B> 地利集团
  18 + * @createTime 2014-7-3 14:24:41
  19 + * @author template
  20 + */
  21 +public interface RoleDao extends IBaseDao<Role> {
  22 +
  23 + List<Role> getAllRoles();
  24 + public Boolean saveRoleMenu(Map<String, Object> role);
  25 +
  26 + /**
  27 + * 删除角色所有的权限
  28 + * @param id
  29 + * @return
  30 + */
  31 + public Boolean delByRole(Long id);
  32 +
  33 + /**
  34 + * 根据菜单获取到角色
  35 + * @param id
  36 + * @return
  37 + */
  38 + public List<Role> findByMenu(Long id);
  39 + public List<UserRole> findUserIdByRoleId(Long id);
  40 + Boolean roleResourceBatchDelete(Long roleId, List<Long> resourceIdsToBeDeleted);
  41 + Boolean roleResourceBatchInsert(Long roleId, List<Long> resourceIdsToBeAdded);
  42 +
  43 + /**
  44 + * 用户角色
  45 + * @param roleId
  46 + * @return
  47 + */
  48 + public List<RoleUser> findUsersByRoleId(Long roleId);
  49 +
  50 + public void delUser(Long roleId, Long userId);
  51 +
  52 + public List<Role> findByResource(Long id);
  53 +
  54 + public List<Role> findByUserId(Long id);
  55 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/UserDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/UserDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import java.util.List;
  6 +import java.util.Map;
  7 +
  8 +import com.diligrp.manage.domain.User;
  9 +import com.diligrp.manage.domain.UserRole;
  10 +import com.diligrp.website.util.dao.IBaseDao;
  11 +
  12 +/**
  13 + * <B>Description</B> <br />
  14 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  15 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  16 + * <B>Company</B> 地利集团
  17 + * @createTime 2014-7-3 14:24:41
  18 + * @author template
  19 + */
  20 +public interface UserDao extends IBaseDao<User> {
  21 +
  22 + public User getUserByUserName(String userName);
  23 +
  24 + public Boolean saveUserRoles(Map<String, Long> map);
  25 +
  26 + public Long saveUser(User user);
  27 +
  28 + public Boolean deleteUserRoleByUserId(Long pk);
  29 +
  30 + public List<UserRole> findRolesByUserId(Long pk);
  31 + public List<User> findUserByRole(Long id);
  32 +
  33 + public boolean checkUserNumber(String serialNumber, String id);
  34 +
  35 + public User findUserByIdIgoreDel(Long pk);
  36 +
  37 + List<String> receptByUsername(String username);
  38 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/UserResourceDao.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/UserResourceDao.java
  1 +
  2 +package com.diligrp.manage.dao;
  3 +
  4 +
  5 +import java.util.List;
  6 +import java.util.Map;
  7 +
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import com.diligrp.manage.domain.UserResource;
  11 +import com.diligrp.website.util.dao.IBaseDao;
  12 +import com.diligrp.website.util.dao.BaseQuery;
  13 +
  14 +
  15 +/**
  16 + * <B>Description</B> <br />
  17 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  18 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  19 + * <B>Company</B> 地利集团
  20 + * @createTime 2014-7-3 14:24:39
  21 + * @author template
  22 + */
  23 +public interface UserResourceDao extends IBaseDao<UserResource> {
  24 + /**
  25 + * 根据用户名称获取用户资源
  26 + * @param id
  27 + * @return
  28 + */
  29 + public Map<String, String> findResourceByUserName(String userName);
  30 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/DataAuthDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/DataAuthDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +import org.springframework.stereotype.Component;
  5 +
  6 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  7 +import com.diligrp.manage.dao.DataAuthDao;
  8 +
  9 +import com.diligrp.manage.domain.DataAuth;
  10 +
  11 +import java.util.HashMap;
  12 +import java.util.List;
  13 +import java.util.Map;
  14 +
  15 +/**
  16 + * <B>Description</B> <br />
  17 + * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved.
  18 + * <br />
  19 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  20 + * <B>Company</B> 地利集团
  21 + *
  22 + * @createTime 2015-10-4 10:02:13
  23 + * @author template
  24 + */
  25 +@Component
  26 +public class DataAuthDaoImpl extends BaseDaoImpl<DataAuth> implements DataAuthDao {
  27 +
  28 + private final String CLASS_NAME = this.getClass().getCanonicalName();
  29 +
  30 + @Override
  31 + public List<DataAuth> findByType(Long userId, String type) {
  32 + Map<String, Object> map = new HashMap<>();
  33 + map.put("userId", userId);
  34 + map.put("type", type);
  35 + return getSqlSessionTemplate().selectList(CLASS_NAME + ".findByType", map);
  36 + }
  37 +
  38 + @Override
  39 + public List<DataAuth> findByUser(Long userId) {
  40 + return getSqlSessionTemplate().selectList(CLASS_NAME + ".findByUser", userId);
  41 + }
  42 +
  43 + @Override
  44 + public DataAuth findByData(Long userId, String type, String dataAuth) {
  45 + Map<String, Object> map = new HashMap<>();
  46 + map.put("userId", userId);
  47 + map.put("type", type);
  48 + map.put("dataId", dataAuth);
  49 + return getSqlSessionTemplate().selectOne(CLASS_NAME + ".findByData", map);
  50 + }
  51 +
  52 + @Override
  53 + public List<DataAuth> findByParentDataId(String parentDataId, String type, Long userId) {
  54 + Map<String, Object> params = new HashMap<>();
  55 + params.put("parentDataId", parentDataId);
  56 + params.put("type", type);
  57 + params.put("userId", userId);
  58 + return this.getSqlSessionTemplate().selectList(CLASS_NAME + ".findByParentDataId", params);
  59 + }
  60 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/MenuDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/MenuDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import java.util.List;
  6 +
  7 +import org.springframework.stereotype.Component;
  8 +
  9 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  10 +import com.diligrp.manage.dao.MenuDao;
  11 +
  12 +
  13 +import com.diligrp.manage.domain.Menu;
  14 +import com.diligrp.manage.domain.MenuJson;
  15 +
  16 +/**
  17 + * <B>Description</B> <br />
  18 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  19 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  20 + * <B>Company</B> 地利集团
  21 + * @createTime 2014-7-3 14:24:39
  22 + * @author template
  23 + */
  24 +@Component
  25 +public class MenuDaoImpl extends BaseDaoImpl<Menu> implements MenuDao{
  26 + /**
  27 + * 根据用户ID获取菜单
  28 + * @param id
  29 + * @return
  30 + */
  31 + public List<Menu> findByUserId(Long id) {
  32 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".findByUser", id);
  33 + }
  34 +
  35 + /**
  36 + * 根据父节点查询菜单
  37 + * @param id
  38 + * @return
  39 + */
  40 + public List<Menu> findByParent(Long id) {
  41 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".getByParent", id);
  42 + }
  43 +
  44 + public List<Menu> findAll() {
  45 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".getAll");
  46 + }
  47 +
  48 + @Override
  49 + public List<Menu> findByRole(Long id) {
  50 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".getByRole", id);
  51 + }
  52 +
  53 + @Override
  54 + public Boolean delByNavbar(Long id) {
  55 + return getSqlSessionTemplate().update(getClass().getCanonicalName() + ".delByNavbar", id) > 0;
  56 + }
  57 +
  58 + @Override
  59 + public List<MenuJson> findAllMenuJson() {
  60 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".getAllMenuJson");
  61 + }
  62 +
  63 + @Override
  64 + public Integer countAllChild(Long parentId) {
  65 + return getSqlSessionTemplate().selectOne(getClass().getCanonicalName() + ".countAllChild", parentId);
  66 + }
  67 +
  68 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/NavbarDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/NavbarDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import java.util.List;
  6 +
  7 +import com.diligrp.website.util.dao.BaseQuery;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  11 +import com.diligrp.manage.dao.NavbarDao;
  12 +
  13 +
  14 +import com.diligrp.manage.domain.Navbar;
  15 +
  16 +/**
  17 + * <B>Description</B> <br />
  18 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  19 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  20 + * <B>Company</B> 地利集团
  21 + * @createTime 2014-7-3 14:24:40
  22 + * @author template
  23 + */
  24 +@Component
  25 +public class NavbarDaoImpl extends BaseDaoImpl<Navbar> implements NavbarDao{
  26 + @Override
  27 + public List<Navbar> findAll(BaseQuery bq) {
  28 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".findAll", bq);
  29 + }
  30 +
  31 + public Navbar findByCode(String name) {
  32 + List<Navbar> list = getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".findByCode", name);
  33 + if (list == null || list.size()<= 0) {
  34 + return null;
  35 + }
  36 + return list.get(0);
  37 + }
  38 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/ResourceDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/ResourceDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import com.diligrp.manage.dao.ResourceDao;
  6 +import com.diligrp.manage.domain.Resource;
  7 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import java.util.HashMap;
  11 +import java.util.List;
  12 +import java.util.Map;
  13 +
  14 +/**
  15 + * <B>Description</B> <br />
  16 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  17 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  18 + * <B>Company</B> 地利集团
  19 + * @createTime 2014-7-3 14:24:40
  20 + * @author template
  21 + */
  22 +@Component
  23 +public class ResourceDaoImpl extends BaseDaoImpl<Resource> implements ResourceDao{
  24 +
  25 + @Override
  26 + public List<String> listAllUrls(){
  27 + return getSqlSessionTemplate().selectList(super.getClass().getCanonicalName() + ".listAllUrls");
  28 + }
  29 +
  30 + @Override
  31 + public List<Resource> listAllResourceJson(Resource resource) {
  32 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".getAllResourceJson", resource);
  33 + }
  34 +
  35 + @Override
  36 + public List<Resource> findByRole(Long id) {
  37 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName()+ ".findByRole", id);
  38 + }
  39 +
  40 + @Override
  41 + public List<Resource> findAll(Integer status) {
  42 + Map<String, Object> map = new HashMap<>();
  43 + map.put("status", status);
  44 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".findAll", map);
  45 + }
  46 +
  47 + @Override
  48 + public boolean checkResourceUrlUnique(String url, Long id) {
  49 + Map<String, Object> map = new HashMap<String, Object>();
  50 + map.put("url", url);
  51 + map.put("id", id);
  52 + return getSqlSessionTemplate().selectOne(this.getClass().getCanonicalName()+ ".checkResourceUrlUnique", map);
  53 + }
  54 +
  55 + @Override
  56 + public boolean checkResourceNameUnique(String resourceName, Long id) {
  57 + Map<String, Object> map = new HashMap<String, Object>();
  58 + map.put("resourceName", resourceName);
  59 + map.put("id", id);
  60 + return getSqlSessionTemplate().selectOne(this.getClass().getCanonicalName()+ ".checkResourceNameUnique", map);
  61 + }
  62 +
  63 +
  64 + @Override
  65 + public List<Resource> findByParent(Long id) {
  66 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName()+ ".findByParent", id);
  67 + }
  68 +
  69 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/ResourceUrlDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/ResourceUrlDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import com.diligrp.manage.dao.ResourceUrlDao;
  6 +import com.diligrp.manage.domain.ResourceUrl;
  7 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import java.util.List;
  11 +
  12 +/**
  13 + * <B>Description</B> <br />
  14 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  15 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  16 + * <B>Company</B> 地利集团
  17 + * @createTime 2014-7-3 14:24:40
  18 + * @author template
  19 + */
  20 +@Component
  21 +public class ResourceUrlDaoImpl extends BaseDaoImpl<ResourceUrl> implements ResourceUrlDao {
  22 + @Override
  23 + public boolean deleteByParentId(Long id) {
  24 + return getSqlSessionTemplate().delete(this.getClass().getCanonicalName() + ".deleteByParentId", id) > 0;
  25 + }
  26 +
  27 + public List<ResourceUrl> listAll(){
  28 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".listAll");
  29 + }
  30 +
  31 + @Override
  32 + public List<ResourceUrl> getResUrlsByRoleId(Long roleId) {
  33 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".getResUrlsByRoleId", roleId);
  34 + }
  35 +
  36 + @Override
  37 + public List<ResourceUrl> listByResourceID(Long id) {
  38 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".listByResourceID", id);
  39 + }
  40 +
  41 +// @Override
  42 +// public List<Resource> findAll(Integer status) {
  43 +// Map<String, Object> map = new HashMap<>();
  44 +// map.put("status", status);
  45 +// return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".findAll", map);
  46 +// }
  47 +
  48 +
  49 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/RoleDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/RoleDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import com.diligrp.manage.dao.RoleDao;
  6 +import com.diligrp.manage.domain.Role;
  7 +import com.diligrp.manage.domain.RoleUser;
  8 +import com.diligrp.manage.domain.UserRole;
  9 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.HashMap;
  13 +import java.util.List;
  14 +import java.util.Map;
  15 +
  16 +/**
  17 + * <B>Description</B> <br />
  18 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  19 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  20 + * <B>Company</B> 地利集团
  21 + * @createTime 2014-7-3 14:24:41
  22 + * @author template
  23 + */
  24 +@Component
  25 +public class RoleDaoImpl extends BaseDaoImpl<Role> implements RoleDao{
  26 +
  27 + @Override
  28 + public List<Role> getAllRoles() {
  29 + return getSqlSessionTemplate().selectList(this.getClass().getCanonicalName() + ".getAllRoles");
  30 + }
  31 +
  32 + @Override
  33 + public Boolean saveRoleMenu(Map<String, Object> role) {
  34 + return getSqlSessionTemplate().insert(getClass().getCanonicalName() + ".saveRoleMenu", role) > 0;
  35 + }
  36 + @Override
  37 + public Boolean delByRole(Long id) {
  38 + return getSqlSessionTemplate().delete(getClass().getCanonicalName() + ".delByRole", id) > 0;
  39 + }
  40 + @Override
  41 + public List<Role> findByMenu(Long id) {
  42 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".getByMenu", id);
  43 + }
  44 +
  45 + @Override
  46 + public List<UserRole> findUserIdByRoleId(Long id) {
  47 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".findUserByRoleId", id);
  48 + }
  49 +
  50 + @Override
  51 + public Boolean roleResourceBatchDelete(Long roleId, List<Long> resourceIdsToBeDeleted) {
  52 + Map<String, Object> map = new HashMap<String, Object>();
  53 + map.put("roleId", roleId);
  54 + map.put("resourceIds", resourceIdsToBeDeleted);
  55 + return getSqlSessionTemplate().delete(getClass().getCanonicalName() + ".roleResourceBatchDelete", map) > 0;
  56 + }
  57 +
  58 + @Override
  59 + public Boolean roleResourceBatchInsert(Long roleId, List<Long> resourceIdsToBeAdded) {
  60 + Map<String, Object> map = new HashMap<String, Object>();
  61 + map.put("roleId", roleId);
  62 + map.put("resourceIds", resourceIdsToBeAdded);
  63 + return getSqlSessionTemplate().insert(getClass().getCanonicalName() + ".roleResourceBatchInsert", map) > 0;
  64 + }
  65 +
  66 + @Override
  67 + public List<RoleUser> findUsersByRoleId(Long roleId) {
  68 + return getSqlSessionTemplate().selectList(super.getClass().getCanonicalName() + ".findUsersByRoleId", roleId);
  69 + }
  70 +
  71 + @Override
  72 + public void delUser(Long roleId, Long userId) {
  73 + Map<String, Object> map = new HashMap<String, Object>();
  74 + map.put("roleId", roleId);
  75 + map.put("userId", userId);
  76 + getSqlSessionTemplate().delete(getClass().getCanonicalName() + ".delUser", map);
  77 + }
  78 +
  79 + @Override
  80 + public List<Role> findByResource(Long id) {
  81 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".findByResource", id);
  82 + }
  83 +
  84 + @Override
  85 + public List<Role> findByUserId(Long id) {
  86 + return getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".findByUserId", id);
  87 + }
  88 +}
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/UserDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/UserDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import java.util.ArrayList;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +
  9 +import org.springframework.stereotype.Component;
  10 +
  11 +import com.diligrp.manage.dao.UserDao;
  12 +import com.diligrp.manage.domain.User;
  13 +import com.diligrp.manage.domain.UserRole;
  14 +import com.diligrp.website.util.dao.BaseQuery;
  15 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  16 +
  17 +/**
  18 + * <B>Description</B> <br />
  19 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  20 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  21 + * <B>Company</B> 地利集团
  22 + * @createTime 2014-7-3 14:24:41
  23 + * @author template
  24 + */
  25 +@Component
  26 +public class UserDaoImpl extends BaseDaoImpl<User> implements UserDao{
  27 +
  28 + @Override
  29 + public User getUserByUserName(String userName){
  30 + return getSqlSessionTemplate().selectOne(super.getClass().getCanonicalName() + ".getByUserName", userName);
  31 + }
  32 +
  33 + @Override
  34 + public User findUserByIdIgoreDel(Long pk) {
  35 + return getSqlSessionTemplate().selectOne(super.getClass().getCanonicalName() + ".getByUserByIdIgoreDel", pk);
  36 + }
  37 +
  38 + @Override
  39 + public List<String> receptByUsername(String username) {
  40 + List<User> users = getSqlSessionTemplate().selectList(super.getClass().getCanonicalName() + ".receptByUsername", username);
  41 + List<String> uns = new ArrayList<>();
  42 + for (User u : users) {
  43 + uns.add(u.getUserName());
  44 + }
  45 + return uns;
  46 + }
  47 +
  48 + @Override
  49 + public Boolean saveUserRoles(Map<String, Long> user) {
  50 + return getSqlSessionTemplate().insert(super.getClass().getCanonicalName() + ".batchSaveUserRoles", user) > 0;
  51 + }
  52 +
  53 + @Override
  54 + public Long saveUser(User user) {
  55 + getSqlSessionTemplate().insert(this.getClass().getCanonicalName() + ".save", user);
  56 + return user.getId();
  57 + }
  58 +
  59 + @Override
  60 + public List<UserRole> findRolesByUserId(Long pk) {
  61 + return getSqlSessionTemplate().selectList(super.getClass().getCanonicalName() + ".findRolesByUserId", pk);
  62 + }
  63 +
  64 + @Override
  65 + public List<User> findUserByRole(Long id) {
  66 + return getSqlSessionTemplate().selectList(super.getClass().getCanonicalName() + ".findUserByRole", id);
  67 + }
  68 +
  69 + @Override
  70 + public Boolean deleteUserRoleByUserId(Long pk) {
  71 + return getSqlSessionTemplate().delete(this.getClass().getCanonicalName() + ".deleteUserRoleByUserId", pk) > 0;
  72 + }
  73 +
  74 + @Override
  75 + public boolean checkUserNumber(String serialNumber, String id) {
  76 + if (id != null) {
  77 + User user = this.getById(Long.parseLong(id));
  78 + if (serialNumber.equals(user.getSerialNumber())) {
  79 + return true;
  80 + }
  81 + }
  82 + List<User> userList = getSqlSessionTemplate().selectList(super.getClass().getCanonicalName() + ".checkUserNumber", serialNumber);
  83 + return userList.size() > 0 ? false : true;
  84 +
  85 + }
  86 +
  87 +}
  88 +
diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/UserResourceDaoImpl.java 0 → 100644
  1 +++ a/diligrp-manage-dao/src/main/java/com/diligrp/manage/dao/impl/UserResourceDaoImpl.java
  1 +
  2 +package com.diligrp.manage.dao.impl;
  3 +
  4 +
  5 +import java.util.HashMap;
  6 +import java.util.List;
  7 +import java.util.Map;
  8 +
  9 +import com.diligrp.manage.domain.Resource;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import com.diligrp.website.util.dao.impl.BaseDaoImpl;
  13 +import com.diligrp.manage.dao.UserResourceDao;
  14 +
  15 +
  16 +import com.diligrp.manage.domain.UserResource;
  17 +
  18 +/**
  19 + * <B>Description</B> <br />
  20 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  21 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  22 + * <B>Company</B> 地利集团
  23 + * @createTime 2014-7-3 14:24:39
  24 + * @author template
  25 + */
  26 +@Component
  27 +public class UserResourceDaoImpl extends BaseDaoImpl<UserResource> implements UserResourceDao{
  28 +
  29 + @Override
  30 + public Map<String, String> findResourceByUserName(String userName) {
  31 + Map<String, String> userResourceMap = new HashMap<String, String>();
  32 + List<UserResource> resourceList = getSqlSessionTemplate().selectList(getClass().getCanonicalName() + ".findResourceByUserName", userName);
  33 + if (resourceList.size() > 0) {
  34 + for (int i = 0; i < resourceList.size(); i++) {
  35 + UserResource item = resourceList.get(i);
  36 + if (item.getType().equals(3)) {
  37 + userResourceMap.put("fragment:" + item.getUrl(), item.getResourceName());
  38 + } else {
  39 + userResourceMap.put(item.getMethod() + "/" + item.getUrl(), item.getResourceName());
  40 + }
  41 + }
  42 + return userResourceMap;
  43 + }
  44 + return null;
  45 + }
  46 +
  47 +}
diligrp-manage-domain/.gitignore 0 → 100644
  1 +++ a/diligrp-manage-domain/.gitignore
  1 +/target/
diligrp-manage-domain/pom.xml 0 → 100644
  1 +++ a/diligrp-manage-domain/pom.xml
  1 +<?xml version="1.0"?>
  2 +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <parent>
  6 + <groupId>com.b2c.manage</groupId>
  7 + <artifactId>diligrp-manage</artifactId>
  8 + <version>0.0.1-SNAPSHOT</version>
  9 + </parent>
  10 + <groupId>com.b2c.manage.domain</groupId>
  11 + <artifactId>diligrp-manage-domain</artifactId>
  12 + <version>0.0.1-SNAPSHOT</version>
  13 + <packaging>jar</packaging>
  14 + <name>diligrp-manage-domain</name>
  15 + <url>http://maven.apache.org</url>
  16 + <properties>
  17 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18 + </properties>
  19 + <dependencies>
  20 + </dependencies>
  21 + <build>
  22 + <finalName>diligrp-manage-domain</finalName>
  23 + </build>
  24 +</project>
diligrp-manage-domain/src/main/java/com/diligrp/manage/common/ManageUtils.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/common/ManageUtils.java
  1 +package com.diligrp.manage.common;
  2 +
  3 +import javax.servlet.http.HttpServletRequest;
  4 +
  5 +
  6 +public class ManageUtils {
  7 +
  8 + public static String getRemoteIP(HttpServletRequest request) {
  9 + String ip = null;
  10 + if ((request.getHeader("x-forwarded-for") != null) && (!"unknown".equalsIgnoreCase(request.getHeader("x-forwarded-for")))) {
  11 + ip = request.getHeader("x-forwarded-for");
  12 + }else{
  13 + ip = request.getRemoteAddr();
  14 + }
  15 + return ip;
  16 + }
  17 +
  18 +
  19 +
  20 +}
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/DataAuth.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/DataAuth.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import com.diligrp.website.util.domain.BaseDomain;
  4 +
  5 +/**
  6 + * <B>Description</B> <br />
  7 + * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved.
  8 + * <br />
  9 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  10 + * <B>Company</B> 地利集团
  11 + *
  12 + * @createTime 2015-10-4 10:02:14
  13 + * @author template
  14 + */
  15 +public class DataAuth extends BaseDomain {
  16 +
  17 + /**
  18 + *
  19 + */
  20 + private static final long serialVersionUID = -1664669029495999754L;
  21 + /**
  22 + *
  23 + */
  24 + private String type;
  25 + /**
  26 + * 用户ID
  27 + */
  28 + private Long userId;
  29 + /**
  30 + * 数据权限ID
  31 + */
  32 + private String dataId;
  33 +
  34 + private String label;
  35 + /**
  36 + * 父级id
  37 + */
  38 + private Long parentDataId;
  39 +
  40 + public void setType(String type) {
  41 + this.type = type;
  42 + }
  43 +
  44 + public String getType() {
  45 + return this.type;
  46 + }
  47 +
  48 + public void setUserId(Long userId) {
  49 + this.userId = userId;
  50 + }
  51 +
  52 + public Long getUserId() {
  53 + return this.userId;
  54 + }
  55 +
  56 + public String getDataId() {
  57 + return dataId;
  58 + }
  59 +
  60 + public void setDataId(String dataId) {
  61 + this.dataId = dataId;
  62 + }
  63 +
  64 + public String getLabel() {
  65 + return label;
  66 + }
  67 +
  68 + public void setLabel(String label) {
  69 + this.label = label;
  70 + }
  71 +
  72 + public Long getParentDataId() {
  73 + return parentDataId;
  74 + }
  75 +
  76 + public void setParentDataId(Long parentDataId) {
  77 + this.parentDataId = parentDataId;
  78 + }
  79 +
  80 + public String toString() {
  81 + StringBuffer sb = new StringBuffer();
  82 + sb.append("dataAuth [");
  83 + sb.append("id = ");
  84 + sb.append(id);
  85 + sb.append(", type = ");
  86 + sb.append(type);
  87 + sb.append(", userId = ");
  88 + sb.append(userId);
  89 + sb.append(", dataId = ");
  90 + sb.append(dataId);
  91 + sb.append(", parentDataId = ");
  92 + sb.append(this.parentDataId);
  93 + sb.append("]");
  94 + return sb.toString();
  95 + }
  96 +}
0 \ No newline at end of file 97 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Menu.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Menu.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import com.diligrp.website.util.domain.BaseDomain;
  4 +import java.util.*;
  5 +
  6 +
  7 +/**
  8 + * <B>Description</B> <br />
  9 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  10 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  11 + * <B>Company</B> 地利集团
  12 + * @createTime 2014-7-3 14:24:39
  13 + * @author template
  14 + */
  15 +public class Menu extends BaseDomain {
  16 +
  17 + /**
  18 + *
  19 + */
  20 + private static final long serialVersionUID = 1L;
  21 +
  22 + /**
  23 + * 缓存菜单KEY
  24 + */
  25 + private static final String REDIS_MENU_TREE_KEY = "dili_redis_MANAGE_MENU_";
  26 +
  27 + /**
  28 + * 类型目录
  29 + */
  30 + public static final Integer TYPE_DIR = 0;
  31 + /**
  32 + * 类型, 叶子
  33 + */
  34 + public static final Integer TYPE_LEAF = 1;
  35 +
  36 +
  37 + /**
  38 + * 父级id
  39 + */
  40 + private Long parentId;
  41 +
  42 + /**
  43 + * 子菜单
  44 + */
  45 + private List<Menu> children = new ArrayList<Menu>();
  46 + /**
  47 + * 菜单排序
  48 + */
  49 + private Integer sort;
  50 + /**
  51 + * 是否为根节点
  52 + */
  53 + private Integer isRoot;
  54 + /**
  55 + * 菜单url
  56 + */
  57 + private String menuUrl;
  58 + /**
  59 + * 菜单名字
  60 + */
  61 + private String label;
  62 + /**
  63 + * 菜单描述
  64 + */
  65 + private String description;
  66 + /**
  67 + * 打开链接的位置,0表示当前窗口,1表示新开窗口
  68 + */
  69 + private Integer target;
  70 + /**
  71 + * 外键
  72 + */
  73 + private Long navbarId;
  74 + /**
  75 + * 类型, 0目录, 1连接
  76 + */
  77 + private Integer type;
  78 +
  79 + /**
  80 + * 第三方系统
  81 + */
  82 + private Navbar navbar;
  83 +
  84 + private Long resourceId;
  85 +
  86 + public Menu() {
  87 +
  88 + }
  89 +
  90 + public Menu(Long parentId) {
  91 + this.parentId = parentId;
  92 + }
  93 +
  94 +
  95 + public void sortChildren() {
  96 + List<Menu> child = this.getChildren();
  97 + if (child == null) {
  98 + return;
  99 + }
  100 + Collections.sort(children, new Comparator<Menu>() {
  101 + @Override
  102 + public int compare(Menu a, Menu b) {
  103 + if (a.getSort() < 0) {
  104 + return -1;
  105 + }
  106 + if (b.getSort() < 0) {
  107 + return 1;
  108 + }
  109 + if (a.getSort().equals(b.getSort())) {
  110 + return 0;
  111 + }
  112 + if (a.getSort() < b.getSort()) {
  113 + return -1;
  114 + }
  115 + return 1;
  116 + }
  117 + });
  118 +
  119 + for (Menu menu : child) {
  120 + menu.sortChildren();
  121 + }
  122 + }
  123 +// public void sortChildren() {
  124 +// if (this.children == null) {
  125 +// return;
  126 +// }
  127 +// for (Menu menu : children) {
  128 +// menu.sortChildren();
  129 +// }
  130 +// Collections.sort(children, new Comparator<Menu>() {
  131 +// @Override
  132 +// public int compare(Menu a, Menu b) {
  133 +// return a.getSort() == b.getSort() ? 0 : a.getSort() < b.getSort() ? -1 : 1;
  134 +// }
  135 +// });
  136 +// }
  137 +
  138 + /**
  139 + * 根据父节点设置是否是根结点
  140 + */
  141 + public void initRoot(){
  142 + if (this.getParentId() == null || this.getParentId() <= 0) {
  143 + this.setIsRoot(1);
  144 + } else {
  145 + this.setIsRoot(0);
  146 + }
  147 + }
  148 +
  149 + public void setParentId (Long parentId){
  150 + this.parentId = parentId;
  151 + }
  152 + public Long getParentId(){
  153 + return this.parentId;
  154 + }
  155 +
  156 + public void setSort (Integer sort){
  157 + this.sort = sort;
  158 + }
  159 + public Integer getSort(){
  160 + return this.sort;
  161 + }
  162 +
  163 + public void setIsRoot (Integer isRoot){
  164 + this.isRoot = isRoot;
  165 + }
  166 + public Integer getIsRoot(){
  167 + return this.isRoot;
  168 + }
  169 +
  170 + public void setMenuUrl (String menuUrl){
  171 + this.menuUrl = menuUrl;
  172 + }
  173 + public String getMenuUrl(){
  174 + return this.menuUrl;
  175 + }
  176 +
  177 + public String getLabel() {
  178 + return label;
  179 + }
  180 +
  181 + public void setLabel(String label) {
  182 + this.label = label;
  183 + }
  184 +
  185 + public void setDescription (String description){
  186 + this.description = description;
  187 + }
  188 + public String getDescription(){
  189 + return this.description;
  190 + }
  191 +
  192 + public void setTarget (Integer target){
  193 + this.target = target;
  194 + }
  195 + public Integer getTarget(){
  196 + return this.target;
  197 + }
  198 +
  199 + public void setNavbarId (Long navbarId){
  200 + this.navbarId = navbarId;
  201 + }
  202 + public Long getNavbarId(){
  203 + return this.navbarId;
  204 + }
  205 +
  206 + public void setType (Integer type){
  207 + this.type = type;
  208 + }
  209 + public Integer getType(){
  210 + return this.type;
  211 + }
  212 +
  213 + public Navbar getNavbar() {
  214 + return navbar;
  215 + }
  216 +
  217 + public Long getResourceId() {
  218 + return resourceId;
  219 + }
  220 +
  221 + public void setResourceId(Long resourceId) {
  222 + this.resourceId = resourceId;
  223 + }
  224 +
  225 + public void setNavbar(Navbar navbar) {
  226 + this.navbar = navbar;
  227 + }
  228 +
  229 + public List<Menu> getChildren() {
  230 + return children;
  231 + }
  232 +
  233 + public void setChildren(List<Menu> children) {
  234 + this.children = children;
  235 + }
  236 +
  237 + public void addChildren(Menu menu) {
  238 + if (children == null) {
  239 + children = new ArrayList<>();
  240 + }
  241 + children.add(menu);
  242 + }
  243 +
  244 + public String toString(){
  245 + StringBuffer sb = new StringBuffer();
  246 + sb.append("Menu [");
  247 + sb.append("id = ");
  248 + sb.append(id);
  249 + sb.append(", parentId = ");
  250 + sb.append(parentId);
  251 + sb.append(", sort = ");
  252 + sb.append(sort);
  253 + sb.append(", isRoot = ");
  254 + sb.append(isRoot);
  255 + sb.append(", menuUrl = ");
  256 + sb.append(menuUrl);
  257 + sb.append(", label = ");
  258 + sb.append(label);
  259 + sb.append(", description = ");
  260 + sb.append(description);
  261 + sb.append(", target = ");
  262 + sb.append(target);
  263 + sb.append(", navbarId = ");
  264 + sb.append(navbarId);
  265 + sb.append(", created = ");
  266 + sb.append(created);
  267 + sb.append(", modified = ");
  268 + sb.append(modified);
  269 + sb.append(", navbar = ");
  270 + sb.append(navbar);
  271 + sb.append(", type = ");
  272 + sb.append(type);
  273 + sb.append(", childSize = ");
  274 + sb.append(children.size());
  275 + sb.append("]");
  276 + return sb.toString();
  277 + }
  278 +
  279 + /**
  280 + * 子列表REDIS KEY
  281 + * @param id
  282 + * @return
  283 + */
  284 + public static String listChildrenKey(Long id) {
  285 + return REDIS_MENU_TREE_KEY + "_CHILDREN_" + id;
  286 + }
  287 +
  288 + /**
  289 + * 单个menu的REDIS
  290 + * @param id
  291 + * @return
  292 + */
  293 + public static String itemKey(Long id) {
  294 + return REDIS_MENU_TREE_KEY + "_ITEM_" + id;
  295 + }
  296 +
  297 + public static String allTreeKey() {
  298 + return REDIS_MENU_TREE_KEY + "_ALL_TREE";
  299 + }
  300 +}
0 \ No newline at end of file 301 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/MenuJson.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/MenuJson.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import com.alibaba.fastjson.annotation.JSONField;
  4 +import com.diligrp.website.util.domain.BaseDomain;
  5 +import java.util.*;
  6 +
  7 +
  8 +/**
  9 + * <B>Description</B> <br />
  10 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  11 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  12 + * <B>Company</B> 地利集团
  13 + * @createTime 2014-7-3 14:24:39
  14 + * @author template
  15 + */
  16 +public class MenuJson extends BaseDomain {
  17 +
  18 + private static final long serialVersionUID = 1L;
  19 +
  20 + private Long parentId;
  21 +
  22 + private Integer sort;
  23 +
  24 + private String menuUrl;
  25 +
  26 + private String label;
  27 +
  28 + private String description;
  29 +
  30 + private Long resourceId;
  31 +
  32 + @JSONField(name="_parentId")
  33 + public Long getParentId() {
  34 + return parentId;
  35 + }
  36 + public void setParentId(Long parentId) {
  37 + this.parentId = parentId;
  38 + }
  39 +
  40 + public Integer getSort() {
  41 + return sort;
  42 + }
  43 +
  44 + public void setSort(Integer sort) {
  45 + this.sort = sort;
  46 + }
  47 +
  48 + public String getMenuUrl() {
  49 + return menuUrl;
  50 + }
  51 +
  52 + public void setMenuUrl(String menuUrl) {
  53 + this.menuUrl = menuUrl;
  54 + }
  55 +
  56 + public String getLabel() {
  57 + return label;
  58 + }
  59 +
  60 + public void setLabel(String label) {
  61 + this.label = label;
  62 + }
  63 +
  64 + public String getDescription() {
  65 + return description;
  66 + }
  67 +
  68 + public void setDescription(String description) {
  69 + this.description = description;
  70 + }
  71 +
  72 +
  73 + public Long getResourceId() {
  74 + return resourceId;
  75 + }
  76 + public void setResourceId(Long resourceId) {
  77 + this.resourceId = resourceId;
  78 + }
  79 + @Override
  80 + public String toString() {
  81 + return "MenuJson [parentId=" + parentId + ", sort=" + sort
  82 + + ", menuUrl=" + menuUrl + ", label=" + label
  83 + + ", description=" + description + ", id=" + id + ", created="
  84 + + created + ", modified=" + modified + ", yn=" + yn + "]";
  85 + }
  86 +
  87 +}
0 \ No newline at end of file 88 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Navbar.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Navbar.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import java.io.Serializable;
  4 +import com.diligrp.website.util.domain.BaseDomain;
  5 +import java.util.*;
  6 +import java.sql.Timestamp;
  7 +
  8 +
  9 +/**
  10 + * <B>Description</B> <br />
  11 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  12 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  13 + * <B>Company</B> 地利集团
  14 + * @createTime 2014-7-3 14:24:40
  15 + * @author template
  16 + */
  17 +public class Navbar extends BaseDomain {
  18 +
  19 + /**
  20 + * 项目名字
  21 + */
  22 + private String projectName;
  23 + /**
  24 + * 项目描述
  25 + */
  26 + private String description;
  27 +
  28 + /**
  29 + * 系统统一编号
  30 + */
  31 + private String code;
  32 +
  33 + public void setProjectName (String projectName){
  34 + this.projectName = projectName;
  35 + }
  36 + public String getProjectName(){
  37 + return this.projectName;
  38 + }
  39 +
  40 + public void setDescription (String description){
  41 + this.description = description;
  42 + }
  43 + public String getDescription(){
  44 + return this.description;
  45 + }
  46 +
  47 + public String getCode() {
  48 + return code;
  49 + }
  50 +
  51 + public void setCode(String code) {
  52 + this.code = code;
  53 + }
  54 +
  55 + public String toString(){
  56 + StringBuffer sb = new StringBuffer();
  57 + sb.append("Navbar [");
  58 + sb.append("id = ");
  59 + sb.append(id);
  60 + sb.append(", projectName = ");
  61 + sb.append(projectName);
  62 + sb.append(", description = ");
  63 + sb.append(description);
  64 + sb.append(", created = ");
  65 + sb.append(created);
  66 + sb.append(", modified = ");
  67 + sb.append(modified);
  68 + sb.append("]");
  69 + return sb.toString();
  70 + }
  71 +}
0 \ No newline at end of file 72 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Resource.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Resource.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import org.apache.commons.lang3.StringUtils;
  4 +
  5 +import com.diligrp.website.util.domain.BaseDomain;
  6 +
  7 +
  8 +/**
  9 + * <B>Description</B> <br />
  10 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  11 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  12 + * <B>Company</B> 地利集团
  13 + * @createTime 2014-7-3 14:24:40
  14 + * @author template
  15 + */
  16 +public class Resource extends BaseDomain {
  17 +
  18 + public static final Integer TYPE_URL = 1;
  19 + public static final Integer TYPE_API = 2;
  20 + public static final Integer TYPE_FRAGEMENT = 3;
  21 +
  22 + /**
  23 + * 资源名称
  24 + */
  25 + private String resourceName;
  26 + /**
  27 + * 资源描述
  28 + */
  29 + private String description;
  30 + /**
  31 + * 外键
  32 + */
  33 + private Long navbarId;
  34 +
  35 + /**
  36 + * 父ID
  37 + */
  38 + private Long parentId;
  39 +
  40 + /**
  41 + * navbarId 对应实体引用
  42 + */
  43 + private Navbar navbar;
  44 + /**
  45 + * url
  46 + */
  47 + private String url;
  48 + /**
  49 + * 0表示停用,1表示启用, 2未认领
  50 + */
  51 + private Integer status;
  52 + /**
  53 + * post,get,delete,update
  54 + */
  55 + private String method;
  56 +
  57 + /**
  58 + * 1表示URL, 2表示API, 3表示FRAGEMENT, 4表示入口地址
  59 + */
  60 + private Integer type;
  61 +
  62 + private Iterable<? extends ResourceUrl> resourceUrl;
  63 +
  64 +// public static Resource makeGetResource(Menu menu) {
  65 +// if (menu.getType().equals(Menu.TYPE_DIR) || StringUtils.isBlank(menu.getMenuUrl())) {
  66 +// return null;
  67 +// }
  68 +// Resource obj = new Resource();
  69 +// obj.setResourceName(menu.getLabel());
  70 +// obj.setNavbarId(menu.getNavbarId());
  71 +// obj.setMethod("GET");
  72 +// obj.setStatus(1);
  73 +// obj.setDescription(menu.getDescription());
  74 +// obj.setUrl(menu.getMenuUrl());
  75 +// return obj;
  76 +// }
  77 +
  78 + public void setResourceName (String resourceName){
  79 + this.resourceName = resourceName;
  80 + }
  81 + public String getResourceName(){
  82 + return this.resourceName;
  83 + }
  84 +
  85 + public void setDescription (String description){
  86 + this.description = description;
  87 + }
  88 + public String getDescription(){
  89 + return this.description;
  90 + }
  91 +
  92 + public void setNavbarId (Long navbarId){
  93 + this.navbarId = navbarId;
  94 + }
  95 + public Long getNavbarId(){
  96 + return this.navbarId;
  97 + }
  98 +
  99 + public void setUrl (String url){
  100 + this.url = url;
  101 + }
  102 + public String getUrl(){
  103 + return this.url;
  104 + }
  105 +
  106 + public void setStatus (Integer status){
  107 + this.status = status;
  108 + }
  109 + public Integer getStatus(){
  110 + return this.status;
  111 + }
  112 +
  113 + public void setMethod (String method){
  114 + this.method = method;
  115 + }
  116 + public String getMethod(){
  117 + return this.method;
  118 + }
  119 +
  120 + public Navbar getNavbar() {
  121 + return navbar;
  122 + }
  123 +
  124 + public void setNavbar(Navbar navbar) {
  125 + this.navbar = navbar;
  126 + }
  127 +
  128 + public String getNavbarName() {
  129 + if (navbar == null || navbar.getProjectName() == null) {
  130 + return "";
  131 + }
  132 + return navbar.getProjectName();
  133 + }
  134 +
  135 + public Integer getType() {
  136 + return type;
  137 + }
  138 +
  139 + public void setType(Integer type) {
  140 + this.type = type;
  141 + }
  142 +
  143 + public Long getParentId() {
  144 + return parentId;
  145 + }
  146 +
  147 + public void setParentId(Long parentId) {
  148 + this.parentId = parentId;
  149 + }
  150 +
  151 + public String toString(){
  152 + StringBuffer sb = new StringBuffer();
  153 + sb.append("Resource [");
  154 + sb.append("id = ");
  155 + sb.append(id);
  156 + sb.append(", resourceName = ");
  157 + sb.append(resourceName);
  158 + sb.append(", description = ");
  159 + sb.append(description);
  160 + sb.append(", navbarId = ");
  161 + sb.append(navbarId);
  162 + sb.append(", url = ");
  163 + sb.append(url);
  164 + sb.append(", status = ");
  165 + sb.append(status);
  166 + sb.append(", created = ");
  167 + sb.append(created);
  168 + sb.append(", modified = ");
  169 + sb.append(modified);
  170 + sb.append(", method = ");
  171 + sb.append(method);
  172 + sb.append(", type = ");
  173 + sb.append(type);
  174 + sb.append("]");
  175 + return sb.toString();
  176 + }
  177 +
  178 + public Iterable<? extends ResourceUrl> getResourceUrl() {
  179 + return resourceUrl;
  180 + }
  181 +
  182 + public void setResourceUrl(Iterable<? extends ResourceUrl> resourceUrl) {
  183 + this.resourceUrl = resourceUrl;
  184 + }
  185 +}
0 \ No newline at end of file 186 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/ResourceUrl.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/ResourceUrl.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import com.diligrp.website.util.domain.BaseDomain;
  4 +
  5 +/**
  6 + * Created by root on 5/21/15.
  7 + */
  8 +public class ResourceUrl extends BaseDomain {
  9 + /**
  10 + * 父ID
  11 + */
  12 + private Long parentId;
  13 +
  14 + /**
  15 + * url
  16 + */
  17 + private String url;
  18 +
  19 + /**
  20 + * post,get,delete,update
  21 + */
  22 + private String method;
  23 +
  24 + public ResourceUrl() {}
  25 +
  26 + public ResourceUrl(Long parentId, String url, String method) {
  27 + this.parentId = parentId;
  28 + this.url = url;
  29 + this.method = method;
  30 + }
  31 +
  32 + public ResourceUrl(String url, String method) {
  33 + this.url = url;
  34 + this.method = method;
  35 + }
  36 +
  37 + public Long getParentId() {
  38 + return parentId;
  39 + }
  40 +
  41 + public void setParentId(Long parentId) {
  42 + this.parentId = parentId;
  43 + }
  44 +
  45 + public String getUrl() {
  46 + return url;
  47 + }
  48 +
  49 + public void setUrl(String url) {
  50 + this.url = url;
  51 + }
  52 +
  53 + public String getMethod() {
  54 + return method;
  55 + }
  56 +
  57 + public void setMethod(String method) {
  58 + this.method = method;
  59 + }
  60 +
  61 + @Override
  62 + public String toString() {
  63 + return "ResourceUrl{" +
  64 + "parentId=" + parentId +
  65 + ", url='" + url + '\'' +
  66 + ", method='" + method + '\'' +
  67 + '}';
  68 + }
  69 +}
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Role.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/Role.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import java.io.Serializable;
  4 +import com.diligrp.website.util.domain.BaseDomain;
  5 +import java.util.*;
  6 +import java.sql.Timestamp;
  7 +
  8 +
  9 +/**
  10 + * <B>Description</B> <br />
  11 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  12 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  13 + * <B>Company</B> 地利集团
  14 + * @createTime 2014-7-3 14:24:41
  15 + * @author template
  16 + */
  17 +public class Role extends BaseDomain {
  18 +
  19 + /**
  20 + * 角色名
  21 + */
  22 + private String roleName;
  23 + /**
  24 + * 角色描述
  25 + */
  26 + private String description;
  27 +
  28 + /**
  29 + * 菜单
  30 + */
  31 + private List<Menu> menus;
  32 + private List<? extends Resource> resources = new ArrayList<>();
  33 + private List<? extends User> users = new ArrayList<>();
  34 +
  35 + public void setRoleName (String roleName){
  36 + this.roleName = roleName;
  37 + }
  38 + public String getRoleName(){
  39 + return this.roleName;
  40 + }
  41 +
  42 + public void setDescription (String description){
  43 + this.description = description;
  44 + }
  45 + public String getDescription(){
  46 + return this.description;
  47 + }
  48 +
  49 + public List<Menu> getMenus() {
  50 + return menus;
  51 + }
  52 +
  53 + public void setMenus(List<Menu> menus) {
  54 + this.menus = menus;
  55 + }
  56 +
  57 + public String toString(){
  58 + StringBuffer sb = new StringBuffer();
  59 + sb.append("Role [");
  60 + sb.append("id = ");
  61 + sb.append(id);
  62 + sb.append(", roleName = ");
  63 + sb.append(roleName);
  64 + sb.append(", description = ");
  65 + sb.append(description);
  66 + sb.append(", created = ");
  67 + sb.append(created);
  68 + sb.append(", modified = ");
  69 + sb.append(modified);
  70 + sb.append(", menus = ");
  71 + if(menus != null && !menus.isEmpty()){
  72 + for (Menu menu : menus) {
  73 + sb.append(menu);
  74 + sb.append(",");
  75 + }
  76 + }
  77 + sb.append("]");
  78 + sb.append("]");
  79 + return sb.toString();
  80 + }
  81 +
  82 + public List<? extends Resource> getResources() {
  83 + return resources;
  84 + }
  85 +
  86 + public void setResources(List<? extends Resource> resources) {
  87 + this.resources = resources;
  88 + }
  89 +
  90 + public List<? extends User> getUsers() {
  91 + return users;
  92 + }
  93 +
  94 + public void setUsers(List<? extends User> users) {
  95 + this.users = users;
  96 + }
  97 +}
0 \ No newline at end of file 98 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/RoleUser.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/RoleUser.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import com.diligrp.website.util.domain.BaseDomain;
  4 +
  5 +/**
  6 + * Created by root on 4/28/15.
  7 + */
  8 +public class RoleUser extends BaseDomain {
  9 + @Override
  10 + public String toString() {
  11 + return "RoleUser{" +
  12 + "id=" + id +
  13 + ", userId=" + userId +
  14 + '}';
  15 + }
  16 +
  17 + private Long id;
  18 +
  19 + private Long userId;
  20 +
  21 + public Long getId() {
  22 + return id;
  23 + }
  24 +
  25 + public void setId(Long id) {
  26 + this.id = id;
  27 + }
  28 +
  29 + public Long getUserId() {
  30 + return userId;
  31 + }
  32 +
  33 + public void setUserId(Long userId) {
  34 + this.userId = userId;
  35 + }
  36 +}
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/User.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/User.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import com.diligrp.website.util.domain.BaseDomain;
  4 +import java.util.*;
  5 +import java.sql.Timestamp;
  6 +
  7 +/**
  8 + * <B>Description</B> <br />
  9 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  10 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  11 + * <B>Company</B> 地利集团
  12 + *
  13 + * @createTime 2014-7-3 14:24:41
  14 + * @author template
  15 + */
  16 +public class User extends BaseDomain {
  17 +
  18 + /**
  19 + * 用户名
  20 + */
  21 + private String userName;
  22 + /**
  23 + * 密码
  24 + */
  25 + private String password;
  26 +
  27 + private String passwordconfirm;
  28 + /**
  29 + * 最后登录ip
  30 + */
  31 + private String lastLoginIp;
  32 + /**
  33 + * 最后登录时间
  34 + */
  35 + private Timestamp lastLoginTime;
  36 + /**
  37 + * 0表示停用,1表示启用
  38 + */
  39 + private Integer status;
  40 + /**
  41 + * 真实姓名
  42 + */
  43 + private String realName;
  44 + /**
  45 + * 用户编号
  46 + */
  47 + private String serialNumber;
  48 + /**
  49 + * 固定电话
  50 + */
  51 + private String fixedLineTelephone;
  52 + /**
  53 + * 手机号码
  54 + */
  55 + private String cellphone;
  56 + /**
  57 + * 邮箱
  58 + */
  59 + private String email;
  60 + /**
  61 + * 有效时间开始点
  62 + */
  63 + private Timestamp validTimeBegin;
  64 +
  65 + private String validTimeBeginString;
  66 + /**
  67 + * 有效时间结束点
  68 + */
  69 + private Timestamp validTimeEnd;
  70 +
  71 + private String validTimeEndString;
  72 + /**
  73 + * 用户对应的角色
  74 + */
  75 + private List<Role> roles;
  76 +
  77 + /**
  78 + * 用户的数据权限
  79 + */
  80 + private List<DataAuth> dataAuths;
  81 +
  82 + private String rolesId;
  83 +
  84 + public String getRolesId() {
  85 + return rolesId;
  86 + }
  87 +
  88 + public void setRolesId(String rolesId) {
  89 + this.rolesId = rolesId;
  90 + }
  91 +
  92 + public void setUserName(String userName) {
  93 + this.userName = userName;
  94 + }
  95 +
  96 + public String getUserName() {
  97 + return this.userName;
  98 + }
  99 +
  100 + public void setPassword(String password) {
  101 + this.password = password;
  102 + }
  103 +
  104 + public String getPassword() {
  105 + return this.password;
  106 + }
  107 +
  108 + public String getPasswordconfirm() {
  109 + return passwordconfirm;
  110 + }
  111 +
  112 + public void setPasswordconfirm(String passwordconfirm) {
  113 + this.passwordconfirm = passwordconfirm;
  114 + }
  115 +
  116 + public void setLastLoginIp(String lastLoginIp) {
  117 + this.lastLoginIp = lastLoginIp;
  118 + }
  119 +
  120 + public String getLastLoginIp() {
  121 + return this.lastLoginIp;
  122 + }
  123 +
  124 + public void setLastLoginTime(Timestamp lastLoginTime) {
  125 + this.lastLoginTime = lastLoginTime;
  126 + }
  127 +
  128 + public Timestamp getLastLoginTime() {
  129 + return this.lastLoginTime;
  130 + }
  131 +
  132 + public void setStatus(Integer status) {
  133 + this.status = status;
  134 + }
  135 +
  136 + public Integer getStatus() {
  137 + return this.status;
  138 + }
  139 +
  140 + public void setRealName(String realName) {
  141 + this.realName = realName;
  142 + }
  143 +
  144 + public String getRealName() {
  145 + return this.realName;
  146 + }
  147 +
  148 + public void setSerialNumber(String serialNumber) {
  149 + this.serialNumber = serialNumber;
  150 + }
  151 +
  152 + public String getSerialNumber() {
  153 + return this.serialNumber;
  154 + }
  155 +
  156 + public void setFixedLineTelephone(String fixedLineTelephone) {
  157 + this.fixedLineTelephone = fixedLineTelephone;
  158 + }
  159 +
  160 + public String getFixedLineTelephone() {
  161 + return this.fixedLineTelephone;
  162 + }
  163 +
  164 + public void setCellphone(String cellphone) {
  165 + this.cellphone = cellphone;
  166 + }
  167 +
  168 + public String getCellphone() {
  169 + return this.cellphone;
  170 + }
  171 +
  172 + public void setEmail(String email) {
  173 + this.email = email;
  174 + }
  175 +
  176 + public String getEmail() {
  177 + return this.email;
  178 + }
  179 +
  180 + public void setValidTimeBegin(Timestamp validTimeBegin) {
  181 + this.validTimeBegin = validTimeBegin;
  182 + }
  183 +
  184 + public Timestamp getValidTimeBegin() {
  185 + return this.validTimeBegin;
  186 + }
  187 +
  188 + public void setValidTimeEnd(Timestamp validTimeEnd) {
  189 + this.validTimeEnd = validTimeEnd;
  190 + }
  191 +
  192 + public Timestamp getValidTimeEnd() {
  193 + return this.validTimeEnd;
  194 + }
  195 +
  196 + public List<Role> getRoles() {
  197 + return roles;
  198 + }
  199 +
  200 + public void setRoles(List<Role> roles) {
  201 + this.roles = roles;
  202 + }
  203 +
  204 + public String getRolesString() {
  205 + StringBuffer sb = new StringBuffer();
  206 + for (Role role : roles) {
  207 + if (sb.length() > 0) {
  208 + sb.append(",");
  209 + }
  210 + sb.append(role.getId());
  211 + }
  212 + return sb.toString();
  213 + }
  214 +
  215 + public List<DataAuth> getDataAuths() {
  216 + return dataAuths;
  217 + }
  218 +
  219 + public void setDataAuths(List<DataAuth> dataAuths) {
  220 + this.dataAuths = dataAuths;
  221 + }
  222 +
  223 + public String getValidTimeBeginString() {
  224 + return validTimeBeginString;
  225 + }
  226 +
  227 + public void setValidTimeBeginString(String validTimeBeginString) {
  228 + this.validTimeBeginString = validTimeBeginString;
  229 + }
  230 +
  231 + public String getValidTimeEndString() {
  232 + return validTimeEndString;
  233 + }
  234 +
  235 + public void setValidTimeEndString(String validTimeEndString) {
  236 + this.validTimeEndString = validTimeEndString;
  237 + }
  238 +
  239 + public String toString() {
  240 + StringBuffer sb = new StringBuffer();
  241 + sb.append("User [");
  242 + sb.append("id = ");
  243 + sb.append(id);
  244 + sb.append(", userName = ");
  245 + sb.append(userName);
  246 + sb.append(", password = ");
  247 + sb.append(password);
  248 + sb.append(", lastLoginIp = ");
  249 + sb.append(lastLoginIp);
  250 + sb.append(", lastLoginTime = ");
  251 + sb.append(lastLoginTime);
  252 + sb.append(", created = ");
  253 + sb.append(created);
  254 + sb.append(", modified = ");
  255 + sb.append(modified);
  256 + sb.append(", status = ");
  257 + sb.append(status);
  258 + sb.append(", yn = ");
  259 + sb.append(yn);
  260 + sb.append(", realName = ");
  261 + sb.append(realName);
  262 + sb.append(", serialNumber = ");
  263 + sb.append(serialNumber);
  264 + sb.append(", fixedLineTelephone = ");
  265 + sb.append(fixedLineTelephone);
  266 + sb.append(", cellphone = ");
  267 + sb.append(cellphone);
  268 + sb.append(", email = ");
  269 + sb.append(email);
  270 + sb.append(", packUpAddress = ");
  271 + sb.append(", validTimeBegin = ");
  272 + sb.append(validTimeBegin);
  273 + sb.append(", validTimeEnd = ");
  274 + sb.append(validTimeEnd);
  275 + sb.append(", role = ");
  276 + sb.append("[");
  277 + if (roles != null && !roles.isEmpty()) {
  278 + for (Role role : roles) {
  279 + sb.append(role.toString());
  280 + sb.append(",");
  281 + }
  282 + }
  283 + sb.append("]");
  284 + sb.append("]");
  285 + return sb.toString();
  286 + }
  287 +}
0 \ No newline at end of file 288 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/UserResource.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/UserResource.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +public class UserResource implements Serializable{
  6 +
  7 + private static final long serialVersionUID = 1L;
  8 +
  9 + private long userId ; //用户id
  10 + private String resourceName; //资源名称
  11 + private String url; //资源url
  12 + private String method;
  13 +
  14 + /**
  15 + * 1表示URL, 2表示API, 3表示FRAGEMENT
  16 + */
  17 + private Integer type;
  18 +
  19 + public long getUserId() {
  20 + return userId;
  21 + }
  22 + public void setUserId(long userId) {
  23 + this.userId = userId;
  24 + }
  25 +
  26 + public String getResourceName() {
  27 + return resourceName;
  28 + }
  29 + public void setResourceName(String resourceName) {
  30 + this.resourceName = resourceName;
  31 + }
  32 + public String getUrl() {
  33 + return url;
  34 + }
  35 + public void setUrl(String url) {
  36 + this.url = url;
  37 + }
  38 +
  39 + public Integer getType() {
  40 + return type;
  41 + }
  42 +
  43 + public void setType(Integer type) {
  44 + this.type = type;
  45 + }
  46 +
  47 + public String getMethod() {
  48 + return method;
  49 + }
  50 +
  51 + public void setMethod(String method) {
  52 + this.method = method;
  53 + }
  54 +}
diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/UserRole.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/domain/UserRole.java
  1 +package com.diligrp.manage.domain;
  2 +
  3 +import java.io.Serializable;
  4 +
  5 +
  6 +/**
  7 + * <B>Description</B> <br />
  8 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  9 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  10 + * <B>Company</B> 地利集团
  11 + * @createTime 2014-7-3 14:24:39
  12 + * @author template
  13 + */
  14 +public class UserRole implements Serializable {
  15 +
  16 + private Long id;
  17 +
  18 + private Long roleId;
  19 +
  20 + public Long getId() {
  21 + return id;
  22 + }
  23 +
  24 + public void setId(Long id) {
  25 + this.id = id;
  26 + }
  27 +
  28 + public Long getRoleId() {
  29 + return roleId;
  30 + }
  31 +
  32 + public void setRoleId(Long roleId) {
  33 + this.roleId = roleId;
  34 + }
  35 +
  36 +
  37 +}
0 \ No newline at end of file 38 \ No newline at end of file
diligrp-manage-domain/src/main/java/com/diligrp/manage/exception/DiliException.java 0 → 100644
  1 +++ a/diligrp-manage-domain/src/main/java/com/diligrp/manage/exception/DiliException.java
  1 +package com.diligrp.manage.exception;
  2 +
  3 +import java.io.Serializable;
  4 +import com.diligrp.website.util.domain.BaseDomain;
  5 +import java.util.*;
  6 +import java.sql.Timestamp;
  7 +
  8 +
  9 +/**
  10 + * <B>Description</B> <br />
  11 + * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved. <br />
  12 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  13 + * <B>Company</B> 地利集团
  14 + * @createTime 2015-10-4 10:02:14
  15 + * @author template
  16 + */
  17 +public class DiliException extends Exception {
  18 + private Map<?, ?> map = null;
  19 +
  20 + public DiliException(){}
  21 +
  22 + public DiliException(String msg){
  23 + super(msg);
  24 + }
  25 +
  26 + public DiliException(String msg, Map<?, ?> map){
  27 + super(msg);
  28 + }
  29 +
  30 +
  31 + public Map<?, ?> getMap() {
  32 + return map;
  33 + }
  34 +
  35 + public void setMap(Map<?, ?> map) {
  36 + this.map = map;
  37 + }
  38 +}
0 \ No newline at end of file 39 \ No newline at end of file
diligrp-manage-manager/.gitignore 0 → 100644
  1 +++ a/diligrp-manage-manager/.gitignore
  1 +/target/
diligrp-manage-manager/pom.xml 0 → 100644
  1 +++ a/diligrp-manage-manager/pom.xml
  1 +<?xml version="1.0"?>
  2 +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <parent>
  6 + <groupId>com.b2c.manage</groupId>
  7 + <artifactId>diligrp-manage</artifactId>
  8 + <version>0.0.1-SNAPSHOT</version>
  9 + </parent>
  10 + <groupId>com.b2c.manage.manager</groupId>
  11 + <artifactId>diligrp-manage-manager</artifactId>
  12 + <version>0.0.1-SNAPSHOT</version>
  13 + <packaging>jar</packaging>
  14 + <name>diligrp-manage-manager</name>
  15 + <url>http://maven.apache.org</url>
  16 + <properties>
  17 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18 + </properties>
  19 + <dependencies>
  20 + <dependency>
  21 + <groupId>com.b2c.manage.dao</groupId>
  22 + <artifactId>diligrp-manage-dao</artifactId>
  23 + <version>0.0.1-SNAPSHOT</version>
  24 + </dependency>
  25 + <dependency>
  26 + <groupId>com.b2c.manage.domain</groupId>
  27 + <artifactId>diligrp-manage-domain</artifactId>
  28 + <version>0.0.1-SNAPSHOT</version>
  29 + </dependency>
  30 + <dependency>
  31 + <groupId>com.b2c.manage</groupId>
  32 + <artifactId>diligrp-manage-sdk</artifactId>
  33 + <version>0.0.3-SNAPSHOT</version>
  34 + </dependency>
  35 + </dependencies>
  36 + <build>
  37 + <finalName>diligrp-manage-manager</finalName>
  38 + </build>
  39 +</project>
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/RedisManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/RedisManager.java
  1 +package com.diligrp.manage.manager.customRedis;
  2 +
  3 +import com.diligrp.manage.domain.Role;
  4 +import com.diligrp.manage.domain.User;
  5 +
  6 +/**
  7 + * Created by root on 5/25/15.
  8 + */
  9 +public interface RedisManager {
  10 + /**
  11 + * 初始化所有URL redis
  12 + */
  13 + public void initAllUrl();
  14 +
  15 + /**
  16 + * 删除 用户角色
  17 + * @param user
  18 + */
  19 + public Boolean delUser(User user);
  20 + public Boolean delUser(Long userId);
  21 +
  22 + /**
  23 + * 增加 用户角色
  24 + * @param user
  25 + */
  26 + public Boolean addUser(User user);
  27 + public Boolean addUser(Long userId);
  28 +
  29 + /**
  30 + * 更新 角色资源
  31 + * @param roleId
  32 + * @param newResIds
  33 + */
  34 + public boolean updateRole(Long roleId, Long[] newResIds);
  35 +
  36 + /**
  37 + * 删除角色
  38 + * @param role
  39 + */
  40 + public void delRole(Role role);
  41 +
  42 + /**
  43 + * 增加新资源
  44 + */
  45 + public boolean addRes(Long parentId);
  46 +
  47 + /**
  48 + * 删除资源
  49 + */
  50 + public boolean delRes(Long parentId);
  51 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/SessionRedisManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/SessionRedisManager.java
  1 +package com.diligrp.manage.manager.customRedis;
  2 +
  3 +import com.diligrp.manage.domain.User;
  4 +
  5 +/**
  6 + * Created by root on 5/20/15.
  7 + */
  8 +public interface SessionRedisManager {
  9 +
  10 + public Long clearSessionUserIdKey(String sessionId);
  11 +
  12 + public Long clearUserIdSessionDataKey(String userId);
  13 +
  14 + public String setSessionUserIdKey(String sessionId, String userId);
  15 +
  16 + public String getSessionUserIdKey(String sessionId);
  17 +
  18 + public String setUserIdSessionDataKey(User userId, String session);
  19 +
  20 + public String getUserIdSessionDataKey(String userId);
  21 +
  22 + public Boolean existUserIdSessionDataKey(String s);
  23 +
  24 + public void addKickSessionKey(String oldSessionId);
  25 +
  26 + public Boolean existKickSessionKey(String oldSessionId);
  27 +
  28 + public void clearKickSessionKey(String oldSessionId);
  29 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/MyRedisUtil.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/MyRedisUtil.java
  1 +package com.diligrp.manage.manager.customRedis.impl;
  2 +
  3 +import org.slf4j.Logger;
  4 +import org.slf4j.LoggerFactory;
  5 +import org.springframework.beans.factory.annotation.Autowired;
  6 +import org.springframework.stereotype.Component;
  7 +import redis.clients.jedis.Jedis;
  8 +import redis.clients.jedis.JedisPool;
  9 +
  10 +import java.util.List;
  11 +import java.util.Set;
  12 +
  13 +/**
  14 + * Created by root on 5/21/15.
  15 + */
  16 +@Component
  17 +public class MyRedisUtil {
  18 + // TODO: 所有的redis常量返回值,给出一个异常类型
  19 +
  20 + private Logger log = LoggerFactory.getLogger(MyRedisUtil.class);
  21 +
  22 + public JedisPool getJedisPool() {
  23 + return jedisPool;
  24 + }
  25 +
  26 + // 需要使用 redis set求并集,不可使用 redis客户端集群
  27 + @Autowired
  28 + private JedisPool jedisPool;
  29 +
  30 +
  31 + // 工具操作
  32 +// /**
  33 +// * 为了大量redis value String的装换工具
  34 +// *
  35 +// * @param lStr List<String> 或 List<Long>
  36 +// * @return 转换结果
  37 +// */
  38 +// private String[] convertListToStrArray(List<Object> lStr) {
  39 +// String[] sArray = new String[lStr.size()];
  40 +// for(int i=0; i<sArray.length; i++) {
  41 +// if(lStr.get(i) != null) {
  42 +// sArray[i] = lStr.get(i).toString();
  43 +// }
  44 +// }
  45 +// return sArray;
  46 +// }
  47 +
  48 + private String[] convertLongToStrArray(Long[] longs) {
  49 + String[] sArray = new String[longs.length];
  50 + for(int i=0; i<longs.length; i++) {
  51 + sArray[i] = String.valueOf(longs[i]);
  52 + }
  53 + return sArray;
  54 + }
  55 +
  56 + // 集合操作
  57 + /**
  58 + * 获取集合值
  59 + */
  60 + public Set<String> setGet(String key) {
  61 + Set<String> rst = null;
  62 + Jedis jedis = null;
  63 + try {
  64 + jedis = jedisPool.getResource();
  65 + rst = jedis.smembers(key);
  66 + } catch (Exception e) {
  67 + log.info("保存 key - "+key+" 失败", e);
  68 + } finally {
  69 + if (jedis != null) {
  70 + jedisPool.returnResource(jedis);
  71 + }
  72 + }
  73 + return rst;
  74 + }
  75 +
  76 +
  77 + /**
  78 + * 写入redis缓存set集合 - keyId: [valueId1, valueId2, ...]
  79 + * @param key redis key
  80 + * @param LValue List<String> 或 List<Long>
  81 + * @return
  82 + */
  83 + public Long setAdd(String key, List<String> LValue) {
  84 + Long rst = setAdd(key, LValue.toArray(new String[0]));
  85 + return rst;
  86 + }
  87 +
  88 + public Long setAdd(String key, Long[] LValue) {
  89 + Long rst = null;
  90 + String[] strValue = convertLongToStrArray(LValue);
  91 + rst = setAdd(key, strValue);
  92 + return rst;
  93 + }
  94 +
  95 + /**
  96 + * 写入redis缓存set集合 - keyId: [valueId1, valueId2, ...]
  97 + * @param key
  98 + * @param value 只是类型问题
  99 + * @return
  100 + */
  101 + public Long setAdd(String key, String[] value) {
  102 + Long rst = null;
  103 +
  104 + Jedis jedis = null;
  105 + try {
  106 + if(value.length != 0) {
  107 + jedis = jedisPool.getResource();
  108 + rst = jedis.sadd(key, value);
  109 + }
  110 + } catch (Exception e) {
  111 + log.info("保存 key - "+key+" 失败", e);
  112 + } finally {
  113 + if (jedis != null) {
  114 + jedisPool.returnResource(jedis);
  115 + }
  116 + }
  117 + return rst;
  118 + }
  119 +
  120 + /**
  121 + * 写入redis缓存set集合 - keyId: [valueId1, valueId2, ...]
  122 + * @param key
  123 + * @param value 只是类型问题
  124 + * @return
  125 + */
  126 + public Long setAdd(String key, String value) {
  127 + Long rst = null;
  128 +
  129 + Jedis jedis = null;
  130 + try {
  131 + jedis = jedisPool.getResource();
  132 + rst = jedis.sadd(key, value);
  133 + } catch (Exception e) {
  134 + log.info("保存 key - "+key+" 失败", e);
  135 + } finally {
  136 + if (jedis != null) {
  137 + jedisPool.returnResource(jedis);
  138 + }
  139 + }
  140 + return rst;
  141 + }
  142 +
  143 +
  144 + /**
  145 + * 判断指定set集合的key元素是否存在
  146 + * @param key
  147 + * @return
  148 + */
  149 + public boolean isMemberKey(String key, String member) {
  150 + boolean rst = false;
  151 +
  152 + Jedis jedis = null;
  153 + try {
  154 + jedis = jedisPool.getResource();
  155 + rst = jedis.sismember(key, member);
  156 + } catch (Exception e) {
  157 + log.info("查找 key - "+key+" 中元素 - "+member+" 失败", e);
  158 + } finally {
  159 + if (jedis != null) {
  160 + jedisPool.returnResource(jedis);
  161 + }
  162 + }
  163 + return rst;
  164 + }
  165 +
  166 + /**
  167 + * 判断指定set集合的key元素 删除
  168 + * @param key
  169 + * @return
  170 + */
  171 + public Long setRomoveMemberKey(String key, String member) {
  172 + Long rst = null;
  173 +
  174 + Jedis jedis = null;
  175 + try {
  176 + jedis = jedisPool.getResource();
  177 + rst = jedis.srem(key, member);
  178 + } catch (Exception e) {
  179 + log.info("查找 key - "+key+" 中元素 - "+member+" 失败", e);
  180 + } finally {
  181 + if (jedis != null) {
  182 + jedisPool.returnResource(jedis);
  183 + }
  184 + }
  185 + return rst;
  186 + }
  187 + /**
  188 + * 判断指定set集合的key元素 删除
  189 + * @param key
  190 + * @return
  191 + */
  192 + public Long setScard(String key) {
  193 + Long rst = null;
  194 +
  195 + Jedis jedis = null;
  196 + try {
  197 + jedis = jedisPool.getResource();
  198 + rst = jedis.scard(key);
  199 + } catch (Exception e) {
  200 + log.info("查找 key - "+key+" 个数失败", e);
  201 + } finally {
  202 + if (jedis != null) {
  203 + jedisPool.returnResource(jedis);
  204 + }
  205 + }
  206 + return rst;
  207 + }
  208 +
  209 +
  210 + /**
  211 + * 集合求并集,然后转存
  212 + * @param desKey 目标存储key
  213 + * @param memberKeys 并集member keys
  214 + * @return
  215 + */
  216 + public Long setUnionStore(String desKey, List<String> memberKeys) {
  217 + return setUnionStore(desKey, memberKeys.toArray(new String[0]));
  218 + }
  219 +
  220 + public Long setUnionStore(String desKey, String[] memberKeys) {
  221 + Long rst = null;
  222 + Jedis jedis = null;
  223 + try {
  224 + jedis = jedisPool.getResource();
  225 + rst = jedis.sunionstore(desKey, memberKeys);
  226 + } catch (Exception e) {
  227 + log.info("并集 memberKeys" + memberKeys + " 到 - desKey" + desKey + " 失败", e);
  228 + } finally {
  229 + if (jedis != null) {
  230 + jedisPool.returnResource(jedis);
  231 + }
  232 + }
  233 + return rst;
  234 + }
  235 +
  236 + /**
  237 + * 差集
  238 + * @param aDiffb
  239 + * @param memberDiffs
  240 + * @return
  241 + */
  242 + public Long setDiffStore(String aDiffb, String[] memberDiffs) {
  243 + Long rst = null;
  244 + Jedis jedis = null;
  245 + try {
  246 + jedis = jedisPool.getResource();
  247 + rst = jedis.sdiffstore(aDiffb, memberDiffs);
  248 + } catch (Exception e) {
  249 + log.info("差集 memberDiffs" + memberDiffs + " 到 - aDiffb" + aDiffb + " 失败", e);
  250 + } finally {
  251 + if (jedis != null) {
  252 + jedisPool.returnResource(jedis);
  253 + }
  254 + }
  255 + return rst;
  256 + }
  257 +
  258 + // 共同操作
  259 + /**
  260 + * 检查key是否存在
  261 + * @param key
  262 + * @return
  263 + */
  264 + public boolean keyExist(String key) {
  265 + boolean rst = false;
  266 +
  267 + Jedis jedis = null;
  268 + try {
  269 + jedis = jedisPool.getResource();
  270 + rst = jedis.exists(key);
  271 + } catch (Exception e) {
  272 + log.info("检查 key - "+key+" 失败", e);
  273 + } finally {
  274 + if (jedis != null) {
  275 + jedisPool.returnResource(jedis);
  276 + }
  277 + }
  278 + return rst;
  279 + }
  280 +
  281 + /**
  282 + * 删除指定key
  283 + * @param key
  284 + * @return
  285 + */
  286 + public Long delKey(String key) {
  287 + Long rst = null;
  288 +
  289 + Jedis jedis = null;
  290 + try {
  291 + jedis = jedisPool.getResource();
  292 + rst = jedis.del(key);
  293 + } catch (Exception e) {
  294 + log.info("删除 key - "+key+" 失败", e);
  295 + } finally {
  296 + if (jedis != null) {
  297 + jedisPool.returnResource(jedis);
  298 + }
  299 + }
  300 + return rst;
  301 + }
  302 +
  303 + public Set<String> keys(String key_pattern) {
  304 + Set<String> rst = null;
  305 + Jedis jedis = null;
  306 + try {
  307 + jedis = jedisPool.getResource();
  308 + rst =jedis.keys(key_pattern);
  309 + } catch (Exception e) {
  310 + log.info("查询 key pattern - "+ key_pattern +" 失败", e);
  311 + } finally {
  312 + if (jedis != null) {
  313 + jedisPool.returnResource(jedis);
  314 + }
  315 + }
  316 + return rst;
  317 + }
  318 +
  319 +
  320 + // 字符串操作
  321 + /**
  322 + * 根据key获取字符串信息
  323 + *
  324 + * @param key 存储key
  325 + * @return 如果返回空,则未获取到数据或抛出异常
  326 + */
  327 + public String getString(String key) {
  328 + Jedis jedis = null;
  329 + try {
  330 + jedis = jedisPool.getResource();
  331 + return jedis.get(key);
  332 + } catch (Exception e) {
  333 + log.info("getString,获取字符串失败", e);
  334 + return null;
  335 + } finally {
  336 + if (jedis != null) {
  337 + jedisPool.returnResource(jedis);
  338 + }
  339 + }
  340 + }
  341 +
  342 + /**
  343 + * 根据key获取字符串信息
  344 + *
  345 + * @param key 存储key
  346 + * @param value 存储key
  347 + * @return 如果返回空,则未获取到数据或抛出异常
  348 + */
  349 + public String setString(String key, String value) {
  350 + Jedis jedis = null;
  351 + String rst = null;
  352 + try {
  353 + jedis = jedisPool.getResource();
  354 + rst = jedis.set(key, value);
  355 + } catch (Exception e) {
  356 + log.info("getString,获取字符串失败", e);
  357 + return null;
  358 + } finally {
  359 + if (jedis != null) {
  360 + jedisPool.returnResource(jedis);
  361 + }
  362 + }
  363 + return rst;
  364 + }
  365 +
  366 + /**
  367 + * 写入redis缓存set集合 - keyId: [valueId1, valueId2, ...]
  368 + * @param key
  369 + * @param value 只是类型问题
  370 + * @return
  371 + */
  372 + public String setStringByExpire(String key, String value, Integer sessionTimeOut) {
  373 + String rst = null;
  374 +
  375 + Jedis jedis = null;
  376 + try {
  377 + jedis = jedisPool.getResource();
  378 + rst =jedis.setex(key, sessionTimeOut, value);
  379 + } catch (Exception e) {
  380 + log.info("保存 key - "+key+" 失败", e);
  381 + } finally {
  382 + if (jedis != null) {
  383 + jedisPool.returnResource(jedis);
  384 + }
  385 + }
  386 + return rst;
  387 + }
  388 +
  389 +
  390 + /**
  391 + * 获取多个string值
  392 + * @param keys
  393 + * @return
  394 + */
  395 + public List<String> getManyString(List<String> keys) {
  396 + return getManyString(keys.toArray(new String[0]));
  397 + }
  398 +
  399 + public List<String> getManyString(String[] keys) {
  400 + Jedis jedis = null;
  401 + try {
  402 + jedis = jedisPool.getResource();
  403 + return jedis.mget(keys);
  404 + } catch (Exception e) {
  405 + log.info("getString,获取字符串失败", e);
  406 + return null;
  407 + } finally {
  408 + if (jedis != null) {
  409 + jedisPool.returnResource(jedis);
  410 + }
  411 + }
  412 + }
  413 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/RedisMangerImpl.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/RedisMangerImpl.java
  1 +package com.diligrp.manage.manager.customRedis.impl;
  2 +
  3 +import com.diligrp.manage.domain.Resource;
  4 +import com.diligrp.manage.domain.Role;
  5 +import com.diligrp.manage.domain.User;
  6 +import com.diligrp.manage.manager.customRedis.RedisManager;
  7 +import com.diligrp.manage.manager.customRedis.impl.redis.RedisRHManage;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +import org.springframework.stereotype.Component;
  10 +
  11 +import java.util.ArrayList;
  12 +import java.util.List;
  13 +
  14 +/**
  15 + * Created by root on 5/25/15.
  16 + */
  17 +@Component
  18 +public class RedisMangerImpl implements RedisManager {
  19 + @Autowired
  20 + private RedisRHManage redisRHManage;
  21 +
  22 + @Override
  23 + public void initAllUrl() {
  24 + redisRHManage.initAllUrl();
  25 + }
  26 +
  27 + @Override
  28 + public Boolean delUser(User user) {
  29 + // user为新修改用户,不可直接改变
  30 + User t = new User();
  31 + t.setId(user.getId());
  32 + redisRHManage.delUser(t);
  33 + return true;
  34 + }
  35 +
  36 + @Override
  37 + public Boolean delUser(Long userId) {
  38 + User t = new User();
  39 + t.setId(userId);
  40 + redisRHManage.delUser(t);
  41 + return true;
  42 + }
  43 +
  44 + @Override
  45 + public Boolean addUser(User user) {
  46 + redisRHManage.addUser(user);
  47 + return false;
  48 + }
  49 +
  50 + @Override
  51 + public Boolean addUser(Long userId) {
  52 + User t = new User();
  53 + t.setId(userId);
  54 + redisRHManage.addUser(t);
  55 + return false;
  56 + }
  57 +
  58 + @Override
  59 + public boolean updateRole(Long roleId, Long[] newResIds) {
  60 + Role role = new Role();
  61 + role.setId(roleId);
  62 + List<Resource> ress = new ArrayList<>();
  63 + for (Long id : newResIds) {
  64 + Resource r = new Resource();
  65 + r.setId(id);
  66 + ress.add(r);
  67 + }
  68 + redisRHManage.updateRole(role);
  69 + return false;
  70 + }
  71 +
  72 + @Override
  73 + public void delRole(Role role) {
  74 + redisRHManage.delRole(role);
  75 + }
  76 +
  77 + @Override
  78 + public boolean addRes(Long parentId) {
  79 + Resource res = new Resource();
  80 + res.setId(parentId);
  81 + redisRHManage.addRes(res);
  82 + return false;
  83 + }
  84 +
  85 + @Override
  86 + public boolean delRes(Long parentId) {
  87 + Resource res = new Resource();
  88 + res.setId(parentId);
  89 + redisRHManage.delRes(res);
  90 + return true;
  91 + }
  92 +
  93 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/SessionRedisManagerImpl.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/SessionRedisManagerImpl.java
  1 +package com.diligrp.manage.manager.customRedis.impl;
  2 +
  3 +import com.diligrp.manage.domain.User;
  4 +import com.diligrp.manage.manager.customRedis.SessionRedisManager;
  5 +import com.diligrp.manage.sdk.session.SessionConstants;
  6 +import org.nutz.json.Json;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import java.util.HashMap;
  11 +import java.util.Map;
  12 +
  13 +/**
  14 + * Created by root on 5/20/15.
  15 + */
  16 +@Component
  17 +public class SessionRedisManagerImpl implements SessionRedisManager {
  18 +
  19 + public static final String SESSION = "sessionId";
  20 +
  21 + @Autowired
  22 + private MyRedisUtil myRedisUtil;
  23 +
  24 + public String setUserIdSessionDataKey(User user, String session) {
  25 + Map<String, String> map = new HashMap<String, String>();
  26 + map.put("sessionId", session);
  27 + map.put("user", Json.toJson(user));
  28 + return myRedisUtil.setStringByExpire(SessionConstants.USERID_SESSION_KEY + user.getId(),
  29 + Json.toJson(map), SessionConstants.SESSIONID_USERID_TIMEOUT);
  30 + }
  31 +
  32 + public String getUserIdSessionDataKey(String userId) {
  33 + return myRedisUtil.getString(SessionConstants.USERID_SESSION_KEY + userId);
  34 + }
  35 +
  36 + @Override
  37 + public Boolean existUserIdSessionDataKey(String s) {
  38 + return myRedisUtil.keyExist(SessionConstants.USERID_SESSION_KEY + s);
  39 + }
  40 +
  41 + @Override
  42 + public void addKickSessionKey(String oldSessionId) {
  43 + myRedisUtil.setStringByExpire(SessionConstants.KICK_OLDSESSIONID_KEY + oldSessionId,
  44 + "", SessionConstants.COOKIE_TIMEOUT);
  45 + }
  46 +
  47 + @Override
  48 + public Boolean existKickSessionKey(String oldSessionId) {
  49 + return myRedisUtil.keyExist(SessionConstants.KICK_OLDSESSIONID_KEY + oldSessionId);
  50 + }
  51 +
  52 + @Override
  53 + public void clearKickSessionKey(String oldSessionId) {
  54 + myRedisUtil.delKey(SessionConstants.KICK_OLDSESSIONID_KEY + oldSessionId);
  55 + }
  56 +
  57 + // sessionId - userId 操作 - START
  58 + public String setSessionUserIdKey(String sessionId, String userId) {
  59 + String rst = null;
  60 + rst = myRedisUtil.setStringByExpire(SessionConstants.SESSION_USERID_KEY + sessionId,
  61 + userId, SessionConstants.SESSIONID_USERID_TIMEOUT);
  62 + return rst;
  63 + }
  64 +
  65 + public String getSessionUserIdKey(String sessionId) {
  66 + String rst = null;
  67 + rst = myRedisUtil.getString(SessionConstants.SESSION_USERID_KEY + sessionId);
  68 + return rst;
  69 + }
  70 +
  71 + public Long clearSessionUserIdKey(String sessionId) {
  72 + Long rst = null;
  73 + rst = myRedisUtil.delKey(SessionConstants.SESSION_USERID_KEY + sessionId);
  74 + return rst;
  75 + }
  76 +
  77 + @Override
  78 + public Long clearUserIdSessionDataKey(String userId) {
  79 + return myRedisUtil.delKey(SessionConstants.USERID_SESSION_KEY + userId);
  80 + }
  81 + // sessionId - userId 操作 - END
  82 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/AllUrlRH.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/AllUrlRH.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.dao.ResourceUrlDao;
  4 +import com.diligrp.manage.domain.Resource;
  5 +import com.diligrp.manage.domain.ResourceUrl;
  6 +import com.diligrp.manage.manager.customRedis.impl.MyRedisUtil;
  7 +import com.diligrp.manage.sdk.session.SessionConstants;
  8 +import com.diligrp.website.util.dao.BaseQuery;
  9 +import org.springframework.beans.factory.annotation.Autowired;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.List;
  14 +
  15 +/**
  16 + * Created by Administrator on 2015/5/23.
  17 + */
  18 +@Component
  19 +public class AllUrlRH implements RedisHandle<Object> {
  20 +
  21 + @Autowired
  22 + private MyRedisUtil myRedisUtil;
  23 +
  24 + @Autowired
  25 + private RedisRHManage redisRHManage;
  26 +
  27 + @Autowired
  28 + private ResourceUrlDao resourceUrlDao;
  29 +
  30 + public AllUrlRH(RedisRHManage redisRHManage, MyRedisUtil myRedisUtil, ResourceUrlDao resourceUrlDao){
  31 + this.redisRHManage = redisRHManage;
  32 + this.myRedisUtil = myRedisUtil;
  33 + this.resourceUrlDao = resourceUrlDao;
  34 + }
  35 +
  36 + @Override
  37 + public Object initByRedis(Object obj) {
  38 + return null;
  39 + }
  40 +
  41 + @Override
  42 + public void save(Object obj) {
  43 + if (myRedisUtil.keyExist(SessionConstants.ALL_RES_KEY)) {
  44 + return;
  45 + }
  46 + // 获取所有的res url
  47 + List<ResourceUrl> res = resourceUrlDao.listAll();
  48 + List<String> resGrpKeyList = new ArrayList<>();
  49 + for (ResourceUrl url : res) {
  50 + String resGrpKey = SessionConstants.RES_GRP_KEY + url.getParentId();
  51 + myRedisUtil.setAdd(resGrpKey, formatUrl(url));
  52 + resGrpKeyList.add(resGrpKey);
  53 +
  54 + // url->grpId
  55 + redisRHManage.addResUrl(url);
  56 + }
  57 + myRedisUtil.setUnionStore(SessionConstants.ALL_RES_KEY, resGrpKeyList);
  58 + }
  59 +
  60 + @Override
  61 + public void del(Object id) {
  62 +
  63 + }
  64 +
  65 + @Override
  66 + public void reload(Object obj) {
  67 +
  68 + }
  69 +
  70 + private String formatUrl(ResourceUrl res) {
  71 + StringBuilder tempUrl = new StringBuilder();
  72 + tempUrl.append('[').append(res.getMethod()).append(']').append(res.getUrl().replace("http://", ""));
  73 + return tempUrl.toString();
  74 + }
  75 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RedisHandle.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RedisHandle.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +/**
  4 + * Created by Administrator on 2015/5/23.
  5 + */
  6 +public interface RedisHandle<T> {
  7 +
  8 + /**
  9 + * 根据redis初始化对象
  10 + * @param obj
  11 + * @return
  12 + */
  13 + public T initByRedis(T obj);
  14 +
  15 + public void save(T obj);
  16 +
  17 + public void del(T obj);
  18 +
  19 + /**
  20 + * 重新加载相关数据
  21 + * @param obj
  22 + */
  23 + public void reload(T obj);
  24 +
  25 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RedisRHManage.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RedisRHManage.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.dao.DataAuthDao;
  4 +import com.diligrp.manage.dao.ResourceDao;
  5 +import com.diligrp.manage.dao.ResourceUrlDao;
  6 +import com.diligrp.manage.dao.RoleDao;
  7 +import com.diligrp.manage.dao.UserDao;
  8 +import com.diligrp.manage.domain.DataAuth;
  9 +import com.diligrp.manage.domain.Resource;
  10 +import com.diligrp.manage.domain.ResourceUrl;
  11 +import com.diligrp.manage.domain.Role;
  12 +import com.diligrp.manage.domain.User;
  13 +import com.diligrp.manage.manager.customRedis.impl.MyRedisUtil;
  14 +import com.diligrp.website.util.dao.BaseQuery;
  15 +import org.springframework.beans.factory.annotation.Autowired;
  16 +import org.springframework.stereotype.Component;
  17 +
  18 +import java.util.ArrayList;
  19 +import java.util.List;
  20 +
  21 +/**
  22 + * Created by Administrator on 2015/5/23.
  23 + */
  24 +@Component
  25 +public class RedisRHManage {
  26 +
  27 + @Autowired
  28 + private RoleDao roleDao;
  29 + @Autowired
  30 + private ResourceDao resourceDao;
  31 +
  32 + @Autowired
  33 + private UserDao userDao;
  34 +
  35 + @Autowired
  36 + private ResourceUrlDao resourceUrlDao;
  37 +
  38 + @Autowired
  39 + private DataAuthDao dataAuthDao;
  40 +
  41 +
  42 + @Autowired
  43 + private MyRedisUtil myRedisUtil;
  44 +
  45 + private ResourceUrlRH resourceUrlRH;
  46 + private ResourceRH resourceRH;
  47 + private AllUrlRH allUrlRH;
  48 + private RoleRH roleRH;
  49 +
  50 +
  51 + private UserRH userRH;
  52 +
  53 +
  54 + public void addResUrl(ResourceUrl resUrl) {
  55 + getResourceUrlRH().save(resUrl);
  56 + }
  57 +
  58 + public void delResUrl(ResourceUrl resUrl) {
  59 + getResourceUrlRH().del(resUrl);
  60 + }
  61 +
  62 + /**
  63 + * 初始化所有URL
  64 + */
  65 + public void initAllUrl(){
  66 + getAllUrlRH().save(null);
  67 + }
  68 +
  69 + public void delRes(Resource res){
  70 + getResourceRH().del(fetchResourceUrl(res));
  71 + }
  72 +
  73 + public void addRes(Resource res){
  74 + getResourceRH().save(fetchResourceUrl(res));
  75 + }
  76 +
  77 + public void updateRes(Resource res){
  78 + delRes(res);
  79 + addRes(res);
  80 + }
  81 +
  82 + private Resource fetchResourceUrl(Resource res){
  83 + List<ResourceUrl> resUrls = resourceUrlDao.listByResourceID(res.getId());
  84 + res.setResourceUrl(resUrls);
  85 + return res;
  86 + }
  87 +
  88 + public void delRole(Role role){
  89 + getRoleRH().del(fetchRole(role));
  90 + }
  91 +
  92 + public void addRole(Role role){
  93 + getRoleRH().save(fetchRole(role));
  94 + }
  95 +
  96 + public void updateRole(Role role){
  97 + delRole(role);
  98 + addRole(role);
  99 + }
  100 +
  101 + public void reloadRole(Role role) {
  102 + getRoleRH().reload(fetchRole(role));
  103 + }
  104 +
  105 + private Role fetchRole(Role role){
  106 + List<User> userRolesList = userDao.findUserByRole(role.getId());
  107 + role.setUsers(userRolesList);
  108 + List<Resource> resources = resourceDao.findByRole(role.getId());
  109 + role.setResources(resources);
  110 + return role;
  111 + }
  112 +
  113 + public void delUser(User user) {
  114 + getUserRH().del(fetchUser(user));
  115 + }
  116 +
  117 + public void addUser(User user) {
  118 + getUserRH().save(fetchUser(user));
  119 + }
  120 +
  121 + public void updateUser(User user){
  122 + delUser(user);
  123 + addUser(user);
  124 + }
  125 + public void reloadUser(User user) {
  126 + getUserRH().reload(fetchUser(user));
  127 + }
  128 +
  129 + private User fetchUser(User user) {
  130 + List<Role> roles = roleDao.findByUserId(user.getId());
  131 + List<DataAuth> dataAuths = dataAuthDao.findByUser(user.getId());
  132 + user.setDataAuths(dataAuths);
  133 + user.setRoles(roles);
  134 + return user;
  135 + }
  136 +
  137 +
  138 +
  139 + public UserRH getUserRH() {
  140 + if(this.userRH == null) {
  141 + userRH = new UserRH(this, myRedisUtil);
  142 + }
  143 + return userRH;
  144 + }
  145 +
  146 + public RoleRH getRoleRH() {
  147 + if(this.roleRH == null) {
  148 + roleRH = new RoleRH(this, myRedisUtil);
  149 + }
  150 + return roleRH;
  151 + }
  152 +
  153 + public AllUrlRH getAllUrlRH() {
  154 + if(this.allUrlRH == null) {
  155 + allUrlRH = new AllUrlRH(this, myRedisUtil, resourceUrlDao);
  156 + }
  157 + return allUrlRH;
  158 + }
  159 +
  160 + public ResourceRH getResourceRH() {
  161 + if(this.resourceRH == null) {
  162 + resourceRH = new ResourceRH(this, myRedisUtil);
  163 + }
  164 + return resourceRH;
  165 + }
  166 +
  167 + public ResourceUrlRH getResourceUrlRH() {
  168 + if(this.resourceUrlRH == null) {
  169 + resourceUrlRH = new ResourceUrlRH(myRedisUtil);
  170 + }
  171 + return resourceUrlRH;
  172 + }
  173 +
  174 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RedisRHManage2.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RedisRHManage2.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.dao.ResourceDao;
  4 +import com.diligrp.manage.dao.ResourceUrlDao;
  5 +import com.diligrp.manage.dao.RoleDao;
  6 +import com.diligrp.manage.dao.UserDao;
  7 +import com.diligrp.manage.domain.Resource;
  8 +import com.diligrp.manage.domain.ResourceUrl;
  9 +import com.diligrp.manage.domain.Role;
  10 +import com.diligrp.manage.domain.User;
  11 +import com.diligrp.website.util.dao.BaseQuery;
  12 +import org.springframework.beans.factory.annotation.Autowired;
  13 +import org.springframework.stereotype.Component;
  14 +
  15 +import java.util.ArrayList;
  16 +import java.util.List;
  17 +
  18 +/**
  19 + * Created by Administrator on 2015/5/23.
  20 + */
  21 +@Component
  22 +public class RedisRHManage2 {
  23 +
  24 + @Autowired
  25 + private RoleDao roleDao;
  26 + @Autowired
  27 + private ResourceDao resourceDao;
  28 +
  29 + @Autowired
  30 + private UserDao userDao;
  31 +
  32 + @Autowired
  33 + private ResourceUrlDao resourceUrlDao;
  34 +
  35 + @Autowired
  36 + private ResourceRH resourceRH;
  37 + @Autowired
  38 + private AllUrlRH allUrlRH;
  39 + @Autowired
  40 + private RoleRH roleRH;
  41 + @Autowired
  42 + private UserRH userRH;
  43 +
  44 + /**
  45 + * 初始化所有URL
  46 + */
  47 + public void initAllUrl(){
  48 + allUrlRH.save(null);
  49 + }
  50 +
  51 + public void delRes(Resource res){
  52 + resourceRH.del(fetchResourceUrl(res));
  53 + }
  54 +
  55 + public void addRes(Resource res){
  56 + resourceRH.save(fetchResourceUrl(res));
  57 + }
  58 +
  59 + public void updateRes(Resource res){
  60 + delRes(res);
  61 + addRes(res);
  62 + }
  63 +
  64 + private Resource fetchResourceUrl(Resource res){
  65 + BaseQuery bq = new BaseQuery();
  66 + bq.addParam("parentId", res.getId().toString());
  67 + List<ResourceUrl> resUrls = resourceUrlDao.listByCondition(bq);
  68 + res.setResourceUrl(resUrls);
  69 + return res;
  70 + }
  71 +
  72 + public void delRole(Role role) {
  73 + roleRH.del(fetchRole(role));
  74 + }
  75 +
  76 + public void addRole(Role role){
  77 + roleRH.save(fetchRole(role));
  78 + }
  79 +
  80 + public void updateRole(Role role) {
  81 + delRole(role);
  82 + addRole(role);
  83 + }
  84 +
  85 + public void reloadRole(Role role) {
  86 + roleRH.reload(role);
  87 + }
  88 +
  89 + private Role fetchRole(Role role){
  90 + List<User> userRolesList = userDao.findUserByRole(role.getId());
  91 + role.setUsers(userRolesList);
  92 + List<Resource> resources = resourceDao.findByRole(role.getId());
  93 + role.setResources(resources);
  94 + return role;
  95 + }
  96 +
  97 + public void delUser(User user) {
  98 + userRH.del(fetchUser(user));
  99 + }
  100 +
  101 + public void addUser(User user) {
  102 + userRH.save(fetchUser(user));
  103 + }
  104 +
  105 + public void updateUser(User user){
  106 + delUser(user);
  107 + addUser(user);
  108 + }
  109 +
  110 + private User fetchUser(User user) {
  111 + List<Role> roles = roleDao.findByUserId(user.getId());
  112 + user.setRoles(roles);
  113 + return user;
  114 + }
  115 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/ResourceRH.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/ResourceRH.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.domain.Resource;
  4 +import com.diligrp.manage.domain.ResourceUrl;
  5 +import com.diligrp.manage.domain.Role;
  6 +import com.diligrp.manage.manager.customRedis.impl.MyRedisUtil;
  7 +import com.diligrp.manage.sdk.session.SessionConstants;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +
  10 +import java.util.ArrayList;
  11 +import java.util.List;
  12 +import java.util.Set;
  13 +
  14 +/**
  15 + * RH:redis handle
  16 + * Created by Administrator on 2015/5/23.
  17 + */
  18 +//@Component
  19 +public class ResourceRH implements RedisHandle<Resource>{
  20 +
  21 + @Autowired
  22 + private MyRedisUtil myRedisUtil;
  23 +
  24 + private RedisRHManage redisRHManage;
  25 +
  26 +
  27 + public ResourceRH(RedisRHManage redisRHManage, MyRedisUtil myRedisUtil) {
  28 + this.myRedisUtil = myRedisUtil;
  29 + this.redisRHManage = redisRHManage;
  30 + }
  31 +
  32 + @Override
  33 + public Resource initByRedis(Resource obj) {
  34 + return null;
  35 + }
  36 +
  37 + /**
  38 + * allUrl
  39 + * url->resID
  40 + * reID->url
  41 + * @param obj
  42 + */
  43 + public void save(Resource obj){
  44 + String resGrpKey = SessionConstants.RES_GRP_KEY + obj.getId();
  45 + String allUrlKey = SessionConstants.ALL_RES_KEY;
  46 + List<String> urls = new ArrayList<>();
  47 + for (ResourceUrl url : obj.getResourceUrl()) {
  48 + String u = formatUrl(url);
  49 + urls.add(u);
  50 + redisRHManage.addResUrl(url);
  51 +// resourceUrlRH.save(url);
  52 + }
  53 +
  54 + myRedisUtil.setAdd(resGrpKey, urls);
  55 + myRedisUtil.setAdd(allUrlKey, urls);
  56 +
  57 + String resRoleKey = SessionConstants.RES_ROLE_KEY + obj.getId();
  58 + Set<String> roles = myRedisUtil.setGet(resRoleKey);
  59 + for (String id : roles) {
  60 + Role role = new Role();
  61 + role.setId(Long.valueOf(id));
  62 + redisRHManage.updateRole(role);
  63 + }
  64 + }
  65 +
  66 + public void del(Resource obj){
  67 + String resUrl = SessionConstants.RES_GRP_KEY + obj.getId();
  68 + myRedisUtil.delKey(resUrl);
  69 +
  70 + String resRoleKey = SessionConstants.RES_ROLE_KEY + obj.getId();
  71 + Set<String> roles = myRedisUtil.setGet(resRoleKey);
  72 + for (String id : roles) {
  73 + Role role = new Role();
  74 + role.setId(Long.valueOf(id));
  75 + redisRHManage.updateRole(role);
  76 + }
  77 +
  78 + for(ResourceUrl ru : obj.getResourceUrl()) {
  79 +// resourceUrlRH.del(ru);
  80 + redisRHManage.delResUrl(ru);
  81 + }
  82 + }
  83 +
  84 + @Override
  85 + public void reload(Resource obj) {
  86 +
  87 + }
  88 +
  89 + private String formatUrl(ResourceUrl res) {
  90 + StringBuilder tempUrl = new StringBuilder();
  91 + tempUrl.append('[').append(res.getMethod()).append(']').append(res.getUrl().replace("http://", ""));
  92 + return tempUrl.toString();
  93 + }
  94 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/ResourceUrlRH.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/ResourceUrlRH.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.domain.ResourceUrl;
  4 +import com.diligrp.manage.manager.customRedis.impl.MyRedisUtil;
  5 +import com.diligrp.manage.sdk.session.SessionConstants;
  6 +import org.springframework.beans.factory.annotation.Autowired;
  7 +
  8 +/**
  9 + * RH:redis handle
  10 + * Created by Administrator on 2015/5/23.
  11 + */
  12 +//@Component
  13 +public class ResourceUrlRH implements RedisHandle<ResourceUrl>{
  14 +
  15 + @Autowired
  16 + private MyRedisUtil myRedisUtil;
  17 +
  18 + public ResourceUrlRH(MyRedisUtil myRedisUtil) {
  19 + this.myRedisUtil = myRedisUtil;
  20 + }
  21 +
  22 + private String formatUrl(ResourceUrl res) {
  23 + StringBuilder tempUrl = new StringBuilder();
  24 + tempUrl.append('[').append(res.getMethod()).append(']').append(res.getUrl().replace("http://", ""));
  25 + return tempUrl.toString();
  26 + }
  27 +
  28 + @Override
  29 + public ResourceUrl initByRedis(ResourceUrl obj) {
  30 + return null;
  31 + }
  32 +
  33 + @Override
  34 + public void save(ResourceUrl obj) {
  35 + String url = formatUrl(obj);
  36 + String urlGrpKey = SessionConstants.URL_RESGRP_KEY + url;
  37 + myRedisUtil.setAdd(urlGrpKey, obj.getParentId().toString());
  38 + }
  39 +
  40 + @Override
  41 + public void del(ResourceUrl obj) {
  42 + String url = formatUrl(obj);
  43 + String urlRes = SessionConstants.URL_RESGRP_KEY + url;
  44 + myRedisUtil.setRomoveMemberKey(urlRes, obj.getParentId().toString());
  45 +
  46 + if(myRedisUtil.setScard(urlRes) == 0) {
  47 + //删除全部URL中的某个URL
  48 + myRedisUtil.setRomoveMemberKey(SessionConstants.ALL_RES_KEY, url);
  49 + }
  50 + }
  51 +
  52 +
  53 + @Override
  54 + public void reload(ResourceUrl obj) {
  55 +
  56 + }
  57 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RoleRH.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/RoleRH.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.domain.Resource;
  4 +import com.diligrp.manage.domain.Role;
  5 +import com.diligrp.manage.domain.User;
  6 +import com.diligrp.manage.manager.customRedis.impl.MyRedisUtil;
  7 +import com.diligrp.manage.sdk.session.SessionConstants;
  8 +import org.springframework.beans.factory.annotation.Autowired;
  9 +
  10 +import java.util.ArrayList;
  11 +import java.util.List;
  12 +
  13 +/**
  14 + * Created by Administrator on 2015/5/23.
  15 + */
  16 +//@Component
  17 +public class RoleRH implements RedisHandle<Role>{
  18 +
  19 + @Autowired
  20 + private MyRedisUtil myRedisUtil;
  21 +
  22 + @Autowired
  23 + private RedisRHManage redisRHManage;
  24 +
  25 + public RoleRH(RedisRHManage redisRHManage, MyRedisUtil myRedisUtil) {
  26 + this.redisRHManage = redisRHManage;
  27 + this.myRedisUtil = myRedisUtil;
  28 + }
  29 +
  30 + /**
  31 + * role->url
  32 + * role->user
  33 + *
  34 + * @param obj
  35 + */
  36 + @Override
  37 + public Role initByRedis(Role obj) {
  38 + return null;
  39 + }
  40 +
  41 + @Override
  42 + public void save(Role obj) {
  43 + reload(obj, true);
  44 + }
  45 +
  46 + @Override
  47 + public void del(Role obj) {
  48 + // role->res
  49 + String roleRes = SessionConstants.ROLE_RES_KEY + obj.getId();
  50 + myRedisUtil.delKey(roleRes);
  51 +
  52 + // role->user
  53 + String roleUser = SessionConstants.ROLE_USER_KEY + obj.getId();
  54 + myRedisUtil.delKey(roleUser);
  55 +
  56 + for (Resource re : obj.getResources()) {
  57 + String resRoleKey = SessionConstants.RES_ROLE_KEY + re.getId();
  58 + myRedisUtil.setRomoveMemberKey(resRoleKey, obj.getId().toString());
  59 + }
  60 +
  61 + updateUser(obj);
  62 + }
  63 +
  64 + @Override
  65 + public void reload(Role obj) {
  66 + reload(obj, false);
  67 + }
  68 +
  69 +
  70 + private void reload(Role obj, Boolean notify) {
  71 + // role->url
  72 + if(obj.getResources() != null && obj.getResources().size() > 0) {
  73 + String roleRes = SessionConstants.ROLE_RES_KEY + obj.getId();
  74 + List<String> ress = new ArrayList<>();
  75 + // url->grp
  76 + for (Resource re : obj.getResources()) {
  77 + String resKey = SessionConstants.RES_GRP_KEY + re.getId();
  78 + ress.add(resKey);
  79 + // res->role
  80 + String resRoleKey = SessionConstants.RES_ROLE_KEY + re.getId();
  81 + myRedisUtil.setAdd(resRoleKey, obj.getId().toString());
  82 + }
  83 + myRedisUtil.setUnionStore(roleRes, ress);
  84 + }
  85 +
  86 + // role->user
  87 + if(obj.getUsers() != null && obj.getUsers().size() > 0) {
  88 + String roleUser = SessionConstants.ROLE_USER_KEY + obj.getId();
  89 + List<Long> users = new ArrayList<>();
  90 + for (User u : obj.getUsers()) {
  91 + users.add(u.getId());
  92 + }
  93 + myRedisUtil.setAdd(roleUser, users.toArray(new Long[0]));
  94 + if(notify) {
  95 + updateUser(obj);
  96 + }
  97 + }
  98 + }
  99 +
  100 + /**
  101 + * 更新用户
  102 + * @param obj
  103 + */
  104 + private void updateUser(Role obj) {
  105 + if(obj.getUsers() != null && obj.getUsers().size() > 0) {
  106 + for (User u : obj.getUsers()) {
  107 + redisRHManage.reloadUser(u);
  108 + }
  109 + }
  110 + }
  111 +
  112 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/UserRH.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/customRedis/impl/redis/UserRH.java
  1 +package com.diligrp.manage.manager.customRedis.impl.redis;
  2 +
  3 +import com.diligrp.manage.domain.DataAuth;
  4 +import com.diligrp.manage.domain.Role;
  5 +import com.diligrp.manage.domain.User;
  6 +import com.diligrp.manage.manager.customRedis.impl.MyRedisUtil;
  7 +import com.diligrp.manage.sdk.session.SessionConstants;
  8 +import org.nutz.json.Json;
  9 +import org.nutz.lang.meta.Pair;
  10 +import org.springframework.beans.factory.annotation.Autowired;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.HashMap;
  14 +import java.util.List;
  15 +import java.util.Map;
  16 +import java.util.Set;
  17 +
  18 +/**
  19 + * Created by Administrator on 2015/5/23.
  20 + */
  21 +//@Component
  22 +public class UserRH implements RedisHandle<User> {
  23 + @Autowired
  24 + private MyRedisUtil myRedisUtil;
  25 +
  26 + @Autowired
  27 + private RedisRHManage redisRHManage;
  28 +
  29 + public UserRH(RedisRHManage redisRHManage, MyRedisUtil myRedisUtil) {
  30 + this.redisRHManage = redisRHManage;
  31 + this.myRedisUtil = myRedisUtil;
  32 + }
  33 +
  34 + @Override
  35 + public User initByRedis(User obj) {
  36 + return null;
  37 + }
  38 +
  39 + /**
  40 + * user->role
  41 + * role->url
  42 + * user->url
  43 + * @param obj
  44 + */
  45 + @Override
  46 + public void save(User obj) {
  47 + reload(obj, true);
  48 + }
  49 +
  50 + @Override
  51 + public void del(User obj) {
  52 + // user->role
  53 + String userRole = SessionConstants.USER_ROLES_KEY + obj.getId();
  54 + myRedisUtil.delKey(userRole);
  55 +
  56 + // user->res
  57 + String userRes = SessionConstants.USER_RESURL_KEY + obj.getId();
  58 + myRedisUtil.delKey(userRes);
  59 +
  60 + // role->user
  61 + for (Role r : obj.getRoles()) {
  62 + String roleUserKey = SessionConstants.ROLE_USER_KEY + r.getId();
  63 + myRedisUtil.setRomoveMemberKey(roleUserKey, obj.getId().toString());
  64 + }
  65 +
  66 +
  67 + String userDataAuth = SessionConstants.USER_DATAAUTH_KEY + obj.getId();
  68 + Set<String> keys = myRedisUtil.keys(userDataAuth + "*");
  69 + for (String key : keys) {
  70 + myRedisUtil.delKey(key);
  71 + }
  72 + }
  73 +
  74 + @Override
  75 + public void reload(User obj) {
  76 + reload(obj, false);
  77 + }
  78 +
  79 + private void reload(User obj, Boolean notify) {
  80 + del(obj);
  81 + reloadRole(obj, notify);
  82 + reloadDataAuth(obj, notify);
  83 + }
  84 +
  85 + /**
  86 + * 加载角色权限
  87 + * @param obj
  88 + * @param notify
  89 + */
  90 + private void reloadRole(User obj, Boolean notify){
  91 + if (obj.getRoles() == null || obj.getRoles().size() == 0) {
  92 + return;
  93 + }
  94 +
  95 + List<Long> roles = new ArrayList<>();
  96 + List<String> roleRes = new ArrayList<>();
  97 + for (Role r : obj.getRoles()) {
  98 + roles.add(r.getId());
  99 + roleRes.add(SessionConstants.ROLE_RES_KEY + r.getId());
  100 + // role->url
  101 + if(notify) {
  102 + redisRHManage.reloadRole(r);
  103 + }
  104 + }
  105 + // user->role
  106 + String userRole = SessionConstants.USER_ROLES_KEY + obj.getId();
  107 + myRedisUtil.setAdd(userRole, roles.toArray(new Long[0]));
  108 + // user->url
  109 + String userRes = SessionConstants.USER_RESURL_KEY + obj.getId();
  110 + myRedisUtil.setUnionStore(userRes, roleRes);
  111 + }
  112 +
  113 + /**
  114 + * 加载数据权限
  115 + * @param obj
  116 + * @param notify
  117 + */
  118 + private void reloadDataAuth(User obj, Boolean notify) {
  119 +
  120 + String key = SessionConstants.USER_DATAAUTH_KEY + obj.getId();
  121 + for (Map.Entry<String, List<String>> entry : fetchDas(obj).entrySet()) {
  122 + myRedisUtil.setAdd(key + ":" + entry.getKey(), entry.getValue().toArray(new String[0]));
  123 + }
  124 + }
  125 +
  126 + private Map<String, List<String>> fetchDas(User obj){
  127 + Map<String, List<String>> das = new HashMap<>();
  128 + for (DataAuth d : obj.getDataAuths()) {
  129 + List<String> list = das.get(d.getType());
  130 + if (list == null) {
  131 + list = new ArrayList<>();
  132 + das.put(d.getType(), list);
  133 + }
  134 + Pair<String> p = new Pair<>();
  135 + p.setName(d.getDataId());
  136 + p.setValue(d.getLabel());
  137 + list.add(Json.toJson(p));
  138 + }
  139 + return das;
  140 + }
  141 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/dataAuth/DataAuthManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/dataAuth/DataAuthManager.java
  1 +package com.diligrp.manage.manager.dataAuth;
  2 +
  3 +import java.util.List;
  4 +
  5 +import com.diligrp.manage.domain.DataAuth;
  6 +import com.diligrp.website.util.dao.BaseQuery;
  7 +import com.diligrp.website.util.web.PageTemplate;
  8 +
  9 +/**
  10 + * <B>Description</B> <br />
  11 + * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved.
  12 + * <br />
  13 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  14 + * <B>Company</B> 地利集团
  15 + *
  16 + * @createTime 2015-10-4 10:02:14
  17 + * @author template
  18 + */
  19 +public interface DataAuthManager {
  20 +
  21 + public PageTemplate find(BaseQuery bq);
  22 +
  23 + public DataAuth findOne(Long pk);
  24 +
  25 + public Boolean save(DataAuth dataAuth, List<DataAuth> datas);
  26 +
  27 + public Boolean update(DataAuth dataAuth);
  28 +
  29 + public Boolean del(Long id);
  30 +
  31 + public List<DataAuth> findByType(Long userId, String type);
  32 +
  33 + public DataAuth findByData(Long userId, String type, String dataAuth);
  34 +
  35 + public List<DataAuth> findbyParent(String type, String parentId, Long userId);
  36 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/dataAuth/DataAuthManagerImpl.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/dataAuth/DataAuthManagerImpl.java
  1 +package com.diligrp.manage.manager.dataAuth;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.cache.annotation.CacheEvict;
  9 +import org.springframework.cache.annotation.Cacheable;
  10 +import org.springframework.stereotype.Component;
  11 +
  12 +import com.diligrp.manage.dao.DataAuthDao;
  13 +import com.diligrp.manage.domain.DataAuth;
  14 +import com.diligrp.website.util.dao.BaseQuery;
  15 +import com.diligrp.website.util.web.PageTemplate;
  16 +
  17 +/**
  18 + * <B>Description</B> <br />
  19 + * <B>Copyright</B> Copyright (c) 2014 www.diligrp.com All rights reserved.
  20 + * <br />
  21 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  22 + * <B>Company</B> 地利集团
  23 + *
  24 + * @createTime 2015-10-4 10:02:14
  25 + * @author template
  26 + */
  27 +@Component
  28 +public class DataAuthManagerImpl implements DataAuthManager {
  29 + private final static Logger LOG = LoggerFactory.getLogger(DataAuthManagerImpl.class);
  30 +
  31 + @Autowired
  32 + private DataAuthDao dataAuthDao;
  33 +
  34 + public PageTemplate find(BaseQuery bq) {
  35 + List<DataAuth> list = dataAuthDao.listByCondition(bq);
  36 + int totalSize = dataAuthDao.countByCondition(bq);
  37 + return PageTemplate.create(bq, totalSize, list);
  38 + }
  39 +
  40 + @Cacheable(value = "rc", key = "'diligrp-manage:dataAuth:id:' + #id", unless = "#result==null")
  41 + public DataAuth findOne(Long id) {
  42 + return dataAuthDao.getById(id);
  43 + }
  44 +
  45 + @Override
  46 + public Boolean save(DataAuth dataAuth, List<DataAuth> datas) {
  47 + List<DataAuth> list = findByType(dataAuth.getUserId(), dataAuth.getType());
  48 + for (DataAuth da : list) {
  49 + dataAuthDao.deleteById(da.getId());
  50 + }
  51 + // if (dataAuth.getDataId() != null &&
  52 + // dataAuth.getDataId().equals("-1")) {
  53 + // dataAuth.setLabel("全部");
  54 + // dataAuthDao.save(dataAuth);
  55 + // return true;
  56 + // }
  57 + for (DataAuth obj : datas) {
  58 + dataAuthDao.save(obj);
  59 + }
  60 + return true;
  61 + }
  62 +
  63 + @CacheEvict(value = "rc", key = "'diligrp-manage:dataAuth:id:' + #dataAuth.getId()")
  64 + public Boolean update(DataAuth dataAuth) {
  65 + return dataAuthDao.update(dataAuth);
  66 + }
  67 +
  68 + @CacheEvict(value = "rc", key = "'diligrp-manage:dataAuth:id:' + #id")
  69 + public Boolean del(Long id) {
  70 + return dataAuthDao.deleteById(id);
  71 + }
  72 +
  73 + @Override
  74 + public List<DataAuth> findByType(Long userId, String type) {
  75 + return dataAuthDao.findByType(userId, type);
  76 + }
  77 +
  78 + @Override
  79 + public DataAuth findByData(Long userId, String type, String dataAuth) {
  80 + return dataAuthDao.findByData(userId, type, dataAuth);
  81 + }
  82 +
  83 + @Override
  84 + public List<DataAuth> findbyParent(String type, String parentId, Long userId) {
  85 + return this.dataAuthDao.findByParentDataId(parentId, type, userId);
  86 + }
  87 +
  88 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/menu/MenuManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/menu/MenuManager.java
  1 +package com.diligrp.manage.manager.menu;
  2 +
  3 +import com.diligrp.manage.domain.Menu;
  4 +import com.diligrp.manage.domain.MenuJson;
  5 +import com.diligrp.website.util.dao.BaseQuery;
  6 +import com.diligrp.website.util.web.PageTemplate;
  7 +import org.springframework.transaction.annotation.Transactional;
  8 +
  9 +import java.util.List;
  10 +
  11 +/**
  12 + * <B>Description</B> <br />
  13 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  14 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  15 + * <B>Company</B> 地利集团
  16 + * @createTime 2014-7-3 14:24:39
  17 + * @author template
  18 + */
  19 +public interface MenuManager {
  20 +
  21 + /**
  22 + * 获取所有菜单的树结构
  23 + * @return
  24 + */
  25 + public List<Menu> fetchAllTree();
  26 + /**
  27 + * 根据用户ID获取菜单
  28 + * @param id
  29 + * @return
  30 + */
  31 + public List<Menu> findByUserId(Long id);
  32 +
  33 + public List<Menu> findByRole(Long id);
  34 +
  35 + /**
  36 + * 根据父节点查询菜单
  37 + * @param id
  38 + * @return
  39 + */
  40 + public List<Menu> findByParent(Long id);
  41 +
  42 + /**
  43 + * 满足条件的总数
  44 + * @param bq
  45 + * @return
  46 + */
  47 + public Integer count(BaseQuery bq);
  48 +
  49 + public PageTemplate find(BaseQuery bq);
  50 +
  51 + public Menu findOne(Long pk);
  52 +
  53 + @Transactional
  54 + public Boolean save(Menu menu);
  55 +
  56 + public Boolean update(Menu menu);
  57 +
  58 + /**
  59 + * 根据系统删除菜单
  60 + * @param id
  61 + * @return
  62 + */
  63 + public Boolean delByNavbar(Long id);
  64 + @Transactional
  65 + public Boolean del(Long id);
  66 +
  67 + @Transactional
  68 + public void sort(Menu menu);
  69 + public void move(Menu menu);
  70 + public List<MenuJson> findAllMenuJson();
  71 + public Integer countAllChild(Long parentId);
  72 +
  73 + public List<Menu> findAll();
  74 +
  75 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/menu/impl/MenuManagerImpl.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/menu/impl/MenuManagerImpl.java
  1 +package com.diligrp.manage.manager.menu.impl;
  2 +
  3 +import com.alibaba.fastjson.JSON;
  4 +import com.diligrp.manage.domain.MenuJson;
  5 +import com.diligrp.manage.domain.Resource;
  6 +import com.diligrp.manage.domain.Role;
  7 +import com.diligrp.manage.manager.menu.MenuManager;
  8 +import com.diligrp.manage.manager.navbar.NavbarManager;
  9 +import com.diligrp.manage.manager.resource.ResourceManager;
  10 +import com.diligrp.manage.manager.role.RoleManager;
  11 +import com.diligrp.website.util.redis.RedisUtil;
  12 +import org.slf4j.Logger;
  13 +import org.slf4j.LoggerFactory;
  14 +import org.springframework.beans.factory.annotation.Autowired;
  15 +import org.springframework.stereotype.Component;
  16 +
  17 +import com.diligrp.manage.dao.MenuDao;
  18 +import com.diligrp.manage.domain.Menu;
  19 +import com.diligrp.website.util.dao.BaseQuery;
  20 +import com.diligrp.website.util.web.PageTemplate;
  21 +
  22 +
  23 +import java.util.*;
  24 +
  25 +/**
  26 + * <B>Description</B> <br />
  27 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  28 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  29 + * <B>Company</B> 地利集团
  30 + * @createTime 2014-7-3 14:24:39
  31 + * @author template
  32 + */
  33 +@Component
  34 +public class MenuManagerImpl implements MenuManager {
  35 + private final static Logger LOG = LoggerFactory
  36 + .getLogger(MenuManagerImpl.class);
  37 +
  38 + /**
  39 + * 缓存菜单KEY
  40 + */
  41 + private static final String REDIS_MENU_TREE_KEY = "dili_redis_MANAGE_MENU_";
  42 +
  43 +
  44 + /**
  45 + * 过期时间
  46 + */
  47 + private static final int OVERDUE_TIME = 1 * 60 * 60 * 1000;
  48 +
  49 + @Autowired
  50 + private MenuDao menuDao;
  51 +
  52 + @Autowired
  53 + private NavbarManager navbarManager;
  54 +
  55 + @Autowired
  56 + private ResourceManager resourceManager;
  57 +
  58 + @Autowired
  59 + private RoleManager roleManager;
  60 +
  61 + @Autowired
  62 + private RedisUtil redisUtils;
  63 +
  64 +
  65 +
  66 + public PageTemplate find(BaseQuery bq) {
  67 + List<Menu> list = menuDao.listByCondition(bq);
  68 + int totalSize = menuDao.countByCondition(bq);
  69 + return PageTemplate.create(bq, totalSize, list);
  70 + }
  71 +
  72 + public Integer count(BaseQuery bq){
  73 + int totalSize = menuDao.countByCondition(bq);
  74 + return totalSize;
  75 + }
  76 +
  77 + @Override
  78 + public List<Menu> fetchAllTree() {
  79 + String key = Menu.allTreeKey();
  80 +// if (redisUtils.checkKeyExists(key)) {
  81 +// List<Menu> menus = redisUtils.getObject(key, new ArrayList<Menu>().getClass());
  82 +// return menus;
  83 +// }
  84 + List<Menu> menus = menuDao.findAll();
  85 + Set<Menu> menuSet = new HashSet<>(menus);
  86 + List<Menu> menuTree = parseTree(menuSet);
  87 +// redisUtils.setObject(key, menuTree);
  88 + return menuTree;
  89 + }
  90 +
  91 + /**
  92 + * 根据用户ID获取菜单
  93 + * @param id
  94 + * @return
  95 + */
  96 + public List<Menu> findByUserId(Long id) {
  97 +// String key = REDIS_MENU_TREE_KEY + id.toString();
  98 +// if (redisUtils.checkKeyExists(key)) {
  99 +// List<Menu> menus = redisUtils.getObject(key, new ArrayList<Menu>().getClass());
  100 +// return menus;
  101 +// }
  102 + List<Menu> menus = menuDao.findByUserId(id);
  103 + Set<Menu> menuSet = new HashSet<>(menus);
  104 + List<Menu> menuTree = parseTree(menuSet);
  105 +// redisUtils.setObjectByExpire(key, menuTree, OVERDUE_TIME);
  106 + return menuTree;
  107 + }
  108 +
  109 + @Override
  110 + public List<Menu> findByRole(Long id) {
  111 + return menuDao.findByRole(id);
  112 + }
  113 +
  114 + /**
  115 + * 转换成树
  116 + * @param menus
  117 + * @return
  118 + */
  119 + private List<Menu> parseTree(Set<Menu> menus) {
  120 + List<Menu> temp = parseMenu(menus);
  121 + // menus.addAll(temp);
  122 + // Map<Long, Menu> tree = parseNav(menus);
  123 + List<Menu> list = new ArrayList<>();
  124 +// for (Menu m : tree.values()) {
  125 +// m.sortChildren();
  126 +// list.add(m);
  127 +// }
  128 + for (Menu m : temp) {
  129 + m.sortChildren();
  130 + list.add(m);
  131 + }
  132 + return list;
  133 + }
  134 +
  135 + /**
  136 + * 转换菜单的层次结构
  137 + * 注: 会修改menus里面的对象
  138 + * @param menus
  139 + * @return 在权限列表中没有的上层权限
  140 + */
  141 + private List<Menu> parseMenu(Set<Menu> menus){
  142 +// List<Menu> list = menuDao.findByParent(0l);
  143 + Menu root = menuDao.getById(0l);
  144 +
  145 + List<Menu> rootMenus = getMenusWithParentId(root.getId(), menus);
  146 + //Menu root = new Menu(-1l);
  147 +// Menu root = list.get(0);
  148 + Menu rootmenu = buildMenuTree(root , rootMenus, menus);
  149 + // List<Menu> temp = new ArrayList<>();
  150 + // Map<Long, Menu> menuMap = Maps.newHashMap();
  151 + // for (Menu menu : menus) {
  152 + // menuMap.put(menu.getId(), menu);
  153 + // }
  154 + // for (Menu menu : menus) {
  155 + // List<Menu> t = regroup(menu, menuMap);
  156 + // temp.addAll(t);
  157 + // }
  158 + rootmenu.sortChildren();
  159 + return rootmenu.getChildren();
  160 + }
  161 +
  162 + private List<Menu> getMenusWithParentId(Long parentId, Set<Menu> menus) {
  163 + List<Menu> children = new ArrayList<Menu>();
  164 + for (Menu menu : menus)
  165 + if (menu.getParentId().equals(parentId))
  166 + children.add(menu);
  167 + return children;
  168 +
  169 + }
  170 +
  171 + private Menu buildMenuTree(Menu parent, List<Menu> children, Set<Menu> nodes) {
  172 + for(Menu node : children) {
  173 + buildMenuTree(node, getMenusWithParentId(node.getId(), nodes), nodes);
  174 + }
  175 + parent.getChildren().addAll(children);
  176 + return parent;
  177 + }
  178 +
  179 +
  180 + /**
  181 + * 重组层次结构
  182 + * @param menu
  183 + * @param menuMap
  184 + * @return
  185 + */
  186 + private List<Menu> regroup(Menu menu, Map<Long, Menu> menuMap) {
  187 +
  188 + List<Menu> temp = new ArrayList<>();
  189 + //如果在map中找到以某menu的父节点作为id的menu,则说明该节点不是父节点
  190 + Menu parent = menuMap.get(menu.getParentId());
  191 + //parent为空说明该节点为顶级父节点,则直接返回该对象
  192 + if (parent == null) {
  193 + //menuMap.put(menu.getParentId(), parent);
  194 + temp.add(menu);
  195 + // List<Menu> t = regroup(parent, menuMap);
  196 + // temp.addAll(t);
  197 + } else {
  198 + //如果parent不为空,说明该对象有父级,则将该对象加入其父对象的子集中,并返回,并迭代该对象看是否还有父级
  199 + parent.addChildren(menu);
  200 + }
  201 + return temp;
  202 + }
  203 +// private List<Menu> regroup(Menu menu, Map<Long, Menu> menuMap) {
  204 +// List<Menu> temp = new ArrayList<>();
  205 +// if (menu.getIsRoot() != 0) {
  206 +// return temp;
  207 +// }
  208 +// Menu parent = menuMap.get(menu.getParentId());
  209 +// if (parent == null) {
  210 +// Menu par = findOne(menu.getParentId());
  211 +// if (par != null) {
  212 +// parent = par;
  213 +// menuMap.put(menu.getParentId(), parent);
  214 +// temp.add(parent);
  215 +// List<Menu> t = regroup(parent, menuMap);
  216 +// temp.addAll(t);
  217 +// }
  218 +// }
  219 +// parent.addChildren(menu);
  220 +// return temp;
  221 +// }
  222 +
  223 + /**
  224 + * 将nav转换成menu, 并转换成一个树结构
  225 + * @param menus
  226 + * @return
  227 + */
  228 +// private Map<Long, Menu> parseNav(Set<Menu> menus){
  229 +// Map<Long, Menu> tree = new HashMap<>();
  230 +// for (Menu menu : menus) {
  231 +// if(menu.getIsRoot() == 0){
  232 +// continue;
  233 +// }
  234 +// if (!tree.containsKey(menu.getNavbarId())) {
  235 +// Menu nav = new Menu();
  236 +// Navbar navbar = navbarManager.findOne(menu.getNavbarId());
  237 +// nav.setLabel(navbar.getProjectName());
  238 +// nav.setId(menu.getNavbarId());
  239 +// nav.setParentId(0l);
  240 +// nav.setType(2);
  241 +// tree.put(menu.getNavbarId(), nav);
  242 +// }
  243 +// Menu nav = tree.get(menu.getNavbarId());
  244 +// nav.addChildren(menu);
  245 +// }
  246 +// return tree;
  247 +// }
  248 +
  249 +
  250 + /**
  251 + * 根据父节点查询菜单
  252 + * @param id
  253 + * @return
  254 + */
  255 + public List<Menu> findByParent(Long id) {
  256 + if (redisUtils.checkKeyExists(Menu.listChildrenKey(id))) {
  257 + return redisUtils.getList(Menu.listChildrenKey(id), Menu.class);
  258 + }
  259 + List<Menu> list = menuDao.findByParent(id);
  260 + redisUtils.setObject(Menu.listChildrenKey(id), list);
  261 + return list;
  262 + }
  263 +
  264 +
  265 + @Override
  266 + public void sort(Menu menu) {
  267 + if(LOG.isInfoEnabled()) {
  268 + LOG.info("开始进行移动位置, menu:" + JSON.toJSONString(menu));
  269 + }
  270 + // 1. 旧node
  271 + Menu obj = findOne(menu.getId());
  272 + // 2. 旧list
  273 + List<Menu> list = findByParent(obj.getParentId());
  274 + // 3. 剔除旧node,添加新状态(TODO,可以优化为交换)
  275 + Menu t = null;
  276 + for (int i = 0; i < list.size(); i ++) {
  277 + Menu m = list.get(i);
  278 + if (m.getId().equals(obj.getId())) {
  279 + t = m;
  280 + break;
  281 + }
  282 + }
  283 + list.remove(t);
  284 + int sort = menu.getSort();
  285 + if (sort >= list.size()) {
  286 + sort = list.size();
  287 + }
  288 + if (sort < 0) {
  289 + sort = 0;
  290 + }
  291 + list.add(sort, t);
  292 + // 4. 新list
  293 + for (int i = 0; i < list.size(); i ++) {
  294 + Menu m = list.get(i);
  295 + m.setSort(i);
  296 + update(m);
  297 + }
  298 + if (LOG.isInfoEnabled()) {
  299 + LOG.info("移动位置成功!");
  300 + }
  301 + }
  302 +
  303 + @Override
  304 + public void move(Menu menu) {
  305 + Menu m = menuDao.getById(menu.getId());
  306 + m.setParentId(menu.getParentId());
  307 + menuDao.update(m);
  308 + m.setSort(0);
  309 + sort(m);
  310 + }
  311 +
  312 +
  313 + public Menu findOne(Long pk) {
  314 + if (redisUtils.checkKeyExists(Menu.itemKey(pk))) {
  315 + return redisUtils.getObject(Menu.itemKey(pk), Menu.class);
  316 + }
  317 + Menu menu = menuDao.getById(pk);
  318 + redisUtils.setObject(Menu.itemKey(pk), menu);
  319 + return menu;
  320 + }
  321 +
  322 + public Boolean save(Menu menu) {
  323 + // 去重
  324 + BaseQuery bq = new BaseQuery();
  325 + bq.addParam("parentId", menu.getParentId().toString());
  326 + bq.addParam("label", menu.getLabel().toString());
  327 + if (menuDao.countByCondition(bq) > 0) {
  328 + return false;
  329 + }
  330 +
  331 + if (menu.getParentId() != null) {
  332 + redisUtils.deleteByKey(Menu.listChildrenKey(menu.getParentId()));
  333 + }
  334 + redisUtils.deleteByKey(Menu.allTreeKey());
  335 +// if(menu.getType().equals(Menu.TYPE_LEAF)) {
  336 +// Resource resource = Resource.makeGetResource(menu);
  337 +// resourceManager.save(resource);
  338 +// }
  339 +
  340 + return menuDao.save(menu);
  341 + }
  342 +
  343 + public Boolean update(Menu menu) {
  344 +// // 去重
  345 +// BaseQuery bq = new BaseQuery();
  346 +// bq.addParam("parentId", menu.getParentId().toString());
  347 +// bq.addParam("label", menu.getLabel().toString());
  348 +// List<Menu> r = menuDao.listByCondition(bq);
  349 +// if (r.size() == 1 && menu.getId() != r.get(0).getId()) {
  350 +// return false;
  351 +// }
  352 +
  353 + if (menu.getParentId() != null) {
  354 + redisUtils.deleteByKey(Menu.listChildrenKey(menu.getParentId()));
  355 + }
  356 + redisUtils.deleteByKey(Menu.itemKey(menu.getId()));
  357 + redisUtils.deleteByKey(Menu.allTreeKey());
  358 + return menuDao.update(menu);
  359 + }
  360 +
  361 + public Boolean delByNavbar(Long id) {
  362 + return menuDao.delByNavbar(id);
  363 + }
  364 +
  365 + public Boolean del(Long id) {
  366 + Menu menu = findOne(id);
  367 + if (menu == null) {
  368 + return true;
  369 + }
  370 + recursionMenuUsed(menu);
  371 +
  372 + if (menu.getParentId() != null) {
  373 + redisUtils.deleteByKey(Menu.listChildrenKey(menu.getParentId()));
  374 + }
  375 + redisUtils.deleteByKey(Menu.itemKey(id));
  376 + redisUtils.deleteByKey(Menu.allTreeKey());
  377 +
  378 + recursionDel(menu);
  379 +
  380 + return true;
  381 + }
  382 +
  383 + /**
  384 + * 递归删除菜单
  385 + * @param menu
  386 + */
  387 + private void recursionDel(Menu menu){
  388 + if(menu.getType().equals(Menu.TYPE_DIR)) {
  389 + List<Menu> list = menuDao.findByParent(menu.getId());
  390 + for (Menu m : list) {
  391 + recursionDel(m);
  392 + }
  393 + }
  394 + List<Resource> resources = resourceManager.findByParent(menu.getId());
  395 + for (Resource r : resources) {
  396 + resourceManager.del(r.getId());
  397 + }
  398 + menuDao.deleteById(menu.getId());
  399 + }
  400 +
  401 + /**
  402 + * 递归判断菜单是否被使用
  403 + * @param menu
  404 + */
  405 + private void recursionMenuUsed(Menu menu) {
  406 + if (menu == null || menu.getId() == null) {
  407 + return ;
  408 + }
  409 + String using = isUsed(menu.getId());
  410 + if (!using.equals("")) {
  411 + throw new RuntimeException("菜单或子菜单在角色[" +using +"]中正在使用, 不能进行删除!");
  412 + }
  413 + if (menu.getType().equals(Menu.TYPE_DIR)) {
  414 + List<Menu> list = menuDao.findByParent(menu.getId());
  415 + for (Menu m : list) {
  416 + recursionMenuUsed(m);
  417 + }
  418 + }
  419 + }
  420 +
  421 + /**
  422 + * 是否被使用
  423 + * @param menuId
  424 + * @return
  425 + */
  426 + private String isUsed(Long menuId) {
  427 + List<Role> list = roleManager.findByMenu(menuId);
  428 + String roles = "";
  429 + for (Role r : list) {
  430 + if (!"".equals(roles)) {
  431 + roles += ",";
  432 + }
  433 + roles += r.getRoleName();
  434 + }
  435 + return roles;
  436 + }
  437 +
  438 + @Override
  439 + public List<MenuJson> findAllMenuJson() {
  440 + // TODO Auto-generated method stub
  441 + return menuDao.findAllMenuJson();
  442 + }
  443 +
  444 + @Override
  445 + public Integer countAllChild(Long parentId) {
  446 + return menuDao.countAllChild(parentId);
  447 + }
  448 +
  449 + @Override
  450 + public List<Menu> findAll() {
  451 + return menuDao.findAll();
  452 + }
  453 +
  454 +
  455 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/navbar/NavbarManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/navbar/NavbarManager.java
  1 +package com.diligrp.manage.manager.navbar;
  2 +
  3 +import com.diligrp.manage.domain.Navbar;
  4 +import com.diligrp.website.util.dao.BaseQuery;
  5 +import com.diligrp.website.util.web.PageTemplate;
  6 +
  7 +import java.util.List;
  8 +
  9 +/**
  10 + * <B>Description</B> <br />
  11 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  12 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  13 + * <B>Company</B> 地利集团
  14 + * @createTime 2014-7-3 14:24:40
  15 + * @author template
  16 + */
  17 +public interface NavbarManager {
  18 +
  19 + public PageTemplate find(BaseQuery bq);
  20 +
  21 + public Navbar findOne(Long pk);
  22 +
  23 + public Boolean save(Navbar navbar);
  24 +
  25 + public Boolean update(Navbar navbar);
  26 +
  27 + public Boolean del(Long id);
  28 +
  29 + public List<Navbar> findAll(BaseQuery bq);
  30 +
  31 + /**
  32 + * 根据名称查询
  33 + * @param name
  34 + * @return
  35 + */
  36 + public Navbar findByCode(String name);
  37 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/navbar/impl/NavbarManagerImpl.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/navbar/impl/NavbarManagerImpl.java
  1 +package com.diligrp.manage.manager.navbar.impl;
  2 +
  3 +import java.util.List;
  4 +
  5 +import org.slf4j.Logger;
  6 +import org.slf4j.LoggerFactory;
  7 +import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.stereotype.Component;
  9 +
  10 +import com.diligrp.manage.dao.MenuDao;
  11 +import com.diligrp.manage.dao.NavbarDao;
  12 +import com.diligrp.manage.domain.Navbar;
  13 +import com.diligrp.manage.manager.navbar.NavbarManager;
  14 +import com.diligrp.website.util.dao.BaseQuery;
  15 +import com.diligrp.website.util.web.PageTemplate;
  16 +
  17 +/**
  18 + * <B>Description</B> <br />
  19 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  20 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  21 + * <B>Company</B> 地利集团
  22 + * @createTime 2014-7-3 14:24:40
  23 + * @author template
  24 + */
  25 +@Component
  26 +public class NavbarManagerImpl implements NavbarManager {
  27 + private final static Logger LOG = LoggerFactory
  28 + .getLogger(NavbarManagerImpl.class);
  29 +
  30 + @Autowired
  31 + private NavbarDao navbarDao;
  32 +
  33 + @Autowired
  34 + private MenuDao menuDao;
  35 +
  36 + public PageTemplate find(BaseQuery bq) {
  37 + List<Navbar> list = navbarDao.listByCondition(bq);
  38 + int totalSize = navbarDao.countByCondition(bq);
  39 + return PageTemplate.create(bq, totalSize, list);
  40 + }
  41 +
  42 + public Navbar findOne(Long pk) {
  43 + return navbarDao.getById(pk);
  44 + }
  45 +
  46 + public Boolean save(Navbar navbar) {
  47 + return navbarDao.save(navbar);
  48 + }
  49 +
  50 + public Boolean update(Navbar navbar) {
  51 + return navbarDao.update(navbar);
  52 + }
  53 +
  54 + public Boolean del(Long id) {
  55 + menuDao.delByNavbar(id);
  56 + return navbarDao.deleteById(id);
  57 + }
  58 +
  59 + @Override
  60 + public List<Navbar> findAll(BaseQuery bq) {
  61 + return navbarDao.findAll(bq);
  62 + }
  63 +
  64 + /**
  65 + * 根据名称查询
  66 + * @param name
  67 + * @return
  68 + */
  69 + public Navbar findByCode(String name) {
  70 + return navbarDao.findByCode(name);
  71 + }
  72 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/resource/ResourceManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/resource/ResourceManager.java
  1 +package com.diligrp.manage.manager.resource;
  2 +
  3 +import java.util.List;
  4 +
  5 +import com.diligrp.manage.domain.Resource;
  6 +import com.diligrp.website.util.dao.BaseQuery;
  7 +import com.diligrp.website.util.web.PageTemplate;
  8 +
  9 +/**
  10 + * <B>Description</B> <br />
  11 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  12 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  13 + * <B>Company</B> 地利集团
  14 + * @createTime 2014-7-3 14:24:40
  15 + * @author template
  16 + */
  17 +public interface ResourceManager {
  18 +
  19 + public PageTemplate find(BaseQuery bq);
  20 +
  21 + public Resource findOne(Long pk);
  22 +
  23 + public Boolean save(Resource resource);
  24 +
  25 + public Boolean update(Resource resource);
  26 +
  27 + public Boolean del(Long id);
  28 +
  29 + public List<Resource> listAllResourceJson(Resource resource);
  30 +
  31 + public List<String> loadResourceListToCache();
  32 +
  33 + public List<Resource> findByRole(Long id);
  34 +
  35 + public List<Resource> findAllOpen();
  36 +
  37 + public List<Resource> findAll();
  38 +
  39 +// public Boolean removeRoleAssociation(Long id);
  40 +
  41 + public boolean checkResourceUrlUnique(String url, Long id);
  42 +
  43 + public boolean checkResourceNameUnique(String resourceName, Long id);
  44 +
  45 + public List<Resource> findByParent(Long id);
  46 +// public void deleteByNavbarId(Long id);
  47 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/resource/impl/ResourceManagerImpl.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/resource/impl/ResourceManagerImpl.java
  1 +package com.diligrp.manage.manager.resource.impl;
  2 +
  3 +import com.diligrp.manage.dao.ResourceDao;
  4 +import com.diligrp.manage.dao.ResourceUrlDao;
  5 +import com.diligrp.manage.domain.Resource;
  6 +import com.diligrp.manage.domain.Role;
  7 +import com.diligrp.manage.manager.customRedis.RedisManager;
  8 +import com.diligrp.manage.manager.resource.ResourceManager;
  9 +import com.diligrp.manage.manager.role.RoleManager;
  10 +import com.diligrp.manage.sdk.session.SessionConstants;
  11 +import com.diligrp.website.util.dao.BaseQuery;
  12 +import com.diligrp.website.util.redis.RedisUtil;
  13 +import com.diligrp.website.util.web.PageTemplate;
  14 +import org.slf4j.Logger;
  15 +import org.slf4j.LoggerFactory;
  16 +import org.springframework.beans.factory.annotation.Autowired;
  17 +import org.springframework.cache.annotation.CachePut;
  18 +import org.springframework.stereotype.Component;
  19 +import org.springframework.transaction.annotation.Propagation;
  20 +import org.springframework.transaction.annotation.Transactional;
  21 +
  22 +import java.util.List;
  23 +
  24 +/**
  25 + * <B>Description</B> <br />
  26 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  27 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  28 + * <B>Company</B> 地利集团
  29 + * @createTime 2014-7-3 14:24:40
  30 + * @author template
  31 + */
  32 +@Component
  33 +public class ResourceManagerImpl implements ResourceManager {
  34 + private final static Logger LOG = LoggerFactory
  35 + .getLogger(ResourceManagerImpl.class);
  36 +
  37 + @Autowired
  38 + private ResourceDao resourceDao;
  39 +
  40 + @Autowired
  41 + private ResourceUrlDao resourceUrlDao;
  42 +
  43 + @Autowired
  44 + private RedisUtil manageRedisUtil;
  45 +
  46 + @Autowired
  47 + private RoleManager roleManager;
  48 +
  49 + public RedisManager getRedisManager() {
  50 + return redisManager;
  51 + }
  52 +
  53 + @Autowired
  54 + private RedisManager redisManager;
  55 +
  56 + public PageTemplate find(BaseQuery bq) {
  57 + List<Resource> list = resourceDao.listByCondition(bq);
  58 + int totalSize = resourceDao.countByCondition(bq);
  59 + return PageTemplate.create(bq, totalSize, list);
  60 + }
  61 +
  62 +// @Override
  63 +// public void afterPropertiesSet() throws Exception {
  64 +// loadResourceListToCache();
  65 +// }
  66 +
  67 + @Override
  68 + public List<String> loadResourceListToCache() {
  69 + LOG.info("---Load Resource List---");
  70 + List<String> list = resourceDao.listAllUrls();
  71 + manageRedisUtil.setObject(SessionConstants.CACHED_RESOURCE_LIST_KEY, list);
  72 + LOG.info(String.format("Resource List Records: %d", list.size()));
  73 + LOG.info("---Load Resource List Successfully---");
  74 + return list;
  75 + }
  76 +
  77 +// @Cacheable(value = "rc", key = "'manage:res:resId' + #pk")
  78 + public Resource findOne(Long pk) {
  79 + return resourceDao.getById(pk);
  80 + }
  81 +
  82 + @Transactional(propagation=Propagation.REQUIRED)
  83 + public Boolean save(Resource resource) {
  84 + // 去重
  85 +// BaseQuery bq = new BaseQuery();
  86 +// bq.addParam("resourceName", resource.getResourceName());
  87 +// if (resourceDao.countByCondition(bq) > 0) {
  88 +// return false;
  89 +// }
  90 +
  91 + Boolean b = resourceDao.save(resource);
  92 + // TODO 整理一下代码,有些代码要删除了
  93 + manageRedisUtil.deleteByKey(SessionConstants.CACHED_RESOURCE_LIST_KEY);
  94 + return b;
  95 + }
  96 +
  97 + @Transactional(propagation=Propagation.REQUIRED)
  98 +// @CacheEvict(value = "rc", key = "'manage:res:resId:' + #resource.getId()")
  99 + public Boolean update(Resource resource) {
  100 + // 去重
  101 +// BaseQuery bq = new BaseQuery();
  102 +// bq.addParam("resourceName", resource.getResourceName());
  103 +// List<Resource> r = resourceDao.listByCondition(bq);
  104 +// if (r.size() == 1 && resource.getId() != r.get(0).getId()) {
  105 +// return false;
  106 +// }
  107 +
  108 + Boolean b = resourceDao.update(resource);
  109 + // TODO 整理一下代码,有些代码要删除了
  110 + manageRedisUtil.deleteByKey(SessionConstants.CACHED_RESOURCE_LIST_KEY);
  111 + return b;
  112 + }
  113 +
  114 + @CachePut(value="rc", key="'manage:wasteResKey'", condition="#root.target.getRedisManager().delRes(#id)")
  115 + public Boolean del(Long id) {
  116 + Resource re = findOne(id);
  117 + List<Role> roles = roleManager.findByResource(id);
  118 + if (roles != null && roles.size() > 0) {
  119 + StringBuffer sb = new StringBuffer();
  120 + Boolean b = false;
  121 + for (Role r : roles) {
  122 + if (b) {
  123 + sb.append(",");
  124 + }
  125 + b = true;
  126 + sb.append(r.getRoleName());
  127 + }
  128 + throw new RuntimeException("[" + sb.toString() + "]引用了权限["+re.getResourceName()+"]!无法删除!");
  129 + }
  130 +
  131 + Boolean b = resourceDao.deleteById(id);
  132 + resourceUrlDao.deleteByParentId(id);
  133 + // TODO 整理一下代码,有些代码要删除了
  134 + manageRedisUtil.deleteByKey(SessionConstants.CACHED_RESOURCE_LIST_KEY);
  135 + return b;
  136 + }
  137 +
  138 + @Override
  139 +// @Cacheable(value = "rc", key = "'manage:resJsonAll'")
  140 + public List<Resource> listAllResourceJson(Resource resource) {
  141 + return resourceDao.listAllResourceJson(resource);
  142 + }
  143 +
  144 + @Override
  145 +// @Cacheable(value = "rc", key = "'manage:roleResAll:roleId' + #id")
  146 + public List<Resource> findByRole(Long id) {
  147 + return resourceDao.findByRole(id);
  148 + }
  149 +
  150 + public List<Resource> findByParent(Long id) {
  151 + return resourceDao.findByParent(id);
  152 + }
  153 +
  154 + @Override
  155 +// @Cacheable(value = "rc", key = "'manage:resAllOpen'")
  156 + public List<Resource> findAllOpen() {
  157 + return resourceDao.findAll(1);
  158 + }
  159 +
  160 +// @Cacheable(value = "rc", key = "'manage:resAll'")
  161 + public List<Resource> findAll() {
  162 + return resourceDao.findAll(null);
  163 + }
  164 +
  165 + // 沒有地方使用,未添加缓存
  166 +// @Override
  167 +// public Boolean removeRoleAssociation(Long id) {
  168 +// return resourceDao.removeRoleAssociation(id);
  169 +// }
  170 +
  171 + @Override
  172 + public boolean checkResourceUrlUnique(String url, Long id) {
  173 + return resourceDao.checkResourceUrlUnique(url, id);
  174 + }
  175 +
  176 + @Override
  177 + public boolean checkResourceNameUnique(String resourceName, Long id) {
  178 + return resourceDao.checkResourceNameUnique(resourceName, id);
  179 + }
  180 +
  181 +// @Override
  182 +// public void deleteByNavbarId(Long id) {
  183 +// resourceDao.deleteByNavbarId(id);
  184 +// }
  185 +
  186 +}
diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/resourceurl/resource/ResourceUrlManager.java 0 → 100644
  1 +++ a/diligrp-manage-manager/src/main/java/com/diligrp/manage/manager/resourceurl/resource/ResourceUrlManager.java
  1 +package com.diligrp.manage.manager.resourceurl.resource;
  2 +
  3 +import com.diligrp.manage.domain.ResourceUrl;
  4 +import com.diligrp.website.util.dao.BaseQuery;
  5 +
  6 +import java.util.List;
  7 +
  8 +/**
  9 + * <B>Description</B> <br />
  10 + * <B>Copyright</B> Copyright (c) 2014 www.dili7 All rights reserved. <br />
  11 + * 本软件源代码版权归地利集团,未经许可不得任意复制与传播.<br />
  12 + * <B>Company</B> 地利集团
  13 + * @createTime 2014-7-3 14:24:40
  14 + * @author template
  15 + */
  16 +public interface ResourceUrlManager {
  17 +
  18 +// public PageTemplate find(BaseQuery bq);
  19 +
  20 +// public Resource findOne(Long pk);
  21 +
  22 +// public Boolean del(Long id);
  23 +
  24 +// public List<Resource> findAll();
  25 +
  26 + public Boolean saveOrUpdate(Long parentId, List<ResourceUrl> urls);
  27 +
  28 + public List<ResourceUrl> listByCondition(BaseQuery bq);
  29 +}