Explorar o código

Merge branch 'master' of https://gitee.com/zouxuan/mec

孙镇亮 %!s(int64=5) %!d(string=hai) anos
pai
achega
9a3ff9872d
Modificáronse 100 ficheiros con 2776 adicións e 553 borrados
  1. 5 4
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  2. 3 3
      codegen/src/main/resources/generateConfigration.xml
  3. 38 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/MenuQueryInfo.java
  4. 13 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysMenu.java
  5. 1 4
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/ResourceServerConfig.java
  6. 0 77
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/service/PermissionCheckService.java
  7. 9 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysMenuDao.java
  8. 4 2
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysMenuService.java
  9. 25 2
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysMenuServiceImpl.java
  10. 8 3
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/MenuController.java
  11. 28 2
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysMenuMapper.xml
  12. 38 0
      mec-common/common-core/src/main/java/com/ym/mec/common/security/PermissionCheckService.java
  13. 6 6
      mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/BaseServiceImpl.java
  14. 99 0
      mec-gateway/mec-gateway-web/src/main/java/com/ym/mec/gateway/web/controller/ErrorHandlerController.java
  15. 9 5
      mec-gateway/mec-gateway-web/src/main/resources/application.yml
  16. 5 5
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  17. 27 9
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  18. 14 20
      mec-web/src/main/java/com/ym/mec/web/controller/GoodsCategoryController.java
  19. 12 25
      mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java
  20. 40 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java
  21. 20 11
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  22. 25 33
      mec-web/src/main/java/com/ym/mec/web/controller/SubjectController.java
  23. 33 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/CourseHomeworkController.java
  24. 55 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/CourseHomeworkTemplateController.java
  25. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/education/EmployeeController.java
  26. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java
  27. 56 0
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCourseHomeworkController.java
  28. 46 0
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCourseHomeworkReplyController.java
  29. 4 4
      mec-web/src/main/java/com/ym/mec/web/controller/teacher/TeacherAttendanceController.java
  30. 45 0
      mec-web/src/main/java/com/ym/mec/web/controller/teacher/TeacherCourseHomeworkReplyController.java
  31. 26 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupDao.java
  32. 10 1
      mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupRelationDao.java
  33. 10 1
      mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupStudentMapperDao.java
  34. 9 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupTeacherMapperDao.java
  35. 7 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/CourseHomeworkTemplateDao.java
  36. 9 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/LeaveCategoryDao.java
  37. 10 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/MusicGroupSubjectPlanDao.java
  38. 10 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentAttendanceDao.java
  39. 35 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentCourseHomeworkDao.java
  40. 24 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentCourseHomeworkReplyDao.java
  41. 22 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentRegistrationDao.java
  42. 9 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/SysAreaDao.java
  43. 0 9
      mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherClassFeeDao.java
  44. 9 0
      mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherDefaultMusicGroupSalaryDao.java
  45. 0 9
      mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherSalaryDao.java
  46. 183 0
      mec-web/src/main/java/com/ym/mec/web/dal/dto/CourseHomeworkListDto.java
  47. 134 0
      mec-web/src/main/java/com/ym/mec/web/dal/dto/CourseHomeworkStudentDetailDto.java
  48. 81 0
      mec-web/src/main/java/com/ym/mec/web/dal/dto/StudentCourseHomeworkCommentDto.java
  49. 69 0
      mec-web/src/main/java/com/ym/mec/web/dal/dto/StudentCourseHomeworkReplyDto.java
  50. 0 11
      mec-web/src/main/java/com/ym/mec/web/dal/dto/TeacherAttendanceDto.java
  51. 34 0
      mec-web/src/main/java/com/ym/mec/web/dal/dto/TeacherSignOutDto.java
  52. 40 5
      mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroup.java
  53. 3 3
      mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroupStudentMapper.java
  54. 23 30
      mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroupTeacherMapper.java
  55. 45 9
      mec-web/src/main/java/com/ym/mec/web/dal/entity/CourseHomework.java
  56. 31 20
      mec-web/src/main/java/com/ym/mec/web/dal/entity/CourseHomeworkTemplate.java
  57. 14 1
      mec-web/src/main/java/com/ym/mec/web/dal/entity/GoodsCategory.java
  58. 86 0
      mec-web/src/main/java/com/ym/mec/web/dal/entity/LeaveCategory.java
  59. 13 2
      mec-web/src/main/java/com/ym/mec/web/dal/entity/MusicGroupSubjectPlan.java
  60. 48 3
      mec-web/src/main/java/com/ym/mec/web/dal/entity/Organization.java
  61. 0 12
      mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentAttendance.java
  62. 48 2
      mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentCourseHomework.java
  63. 86 0
      mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentCourseHomeworkReply.java
  64. 22 0
      mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentRegistration.java
  65. 98 0
      mec-web/src/main/java/com/ym/mec/web/dal/entity/SysArea.java
  66. 0 13
      mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherAttendance.java
  67. 103 0
      mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherDefaultMusicGroupSalary.java
  68. 0 76
      mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherSalary.java
  69. 33 0
      mec-web/src/main/java/com/ym/mec/web/dal/page/CourseHomeWorkTemplateQueryInfo.java
  70. 57 0
      mec-web/src/main/java/com/ym/mec/web/dal/page/CourseHomeworkQueryInfo.java
  71. 2 2
      mec-web/src/main/java/com/ym/mec/web/dal/page/GoodsCategoryQueryInfo.java
  72. 33 0
      mec-web/src/main/java/com/ym/mec/web/dal/page/StudentCourseHomeworkReplyQueryInfo.java
  73. 11 0
      mec-web/src/main/java/com/ym/mec/web/service/ClassGroupRelationService.java
  74. 47 1
      mec-web/src/main/java/com/ym/mec/web/service/ClassGroupService.java
  75. 10 0
      mec-web/src/main/java/com/ym/mec/web/service/ClassGroupStudentMapperService.java
  76. 8 0
      mec-web/src/main/java/com/ym/mec/web/service/ClassGroupTeacherMapperService.java
  77. 11 0
      mec-web/src/main/java/com/ym/mec/web/service/GoodsCategoryService.java
  78. 8 0
      mec-web/src/main/java/com/ym/mec/web/service/LeaveCategoryService.java
  79. 10 0
      mec-web/src/main/java/com/ym/mec/web/service/MusicGroupSubjectPlanService.java
  80. 8 0
      mec-web/src/main/java/com/ym/mec/web/service/StudentCourseHomeworkReplyService.java
  81. 10 0
      mec-web/src/main/java/com/ym/mec/web/service/StudentCourseHomeworkService.java
  82. 19 0
      mec-web/src/main/java/com/ym/mec/web/service/StudentRegistrationService.java
  83. 6 14
      mec-web/src/main/java/com/ym/mec/web/service/SubjectService.java
  84. 8 0
      mec-web/src/main/java/com/ym/mec/web/service/SysAreaService.java
  85. 2 1
      mec-web/src/main/java/com/ym/mec/web/service/TeacherAttendanceService.java
  86. 0 8
      mec-web/src/main/java/com/ym/mec/web/service/TeacherClassFeeService.java
  87. 8 0
      mec-web/src/main/java/com/ym/mec/web/service/TeacherDefaultMusicGroupSalaryService.java
  88. 0 8
      mec-web/src/main/java/com/ym/mec/web/service/TeacherSalaryService.java
  89. 7 1
      mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupRelationServiceImpl.java
  90. 116 18
      mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupServiceImpl.java
  91. 7 1
      mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupStudentMapperServiceImpl.java
  92. 23 0
      mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupTeacherMapperServiceImpl.java
  93. 12 1
      mec-web/src/main/java/com/ym/mec/web/service/impl/CourseHomeworkTemplateServiceImpl.java
  94. 39 4
      mec-web/src/main/java/com/ym/mec/web/service/impl/GoodsCategoryServiceImpl.java
  95. 22 0
      mec-web/src/main/java/com/ym/mec/web/service/impl/LeaveCategoryServiceImpl.java
  96. 26 10
      mec-web/src/main/java/com/ym/mec/web/service/impl/MusicGroupSubjectPlanServiceImpl.java
  97. 84 0
      mec-web/src/main/java/com/ym/mec/web/service/impl/StudentCourseHomeworkReplyServiceImpl.java
  98. 48 4
      mec-web/src/main/java/com/ym/mec/web/service/impl/StudentCourseHomeworkServiceImpl.java
  99. 55 45
      mec-web/src/main/java/com/ym/mec/web/service/impl/StudentRegistrationServiceImpl.java
  100. 25 11
      mec-web/src/main/java/com/ym/mec/web/service/impl/SubjectServiceImpl.java

