Pārlūkot izejas kodu

ADD:instance_permission service & MOD: menuList

zhangxin 8 gadi atpakaļ
vecāks
revīzija
def965e2dc
30 mainītis faili ar 250 papildinājumiem un 373 dzēšanām
  1. 4 2
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/MenuDao.java
  2. 0 17
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/Role2MenuDao.java
  3. 35 3
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/Menu.java
  4. 0 68
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/Role2Menu.java
  5. 3 3
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/instancePermission/ReportPermission.java
  6. 2 3
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/MenuService.java
  7. 0 15
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/Role2MenuService.java
  8. 1 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/User2RoleService.java
  9. 1 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/GroupServiceImpl.java
  10. 9 9
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/MenuServiceImpl.java
  11. 0 31
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/Role2MenuServiceImpl.java
  12. 6 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/TaskServiceImpl.java
  13. 17 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/User2RoleServiceImpl.java
  14. 2 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/CasePermissionService.java
  15. 6 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/GroupPermissionService.java
  16. 7 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/ReportPermissionService.java
  17. 6 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/TaskPermissionService.java
  18. 24 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/impl/GroupPermissionServiceImpl.java
  19. 22 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/impl/ReportPermissionServiceImpl.java
  20. 23 0
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/impl/TaskPermissionServiceImpl.java
  21. 7 13
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TestController.java
  22. 25 5
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/MenuVO.java
  23. 0 71
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/Role2MenuVO.java
  24. 8 2
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/MenuVOWrapper.java
  25. 0 39
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/Role2MenuVOWrapper.java
  26. 4 2
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/MenuLogic.java
  27. 0 14
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/Role2MenuLogic.java
  28. 28 3
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/MenuLogicImpl.java
  29. 0 64
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/Role2MenuLogicImpl.java
  30. 10 9
      mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

+ 4 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/MenuDao.java

@@ -4,12 +4,14 @@ import cn.iselab.mooctest.site.models.Menu;
 import org.springframework.data.repository.CrudRepository;
 
 import javax.transaction.Transactional;
+import java.util.List;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 @Transactional
-public interface MenuDao extends CrudRepository<Menu, Long>{
+public interface MenuDao extends CrudRepository<Menu, Long> {
 
+    List<Menu> findByRoleId(Long roleId);
 }

+ 0 - 17
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/dao/Role2MenuDao.java

@@ -1,17 +0,0 @@
-package cn.iselab.mooctest.site.dao;
-
-import cn.iselab.mooctest.site.models.Role2Menu;
-import org.springframework.data.repository.CrudRepository;
-
-import javax.transaction.Transactional;
-import java.util.List;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-@Transactional
-public interface Role2MenuDao extends CrudRepository<Role2Menu, Long> {
-
-    List<Role2Menu> findByRoleId(Long roleId);
-}

+ 35 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/Menu.java

@@ -4,7 +4,7 @@ import javax.persistence.*;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 @Entity
 @Table(name = "menu")
@@ -12,10 +12,19 @@ public class Menu {
 
     @Id
     @GeneratedValue
-    public Long id;
+    private Long id;
+
+    @Column(name = "role_id")
+    private Long roleId;
 
     @Column(name = "menu")
-    public String menu;
+    private String menu;
+
+    @Column(name = "detail")
+    private String detail;
+
+    @Column(name = "url")
+    private String url;
 
     public Long getId() {
         return id;
@@ -25,6 +34,14 @@ public class Menu {
         this.id = id;
     }
 
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
     public String getMenu() {
         return menu;
     }
@@ -33,4 +50,19 @@ public class Menu {
         this.menu = menu;
     }
 
+    public String getDetail() {
+        return detail;
+    }
+
+    public void setDetail(String detail) {
+        this.detail = detail;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
 }

+ 0 - 68
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/Role2Menu.java

@@ -1,68 +0,0 @@
-package cn.iselab.mooctest.site.models;
-
-import javax.persistence.*;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-@Entity
-@Table(name = "role_2_menu")
-public class Role2Menu {
-
-    @Id
-    @GeneratedValue
-    private Long id;
-
-    @Column(name = "role_id")
-    private Long roleId;
-
-    @Column(name = "menu_id")
-    private Long menuId;
-
-    @Column(name = "operation")
-    private String operation;
-
-    @Column(name = "url")
-    private String url;
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getRoleId() {
-        return roleId;
-    }
-
-    public void setRoleId(Long roleId) {
-        this.roleId = roleId;
-    }
-
-    public Long getMenuId() {
-        return menuId;
-    }
-
-    public void setMenuId(Long menuId) {
-        this.menuId = menuId;
-    }
-
-    public String getOperation() {
-        return operation;
-    }
-
-    public void setOperation(String operation) {
-        this.operation = operation;
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(String url) {
-        this.url = url;
-    }
-}

+ 3 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/models/instancePermission/ReportPermission.java

@@ -21,7 +21,7 @@ public class ReportPermission extends WildcardPermission{
     private Long userId;
 
     @Column(name = "operation")
-    private Long operation;
+    private String operation;
 
     @Column(name = "instance_id")
     private Long instanceId;
@@ -45,11 +45,11 @@ public class ReportPermission extends WildcardPermission{
         this.userId = userId;
     }
 
-    public Long getOperation() {
+    public String getOperation() {
         return operation;
     }
 
-    public void setOperation(Long operation) {
+    public void setOperation(String operation) {
         this.operation = operation;
     }
 

+ 2 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/MenuService.java

@@ -6,11 +6,10 @@ import java.util.List;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 public interface MenuService {
 
-    List<Menu> getMenuList();
+    List<Menu> getMenuListByRoleName(String roleName);
 
-    Menu getMenuBymenuId(Long menuId);
 }

+ 0 - 15
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/Role2MenuService.java

@@ -1,15 +0,0 @@
-package cn.iselab.mooctest.site.service;
-
-import cn.iselab.mooctest.site.models.Role2Menu;
-
-import java.util.List;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-public interface Role2MenuService {
-
-    List<Role2Menu> getRole2MenuListByRoleName(String roleName);
-
-}

+ 1 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/User2RoleService.java

@@ -12,4 +12,5 @@ public interface User2RoleService {
 
     List<User2Role> getByUserId(Long userId);
 
+    User2Role setDefaultRole(Long userId);
 }

+ 1 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/GroupServiceImpl.java

@@ -180,6 +180,7 @@ public class GroupServiceImpl implements GroupService {
         tasks = tasks.stream().filter(task -> task.getEndTime().after(new Timestamp(System.currentTimeMillis()))).
                 collect(Collectors.toList());
 
+
         for (Task task : tasks) {
             AssignedTask assignedTask = taskService.workerJoinTask(task.getId(), workerId);
             List<AssignedCase> assignedCases = assignedTaskService.getAssignedCases(assignedTask);

+ 9 - 9
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/MenuServiceImpl.java

@@ -1,9 +1,10 @@
 package cn.iselab.mooctest.site.service.impl;
 
 import cn.iselab.mooctest.site.dao.MenuDao;
+import cn.iselab.mooctest.site.dao.RoleDao;
+import cn.iselab.mooctest.site.models.Role;
 import cn.iselab.mooctest.site.models.Menu;
 import cn.iselab.mooctest.site.service.MenuService;
-import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -11,21 +12,20 @@ import java.util.List;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 @Service
-public class MenuServiceImpl implements MenuService{
+public class MenuServiceImpl implements MenuService {
 
     @Autowired
     private MenuDao menuDao;
 
-    @Override
-    public List<Menu> getMenuList() {
-        return Lists.newArrayList(menuDao.findAll());
-    }
+    @Autowired
+    private RoleDao roleDao;
 
     @Override
-    public Menu getMenuBymenuId(Long menuId) {
-        return menuDao.findOne(menuId);
+    public List<Menu> getMenuListByRoleName(String roleName) {
+        Role role = roleDao.findByName(roleName);
+        return menuDao.findByRoleId(role.getId());
     }
 }

+ 0 - 31
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/Role2MenuServiceImpl.java

@@ -1,31 +0,0 @@
-package cn.iselab.mooctest.site.service.impl;
-
-import cn.iselab.mooctest.site.dao.Role2MenuDao;
-import cn.iselab.mooctest.site.dao.RoleDao;
-import cn.iselab.mooctest.site.models.Role;
-import cn.iselab.mooctest.site.models.Role2Menu;
-import cn.iselab.mooctest.site.service.Role2MenuService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-@Service
-public class Role2MenuServiceImpl implements Role2MenuService {
-
-    @Autowired
-    private Role2MenuDao role2MenuDao;
-
-    @Autowired
-    private RoleDao roleDao;
-
-    @Override
-    public List<Role2Menu> getRole2MenuListByRoleName(String roleName) {
-        Role role = roleDao.findByName(roleName);
-        return role2MenuDao.findByRoleId(role.getId());
-    }
-}

+ 6 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/TaskServiceImpl.java

@@ -6,6 +6,7 @@ import cn.iselab.mooctest.site.data.CaseBlock;
 import cn.iselab.mooctest.site.models.*;
 import cn.iselab.mooctest.site.service.*;
 import cn.iselab.mooctest.site.service.common.SubsiteService;
+import cn.iselab.mooctest.site.service.instancePermission.TaskPermissionService;
 import com.google.common.collect.Lists;
 import org.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -57,6 +58,9 @@ public class TaskServiceImpl extends BaseService implements TaskService {
     @Autowired
     private ManagerService managerService;
 
+    @Autowired
+    private TaskPermissionService taskPermissionService;
+
     private static Random random = new Random(System.currentTimeMillis());
 
     @Override
@@ -213,6 +217,8 @@ public class TaskServiceImpl extends BaseService implements TaskService {
     @Override
     public AssignedTask workerJoinTask(long taskId, long workerId) {
 
+        taskPermissionService.takeTask(workerId, taskId);
+
         AssignedTask assignedTask = assignedTaskService.getAssignedTask(taskId, workerId);
 
         if (assignedTask != null) {

+ 17 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/impl/User2RoleServiceImpl.java

@@ -1,12 +1,15 @@
 package cn.iselab.mooctest.site.service.impl;
 
+import cn.iselab.mooctest.site.dao.RoleDao;
 import cn.iselab.mooctest.site.dao.User2RoleDao;
+import cn.iselab.mooctest.site.models.Role;
 import cn.iselab.mooctest.site.models.User2Role;
 import cn.iselab.mooctest.site.service.BaseService;
 import cn.iselab.mooctest.site.service.User2RoleService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.List;
 
 /**
@@ -19,10 +22,24 @@ public class User2RoleServiceImpl extends BaseService implements User2RoleServic
     @Autowired
     private User2RoleDao user2RoleDao;
 
+    @Autowired
+    private RoleDao roleDao;
+
     @Override
     public List<User2Role> getByUserId(Long userId) {
         List<User2Role> user2RoleList = user2RoleDao.findByUserId(userId);
         return user2RoleList;
     }
+
+    @Override
+    public User2Role setDefaultRole(Long userId) {
+        Role role = roleDao.findByName("worker");
+        User2Role user2Role = new User2Role();
+        user2Role.setUserId(userId);
+        user2Role.setRoleId(role.getId());
+        user2Role.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        user2RoleDao.save(user2Role);
+        return user2Role;
+    }
 }
 

+ 2 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/CasePermissionService.java

@@ -11,4 +11,6 @@ import java.util.List;
 public interface CasePermissionService {
 
     List<CasePermission> getCasePermissionsByuserId(Long userId);
+
+
 }

+ 6 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/GroupPermissionService.java

@@ -11,5 +11,11 @@ import java.util.List;
 public interface GroupPermissionService {
 
     List<GroupPermission> getGroupPermissionByUserId(Long userId);
+
+    //for worker
+    GroupPermission joinGroup(Long userId, Long groupId);
+
+    //for manager
+    GroupPermission createGroup(Long userId, Long groupId);
 }
 

+ 7 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/ReportPermissionService.java

@@ -9,5 +9,12 @@ import java.util.List;
  * @date 2017-07-11.
  */
 public interface ReportPermissionService {
+
     List<ReportPermission> getReportPermissionsByuserId(Long userId);
+
+    //for worker
+    ReportPermission uploadReport(Long userId, Long taskId);
+
+    //for manager
+    ReportPermission checkReport(Long userId, Long taskId);
 }

+ 6 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/TaskPermissionService.java

@@ -11,4 +11,10 @@ import java.util.List;
 public interface TaskPermissionService {
 
     List<TaskPermission> getTaskPermissionsByuserId(Long userId);
+
+    //for worker
+    TaskPermission takeTask(Long userId, Long taskId);
+
+    //for manager
+    TaskPermission createTask(Long userId, Long taskId);
 }

+ 24 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/impl/GroupPermissionServiceImpl.java

@@ -6,6 +6,7 @@ import cn.iselab.mooctest.site.service.instancePermission.GroupPermissionService
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.List;
 
 /**
@@ -17,8 +18,31 @@ public class GroupPermissionServiceImpl implements GroupPermissionService {
 
     @Autowired
     private GroupPermissionDao groupPermissionDao;
+
     @Override
     public List<GroupPermission> getGroupPermissionByUserId(Long userId) {
         return groupPermissionDao.findByUserId(userId);
     }
+
+    @Override
+    public GroupPermission joinGroup(Long userId, Long groupId) {
+        GroupPermission groupPermission = new GroupPermission();
+        groupPermission.setUserId(userId);
+        groupPermission.setInstanceId(groupId);
+        groupPermission.setOperation("view");
+        groupPermission.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        groupPermissionDao.save(groupPermission);
+        return groupPermission;
+    }
+
+    @Override
+    public GroupPermission createGroup(Long userId, Long groupId) {
+        GroupPermission groupPermission = new GroupPermission();
+        groupPermission.setUserId(userId);
+        groupPermission.setInstanceId(groupId);
+        groupPermission.setOperation("*");
+        groupPermission.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        groupPermissionDao.save(groupPermission);
+        return groupPermission;
+    }
 }

+ 22 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/impl/ReportPermissionServiceImpl.java

@@ -6,6 +6,7 @@ import cn.iselab.mooctest.site.service.instancePermission.ReportPermissionServic
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.List;
 
 /**
@@ -22,4 +23,25 @@ public class ReportPermissionServiceImpl implements ReportPermissionService{
     public List<ReportPermission> getReportPermissionsByuserId(Long userId) {
         return reportPermissionDao.findByUserId(userId);
     }
+
+    @Override
+    public ReportPermission uploadReport(Long userId, Long taskId) {
+        ReportPermission reportPermission = new ReportPermission();
+        reportPermission.setUserId(userId);
+        reportPermission.setInstanceId(taskId);
+        reportPermission.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        reportPermission.setOperation("*");
+        reportPermissionDao.save(reportPermission);
+        return reportPermission;
+    }
+
+    @Override
+    public ReportPermission checkReport(Long userId, Long taskId) {
+        ReportPermission reportPermission= new ReportPermission();
+        reportPermission.setUserId(userId);
+        reportPermission.setInstanceId(taskId);
+        reportPermission.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        reportPermission.setOperation("score,view");
+        return reportPermission;
+    }
 }

+ 23 - 0
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/service/instancePermission/impl/TaskPermissionServiceImpl.java

@@ -7,6 +7,7 @@ import cn.iselab.mooctest.site.service.instancePermission.TaskPermissionService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.sql.Timestamp;
 import java.util.List;
 
 /**
@@ -23,4 +24,26 @@ public class TaskPermissionServiceImpl extends BaseService implements TaskPermis
     public List<TaskPermission> getTaskPermissionsByuserId(Long userId) {
         return taskPermissionDao.findByUserId(userId);
     }
+
+    @Override
+    public TaskPermission takeTask(Long userId, Long taskId) {
+        TaskPermission taskPermission = new TaskPermission();
+        taskPermission.setUserId(userId);
+        taskPermission.setInstanceId(taskId);
+        taskPermission.setOperation("view");
+        taskPermission.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        taskPermissionDao.save(taskPermission);
+        return taskPermission;
+    }
+
+    @Override
+    public TaskPermission createTask(Long userId, Long taskId) {
+        TaskPermission taskPermission = new TaskPermission();
+        taskPermission.setUserId(userId);
+        taskPermission.setInstanceId(taskId);
+        taskPermission.setOperation("*");
+        taskPermission.setCreateTime(new Timestamp(System.currentTimeMillis()));
+        taskPermissionDao.save(taskPermission);
+        return taskPermission;
+    }
 }

+ 7 - 13
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/ctrl/TestController.java

@@ -2,12 +2,11 @@ package cn.iselab.mooctest.site.web.ctrl;
 
 import cn.iselab.mooctest.site.common.enums.SessionKey;
 import cn.iselab.mooctest.site.util.data.EncryptionUtil;
-import cn.iselab.mooctest.site.web.data.*;
-import cn.iselab.mooctest.site.web.logic.*;
 import cn.iselab.mooctest.site.web.data.MenuVO;
 import cn.iselab.mooctest.site.web.data.PermissionVO;
 import cn.iselab.mooctest.site.web.data.RoleVO;
 import cn.iselab.mooctest.site.web.data.UserVO;
+import cn.iselab.mooctest.site.web.exception.HttpBadRequestException;
 import cn.iselab.mooctest.site.web.exception.HttpUnauthorizedException;
 import cn.iselab.mooctest.site.web.logic.MenuLogic;
 import cn.iselab.mooctest.site.web.logic.PermissionLogic;
@@ -42,9 +41,6 @@ public class TestController {
     @Autowired
     private MenuLogic menuLogic;
 
-    @Autowired
-    private Role2MenuLogic role2MenuLogic;
-
     @RequestMapping(value = "/api/test/getSession", method = RequestMethod.GET)
     public String getSession(HttpSession session) {
         return session.getAttribute(SessionKey.IDENTITY.toString()) + "_" +
@@ -58,6 +54,9 @@ public class TestController {
         }
 
         String username = (userVO.getEmail() == null) ? userVO.getMobile() : userVO.getEmail();
+        if(username == null){
+            throw new HttpBadRequestException("empty user");
+        }
         UsernamePasswordToken token = new UsernamePasswordToken(username,
                 EncryptionUtil.encryptMD5(userVO.getPassword()));
         //获取当前的Subject
@@ -140,14 +139,9 @@ public class TestController {
         return permissionLogic.getPermissionsByUserId(userId);
     }
 
-    @RequestMapping(value = "/api/test/menuList", method = RequestMethod.GET)
-    public List<MenuVO> getMenuList() {
-        return menuLogic.getMenuList();
-    }
-
-    @RequestMapping(value = "/api/test/role2menuList", method = RequestMethod.GET)
-    public List<Role2MenuVO> getRole2MenuList(){
+    @RequestMapping(value = "/api/menuList", method = RequestMethod.GET)
+    public List<MenuVO> getMenuList(){
         String username = (String) SecurityUtils.getSubject().getPrincipals().getPrimaryPrincipal();
-        return role2MenuLogic.getRole2MenuListByUsername(username);
+        return menuLogic.getMenuListByUsername(username);
     }
 }

+ 25 - 5
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/MenuVO.java

@@ -4,16 +4,20 @@ import com.fasterxml.jackson.annotation.JsonInclude;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 @JsonInclude(JsonInclude.Include.NON_NULL)
-public class MenuVO {
+public class MenuVO extends BaseVO{
 
-    public Long id;
+    private Long id;
 
-    public String menu;
+    private Long roleId;
 
-    public String url;
+    private String menu;
+
+    private String detail;
+
+    private String url;
 
     public Long getId() {
         return id;
@@ -23,6 +27,14 @@ public class MenuVO {
         this.id = id;
     }
 
+    public Long getRoleId() {
+        return roleId;
+    }
+
+    public void setRoleId(Long roleId) {
+        this.roleId = roleId;
+    }
+
     public String getMenu() {
         return menu;
     }
@@ -31,6 +43,14 @@ public class MenuVO {
         this.menu = menu;
     }
 
+    public String getDetail() {
+        return detail;
+    }
+
+    public void setDetail(String detail) {
+        this.detail = detail;
+    }
+
     public String getUrl() {
         return url;
     }

+ 0 - 71
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/Role2MenuVO.java

@@ -1,71 +0,0 @@
-package cn.iselab.mooctest.site.web.data;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-@JsonInclude(JsonInclude.Include.NON_NULL)
-public class Role2MenuVO extends BaseVO{
-
-    private Long id;
-
-    private Long roleId;
-
-    private Long menuId;
-
-    private String menuName;
-
-    private String operation;
-
-    private String url;
-
-    public String getMenuName() {
-        return menuName;
-    }
-
-    public void setMenuName(String menuName) {
-        this.menuName = menuName;
-    }
-
-    public Long getId() {
-        return id;
-    }
-
-    public void setId(Long id) {
-        this.id = id;
-    }
-
-    public Long getRoleId() {
-        return roleId;
-    }
-
-    public void setRoleId(Long roleId) {
-        this.roleId = roleId;
-    }
-
-    public Long getMenuId() {
-        return menuId;
-    }
-
-    public void setMenuId(Long menuId) {
-        this.menuId = menuId;
-    }
-
-    public String getOperation() {
-        return operation;
-    }
-
-    public void setOperation(String operation) {
-        this.operation = operation;
-    }
-
-    public String getUrl() {
-        return url;
-    }
-
-    public void setUrl(String url) {
-        this.url = url;
-    }
-}

+ 8 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/MenuVOWrapper.java

@@ -6,7 +6,7 @@ import org.springframework.stereotype.Service;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 @Service
 public class MenuVOWrapper extends BaseWrapper<MenuVO, Menu> {
@@ -14,7 +14,10 @@ public class MenuVOWrapper extends BaseWrapper<MenuVO, Menu> {
     @Override
     public MenuVO wrap(Menu menu) {
         MenuVO menuVO = new MenuVO();
+        menuVO.setUrl(menu.getUrl());
+        menuVO.setRoleId(menu.getRoleId());
         menuVO.setId(menu.getId());
+        menuVO.setDetail(menu.getDetail());
         menuVO.setMenu(menu.getMenu());
         return menuVO;
     }
@@ -22,8 +25,11 @@ public class MenuVOWrapper extends BaseWrapper<MenuVO, Menu> {
     @Override
     public Menu unwrap(MenuVO data) {
         Menu menu = new Menu();
-        menu.setMenu(data.getMenu());
         menu.setId(data.getId());
+        menu.setMenu(data.getMenu());
+        menu.setDetail(data.getDetail());
+        menu.setUrl(data.getUrl());
+        menu.setRoleId(data.getRoleId());
         return menu;
     }
 }

+ 0 - 39
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/data/wrapper/Role2MenuVOWrapper.java

@@ -1,39 +0,0 @@
-package cn.iselab.mooctest.site.web.data.wrapper;
-
-import cn.iselab.mooctest.site.models.Role2Menu;
-import cn.iselab.mooctest.site.web.data.Role2MenuVO;
-import org.springframework.stereotype.Service;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-@Service
-public class Role2MenuVOWrapper extends BaseWrapper<Role2MenuVO, Role2Menu> {
-
-    @Override
-    public Role2MenuVO wrap(Role2Menu role2Menu) {
-        Role2MenuVO role2MenuVO = new Role2MenuVO();
-
-        role2MenuVO.setId(role2Menu.getId());
-        role2MenuVO.setOperation(role2Menu.getOperation());
-        role2MenuVO.setMenuId(role2Menu.getMenuId());
-        role2MenuVO.setRoleId(role2Menu.getRoleId());
-        role2MenuVO.setUrl(role2Menu.getUrl());
-
-        return role2MenuVO;
-    }
-
-    @Override
-    public Role2Menu unwrap(Role2MenuVO data) {
-        Role2Menu role2Menu = new Role2Menu();
-
-        role2Menu.setOperation(data.getOperation());
-        role2Menu.setUrl(data.getUrl());
-        role2Menu.setRoleId(data.getRoleId());
-        role2Menu.setMenuId(data.getMenuId());
-        role2Menu.setId(data.getId());
-
-        return role2Menu;
-    }
-}

+ 4 - 2
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/MenuLogic.java

@@ -6,8 +6,10 @@ import java.util.List;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 public interface MenuLogic {
-    List<MenuVO> getMenuList();
+
+    List<MenuVO> getMenuListByUsername(String username);
+
 }

+ 0 - 14
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/Role2MenuLogic.java

@@ -1,14 +0,0 @@
-package cn.iselab.mooctest.site.web.logic;
-
-import cn.iselab.mooctest.site.web.data.Role2MenuVO;
-
-import java.util.List;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-public interface Role2MenuLogic {
-
-    List<Role2MenuVO> getRole2MenuListByUsername(String username);
-}

+ 28 - 3
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/MenuLogicImpl.java

@@ -1,29 +1,54 @@
 package cn.iselab.mooctest.site.web.logic.impl;
 
+import cn.iselab.mooctest.site.models.Role;
 import cn.iselab.mooctest.site.service.MenuService;
+import cn.iselab.mooctest.site.service.RoleService;
+import cn.iselab.mooctest.site.service.UserService;
 import cn.iselab.mooctest.site.web.data.MenuVO;
 import cn.iselab.mooctest.site.web.data.wrapper.MenuVOWrapper;
 import cn.iselab.mooctest.site.web.logic.MenuLogic;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
  * @author sean
- * @date 2017-06-29.
+ * @date 2017-07-11.
  */
 @Service
 public class MenuLogicImpl implements MenuLogic {
 
     @Autowired
+    private UserService userService;
+
+    @Autowired
+    private RoleService roleService;
+
+    @Autowired
     private MenuService menuService;
 
     @Autowired
     private MenuVOWrapper menuVOWrapper;
 
     @Override
-    public List<MenuVO> getMenuList() {
-        return menuVOWrapper.wrap(menuService.getMenuList());
+    public List<MenuVO> getMenuListByUsername(String username) {
+        List<Role> roles = roleService.getRolesOfUser(username);
+        List<MenuVO> menuVOs = new ArrayList<>();
+        //for worker
+        if (roles.equals(roleService.getRoleByRoleName("worker"))){
+             menuVOs = menuVOWrapper.wrap(menuService.getMenuListByRoleName("worker"));
+        }
+        //for manager
+        if (roles.contains(roleService.getRoleByRoleName("manager"))){
+            menuVOs.addAll(menuVOWrapper.wrap(menuService.getMenuListByRoleName("manager")));
+            menuVOs.addAll(menuVOWrapper.wrap(menuService.getMenuListByRoleName("worker")));
+        }
+        //for admin
+        if (roles.equals(roleService.getRoleByRoleName("admin"))){
+            menuVOs.addAll(menuVOWrapper.wrap(menuService.getMenuListByRoleName("admin")));
+        }
+        return menuVOs;
     }
 }

+ 0 - 64
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/Role2MenuLogicImpl.java

@@ -1,64 +0,0 @@
-package cn.iselab.mooctest.site.web.logic.impl;
-
-import cn.iselab.mooctest.site.models.Role;
-import cn.iselab.mooctest.site.service.MenuService;
-import cn.iselab.mooctest.site.service.Role2MenuService;
-import cn.iselab.mooctest.site.service.RoleService;
-import cn.iselab.mooctest.site.service.UserService;
-import cn.iselab.mooctest.site.web.data.Role2MenuVO;
-import cn.iselab.mooctest.site.web.data.wrapper.Role2MenuVOWrapper;
-import cn.iselab.mooctest.site.web.logic.Role2MenuLogic;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * @author sean
- * @date 2017-07-11.
- */
-@Service
-public class Role2MenuLogicImpl implements Role2MenuLogic {
-
-    @Autowired
-    private UserService userService;
-
-    @Autowired
-    private RoleService roleService;
-
-    @Autowired
-    private Role2MenuService role2MenuService;
-
-    @Autowired
-    private Role2MenuVOWrapper role2MenuVOWrapper;
-
-    @Autowired
-    private MenuService menuService;
-
-    @Override
-    public List<Role2MenuVO> getRole2MenuListByUsername(String username) {
-        List<Role> roles = roleService.getRolesOfUser(username);
-        //roles:admin
-        if (roles.contains(roleService.getRoleByRoleName("admin"))) {
-            List<Role2MenuVO> role2MenuVOs = role2MenuVOWrapper.wrap(role2MenuService.getRole2MenuListByRoleName("admin"));
-            role2MenuVOs.forEach(role2MenuVO -> {
-                role2MenuVO.setMenuName(menuService.getMenuBymenuId(role2MenuVO.getMenuId()).getMenu());
-            });
-            return role2MenuVOs;
-        }
-        //role:manager
-        if (roles.contains(roleService.getRoleByRoleName("manager"))) {
-            List<Role2MenuVO> role2MenuVOs = role2MenuVOWrapper.wrap(role2MenuService.getRole2MenuListByRoleName("manager"));
-            role2MenuVOs.forEach(role2MenuVO -> {
-                role2MenuVO.setMenuName(menuService.getMenuBymenuId(role2MenuVO.getMenuId()).getMenu());
-            });
-            return role2MenuVOs;
-        }
-        //role:worker
-        List<Role2MenuVO> role2MenuVOs = role2MenuVOWrapper.wrap(role2MenuService.getRole2MenuListByRoleName("worker"));
-        for (Role2MenuVO r2m:role2MenuVOs){
-            r2m.setMenuName(menuService.getMenuBymenuId(r2m.getMenuId()).getMenu());
-        }
-        return role2MenuVOs;
-    }
-}

+ 10 - 9
mooctest-site-server/src/main/java/cn/iselab/mooctest/site/web/logic/impl/UserLogicImpl.java

@@ -2,6 +2,7 @@ package cn.iselab.mooctest.site.web.logic.impl;
 
 import cn.iselab.mooctest.site.models.User;
 import cn.iselab.mooctest.site.service.GroupService;
+import cn.iselab.mooctest.site.service.User2RoleService;
 import cn.iselab.mooctest.site.service.UserService;
 import cn.iselab.mooctest.site.service.instancePermission.GroupPermissionService;
 import cn.iselab.mooctest.site.util.data.EncryptionUtil;
@@ -34,6 +35,9 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
     private GroupService groupService;
 
     @Autowired
+    private User2RoleService user2RoleService;
+
+    @Autowired
     private GroupPermissionService groupPermissionService;
 
     @Override
@@ -42,26 +46,23 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
             throw new HttpBadRequestException("Invalid email");
         }
         if (userService.getUserByEmail(userVO.getEmail()) != null) {
-            throw new HttpBadRequestException("Worker already exists");
+            throw new HttpBadRequestException("user already exists");
         }
 
         User user = registerUser(userVO);
 
         //add user2role(worker default)
-//        User2Role user2Role = new User2Role();
-//        user2Role.setRoleId(3L);
-//        user2Role.setUserId(user.getId());
+        user2RoleService.setDefaultRole(user.getId());
 
         //add worker into group 0
-//        Group group =  groupService.getGroup(0);
-//        groupService.joinGroup(user.getId(),group);
+        groupService.joinGroup(user.getId(), groupService.getGroup(0));
+        //add groupPermission;
+        groupPermissionService.joinGroup(user.getId(),0L);
+
         return userVOWrapper.wrap(userService.createUser(user));
     }
 
     private User registerUser(UserVO userVO) {
-        if (userService.findByEmail(userVO.getEmail()) != null) {
-            throw new HttpBadRequestException("user already exist");
-        }
         User user = userVOWrapper.unwrap(userVO);
         user.setPassword(EncryptionUtil.encryptMD5(userVO.getPassword()));
         user.setCreateTime(new Timestamp(System.currentTimeMillis()));