Browse Source

初始提交2

taizhimin 5 years ago
parent
commit
7f6f275ed8
28 changed files with 377 additions and 193 deletions
  1. 13 0
      pom.xml
  2. 1 0
      sys/pom.xml
  3. 2 0
      sys/src/main/java/com/rxida/xilinedu/sys/SysApplication.java
  4. 23 0
      sys/src/main/java/com/rxida/xilinedu/sys/common/CrudDao.java
  5. 5 5
      sys/src/main/java/com/rxida/xilinedu/sys/common/JsonResult.java
  6. 9 0
      sys/src/main/java/com/rxida/xilinedu/sys/common/ShiroConfiguration.java
  7. 13 7
      sys/src/main/java/com/rxida/xilinedu/sys/common/SystemAuthorizingRealm.java
  8. 2 7
      sys/src/main/java/com/rxida/xilinedu/sys/dao/MenuDao.java
  9. 6 1
      sys/src/main/java/com/rxida/xilinedu/sys/dao/RoleDao.java
  10. 2 7
      sys/src/main/java/com/rxida/xilinedu/sys/dao/UserDao.java
  11. 73 0
      sys/src/main/java/com/rxida/xilinedu/sys/entity/BaseEntity.java
  12. 1 1
      sys/src/main/java/com/rxida/xilinedu/sys/entity/Menu.java
  13. 1 1
      sys/src/main/java/com/rxida/xilinedu/sys/entity/Permission.java
  14. 1 1
      sys/src/main/java/com/rxida/xilinedu/sys/entity/Role.java
  15. 1 1
      sys/src/main/java/com/rxida/xilinedu/sys/entity/User.java
  16. 0 122
      sys/src/main/java/com/rxida/xilinedu/sys/security/Digests.java
  17. 55 0
      sys/src/main/java/com/rxida/xilinedu/sys/service/BaseService.java
  18. 2 15
      sys/src/main/java/com/rxida/xilinedu/sys/service/MenuService.java
  19. 10 13
      sys/src/main/java/com/rxida/xilinedu/sys/service/UserService.java
  20. 23 0
      sys/src/main/java/com/rxida/xilinedu/sys/web/DruidStatViewServlet.java
  21. 0 1
      sys/src/main/java/com/rxida/xilinedu/sys/web/LoginController.java
  22. 2 1
      sys/src/main/java/com/rxida/xilinedu/sys/web/MenuController.java
  23. 27 5
      sys/src/main/java/com/rxida/xilinedu/sys/web/UserController.java
  24. 2 1
      sys/src/main/resources/application.yml
  25. 11 1
      sys/src/main/resources/mapper/sys/MenuDao.xml
  26. 30 0
      sys/src/main/resources/mapper/sys/PermissionDao.xml
  27. 20 0
      sys/src/main/resources/mapper/sys/RoleDao.xml
  28. 42 3
      sys/src/main/resources/mapper/sys/UserDao.xml

+ 13 - 0
pom.xml

@@ -15,11 +15,19 @@
     <description>Demo project for Spring Boot</description>
     <packaging>pom</packaging>
 
+    <repositories>
+        <repository>
+            <id>central</id>
+            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
+            <name>aliyun</name>
+        </repository>
+    </repositories>
 
     <properties>
         <java.version>1.8</java.version>
         <commons-lang3.version>3.3.2</commons-lang3.version>
         <commons-codec.version>1.9</commons-codec.version>
+        <druid-version>1.1.9</druid-version>
     </properties>
 
     <modules>
@@ -28,6 +36,11 @@
 
     <dependencies>
         <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+            <version>${druid-version}</version>
+        </dependency>
+        <dependency>
             <groupId>commons-codec</groupId>
             <artifactId>commons-codec</artifactId>
             <version>${commons-codec.version}</version>

+ 1 - 0
sys/pom.xml

@@ -21,4 +21,5 @@
         </dependency>
     </dependencies>
 
+
 </project>

+ 2 - 0
sys/src/main/java/com/rxida/xilinedu/sys/SysApplication.java

@@ -3,10 +3,12 @@ package com.rxida.xilinedu.sys;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.ServletComponentScan;
 import org.springframework.context.annotation.ComponentScan;
 
 @ComponentScan("com.rxida")
 @MapperScan("*.dao")
+@ServletComponentScan
 @SpringBootApplication
 public class SysApplication {
 

+ 23 - 0
sys/src/main/java/com/rxida/xilinedu/sys/common/CrudDao.java

@@ -0,0 +1,23 @@
+package com.rxida.xilinedu.sys.common;
+
+import java.io.Serializable;
+import java.util.List;
+
+public interface CrudDao<T> extends Serializable {
+    int insert(T entity);
+
+    int update(T entity);
+
+    int delete(T entity);
+
+    List<T> findList(T entity);
+
+    T get(T entity);
+
+    void batchInsert(List<T> list);
+
+    void batchUpdate(List<T> list);
+
+    void batchDelete(List<T> list);
+
+}

+ 5 - 5
sys/src/main/java/com/rxida/xilinedu/sys/common/JsonResult.java

@@ -1,11 +1,11 @@
 package com.rxida.xilinedu.sys.common;
 
 public class JsonResult {
-    public static final String ERROE = "1";
-    public static final String SUCCESS = "20000";
+    public static final int ERROE = 50008;// 50008:非法的token; 50012:其他客户端登录了;  50014:Token 过期了;
+    public static final int SUCCESS = 20000;
     private String msg;
     private Object data;
-    private String code;
+    private int code;
 
     public JsonResult() {
 
@@ -27,11 +27,11 @@ public class JsonResult {
         this.data = data;
     }
 
-    public String getCode() {
+    public int getCode() {
         return code;
     }
 
-    public void setCode(String code) {
+    public void setCode(int code) {
         this.code = code;
     }
 }

+ 9 - 0
sys/src/main/java/com/rxida/xilinedu/sys/common/ShiroConfiguration.java

@@ -5,6 +5,7 @@ import org.apache.shiro.mgt.SecurityManager;
 import org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor;
 import org.apache.shiro.spring.web.ShiroFilterFactoryBean;
 import org.apache.shiro.web.mgt.DefaultWebSecurityManager;
+import org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
@@ -57,6 +58,14 @@ public class ShiroConfiguration {
         return matcher;
     }
 
+    // AOP式方法级权限检查
+    @Bean
+    public DefaultAdvisorAutoProxyCreator defaultAdvisorAutoProxyCreator(){
+        DefaultAdvisorAutoProxyCreator creator = new DefaultAdvisorAutoProxyCreator();
+        creator.setProxyTargetClass(true);
+        return creator;
+    }
+
     //加入注解的使用,不加入这个注解不生效
     @Bean
     public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(SecurityManager securityManager) {

+ 13 - 7
sys/src/main/java/com/rxida/xilinedu/sys/common/SystemAuthorizingRealm.java

@@ -4,25 +4,31 @@ import com.rxida.xilinedu.sys.dao.UserDao;
 import com.rxida.xilinedu.sys.entity.Permission;
 import com.rxida.xilinedu.sys.entity.Role;
 import com.rxida.xilinedu.sys.entity.User;
-import com.rxida.xilinedu.sys.security.Digests;
 import com.rxida.xilinedu.sys.utils.Encodes;
 import org.apache.shiro.authc.*;
+import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
 import org.apache.shiro.authz.AuthorizationInfo;
 import org.apache.shiro.authz.SimpleAuthorizationInfo;
+import org.apache.shiro.crypto.hash.Sha256Hash;
 import org.apache.shiro.realm.AuthorizingRealm;
 import org.apache.shiro.subject.PrincipalCollection;
 import org.apache.shiro.util.ByteSource;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
-import java.io.Serializable;
-import java.util.Arrays;
-
+@Component("authorizer")
 public class SystemAuthorizingRealm extends AuthorizingRealm {
-    @Autowired
+    @Resource
     private UserDao userDao;
 
+    //告诉shiro如何根据获取到的用户信息中的密码和盐值来校验密码
+    {
+        HashedCredentialsMatcher matcher = new HashedCredentialsMatcher("SHA-1");
+        matcher.setHashIterations(1024);
+        this.setCredentialsMatcher(matcher);
+    }
+
     public SystemAuthorizingRealm() {
         this.setCachingEnabled(false);
     }

+ 2 - 7
sys/src/main/java/com/rxida/xilinedu/sys/dao/MenuDao.java

@@ -1,16 +1,11 @@
 package com.rxida.xilinedu.sys.dao;
 
+import com.rxida.xilinedu.sys.common.CrudDao;
 import com.rxida.xilinedu.sys.entity.Menu;
 import org.apache.ibatis.annotations.Mapper;
 
 import java.util.List;
 
 @Mapper
-public interface MenuDao {
-
-    void insert(Menu menu);
-
-    void update(Menu menu);
-
-    List<Menu> findAll();
+public interface MenuDao extends CrudDao<Menu> {
 }

+ 6 - 1
sys/src/main/java/com/rxida/xilinedu/sys/dao/RoleDao.java

@@ -1,4 +1,9 @@
 package com.rxida.xilinedu.sys.dao;
 
-public interface RoleDao {
+import com.rxida.xilinedu.sys.common.CrudDao;
+import com.rxida.xilinedu.sys.entity.Role;
+import org.apache.ibatis.annotations.Mapper;
+
+@Mapper
+public interface RoleDao extends CrudDao<Role> {
 }

+ 2 - 7
sys/src/main/java/com/rxida/xilinedu/sys/dao/UserDao.java

@@ -1,5 +1,6 @@
 package com.rxida.xilinedu.sys.dao;
 
+import com.rxida.xilinedu.sys.common.CrudDao;
 import com.rxida.xilinedu.sys.entity.User;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -7,12 +8,6 @@ import org.apache.ibatis.annotations.Param;
 import java.util.List;
 
 @Mapper
-public interface UserDao {
-    List<User> findAll();
-
-    void insert(User user);
-
-    void update(User user);
-
+public interface UserDao extends CrudDao<User> {
     User findByUsername(@Param(value = "username") String username);
 }

+ 73 - 0
sys/src/main/java/com/rxida/xilinedu/sys/entity/BaseEntity.java

@@ -0,0 +1,73 @@
+package com.rxida.xilinedu.sys.entity;
+
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.subject.Subject;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.UUID;
+
+public class BaseEntity implements Serializable {
+    protected String id;
+    protected User createBy;
+    protected Date createDate;
+    protected User updateBy;
+    protected Date updateDate;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public User getCreateBy() {
+        return createBy;
+    }
+
+    public void setCreateBy(User createBy) {
+        this.createBy = createBy;
+    }
+
+    public Date getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(Date createDate) {
+        this.createDate = createDate;
+    }
+
+    public User getUpdateBy() {
+        return updateBy;
+    }
+
+    public void setUpdateBy(User updateBy) {
+        this.updateBy = updateBy;
+    }
+
+    public Date getUpdateDate() {
+        return updateDate;
+    }
+
+    public void setUpdateDate(Date updateDate) {
+        this.updateDate = updateDate;
+    }
+
+    public void preInsert() {
+        this.id = UUID.randomUUID().toString();
+        this.createDate = new Date();
+        this.updateDate = this.createDate;
+        final Subject subject = SecurityUtils.getSubject();
+        User currentUser = (User) subject.getPrincipal();
+        this.createBy = currentUser;
+        this.updateBy = currentUser;
+    }
+
+    public void preUpdate() {
+        this.updateDate = this.createDate;
+        final Subject subject = SecurityUtils.getSubject();
+        User currentUser = (User) subject.getPrincipal();
+        this.updateBy = currentUser;
+    }
+}

+ 1 - 1
sys/src/main/java/com/rxida/xilinedu/sys/entity/Menu.java

@@ -4,7 +4,7 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.List;
 
-public class Menu {
+public class Menu extends BaseEntity{
     private String id;
     private String parentId;
     private String name;

+ 1 - 1
sys/src/main/java/com/rxida/xilinedu/sys/entity/Permission.java

@@ -1,6 +1,6 @@
 package com.rxida.xilinedu.sys.entity;
 
-public class Permission {
+public class Permission extends BaseEntity {
     private String id;
     private String permission;
     private Role role;

+ 1 - 1
sys/src/main/java/com/rxida/xilinedu/sys/entity/Role.java

@@ -3,7 +3,7 @@ package com.rxida.xilinedu.sys.entity;
 
 import java.util.List;
 
-public class Role {
+public class Role extends BaseEntity{
     private String id;
     private String name;
     private List<Permission> permissions;

+ 1 - 1
sys/src/main/java/com/rxida/xilinedu/sys/entity/User.java

@@ -3,7 +3,7 @@ package com.rxida.xilinedu.sys.entity;
 
 import java.util.List;
 
-public class User {
+public class User extends BaseEntity {
     private String id;
     private String name;
     private String username;

+ 0 - 122
sys/src/main/java/com/rxida/xilinedu/sys/security/Digests.java

@@ -1,122 +0,0 @@
-/**
- * Copyright (c) 2005-2012 springside.org.cn
- */
-package com.rxida.xilinedu.sys.security;
-
-import com.rxida.xilinedu.sys.utils.Exceptions;
-import org.apache.commons.lang3.Validate;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.GeneralSecurityException;
-import java.security.MessageDigest;
-import java.security.SecureRandom;
-
-/**
- * 支持SHA-1/MD5消息摘要的工具类.
- * 
- * 返回ByteSource,可进一步被编码为Hex, Base64或UrlSafeBase64
- * 
- * @author calvin
- */
-public class Digests {
-
-	private static final String SHA1 = "SHA-1";
-	private static final String MD5 = "MD5";
-
-	private static SecureRandom random = new SecureRandom();
-
-	/**
-	 * 对输入字符串进行md5散列.
-	 */
-	public static byte[] md5(byte[] input) {
-		return digest(input, MD5, null, 1);
-	}
-	public static byte[] md5(byte[] input, int iterations) {
-		return digest(input, MD5, null, iterations);
-	}
-	
-	/**
-	 * 对输入字符串进行sha1散列.
-	 */
-	public static byte[] sha1(byte[] input) {
-		return digest(input, SHA1, null, 1);
-	}
-
-	public static byte[] sha1(byte[] input, byte[] salt) {
-		return digest(input, SHA1, salt, 1);
-	}
-
-	public static byte[] sha1(byte[] input, byte[] salt, int iterations) {
-		return digest(input, SHA1, salt, iterations);
-	}
-
-	/**
-	 * 对字符串进行散列, 支持md5与sha1算法.
-	 */
-	private static byte[] digest(byte[] input, String algorithm, byte[] salt, int iterations) {
-		try {
-			MessageDigest digest = MessageDigest.getInstance(algorithm);
-
-			if (salt != null) {
-				digest.update(salt);
-			}
-
-			byte[] result = digest.digest(input);
-
-			for (int i = 1; i < iterations; i++) {
-				digest.reset();
-				result = digest.digest(result);
-			}
-			return result;
-		} catch (GeneralSecurityException e) {
-			throw Exceptions.unchecked(e);
-		}
-	}
-
-	/**
-	 * 生成随机的Byte[]作为salt.
-	 * 
-	 * @param numBytes byte数组的大小
-	 */
-	public static byte[] generateSalt(int numBytes) {
-		Validate.isTrue(numBytes > 0, "numBytes argument must be a positive integer (1 or larger)", numBytes);
-
-		byte[] bytes = new byte[numBytes];
-		random.nextBytes(bytes);
-		return bytes;
-	}
-
-	/**
-	 * 对文件进行md5散列.
-	 */
-	public static byte[] md5(InputStream input) throws IOException {
-		return digest(input, MD5);
-	}
-
-	/**
-	 * 对文件进行sha1散列.
-	 */
-	public static byte[] sha1(InputStream input) throws IOException {
-		return digest(input, SHA1);
-	}
-
-	private static byte[] digest(InputStream input, String algorithm) throws IOException {
-		try {
-			MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
-			int bufferLength = 8 * 1024;
-			byte[] buffer = new byte[bufferLength];
-			int read = input.read(buffer, 0, bufferLength);
-
-			while (read > -1) {
-				messageDigest.update(buffer, 0, read);
-				read = input.read(buffer, 0, bufferLength);
-			}
-
-			return messageDigest.digest();
-		} catch (GeneralSecurityException e) {
-			throw Exceptions.unchecked(e);
-		}
-	}
-	
-}

+ 55 - 0
sys/src/main/java/com/rxida/xilinedu/sys/service/BaseService.java

@@ -0,0 +1,55 @@
+package com.rxida.xilinedu.sys.service;
+
+import com.rxida.xilinedu.sys.common.CrudDao;
+import com.rxida.xilinedu.sys.entity.BaseEntity;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.List;
+
+@Transactional(readOnly = true)
+@Service
+public class BaseService<D extends CrudDao<E>, E extends BaseEntity> {
+    protected D dao;
+
+    public List<E> findList(E entity) {
+        return dao.findList(entity);
+    }
+
+    public E get(E entity) {
+        return dao.get(entity);
+    }
+
+    @Transactional
+    public int delete(E entity) {
+        return dao.delete(entity);
+    }
+
+    @Transactional
+    public int save(E entity) {
+        if (entity.getId() == null || "".equals(entity.getId())) {
+            entity.preInsert();
+            return dao.insert(entity);
+        } else {
+            entity.preUpdate();
+            return dao.update(entity);
+        }
+    }
+
+    @Transactional
+    public void batchDelete(List<E> list) {
+        dao.batchDelete(list);
+    }
+
+    @Transactional
+    public void batchInsert(List<E> list) {
+        list.forEach(item -> item.preInsert());
+        dao.batchInsert(list);
+    }
+
+    @Transactional
+    public void batchUpdate(List<E> list) {
+        list.forEach(item -> item.preUpdate());
+        dao.batchUpdate(list);
+    }
+}

+ 2 - 15
sys/src/main/java/com/rxida/xilinedu/sys/service/MenuService.java

@@ -2,30 +2,17 @@ package com.rxida.xilinedu.sys.service;
 
 import com.rxida.xilinedu.sys.dao.MenuDao;
 import com.rxida.xilinedu.sys.entity.Menu;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.util.List;
-import java.util.UUID;
 
 @Service
-@Transactional(readOnly = true)
 public class MenuService {
     @Resource
-    private MenuDao menuDao;
+    private MenuDao dao;
 
     public List<Menu> findAllList() {
-        return menuDao.findAll();
-    }
-
-    public void save(Menu menu) {
-        if (menu.getId() != null && !"".equals(menu.getId())) {
-            menuDao.insert(menu);
-        } else {
-            menu.setId(UUID.randomUUID().toString());
-            menuDao.update(menu);
-        }
+        return dao.findList(new Menu());
     }
 }

+ 10 - 13
sys/src/main/java/com/rxida/xilinedu/sys/service/UserService.java

@@ -2,7 +2,6 @@ package com.rxida.xilinedu.sys.service;
 
 import com.rxida.xilinedu.sys.dao.UserDao;
 import com.rxida.xilinedu.sys.entity.User;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -10,22 +9,20 @@ import javax.annotation.Resource;
 import java.util.List;
 
 @Service
-@Transactional(readOnly = true)
-public class UserService {
-    @Autowired
+@Transactional
+public class UserService extends BaseService<UserDao, User> {
+    @Resource
     private UserDao userDao;
 
     public List<User> findAll() {
-        return userDao.findAll();
+        return userDao.findList(new User());
     }
 
-    public void save(User user) {
-        if (user.getId() == null || "".equals(user.getId())) {
-            //TODO  生成
-            user.setId("1111");
-            userDao.insert(user);
-        } else {
-            userDao.update(user);
-        }
+    public List<User> findList(User user) {
+        return userDao.findList(user);
+    }
+
+    public User get(User user) {
+        return userDao.get(user);
     }
 }

+ 23 - 0
sys/src/main/java/com/rxida/xilinedu/sys/web/DruidStatViewServlet.java

@@ -0,0 +1,23 @@
+package com.rxida.xilinedu.sys.web;
+
+import com.alibaba.druid.support.http.StatViewServlet;
+
+import javax.servlet.annotation.WebInitParam;
+import javax.servlet.annotation.WebServlet;
+
+/**
+ * @author hu
+ * Created by hu on 2018/2/27.
+ */
+//urlPatterns  指定监控页面url
+@WebServlet(urlPatterns = "/druid/*",
+        initParams = {
+                @WebInitParam(name = "allow", value = "192.168.33.108,127.0.0.1"),// IP白名单(没有配置或者为空,则允许所有访问)
+                @WebInitParam(name = "deny", value = "192.168.1.73"),// IP黑名单 (存在共同时,deny优先于allow)
+                @WebInitParam(name = "loginUsername", value = "admin"),// 用户名
+                @WebInitParam(name = "loginPassword", value = "123456"),// 密码
+                @WebInitParam(name = "resetEnable", value = "true")// 禁用HTML页面上的“Reset All”功能
+        }
+)
+public class DruidStatViewServlet extends StatViewServlet {
+}

+ 0 - 1
sys/src/main/java/com/rxida/xilinedu/sys/web/LoginController.java

@@ -5,7 +5,6 @@ import com.rxida.xilinedu.sys.entity.User;
 import org.apache.shiro.SecurityUtils;
 import org.apache.shiro.authc.*;
 import org.apache.shiro.subject.Subject;
-import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;

+ 2 - 1
sys/src/main/java/com/rxida/xilinedu/sys/web/MenuController.java

@@ -7,6 +7,7 @@ import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 @RestController
@@ -31,6 +32,6 @@ public class MenuController {
 
     @RequestMapping("/save")
     public void save(Menu menu) {
-        menuService.save(menu);
+        // menuService.save(menu);
     }
 }

+ 27 - 5
sys/src/main/java/com/rxida/xilinedu/sys/web/UserController.java

@@ -3,11 +3,12 @@ package com.rxida.xilinedu.sys.web;
 import com.rxida.xilinedu.sys.common.JsonResult;
 import com.rxida.xilinedu.sys.entity.User;
 import com.rxida.xilinedu.sys.service.UserService;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.subject.Subject;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.CrossOrigin;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
 import java.util.List;
 
 @RestController
@@ -17,15 +18,36 @@ public class UserController {
     @Autowired
     private UserService userService;
 
-    @RequestMapping("/list")
+    @PostMapping("/allList")
     public List<User> findAll() {
         return userService.findAll();
     }
 
-    @RequestMapping("/save")
+    @PostMapping("/list")
+    public List<User> findList(User user) {
+        return userService.findList(user);
+    }
+
+    @PostMapping("/save")
     public JsonResult save(User user) {
         userService.save(user);
         JsonResult result = new JsonResult();
         return result;
     }
+
+    @RequestMapping("/info")
+    public JsonResult info() {
+        Subject subject = SecurityUtils.getSubject();
+        User user = (User) subject.getPrincipal();
+        JsonResult result = new JsonResult();
+        result.setData(user);
+        result.setCode(JsonResult.SUCCESS);
+        result.setMsg("success");
+        return result;
+    }
+
+    @RequestMapping("/infoById")
+    public User infoById(User user) {
+        return userService.get(user);
+    }
 }

+ 2 - 1
sys/src/main/resources/application.yml

@@ -2,6 +2,7 @@ server:
   port: 80
 spring:
   datasource:
+    type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.cj.jdbc.Driver
     url: jdbc:mysql://localhost:3306/xilinedu?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&serverTimezone=UTC
     username: root
@@ -16,4 +17,4 @@ logging:
         xilinedu:
           sys:
             dao:
-              DEBUGW
+              DEBUG

+ 11 - 1
sys/src/main/resources/mapper/sys/MenuDao.xml

@@ -1,7 +1,17 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.rxida.xilinedu.sys.dao.MenuDao">
-    <select id="findAll" resultType="com.rxida.xilinedu.sys.entity.Menu">
+    <select id="get" resultType="com.rxida.xilinedu.sys.entity.Menu">
+            SELECT
+              `name` AS 'name',
+              href AS 'href',
+              id AS 'id',
+              parent_id AS "parentId",
+              sort AS 'sort'
+            FROM sys_menu a
+              where id = #{id}
+    </select>
+    <select id="findList" resultType="com.rxida.xilinedu.sys.entity.Menu">
             SELECT
               `name` AS 'name',
               href AS 'href',

+ 30 - 0
sys/src/main/resources/mapper/sys/PermissionDao.xml

@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rxida.xilinedu.sys.dao.PermissionDao">
+    <select id="findList" resultType="com.rxida.xilinedu.sys.entity.Permission">
+            SELECT
+              `name` AS 'name',
+              href AS 'href',
+              id AS 'id',
+              parent_id AS "parentId",
+              sort AS 'sort'
+            FROM sys_menu a
+              order by sort
+    </select>
+    <select id="get" resultType="com.rxida.xilinedu.sys.entity.Permission">
+            SELECT
+              `name` AS 'name',
+              href AS 'href',
+              id AS 'id',
+              parent_id AS "parentId",
+              sort AS 'sort'
+            FROM sys_menu a
+              where id = #{id}
+    </select>
+    <insert id="insert" parameterType="com.rxida.xilinedu.sys.entity.Permission">
+
+    </insert>
+    <update id="update" parameterType="com.rxida.xilinedu.sys.entity.Permission">
+
+    </update>
+</mapper>

+ 20 - 0
sys/src/main/resources/mapper/sys/RoleDao.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.rxida.xilinedu.sys.dao.RoleDao">
+    <select id="findList" resultType="com.rxida.xilinedu.sys.entity.Role">
+            SELECT
+              `name` AS 'name',
+              href AS 'href',
+              id AS 'id',
+              parent_id AS "parentId",
+              sort AS 'sort'
+            FROM sys_menu a
+              order by sort
+    </select>
+    <insert id="insert" parameterType="com.rxida.xilinedu.sys.entity.Role">
+
+    </insert>
+    <update id="update" parameterType="com.rxida.xilinedu.sys.entity.Role">
+
+    </update>
+</mapper>

+ 42 - 3
sys/src/main/resources/mapper/sys/UserDao.xml

@@ -36,11 +36,50 @@
         LEFT JOIN sys_menu  sm ON sm.id = srm.menu_id
         WHERE login_name = #{username}
     </select>
-    <select id="findAll" resultType="com.rxida.xilinedu.sys.entity.User">
+    <select id="get" parameterType="com.rxida.xilinedu.sys.entity.User" resultMap="userResult">
         select
+          a.id AS "id",
+          a.name AS "name",
+          a.email AS "email",
+          a.phone AS "phone",
           login_name AS "username",
-          password AS "password"
-        from sys_user
+          password AS "password",
+          sr.id AS "roleList.id",
+          sr.name AS "roleList.name",
+          sm.permission AS "permissionList.permission",
+          sm.id AS "permissionList.id"
+        from sys_user a
+        LEFT JOIN sys_user_role sur ON sur.user_id = a.id
+        LEFT JOIN sys_role sr ON sr.id = sur.role_id
+        LEFT JOIN sys_role_menu  srm ON srm.role_id = sr.id
+        LEFT JOIN sys_menu  sm ON sm.id = srm.menu_id
+        WHERE id = #{id}
+    </select>
+    <select id="findList" parameterType="java.lang.String" resultMap="userResult">
+        select
+          a.id AS "id",
+          a.name AS "name",
+          a.email AS "email",
+          a.phone AS "phone",
+          login_name AS "username",
+          password AS "password",
+          sr.id AS "roleList.id",
+          sr.name AS "roleList.name",
+          sm.permission AS "permissionList.permission",
+          sm.id AS "permissionList.id"
+        from sys_user a
+        LEFT JOIN sys_user_role sur ON sur.user_id = a.id
+        LEFT JOIN sys_role sr ON sr.id = sur.role_id
+        LEFT JOIN sys_role_menu  srm ON srm.role_id = sr.id
+        LEFT JOIN sys_menu  sm ON sm.id = srm.menu_id
+        <where>
+            <if test="username !=null and username !=''">
+                AND login_name = #{username}
+            </if>
+            <if test="username !=null and username !=''">
+                AND login_name = #{username}
+            </if>
+        </where>
     </select>
     <insert id="insert" parameterType="com.rxida.xilinedu.sys.entity.User">