+ 5 - 4
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiOperation;
 import java.util.Date;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -27,21 +28,21 @@ public class NewsController extends BaseController {
 	private SysNewsInformationService sysNewsInformationService;
 
 	@ApiOperation("资讯列表分页查询")
-	@GetMapping("/list")
+	@GetMapping(value = "/list", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	public Object getList(NewsInformationQueryInfo queryInfo) {
 		return succeed(sysNewsInformationService.queryPage(queryInfo));
 	}
 
 	@ApiOperation("查询资讯详情")
 	@ApiImplicitParam(name = "id", value = "资讯ID编号", required = true, dataType = "Long", paramType = "path")
-	@GetMapping("/query/{id}")
+	@GetMapping(value = "/query/{id}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	public Object query(@PathVariable("id") Long id) {
 
 		return succeed(sysNewsInformationService.get(id));
 	}
 
 	@ApiOperation("新增资讯")
-	@PostMapping("/add")
+	@PostMapping(value = "/add", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	public Object add(SysNewsInformation newsInfo) {
 		Date date = new Date();
 		newsInfo.setCreateTime(date);
@@ -51,7 +52,7 @@ public class NewsController extends BaseController {
 	}
 
 	@ApiOperation("更新资讯")
-	@PostMapping("/update")
+	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	public Object update(SysNewsInformation newsInfo) {
 		Date date = new Date();
 		newsInfo.setUpdateTime(date);

+ 3 - 3
codegen/src/main/resources/generateConfigration.xml

@@ -9,9 +9,9 @@
 		<schema>mec_dev</schema>
 	</dbConfiguration>
 	<srcBase>d:/javabean</srcBase>
-	<pojoPackageName>com.ym.mec.auth.api.entity</pojoPackageName>
-	<daoPackageName>com.ym.mec.auth.dal.dao</daoPackageName>
-	<servicePackageName>com.ym.mec.auth.service</servicePackageName>
+	<pojoPackageName>auth.api.entity</pojoPackageName>
+	<daoPackageName>auth.dal.dao</daoPackageName>
+	<servicePackageName>auth.service</servicePackageName>
 	<sqlmapPackageName>resources</sqlmapPackageName>
 	<sqlmapConfigPackageName>resources/config</sqlmapConfigPackageName>
 </GenerateConfiguration>

+ 38 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/dto/MenuQueryInfo.java

@@ -0,0 +1,38 @@
+package com.ym.mec.auth.api.dto;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class MenuQueryInfo extends QueryInfo {
+    @ApiModelProperty(value = "父节点编号,默认0",required = false)
+    private Integer parentId = 0;
+
+    @ApiModelProperty(value = "节点状态,默认0未删除,1删除",required = false)
+    private String delFlag = "0";
+
+    private Integer userId;
+
+    public Integer getParentId() {
+        return parentId;
+    }
+
+    public void setParentId(Integer parentId) {
+        this.parentId = parentId;
+    }
+
+    public String getDelFlag() {
+        return delFlag;
+    }
+
+    public void setDelFlag(String delFlag) {
+        this.delFlag = delFlag;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+}

+ 13 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysMenu.java

@@ -3,6 +3,8 @@ package com.ym.mec.auth.api.entity;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.List;
+
 /**
  * 对应数据库表(sys_menu):
  */
@@ -58,6 +60,17 @@ public class SysMenu {
 	@ApiModelProperty(value = "逻辑删除标记(0--正常 1--删除)",required = false)
 	private String delFlag;
 
+	@ApiModelProperty(value = "子节点列表",required = false)
+	private List<SysMenu> sysMenus;
+
+	public List<SysMenu> getSysMenus() {
+		return sysMenus;
+	}
+
+	public void setSysMenus(List<SysMenu> sysMenus) {
+		this.sysMenus = sysMenus;
+	}
+
 	public Integer getId() {
 		return id;
 	}

+ 1 - 4
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/ResourceServerConfig.java

@@ -1,7 +1,5 @@
 package com.ym.mec.auth.config;
 
-import javax.servlet.http.HttpServletResponse;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@@ -27,8 +25,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
-		http.csrf().disable().exceptionHandling()
-				.authenticationEntryPoint((request, response, authException) -> response.sendError(HttpServletResponse.SC_UNAUTHORIZED)).and()
+		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
 				.authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0").anyRequest().authenticated().and().httpBasic();
 	}
 

+ 0 - 77
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/service/PermissionCheckService.java

@@ -1,77 +0,0 @@
-package com.ym.mec.auth.core.service;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.stereotype.Component;
-
-import com.ym.mec.auth.api.dto.SysUserInfo;
-import com.ym.mec.auth.config.constant.SecurityConstants;
-import com.ym.mec.auth.service.SysUserService;
-
-@Component("pcs")
-public class PermissionCheckService {
-
-	@Autowired
-	private SysUserService sysUserService;
-
-	public boolean hasPermissions(String... permissions) {
-		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-		if (authentication == null) {
-			return false;
-		}
-
-		Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
-
-		for (String perm : permissions) {
-			for (GrantedAuthority authority : authorities) {
-				if (StringUtils.equals(perm, authority.getAuthority())) {
-					return true;
-				}
-			}
-		}
-
-		return false;
-	}
-
-	public boolean hasRoles(String... roles) {
-
-		if (hasPermissions(roles)) {
-			return true;
-		}
-
-		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-		if (authentication == null) {
-			return false;
-		}
-
-		SysUserInfo userInfo = queryUserInfo(authentication.getPrincipal().toString());
-
-		List<String> rolesList = Arrays.asList(userInfo.getRoles());
-
-		for (String role : roles) {
-			if (rolesList.contains(role)) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	private SysUserInfo queryUserInfo(String username) {
-		SysUserInfo userInfo = null;
-
-		if (StringUtils.startsWith(username, SecurityConstants.PHONE_PRINCIPAL_PREFIX)) {
-			userInfo = sysUserService.queryUserInfoByPhone(StringUtils.substringAfter(username, SecurityConstants.PHONE_PRINCIPAL_PREFIX));
-		} else {
-			userInfo = sysUserService.queryUserInfoByUsername(StringUtils.substringAfter(username, SecurityConstants.USERNAME_PRINCIPAL_PREFIX));
-		}
-		return userInfo;
-	}
-}

+ 9 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysMenuDao.java

@@ -28,4 +28,13 @@ public interface SysMenuDao extends BaseDAO<Integer, SysMenu> {
      * @return
      */
     SysMenu findMenuByPermission(@Param("permission") String permission);
+
+    /**
+     * 获取用户菜单树状结构
+     * @param menuId
+     * @param delFlag
+     * @param userId
+     * @return
+     */
+    List<SysMenu> findByParentId(@Param("parentId") Integer menuId,@Param("delFlag") String delFlag,@Param("userId") Integer userId);
 }

+ 4 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysMenuService.java

@@ -1,6 +1,8 @@
 package com.ym.mec.auth.service;
 
+import com.ym.mec.auth.api.dto.MenuQueryInfo;
 import com.ym.mec.auth.api.entity.SysMenu;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -16,10 +18,10 @@ public interface SysMenuService extends BaseService<Integer, SysMenu> {
 
     /**
      * 根据用户编号查询用户可访问菜单
-     * @param id
+     * @param menuQueryInfo
      * @return
      */
-    List<SysMenu> findByUser(Integer id);
+    PageInfo<SysMenu> findByUser(MenuQueryInfo menuQueryInfo);
 
     /**
      * 根据权限标识查菜单

+ 25 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysMenuServiceImpl.java

@@ -1,5 +1,8 @@
 package com.ym.mec.auth.service.impl;
 
+import com.ym.mec.auth.api.dto.MenuQueryInfo;
+import com.ym.mec.auth.api.enums.YesOrNoEnum;
+import com.ym.mec.common.page.PageInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -28,8 +31,28 @@ public class SysMenuServiceImpl extends BaseServiceImpl<Integer, SysMenu>  imple
 	}
 
 	@Override
-	public List<SysMenu> findByUser(Integer id) {
-		return sysMenuDao.findByUser(id);
+	public PageInfo<SysMenu> findByUser(MenuQueryInfo menuQueryInfo) {
+		PageInfo<SysMenu> pageInfo = queryPage(menuQueryInfo);
+		for (SysMenu menu:pageInfo.getRows()) {
+			menu = getTree(menu,menuQueryInfo.getDelFlag(),menuQueryInfo.getUserId());
+		}
+		return pageInfo;
+	}
+
+	private SysMenu getTree(SysMenu menu, String delFlag,Integer userId){
+		//得到根节点对象
+		//获取子节点list
+		List<SysMenu> sysMenus = sysMenuDao.findByParentId(menu.getId(),delFlag,userId);
+		//如果存在子节点
+		if(sysMenus != null && sysMenus.size() > 0) {
+			//将子节点list放入父节点对象
+			menu.setSysMenus(sysMenus);
+			//遍历子节点....
+			for (SysMenu sysMenu : sysMenus) {
+				getTree(sysMenu,delFlag,userId);
+			}
+		}
+		return menu;
 	}
 
 	@Override

+ 8 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/MenuController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.auth.web.controller;
 
+import com.ym.mec.auth.api.dto.MenuQueryInfo;
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.auth.service.SysMenuService;
 import com.ym.mec.common.controller.BaseController;
@@ -58,12 +59,16 @@ public class MenuController extends BaseController {
         return succeed(sysMenuService.get(id));
     }
 
-    @ApiOperation("查询用户可访问菜单")
+    @ApiOperation("查询用户可访问菜单树状结构")
     @GetMapping("/findByUser")
-    public Object findByUser() {
+    public Object findByUser(@RequestBody(required = false) MenuQueryInfo menuQueryInfo) {
         AuthUser user = SecurityUtils.getUser();
         if(user != null){
-            return succeed(sysMenuService.findByUser(user.getUserId()));
+            if(menuQueryInfo == null){
+                menuQueryInfo = new MenuQueryInfo();
+            }
+            menuQueryInfo.setUserId(user.getUserId());
+            return succeed(sysMenuService.findByUser(menuQueryInfo));
         }
         return failed();
     }

+ 28 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysMenuMapper.xml

@@ -93,13 +93,19 @@
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="SysMenu" parameterType="map">
-        SELECT * FROM sys_menu ORDER BY id_
+        SELECT sm.* FROM sys_user_role sur
+        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
+        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        <include refid="queryTree"/>
         <include refid="global.limit"/>
     </select>
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM sys_menu
+        SELECT COUNT(sm.id_) FROM sys_user_role sur
+        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
+        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        <include refid="queryTree"/>
 	</select>
 
     <select id="getMenusByRoleId" resultMap="SysMenu">
@@ -120,4 +126,24 @@
     <select id="findMenuByPermission" resultMap="SysMenu">
         SELECT * FROM `sys_role_menu` WHERE `permission_` = #{permission} AND sm.del_flag_ = 0
     </select>
+    <sql id="queryTree">
+        <where>
+            <if test="userId != null">
+                sur.user_id_ = #{userId}
+            </if>
+            <if test="delFlag != null">
+                AND sm.del_flag_ = #{delFlag}
+            </if>
+            <if test="parentId != null">
+                AND sm.parent_id_ = #{parentId}
+            </if>
+        </where>
+    </sql>
+
+    <select id="findByParentId" resultMap="SysMenu">
+        SELECT sm.* FROM sys_user_role sur
+        LEFT JOIN sys_role_menu srm ON sur.role_id_ = srm.role_id_
+        LEFT JOIN sys_menu sm ON srm.menu_id_ = sm.id_
+        <include refid="queryTree"/>
+    </select>
 </mapper>

+ 38 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/security/PermissionCheckService.java

@@ -0,0 +1,38 @@
+package com.ym.mec.common.security;
+
+import java.util.Collection;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.GrantedAuthority;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
+
+@Component("pcs")
+public class PermissionCheckService {
+
+	public boolean hasPermissions(String... permissions) {
+		Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
+		if (authentication == null) {
+			return false;
+		}
+
+		Collection<? extends GrantedAuthority> authorities = authentication.getAuthorities();
+
+		for (String perm : permissions) {
+			for (GrantedAuthority authority : authorities) {
+				if (StringUtils.equalsIgnoreCase(perm, authority.getAuthority())) {
+					return true;
+				}
+			}
+		}
+
+		return false;
+	}
+
+	public boolean hasRoles(String... roles) {
+
+		return hasPermissions(roles);
+	}
+
+}

+ 6 - 6
mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/BaseServiceImpl.java

@@ -7,18 +7,18 @@ package com.ym.mec.common.service.impl;
  * @author pengdc
  * @create 2015年7月13日
  */
-import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.util.collection.MapUtil;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * SERVICE操作基类
  * @param <PK>

+ 99 - 0
mec-gateway/mec-gateway-web/src/main/java/com/ym/mec/gateway/web/controller/ErrorHandlerController.java

@@ -0,0 +1,99 @@
+package com.ym.mec.gateway.web.controller;
+
+import org.apache.commons.lang3.exception.ExceptionUtils;
+import org.springframework.boot.web.servlet.error.ErrorController;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.netflix.zuul.context.RequestContext;
+import com.netflix.zuul.exception.ZuulException;
+
+@RestController
+public class ErrorHandlerController implements ErrorController {
+
+	@Override
+	public String getErrorPath() {
+		return "/error";
+	}
+
+	@RequestMapping("/error")
+	@ResponseBody
+	public Object error() {
+		RequestContext ctx = RequestContext.getCurrentContext();
+		ZuulException exception = (ZuulException) ctx.getThrowable();
+		
+		Throwable e = ExceptionUtils.getRootCause(exception);
+		if (e == null) {
+			e = exception;
+		}
+
+		HttpResponseResult result = new HttpResponseResult();
+		result.setCode(exception.nStatusCode);
+		result.setMsg(exception.getMessage());
+		result.setStatus(false);
+
+		return result;
+	}
+
+	class HttpResponseResult {
+
+		public final static int TIME_OUT = -1;
+
+		private boolean status = true;
+		private String msg;
+		private Object data;
+		private int code;
+
+		public HttpResponseResult(boolean status, int code, Object data, String message) {
+			this.status = status;
+			this.msg = message;
+			this.data = data;
+			this.code = code;
+		}
+
+		public HttpResponseResult() {
+		}
+
+		public int getCode() {
+			return code;
+		}
+
+		public void setCode(int code) {
+			this.code = code;
+		}
+
+		public boolean getStatus() {
+			return status;
+		}
+
+		public void setStatus(boolean status) {
+			this.status = status;
+		}
+
+		public String getMsg() {
+			return msg;
+		}
+
+		public void setMsg(String msg) {
+			this.msg = msg;
+		}
+
+		public Object getData() {
+			return data;
+		}
+
+		public void setData(Object data) {
+			this.data = data;
+		}
+
+		public void success() {
+			this.status = true;
+		}
+
+		public void fail() {
+			this.status = false;
+		}
+
+	}
+}

+ 9 - 5
mec-gateway/mec-gateway-web/src/main/resources/application.yml

@@ -10,7 +10,11 @@ eureka:
     serviceUrl:
       defaultZone: http://admin:admin123@localhost:8761/eureka/eureka/
 
-      
+ribbon:
+  eureka:
+    enable: true
+  ReadTimeout: 10000
+  SocketTimeout: 3000      
 
 ### 配置网关反向代理    
 zuul:
@@ -47,10 +51,10 @@ zuul:
   ignored-services: eureka-server
   #重试
   retryable: false
-  #请求处理超时
-  ReadTimeout: 6000
-  #连接超时
-  ConnectTimeout: 1000
+  #请求处理超时--只针对url的路由
+  ReadTimeout: 60000
+  #连接超时--只针对url的路由
+  ConnectTimeout: 10000
   sensitiveHeaders: 
   
 hystrix: 

+ 5 - 5
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -180,11 +180,11 @@ public class RoomServiceImpl implements RoomService {
         roomResult.setDisplay(display);
 //        JwtToken jwtToken = tokenHelper.createJwtToken(jwtUser);
         IMTokenInfo tokenInfo = imHelper.getToken(userId, userId, "");
-        if (tokenInfo.isSuccess()) {
-            roomResult.setImToken(tokenInfo.getAuthenticationValue());
-        } else {
-            throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
-        }
+//        if (tokenInfo.isSuccess()) {
+//            roomResult.setImToken(tokenInfo.getAuthenticationValue());
+//        } else {
+//            throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
+//        }
 //        roomResult.setAuthorization(jwtToken.getToken());
         roomResult.setRoomId(roomId);
         List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);

+ 27 - 9
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.web.dal.entity.ClassGroup;
+import com.ym.mec.web.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.web.service.ClassGroupService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -20,14 +21,18 @@ public class ClassGroupController extends BaseController {
     @Autowired
     private ClassGroupService classGroupService;
 
-    @ApiOperation(value = "新增班级")
+    @ApiOperation(value = "新增单技班班级")
     @PostMapping("/add")
-    public Object add(@RequestBody ClassGroup classGroup) {
-        Date date = new Date();
-        classGroup.setCreateTime(date);
-        classGroup.setUpdateTime(date);
-        classGroupService.insert(classGroup);
-        return succeed();
+    public Object add(@RequestBody ClassGroup classGroup) throws Exception {
+        return succeed(classGroupService.addClassGroup(classGroup));
+    }
+
+    @ApiOperation(value = "新增合奏班")
+    @PostMapping("/addMixClass")
+    public Object addMixClass(@ApiParam(value = "乐团编号", required = true) @RequestParam Integer musicGroupId,
+                              @ApiParam(value = "班级名称", required = true) String name,
+                              @ApiParam(value = "班级编号,号分割", required = true) String classGroupIds) throws Exception {
+        return succeed(classGroupService.addMixClassGroup(musicGroupId, name, classGroupIds));
     }
 
     @ApiOperation(value = "删除班级")
@@ -54,8 +59,21 @@ public class ClassGroupController extends BaseController {
     @ApiOperation(value = "合奏班相关班级获取")
     @GetMapping("findClassGroupAboutMix")
     public Object findClassGroupAboutMix(@ApiParam(value = "乐团编号", required = true) @RequestParam Integer musicGroupId,
-                                         @ApiParam(value = "班级编号", required = false) Integer mixClassGroupId){
-        return succeed(classGroupService.findClassGroup(musicGroupId,mixClassGroupId));
+                                         @ApiParam(value = "班级编号", required = false) Integer mixClassGroupId) {
+        return succeed(classGroupService.findClassGroup(musicGroupId, mixClassGroupId));
+    }
+
+    @ApiOperation(value = "乐团单技班列表")
+    @GetMapping("findMusicGroupClass")
+    public Object findMusicGroupClass(@ApiParam(value = "乐团编号", required = true) @RequestParam Integer musicGroupId) {
+        return succeed(classGroupService.findAllNormalClassGroupByMusicGroupId(musicGroupId));
+    }
+
+    @ApiOperation(value = "乐团合奏班列表")
+    @GetMapping("findMixMusicGroupClass")
+    public Object findMixMusicGroupClass(@ApiParam(value = "乐团编号", required = true) @RequestParam Integer musicGroupId) {
+        return succeed(classGroupService.findAllMixClassGroupByMusicGroupId(musicGroupId));
     }
 
+
 }

+ 14 - 20
mec-web/src/main/java/com/ym/mec/web/controller/GoodsCategoryController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.web.dal.entity.Subject;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -28,18 +29,11 @@ import com.ym.mec.web.service.GoodsService;
 public class GoodsCategoryController extends BaseController {
 
     @Autowired
-    private GoodsCategoryService GoodsCategoryCategoryService;
+    private GoodsCategoryService goodsCategoryService;
 
     @Autowired
     private GoodsService goodsService;
 
-    @ApiOperation(value = "新增商品分类")
-    @PostMapping("/add")
-    public Object add(@RequestBody GoodsCategory goodsCategory) {
-        GoodsCategoryCategoryService.insert(goodsCategory);
-        return succeed();
-    }
-
     @ApiOperation(value = "删除商品分类")
     @DeleteMapping("/del/{id}")
     public Object del(@ApiParam(value = "商品分类编号", required = true) @PathVariable("id") Integer id) {
@@ -47,29 +41,29 @@ public class GoodsCategoryController extends BaseController {
         if (num > 0) {
             return failed("商品分类下有商品,不能删除");
         }
-        GoodsCategoryCategoryService.delete(id);
+        goodsCategoryService.delete(id);
         return succeed();
     }
 
-    @ApiOperation(value = "修改商品分类")
-    @PutMapping("/update")
-    public Object update(@RequestBody GoodsCategory goodsCategory) {
-        goodsCategory.setUpdateTime(new Date());
-        GoodsCategoryCategoryService.update(goodsCategory);
+    @ApiOperation(value = "新增、修改商品类型")
+    @PostMapping("/upset")
+    public Object upset(@RequestBody GoodsCategory goodsCategory){
+        goodsCategoryService.upsetGoodsCategory(goodsCategory);
         return succeed();
     }
 
     @ApiOperation(value = "分页查询商品分类列表")
-    @PostMapping("/queryPage")
-    public Object queryPage(@RequestBody GoodsCategoryQueryInfo queryInfo) {
-        queryInfo.setParentId(-1);
-        return succeed(GoodsCategoryCategoryService.queryPage(queryInfo));
+    @GetMapping("/queryPage")
+    public Object queryPage(@RequestBody(required = false) GoodsCategoryQueryInfo queryInfo) {
+        if(queryInfo == null){
+            queryInfo = new GoodsCategoryQueryInfo();
+        }
+        return succeed(goodsCategoryService.queryPage(queryInfo));
     }
 
-
     @ApiOperation(value = "根据商品分类编号查询商品分类")
     @GetMapping("/get/{id}")
     public Object get(@ApiParam(value = "商品分类编号", required = true) @PathVariable("id") Integer id) {
-        return succeed(GoodsCategoryCategoryService.get(id));
+        return succeed(goodsCategoryService.get(id));
     }
 }

+ 12 - 25
mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java

@@ -1,28 +1,14 @@
 package com.ym.mec.web.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import java.util.Date;
-import java.util.HashMap;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.web.dal.entity.Goods;
 import com.ym.mec.web.dal.page.GoodsQueryInfo;
 import com.ym.mec.web.service.GoodsService;
+import io.swagger.annotations.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
 
 @RequestMapping("goods")
 @Api(tags = "商品(教材、辅件)服务")
@@ -61,18 +47,19 @@ public class GoodsController extends BaseController {
     }
 
     @ApiOperation(value = "分页查询商品(教材、辅件)列表")
-    @PostMapping("/queryPage")
-    public Object queryPage(@RequestBody GoodsQueryInfo queryInfo){
+    @GetMapping("/queryPage")
+    public Object queryPage(@RequestBody(required = false) GoodsQueryInfo queryInfo){
+        if(queryInfo == null){
+            queryInfo = new GoodsQueryInfo();
+        }
         return succeed(goodsService.queryPage(queryInfo));
     }
 
     @ApiOperation(value = "通过科目编号、商品分类 查询商品(教材、辅件)列表")
-    @PostMapping("/queryGoodsBySubId")
+    @GetMapping("/queryGoodsBySubId")
     @ApiImplicitParams({ @ApiImplicitParam(name = "subjectId", value = "科目编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "goodsCategoryId", value = "商品分类", required = true, dataType = "Integer")})
-    public Object findGoodsBySubId(@RequestBody HashMap<String, Integer> param){
-        Integer subjectId = param.get("subjectId");
-        Integer goodsCategoryId = param.get("goodsCategoryId");
+    public Object findGoodsBySubId(@RequestAttribute Integer subjectId,@RequestAttribute Integer goodsCategoryId){
         return succeed(goodsService.findGoodsBySubId(subjectId,goodsCategoryId));
     }
 }

+ 40 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

@@ -0,0 +1,40 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.dao.MusicGroupDao;
+import com.ym.mec.web.dal.dto.SubFeeSettingDto;
+import com.ym.mec.web.dal.entity.MusicGroup;
+import com.ym.mec.web.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.web.dal.page.MusicGroupQueryInfo;
+import com.ym.mec.web.service.MusicGroupService;
+import com.ym.mec.web.service.MusicGroupSubjectPlanService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+
+@RequestMapping("musicGroupSubjectPlan")
+@Api(tags = "乐团声部计划服务")
+@RestController
+public class MusicGroupSubjectPlanController extends BaseController {
+
+    @Autowired
+    private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
+
+    @ApiOperation(value = "根据id查询乐团声部招生情况")
+    @GetMapping("/get/{id}")
+    public Object get(@ApiParam(value = "乐团编号", required = true) @PathVariable("id") int id) {
+        return succeed(musicGroupSubjectPlanService.get(id));
+    }
+
+    @ApiOperation(value = "乐团声部分班情况")
+    @PostMapping("/getMusicSubjectClass")
+    public Object getMusicSubjectClass(@ApiParam(value = "乐团编号", required = true) int musicGroupId) {
+        return succeed(musicGroupSubjectPlanService.getMusicSubjectClassPlan(musicGroupId));
+    }
+
+}

+ 20 - 11
mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java

@@ -23,21 +23,21 @@ public class StudentRegistrationController extends BaseController {
 
     @ApiOperation(value = "新增学生报名信息")
     @PostMapping("/add")
-    public Object add(@RequestBody StudentRegistration studentRegistration){
+    public Object add(@RequestBody StudentRegistration studentRegistration) {
         studentRegistrationService.insert(studentRegistration);
         return succeed();
     }
 
     @ApiOperation(value = "删除学生报名信息")
     @DeleteMapping("/del/{id}")
-    public Object del(@ApiParam(value = "学生报名信息编号", required = true) @PathVariable("id") Long id){
+    public Object del(@ApiParam(value = "学生报名信息编号", required = true) @PathVariable("id") Long id) {
         studentRegistrationService.delete(id);
         return succeed();
     }
 
     @ApiOperation(value = "修改学生报名信息")
     @PutMapping("/update")
-    public Object update(@RequestBody StudentRegistration studentRegistration){
+    public Object update(@RequestBody StudentRegistration studentRegistration) {
         studentRegistration.setUpdateTime(new Date());
         studentRegistrationService.update(studentRegistration);
         return succeed();
@@ -45,31 +45,40 @@ public class StudentRegistrationController extends BaseController {
 
     @ApiOperation(value = "批量调剂学生报名专业")
     @PutMapping("/batchUpdateSubject")
-    public Object batchUpdateSubject(@RequestBody HashMap<String,String> param){
+    public Object batchUpdateSubject(@RequestBody HashMap<String, String> param) {
         String userId = param.get("userId");
         String subId = param.get("subId");
-        if(StringUtils.isEmpty(userId) || StringUtils.isEmpty(subId)){
+        if (StringUtils.isEmpty(userId) || StringUtils.isEmpty(subId)) {
             return failed();
         }
-        return succeed(studentRegistrationService.batchUpdateSubject(userId,Integer.parseInt(subId)));
+        return succeed(studentRegistrationService.batchUpdateSubject(userId, Integer.parseInt(subId)));
     }
 
     @ApiOperation(value = "乐团【报名中、缴费中】 学生详情列表分页查询")
     @PostMapping("/queryStudentApplyDetail")
-    public Object queryStudentApplyDetail(@RequestBody StudentRegistrationQueryInfo queryInfo){
+    public Object queryStudentApplyDetail(@RequestBody StudentRegistrationQueryInfo queryInfo) {
         return succeed(studentRegistrationService.queryStudentDetailPage(queryInfo));
     }
 
     @ApiOperation(value = "学生报名缴费金额详情")
     @GetMapping("/queryFeeDetail")
-    @ApiImplicitParams({ @ApiImplicitParam(name = "studentId", value = "学生编号", required = true, dataType = "Integer"),
+    @ApiImplicitParams({@ApiImplicitParam(name = "studentId", value = "学生编号", required = true, dataType = "Integer"),
             @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
-    public Object queryFeeDetail(@RequestBody HashMap<String,String> param){
+    public Object queryFeeDetail(@RequestBody HashMap<String, String> param) {
         String studentId = param.get("studentId");
         String musicGroupId = param.get("musicGroupId");
-        if(StringUtils.isEmpty(studentId) || StringUtils.isEmpty(musicGroupId)){
-            return succeed(studentRegistrationService.queryFeeDetail(Integer.parseInt(studentId),musicGroupId));
+        if (StringUtils.isEmpty(studentId) || StringUtils.isEmpty(musicGroupId)) {
+            return succeed(studentRegistrationService.queryFeeDetail(Integer.parseInt(studentId), musicGroupId));
         }
         return failed();
     }
+
+    @ApiOperation(value = "获取未分班的学生")
+    @GetMapping("/getNoClassStu")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "actualSubjectId", value = "科目(声部)id", required = true, dataType = "int")})
+    public Object getNoClassStuBySubjectId(Integer musicGroupId, Integer actualSubjectId) {
+        return succeed(studentRegistrationService.getNoClassStuBySubjectId(musicGroupId, actualSubjectId));
+    }
+
 }

+ 25 - 33
mec-web/src/main/java/com/ym/mec/web/controller/SubjectController.java

@@ -2,6 +2,7 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.web.dal.entity.Subject;
+import com.ym.mec.web.dal.page.GoodsQueryInfo;
 import com.ym.mec.web.dal.page.SubjectQueryInfo;
 import com.ym.mec.web.service.SubjectService;
 import io.swagger.annotations.*;
@@ -9,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.List;
 
 @RequestMapping("subject")
 @Api(tags = "科目服务")
@@ -18,33 +20,10 @@ public class SubjectController extends BaseController {
     @Autowired
     private SubjectService subjectService;
 
-    @ApiOperation(value = "新增科目")
-    @PostMapping("/add")
-    public Object add(@RequestBody Subject subject){
-        Subject subjectByCode = subjectService.findByCode(subject.getCode());
-        if(subjectByCode != null){
-            return failed("科目编号已存在,请核查");
-        }
-        subjectService.insert(subject);
-        return succeed();
-    }
-
-    @ApiOperation(value = "删除科目")
-    @DeleteMapping("/del/{id}")
-    public Object del(@ApiParam(value = "科目编号", required = true) @PathVariable("id") Integer id){
-        subjectService.delete(id);
-        return succeed();
-    }
-
-    @ApiOperation(value = "修改科目")
-    @PutMapping("/update")
+    @ApiOperation(value = "修改、新增科目")
+    @PostMapping("/upset")
     public Object update(@RequestBody Subject subject){
-        Subject subjectByCode = subjectService.findByCode(subject.getCode());
-        if(subjectByCode != null && !subjectByCode.getId().equals(subject.getId())){
-            return failed("科目编号已存在,请核查");
-        }
-        subject.setUpdateTime(new Date());
-        subjectService.update(subject);
+        subjectService.upSetSubject(subject);
         return succeed();
     }
 
@@ -55,21 +34,27 @@ public class SubjectController extends BaseController {
     }
 
     @ApiOperation(value = "分页查询科目列表")
-    @PostMapping("/queryPage")
-    public Object queryPage(@RequestBody SubjectQueryInfo queryInfo){
+    @GetMapping("/queryPage")
+    public Object queryPage(@RequestBody(required = false) SubjectQueryInfo queryInfo){
+        if(queryInfo == null){
+            queryInfo = new SubjectQueryInfo();
+        }
         return succeed(subjectService.queryPage(queryInfo));
     }
 
     @ApiOperation(value = "分页查询科目树状列表")
-    @PostMapping("/queryPageTree")
-    public Object queryPageTree(@RequestBody SubjectQueryInfo queryInfo){
+    @GetMapping("/queryPageTree")
+    public Object queryPageTree(@RequestBody(required = false) SubjectQueryInfo queryInfo){
+        if(queryInfo == null){
+            queryInfo = new SubjectQueryInfo();
+        }
         return succeed(subjectService.queryPageTree(queryInfo));
     }
 
     @ApiOperation(value = "通过乐团编号查询乐团科目规划")
-    @PostMapping("/querySubByMusicGroupId")
+    @GetMapping("/querySubByMusicGroupId")
     @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
-    public Object findSubByMusicGroupId(@RequestBody Integer musicGroupId){
+    public Object findSubByMusicGroupId(@RequestParam Integer musicGroupId){
         return succeed(subjectService.findSubByMusicGroupId(musicGroupId));
     }
 
@@ -80,10 +65,17 @@ public class SubjectController extends BaseController {
         return succeed(subjectService.findDefaultSubByGroupId(musicGroupId));
     }
 
+    @ApiOperation(value = "标记声部关联的商品列表")
+    @PostMapping("/markGoods")
+    @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
+    public Object markGoods(@RequestParam Integer musicGroupId){
+        return succeed(subjectService.findDefaultSubByGroupId(musicGroupId));
+    }
+
     @ApiOperation(value = "通过乐团编号获取声部列表以及声部报名、缴费、计划人数")
     @GetMapping("/findSubApplyDetail")
     @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
-    public Object findSubApplyDetail(@RequestBody Integer musicGroupId){
+    public Object findSubApplyDetail(@RequestParam Integer musicGroupId){
         return succeed(subjectService.findSubApplyDetail(musicGroupId));
     }
 }

+ 33 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/CourseHomeworkController.java

@@ -0,0 +1,33 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.page.CourseHomeworkQueryInfo;
+import com.ym.mec.web.service.CourseHomeworkService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+@RequestMapping("courseHomework")
+@Api(tags = "课后作业")
+@RestController
+public class CourseHomeworkController extends BaseController {
+
+    @Autowired
+    private CourseHomeworkService courseHomeworkService;
+
+    @ApiOperation(value = "分页查询作业列表")
+    @PostMapping(value = "/queryPage",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object queryPage(@RequestBody CourseHomeworkQueryInfo queryInfo){
+        return succeed(courseHomeworkService.queryPage(queryInfo));
+    }
+
+}

+ 55 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/CourseHomeworkTemplateController.java

@@ -0,0 +1,55 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.entity.CourseHomeworkTemplate;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import com.ym.mec.web.dal.page.CourseHomeWorkTemplateQueryInfo;
+import com.ym.mec.web.service.CourseHomeworkTemplateService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+@RequestMapping("courseHomeworkTemplate")
+@Api(tags = "作业模板")
+@RestController
+public class CourseHomeworkTemplateController extends BaseController {
+
+
+    @Autowired
+    private CourseHomeworkTemplateService courseHomeworkTemplateService;
+
+    @ApiOperation(value = "新增作业模板")
+    @PostMapping("/add")
+    public Object add(@RequestBody CourseHomeworkTemplate courseHomeworkTemplate){
+        courseHomeworkTemplate.setDelFlag(YesOrNoEnum.NO);
+        courseHomeworkTemplateService.insert(courseHomeworkTemplate);
+        return succeed();
+    }
+
+    @ApiOperation(value = "删除作业模板")
+    @DeleteMapping("/del/{id}")
+    public Object del(@ApiParam(value = "科目编号", required = true) @PathVariable("id") Integer id){
+        courseHomeworkTemplateService.delete(id);
+        return succeed();
+    }
+
+    @ApiOperation(value = "修改作业模板")
+    @PutMapping("/update")
+    public Object update(@RequestBody CourseHomeworkTemplate courseHomeworkTemplate){
+        courseHomeworkTemplateService.update(courseHomeworkTemplate);
+        return succeed();
+    }
+
+    @ApiOperation(value = "分页查询作业模板列表")
+    @PostMapping("/queryPage")
+    public Object queryPage(@RequestBody CourseHomeWorkTemplateQueryInfo queryInfo){
+        return succeed(courseHomeworkTemplateService.queryPage(queryInfo));
+    }
+
+}

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java → mec-web/src/main/java/com/ym/mec/web/controller/education/EmployeeController.java

@@ -1,4 +1,4 @@
-package com.ym.mec.web.controller;
+package com.ym.mec.web.controller.education;
 
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.web.dal.enums.EmployeeOperateEnum;

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/StudentAttendanceController.java → mec-web/src/main/java/com/ym/mec/web/controller/student/StudentAttendanceController.java

@@ -1,4 +1,4 @@
-package com.ym.mec.web.controller;
+package com.ym.mec.web.controller.student;
 
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.web.dal.entity.StudentAttendance;

+ 56 - 0
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCourseHomeworkController.java

@@ -0,0 +1,56 @@
+package com.ym.mec.web.controller.student;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.entity.StudentCourseHomework;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import com.ym.mec.web.dal.page.CourseHomeworkQueryInfo;
+import com.ym.mec.web.service.StudentCourseHomeworkService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+@RequestMapping("studentCourseHomework")
+@Api(tags = "学生作业")
+@RestController
+public class StudentCourseHomeworkController extends BaseController {
+
+    @Autowired
+    private StudentCourseHomeworkService studentCourseHomeworkService;
+
+    @ApiOperation(value = "提交作业")
+    @PostMapping(value = "/add",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object add(@RequestBody StudentCourseHomework studentCourseHomework){
+        studentCourseHomework.setStatus(YesOrNoEnum.YES);
+        studentCourseHomeworkService.insert(studentCourseHomework);
+        return succeed();
+    }
+
+    @ApiOperation(value = "重新提交")
+    @PutMapping(value = "/update",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object update(@RequestBody StudentCourseHomework studentCourseHomework){
+        studentCourseHomework.setStatus(YesOrNoEnum.YES);
+        studentCourseHomeworkService.update(studentCourseHomework);
+        return succeed();
+    }
+
+    @ApiOperation(value = "获取学生作业界面详细信息")
+    @GetMapping(value = "/findCourseHomeworkStudentDetail/{courseScheduleID}")
+    public Object findCourseHomeworkStudentDetail(@PathVariable("courseScheduleID") Long courseScheduleID) throws IOException {
+        return succeed(studentCourseHomeworkService.findCourseHomeworkStudentDetail(courseScheduleID));
+    }
+
+    @ApiOperation(value = "分页查询作业列表")
+    @PostMapping(value = "/queryPage",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object queryPage(@RequestBody CourseHomeworkQueryInfo queryInfo){
+        return succeed(studentCourseHomeworkService.queryPage(queryInfo));
+    }
+
+}

+ 46 - 0
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCourseHomeworkReplyController.java

@@ -0,0 +1,46 @@
+package com.ym.mec.web.controller.student;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.entity.StudentCourseHomeworkReply;
+import com.ym.mec.web.dal.page.StudentCourseHomeworkReplyQueryInfo;
+import com.ym.mec.web.service.StudentCourseHomeworkReplyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/19
+ */
+
+@RequestMapping("studentCourseHomeworkReply")
+@Api(tags = "作业评论-学生端")
+@RestController
+public class StudentCourseHomeworkReplyController extends BaseController {
+
+    @Autowired
+    private StudentCourseHomeworkReplyService studentCourseHomeworkReplyService;
+
+    @ApiOperation(value = "新增回复")
+    @PostMapping("/add")
+    public Object add(@RequestBody StudentCourseHomeworkReply studentCourseHomeworkReply) {
+        studentCourseHomeworkReplyService.insert(studentCourseHomeworkReply);
+        return succeed();
+    }
+
+    @ApiOperation(value = "回复查询")
+    @GetMapping("/queryPage")
+    public Object queryPage(@RequestBody StudentCourseHomeworkReplyQueryInfo queryInfo){
+        return succeed(studentCourseHomeworkReplyService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "删除回复")
+    @DeleteMapping("/del/{id}")
+    public Object del(@ApiParam(value = "回复ID", required = true) @PathVariable("id") Long id){
+        studentCourseHomeworkReplyService.delete(id);
+        return succeed();
+    }
+
+}

+ 4 - 4
mec-web/src/main/java/com/ym/mec/web/controller/TeacherAttendanceController.java → mec-web/src/main/java/com/ym/mec/web/controller/teacher/TeacherAttendanceController.java

@@ -1,7 +1,7 @@
-package com.ym.mec.web.controller;
+package com.ym.mec.web.controller.teacher;
 
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.web.dal.entity.TeacherAttendance;
+import com.ym.mec.web.dal.dto.TeacherSignOutDto;
 import com.ym.mec.web.dal.page.TeacherAttendanceQueryInfo;
 import com.ym.mec.web.service.TeacherAttendanceService;
 import io.swagger.annotations.Api;
@@ -19,8 +19,8 @@ public class TeacherAttendanceController extends BaseController {
 
     @ApiOperation(value = "新增教师签到")
     @PostMapping("/add")
-    public Object add(@RequestBody TeacherAttendance teacherAttendance) {
-        teacherAttendanceService.addTeacherAttendanceRecord(teacherAttendance);
+    public Object add(@RequestBody TeacherSignOutDto teacherSignOutDto) {
+        teacherAttendanceService.addTeacherAttendanceRecord(teacherSignOutDto);
         return succeed();
     }
 

+ 45 - 0
mec-web/src/main/java/com/ym/mec/web/controller/teacher/TeacherCourseHomeworkReplyController.java

@@ -0,0 +1,45 @@
+package com.ym.mec.web.controller.teacher;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.entity.StudentCourseHomeworkReply;
+import com.ym.mec.web.dal.page.StudentCourseHomeworkReplyQueryInfo;
+import com.ym.mec.web.service.StudentCourseHomeworkReplyService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/19
+ */
+@RequestMapping("teacherCourseHomeworkReply")
+@Api(tags = "作业评论-教师端")
+@RestController
+public class TeacherCourseHomeworkReplyController extends BaseController {
+
+    @Autowired
+    private StudentCourseHomeworkReplyService studentCourseHomeworkReplyService;
+
+    @ApiOperation(value = "新增回复")
+    @PostMapping("/add")
+    public Object add(@RequestBody StudentCourseHomeworkReply studentCourseHomeworkReply) {
+        studentCourseHomeworkReplyService.insert(studentCourseHomeworkReply);
+        return succeed();
+    }
+
+    @ApiOperation(value = "回复查询")
+    @GetMapping("/queryPage")
+    public Object queryPage(@RequestBody StudentCourseHomeworkReplyQueryInfo queryInfo){
+        return succeed(studentCourseHomeworkReplyService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "删除回复")
+    @DeleteMapping("/del/{id}")
+    public Object del(@ApiParam(value = "回复ID", required = true) @PathVariable("id") Long id){
+        studentCourseHomeworkReplyService.delete(id);
+        return succeed();
+    }
+
+}

+ 26 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupDao.java

@@ -1,4 +1,5 @@
 package com.ym.mec.web.dal.dao;
+
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.ClassGroup;
 import org.apache.ibatis.annotations.Param;
@@ -10,6 +11,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 查询老师乐团课课程
+     *
      * @param teacherId
      * @return
      */
@@ -17,15 +19,39 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取所有合奏班
+     *
      * @return
      */
     List<ClassGroup> findAllMixClassGroup(@Param("musicGroupId") Integer musicGroupId);
 
     /**
      * 根据合奏班ID查询该合奏班下的子班级
+     *
      * @param mixClassGroupId
      * @return
      */
     List<ClassGroup> findMixClassChildClassGroup(@Param("mixClassGroupId") Integer mixClassGroupId);
 
+    /**
+     * 根据乐团编号查询单技班级信息
+     *
+     * @param musicGroupId
+     * @return
+     */
+    List<ClassGroup> findAllNormalClassGroupByMusicGroupId(@Param("musicGroupId") int musicGroupId);
+
+    /**
+     * 查询合奏班包含子班的名字信息
+     *
+     * @param classGroupId
+     * @return
+     */
+    ClassGroup findMixClassChildClassGroupNames(@Param("classGroupId") int classGroupId);
+
+    /**
+     * 跟班级ids查询班级信息
+     * @param ids
+     * @return
+     */
+    List<ClassGroup> findClassGroupByIds(@Param("ids") String ids);
 }

+ 10 - 1
mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupRelationDao.java

@@ -2,8 +2,17 @@ package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.ClassGroupRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ClassGroupRelationDao extends BaseDAO<Integer, ClassGroupRelation> {
 
-	
+
+    /**
+     * 批量插入班级关联关系
+     * @param classGroupRelationList
+     * @return
+     */
+    int classGroupRelationsInsert(@Param("classGroupRelationList") List<ClassGroupRelation> classGroupRelationList);
 }

+ 10 - 1
mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupStudentMapperDao.java

@@ -2,8 +2,17 @@ package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.ClassGroupStudentMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStudentMapper> {
 
-	
+
+    /**
+     * 批量插入学生
+     * @param classGroupStudentMapperList
+     * @return
+     */
+    int classGroupStudentsInsert(@Param("classGroupStudentMapperList") List<ClassGroupStudentMapper> classGroupStudentMapperList);
 }

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/ClassGroupTeacherMapperDao.java

@@ -0,0 +1,9 @@
+package com.ym.mec.web.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.ClassGroupTeacherMapper;
+
+public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeacherMapper> {
+
+	
+}

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/CourseHomeworkTemplateDao.java

@@ -2,8 +2,15 @@ package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.CourseHomeworkTemplate;
+import org.apache.ibatis.annotations.Param;
 
 public interface CourseHomeworkTemplateDao extends BaseDAO<Integer, CourseHomeworkTemplate> {
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 根据课程计划ID获取所属科目ID
+     */
+    String getSubjectIDs(@Param("courseScheduleID") Long courseScheduleID);
 	
 }

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/LeaveCategoryDao.java

@@ -0,0 +1,9 @@
+package com.ym.mec.web.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.LeaveCategory;
+
+public interface LeaveCategoryDao extends BaseDAO<Integer, LeaveCategory> {
+
+	
+}

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/MusicGroupSubjectPlanDao.java

@@ -2,6 +2,16 @@ package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.MusicGroupSubjectPlan;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSubjectPlan> {
+    /**
+     * 获取乐团声部招生计划
+     *
+     * @param musicGroupId
+     * @return
+     */
+    List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(@Param("musicGroupId") int musicGroupId);
 }

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentAttendanceDao.java

@@ -5,6 +5,7 @@ import com.ym.mec.web.dal.dto.StudentPersonalAttendanceDto;
 import com.ym.mec.web.dal.dto.StudentStatusCountUtilEntity;
 import com.ym.mec.web.dal.entity.StudentAttendance;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
 import java.util.Map;
@@ -45,4 +46,13 @@ public interface StudentAttendanceDao extends BaseDAO<Long, StudentAttendance> {
      * 获取学生个人上课签到记录统计
      */
     int queryStudentPersonalAttendancesCount(Map<String,Object> params);
+
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 统计正常签到的学生数量
+     */
+    @Select("SELECT COUNT(*) FROM student_attendance WHERE class_group_id_=#{classGroupID} AND status_=\"NORMAL\"")
+    int countNormalAttendanceStudentNums(Long classGroupID);
 }

+ 35 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentCourseHomeworkDao.java

@@ -1,9 +1,44 @@
 package com.ym.mec.web.dal.dao;
 
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.dto.CourseHomeworkStudentDetailDto;
 import com.ym.mec.web.dal.entity.StudentCourseHomework;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
+import java.util.List;
 
 public interface StudentCourseHomeworkDao extends BaseDAO<Long, StudentCourseHomework> {
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 统计已提交作业的人数
+     */
+    @Select("SELECT COUNT(*) FROM student_course_homework WHERE course_homework_id_=#{courseHomeworkID} FOR UPDATE")
+    int countCompletedStudentNum(Long courseHomeworkID);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 获取学生作业界面详细信息
+     */
+    CourseHomeworkStudentDetailDto findCourseHomeworkStudentDetail(@Param("courseScheduleID") Long courseScheduleID,
+                                                                   @Param("userID") Long userID);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 批量插入学生作业提交记录
+     */
+    int batchInsertStudentCourseHomeworkRecord(List<StudentCourseHomework> studentCourseHomeworks);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 构建初始学生作业提交记录
+     */
+    List<StudentCourseHomework> constructInitialStudentHomeworkRecords(@Param("courseScheduleID") Long courseScheduleID,
+                                                                       @Param("courseHomeworkID") Long courseHomeworkID);
 	
 }

+ 24 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentCourseHomeworkReplyDao.java

@@ -0,0 +1,24 @@
+package com.ym.mec.web.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.StudentCourseHomeworkReply;
+
+import java.util.List;
+
+public interface StudentCourseHomeworkReplyDao extends BaseDAO<Long, StudentCourseHomeworkReply> {
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/19
+     * 获取对应作业下所有回复
+     */
+    List<StudentCourseHomeworkReply> findAllReplyByStudentCourseHomeworkID(Long studentCourseHomeworkID);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/19
+     * 根据ID批量删除
+     */
+    int batchDeleteReplys(List<Long> ids);
+	
+}

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/StudentRegistrationDao.java

@@ -13,6 +13,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
     /**
      * 获取乐团学员报名详情
+     *
      * @param params
      * @return
      */
@@ -20,6 +21,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
     /**
      * 获取乐团学员报名详情条数
+     *
      * @param params
      * @return
      */
@@ -27,6 +29,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
     /**
      * 根据乐团编号和声部获取缴费学员人数
+     *
      * @param musicGroupId
      * @param subjectId
      * @return
@@ -35,9 +38,28 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
 
     /**
      * 学生报名缴费金额详情
+     *
      * @param studentId
      * @param musicGroupId
      * @return
      */
     StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId);
+
+
+    /**
+     * 获取乐团声部未分配的班级的学生
+     *
+     * @param musicGroupId    乐团id
+     * @param actualSubjectId 科目id
+     * @return
+     */
+    List<StudentRegistration> getNoClassStuBySubjectId(@Param("musicGroupId") Integer musicGroupId, @Param("actualSubjectId") Integer actualSubjectId);
+
+    /**
+     * 获取乐团声部未分配学生数
+     * @param musicGroupId
+     * @param actualSubjectId
+     * @return
+     */
+    Integer getNoClassStuCountBySubjectId(@Param("musicGroupId") Integer musicGroupId, @Param("actualSubjectId") Integer actualSubjectId);
 }

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/SysAreaDao.java

@@ -0,0 +1,9 @@
+package com.ym.mec.web.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.SysArea;
+
+public interface SysAreaDao extends BaseDAO<Integer, SysArea> {
+
+	
+}

+ 0 - 9
mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherClassFeeDao.java

@@ -1,9 +0,0 @@
-package com.ym.mec.web.dal.dao;
-
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.web.dal.entity.TeacherClassFee;
-
-public interface TeacherClassFeeDao extends BaseDAO<Long, TeacherClassFee> {
-
-	
-}

+ 9 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherDefaultMusicGroupSalaryDao.java

@@ -0,0 +1,9 @@
+package com.ym.mec.web.dal.dao;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.web.dal.entity.TeacherDefaultMusicGroupSalary;
+
+public interface TeacherDefaultMusicGroupSalaryDao extends BaseDAO<Long, TeacherDefaultMusicGroupSalary> {
+
+	
+}

+ 0 - 9
mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherSalaryDao.java

@@ -1,9 +0,0 @@
-package com.ym.mec.web.dal.dao;
-
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.web.dal.entity.TeacherSalary;
-
-public interface TeacherSalaryDao extends BaseDAO<Long, TeacherSalary> {
-
-	
-}

+ 183 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/CourseHomeworkListDto.java

@@ -0,0 +1,183 @@
+package com.ym.mec.web.dal.dto;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/19
+ */
+public class CourseHomeworkListDto {
+
+    /**  */
+    private Long id;
+
+    /**  */
+    private Long courseScheduleId;
+
+    /** 作业内容 */
+    private String content;
+
+    /**  */
+    private java.util.Date createTime;
+
+    @ApiModelProperty(value = "截至日期",required = false)
+    private Date expiryDate;
+
+    /** 上课时间 */
+    @ApiModelProperty(value = "上课时间",required = false)
+    private java.util.Date startClassTime;
+
+    /**  */
+    private Integer musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称",required = false)
+    private String musicGroupName;
+
+    /**  */
+    private Integer classGroupId;
+
+    @ApiModelProperty(value = "班级名称",required = false)
+    private String classGroupName;
+
+    @ApiModelProperty(value = "作业完成人数",required = false)
+    private Integer completedNum;
+
+    @ApiModelProperty(value = "预计完成人数",required = false)
+    private Integer expectNum;
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @ApiModelProperty(value = "备注",required = false)
+    private String remark;
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @ApiModelProperty(value = "提交状态",required = false)
+    private YesOrNoEnum status;
+
+    @JsonInclude(JsonInclude.Include.NON_NULL)
+    @ApiModelProperty(value = "是否已经回复",required = false)
+    private YesOrNoEnum isReplied;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getExpiryDate() {
+        return expiryDate;
+    }
+
+    public void setExpiryDate(Date expiryDate) {
+        this.expiryDate = expiryDate;
+    }
+
+    public Date getStartClassTime() {
+        return startClassTime;
+    }
+
+    public void setStartClassTime(Date startClassTime) {
+        this.startClassTime = startClassTime;
+    }
+
+    public Integer getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(Integer musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public Integer getCompletedNum() {
+        return completedNum;
+    }
+
+    public void setCompletedNum(Integer completedNum) {
+        this.completedNum = completedNum;
+    }
+
+    public Integer getExpectNum() {
+        return expectNum;
+    }
+
+    public void setExpectNum(Integer expectNum) {
+        this.expectNum = expectNum;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public YesOrNoEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(YesOrNoEnum status) {
+        this.status = status;
+    }
+
+    public YesOrNoEnum getIsReplied() {
+        return isReplied;
+    }
+
+    public void setIsReplied(YesOrNoEnum isReplied) {
+        this.isReplied = isReplied;
+    }
+}

+ 134 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/CourseHomeworkStudentDetailDto.java

@@ -0,0 +1,134 @@
+package com.ym.mec.web.dal.dto;
+
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+public class CourseHomeworkStudentDetailDto {
+
+    @ApiModelProperty(value = "乐团名称",required = false)
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "班级名称",required = false)
+    private String classGroupName;
+
+    @ApiModelProperty(value = "作业ID",required = false)
+    private Long courseHomeworkId;
+
+    @ApiModelProperty(value = "作业内容",required = false)
+    private String content;
+
+    @ApiModelProperty(value = "截至日期",required = false)
+    private Date expiryDate;
+
+    @ApiModelProperty(value = "已完成人数",required = false)
+    private Integer completedNum;
+
+    @ApiModelProperty(value = "预计完成人数",required = false)
+    private Integer expectNum;
+
+    @ApiModelProperty(value = "学生作业文件链接",required = false)
+    private String attachments;
+
+    @ApiModelProperty(value = "学生作业评分",required = false)
+    private Long score;
+
+    @ApiModelProperty(value = "提交状态",required = false)
+    private YesOrNoEnum status;
+
+    @ApiModelProperty(value = "是否已经回复",required = false)
+    private YesOrNoEnum isReplied;
+
+    public YesOrNoEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(YesOrNoEnum status) {
+        this.status = status;
+    }
+
+    public YesOrNoEnum getIsReplied() {
+        return isReplied;
+    }
+
+    public void setIsReplied(YesOrNoEnum isReplied) {
+        this.isReplied = isReplied;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getClassGroupName() {
+        return classGroupName;
+    }
+
+    public void setClassGroupName(String classGroupName) {
+        this.classGroupName = classGroupName;
+    }
+
+    public Long getCourseHomeworkId() {
+        return courseHomeworkId;
+    }
+
+    public void setCourseHomeworkId(Long courseHomeworkId) {
+        this.courseHomeworkId = courseHomeworkId;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getExpiryDate() {
+        return expiryDate;
+    }
+
+    public void setExpiryDate(Date expiryDate) {
+        this.expiryDate = expiryDate;
+    }
+
+    public Integer getCompletedNum() {
+        return completedNum;
+    }
+
+    public void setCompletedNum(Integer completedNum) {
+        this.completedNum = completedNum;
+    }
+
+    public Integer getExpectNum() {
+        return expectNum;
+    }
+
+    public void setExpectNum(Integer expectNum) {
+        this.expectNum = expectNum;
+    }
+
+    public String getAttachments() {
+        return attachments;
+    }
+
+    public void setAttachments(String attachments) {
+        this.attachments = attachments;
+    }
+
+    public Long getScore() {
+        return score;
+    }
+
+    public void setScore(Long score) {
+        this.score = score;
+    }
+}

+ 81 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/StudentCourseHomeworkCommentDto.java

@@ -0,0 +1,81 @@
+package com.ym.mec.web.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/19
+ */
+public class StudentCourseHomeworkCommentDto {
+
+    @ApiModelProperty(value = "回复ID",required = false)
+    private Long replyId;
+
+    /** 留言人编号 */
+    @ApiModelProperty(value = "留言人编号",required = true)
+    private Integer userId;
+
+    @ApiModelProperty(value = "留言人姓名",required = false)
+    private String userName;
+
+    /** 留言内容 */
+    @ApiModelProperty(value = "留言内容",required = true)
+    private String content;
+
+    /**  */
+    private java.util.Date createTime;
+
+    @ApiModelProperty(value = "回复",required = false)
+    private List<StudentCourseHomeworkCommentDto> replys;
+
+    public Long getReplyId() {
+        return replyId;
+    }
+
+    public void setReplyId(Long replyId) {
+        this.replyId = replyId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public List<StudentCourseHomeworkCommentDto> getReplys() {
+        return replys;
+    }
+
+    public void setReplys(List<StudentCourseHomeworkCommentDto> replys) {
+        this.replys = replys;
+    }
+}

+ 69 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/StudentCourseHomeworkReplyDto.java

@@ -0,0 +1,69 @@
+package com.ym.mec.web.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/19
+ */
+public class StudentCourseHomeworkReplyDto {
+
+    @ApiModelProperty(value = "回复ID",required = false)
+    private Long replyId;
+
+    /** 留言人编号 */
+    @ApiModelProperty(value = "留言人编号",required = true)
+    private Integer userId;
+
+    @ApiModelProperty(value = "留言人姓名",required = false)
+    private String userName;
+
+    /** 留言内容 */
+    @ApiModelProperty(value = "留言内容",required = true)
+    private String content;
+
+    /**  */
+    private java.util.Date createTime;
+
+    public Long getReplyId() {
+        return replyId;
+    }
+
+    public void setReplyId(Long replyId) {
+        this.replyId = replyId;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getContent() {
+        return content;
+    }
+
+    public void setContent(String content) {
+        this.content = content;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 0 - 11
mec-web/src/main/java/com/ym/mec/web/dal/dto/TeacherAttendanceDto.java

@@ -33,9 +33,6 @@ public class TeacherAttendanceDto {
     @ApiModelProperty(value = "班级类型",required = false)
     private String classType;
 
-    @ApiModelProperty(value = "科目ID",required = false)
-    private Long subjectId;
-
     @ApiModelProperty(value = "乐团ID",required = false)
     private Long musicGroupId;
 
@@ -61,14 +58,6 @@ public class TeacherAttendanceDto {
     @ApiModelProperty(value = "教师正常签到提前时间(分钟)",required = false)
     private ParamEnum teacherAttendanceTimeGap;
 
-    public Long getSubjectId() {
-        return subjectId;
-    }
-
-    public void setSubjectId(Long subjectId) {
-        this.subjectId = subjectId;
-    }
-
     public ParamEnum getTeacherAttendanceTimeGap() {
         return teacherAttendanceTimeGap;
     }

+ 34 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/TeacherSignOutDto.java

@@ -0,0 +1,34 @@
+package com.ym.mec.web.dal.dto;
+
+import com.ym.mec.web.dal.entity.CourseHomework;
+import com.ym.mec.web.dal.entity.TeacherAttendance;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+public class TeacherSignOutDto {
+
+    @ApiModelProperty(value = "教师签退信息",required = true)
+    private TeacherAttendance teacherAttendanceInfo;
+
+    @ApiModelProperty(value = "课后作业信息")
+    private CourseHomework courseHomeworkInfo;
+
+    public TeacherAttendance getTeacherAttendanceInfo() {
+        return teacherAttendanceInfo;
+    }
+
+    public void setTeacherAttendanceInfo(TeacherAttendance teacherAttendanceInfo) {
+        this.teacherAttendanceInfo = teacherAttendanceInfo;
+    }
+
+    public CourseHomework getCourseHomeworkInfo() {
+        return courseHomeworkInfo;
+    }
+
+    public void setCourseHomeworkInfo(CourseHomework courseHomeworkInfo) {
+        this.courseHomeworkInfo = courseHomeworkInfo;
+    }
+}

+ 40 - 5
mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroup.java

@@ -17,16 +17,26 @@ public class ClassGroup {
 	private Integer id;
 	
 	/**  */
-	@ApiModelProperty(value = "乐团编号",required = false)
+	@ApiModelProperty(value = "乐团编号",required = true)
 	private Integer musicGroupId;
 	
 	/**  */
-	@ApiModelProperty(value = "科目编号",required = false)
+	@ApiModelProperty(value = "科目编号(多个,号分割)",required = true)
 	private String subjectIdList;
-	
+
+	@ApiModelProperty(value = "学生编号(多个,号分割)",required = true)
+	private String userIds;
+
+	@ApiModelProperty(value = "科目名称",required = false,hidden = true)
+	private String subjectName;
+
 	/** 班级名称 */
-	@ApiModelProperty(value = "班级名称",required = false)
+	@ApiModelProperty(value = "班级名称",required = true)
 	private String name;
+
+	/** 子班级名称列表 */
+	@ApiModelProperty(value = "子班班级名称")
+	private String classNames;
 	
 	/** 学生数 */
 	@ApiModelProperty(value = "学生数量",required = false)
@@ -39,7 +49,7 @@ public class ClassGroup {
 	private java.util.Date updateTime;
 	
 	/** 班级类型(普通班级、合奏班级) */
-	@ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级)",required = false)
+	@ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级)",required = true)
 	private ClassGroupTypeEnum type;
 
 	/** 班级类型(普通班级、合奏班级) */
@@ -118,9 +128,34 @@ public class ClassGroup {
 		this.type = type;
 	}
 
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
+	public String getUserIds() {
+		return userIds;
+	}
+
+	public void setUserIds(String userIds) {
+		this.userIds = userIds;
+	}
+
+	public String getClassNames() {
+		return classNames;
+	}
+
+	public void setClassNames(String classNames) {
+		this.classNames = classNames;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+
 }

+ 3 - 3
mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroupStudentMapper.java

@@ -14,7 +14,7 @@ public class ClassGroupStudentMapper {
 	
 	/** 班级 */
 	@ApiModelProperty(value = "班级编号",required = false)
-	private Integer classGroupId;
+	private int classGroupId;
 	
 	/** 学生 */
 	@ApiModelProperty(value = "学生编号",required = false)
@@ -43,11 +43,11 @@ public class ClassGroupStudentMapper {
 		return this.id;
 	}
 			
-	public void setClassGroupId(Integer classGroupId){
+	public void setClassGroupId(int classGroupId){
 		this.classGroupId = classGroupId;
 	}
 	
-	public Integer getClassGroupId(){
+	public int getClassGroupId(){
 		return this.classGroupId;
 	}
 			

+ 23 - 30
mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherClassFee.java → mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroupTeacherMapper.java

@@ -1,36 +1,29 @@
 package com.ym.mec.web.dal.entity;
 
-import com.ym.mec.web.dal.enums.TeachTypeEnum;
-import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
- * 对应数据库表(teacher_class_fee):
+ * 对应数据库表(class_group_teacher_mapper):
  */
-public class TeacherClassFee {
+public class ClassGroupTeacherMapper {
 
 	/**  */
 	private Long id;
 	
 	/**  */
-	@ApiModelProperty(value = "乐团编号",required = false)
 	private Integer musicGroupId;
 	
 	/**  */
-	@ApiModelProperty(value = "课程组编号",required = false)
 	private Integer classGroupId;
 	
-	/**  */
-	@ApiModelProperty(value = "教师编号",required = false)
-	private Integer teacherId;
-	
-	/** 职务类型(助教、主教) */
-	@ApiModelProperty(value = "职务类型",required = false)
-	private TeachTypeEnum jobType;
+	/** 老师角色(主教、助教) */
+	private String teacherRole;
 	
 	/**  */
-	@ApiModelProperty(value = "教师编号",required = false)
-	private long classFee;
+	private Integer userId;
+	
+	/** 薪酬 */
+	private long salary;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -62,28 +55,28 @@ public class TeacherClassFee {
 		return this.classGroupId;
 	}
 			
-	public void setTeacherId(Integer teacherId){
-		this.teacherId = teacherId;
+	public void setTeacherRole(String teacherRole){
+		this.teacherRole = teacherRole;
 	}
 	
-	public Integer getTeacherId(){
-		return this.teacherId;
+	public String getTeacherRole(){
+		return this.teacherRole;
 	}
-
-	public TeachTypeEnum getJobType() {
-		return jobType;
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
 	}
-
-	public void setJobType(TeachTypeEnum jobType) {
-		this.jobType = jobType;
+	
+	public Integer getUserId(){
+		return this.userId;
 	}
-
-	public void setClassFee(long classFee){
-		this.classFee = classFee;
+			
+	public void setSalary(long salary){
+		this.salary = salary;
 	}
 	
-	public long getClassFee(){
-		return this.classFee;
+	public long getSalary(){
+		return this.salary;
 	}
 			
 	public void setCreateTime(java.util.Date createTime){

+ 45 - 9
mec-web/src/main/java/com/ym/mec/web/dal/entity/CourseHomework.java

@@ -1,7 +1,10 @@
 package com.ym.mec.web.dal.entity;
 
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.Date;
+
 /**
  * 对应数据库表(course_homework):
  */
@@ -14,7 +17,7 @@ public class CourseHomework {
 	private Long courseScheduleId;
 	
 	/** 图片地址(多个用逗号分隔) */
-	private String images;
+	private String attachments;
 	
 	/** 作业内容 */
 	private String content;
@@ -24,13 +27,46 @@ public class CourseHomework {
 	
 	/**  */
 	private java.util.Date updateTime;
+
+	@ApiModelProperty(value = "截至日期",required = false)
+	private Date expiryDate;
 	
 	/**  */
 	private Integer musicGroupId;
 	
 	/**  */
 	private Integer classGroupId;
-	
+
+	@ApiModelProperty(value = "作业完成人数",required = false)
+	private Integer completedNum;
+
+	@ApiModelProperty(value = "预计完成人数",required = false)
+	private Integer expectNum;
+
+	public Date getExpiryDate() {
+		return expiryDate;
+	}
+
+	public void setExpiryDate(Date expiryDate) {
+		this.expiryDate = expiryDate;
+	}
+
+	public Integer getCompletedNum() {
+		return completedNum;
+	}
+
+	public void setCompletedNum(Integer completedNum) {
+		this.completedNum = completedNum;
+	}
+
+	public Integer getExpectNum() {
+		return expectNum;
+	}
+
+	public void setExpectNum(Integer expectNum) {
+		this.expectNum = expectNum;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -46,15 +82,15 @@ public class CourseHomework {
 	public Long getCourseScheduleId(){
 		return this.courseScheduleId;
 	}
-			
-	public void setImages(String images){
-		this.images = images;
+
+	public String getAttachments() {
+		return attachments;
 	}
-	
-	public String getImages(){
-		return this.images;
+
+	public void setAttachments(String attachments) {
+		this.attachments = attachments;
 	}
-			
+
 	public void setContent(String content){
 		this.content = content;
 	}

+ 31 - 20
mec-web/src/main/java/com/ym/mec/web/dal/entity/CourseHomeworkTemplate.java

@@ -1,5 +1,8 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -8,27 +11,35 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 public class CourseHomeworkTemplate {
 
 	/**  */
+	@ApiModelProperty(value = "模板ID",required = false)
 	private Integer id;
 	
 	/** 模板名称 */
+	@ApiModelProperty(value = "模板名称",required = true)
 	private String name;
 	
 	/** 模板内容 */
+	@ApiModelProperty(value = "模板内容",required = true)
 	private String content;
+
+	/** 是否删除  -1:已删除  0:正常 */
+	@ApiModelProperty(value = "是否删除  1:已删除  0:正常",required = false)
+	private YesOrNoEnum delFlag;
 	
 	/**  */
-	private String delFlag;
-	
-	/**  */
+	@ApiModelProperty(value = "创建日期",required = false)
 	private java.util.Date createTime;
 	
 	/**  */
+	@ApiModelProperty(value = "更新日期",required = false)
 	private java.util.Date updateTime;
-	
-	/** 班级类型(普通班级、合奏班级、提高课班级、VIP班级) */
-	private String classGroupType;
+
+	/** 班级类型(普通班级、合奏班级) */
+	@ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级)",required = true)
+	private ClassGroupTypeEnum classGroupType;
 	
 	/**  */
+	@ApiModelProperty(value = "声部ID",required = true)
 	private Integer subjectId;
 	
 	public void setId(Integer id){
@@ -54,15 +65,15 @@ public class CourseHomeworkTemplate {
 	public String getContent(){
 		return this.content;
 	}
-			
-	public void setDelFlag(String delFlag){
-		this.delFlag = delFlag;
+
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
 	}
-	
-	public String getDelFlag(){
-		return this.delFlag;
+
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
 	}
-			
+
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}
@@ -78,15 +89,15 @@ public class CourseHomeworkTemplate {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
-			
-	public void setClassGroupType(String classGroupType){
-		this.classGroupType = classGroupType;
+
+	public ClassGroupTypeEnum getClassGroupType() {
+		return classGroupType;
 	}
-	
-	public String getClassGroupType(){
-		return this.classGroupType;
+
+	public void setClassGroupType(ClassGroupTypeEnum classGroupType) {
+		this.classGroupType = classGroupType;
 	}
-			
+
 	public void setSubjectId(Integer subjectId){
 		this.subjectId = subjectId;
 	}

+ 14 - 1
mec-web/src/main/java/com/ym/mec/web/dal/entity/GoodsCategory.java

@@ -4,6 +4,8 @@ import com.ym.mec.web.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.List;
+
 /**
  * 对应数据库表(goods_category):
  */
@@ -41,7 +43,18 @@ public class GoodsCategory {
 	
 	/** 创建时间 */
 	private java.util.Date createTime;
-	
+
+	@ApiModelProperty(value = "子级商品类型列表",required = false)
+	private List<GoodsCategory> goodsCategories;
+
+	public List<GoodsCategory> getGoodsCategories() {
+		return goodsCategories;
+	}
+
+	public void setGoodsCategories(List<GoodsCategory> goodsCategories) {
+		this.goodsCategories = goodsCategories;
+	}
+
 	public void setId(Integer id){
 		this.id = id;
 	}

+ 86 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/LeaveCategory.java

@@ -0,0 +1,86 @@
+package com.ym.mec.web.dal.entity;
+
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(leave_category):
+ */
+public class LeaveCategory {
+
+	/**  */
+	private Integer id;
+	
+	/** 类型名称 */
+	@ApiModelProperty(value = "类型名称",required = false)
+	private String name;
+	
+	/**  */
+	@ApiModelProperty(value = "是否删除",required = false)
+	private YesOrNoEnum delFlag;
+	
+	/** 备注 */
+	@ApiModelProperty(value = "备注",required = false)
+	private String remark;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setName(String name){
+		this.name = name;
+	}
+	
+	public String getName(){
+		return this.name;
+	}
+			
+	public void setDelFlag(YesOrNoEnum delFlag){
+		this.delFlag = delFlag;
+	}
+	
+	public YesOrNoEnum getDelFlag(){
+		return this.delFlag;
+	}
+			
+	public void setRemark(String remark){
+		this.remark = remark;
+	}
+	
+	public String getRemark(){
+		return this.remark;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 13 - 2
mec-web/src/main/java/com/ym/mec/web/dal/entity/MusicGroupSubjectPlan.java

@@ -33,7 +33,11 @@ public class MusicGroupSubjectPlan {
 	/** 报名学生数 */
 	@ApiModelProperty(value = "报名学生数",required = false)
 	private Integer applyStudentNum;
-	
+
+	/** 报名学生数 */
+	@ApiModelProperty(value = "未分班学生数",hidden = true)
+	private Integer noClassStudentNum;
+
 	/** 费用 */
 	@ApiModelProperty(value = "费用",required = false)
 	private BigDecimal fee;
@@ -139,10 +143,17 @@ public class MusicGroupSubjectPlan {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
+
+	public Integer getNoClassStudentNum() {
+		return noClassStudentNum;
+	}
+
+	public void setNoClassStudentNum(Integer noClassStudentNum) {
+		this.noClassStudentNum = noClassStudentNum;
+	}
 			
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
-
 }

+ 48 - 3
mec-web/src/main/java/com/ym/mec/web/dal/entity/Organization.java

@@ -4,6 +4,7 @@ import com.ym.mec.web.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -23,10 +24,10 @@ public class Organization {
 	private Integer code;
 	
 	/** 创建时间 */
-	private java.util.Date createTime;
+	private Date createTime;
 	
 	/** 修改时间 */
-	private java.util.Date updateTime;
+	private Date updateTime;
 	
 	/** 是否删除  -1:已删除  0:正常 */
 	@ApiModelProperty(value = "是否删除  1:已删除  0:正常",required = false)
@@ -36,6 +37,18 @@ public class Organization {
 	@ApiModelProperty(value = "父节点编号",required = false)
 	private Integer parentOrganId;
 
+	@ApiModelProperty(value = "成立日期",required = false)
+	private Date registerDate;
+
+	@ApiModelProperty(value = "联系人",required = false)
+	private String linkman;
+
+	@ApiModelProperty(value = "联系方式",required = false)
+	private String mobile;
+
+	@ApiModelProperty(value = "地址",required = false)
+	private String address;
+
 	@ApiModelProperty(value = "子节点列表",required = false)
 	private List<Organization> organizations;
 
@@ -102,7 +115,39 @@ public class Organization {
 	public Integer getParentOrganId(){
 		return this.parentOrganId;
 	}
-			
+
+	public Date getRegisterDate() {
+		return registerDate;
+	}
+
+	public void setRegisterDate(Date registerDate) {
+		this.registerDate = registerDate;
+	}
+
+	public String getLinkman() {
+		return linkman;
+	}
+
+	public void setLinkman(String linkman) {
+		this.linkman = linkman;
+	}
+
+	public String getMobile() {
+		return mobile;
+	}
+
+	public void setMobile(String mobile) {
+		this.mobile = mobile;
+	}
+
+	public String getAddress() {
+		return address;
+	}
+
+	public void setAddress(String address) {
+		this.address = address;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 0 - 12
mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentAttendance.java

@@ -16,10 +16,6 @@ public class StudentAttendance {
 	@ApiModelProperty(value = "乐团",required = false)
 	private Integer musicGroupId;
 	
-	/** 科目 */
-	@ApiModelProperty(value = "科目",required = false)
-	private Integer subjectId;
-	
 	/** 班级 */
 	@ApiModelProperty(value = "班级",required = false)
 	private Integer classGroupId;
@@ -63,14 +59,6 @@ public class StudentAttendance {
 		return this.musicGroupId;
 	}
 			
-	public void setSubjectId(Integer subjectId){
-		this.subjectId = subjectId;
-	}
-	
-	public Integer getSubjectId(){
-		return this.subjectId;
-	}
-			
 	public void setClassGroupId(Integer classGroupId){
 		this.classGroupId = classGroupId;
 	}

+ 48 - 2
mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentCourseHomework.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -9,6 +11,9 @@ public class StudentCourseHomework {
 
 	/**  */
 	private Long id;
+
+	@ApiModelProperty(value = "学生ID",required = false)
+	private Long userId;
 	
 	/**  */
 	private Long courseHomeworkId;
@@ -24,7 +29,40 @@ public class StudentCourseHomework {
 	
 	/**  */
 	private java.util.Date updateTime;
-	
+
+	@ApiModelProperty(value = "备注",required = false)
+	private String remark;
+
+	@ApiModelProperty(value = "提交状态",required = false)
+	private YesOrNoEnum status;
+
+	@ApiModelProperty(value = "是否已经回复",required = false)
+	private YesOrNoEnum isReplied;
+
+	public YesOrNoEnum getIsReplied() {
+		return isReplied;
+	}
+
+	public void setIsReplied(YesOrNoEnum isReplied) {
+		this.isReplied = isReplied;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public YesOrNoEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(YesOrNoEnum status) {
+		this.status = status;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}
@@ -32,7 +70,15 @@ public class StudentCourseHomework {
 	public Long getId(){
 		return this.id;
 	}
-			
+
+	public Long getUserId() {
+		return userId;
+	}
+
+	public void setUserId(Long userId) {
+		this.userId = userId;
+	}
+
 	public void setCourseHomeworkId(Long courseHomeworkId){
 		this.courseHomeworkId = courseHomeworkId;
 	}

+ 86 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentCourseHomeworkReply.java

@@ -0,0 +1,86 @@
+package com.ym.mec.web.dal.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(student_course_homework_reply):
+ */
+public class StudentCourseHomeworkReply {
+
+	/**  */
+	private Long id;
+	
+	/** 作业编号 */
+	@ApiModelProperty(value = "作业编号",required = true)
+	private Long studentCourseHomeworkId;
+	
+	/** 留言人编号 */
+	@ApiModelProperty(value = "留言人编号",required = true)
+	private Integer userId;
+	
+	/** 留言内容 */
+	@ApiModelProperty(value = "留言内容",required = true)
+	private String content;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/** 父级编号 */
+	@ApiModelProperty(value = "父级编号",required = true)
+	private Long parentId;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setStudentCourseHomeworkId(Long studentCourseHomeworkId){
+		this.studentCourseHomeworkId = studentCourseHomeworkId;
+	}
+	
+	public Long getStudentCourseHomeworkId(){
+		return this.studentCourseHomeworkId;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setContent(String content){
+		this.content = content;
+	}
+	
+	public String getContent(){
+		return this.content;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setParentId(Long parentId){
+		this.parentId = parentId;
+	}
+	
+	public Long getParentId(){
+		return this.parentId;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/StudentRegistration.java

@@ -16,6 +16,9 @@ public class StudentRegistration {
 	/**  */
 	@ApiModelProperty(value = "学生编号",required = false)
 	private Integer userId;
+
+	@ApiModelProperty(value = "学生姓名",required = true)
+	private String name;
 	
 	/** 所属乐团(对应 music_group 表id) */
 	@ApiModelProperty(value = "所属乐团(对应 music_group 表id)",required = false)
@@ -70,6 +73,9 @@ public class StudentRegistration {
 	/** 缴费状态(1-已缴费 0-未交费) */
 	@ApiModelProperty(value = "缴费状态(1-已缴费 0-未交费)",required = false)
 	private YesOrNoEnum paymentStatus;
+
+	@ApiModelProperty(value = "班级id",hidden = true)
+	private Integer ClassGroupId;
 	
 	/** 最后缴费日期 */
 	@ApiModelProperty(value = "最后缴费日期",required = false)
@@ -222,6 +228,22 @@ public class StudentRegistration {
 	public java.util.Date getNextPaymentDate(){
 		return this.nextPaymentDate;
 	}
+
+	public Integer getClassGroupId() {
+		return ClassGroupId;
+	}
+
+	public void setClassGroupId(Integer classGroupId) {
+		ClassGroupId = classGroupId;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
 			
 	@Override
 	public String toString() {

+ 98 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/SysArea.java

@@ -0,0 +1,98 @@
+package com.ym.mec.web.dal.entity;
+
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(sys_area):
+ */
+public class SysArea {
+
+	/**  */
+	private Integer id;
+	
+	/** 名称 */
+	@ApiModelProperty(value = "名称",required = false)
+	private String name;
+	
+	/** 编码 */
+	@ApiModelProperty(value = "编码",required = false)
+	private Integer code;
+	
+	/** 创建时间 */
+	private java.util.Date createTime;
+	
+	/** 修改时间 */
+	private java.util.Date updateTime;
+	
+	/** 是否删除  -1:已删除  0:正常 */
+	@ApiModelProperty(value = "是否删除",required = false)
+	private YesOrNoEnum delFlag;
+	
+	/** 父节点编号 */
+	@ApiModelProperty(value = "父节点编号",required = false)
+	private Integer parentOrganId;
+	
+	public void setId(Integer id){
+		this.id = id;
+	}
+	
+	public Integer getId(){
+		return this.id;
+	}
+			
+	public void setName(String name){
+		this.name = name;
+	}
+	
+	public String getName(){
+		return this.name;
+	}
+			
+	public void setCode(Integer code){
+		this.code = code;
+	}
+	
+	public Integer getCode(){
+		return this.code;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	public void setDelFlag(YesOrNoEnum delFlag){
+		this.delFlag = delFlag;
+	}
+	
+	public YesOrNoEnum getDelFlag(){
+		return this.delFlag;
+	}
+			
+	public void setParentOrganId(Integer parentOrganId){
+		this.parentOrganId = parentOrganId;
+	}
+	
+	public Integer getParentOrganId(){
+		return this.parentOrganId;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 0 - 13
mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherAttendance.java

@@ -1,7 +1,6 @@
 package com.ym.mec.web.dal.entity;
 
 import com.ym.mec.web.dal.enums.SignStatusEnum;
-import com.ym.mec.web.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -24,10 +23,6 @@ public class TeacherAttendance {
 	private Long musicGroupId;
 	
 	/**  */
-	@ApiModelProperty(value = "科目编号",required = false)
-	private Long subjectId;
-	
-	/**  */
 	@ApiModelProperty(value = "班级编号",required = false)
 	private Long classGroupId;
 	
@@ -74,14 +69,6 @@ public class TeacherAttendance {
 		this.musicGroupId = musicGroupId;
 	}
 
-	public Long getSubjectId() {
-		return subjectId;
-	}
-
-	public void setSubjectId(Long subjectId) {
-		this.subjectId = subjectId;
-	}
-
 	public Long getClassGroupId() {
 		return classGroupId;
 	}

+ 103 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherDefaultMusicGroupSalary.java

@@ -0,0 +1,103 @@
+package com.ym.mec.web.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(teacher_default_music_group_salary):
+ */
+public class TeacherDefaultMusicGroupSalary {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Integer userId;
+	
+	/** 班级类型(参照 class_group表的type_字段) */
+	private String classGroupType;
+	
+	/**  */
+	private Integer subjectId;
+	
+	/** 主教薪酬 */
+	private long mainTeacherSalary;
+	
+	/** 助教薪酬 */
+	private long assistantTeacherSalary;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setClassGroupType(String classGroupType){
+		this.classGroupType = classGroupType;
+	}
+	
+	public String getClassGroupType(){
+		return this.classGroupType;
+	}
+			
+	public void setSubjectId(Integer subjectId){
+		this.subjectId = subjectId;
+	}
+	
+	public Integer getSubjectId(){
+		return this.subjectId;
+	}
+			
+	public void setMainTeacherSalary(long mainTeacherSalary){
+		this.mainTeacherSalary = mainTeacherSalary;
+	}
+	
+	public long getMainTeacherSalary(){
+		return this.mainTeacherSalary;
+	}
+			
+	public void setAssistantTeacherSalary(long assistantTeacherSalary){
+		this.assistantTeacherSalary = assistantTeacherSalary;
+	}
+	
+	public long getAssistantTeacherSalary(){
+		return this.assistantTeacherSalary;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setUpdateTime(java.util.Date updateTime){
+		this.updateTime = updateTime;
+	}
+	
+	public java.util.Date getUpdateTime(){
+		return this.updateTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 0 - 76
mec-web/src/main/java/com/ym/mec/web/dal/entity/TeacherSalary.java

@@ -1,76 +0,0 @@
-package com.ym.mec.web.dal.entity;
-
-import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
-
-import java.math.BigDecimal;
-
-/**
- * 对应数据库表(teacher_salary):
- */
-public class TeacherSalary {
-
-	/**  */
-	private Long id;
-	
-	/**  */
-	@ApiModelProperty(value = "学员编号",required = false)
-	private Integer userId;
-	
-	/**  */
-	@ApiModelProperty(value = "科目编号",required = false)
-	private Integer subjectId;
-	
-	/** 课酬 */
-	@ApiModelProperty(value = "课酬",required = false)
-	private BigDecimal salary;
-	
-	/**  */
-	private java.util.Date createTime;
-	
-	public void setId(Long id){
-		this.id = id;
-	}
-	
-	public Long getId(){
-		return this.id;
-	}
-			
-	public void setUserId(Integer userId){
-		this.userId = userId;
-	}
-	
-	public Integer getUserId(){
-		return this.userId;
-	}
-			
-	public void setSubjectId(Integer subjectId){
-		this.subjectId = subjectId;
-	}
-	
-	public Integer getSubjectId(){
-		return this.subjectId;
-	}
-
-	public BigDecimal getSalary() {
-		return salary;
-	}
-
-	public void setSalary(BigDecimal salary) {
-		this.salary = salary;
-	}
-
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
-	}
-
-}

+ 33 - 0
mec-web/src/main/java/com/ym/mec/web/dal/page/CourseHomeWorkTemplateQueryInfo.java

@@ -0,0 +1,33 @@
+package com.ym.mec.web.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+public class CourseHomeWorkTemplateQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "科目ID集合",required = false)
+    private String[] subjectIDs;
+
+    @ApiModelProperty(value = "课程计划ID",required = false)
+    private Long courseScheduleID;
+
+    public String[] getSubjectIDs() {
+        return subjectIDs;
+    }
+
+    public void setSubjectIDs(String[] subjectIDs) {
+        this.subjectIDs = subjectIDs;
+    }
+
+    public Long getCourseScheduleID() {
+        return courseScheduleID;
+    }
+
+    public void setCourseScheduleID(Long courseScheduleID) {
+        this.courseScheduleID = courseScheduleID;
+    }
+}

+ 57 - 0
mec-web/src/main/java/com/ym/mec/web/dal/page/CourseHomeworkQueryInfo.java

@@ -0,0 +1,57 @@
+package com.ym.mec.web.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/18
+ */
+public class CourseHomeworkQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "作业发布时间",required = false)
+    private java.util.Date createTime;
+
+    @ApiModelProperty(value = "乐团ID",required = false)
+    private Long musicGroupId;
+
+    @ApiModelProperty(value = "班级ID",required = false)
+    private Long classGroupId;
+
+    @ApiModelProperty(value = "用户ID",required = false)
+    private Long userId;
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Long getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(Long musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Long getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Long classGroupId) {
+        this.classGroupId = classGroupId;
+    }
+
+    public Long getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Long userId) {
+        this.userId = userId;
+    }
+}

+ 2 - 2
mec-web/src/main/java/com/ym/mec/web/dal/page/GoodsCategoryQueryInfo.java

@@ -7,10 +7,10 @@ import io.swagger.annotations.ApiModelProperty;
 public class GoodsCategoryQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "上级分类")
-    private Integer parentId;
+    private Integer parentId = 0;
 
     @ApiModelProperty(value = "状态(1,可见  0,不可见)")
-    private YesOrNoEnum status;
+    private YesOrNoEnum status = YesOrNoEnum.YES;
 
     public Integer getParentId() {
         return parentId;

+ 33 - 0
mec-web/src/main/java/com/ym/mec/web/dal/page/StudentCourseHomeworkReplyQueryInfo.java

@@ -0,0 +1,33 @@
+package com.ym.mec.web.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/19
+ */
+public class StudentCourseHomeworkReplyQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "学生作业ID",required = true)
+    private Long studentCourseHomeworkId;
+
+    @ApiModelProperty(value = "父级评论ID")
+    private Long parentID;
+
+    public Long getStudentCourseHomeworkId() {
+        return studentCourseHomeworkId;
+    }
+
+    public void setStudentCourseHomeworkId(Long studentCourseHomeworkId) {
+        this.studentCourseHomeworkId = studentCourseHomeworkId;
+    }
+
+    public Long getParentID() {
+        return parentID;
+    }
+
+    public void setParentID(Long parentID) {
+        this.parentID = parentID;
+    }
+}

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/service/ClassGroupRelationService.java

@@ -2,7 +2,18 @@ package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.ClassGroupRelation;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ClassGroupRelationService extends BaseService<Integer, ClassGroupRelation> {
 
+
+    /**
+     * 批量插入班级关联关系
+     * @param classGroupRelationList
+     * @return
+     */
+    int classGroupRelationsInsert(List<ClassGroupRelation> classGroupRelationList);
+
 }

+ 47 - 1
mec-web/src/main/java/com/ym/mec/web/service/ClassGroupService.java

@@ -2,6 +2,8 @@ package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.ClassGroup;
+import com.ym.mec.web.dal.entity.ClassGroupRelation;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -9,6 +11,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
 
     /**
      * 查询老师乐团课课程
+     *
      * @param teacherId
      * @return
      */
@@ -16,9 +19,52 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
 
     /**
      * 合奏班相关班级获取
+     *
      * @param mixClassGroupId
      * @return
      */
-    List<ClassGroup> findClassGroup(Integer musicGroupId,Integer mixClassGroupId);
+    List<ClassGroup> findClassGroup(Integer musicGroupId, Integer mixClassGroupId);
+
+    /**
+     * 根据乐团编号查询单技班列表
+     *
+     * @param musicGroupId
+     * @return
+     */
+    List<ClassGroup> findAllNormalClassGroupByMusicGroupId(int musicGroupId);
+
+
+    /**
+     * 根据乐团编号查询合奏班列表
+     *
+     * @param musicGroupId
+     * @return
+     */
+    List<ClassGroup> findAllMixClassGroupByMusicGroupId(int musicGroupId);
+
+    /**
+     * 添加单技班
+     *
+     * @param classGroup
+     * @return
+     */
+    ClassGroup addClassGroup(ClassGroup classGroup) throws Exception;
+
+    /**
+     * 添加合奏班
+     *
+     * @param classGroupIds
+     * @return
+     * @throws Exception
+     */
+    ClassGroup addMixClassGroup(int musicGroupId, String name, String classGroupIds) throws Exception;
+
+    /**
+     * 跟班级ids查询班级信息
+     *
+     * @param ids
+     * @return
+     */
+    List<ClassGroup> findClassGroupByIds(String ids);
 
 }

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/service/ClassGroupStudentMapperService.java

@@ -2,7 +2,17 @@ package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.ClassGroupStudentMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface ClassGroupStudentMapperService extends BaseService<Long, ClassGroupStudentMapper> {
 
+    /**
+     * 批量插入班级关联的学生
+     * @param classGroupStudentMapperList
+     * @return
+     */
+    int classGroupStudentsInsert(@Param("classGroupStudentMapperList") List<ClassGroupStudentMapper> classGroupStudentMapperList);
+
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/service/ClassGroupTeacherMapperService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.web.service;
+
+import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.entity.ClassGroupTeacherMapper;
+
+public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassGroupTeacherMapper> {
+
+}

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/service/GoodsCategoryService.java

@@ -5,4 +5,15 @@ import com.ym.mec.web.dal.entity.GoodsCategory;
 
 public interface GoodsCategoryService extends BaseService<Integer, GoodsCategory> {
 
+    /**
+     * 新政商品类型
+     * @param goodsCategory
+     */
+    void add(GoodsCategory goodsCategory);
+
+    /**
+     * 新增、修改商品类型
+     * @param goodsCategory
+     */
+    void upsetGoodsCategory(GoodsCategory goodsCategory);
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/service/LeaveCategoryService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.web.service;
+
+import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.entity.LeaveCategory;
+
+public interface LeaveCategoryService extends BaseService<Integer, LeaveCategory> {
+
+}

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/service/MusicGroupSubjectPlanService.java

@@ -2,7 +2,17 @@ package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.entity.MusicGroupSubjectPlan;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface MusicGroupSubjectPlanService extends BaseService<Integer, MusicGroupSubjectPlan> {
 
+    /**
+     * 获取乐团声部招生计划
+     * @param musicGroupId
+     * @return
+     */
+    List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(@Param("musicGroupId") int musicGroupId);
+
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/service/StudentCourseHomeworkReplyService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.web.service;
+
+import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.entity.StudentCourseHomeworkReply;
+
+public interface StudentCourseHomeworkReplyService extends BaseService<Long, StudentCourseHomeworkReply> {
+
+}

+ 10 - 0
mec-web/src/main/java/com/ym/mec/web/service/StudentCourseHomeworkService.java

@@ -1,8 +1,18 @@
 package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.dto.CourseHomeworkStudentDetailDto;
 import com.ym.mec.web.dal.entity.StudentCourseHomework;
 
+import java.io.IOException;
+
 public interface StudentCourseHomeworkService extends BaseService<Long, StudentCourseHomework> {
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/18
+     * 获取学生作业界面详细信息
+     */
+    CourseHomeworkStudentDetailDto findCourseHomeworkStudentDetail(Long courseScheduleID) throws IOException;
+
 }

+ 19 - 0
mec-web/src/main/java/com/ym/mec/web/service/StudentRegistrationService.java

@@ -7,6 +7,7 @@ import com.ym.mec.web.dal.entity.StudentRegistration;
 import com.ym.mec.web.dal.page.StudentApplyDetailQueryInfo;
 import com.ym.mec.web.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.web.dal.dto.StudentApplyDetailDto;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.HashMap;
 import java.util.List;
@@ -35,4 +36,22 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      * @return
      */
     StudentFeeDto queryFeeDetail(Integer studentId,String musicGroupId);
+
+    /**
+     * 获取未分配的班级的学生
+     * @param musicGroupId 乐团id
+     * @param actualSubjectId 科目id
+     * @return
+     */
+    List<StudentRegistration> getNoClassStuBySubjectId(Integer musicGroupId, Integer actualSubjectId);
+
+    /**
+     * 获取乐团声部未分配学生统计
+     * @param musicGroupId
+     * @param actualSubjectId
+     * @return
+     */
+    Integer getNoClassStuCountBySubjectId(@Param("musicGroupId") Integer musicGroupId, @Param("actualSubjectId") Integer actualSubjectId);
+
+
 }

+ 6 - 14
mec-web/src/main/java/com/ym/mec/web/service/SubjectService.java

@@ -19,20 +19,6 @@ public interface SubjectService extends BaseService<Integer, Subject> {
     List<Subject> findSubByMusicGroupId(Integer musicGroupId);
 
     /**
-     * 通过乐团收费方式,获取默认的声部列表
-     * @param chargeTypeId
-     * @return
-     */
-    List<Subject> findSubByChargeType(Integer chargeTypeId);
-
-    /**
-     * 根据科目code查科目
-     * @param code
-     * @return
-     */
-    Subject findByCode(@Param("code") String code);
-
-    /**
      * 分页查询科目树状列表
      * @param queryInfo
      * @return
@@ -52,4 +38,10 @@ public interface SubjectService extends BaseService<Integer, Subject> {
      * @return
      */
     List<SubjectApplyDetailDto> findSubApplyDetail(Integer musicGroupId);
+
+    /**
+     * 修改、新增科目树状列表
+     * @param subject
+     */
+    void upSetSubject(Subject subject);
 }

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/service/SysAreaService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.web.service;
+
+import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.entity.SysArea;
+
+public interface SysAreaService extends BaseService<Integer, SysArea> {
+
+}

+ 2 - 1
mec-web/src/main/java/com/ym/mec/web/service/TeacherAttendanceService.java

@@ -2,6 +2,7 @@ package com.ym.mec.web.service;
 
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.dto.TeacherSignOutDto;
 import com.ym.mec.web.dal.entity.TeacherAttendance;
 import com.ym.mec.web.dal.page.TeacherAttendanceQueryInfo;
 
@@ -12,7 +13,7 @@ public interface TeacherAttendanceService extends BaseService<Long, TeacherAtten
      * @Date: 2019/9/10
      * 添加教师签到记录
      */
-    void addTeacherAttendanceRecord(TeacherAttendance teacherAttendance);
+    void addTeacherAttendanceRecord(TeacherSignOutDto teacherSignOutDto);
 
     /**
      * 获取教师个人的签到记录

+ 0 - 8
mec-web/src/main/java/com/ym/mec/web/service/TeacherClassFeeService.java

@@ -1,8 +0,0 @@
-package com.ym.mec.web.service;
-
-import com.ym.mec.common.service.BaseService;
-import com.ym.mec.web.dal.entity.TeacherClassFee;
-
-public interface TeacherClassFeeService extends BaseService<Long, TeacherClassFee> {
-
-}

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/service/TeacherDefaultMusicGroupSalaryService.java

@@ -0,0 +1,8 @@
+package com.ym.mec.web.service;
+
+import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.entity.TeacherDefaultMusicGroupSalary;
+
+public interface TeacherDefaultMusicGroupSalaryService extends BaseService<Long, TeacherDefaultMusicGroupSalary> {
+
+}

+ 0 - 8
mec-web/src/main/java/com/ym/mec/web/service/TeacherSalaryService.java

@@ -1,8 +0,0 @@
-package com.ym.mec.web.service;
-
-import com.ym.mec.common.service.BaseService;
-import com.ym.mec.web.dal.entity.TeacherSalary;
-
-public interface TeacherSalaryService extends BaseService<Long, TeacherSalary> {
-
-}

+ 7 - 1
mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupRelationServiceImpl.java

@@ -9,6 +9,8 @@ import com.ym.mec.web.dal.dao.ClassGroupRelationDao;
 import com.ym.mec.web.dal.entity.ClassGroupRelation;
 import com.ym.mec.web.service.ClassGroupRelationService;
 
+import java.util.List;
+
 @Service
 public class ClassGroupRelationServiceImpl extends BaseServiceImpl<Integer, ClassGroupRelation>  implements ClassGroupRelationService {
 	
@@ -19,5 +21,9 @@ public class ClassGroupRelationServiceImpl extends BaseServiceImpl<Integer, Clas
 	public BaseDAO<Integer, ClassGroupRelation> getDAO() {
 		return classGroupRelationDao;
 	}
-	
+
+    @Override
+    public int classGroupRelationsInsert(List<ClassGroupRelation> classGroupRelationList) {
+		return classGroupRelationDao.classGroupRelationsInsert(classGroupRelationList);
+    }
 }

+ 116 - 18
mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupServiceImpl.java

@@ -1,5 +1,11 @@
 package com.ym.mec.web.service.impl;
 
+import com.ym.mec.web.dal.entity.ClassGroupRelation;
+import com.ym.mec.web.dal.entity.ClassGroupStudentMapper;
+import com.ym.mec.web.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.web.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.web.service.ClassGroupRelationService;
+import com.ym.mec.web.service.ClassGroupStudentMapperService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -8,31 +14,123 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.web.dal.dao.ClassGroupDao;
 import com.ym.mec.web.dal.entity.ClassGroup;
 import com.ym.mec.web.service.ClassGroupService;
+import org.springframework.transaction.annotation.Transactional;
 
-import java.util.List;
+import java.util.*;
 
 @Service
-public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>  implements ClassGroupService {
-	
-	@Autowired
-	private ClassGroupDao classGroupDao;
+public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
 
-	@Override
-	public BaseDAO<Integer, ClassGroup> getDAO() {
-		return classGroupDao;
-	}
+    @Autowired
+    private ClassGroupDao classGroupDao;
+    @Autowired
+    private ClassGroupRelationService classGroupRelationService;
 
-	@Override
+    @Autowired
+    private ClassGroupStudentMapperService classGroupStudentMapperService;
+
+    @Override
+    public BaseDAO<Integer, ClassGroup> getDAO() {
+        return classGroupDao;
+    }
+
+    @Override
     public List<ClassGroup> findClassGroup4Teacher(Integer teacherId) {
         return classGroupDao.findClassGroup4Teacher(teacherId);
     }
 
-	@Override
-	public List<ClassGroup> findClassGroup(Integer musicGroupId,Integer mixClassGroupId) {
-		if(null==mixClassGroupId){
-			return classGroupDao.findAllMixClassGroup(musicGroupId);
-		}else{
-			return classGroupDao.findMixClassChildClassGroup(mixClassGroupId);
-		}
-	}
+    @Override
+    public List<ClassGroup> findClassGroup(Integer musicGroupId, Integer mixClassGroupId) {
+        if (null == mixClassGroupId) {
+            return classGroupDao.findAllMixClassGroup(musicGroupId);
+        } else {
+            return classGroupDao.findMixClassChildClassGroup(mixClassGroupId);
+        }
+    }
+
+    @Override
+    public List<ClassGroup> findAllNormalClassGroupByMusicGroupId(int musicGroupId) {
+        return classGroupDao.findAllNormalClassGroupByMusicGroupId(musicGroupId);
+    }
+
+    @Override
+    public List<ClassGroup> findAllMixClassGroupByMusicGroupId(int musicGroupId) {
+        List<ClassGroup> allMixClassGroup = classGroupDao.findAllMixClassGroup(musicGroupId);
+        for (ClassGroup mixClassGroup : allMixClassGroup) {
+            mixClassGroup.setClassNames(classGroupDao.findMixClassChildClassGroupNames(mixClassGroup.getId()).getName());
+        }
+        return allMixClassGroup;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public ClassGroup addClassGroup(ClassGroup classGroup) throws Exception {
+        Date date;
+        date = new Date();
+        classGroup.setCreateTime(date);
+        classGroup.setUpdateTime(date);
+        classGroup.setType(ClassGroupTypeEnum.NORMAL);
+        String userIds = classGroup.getUserIds();
+        String[] userIdArr = userIds.split(",");
+
+        classGroup.setStudentNum(userIdArr.length);
+        Long classGroupId = this.insert(classGroup);
+
+        //2、插入班级学生关联关系
+        List<ClassGroupStudentMapper> classGroupStudentList = new ArrayList<>();
+        for (String userId : userIdArr) {
+            ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
+            classGroupStudentMapper.setClassGroupId(classGroupId.intValue());
+            classGroupStudentMapper.setUserId(Integer.getInteger(userId));
+            classGroupStudentMapper.setCreateTime(date);
+            classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
+            classGroupStudentList.add(classGroupStudentMapper);
+        }
+        classGroupStudentMapperService.classGroupStudentsInsert(classGroupStudentList);
+
+        return classGroup;
+    }
+
+    @Override
+	@Transactional(rollbackFor = Exception.class)
+	public ClassGroup addMixClassGroup(int musicGroupId,String name, String classGroupIds) throws Exception {
+        Date date;
+        date = new Date();
+
+        List<ClassGroup> classGroups = findClassGroupByIds(classGroupIds);
+        int studentNum = 0; //学生数
+        String subjectIds = "";
+        for (ClassGroup classGroup : classGroups) {
+            studentNum += classGroup.getStudentNum();
+            subjectIds += subjectIds.isEmpty() ? classGroup.getSubjectIdList() : "," + classGroup.getSubjectIdList();
+        }
+
+        //1、插入班级
+        ClassGroup classGroup = new ClassGroup();
+        classGroup.setMusicGroupId(musicGroupId);
+        classGroup.setSubjectIdList(subjectIds);
+        classGroup.setName(name);
+        classGroup.setType(ClassGroupTypeEnum.MIX);
+        classGroup.setCreateTime(date);
+        classGroup.setUpdateTime(date);
+        Long classGroupId = this.insert(classGroup);
+
+        //2、插入班级关联关系
+        List<ClassGroupRelation> classGroupRelationList = new ArrayList<>();
+        for (ClassGroup cGroup : classGroups) {
+            ClassGroupRelation classGroupRelation = new ClassGroupRelation();
+            classGroupRelation.setClassGroupId(classGroupId.intValue());
+            classGroupRelation.setSubClassGroupId(cGroup.getId());
+            classGroupRelation.setCreateTime(date);
+            classGroupRelationList.add(classGroupRelation);
+        }
+		classGroupRelationService.classGroupRelationsInsert(classGroupRelationList);
+        return classGroup;
+    }
+
+    @Override
+    public List<ClassGroup> findClassGroupByIds(String ids) {
+        return classGroupDao.findClassGroupByIds(ids);
+    }
+
 }

+ 7 - 1
mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -9,6 +9,8 @@ import com.ym.mec.web.dal.dao.ClassGroupStudentMapperDao;
 import com.ym.mec.web.dal.entity.ClassGroupStudentMapper;
 import com.ym.mec.web.service.ClassGroupStudentMapperService;
 
+import java.util.List;
+
 @Service
 public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, ClassGroupStudentMapper>  implements ClassGroupStudentMapperService {
 	
@@ -19,5 +21,9 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 	public BaseDAO<Long, ClassGroupStudentMapper> getDAO() {
 		return classGroupStudentMapperDao;
 	}
-	
+
+    @Override
+    public int classGroupStudentsInsert(List<ClassGroupStudentMapper> classGroupStudentMapperList) {
+		return classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
+    }
 }

+ 23 - 0
mec-web/src/main/java/com/ym/mec/web/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -0,0 +1,23 @@
+package com.ym.mec.web.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.web.dal.dao.ClassGroupTeacherMapperDao;
+import com.ym.mec.web.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.web.service.ClassGroupTeacherMapperService;
+
+@Service
+public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, ClassGroupTeacherMapper>  implements ClassGroupTeacherMapperService {
+	
+	@Autowired
+	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+
+	@Override
+	public BaseDAO<Long, ClassGroupTeacherMapper> getDAO() {
+		return classGroupTeacherMapperDao;
+	}
+	
+}

+ 12 - 1
mec-web/src/main/java/com/ym/mec/web/service/impl/CourseHomeworkTemplateServiceImpl.java

@@ -1,5 +1,8 @@
 package com.ym.mec.web.service.impl;
 
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.web.dal.page.CourseHomeWorkTemplateQueryInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -19,5 +22,13 @@ public class CourseHomeworkTemplateServiceImpl extends BaseServiceImpl<Integer,
 	public BaseDAO<Integer, CourseHomeworkTemplate> getDAO() {
 		return courseHomeworkTemplateDao;
 	}
-	
+
+	@Override
+	public PageInfo<CourseHomeworkTemplate> queryPage(QueryInfo queryInfo) {
+		CourseHomeWorkTemplateQueryInfo templateQueryInfo= (CourseHomeWorkTemplateQueryInfo) queryInfo;
+		if(null!=templateQueryInfo.getCourseScheduleID()){
+			templateQueryInfo.setSubjectIDs(courseHomeworkTemplateDao.getSubjectIDs(templateQueryInfo.getCourseScheduleID()).split(","));
+		}
+		return super.queryPage(templateQueryInfo);
+	}
 }

+ 39 - 4
mec-web/src/main/java/com/ym/mec/web/service/impl/GoodsCategoryServiceImpl.java

@@ -1,13 +1,16 @@
 package com.ym.mec.web.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.web.dal.dao.GoodsCategoryDao;
 import com.ym.mec.web.dal.entity.GoodsCategory;
 import com.ym.mec.web.service.GoodsCategoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.Date;
+import java.util.List;
 
 @Service
 public class GoodsCategoryServiceImpl extends BaseServiceImpl<Integer, GoodsCategory>  implements GoodsCategoryService {
@@ -19,5 +22,37 @@ public class GoodsCategoryServiceImpl extends BaseServiceImpl<Integer, GoodsCate
 	public BaseDAO<Integer, GoodsCategory> getDAO() {
 		return goodsCategoryDao;
 	}
-	
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void add(GoodsCategory goodsCategory) {
+		goodsCategoryDao.insert(goodsCategory);
+		List<GoodsCategory> goodsCategories = goodsCategory.getGoodsCategories();
+		goodsCategories.forEach(e->{
+			e.setParentId(goodsCategory.getId());
+			goodsCategoryDao.insert(e);
+		});
+	}
+
+	@Override
+	public void upsetGoodsCategory(GoodsCategory goodsCategory) {
+		Integer parentId = upset(goodsCategory, null);
+		List<GoodsCategory> goodsCategories = goodsCategory.getGoodsCategories();
+		goodsCategories.forEach(e->{
+			upset(e, parentId);
+		});
+	}
+
+	private Integer upset(GoodsCategory goodsCategory, Integer parentId){
+		if(parentId != null){
+			goodsCategory.setParentId(parentId);
+		}
+		if(goodsCategory.getId() != null){
+			goodsCategory.setUpdateTime(new Date());
+			goodsCategoryDao.update(goodsCategory);
+		}else {
+			goodsCategoryDao.insert(goodsCategory);
+		}
+		return goodsCategory.getId();
+	}
 }

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/service/impl/LeaveCategoryServiceImpl.java

@@ -0,0 +1,22 @@
+package com.ym.mec.web.service.impl;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.web.dal.dao.LeaveCategoryDao;
+import com.ym.mec.web.dal.entity.LeaveCategory;
+import com.ym.mec.web.service.LeaveCategoryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LeaveCategoryServiceImpl extends BaseServiceImpl<Integer, LeaveCategory> implements LeaveCategoryService {
+	
+	@Autowired
+	private LeaveCategoryDao leaveCategoryDao;
+
+	@Override
+	public BaseDAO<Integer, LeaveCategory> getDAO() {
+		return leaveCategoryDao;
+	}
+	
+}

+ 26 - 10
mec-web/src/main/java/com/ym/mec/web/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.service.impl;
 
+import com.ym.mec.web.dal.entity.StudentRegistration;
+import com.ym.mec.web.service.StudentRegistrationService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -9,15 +11,29 @@ import com.ym.mec.web.dal.dao.MusicGroupSubjectPlanDao;
 import com.ym.mec.web.dal.entity.MusicGroupSubjectPlan;
 import com.ym.mec.web.service.MusicGroupSubjectPlanService;
 
+import java.util.List;
+
 @Service
-public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, MusicGroupSubjectPlan>  implements MusicGroupSubjectPlanService {
-	
-	@Autowired
-	private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
-
-	@Override
-	public BaseDAO<Integer, MusicGroupSubjectPlan> getDAO() {
-		return musicGroupSubjectPlanDao;
-	}
-	
+public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, MusicGroupSubjectPlan> implements MusicGroupSubjectPlanService {
+
+    @Autowired
+    private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
+
+    @Autowired
+	private StudentRegistrationService studentRegistrationService;
+
+    @Override
+    public BaseDAO<Integer, MusicGroupSubjectPlan> getDAO() {
+        return musicGroupSubjectPlanDao;
+    }
+
+    @Override
+    public List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(int musicGroupId) {
+        List<MusicGroupSubjectPlan> musicSubjectClassPlans = musicGroupSubjectPlanDao.getMusicSubjectClassPlan(musicGroupId);
+        for (MusicGroupSubjectPlan musicSubjectClassPlan : musicSubjectClassPlans) {
+			Integer noClassStuCount = studentRegistrationService.getNoClassStuCountBySubjectId(musicGroupId, musicSubjectClassPlan.getSubjectId());
+			musicSubjectClassPlan.setNoClassStudentNum(noClassStuCount);
+		}
+        return musicSubjectClassPlans;
+    }
 }

+ 84 - 0
mec-web/src/main/java/com/ym/mec/web/service/impl/StudentCourseHomeworkReplyServiceImpl.java

@@ -0,0 +1,84 @@
+package com.ym.mec.web.service.impl;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.web.dal.dao.StudentCourseHomeworkReplyDao;
+import com.ym.mec.web.dal.dto.StudentCourseHomeworkCommentDto;
+import com.ym.mec.web.dal.entity.StudentCourseHomeworkReply;
+import com.ym.mec.web.dal.page.StudentCourseHomeworkReplyQueryInfo;
+import com.ym.mec.web.service.StudentCourseHomeworkReplyService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Service
+public class StudentCourseHomeworkReplyServiceImpl extends BaseServiceImpl<Long, StudentCourseHomeworkReply> implements StudentCourseHomeworkReplyService {
+	
+	@Autowired
+	private StudentCourseHomeworkReplyDao studentCourseHomeworkReplyDao;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@Override
+	public BaseDAO<Long, StudentCourseHomeworkReply> getDAO() {
+		return studentCourseHomeworkReplyDao;
+	}
+
+	@Override
+	public long insert(StudentCourseHomeworkReply bean) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		bean.setUserId(user.getId());
+		return super.insert(bean);
+	}
+
+	@Override
+	public PageInfo queryPage(QueryInfo queryInfo) {
+		StudentCourseHomeworkReplyQueryInfo studentCourseHomeworkReplyQueryInfo= (StudentCourseHomeworkReplyQueryInfo) queryInfo;
+		studentCourseHomeworkReplyQueryInfo.setParentID(null);
+		PageInfo studentCourseHomeworkReplyPageInfo = super.queryPage(studentCourseHomeworkReplyQueryInfo);
+		for(Object temp:studentCourseHomeworkReplyPageInfo.getRows()){
+			studentCourseHomeworkReplyQueryInfo.setParentID(((StudentCourseHomeworkCommentDto)temp).getReplyId());
+			getTree((StudentCourseHomeworkCommentDto) temp,studentCourseHomeworkReplyQueryInfo);
+		}
+		return studentCourseHomeworkReplyPageInfo;
+	}
+
+	@Override
+	public int delete(Long id) {
+		StudentCourseHomeworkReply studentCourseHomeworkReply = super.get(id);
+		List<Long> ids=new ArrayList<>();
+		ids.add(id);
+		List<StudentCourseHomeworkReply> allReplyByStudentCourseHomeworkID = studentCourseHomeworkReplyDao.findAllReplyByStudentCourseHomeworkID(studentCourseHomeworkReply.getStudentCourseHomeworkId());
+		findAllChildID(id,allReplyByStudentCourseHomeworkID,ids);
+		return studentCourseHomeworkReplyDao.batchDeleteReplys(ids);
+	}
+
+	private void findAllChildID(Long parentID,List<StudentCourseHomeworkReply> datas,List<Long> results){
+		for(StudentCourseHomeworkReply data:datas){
+			if(parentID.equals(data.getParentId())){
+				results.add(data.getId());
+				findAllChildID(data.getId(),datas,results);
+			}
+		}
+	}
+
+	private StudentCourseHomeworkCommentDto getTree(StudentCourseHomeworkCommentDto studentCourseHomeworkCommentDto, StudentCourseHomeworkReplyQueryInfo queryInfo){
+		PageInfo pageInfo = super.queryPage(queryInfo);
+		if(pageInfo != null && pageInfo.getRows().size() > 0) {
+			studentCourseHomeworkCommentDto.setReplys(pageInfo.getRows());
+			for (Object  object: pageInfo.getRows()) {
+				queryInfo.setParentID(((StudentCourseHomeworkCommentDto)object).getReplyId());
+				getTree((StudentCourseHomeworkCommentDto) object,queryInfo);
+			}
+		}
+		return studentCourseHomeworkCommentDto;
+	}
+
+}

+ 48 - 4
mec-web/src/main/java/com/ym/mec/web/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -1,23 +1,67 @@
 package com.ym.mec.web.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.web.dal.dao.StudentCourseHomeworkDao;
+import com.ym.mec.web.dal.dto.CourseHomeworkStudentDetailDto;
+import com.ym.mec.web.dal.entity.CourseHomework;
 import com.ym.mec.web.dal.entity.StudentCourseHomework;
+import com.ym.mec.web.dal.page.CourseHomeworkQueryInfo;
+import com.ym.mec.web.service.CourseHomeworkService;
 import com.ym.mec.web.service.StudentCourseHomeworkService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.io.IOException;
 
 @Service
 public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, StudentCourseHomework>  implements StudentCourseHomeworkService {
 	
 	@Autowired
 	private StudentCourseHomeworkDao studentCourseHomeworkDao;
+	@Autowired
+	private CourseHomeworkService courseHomeworkService;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	private String url = "http://auth-server/queryUserInfo";
 
 	@Override
 	public BaseDAO<Long, StudentCourseHomework> getDAO() {
 		return studentCourseHomeworkDao;
 	}
-	
+
+	@Transactional(rollbackFor = Exception.class)
+	@Override
+	public long insert(StudentCourseHomework bean) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		bean.setUserId(Long.valueOf(user.getId()));
+		long insert = super.insert(bean);
+
+		CourseHomework courseHomework=new CourseHomework();
+		courseHomework.setId(bean.getCourseHomeworkId());
+		courseHomework.setCompletedNum(studentCourseHomeworkDao.countCompletedStudentNum(bean.getCourseHomeworkId()));
+		courseHomeworkService.update(courseHomework);
+		return insert;
+	}
+
+	@Override
+	public CourseHomeworkStudentDetailDto findCourseHomeworkStudentDetail(Long courseScheduleID) throws IOException {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		return studentCourseHomeworkDao.findCourseHomeworkStudentDetail(courseScheduleID,Long.valueOf(user.getId()));
+	}
+
+	@Override
+	public PageInfo<StudentCourseHomework> queryPage(QueryInfo queryInfo) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		CourseHomeworkQueryInfo courseHomeworkQueryInfo= (CourseHomeworkQueryInfo) queryInfo;
+		courseHomeworkQueryInfo.setUserId(Long.valueOf(user.getId()));
+		return super.queryPage(queryInfo);
+	}
 }

+ 55 - 45
mec-web/src/main/java/com/ym/mec/web/service/impl/StudentRegistrationServiceImpl.java

@@ -17,55 +17,65 @@ import org.springframework.stereotype.Service;
 import java.util.*;
 
 @Service
-public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration>  implements StudentRegistrationService {
-	
-	@Autowired
-	private StudentRegistrationDao studentRegistrationDao;
+public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
 
-	@Override
-	public BaseDAO<Long, StudentRegistration> getDAO() {
-		return studentRegistrationDao;
-	}
+    @Autowired
+    private StudentRegistrationDao studentRegistrationDao;
 
-	@Override
-	public PageInfo<StudentApplyDetailDto> queryStudentDetailPage(StudentRegistrationQueryInfo queryInfo) {
-		PageInfo<StudentApplyDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<>();
-		MapUtil.populateMap(params, queryInfo);
+    @Override
+    public BaseDAO<Long, StudentRegistration> getDAO() {
+        return studentRegistrationDao;
+    }
 
-		List<StudentApplyDetailDto> dataList = null;
-		int count = studentRegistrationDao.queryStudentDetailCount(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = studentRegistrationDao.queryStudentDetailPage(params);
-		}
-		if (count == 0) {
-			dataList = new ArrayList<>();
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
-	}
+    @Override
+    public PageInfo<StudentApplyDetailDto> queryStudentDetailPage(StudentRegistrationQueryInfo queryInfo) {
+        PageInfo<StudentApplyDetailDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
 
-	@Override
-	public boolean batchUpdateSubject(String userIds, Integer subId) {
-		String[] userId = userIds.split(",");
-		StudentRegistration studentRegistration;
-		Date date = new Date();
-		for (String str:userId) {
-			studentRegistration = studentRegistrationDao.get(Long.parseLong(str));
-			if(studentRegistration.getPaymentStatus()== YesOrNoEnum.NO){
-				studentRegistration.setUpdateTime(date);
-				studentRegistration.setSubjectId(subId);
-				studentRegistrationDao.update(studentRegistration);
-			}
-		}
-		return true;
-	}
+        List<StudentApplyDetailDto> dataList = null;
+        int count = studentRegistrationDao.queryStudentDetailCount(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentRegistrationDao.queryStudentDetailPage(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 
-	@Override
-	public StudentFeeDto queryFeeDetail(Integer studentId,String musicGroupId) {
+    @Override
+    public boolean batchUpdateSubject(String userIds, Integer subId) {
+        String[] userId = userIds.split(",");
+        StudentRegistration studentRegistration;
+        Date date = new Date();
+        for (String str : userId) {
+            studentRegistration = studentRegistrationDao.get(Long.parseLong(str));
+            if (studentRegistration.getPaymentStatus() == YesOrNoEnum.NO) {
+                studentRegistration.setUpdateTime(date);
+                studentRegistration.setSubjectId(subId);
+                studentRegistrationDao.update(studentRegistration);
+            }
+        }
+        return true;
+    }
+
+    @Override
+    public StudentFeeDto queryFeeDetail(Integer studentId, String musicGroupId) {
 //		return studentRegistrationDao.queryFeeDetail(studentId,musicGroupId);
-		return null;
-	}
+        return null;
+    }
+
+    @Override
+    public List<StudentRegistration> getNoClassStuBySubjectId(Integer musicGroupId, Integer actualSubjectId) {
+        return studentRegistrationDao.getNoClassStuBySubjectId(musicGroupId, actualSubjectId);
+    }
+
+    @Override
+    public Integer getNoClassStuCountBySubjectId(Integer musicGroupId, Integer actualSubjectId) {
+        return studentRegistrationDao.getNoClassStuCountBySubjectId(musicGroupId,actualSubjectId);
+    }
 }

+ 25 - 11
mec-web/src/main/java/com/ym/mec/web/service/impl/SubjectServiceImpl.java

@@ -13,8 +13,8 @@ import com.ym.mec.web.service.SubjectService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
-import java.util.stream.Collectors;
 
 @Service
 public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  implements SubjectService {
@@ -35,16 +35,6 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
 	}
 
 	@Override
-	public List<Subject> findSubByChargeType(Integer chargeTypeId) {
-		return subjectDao.findSubByChargeType(chargeTypeId);
-	}
-
-	@Override
-	public Subject findByCode(String code){
-		return subjectDao.findByCode(code);
-	}
-
-	@Override
 	public PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo) {
 		PageInfo<Subject> pageInfo = queryPage(queryInfo);
 		for (Subject subject:pageInfo.getRows()) {
@@ -67,6 +57,30 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
 		return subApplyDetail;
 	}
 
+	@Override
+	public void upSetSubject(Subject subject) {
+		Integer parentId = upset(subject, null);
+		List<Subject> subjects = subject.getSubjects();
+		if(subjects != null && subjects.size() > 0){
+			subjects.forEach(e->{
+				upset(e, parentId);
+			});
+		}
+	}
+
+	private Integer upset(Subject subject,Integer parentId){
+		if(parentId != null){
+			subject.setParentSubjectId(parentId);
+		}
+		if(subject.getId() != null){
+			subject.setUpdateTime(new Date());
+			subjectDao.update(subject);
+		}else {
+			subjectDao.insert(subject);
+		}
+		return subject.getId();
+	}
+
 	private Subject getTree(Subject sub,YesOrNoEnum yesOrNoEnum){
 		//得到根节点对象
 		//获取子节点list

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio