Explorar o código

Merge branch 'master' of git.dayaedu.com:yonge/mec

chengpeng %!s(int64=5) %!d(string=hai) anos
pai
achega
050e496b8e
Modificáronse 86 ficheiros con 1882 adicións e 632 borrados
  1. 17 3
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java
  2. 6 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysRoleMenuDao.java
  3. 12 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysRoleService.java
  4. 21 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleServiceImpl.java
  5. 5 8
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/RoleController.java
  6. 1 1
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMapper.xml
  7. 5 2
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMenuMapper.xml
  8. 5 2
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  9. 6 0
      mec-biz/pom.xml
  10. 15 4
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  11. 32 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  12. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectGoodsGroupDao.java
  14. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java
  15. 45 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java
  16. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupRegResp.java
  17. 46 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupSubjectGoodsAndInfo.java
  18. 52 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPayInfoDto.java
  19. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  20. 14 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroupCoursesPlan.java
  21. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Goods.java
  22. 40 29
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentFee.java
  23. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java
  24. 294 220
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java
  25. 34 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserBankCard.java
  26. 5 5
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  27. 17 6
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentDemoGroupQueryInfo.java
  28. 29 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPayLogQueryInfo.java
  29. 8 2
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  30. 28 1
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  31. 10 1
      mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java
  32. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectGoodsGroupService.java
  33. 29 1
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java
  34. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  35. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SubjectService.java
  36. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysUserBankCardService.java
  37. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  38. 28 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  39. 6 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java
  40. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  41. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java
  42. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectGoodsGroupServiceImpl.java
  43. 70 8
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  44. 35 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  45. 99 99
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java
  46. 18 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserBankCardServiceImpl.java
  47. 39 0
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  48. 87 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  49. 7 3
      mec-biz/src/main/resources/config/mybatis/DemoGroupCoursesPlanMapper.xml
  50. 5 4
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  51. 1 1
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  52. 3 0
      mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml
  53. 6 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml
  54. 89 90
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml
  55. 6 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml
  56. 11 2
      mec-biz/src/main/resources/config/mybatis/SysUserBankCardMapper.xml
  57. 7 7
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  58. 1 1
      mec-education/src/main/java/com/ym/mec/education/controller/CourseScheduleController.java
  59. 2 2
      mec-education/src/main/java/com/ym/mec/education/controller/StudentAttendanceController.java
  60. 124 0
      mec-education/src/main/java/com/ym/mec/education/entity/MusicGroupQuit.java
  61. 49 8
      mec-education/src/main/java/com/ym/mec/education/entity/MusicGroupStudentFee.java
  62. 7 7
      mec-education/src/main/java/com/ym/mec/education/entity/VipGroup.java
  63. 13 0
      mec-education/src/main/java/com/ym/mec/education/mapper/MusicGroupQuitMapper.java
  64. 1 2
      mec-education/src/main/java/com/ym/mec/education/mapper/MusicGroupStudentFeeMapper.java
  65. 4 1
      mec-education/src/main/java/com/ym/mec/education/mapper/xml/MusicGroupStudentFeeMapper.xml
  66. 1 4
      mec-education/src/main/java/com/ym/mec/education/resp/CourseScheduleResp.java
  67. 1 1
      mec-education/src/main/java/com/ym/mec/education/resp/StudentAttendanceStatisticsResp.java
  68. 1 1
      mec-education/src/main/java/com/ym/mec/education/resp/StudentListResp.java
  69. 14 0
      mec-education/src/main/java/com/ym/mec/education/service/IMusicGroupQuitService.java
  70. 1 1
      mec-education/src/main/java/com/ym/mec/education/service/IMusicGroupStudentFeeService.java
  71. 19 12
      mec-education/src/main/java/com/ym/mec/education/service/impl/ClassGroupStudentMapperServiceImpl.java
  72. 8 2
      mec-education/src/main/java/com/ym/mec/education/service/impl/CourseScheduleServiceImpl.java
  73. 18 0
      mec-education/src/main/java/com/ym/mec/education/service/impl/MusicGroupQuitServiceImpl.java
  74. 1 1
      mec-education/src/main/java/com/ym/mec/education/service/impl/MusicGroupStudentFeeServiceImpl.java
  75. 17 4
      mec-education/src/main/java/com/ym/mec/education/service/impl/StudentAttendanceServiceImpl.java
  76. 3 5
      mec-education/src/main/java/com/ym/mec/education/utils/DateUtil.java
  77. 7 1
      mec-student/pom.xml
  78. 1 1
      mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java
  79. 14 0
      mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java
  80. 53 8
      mec-student/src/main/java/com/ym/mec/student/controller/RegisterController.java
  81. 3 4
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseScheduleController.java
  82. 17 4
      mec-student/src/main/java/com/ym/mec/student/controller/StudentDemoGroupController.java
  83. 40 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java
  84. 5 4
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/eseal/provider/TsignPlugin.java
  85. 6 4
      mec-web/src/main/java/com/ym/mec/web/controller/SysUserBankCardController.java
  86. 10 34
      mec-web/src/main/java/com/ym/mec/web/controller/SysUserCashAccountController.java

+ 17 - 3
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -88,13 +88,27 @@ public class SysUser implements Serializable{
 
 	@ApiModelProperty(value = "融云token",required = false)
 	private String imToken;
-	
+
+	@ApiModelProperty(value = "身份证号",required = false)
 	private String idCardNo;
-	
+
+	@ApiModelProperty(value = "真实姓名",required = false)
+	private String realName;
+
+	@ApiModelProperty(value = "e签宝唯一编号",required = false)
 	private String esignId;
-	
+
+	@ApiModelProperty(value = "微信号",required = false)
 	private String wechatId;
 
+	public String getRealName() {
+		return realName;
+	}
+
+	public void setRealName(String realName) {
+		this.realName = realName;
+	}
+
 	public String getImToken() {
 		return imToken;
 	}

+ 6 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysRoleMenuDao.java

@@ -20,4 +20,10 @@ public interface SysRoleMenuDao extends BaseDAO<Integer, SysRoleMenu> {
 	 * @return
 	 */
 	int delete(SysRoleMenu sysRoleMenu);
+
+	/**
+	 * 删除角色所有的菜单权限
+	 * @param id
+	 */
+	void deleteAllMenu(Integer id);
 }

+ 12 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/SysRoleService.java

@@ -26,4 +26,16 @@ public interface SysRoleService extends BaseService<Integer, SysRole> {
      * @param sysRole
      */
     void addRole(SysRole sysRole);
+
+    /**
+     * 修改角色信息
+     * @param sysRole
+     */
+    void updateRole(SysRole sysRole);
+
+    /**
+     * 删除角色
+     * @param id
+     */
+    void delRole(Integer id);
 }

+ 21 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysRoleServiceImpl.java

@@ -11,6 +11,7 @@ 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
@@ -40,6 +41,26 @@ public class SysRoleServiceImpl extends BaseServiceImpl<Integer, SysRole>  imple
 	@Transactional(rollbackFor = Exception.class)
 	public void addRole(SysRole sysRole) {
 		sysRoleDao.insert(sysRole);
+		batchSave(sysRole);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateRole(SysRole sysRole) {
+		sysRole.setUpdateTime(new Date());
+		sysRoleDao.update(sysRole);
+		sysRoleMenuDao.deleteAllMenu(sysRole.getId());
+		batchSave(sysRole);
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void delRole(Integer id) {
+		sysRoleDao.delete(id);
+		sysRoleMenuDao.deleteAllMenu(id);
+	}
+
+	private void batchSave(SysRole sysRole){
 		List<Integer> menuIds = sysRole.getMenuIds();
 		if(menuIds != null && menuIds.size() > 0){
 			SysRoleMenu sysRoleMenu = new SysRoleMenu(sysRole.getId(),null);

+ 5 - 8
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/RoleController.java

@@ -34,20 +34,17 @@ public class RoleController extends BaseController {
     }
 
     @ApiOperation("删除角色")
-    @PostMapping(value = "/del/{id}")
-    public Object delRole(@ApiParam(value = "权限编号", required = true) @PathVariable("id") Integer id) {
-        return succeed(sysRoleService.delete(id));
+    @PostMapping(value = "/del")
+    public Object delRole(Integer id) {
+        sysRoleService.delRole(id);
+        return succeed();
     }
 
     @ApiOperation("修改角色")
     @PostMapping(value = "/update",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
     public Object updateRole(SysRole sysRole) {
-        SysRole roleByCode = sysRoleService.findRoleByCode(sysRole.getRoleCode());
-        if(roleByCode != null && !roleByCode.getId().equals(sysRole.getId())){
-            return failed("权限标识已存在");
-        }
         sysRole.setUpdateTime(new Date());
-        sysRoleService.update(sysRole);
+        sysRoleService.updateRole(sysRole);
         return succeed();
     }
 

+ 1 - 1
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMapper.xml

@@ -36,7 +36,7 @@
         </selectKey>
         -->
         INSERT INTO sys_role (id_,role_name_,role_code_,role_desc_,create_time_,update_time_,organ_id_)
-        VALUES(#{id},#{roleName},#{roleCode},#{roleDesc},now(),now(),,#{organId})
+        VALUES(#{id},#{roleName},#{roleCode},#{roleDesc},now(),now(),#{organId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->

+ 5 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMenuMapper.xml

@@ -35,8 +35,11 @@
 	<delete id="delete" parameterType="java.util.Map">
 		DELETE FROM sys_role_menu WHERE role_id_ = #{roleId} AND menu_id_ = #{menuId}
 	</delete>
-	
-	<!-- 分页查询 -->
+    <delete id="deleteAllMenu">
+		DELETE FROM sys_role_menu WHERE role_id_ = #{roleId}
+	</delete>
+
+    <!-- 分页查询 -->
 	<select id="queryPage" resultMap="SysRoleMenu" parameterType="map">
 		SELECT * FROM sys_role_menu ORDER BY role_id_,menu_id_ <include refid="global.limit"/>
 	</select>

+ 5 - 2
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -66,9 +66,9 @@
         </selectKey>
         -->
         INSERT INTO sys_user
-        (im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,esign_id_,wechat_id_)
+        (im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,esign_id_,wechat_id_,real_name_)
         VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{esignId},#{wechatId})
+        #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{esignId},#{wechatId},#{realName})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -132,6 +132,9 @@
             <if test="wechatId != null">
                 wechat_id_ = #{wechatId},
             </if>
+            <if test="realName != null">
+                real_name = #{realName},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 6 - 0
mec-biz/pom.xml

@@ -34,5 +34,11 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-thirdparty</artifactId>
 		</dependency>
+        <dependency>
+            <groupId>com.ym</groupId>
+            <artifactId>mec-auth-server</artifactId>
+            <version>1.0</version>
+            <scope>compile</scope>
+        </dependency>
     </dependencies>
 </project>

+ 15 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -1,9 +1,6 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.ClassGroupTeachers;
-import com.ym.mec.biz.dal.dto.CourseListDto;
-import com.ym.mec.biz.dal.dto.TeacherMusicClassInfoDto;
-import com.ym.mec.biz.dal.dto.TeacherVipClassInfoDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.common.dal.BaseDAO;
 
@@ -124,4 +121,18 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      */
     List<ImUserModel> findGroupUsers(String musicGroupId);
+
+    /**
+     * count学员购买列表
+     * @param params
+     * @return
+     */
+    int countStudentPayLog(Map<String, Object> params);
+
+    /**
+     * 分页查询学员购买列表
+     * @param params
+     * @return
+     */
+    List<StudentPayInfoDto> queryStudentPayLog(Map<String, Object> params);
 }

+ 32 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -39,6 +39,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     /**
      * @Author: Joburgess
      * @Date: 2019/9/17
+     * 根据日期获取学生当日排课信息
+     */
+    List<CourseScheduleDto> getStudentCourseSchedulesWithDate(@Param("classDate") Date classDate,
+                                                              @Param("studentId") Long studentId);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 根据日期获取老师当日排课信息
+     */
+    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(@Param("classDate") Date classDate,
+                                                              @Param("teacherId") Long teacherId);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
      * 根据乐团ID删除排课
      */
     int deleteCourseSchedulesByMusicGroupID(@Param("musicGroupID") Long musicGroupID);
@@ -53,6 +69,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * @Author: Joburgess
+     * @Date: 2019/9/27
+     * 获取学生有课日期
+     */
+    List<Date> getStudentCourseScheduleDate(@Param("studentId") Long studentId,
+                                            @Param("month") Date month);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/27
+     * 获取教师有课日期
+     */
+    List<Date> getTeacherCourseScheduleDate(@Param("teacherId") Long teacherId,
+                                            @Param("month") Date month);
+
+    /**
+     * @Author: Joburgess
      * @Date: 2019/9/23
      * 统计教师在一天内有时间重复的课数
      */

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GoodsDao.java

@@ -11,6 +11,7 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
 
     /**
      * 通过科目编号查询商品(教材、辅件)列表
+     *
      * @param subjectId
      * @return
      */
@@ -18,8 +19,18 @@ public interface GoodsDao extends BaseDAO<Integer, Goods> {
 
     /**
      * 根据商品分类查找商品数量
+     *
      * @param goodsCategoryId
      * @return
      */
     int findGoodsNumByCategoryId(@Param("goodsCategoryId") Integer goodsCategoryId);
+
+    /**
+     * 根据ids获取商品信息
+     *
+     * @param ids
+     * @return
+     */
+    List<Goods> findGoodsByIds(@Param("ids") String ids);
+
 }

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectGoodsGroupDao.java

@@ -22,5 +22,5 @@ public interface MusicGroupSubjectGoodsGroupDao extends BaseDAO<Long, MusicGroup
      * @param subId
      * @return
      */
-    List<MusicGroupSubjectGoodsGroup> findGoodsGroup(@Param("musicGroupId") Integer musicGroupId, @Param("subId") String subId);
+    List<MusicGroupSubjectGoodsGroup> findGoodsGroup(@Param("musicGroupId") Integer musicGroupId, @Param("subId") Integer subId);
 }

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

@@ -15,4 +15,14 @@ public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSub
      * @return
      */
     List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(@Param("musicGroupId") int musicGroupId);
+
+
+    /**
+     * 获取乐团声部报名缴费商品信息
+     *
+     * @param musicGroupId
+     * @param subjectId
+     * @return
+     */
+    MusicGroupSubjectPlan getMusicOneSubjectClassPlan(@Param("musicGroupId") int musicGroupId, @Param("subjectId") int subjectId);
 }

+ 45 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java

@@ -1,9 +1,9 @@
 package com.ym.mec.biz.dal.dto;
 
-import io.swagger.annotations.ApiModelProperty;
-
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * @Author Joburgess
@@ -11,14 +11,57 @@ import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
  */
 public class CourseScheduleDto extends CourseSchedule {
 
+    @ApiModelProperty(value = "教师名称",required = false)
+    private String teacherName;
+
     /** 班级名称 */
     @ApiModelProperty(value = "班级名称",required = false)
     private String classGroupName;
 
+    @ApiModelProperty(value = "学校名称",required = false)
+    private String schoolName;
+
+    @ApiModelProperty(value = "班级编号,房间号",required = false)
+    private String sealClassId;
+
+    public String getSealClassId() {
+        return sealClassId;
+    }
+
+    public void setSealClassId(String sealClassId) {
+        this.sealClassId = sealClassId;
+    }
+
+    private StudentAttendanceStatusEnum attendanceStatus;
+
+    public String getSchoolName() {
+        return schoolName;
+    }
+
+    public void setSchoolName(String schoolName) {
+        this.schoolName = schoolName;
+    }
+
+    public StudentAttendanceStatusEnum getAttendanceStatus() {
+        return attendanceStatus;
+    }
+
+    public void setAttendanceStatus(StudentAttendanceStatusEnum attendanceStatus) {
+        this.attendanceStatus = attendanceStatus;
+    }
+
     /** 班级类型(普通班级、合奏班级) */
     @ApiModelProperty(value = "班级类型(普通班级、合奏班级、提高课班级、VIP班级)",required = false)
     private ClassGroupTypeEnum type;
 
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
     public String getClassGroupName() {
         return classGroupName;
     }

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupRegResp.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.Subject;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import java.util.List;
+
+/**
+ * 乐团报名,乐团基本信息
+ */
+public class MusicGroupRegResp {
+
+    //乐团名称
+    private String musicGroupName;
+
+    //乐团声部信息
+    private List<Subject> subjectList;
+
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public List<Subject> getSubjectList() {
+        return subjectList;
+    }
+
+    public void setSubjectList(List<Subject> subjectList) {
+        this.subjectList = subjectList;
+    }
+
+    @Override
+    public String toString() {
+        return ToStringBuilder.reflectionToString(this);
+    }
+}

+ 46 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupSubjectGoodsAndInfo.java

@@ -0,0 +1,46 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 乐团报名缴费相关信息
+ */
+public class MusicGroupSubjectGoodsAndInfo {
+
+    //课程信息
+    private Map CourseScheduleInfo;
+
+    //乐团声部商品信息
+    private List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroupList;
+
+    //乐团计划及收费信息
+    private MusicGroupSubjectPlan musicGroupSubjectPlan;
+
+    public Map getCourseScheduleInfo() {
+        return CourseScheduleInfo;
+    }
+
+    public void setCourseScheduleInfo(Map courseScheduleInfo) {
+        CourseScheduleInfo = courseScheduleInfo;
+    }
+
+    public List<MusicGroupSubjectGoodsGroup> getMusicGroupSubjectGoodsGroupList() {
+        return musicGroupSubjectGoodsGroupList;
+    }
+
+    public void setMusicGroupSubjectGoodsGroupList(List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroupList) {
+        this.musicGroupSubjectGoodsGroupList = musicGroupSubjectGoodsGroupList;
+    }
+
+    public MusicGroupSubjectPlan getMusicGroupSubjectPlan() {
+        return musicGroupSubjectPlan;
+    }
+
+    public void setMusicGroupSubjectPlan(MusicGroupSubjectPlan musicGroupSubjectPlan) {
+        this.musicGroupSubjectPlan = musicGroupSubjectPlan;
+    }
+}

+ 52 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentPayInfoDto.java

@@ -0,0 +1,52 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+public class StudentPayInfoDto {
+
+    private String name;
+
+    @ApiModelProperty(value = "订单类型",required = true)
+    private OrderTypeEnum type;
+
+    @ApiModelProperty(value = "实际金额",required = true)
+    private BigDecimal actualAmount;
+
+    private Date createTime;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public OrderTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(OrderTypeEnum type) {
+        this.type = type;
+    }
+
+    public BigDecimal getActualAmount() {
+        return actualAmount;
+    }
+
+    public void setActualAmount(BigDecimal actualAmount) {
+        this.actualAmount = actualAmount;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+}

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.ym.mec.biz.dal.enums.CourseStatusEnum;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 
@@ -10,6 +11,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 /**
  * 对应数据库表(course_schedule):
  */
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class CourseSchedule {
 
 	/**  */

+ 14 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroupCoursesPlan.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -18,7 +20,18 @@ public class DemoGroupCoursesPlan {
 	
 	/**  */
 	private java.util.Date createTime;
-	
+
+	@ApiModelProperty(value = "预约状态",required = false)
+	private YesOrNoEnum status;
+
+	public YesOrNoEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(YesOrNoEnum status) {
+		this.status = status;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Goods.java

@@ -7,6 +7,7 @@ import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * 对应数据库表(goods):
@@ -92,6 +93,9 @@ public class Goods {
 	/** 发布时间 */
 	@ApiModelProperty(value = "附件商品列表编号(用逗号分开)",required = false)
 	private String complementGoodsIdList;
+
+	/** 辅件列表 */
+	private List<Goods> goodsList;
 	
 	/** 创建时间 */
 	private java.util.Date createTime;
@@ -274,6 +278,14 @@ public class Goods {
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
+
+	public List<Goods> getGoodsList() {
+		return goodsList;
+	}
+
+	public void setGoodsList(List<Goods> goodsList) {
+		this.goodsList = goodsList;
+	}
 			
 	@Override
 	public String toString() {

+ 40 - 29
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentFee.java

@@ -13,30 +13,33 @@ public class MusicGroupStudentFee {
 
 	/**  */
 	private Long id;
-	
+
 	/**  */
-	@ApiModelProperty(value = "乐团编号",required = false)
+	@ApiModelProperty(value = "乐团编号", required = false)
 	private Integer musicGroupId;
-	
+
 	/**  */
-	@ApiModelProperty(value = "用户编号",required = false)
+	@ApiModelProperty(value = "用户编号", required = false)
 	private Integer userId;
-	
+
 	/** 课程费用 */
-	@ApiModelProperty(value = "课程费用",required = false)
+	@ApiModelProperty(value = "课程费用", required = false)
 	private BigDecimal courseFee;
 
 	/** 课程费用 */
-	@ApiModelProperty(value = "下次缴费日期",required = false)
+	@ApiModelProperty(value = "下次缴费日期", required = false)
 	private Date nextPaymentDate;
 
 	/** 课程费用 */
-	@ApiModelProperty(value = "最近缴费时间",required = false)
+	@ApiModelProperty(value = "最近缴费时间", required = false)
 	private Date latestPaidTime;
-	
+
+	@ApiModelProperty(value = "连续旷到次数", required = false)
+	private Integer continuousAbsenteeismTimes;
+
 	/**  */
 	private java.util.Date createTime;
-	
+
 	/**  */
 	private java.util.Date updateTime;
 
@@ -56,27 +59,27 @@ public class MusicGroupStudentFee {
 		this.latestPaidTime = latestPaidTime;
 	}
 
-	public void setId(Long id){
+	public void setId(Long id) {
 		this.id = id;
 	}
-	
-	public Long getId(){
+
+	public Long getId() {
 		return this.id;
 	}
-			
-	public void setMusicGroupId(Integer musicGroupId){
+
+	public void setMusicGroupId(Integer musicGroupId) {
 		this.musicGroupId = musicGroupId;
 	}
-	
-	public Integer getMusicGroupId(){
+
+	public Integer getMusicGroupId() {
 		return this.musicGroupId;
 	}
-			
-	public void setUserId(Integer userId){
+
+	public void setUserId(Integer userId) {
 		this.userId = userId;
 	}
-	
-	public Integer getUserId(){
+
+	public Integer getUserId() {
 		return this.userId;
 	}
 
@@ -88,22 +91,30 @@ public class MusicGroupStudentFee {
 		this.courseFee = courseFee;
 	}
 
-	public void setCreateTime(java.util.Date createTime){
+	public void setCreateTime(java.util.Date createTime) {
 		this.createTime = createTime;
 	}
-	
-	public java.util.Date getCreateTime(){
+
+	public java.util.Date getCreateTime() {
 		return this.createTime;
 	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
+
+	public void setUpdateTime(java.util.Date updateTime) {
 		this.updateTime = updateTime;
 	}
-	
-	public java.util.Date getUpdateTime(){
+
+	public java.util.Date getUpdateTime() {
 		return this.updateTime;
 	}
-			
+
+	public Integer getContinuousAbsenteeismTimes() {
+		return continuousAbsenteeismTimes;
+	}
+
+	public void setContinuousAbsenteeismTimes(Integer continuousAbsenteeismTimes) {
+		this.continuousAbsenteeismTimes = continuousAbsenteeismTimes;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java

@@ -39,6 +39,8 @@ public class MusicGroupSubjectGoodsGroup {
 
 	@ApiModelProperty(value = "商品名称列表",required = false)
 	private List<String> goodsName;
+
+	private List<Goods> goodsList;
 	
 	/**  */
 	private java.util.Date createTime;
@@ -135,4 +137,11 @@ public class MusicGroupSubjectGoodsGroup {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public List<Goods> getGoodsList() {
+		return goodsList;
+	}
+
+	public void setGoodsList(List<Goods> goodsList) {
+		this.goodsList = goodsList;
+	}
 }

+ 294 - 220
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java

@@ -12,244 +12,318 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
  */
 public class StudentRegistration {
 
-	/**  */
-	private Long id;
-	
-	/**  */
-	@ApiModelProperty(value = "学生编号",required = false)
-	private Integer userId;
-
-	@ApiModelProperty(value = "学生姓名",required = true)
-	private String name;
-	
-	/** 所属乐团(对应 music_group 表id) */
-	@ApiModelProperty(value = "所属乐团(对应 music_group 表id)",required = false)
-	private Integer musicGroupId;
-	
-	/** 当前所在年级 */
-	@ApiModelProperty(value = "当前所在年级",required = false)
-	private String currentGrade;
-	
-	/** 当前所在班级 */
-	@ApiModelProperty(value = "当前所在班级",required = false)
-	private String currentClass;
-	
-	/** 报名科目 */
-	@ApiModelProperty(value = "报名科目",required = true)
-	private Integer subjectId;
-
-	/** 报名科目 */
-	@ApiModelProperty(value = "实际科目",hidden = true)
-	private Integer actualSubjectId;
-	
-	/** 是否允许调剂 */
-	@ApiModelProperty(value = "是否允许调剂",required = false)
-	private YesOrNoEnum isAllowAdjust;
-	
-	/** 器材购买方式(团购、自备) */
-	@ApiModelProperty(value = "器材购买方式(团购、自备)",required = false)
-	private KitPurchaseMethodEnum kitPurchaseMethod;
-	
-	/**  */
-	@ApiModelProperty(value = "备注",required = false)
-	private String remark;
-	
-	/**  */
-	private java.util.Date createTime;
-	
-	/**  */
-	private java.util.Date updateTime;
-	
-	/** 家长姓名 */
-	@ApiModelProperty(value = "家长姓名",required = false)
-	private String parentsName;
-
-	/** 家长姓名 */
-	@ApiModelProperty(value = "家长电话",required = false)
-	private String parentsPhone;
-	
-	/** 家长单位 */
-	@ApiModelProperty(value = "家长单位",required = false)
-	private String parentsCompany;
-	
-	/** 缴费状态(1-已缴费 0-未交费) */
-	@ApiModelProperty(value = "缴费状态(1-已缴费 0-未交费)",required = false)
-	private YesOrNoEnum paymentStatus;
-
-	@ApiModelProperty(value = "班级id",hidden = true)
-	private Integer ClassGroupId;
-	
-	/** 最后缴费日期 */
-	@ApiModelProperty(value = "最后缴费日期",required = false)
-	private java.util.Date lastPaymentDate;
-	
-	/** 预计下次缴费日期 */
-	@ApiModelProperty(value = "预计下次缴费日期",required = false)
-	private java.util.Date nextPaymentDate;
-
-	public Integer getActualSubjectId() {
-		return actualSubjectId;
-	}
+    /**
+     *
+     */
+    @ApiModelProperty(value = "报名id", hidden = true)
+    private Long id;
 
-	public void setActualSubjectId(Integer actualSubjectId) {
-		this.actualSubjectId = actualSubjectId;
-	}
+    /**
+     *
+     */
+    @ApiModelProperty(value = "机构id", hidden = true)
+    private Integer organId;
+    /**
+     *
+     */
+    @ApiModelProperty(value = "学生编号", hidden = true)
+    private Integer userId;
 
-	public String getParentsPhone() {
-		return parentsPhone;
-	}
+    @ApiModelProperty(value = "学生姓名", required = true)
+    private String name;
 
-	public void setParentsPhone(String parentsPhone) {
-		this.parentsPhone = parentsPhone;
-	}
+    @ApiModelProperty(value = "性别(0,女  1,男", required = true)
+    private Integer gender;
 
-	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 setMusicGroupId(Integer musicGroupId){
-		this.musicGroupId = musicGroupId;
-	}
-	
-	public Integer getMusicGroupId(){
-		return this.musicGroupId;
-	}
-			
-	public void setCurrentGrade(String currentGrade){
-		this.currentGrade = currentGrade;
-	}
-	
-	public String getCurrentGrade(){
-		return this.currentGrade;
-	}
-			
-	public void setCurrentClass(String currentClass){
-		this.currentClass = currentClass;
-	}
-	
-	public String getCurrentClass(){
-		return this.currentClass;
-	}
-			
-	public void setSubjectId(Integer subjectId){
-		this.subjectId = subjectId;
-	}
-	
-	public Integer getSubjectId(){
-		return this.subjectId;
-	}
+    @ApiModelProperty(value = "身份证号", required = true)
+    private String idCardNo;
 
-	public YesOrNoEnum getIsAllowAdjust() {
-		return isAllowAdjust;
-	}
+    /**
+     * 所属乐团(对应 music_group 表id)
+     */
+    @ApiModelProperty(value = "所属乐团(对应 music_group 表id)", required = true)
+    private Integer musicGroupId;
 
-	public void setIsAllowAdjust(YesOrNoEnum isAllowAdjust) {
-		this.isAllowAdjust = isAllowAdjust;
-	}
+    /**
+     * 当前所在年级
+     */
+    @ApiModelProperty(value = "当前所在年级", required = true)
+    private String currentGrade;
 
-	public void setPaymentStatus(YesOrNoEnum paymentStatus) {
-		this.paymentStatus = paymentStatus;
-	}
+    /**
+     * 当前所在班级
+     */
+    @ApiModelProperty(value = "当前所在班级", required = true)
+    private String currentClass;
 
-	public KitPurchaseMethodEnum getKitPurchaseMethod() {
-		return kitPurchaseMethod;
-	}
+    /**
+     * 报名科目
+     */
+    @ApiModelProperty(value = "报名科目", required = true)
+    private Integer subjectId;
 
-	public void setKitPurchaseMethod(KitPurchaseMethodEnum kitPurchaseMethod) {
-		this.kitPurchaseMethod = kitPurchaseMethod;
-	}
+    /**
+     * 报名科目
+     */
+    @ApiModelProperty(value = "实际科目", hidden = true)
+    private Integer actualSubjectId;
 
-	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;
-	}
-			
-	public void setParentsName(String parentsName){
-		this.parentsName = parentsName;
-	}
-	
-	public String getParentsName(){
-		return this.parentsName;
-	}
-			
-	public void setParentsCompany(String parentsCompany){
-		this.parentsCompany = parentsCompany;
-	}
-	
-	public String getParentsCompany(){
-		return this.parentsCompany;
-	}
+    /**
+     * 是否允许调剂
+     */
+    @ApiModelProperty(value = "是否允许调剂", required = true)
+    private YesOrNoEnum isAllowAdjust;
 
-	public YesOrNoEnum getPaymentStatus() {
-		return paymentStatus;
-	}
+    /**
+     * 器材购买方式(团购、自备)
+     */
+    @ApiModelProperty(value = "器材购买方式(GROUP:团购,OWNED:自备)", required = true)
+    private KitPurchaseMethodEnum kitPurchaseMethod;
 
-	public void setLastPaymentDate(java.util.Date lastPaymentDate){
-		this.lastPaymentDate = lastPaymentDate;
-	}
-	
-	public java.util.Date getLastPaymentDate(){
-		return this.lastPaymentDate;
-	}
-			
-	public void setNextPaymentDate(java.util.Date nextPaymentDate){
-		this.nextPaymentDate = nextPaymentDate;
-	}
-	
-	public java.util.Date getNextPaymentDate(){
-		return this.nextPaymentDate;
-	}
+    /**
+     *
+     */
+    @ApiModelProperty(value = "备注", hidden = false)
+    private String remark;
 
-	public Integer getClassGroupId() {
-		return ClassGroupId;
-	}
+    /**
+     *
+     */
+    @ApiModelProperty(value = "添加时间", hidden = true)
+    private java.util.Date createTime;
 
-	public void setClassGroupId(Integer classGroupId) {
-		ClassGroupId = classGroupId;
-	}
+    /**
+     *
+     */
+    @ApiModelProperty(value = "更新时间", hidden = true)
+    private java.util.Date updateTime;
 
-	public String getName() {
-		return name;
-	}
+    /**
+     * 家长姓名
+     */
+    @ApiModelProperty(value = "家长姓名", required = true)
+    private String parentsName;
+
+    /**
+     * 家长姓名
+     */
+    @ApiModelProperty(value = "家长电话", required = true)
+    private String parentsPhone;
+
+    /**
+     * 家长单位
+     */
+    @ApiModelProperty(value = "家长单位", required = false)
+    private String parentsCompany;
+
+    /**
+     * 缴费状态(1-已缴费 0-未交费)
+     */
+    @ApiModelProperty(value = "缴费状态(1-已缴费 0-未交费)", hidden = true)
+    private YesOrNoEnum paymentStatus;
+
+    @ApiModelProperty(value = "班级id", hidden = true)
+    private Integer ClassGroupId;
+
+    /**
+     * 最后缴费日期
+     */
+    @ApiModelProperty(value = "最后缴费日期", hidden = true)
+    private java.util.Date lastPaymentDate;
+
+    /**
+     * 预计下次缴费日期
+     */
+    @ApiModelProperty(value = "预计下次缴费日期", hidden = true)
+    private java.util.Date nextPaymentDate;
+
+    public Integer getActualSubjectId() {
+        return actualSubjectId;
+    }
+
+    public void setActualSubjectId(Integer actualSubjectId) {
+        this.actualSubjectId = actualSubjectId;
+    }
+
+    public String getParentsPhone() {
+        return parentsPhone;
+    }
+
+    public void setParentsPhone(String parentsPhone) {
+        this.parentsPhone = parentsPhone;
+    }
+
+    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 setMusicGroupId(Integer musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Integer getMusicGroupId() {
+        return this.musicGroupId;
+    }
+
+    public void setCurrentGrade(String currentGrade) {
+        this.currentGrade = currentGrade;
+    }
+
+    public String getCurrentGrade() {
+        return this.currentGrade;
+    }
+
+    public void setCurrentClass(String currentClass) {
+        this.currentClass = currentClass;
+    }
+
+    public String getCurrentClass() {
+        return this.currentClass;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Integer getSubjectId() {
+        return this.subjectId;
+    }
+
+    public YesOrNoEnum getIsAllowAdjust() {
+        return isAllowAdjust;
+    }
+
+    public void setIsAllowAdjust(YesOrNoEnum isAllowAdjust) {
+        this.isAllowAdjust = isAllowAdjust;
+    }
+
+    public void setPaymentStatus(YesOrNoEnum paymentStatus) {
+        this.paymentStatus = paymentStatus;
+    }
+
+    public KitPurchaseMethodEnum getKitPurchaseMethod() {
+        return kitPurchaseMethod;
+    }
+
+    public void setKitPurchaseMethod(KitPurchaseMethodEnum kitPurchaseMethod) {
+        this.kitPurchaseMethod = kitPurchaseMethod;
+    }
+
+    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;
+    }
+
+    public void setParentsName(String parentsName) {
+        this.parentsName = parentsName;
+    }
+
+    public String getParentsName() {
+        return this.parentsName;
+    }
+
+    public void setParentsCompany(String parentsCompany) {
+        this.parentsCompany = parentsCompany;
+    }
+
+    public String getParentsCompany() {
+        return this.parentsCompany;
+    }
+
+    public YesOrNoEnum getPaymentStatus() {
+        return paymentStatus;
+    }
+
+    public void setLastPaymentDate(java.util.Date lastPaymentDate) {
+        this.lastPaymentDate = lastPaymentDate;
+    }
+
+    public java.util.Date getLastPaymentDate() {
+        return this.lastPaymentDate;
+    }
+
+    public void setNextPaymentDate(java.util.Date nextPaymentDate) {
+        this.nextPaymentDate = nextPaymentDate;
+    }
+
+    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;
+    }
+
+    public String getIdCardNo() {
+        return idCardNo;
+    }
+
+    public void setIdCardNo(String idCardNo) {
+        this.idCardNo = idCardNo;
+    }
+
+    public Integer getGender() {
+        return gender;
+    }
+
+    public void setGender(Integer gender) {
+        this.gender = gender;
+    }
+
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
 
-	public void setName(String name) {
-		this.name = name;
-	}
-			
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
-
 }

+ 34 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserBankCard.java

@@ -66,7 +66,40 @@ public class SysUserBankCard {
 	/**  */
 	@ApiModelProperty(value = "联系方式",required = false)
 	private String transNo;
-	
+
+	@ApiModelProperty(value = "真实姓名",required = false)
+	private String realName;
+
+	@ApiModelProperty(value = "身份证号",required = false)
+	private String idCardNo;
+
+	@ApiModelProperty(value = "验证码",required = false)
+	private String smsCode;
+
+	public String getSmsCode() {
+		return smsCode;
+	}
+
+	public void setSmsCode(String smsCode) {
+		this.smsCode = smsCode;
+	}
+
+	public String getRealName() {
+		return realName;
+	}
+
+	public void setRealName(String realName) {
+		this.realName = realName;
+	}
+
+	public String getIdCardNo() {
+		return idCardNo;
+	}
+
+	public void setIdCardNo(String idCardNo) {
+		this.idCardNo = idCardNo;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 5 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -58,7 +58,7 @@ public class VipGroup {
 	private Integer offlineClassesNum;
 
 	@ApiModelProperty(value = "学生购买价格",required = false)
-	private BigDecimal price;
+	private BigDecimal unitPrice;
 
 	@ApiModelProperty(value = "审批状态",required = false)
 	private AuditStatusEnum auditStatus;
@@ -82,12 +82,12 @@ public class VipGroup {
 		this.vipGroupCategoryId = vipGroupCategoryId;
 	}
 
-	public BigDecimal getPrice() {
-		return price;
+	public BigDecimal getUnitPrice() {
+		return unitPrice;
 	}
 
-	public void setPrice(BigDecimal price) {
-		this.price = price;
+	public void setUnitPrice(BigDecimal unitPrice) {
+		this.unitPrice = unitPrice;
 	}
 
 	public String getName() {

+ 17 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentDemoGroupQueryInfo.java

@@ -12,8 +12,11 @@ public class StudentDemoGroupQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "科目ID,多个逗号分隔",required = false)
     private String subjectIds;
 
-    @ApiModelProperty(value = "开始时间,多个逗号分隔",required = false)
-    private String startTimes;
+    @ApiModelProperty(value = "开始时间",required = false)
+    private String startTime;
+
+    @ApiModelProperty(value = "结束时间",required = false)
+    private String endTime;
 
     public String getSubjectIds() {
         return subjectIds;
@@ -23,11 +26,19 @@ public class StudentDemoGroupQueryInfo extends QueryInfo {
         this.subjectIds = subjectIds;
     }
 
-    public String getStartTimes() {
-        return startTimes;
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
     }
 
-    public void setStartTimes(String startTimes) {
-        this.startTimes = startTimes;
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
     }
 }

+ 29 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPayLogQueryInfo.java

@@ -0,0 +1,29 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class StudentPayLogQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "订单类型",required = true)
+    private OrderTypeEnum type;
+
+    private Integer userId;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public OrderTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(OrderTypeEnum type) {
+        this.type = type;
+    }
+}

+ 8 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -4,13 +4,12 @@ import java.util.List;
 
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.ClassGroup;
-import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
+import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
-import org.apache.ibatis.annotations.Param;
 
 public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
 
@@ -138,4 +137,11 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @return
      */
     List<ImUserModel> findGroupUsers(String groupId);
+
+    /**
+     * 分页查询学生购买记录
+     * @param studentPayLogQueryInfo
+     * @return
+     */
+    PageInfo<StudentPayInfoDto> queryStudentPayLog(StudentPayLogQueryInfo studentPayLogQueryInfo);
 }

+ 28 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java

@@ -5,7 +5,6 @@ import com.ym.mec.biz.dal.dto.CourseScheduleDto;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.common.service.BaseService;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
@@ -43,12 +42,40 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
     /**
      * @Author: Joburgess
      * @Date: 2019/9/17
+     * 根据日期获取当日排课信息
+     */
+    List<CourseScheduleDto> getStudentCourseSchedulesWithDate(Date classDate);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 根据日期获取当日排课信息
+     */
+    List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Date classDate);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
      * 根据月份获取乐团在该月有课的日期
      */
     List<Date> getCourseScheduleDateByMonth(Long musicGroupID, Date month);
 
     /**
      * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 根据学生获取乐团在该月有课的日期
+     */
+    List<Date> getCourseScheduleDateByStudent(Date month);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/17
+     * 根据学生获取乐团在该月有课的日期
+     */
+    List<Date> getCourseScheduleDateByTeacher(Date month);
+
+    /**
+     * @Author: Joburgess
      * @Date: 2019/9/23
      * 课时调整
      */

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java

@@ -11,16 +11,25 @@ public interface GoodsService extends BaseService<Integer, Goods> {
 
     /**
      * 通过科目编号查询商品(教材、辅件)列表
+     *
      * @param subjectId
      * @return
      */
-    List<Goods> findGoodsBySubId(Integer subjectId,Integer goodsCategoryId);
+    List<Goods> findGoodsBySubId(Integer subjectId, Integer goodsCategoryId);
 
     /**
      * 根据商品分类id查找商品数量
+     *
      * @param goodsCategoryId
      * @return
      */
     int findGoodsNumByCategoryId(@Param("goodsCategoryId") Integer goodsCategoryId);
 
+    /**
+     * 根据ids获取商品信息
+     * @param ids
+     * @return
+     */
+    List<Goods> findGoodsByIds(String ids);
+
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectGoodsGroupService.java

@@ -3,6 +3,16 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface MusicGroupSubjectGoodsGroupService extends BaseService<Long, MusicGroupSubjectGoodsGroup> {
 
+    /**
+     * 获取乐团声部对应的商品
+     * @param musicGroupId
+     * @param subId
+     * @return
+     */
+    List<MusicGroupSubjectGoodsGroup> findGoodsGroup(Integer musicGroupId, Integer subId);
+
 }

+ 29 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.MusicGroupRegResp;
+import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfo;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
 import com.ym.mec.common.service.BaseService;
 
@@ -11,9 +13,35 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
 
     /**
      * 获取乐团声部招生计划
+     *
      * @param musicGroupId
      * @return
      */
-    List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(@Param("musicGroupId") int musicGroupId);
+    List<MusicGroupSubjectPlan> getMusicSubjectClassPlan(int musicGroupId);
+
+
+    /**
+     * 获取单一乐团声部招生计划
+     *
+     * @param musicGroupId
+     * @return
+     */
+    MusicGroupSubjectPlan getMusicOneSubjectClassPlan(int musicGroupId, int subjectId);
+
+    /**
+     * 获取乐团声部报名缴费商品信息
+     *
+     * @param musicGroupId
+     * @param subjectId
+     * @return
+     */
+    MusicGroupSubjectGoodsAndInfo getSubjectGoodsAndInfo(Integer musicGroupId, Integer subjectId);
+
+    /**
+     * 乐团报名基本信息
+     * @param musicGroupId
+     * @return
+     */
+    MusicGroupRegResp getMusicGroupRegInfo(Integer musicGroupId);
 
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -68,4 +68,11 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      */
     Integer updateByUserIdAndMusicGroupId(StudentRegistration studentRegistration);
 
+    /**
+     * 添加学生报名信息
+     * @param studentRegistration
+     * @return
+     */
+    StudentRegistration addStudent(StudentRegistration studentRegistration);
+
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SubjectService.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.dto.QueryConditionDto;
 import com.ym.mec.biz.dal.dto.SubjectApplyDetailDto;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
 import com.ym.mec.biz.dal.page.SubjectQueryInfo;
@@ -17,6 +18,7 @@ public interface SubjectService extends BaseService<Integer, Subject> {
 
     /**
      * 通过乐团编号查询科目列表
+     *
      * @param musicGroupId
      * @return
      */
@@ -24,6 +26,7 @@ public interface SubjectService extends BaseService<Integer, Subject> {
 
     /**
      * 分页查询科目树状列表
+     *
      * @param queryInfo
      * @return
      */
@@ -31,6 +34,7 @@ public interface SubjectService extends BaseService<Integer, Subject> {
 
     /**
      * 通过乐团收费类型,获取默认的声部列表
+     *
      * @param musicGroupId
      * @return
      */
@@ -38,6 +42,7 @@ public interface SubjectService extends BaseService<Integer, Subject> {
 
     /**
      * 通过乐团编号获取声部列表以及声部报名、缴费、计划人数
+     *
      * @param musicGroupId
      * @return
      */
@@ -45,12 +50,14 @@ public interface SubjectService extends BaseService<Integer, Subject> {
 
     /**
      * 修改、新增科目树状列表
+     *
      * @param subject
      */
     void upSetSubject(Subject subject);
 
     /**
      * 修改、保存声部与乐器关联
+     *
      * @param subjectGoodsMappers
      */
     void markGoods(List<SubjectGoodsMapper> subjectGoodsMappers);

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserBankCardService.java

@@ -5,4 +5,10 @@ import com.ym.mec.common.service.BaseService;
 
 public interface SysUserBankCardService extends BaseService<Long, SysUserBankCard> {
 
+    /**
+     * 新增银行卡
+     * @param sysUserBankCard
+     * @return
+     */
+    boolean add(SysUserBankCard sysUserBankCard);
 }

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.dal.page.VipClassQueryInfo;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
@@ -375,4 +376,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         }
         return classGroupDao.findGroupUsers(groupId.substring(2));
     }
+
+    @Override
+    public PageInfo<StudentPayInfoDto> queryStudentPayLog(StudentPayLogQueryInfo queryInfo) {
+        PageInfo<StudentPayInfoDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+        List<StudentPayInfoDto> dataList = null;
+        int count = classGroupDao.countStudentPayLog(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = classGroupDao.queryStudentPayLog(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
 }

+ 28 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1,5 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
@@ -10,7 +12,6 @@ import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-
 import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,6 +28,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	
 	@Autowired
 	private CourseScheduleDao courseScheduleDao;
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public BaseDAO<Long, CourseSchedule> getDAO() {
@@ -64,6 +67,30 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		return courseScheduleDao.getCourseScheduleDateByMonth(musicGroupID,month);
 	}
 
+	@Override
+	public List<Date> getCourseScheduleDateByStudent(Date month) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		return courseScheduleDao.getStudentCourseScheduleDate(user.getId().longValue(),month);
+	}
+
+	@Override
+	public List<Date> getCourseScheduleDateByTeacher(Date month) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		return courseScheduleDao.getTeacherCourseScheduleDate(user.getId().longValue(),month);
+	}
+
+	@Override
+	public List<CourseScheduleDto> getStudentCourseSchedulesWithDate(Date classDate) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		return courseScheduleDao.getStudentCourseSchedulesWithDate(classDate,user.getId().longValue());
+	}
+
+	@Override
+	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Date classDate) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		return courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate,user.getId().longValue());
+	}
+
 	/**
 	 * 判断课程安排中是否存在冲突
 	 * 计算课程课次

+ 6 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -5,24 +5,21 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.DemoGroupApplyDto;
 import com.ym.mec.biz.dal.dto.EducationDemoGroupListDto;
-import com.ym.mec.biz.dal.dto.TeacherManageDemoGroupListDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.StudentDemoGroupQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherManageDemoGroupQueryInfo;
+import com.ym.mec.biz.service.DemoGroupService;
+import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-
-import com.ym.mec.biz.service.DemoGroupService;
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
@@ -142,8 +139,9 @@ public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  impl
 		demoGroup.setOrganIdList(organIdsString);
 		demoGroupDao.update(demoGroup);
 
-		//删除临时课程计划
-		demoGroupCoursesPlanDao.delete(coursePlanId);
+		//修改课程预约状态
+		demoGroupCoursesPlan.setStatus(YesOrNoEnum.YES);
+		demoGroupCoursesPlanDao.update(demoGroupCoursesPlan);
 	}
 
 	@Override

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -23,7 +23,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.client.RestTemplate;
 
 import java.io.IOException;
 import java.util.ArrayList;
@@ -66,6 +65,7 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
 		employee.setUserType(SysUserType.SYSTEM);
 		teacherDao.addSysUser(employee);
+		employee.setUserId(employee.getId());
         employeeDao.insert(employee);
 		ImResult imResult = imFeignService.register(new ImUserModel(employee.getId().toString(), employee.getUsername(), employee.getAvatar()));
 		employee.setImToken(imResult.getToken());

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java

@@ -30,4 +30,9 @@ public class GoodsServiceImpl extends BaseServiceImpl<Integer, Goods>  implement
 	public int findGoodsNumByCategoryId(Integer goodsCategoryId){
 		return goodsDao.findGoodsNumByCategoryId(goodsCategoryId);
 	}
+
+	@Override
+	public List<Goods> findGoodsByIds(String ids) {
+		return goodsDao.findGoodsByIds(ids);
+	}
 }

+ 7 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectGoodsGroupServiceImpl.java

@@ -9,6 +9,8 @@ import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import java.util.List;
+
 @Service
 public class MusicGroupSubjectGoodsGroupServiceImpl extends BaseServiceImpl<Long, MusicGroupSubjectGoodsGroup>  implements MusicGroupSubjectGoodsGroupService {
 	
@@ -19,5 +21,9 @@ public class MusicGroupSubjectGoodsGroupServiceImpl extends BaseServiceImpl<Long
 	public BaseDAO<Long, MusicGroupSubjectGoodsGroup> getDAO() {
 		return musicGroupSubjectGoodsGroupDao;
 	}
-	
+
+	@Override
+    public List<MusicGroupSubjectGoodsGroup> findGoodsGroup(Integer musicGroupId, Integer subId) {
+        return musicGroupSubjectGoodsGroupDao.findGoodsGroup(musicGroupId, subId);
+    }
 }

+ 70 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -1,17 +1,22 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dto.MusicGroupRegResp;
+import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfo;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.service.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
-import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, MusicGroupSubjectPlan> implements MusicGroupSubjectPlanService {
@@ -20,7 +25,19 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     private MusicGroupSubjectPlanDao musicGroupSubjectPlanDao;
 
     @Autowired
-	private StudentRegistrationService studentRegistrationService;
+    private StudentRegistrationService studentRegistrationService;
+
+    @Autowired
+    private GoodsService goodsService;
+
+    @Autowired
+    private MusicGroupSubjectGoodsGroupService musicGroupSubjectGoodsGroupService;
+
+    @Autowired
+    private MusicGroupService musicGroupService;
+
+    @Autowired
+    private SubjectService subjectService;
 
     @Override
     public BaseDAO<Integer, MusicGroupSubjectPlan> getDAO() {
@@ -31,9 +48,54 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     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);
-		}
+            Integer noClassStuCount = studentRegistrationService.getNoClassStuCountBySubjectId(musicGroupId, musicSubjectClassPlan.getSubjectId());
+            musicSubjectClassPlan.setNoClassStudentNum(noClassStuCount);
+        }
         return musicSubjectClassPlans;
     }
+
+    @Override
+    public MusicGroupSubjectPlan getMusicOneSubjectClassPlan(int musicGroupId, int subjectId) {
+        return musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+    }
+
+    @Override
+    public MusicGroupSubjectGoodsAndInfo getSubjectGoodsAndInfo(Integer musicGroupId, Integer subjectId) {
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId.toString());
+
+        //课程形态
+        Map<String, Object> courseForm = JSON.parseObject(musicGroup.getCourseForm(), Map.class);
+
+        //乐团计划及收费信息
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = this.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+
+        //乐团乐器及辅件信息
+        List<MusicGroupSubjectGoodsGroup> goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroup(musicGroupId, subjectId);
+        goodsGroups.forEach(goodsGroup -> {
+            if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
+                goodsGroup.getGoodsList().forEach(goods -> {
+                    goods.setGoodsList(goodsService.findGoodsByIds(goods.getComplementGoodsIdList()));
+                });
+            }
+        });
+        MusicGroupSubjectGoodsAndInfo musicGroupSubjectGoodsAndInfo = new MusicGroupSubjectGoodsAndInfo();
+        musicGroupSubjectGoodsAndInfo.setMusicGroupSubjectPlan(musicOneSubjectClassPlan);
+        musicGroupSubjectGoodsAndInfo.setCourseScheduleInfo(courseForm);
+        musicGroupSubjectGoodsAndInfo.setMusicGroupSubjectGoodsGroupList(goodsGroups);
+        return musicGroupSubjectGoodsAndInfo;
+    }
+
+    @Override
+    public MusicGroupRegResp getMusicGroupRegInfo(Integer musicGroupId) {
+        MusicGroupRegResp musicGroupRegResp = new MusicGroupRegResp();
+
+        //乐团信息
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId.toString());
+        musicGroupRegResp.setMusicGroupName(musicGroup.getName());
+        //声部信息
+        List<Subject> subjectList = subjectService.findSubByMusicGroupId(musicGroupId);
+        musicGroupRegResp.setSubjectList(subjectList);
+
+        return musicGroupRegResp;
+    }
 }

+ 35 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1,5 +1,10 @@
 package com.ym.mec.biz.service.impl;
 
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.auth.api.enums.UserLockFlag;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.biz.dal.dao.StudentRechargeDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDto;
@@ -14,14 +19,18 @@ import com.ym.mec.util.collection.MapUtil;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.*;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
 
-    @Autowired
+    @Resource
     private StudentRegistrationDao studentRegistrationDao;
+    @Autowired
+    private SysUserService sysUserService;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -77,11 +86,35 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     public Integer getNoClassStuCountBySubjectId(Integer musicGroupId, Integer actualSubjectId) {
-        return studentRegistrationDao.getNoClassStuCountBySubjectId(musicGroupId,actualSubjectId);
+        return studentRegistrationDao.getNoClassStuCountBySubjectId(musicGroupId, actualSubjectId);
     }
 
     @Override
     public Integer updateByUserIdAndMusicGroupId(StudentRegistration studentRegistration) {
         return studentRegistrationDao.updateByUserIdAndMusicGroupId(studentRegistration);
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public StudentRegistration addStudent(StudentRegistration studentRegistration) {
+        Date date = new Date();
+        SysUser sysUser = sysUserService.queryByPhone(studentRegistration.getParentsPhone());
+        if (sysUser == null) {
+            sysUser = new SysUser();
+            sysUser.setPhone(studentRegistration.getParentsPhone());
+            sysUser.setCreateTime(date);
+            sysUser.setUpdateTime(date);
+            sysUser.setLockFlag(UserLockFlag.NOACTIVATED);
+            sysUser.setDelFlag(com.ym.mec.auth.api.enums.YesOrNoEnum.NO);
+            sysUser.setUserType(SysUserType.STUDENT);
+            sysUser.setGender(studentRegistration.getGender());
+            sysUser.setOrganId(studentRegistration.getOrganId());
+            sysUser.setRealName(studentRegistration.getName());
+            sysUser.setIdCardNo(studentRegistration.getIdCardNo());
+            sysUserService.add(sysUser);
+        }
+        studentRegistration.setUserId(sysUser.getId());
+        studentRegistrationDao.insert(studentRegistration);
+        return studentRegistration;
+    }
 }

+ 99 - 99
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java

@@ -26,67 +26,67 @@ import java.util.List;
 @Service
 public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  implements SubjectService {
 
-	@Autowired
-	private SubjectDao subjectDao;
-	@Autowired
-	private StudentRegistrationDao studentRegistrationDao;
-	@Autowired
-	private SubjectGoodsMapperDao subjectGoodsMapperDao;
-	@Autowired
-	private SysUserFeignService sysUserFeignService;
-
-	@Override
-	public BaseDAO<Integer, Subject> getDAO() {
-		return subjectDao;
-	}
-
-	@Override
-	public List<Subject> findSubByMusicGroupId(Integer musicGroupId) {
-		return subjectDao.findSubByMusicGroupId(musicGroupId);
-	}
-
-	@Override
-	public PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo) {
-		PageInfo<Subject> pageInfo = queryPage(queryInfo);
-		for (Subject subject:pageInfo.getRows()) {
-			subject = getTree(subject,queryInfo.getDelFlag());
-		}
-		return pageInfo;
-	}
-
-	@Override
-	public List<Subject> findDefaultSubByGroupId(Integer musicGroupId) {
-		return subjectDao.findDefaultSubByGroupId(musicGroupId);
-	}
-
-	@Override
-	public List<SubjectApplyDetailDto> findSubApplyDetail(Integer musicGroupId) {
-		List<SubjectApplyDetailDto> subApplyDetail = subjectDao.findSubApplyDetail(musicGroupId);
-		subApplyDetail.forEach(detail ->{
-			detail.setPayNum(studentRegistrationDao.countPayNum(musicGroupId,detail.getSubjectId()));
-		});
-		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);
-			});
-		}
-	}
-
-	@Override
-	public void markGoods(List<SubjectGoodsMapper> subjectGoodsMappers) {
-		subjectGoodsMappers.forEach(e->{
+    @Autowired
+    private SubjectDao subjectDao;
+    @Autowired
+    private StudentRegistrationDao studentRegistrationDao;
+    @Autowired
+    private SubjectGoodsMapperDao subjectGoodsMapperDao;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @Override
+    public BaseDAO<Integer, Subject> getDAO() {
+        return subjectDao;
+    }
+
+    @Override
+    public List<Subject> findSubByMusicGroupId(Integer musicGroupId) {
+        return subjectDao.findSubByMusicGroupId(musicGroupId);
+    }
+
+    @Override
+    public PageInfo<Subject> queryPageTree(SubjectQueryInfo queryInfo) {
+        PageInfo<Subject> pageInfo = queryPage(queryInfo);
+        for (Subject subject:pageInfo.getRows()) {
+            subject = getTree(subject,queryInfo.getDelFlag());
+        }
+        return pageInfo;
+    }
+
+    @Override
+    public List<Subject> findDefaultSubByGroupId(Integer musicGroupId) {
+        return subjectDao.findDefaultSubByGroupId(musicGroupId);
+    }
+
+    @Override
+    public List<SubjectApplyDetailDto> findSubApplyDetail(Integer musicGroupId) {
+        List<SubjectApplyDetailDto> subApplyDetail = subjectDao.findSubApplyDetail(musicGroupId);
+        subApplyDetail.forEach(detail ->{
+            detail.setPayNum(studentRegistrationDao.countPayNum(musicGroupId,detail.getSubjectId()));
+        });
+        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);
+            });
+        }
+    }
+
+    @Override
+    public void markGoods(List<SubjectGoodsMapper> subjectGoodsMappers) {
+        subjectGoodsMappers.forEach(e->{
             upsetGoods(e);
         });
-	}
+    }
 
-	private void upsetGoods(SubjectGoodsMapper subjectGoodsMapper){
+    private void upsetGoods(SubjectGoodsMapper subjectGoodsMapper){
         if(subjectGoodsMapper.getId() != null){
             if(subjectGoodsMapper.getDelFlag()){
                 subjectGoodsMapperDao.delete(subjectGoodsMapper.getId());
@@ -97,45 +97,45 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject>  imple
         }else {
             subjectGoodsMapperDao.insert(subjectGoodsMapper);
         }
-	}
-
-
-	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
-		List<Subject> subjects = subjectDao.findByParentId(sub.getCode(),yesOrNoEnum);
-		//如果存在子节点
-		if(subjects != null && subjects.size() > 0) {
-			//将子节点list放入父节点对象
-			sub.setSubjects(subjects);
-			//遍历子节点....
-			for (Subject subject : subjects) {
-				getTree(subject,yesOrNoEnum);
-			}
-		}
-		return sub;
-	}
-
-	@Override
-	public List<Subject> findTeacherSubjects() {
-		return subjectDao.findTeacherSubjects(sysUserFeignService.queryUserInfo().getId().longValue());
-	}
-
-	@Override
-	public List<ConditionDto> findSubjectConditions() {
-		return subjectDao.findSubjectConditions();
-	}
+    }
+
+
+    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
+        List<Subject> subjects = subjectDao.findByParentId(sub.getCode(),yesOrNoEnum);
+        //如果存在子节点
+        if(subjects != null && subjects.size() > 0) {
+            //将子节点list放入父节点对象
+            sub.setSubjects(subjects);
+            //遍历子节点....
+            for (Subject subject : subjects) {
+                getTree(subject,yesOrNoEnum);
+            }
+        }
+        return sub;
+    }
+
+    @Override
+    public List<Subject> findTeacherSubjects() {
+        return subjectDao.findTeacherSubjects(sysUserFeignService.queryUserInfo().getId().longValue());
+    }
+
+    @Override
+    public List<ConditionDto> findSubjectConditions() {
+        return subjectDao.findSubjectConditions();
+    }
 }

+ 18 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserBankCardServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.service.SysUserBankCardService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.stereotype.Service;
 
 @Service
@@ -13,10 +14,26 @@ public class SysUserBankCardServiceImpl extends BaseServiceImpl<Long, SysUserBan
 	
 	@Autowired
 	private SysUserBankCardDao sysUserBankCardDao;
+	@Autowired
+	private RedisTemplate<String,String> redisTemplate;
+	private final String loginVerifyCodeKey = "loginVerifyCode:";
 
 	@Override
 	public BaseDAO<Long, SysUserBankCard> getDAO() {
 		return sysUserBankCardDao;
 	}
-	
+
+	@Override
+	public boolean add(SysUserBankCard sysUserBankCard) {
+		/*if(StringUtils.isEmpty(sysUserBankCard.getSmsCode()) || StringUtils.isEmpty(sysUserBankCard.getMobilePhone())){
+			return false;
+		}
+		String verifyCode = redisTemplate.opsForValue().get(loginVerifyCodeKey + sysUserBankCard.getMobilePhone());
+		if(StringUtils.isNotEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,sysUserBankCard.getSmsCode())){
+			sysUserBankCardDao.insert(sysUserBankCard);
+			return true;
+		}*/
+		sysUserBankCardDao.insert(sysUserBankCard);
+		return false;
+	}
 }

+ 39 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -315,4 +315,43 @@
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         WHERE cgsm.class_group_id_ = #{musicGroupId} GROUP BY su.id_
     </select>
+    <select id="countStudentPayLog" resultType="java.lang.Integer">
+        SELECT COUNT(spo.id_)
+        FROM student_payment_order spo
+        LEFT JOIN class_group cg ON cg.id_ = spo.class_group_id_
+        <where>
+            <if test="search != null and search != ''">
+                AND cg.name_ LIKE CONCAT('%',#{search},'%')
+            </if>
+            <if test="userId != null">
+                AND spo.user_id_ = #{userId}
+            </if>
+            <if test="type != null">
+                AND spo.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+        </where>
+    </select>
+    <resultMap id="StudentPayInfoDto" type="com.ym.mec.biz.dal.dto.StudentPayInfoDto">
+        <result column="actual_amount_" property="actualAmount"/>
+        <result column="name_" property="name"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+    </resultMap>
+    <select id="queryStudentPayLog" resultMap="StudentPayInfoDto">
+        SELECT spo.actual_amount_,spo.status_,spo.type_,cg.name_,spo.create_time_
+        FROM student_payment_order spo
+        LEFT JOIN class_group cg ON cg.id_ = spo.class_group_id_
+        <where>
+            <if test="search != null and search != ''">
+                AND cg.name_ LIKE CONCAT('%',#{search},'%')
+            </if>
+            <if test="userId != null">
+                AND spo.user_id_ = #{userId}
+            </if>
+            <if test="type != null">
+                AND spo.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+        </where>
+        <include refid="global.limit"/>
+    </select>
 </mapper>

+ 87 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -23,8 +23,12 @@
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
+        <result column="teacher_name_" property="teacherName"/>
         <result column="name_" property="classGroupName"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="school_name_" property="schoolName"/>
+        <result column="attendance_status_" property="attendanceStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="seal_class_id_" property="sealClassId"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -210,6 +214,54 @@
         WHERE cs.class_date_=DATE_FORMAT(#{classDate},'%Y%m%d')
     </select>
 
+    <select id="getStudentCourseSchedulesWithDate" resultMap="courseScheduleDto">
+        SELECT
+            cg.id_ seal_class_id_,
+            cg.name_,
+            cg.type_,
+            cs.id_,
+            cs.class_date_,
+            CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+            CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+            cs.status_,
+	        su.username_ teacher_name_,
+	        sa.status_ attendance_status_
+        FROM
+            course_schedule cs
+            LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
+            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+            LEFT JOIN class_group_student_mapper cgsm ON cgsm.class_group_id_ = cs.class_group_id_
+	        LEFT JOIN student_attendance sa ON cs.id_=sa.course_schedule_id_ AND sa.user_id_=#{studentId}
+        WHERE
+            cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+            AND cgsm.user_id_ = #{studentId}
+    </select>
+
+    <select id="getTeacherCourseSchedulesWithDate" resultMap="courseScheduleDto">
+        SELECT
+            cg.id_ seal_class_id_,
+            cg.name_,
+            su.username_ teacher_name_,
+            cg.type_,
+            cs.id_,
+            cs.class_date_,
+            CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
+            CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
+            cs.status_,
+	        s.name_ school_name_,
+	        ta.status_ attendance_status_
+        FROM
+            course_schedule cs
+            LEFT JOIN sys_user su ON cs.teacher_id_=su.id_
+            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+            LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
+            LEFT JOIN school s ON mg.school_id_=s.id_
+	        LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=#{teacherId}
+        WHERE
+            cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
+            AND cs.teacher_id_ = #{teacherId}
+    </select>
+
     <select id="getCourseScheduleDateByMonth" resultType="java.util.Date">
         SELECT
             cs.class_date_
@@ -303,4 +355,39 @@
             #{classGroup.id}
         </foreach>
     </select>
+
+    <select id="getStudentCourseScheduleDate" resultType="java.util.Date">
+        SELECT
+            cs.class_date_
+        FROM
+            class_group_student_mapper cgsm
+            LEFT JOIN course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
+        WHERE
+            cgsm.user_id_ = #{studentId}
+            <if test="month==null">
+                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+            </if>
+            <if test="month!=null">
+                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+            </if>
+        GROUP BY
+            cs.class_date_
+    </select>
+
+    <select id="getTeacherCourseScheduleDate" resultType="java.util.Date">
+        SELECT
+        cs.class_date_
+        FROM
+        course_schedule cs ON cgsm.class_group_id_ = cs.class_group_id_
+        WHERE
+        cs.teacher_id_ = #{teacherId}
+        <if test="month==null">
+            AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        <if test="month!=null">
+            AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+        </if>
+        GROUP BY
+        cs.class_date_
+    </select>
 </mapper>

+ 7 - 3
mec-biz/src/main/resources/config/mybatis/DemoGroupCoursesPlanMapper.xml

@@ -11,6 +11,7 @@
 		<result column="demo_group_id_" property="demoGroupId" />
 		<result column="courses_start_time_" property="coursesStartTime" />
 		<result column="create_time_" property="createTime" />
+		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -30,10 +31,10 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO demo_group_courses_plan (demo_group_id_,courses_start_time_,create_time_)
+		INSERT INTO demo_group_courses_plan (demo_group_id_,courses_start_time_,create_time_,status_)
 		VALUE
 		<foreach collection="dates" item="date" separator=",">
-			(#{demoGroupId},#{date},now())
+			(#{demoGroupId},#{date},now(),#{status})
 		</foreach>
 	</insert>
 
@@ -44,7 +45,7 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
 		</selectKey>
 		-->
-		INSERT INTO demo_group_courses_plan (id_,demo_group_id_,courses_start_time_,create_time_) VALUES(#{id},#{demoGroupId},#{coursesStartTime},now())
+		INSERT INTO demo_group_courses_plan (id_,demo_group_id_,courses_start_time_,create_time_,status_) VALUES(#{id},#{demoGroupId},#{coursesStartTime},now(),#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -62,6 +63,9 @@ courses_start_time_ = #{coursesStartTime},
 <if test="createTime != null">
 create_time_ = #{createTime},
 </if>
+<if test="status!=null">
+	status_=#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+</if>
 </set> WHERE id_ = #{id} 
 	</update>
 	

+ 5 - 4
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -120,7 +120,6 @@ create_time_ = #{createTime},
 			'ONLINE' teach_mode_
 		FROM
 			demo_group_courses_plan dgcp
-			LEFT JOIN demo_group_class_group_mapper dgcgm ON dgcp.demo_group_id_=dgcgm.demo_group_id_
 			WHERE dgcp.demo_group_id_=#{demoGroup.id} AND dgcp.courses_start_time_ = #{startTime}
 	</select>
 	<select id="countDemoGroupStudents" resultType="java.lang.Integer">
@@ -134,13 +133,14 @@ create_time_ = #{createTime},
 
 	<sql id="demoGroupQueryCondition">
 		<where>
+			dgcp.status_=0
 			<if test="search!=null">
-				su.username like concat('%',#{search},'%')
+				AND su.username like concat('%',#{search},'%')
 			</if>
-			<if test="subjectIds!=null">
+			<if test="subjectIds!=null and subjectIds!=''">
 				AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
 			</if>
-			<if test="startTimes!=null">
+			<if test="startTimes!=null and startTimes!=''">
 				AND FIND_IN_SET(dgcp.courses_start_time_,#{startTimes})
 			</if>
 		</where>
@@ -172,6 +172,7 @@ create_time_ = #{createTime},
 			count(*)
 		FROM
 			demo_group dg
+			LEFT JOIN demo_group_courses_plan dgcp ON dg.id_=dgcp.demo_group_id_
 			LEFT JOIN sys_user su ON dg.user_id_=su.id_
 		<include refid="demoGroupQueryCondition"/>
 	</select>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -164,7 +164,7 @@
         <where>
             su.user_type_='SYSTEM'
             <if test="organId != null">
-                and FIND_IN_SET(#{organId},e.organ_id_list_)
+                and su.organ_id_=#{organId}
             </if>
             <if test="roleId != null">
                 and sr.id_ = #{roleId}

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/GoodsMapper.xml

@@ -143,4 +143,7 @@
     <select id="findGoodsNumByCategoryId" resultType="int">
         SELECT COUNT(*) FROM goods WHERE goods_category_id_ = #{goodsCategoryId}
     </select>
+    <select id="findGoodsByIds" resultMap="Goods">
+        SELECT * FROM goods WHERE FIND_IN_SET(id_,#{ids})
+    </select>
 </mapper>

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -13,6 +13,7 @@
         <result column="course_fee_" property="courseFee"/>
         <result column="next_payment_date_" property="nextPaymentDate"/>
         <result column="latest_paid_time_" property="latestPaidTime"/>
+        <result column="continuous_absenteeism_times_" property="continuousAbsenteeismTimes"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
@@ -30,8 +31,8 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.MusicGroupStudentFee" useGeneratedKeys="true"
             keyColumn="id" keyProperty="id">
-		INSERT INTO music_group_student_fee_ (id_,music_group_id_,user_id_,course_fee_,create_time_,update_time_,next_payment_date_,latest_paid_time_)
-		VALUES(#{id},#{musicGroupId},#{userId},#{courseFee},now(),now(),#{nextPaymentDate},#{latestPaidTime})
+		INSERT INTO music_group_student_fee_ (id_,music_group_id_,user_id_,course_fee_,create_time_,update_time_,next_payment_date_,latest_paid_time_,continuous_absenteeism_times_)
+		VALUES(#{id},#{musicGroupId},#{userId},#{courseFee},now(),now(),#{nextPaymentDate},#{latestPaidTime},#{continuousAbsenteeismTimes})
 	</insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -56,6 +57,9 @@
             <if test="latestPaidTime != null">
                 latest_paid_time_ = #{latestPaidTime},
             </if>
+            <if test="continuousAbsenteeismTimes != null">
+                continuous_absenteeism_times_ = #{continuousAbsenteeismTimes},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 89 - 90
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectGoodsGroupMapper.xml

@@ -3,106 +3,105 @@
 <!-- 这个文件是自动生成的。 不要修改此文件。所有改动将在下次重新自动生成时丢失。 -->
 <mapper namespace="com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao">
 
-	<resultMap type="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup"
-		id="MusicGroupSubjectGoodsGroup">
-		<result column="id_" property="id" />
-		<result column="name_" property="name" />
-		<result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-		<result column="music_group_id_" property="musicGroupId" />
-		<result column="subject_id_" property="subjectId" />
-		<result column="goods_id_list_" property="goodsIdList" />
-		<result column="create_time_" property="createTime" />
-		<result column="update_time_" property="updateTime" />
-		<result column="price_" property="price" />
-	</resultMap>
+    <resultMap type="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup"
+               id="MusicGroupSubjectGoodsGroup">
+        <result column="id_" property="id"/>
+        <result column="name_" property="name"/>
+        <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="music_group_id_" property="musicGroupId"/>
+        <result column="subject_id_" property="subjectId"/>
+        <result column="goods_id_list_" property="goodsIdList"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="price_" property="price"/>
+    </resultMap>
 
-	<!-- 根据主键查询一条记录 -->
-	<select id="get" resultMap="MusicGroupSubjectGoodsGroup">
-		SELECT
-		* FROM music_group_subject_goods_group WHERE id_ = #{id}
-	</select>
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="MusicGroupSubjectGoodsGroup">
+        SELECT
+        * FROM music_group_subject_goods_group WHERE id_ = #{id}
+    </select>
 
-	<!-- 全查询 -->
-	<select id="findAll" resultMap="MusicGroupSubjectGoodsGroup">
-		SELECT * FROM
-		music_group_subject_goods_group ORDER BY id_
-	</select>
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="MusicGroupSubjectGoodsGroup">
+        SELECT *
+        FROM music_group_subject_goods_group
+        ORDER BY id_
+    </select>
 
-	<!-- 向数据库增加一条记录 -->
-	<insert id="insert"
-		parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup"
-		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO music_group_subject_goods_group
-		(id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_)
-		VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price})
-	</insert>
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert"
+            parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup"
+            useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+        INSERT INTO music_group_subject_goods_group
+        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_)
+        VALUES(#{id},#{name},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{musicGroupId},#{subjectId},#{goodsIdList},NOW(),NOW(),#{price})
+    </insert>
 
     <insert id="batchInsert" parameterType="java.util.List">
-		INSERT INTO music_group_subject_goods_group (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
-		<foreach collection="mappers" item="item" index="index" separator=",">
-			VALUES(#{item.id},#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
-		</foreach>
-	</insert>
+        INSERT INTO music_group_subject_goods_group
+        (id_,name_,type_,music_group_id_,subject_id_,goods_id_list_,create_time_,update_time_,price_) VALUES
+        <foreach collection="mappers" item="item" index="index" separator=",">
+            VALUES(#{item.id},#{item.name},#{item.type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{item.musicGroupId},#{item.subjectId},#{item.goodsIdList},NOW(),NOW(),#{item.price})
+        </foreach>
+    </insert>
 
     <!-- 根据主键查询一条记录 -->
-	<update id="update"
-		parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup">
-		UPDATE music_group_subject_goods_group
-		<set>
-			<if test="price != null">
-				price_ = #{price},
-			</if>
-			<if test="subjectId != null">
-				subject_id_ = #{subjectId},
-			</if>
-			<if test="goodsIdList != null">
-				goods_id_list_ = #{goodsIdList},
-			</if>
-			<if test="updateTime != null">
-				update_time_ = #{updateTime},
-			</if>
-			<if test="type != null">
-				type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-			</if>
-			<if test="musicGroupId != null">
-				music_group_id_ = #{musicGroupId},
-			</if>
-			<if test="name != null">
-				name_ = #{name},
-			</if>
-		</set>
-		WHERE id_ = #{id}
-	</update>
+    <update id="update"
+            parameterType="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup">
+        UPDATE music_group_subject_goods_group
+        <set>
+            <if test="price != null">
+                price_ = #{price},
+            </if>
+            <if test="subjectId != null">
+                subject_id_ = #{subjectId},
+            </if>
+            <if test="goodsIdList != null">
+                goods_id_list_ = #{goodsIdList},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+            <if test="type != null">
+                type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="musicGroupId != null">
+                music_group_id_ = #{musicGroupId},
+            </if>
+            <if test="name != null">
+                name_ = #{name},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
 
-	<!-- 根据主键删除一条记录 -->
-	<delete id="delete">
-		DELETE FROM music_group_subject_goods_group
-		WHERE id_ = #{id}
-	</delete>
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+        DELETE FROM music_group_subject_goods_group
+        WHERE id_ = #{id}
+    </delete>
 
-	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="MusicGroupSubjectGoodsGroup"
-		parameterType="map">
-		SELECT * FROM music_group_subject_goods_group ORDER BY id_
-		<include refid="global.limit" />
-	</select>
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="MusicGroupSubjectGoodsGroup"
+            parameterType="map">
+        SELECT * FROM music_group_subject_goods_group ORDER BY id_
+        <include refid="global.limit"/>
+    </select>
 
-	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM
-		music_group_subject_goods_group
-	</select>
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*)
+        FROM music_group_subject_goods_group
+    </select>
 
-	<resultMap type="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup" id="findGoodsGroupMap">
-		<result column="name_" property="name" />
-		<result column="type_" property="type" />
-		<result column="price_" property="price" />
-		<result column="id_" property="id" />
-		<collection property="goodsName" column="goods_name_" ofType="java.lang.String" javaType="java.util.List"/>
-	</resultMap>
+    <resultMap type="com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup" extends="MusicGroupSubjectGoodsGroup" id="findGoodsGroupMap">
+        <collection property="goodsList" resultMap="com.ym.mec.biz.dal.dao.GoodsDao.Goods" columnPrefix="g_" />
+    </resultMap>
     <select id="findGoodsGroup" resultMap="findGoodsGroupMap">
-		SELECT mgs.name_,mgs.type_,mgs.price_,g.name_ goods_name_,mgs.id_ FROM music_group_subject_goods_group mgs
-		LEFT JOIN goods g ON g.id_ IN (mgs.goods_id_list_)
-		WHERE mgs.music_group_id_ = #{musicGroupId} AND mgs.subject_id_ = #{subId}
-	</select>
+        SELECT mgs.*, g.id_ g_id_,g.name_ g_name_,g.market_price_  g_market_price_,g.complement_goods_id_list_ g_complement_goods_id_list_
+        FROM music_group_subject_goods_group mgs,goods g
+        WHERE FIND_IN_SET (g.id_ ,mgs.goods_id_list_)
+        AND mgs.music_group_id_ = #{musicGroupId} AND mgs.subject_id_ = #{subId}
+    </select>
 </mapper>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -97,4 +97,10 @@
         LEFT JOIN subject sb ON sb.id_ = sp.subject_id_
         WHERE sp.music_group_id_=#{musicGroupId}
     </select>
+    <select id="getMusicOneSubjectClassPlan" resultMap="MusicGroupSubjectPlan">
+        SELECT sp.*, sb.name_
+        FROM music_group_subject_plan sp
+        LEFT JOIN subject sb ON sb.id_ = sp.subject_id_
+        WHERE sp.music_group_id_=#{musicGroupId} AND sp.subject_id_=#{subjectId}
+    </select>
 </mapper>

+ 11 - 2
mec-biz/src/main/resources/config/mybatis/SysUserBankCardMapper.xml

@@ -22,6 +22,8 @@
         <result column="is_quick_" property="isQuick" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="mobile_phone_" property="mobilePhone"/>
         <result column="trans_no_" property="transNo"/>
+        <result column="id_card_no_" property="idCardNo"/>
+        <result column="real_name_" property="realName"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -43,8 +45,9 @@
         </selectKey>
         -->
         INSERT INTO sys_user_bank_card
-        (id_,user_id_,is_default_,bank_name_,bank_code_,card_no_,province_,city_,address,create_on_,modify_on_,is_quick_,mobile_phone_,trans_no_)
-        VALUES(#{id},#{userId},#{isDefault,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{bankName},#{bankCode},#{cardNo},#{province},#{city},#{address},now(),now(),#{isQuick,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{mobilePhone},#{transNo})
+        (id_,user_id_,is_default_,bank_name_,bank_code_,card_no_,province_,city_,address,create_on_,modify_on_,is_quick_,mobile_phone_,trans_no_,real_name_,id_card_no_)
+        VALUES(#{id},#{userId},#{isDefault,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{bankName},#{bankCode},#{cardNo},#{province},
+        #{city},#{address},now(),now(),#{isQuick,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{mobilePhone},#{transNo},#{realName},#{idCardNo})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -90,6 +93,12 @@
             <if test="transNo != null">
                 trans_no_ = #{transNo},
             </if>
+            <if test="idCardNo != null">
+                id_card_no_ = #{idCardNo},
+            </if>
+            <if test="realName != null">
+                real_name_ = #{realName},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 7 - 7
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -19,7 +19,7 @@
         <result column="online_classes_num_" property="onlineClassesNum"/>
         <result column="offline_classes_num_" property="offlineClassesNum"/>
         <result column="audit_status_" property="auditStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="price_" property="price"/>
+        <result column="unit_price_" property="unitPrice"/>
     </resultMap>
 
     <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
@@ -46,7 +46,7 @@
         <result column="payment_expire_date_" property="paymentExpireDate"/>
         <result column="online_classes_num_" property="onlineClassesNum"/>
         <result column="offline_classes_num_" property="offlineClassesNum"/>
-        <result column="price_" property="price"/>
+        <result column="unit_price_" property="unitPrice"/>
         <result column="expect_student_num_" property="expectStudentNum"/>
         <result column="student_num_" property="studentNum"/>
         <result column="teacher_name_" property="teacherName"/>
@@ -85,8 +85,8 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,price_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{price})
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,unit_price_)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{unitPrice})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -120,8 +120,8 @@
             <if test="registrationStartTime != null">
                 registration_start_time_ = #{registrationStartTime},
             </if>
-            <if test="price!=null">
-                price_=#{price}
+            <if test="unitPrice!=null">
+                unit_price_=#{unitPrice}
             </if>
             <if test="auditStatus != null">
                 audit_status_ = #{auditStatus,typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"},
@@ -169,7 +169,7 @@
             vg.courses_expire_date_,
             vg.online_classes_num_,
             vg.offline_classes_num_,
-            vg.price_,
+            vg.unit_price_,
             cg.expect_student_num_,
             cg.student_num_,
             su.username_ teacher_name_,

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/controller/CourseScheduleController.java

@@ -40,7 +40,7 @@ public class CourseScheduleController {
     }
 
     @PostMapping("/info")
-    @ApiOperation("课程计划详情")
+    @ApiOperation("点名详情-头信息")
     public BaseResponse<CourseScheduleResp> getInfo(@RequestBody CourseScheduleReq courseScheduleReq) {
         return courseScheduleService.getInfo(courseScheduleReq);
     }

+ 2 - 2
mec-education/src/main/java/com/ym/mec/education/controller/StudentAttendanceController.java

@@ -35,13 +35,13 @@ public class StudentAttendanceController {
     }
 
     @PostMapping("/listByCourse")
-    @ApiOperation("根据课程计划查询考勤列表")
+    @ApiOperation("点名详情-考勤列表")
     public PageResponse listByCourse(@RequestBody CourseScheduleReq courseScheduleReq) {
         return studentAttendanceService.getPageByCourse(courseScheduleReq);
     }
 
     @PostMapping("/statisticsList")
-    @ApiOperation("根据课程计划查询考勤统计列表")
+    @ApiOperation("历史考勤统计-考勤列表")
     public PageResponse statisticsList(@RequestBody CourseScheduleReq courseScheduleReq) {
         return studentAttendanceService.statisticsList(courseScheduleReq);
     }

+ 124 - 0
mec-education/src/main/java/com/ym/mec/education/entity/MusicGroupQuit.java

@@ -0,0 +1,124 @@
+package com.ym.mec.education.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import java.util.Date;
+
+/**
+ * @program: mec
+ * @description: 退团
+ * @author: xw
+ * @create: 2019-09-29 12:52
+ */
+public class MusicGroupQuit extends Model<MusicGroupQuit> {
+
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 学生id
+     */
+    @TableField("user_id_")
+    private Integer userId;
+
+    /**
+     * 乐团编号
+     */
+    @TableField("music_group_id_")
+    private Integer musicGroupId;
+
+    /**
+     * 加入时间
+     */
+    @TableField("join_date_")
+    private Date joinDate;
+
+    /**
+     * 退出时间
+     */
+    @TableField("quit_date_")
+    private Date quitDate;
+
+    /**
+     * 创建时间
+     */
+    @TableField("create_time_")
+    private Date createTime;
+
+    /**
+     * 原因
+     */
+    @TableField("reason_")
+    private String reason;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(Integer musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public Date getJoinDate() {
+        return joinDate;
+    }
+
+    public void setJoinDate(Date joinDate) {
+        this.joinDate = joinDate;
+    }
+
+    public Date getQuitDate() {
+        return quitDate;
+    }
+
+    public void setQuitDate(Date quitDate) {
+        this.quitDate = quitDate;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String reason) {
+        this.reason = reason;
+    }
+
+    @Override
+    public String toString() {
+        return "MusicGroupQuit{" +
+                "id=" + id +
+                ", userId=" + userId +
+                ", musicGroupId=" + musicGroupId +
+                ", joinDate=" + joinDate +
+                ", quitDate=" + quitDate +
+                ", createTime=" + createTime +
+                ", reason='" + reason + '\'' +
+                '}';
+    }
+}

+ 49 - 8
mec-education/src/main/java/com/ym/mec/education/entity/MusicGroupStudentFee.java

@@ -37,7 +37,21 @@ public class MusicGroupStudentFee extends Model<MusicGroupStudentFee> {
     private Date createTime;
     @TableField("update_time_")
     private Date updateTime;
-
+    /**
+     * 下次缴费日期
+     */
+    @TableField("next_payment_date_")
+    private Date nextPaymentDate;
+    /**
+     * 最近已缴费时间
+     */
+    @TableField("latest_paid_time_")
+    private Date latestPaidTime;
+    /**
+     * 连续旷课次数
+     */
+    @TableField("continuous_absenteeism_times_")
+    private Integer continuousAbsenteeismTimes;
 
     public Long getId() {
         return id;
@@ -93,6 +107,30 @@ public class MusicGroupStudentFee extends Model<MusicGroupStudentFee> {
         return this;
     }
 
+    public Date getNextPaymentDate() {
+        return nextPaymentDate;
+    }
+
+    public void setNextPaymentDate(Date nextPaymentDate) {
+        this.nextPaymentDate = nextPaymentDate;
+    }
+
+    public Date getLatestPaidTime() {
+        return latestPaidTime;
+    }
+
+    public void setLatestPaidTime(Date latestPaidTime) {
+        this.latestPaidTime = latestPaidTime;
+    }
+
+    public Integer getContinuousAbsenteeismTimes() {
+        return continuousAbsenteeismTimes;
+    }
+
+    public void setContinuousAbsenteeismTimes(Integer continuousAbsenteeismTimes) {
+        this.continuousAbsenteeismTimes = continuousAbsenteeismTimes;
+    }
+
     @Override
     protected Serializable pkVal() {
         return this.id;
@@ -101,12 +139,15 @@ public class MusicGroupStudentFee extends Model<MusicGroupStudentFee> {
     @Override
     public String toString() {
         return "MusicGroupStudentFee{" +
-        ", id=" + id +
-        ", musicGroupId=" + musicGroupId +
-        ", userId=" + userId +
-        ", courseFee=" + courseFee +
-        ", createTime=" + createTime +
-        ", updateTime=" + updateTime +
-        "}";
+                "id=" + id +
+                ", musicGroupId=" + musicGroupId +
+                ", userId=" + userId +
+                ", courseFee=" + courseFee +
+                ", createTime=" + createTime +
+                ", updateTime=" + updateTime +
+                ", nextPaymentDate=" + nextPaymentDate +
+                ", latestPaidTime=" + latestPaidTime +
+                ", continuousAbsenteeismTimes=" + continuousAbsenteeismTimes +
+                '}';
     }
 }

+ 7 - 7
mec-education/src/main/java/com/ym/mec/education/entity/VipGroup.java

@@ -75,8 +75,8 @@ public class VipGroup extends Model<VipGroup> {
     /**
      * 价格
      */
-    @TableField("price_")
-    private BigDecimal price;
+    @TableField("unit_price_")
+    private BigDecimal unitPrice;
     /**
      * 审核状态
      */
@@ -206,12 +206,12 @@ public class VipGroup extends Model<VipGroup> {
         return this;
     }
 
-    public BigDecimal getPrice() {
-        return price;
+    public BigDecimal getUnitPrice() {
+        return unitPrice;
     }
 
-    public VipGroup setPrice(BigDecimal price) {
-        this.price = price;
+    public VipGroup setUnitPrice(BigDecimal unitPrice) {
+        this.unitPrice = unitPrice;
         return this;
     }
 
@@ -254,7 +254,7 @@ public class VipGroup extends Model<VipGroup> {
         ", registrationStartTime=" + registrationStartTime +
         ", name=" + name +
         ", vipGroupCategoryId=" + vipGroupCategoryId +
-        ", price=" + price +
+        ", unitPrice=" + unitPrice +
         ", auditStatus=" + auditStatus +
         ", organIdList=" + organIdList +
         "}";

+ 13 - 0
mec-education/src/main/java/com/ym/mec/education/mapper/MusicGroupQuitMapper.java

@@ -0,0 +1,13 @@
+package com.ym.mec.education.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ym.mec.education.entity.MusicGroupQuit;
+
+/**
+ * @program: mec
+ * @description: 退团mapper
+ * @author: xw
+ * @create: 2019-09-29 13:02
+ */
+public interface MusicGroupQuitMapper extends BaseMapper<MusicGroupQuit> {
+}

+ 1 - 2
mec-education/src/main/java/com/ym/mec/education/mapper/MusicGroupStudentFeeMapper.java

@@ -1,8 +1,7 @@
 package com.ym.mec.education.mapper;
 
 import com.ym.mec.education.entity.MusicGroupStudentFee;
-import com.baomidou.mybatisplus.mapper.BaseMapper;
-
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 /**
  * <p>
  * 乐团学生费用表 Mapper 接口

+ 4 - 1
mec-education/src/main/java/com/ym/mec/education/mapper/xml/MusicGroupStudentFeeMapper.xml

@@ -10,11 +10,14 @@
         <result column="course_fee_" property="courseFee" />
         <result column="create_time_" property="createTime" />
         <result column="update_time_" property="updateTime" />
+        <result column="next_payment_date_" property="nextPaymentDate" />
+        <result column="latest_paid_time_" property="latestPaidTime" />
+        <result column="continuous_absenteeism_times_" property="continuousAbsenteeismTimes" />
     </resultMap>
 
     <!-- 通用查询结果列 -->
     <sql id="Base_Column_List">
-        id_, music_group_id_, user_id_, course_fee_, create_time_, update_time_
+        id_, music_group_id_, user_id_, course_fee_, create_time_, update_time_, next_payment_date_, latest_paid_time_, continuous_absenteeism_times_
     </sql>
 
 </mapper>

+ 1 - 4
mec-education/src/main/java/com/ym/mec/education/resp/CourseScheduleResp.java

@@ -5,9 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.ToString;
 import lombok.experimental.Accessors;
-import org.springframework.format.annotation.DateTimeFormat;
 import java.io.Serializable;
-import java.util.Date;
 import java.util.List;
 
 /**
@@ -35,8 +33,7 @@ public class CourseScheduleResp implements Serializable {
     private String teacher;
 
     @ApiModelProperty(value = "最后提交时间")
-    @DateTimeFormat(pattern = "MM-dd HH:mm")
-    private Date lastCommitDate;
+    private String lastCommitDate;
 
     @ApiModelProperty(value = "到课比")
     private String attendanceRate;

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/resp/StudentAttendanceStatisticsResp.java

@@ -22,7 +22,7 @@ public class StudentAttendanceStatisticsResp implements Serializable {
     private String studentName;
 
     @ApiModelProperty(value = "是否连续旷课")
-    private boolean isTruant;
+    private boolean isTruant = false;
 
     @ApiModelProperty(value = "声部名称")
     private List<String> subjectName;

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/resp/StudentListResp.java

@@ -20,6 +20,6 @@ public class StudentListResp implements Serializable {
     @ApiModelProperty(value = "学员名称",required = true)
     private String studentName;
 
-    @ApiModelProperty(value = "学员迟到情况",required = true)
+    @ApiModelProperty(value = "学员连续迟到情况",required = true)
     private String studentAttendance;
 }

+ 14 - 0
mec-education/src/main/java/com/ym/mec/education/service/IMusicGroupQuitService.java

@@ -0,0 +1,14 @@
+package com.ym.mec.education.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ym.mec.education.entity.MusicGroupQuit;
+
+/**
+ * @program: mec
+ * @description: 退团
+ * @author: xw
+ * @create: 2019-09-29 12:52
+ */
+public interface IMusicGroupQuitService extends IService<MusicGroupQuit> {
+
+}

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/IMusicGroupStudentFeeService.java

@@ -1,7 +1,7 @@
 package com.ym.mec.education.service;
 
+import com.baomidou.mybatisplus.extension.service.IService;
 import com.ym.mec.education.entity.MusicGroupStudentFee;
-import com.baomidou.mybatisplus.service.IService;
 
 /**
  * <p>

+ 19 - 12
mec-education/src/main/java/com/ym/mec/education/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -6,22 +6,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.Lists;
 import com.ym.mec.education.base.PageResponse;
+import com.ym.mec.education.entity.ClassGroup;
 import com.ym.mec.education.entity.ClassGroupStudentMapper;
-import com.ym.mec.education.entity.StudentAttendance;
+import com.ym.mec.education.entity.MusicGroupStudentFee;
 import com.ym.mec.education.entity.SysUser;
-import com.ym.mec.education.enums.StudentAttendanceStatusEnum;
 import com.ym.mec.education.mapper.ClassGroupStudentMapperMapper;
 import com.ym.mec.education.req.ClassGroupReq;
 import com.ym.mec.education.resp.ClassStudentResp;
 import com.ym.mec.education.resp.StudentListResp;
+import com.ym.mec.education.service.IClassGroupService;
 import com.ym.mec.education.service.IClassGroupStudentMapperService;
-import com.ym.mec.education.service.IStudentAttendanceService;
+import com.ym.mec.education.service.IMusicGroupStudentFeeService;
 import com.ym.mec.education.service.ISysUserService;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * <p>
@@ -35,9 +37,11 @@ import java.util.Objects;
 public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupStudentMapperMapper, ClassGroupStudentMapper> implements IClassGroupStudentMapperService {
 
     @Autowired
-    private IStudentAttendanceService studentAttendanceService;
-    @Autowired
     private ISysUserService sysUserService;
+    @Autowired
+    private IClassGroupService classGroupService;
+    @Autowired
+    private IMusicGroupStudentFeeService musicGroupStudentFeeService;
 
 
     @Override
@@ -45,6 +49,7 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
         if (Objects.isNull(classGroupReq.getGroupId())) {
             return PageResponse.errorParam();
         }
+        ClassGroup classGroup = classGroupService.getById(classGroupReq.getGroupId());
         Page<ClassGroupStudentMapper> classGroupStudentMapperPage = new Page<ClassGroupStudentMapper>(classGroupReq.getPageNo(), classGroupReq.getPageSize());
         QueryWrapper<ClassGroupStudentMapper> classGroupStudentMapperQueryWrapper = new QueryWrapper<>();
         classGroupStudentMapperQueryWrapper.lambda().eq(true, ClassGroupStudentMapper::getClassGroupId, classGroupReq.getGroupId());
@@ -53,15 +58,17 @@ public class ClassGroupStudentMapperServiceImpl extends ServiceImpl<ClassGroupSt
         BeanUtils.copyProperties(page, studentListRespPage);
         List<StudentListResp> list = Lists.newArrayList();
         page.getRecords().forEach(item -> {
-            QueryWrapper<StudentAttendance> queryWrapper = new QueryWrapper<>();
-            //请假 旷课正常上课次数
-            queryWrapper.lambda().eq(true, StudentAttendance::getUserId, item.getUserId())
-                    .in(true, StudentAttendance::getStatus, StudentAttendanceStatusEnum.TRUANT.getCode(),
-                            StudentAttendanceStatusEnum.LEAVE.getCode());
-            int count = studentAttendanceService.count(queryWrapper);
             SysUser sysUser = sysUserService.getById(item.getUserId());
             StudentListResp studentRegistrationResp = new StudentListResp()
-                    .setStudentName(sysUser.getRealName()).setStudentAttendance("连续缺到" + count + "次");
+                    .setStudentName(sysUser.getRealName());
+            if (Objects.nonNull(classGroup) && Objects.nonNull(classGroup.getMusicGroupId())) {
+                QueryWrapper<MusicGroupStudentFee> musicGroupStudentFeeQueryWrapper = new QueryWrapper<MusicGroupStudentFee>();
+                musicGroupStudentFeeQueryWrapper.lambda().eq(true, MusicGroupStudentFee::getMusicGroupId, classGroup.getMusicGroupId())
+                        .eq(true, MusicGroupStudentFee::getUserId, item.getUserId());
+                MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeService.getOne(musicGroupStudentFeeQueryWrapper);
+                Optional.of(musicGroupStudentFee).ifPresent(groupStudentFee -> studentRegistrationResp.
+                        setStudentAttendance("连续缺到" + groupStudentFee.getContinuousAbsenteeismTimes() + "次"));
+            }
             list.add(studentRegistrationResp);
         });
         studentListRespPage.setRecords(list);

+ 8 - 2
mec-education/src/main/java/com/ym/mec/education/service/impl/CourseScheduleServiceImpl.java

@@ -46,6 +46,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleMapper,
     private ISubjectService subjectService;
     @Autowired
     private IStudentAttendanceService studentAttendanceService;
+    @Autowired
+    private IMusicGroupQuitService musicGroupQuitService;
 
     @Override
     public PageResponse getPage(ClassGroupReq classGroupReq) {
@@ -119,7 +121,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleMapper,
             List<StudentAttendance> studentAttendanceList = studentAttendanceService.list(studentAttendanceQueryWrapper);
             if (!CollectionUtils.isEmpty(studentAttendanceList)) {
                 studentAttendanceList.stream().findFirst().ifPresent(studentAttendance ->
-                        courseScheduleResp.setLastCommitDate(studentAttendance.getCreateTime()));
+                        courseScheduleResp.setLastCommitDate(DateUtil.date2String(studentAttendance.getCreateTime(), DateUtil.DATE_FORMAT_HOUR)));
             }
             QueryWrapper<StudentAttendance> leaveWrapper = new QueryWrapper<>();
             QueryWrapper<StudentAttendance> normalWrapper = new QueryWrapper<>();
@@ -158,7 +160,11 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleMapper,
                     courseScheduleResp.setStudentNum(classGroup.getStudentNum());
                 }
             }
-            //TODO 暂缺退团人数
+            //退团人数
+            QueryWrapper<MusicGroupQuit> musicGroupQuitQueryWrapper = new QueryWrapper<>();
+            musicGroupQuitQueryWrapper.lambda().eq(true, MusicGroupQuit::getMusicGroupId, classGroup.getMusicGroupId());
+            int leagueNum = musicGroupQuitService.count(musicGroupQuitQueryWrapper);
+            courseScheduleResp.setLeagueNum(leagueNum);
         }
         return BaseResponse.success(courseScheduleResp);
     }

+ 18 - 0
mec-education/src/main/java/com/ym/mec/education/service/impl/MusicGroupQuitServiceImpl.java

@@ -0,0 +1,18 @@
+package com.ym.mec.education.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.education.entity.MusicGroupQuit;
+import com.ym.mec.education.mapper.MusicGroupQuitMapper;
+import com.ym.mec.education.service.IMusicGroupQuitService;
+import org.springframework.stereotype.Service;
+
+/**
+ * @program: mec
+ * @description: 退团实现类
+ * @author: xw
+ * @create: 2019-09-29 12:52
+ */
+@Service("IMusicGroupQuitService")
+public class MusicGroupQuitServiceImpl extends ServiceImpl<MusicGroupQuitMapper, MusicGroupQuit> implements IMusicGroupQuitService {
+
+}

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/impl/MusicGroupStudentFeeServiceImpl.java

@@ -1,9 +1,9 @@
 package com.ym.mec.education.service.impl;
 
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ym.mec.education.entity.MusicGroupStudentFee;
 import com.ym.mec.education.mapper.MusicGroupStudentFeeMapper;
 import com.ym.mec.education.service.IMusicGroupStudentFeeService;
-import com.baomidou.mybatisplus.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
 
 /**

+ 17 - 4
mec-education/src/main/java/com/ym/mec/education/service/impl/StudentAttendanceServiceImpl.java

@@ -21,8 +21,10 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * <p>
@@ -45,10 +47,12 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
     private ISysUserService userService;
     @Autowired
     private IClassGroupStudentMapperService classGroupStudentMapperService;
+    @Autowired
+    private IMusicGroupStudentFeeService musicGroupStudentFeeService;
 
     @Override
     public PageResponse getPage(ClassGroupReq classGroupReq) {
-        if (Objects.isNull(classGroupReq.getGroupId())){
+        if (Objects.isNull(classGroupReq.getGroupId())) {
             return PageResponse.errorParam();
         }
         Page<StudentAttendance> pageParam = new Page(classGroupReq.getPageNo(), classGroupReq.getPageSize());
@@ -102,7 +106,7 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
             return PageResponse.errorParam();
         }
         Page<StudentAttendanceResp> pageResult = new Page<>();
-        Page<StudentAttendance> studentAttendancePage = new Page<>(courseScheduleReq.getPageNo(), courseScheduleReq.getPageSize());
+        Page<StudentAttendance> studentAttendancePage = new Page<StudentAttendance>(courseScheduleReq.getPageNo(), courseScheduleReq.getPageSize());
         QueryWrapper<StudentAttendance> queryWrapper = new QueryWrapper<>();
         queryWrapper.lambda().eq(true, StudentAttendance::getCourseScheduleId, courseScheduleReq.getCourseScheduleId());
         IPage<StudentAttendance> page = page(studentAttendancePage, queryWrapper);
@@ -131,7 +135,7 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
         if (Objects.isNull(courseScheduleReq.getCourseScheduleId())) {
             PageResponse.errorParam();
         }
-        Page<ClassGroupStudentMapper> classGroupStudentMapperPage = new Page<>(courseScheduleReq.getPageNo(), courseScheduleReq.getPageSize());
+        Page<ClassGroupStudentMapper> classGroupStudentMapperPage = new Page<ClassGroupStudentMapper>(courseScheduleReq.getPageNo(), courseScheduleReq.getPageSize());
         Page<StudentAttendanceStatisticsResp> pageResult = new Page();
         CourseSchedule courseSchedule = courseScheduleService.getById(courseScheduleReq.getCourseScheduleId());
         if (Objects.nonNull(courseSchedule)) {
@@ -153,7 +157,16 @@ public class StudentAttendanceServiceImpl extends ServiceImpl<StudentAttendanceM
                             resp.setStudentName(user.getRealName());
                         }
                         resp.setSubjectName(subjectNameList);
-                        //TODO 暂时缺少是否连续旷课
+                        //是否连续旷课
+                        QueryWrapper<MusicGroupStudentFee> musicGroupStudentFeeQueryWrapper = new QueryWrapper<MusicGroupStudentFee>();
+                        musicGroupStudentFeeQueryWrapper.lambda().eq(true, MusicGroupStudentFee::getMusicGroupId, classGroup.getMusicGroupId())
+                                .eq(true, MusicGroupStudentFee::getUserId, item.getUserId());
+                        MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeService.getOne(musicGroupStudentFeeQueryWrapper);
+                        if (Objects.nonNull(musicGroupStudentFee) && Objects.nonNull(musicGroupStudentFee.getContinuousAbsenteeismTimes())) {
+                            if (musicGroupStudentFee.getContinuousAbsenteeismTimes() > 1) {
+                                resp.setTruant(true);
+                            }
+                        }
                         //到课天数
                         QueryWrapper<StudentAttendance> normalWrapper = new QueryWrapper<>();
                         normalWrapper.lambda().eq(true, StudentAttendance::getCourseScheduleId, courseScheduleReq.getCourseScheduleId())

+ 3 - 5
mec-education/src/main/java/com/ym/mec/education/utils/DateUtil.java

@@ -19,14 +19,12 @@ public class DateUtil {
     private static final String DATE_FORMAT_CHINESE = "MM月dd日";
     private static final String TIME_FORMAT = "HH:mm";
     public static final String DATE_FORMAT = "MM-dd";
+    public static final String DATE_FORMAT_HOUR = "MM-dd HH:mm";
     private static ThreadLocal<DateFormat> threadLocal = new ThreadLocal<DateFormat>();
 
     public static DateFormat getDateFormat(String dateFormat) {
-        DateFormat df = threadLocal.get();
-        if (df == null) {
-            df = new SimpleDateFormat(dateFormat);
-            threadLocal.set(df);
-        }
+        DateFormat df = new SimpleDateFormat(dateFormat);
+        threadLocal.set(df);
         return df;
     }
 

+ 7 - 1
mec-student/pom.xml

@@ -50,7 +50,13 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-biz</artifactId>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>com.ym</groupId>
+            <artifactId>mec-auth-server</artifactId>
+            <version>1.0</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
 	<build>
 		<plugins>
 			<plugin>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -22,7 +22,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
-		http.csrf().disable().authorizeRequests().antMatchers("/v2/api-docs", "/register/findSubByMusicGroupId").permitAll().anyRequest().authenticated().and().httpBasic();
+		http.csrf().disable().authorizeRequests().antMatchers("/v2/api-docs", "/register/findSubByMusicGroupId","/register/findGoodsGroups").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 
 	@Override

+ 14 - 0
mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java

@@ -2,14 +2,17 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.security.SecurityUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -56,4 +59,15 @@ public class CourseController extends BaseController {
         }
         return succeed(classGroupService.get(Integer.parseInt(groupId.substring(2))));
     }
+
+    @ApiOperation(value = "分页获取学员购买记录")
+    @PostMapping("/queryStudentPayLog")
+    public Object queryStudentPayLog(StudentPayLogQueryInfo studentPayLogQueryInfo){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null || sysUser.getId() == null){
+            return failed("获取用户失败");
+        }
+        studentPayLogQueryInfo.setUserId(sysUser.getId());
+        return succeed(classGroupService.queryStudentPayLog(studentPayLogQueryInfo));
+    }
 }

+ 53 - 8
mec-student/src/main/java/com/ym/mec/student/controller/RegisterController.java

@@ -1,10 +1,16 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.biz.dal.entity.StudentRegistration;
-import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfo;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -12,6 +18,11 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.annotation.Resource;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.Map;
+
 @RequestMapping("register")
 @Api(tags = "乐团注册")
 @RestController
@@ -21,19 +32,53 @@ public class RegisterController extends BaseController {
     private StudentRegistrationService studentRegistrationService;
     @Autowired
     private SubjectService subjectService;
+    @Autowired
+    private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
+    @Resource
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private MusicGroupService musicGroupService;
 
 
     @ApiOperation(value = "新增学生报名信息")
     @PostMapping("/add")
     public Object add(StudentRegistration studentRegistration) {
-        studentRegistrationService.insert(studentRegistration);
-        return succeed(studentRegistration);
+        MusicGroup musicGroup = musicGroupService.get(studentRegistration.getMusicGroupId().toString());
+        studentRegistration.setOrganId(musicGroup.getOrganId());
+        return succeed(studentRegistrationService.addStudent(studentRegistration));
     }
 
-    @ApiOperation(value = "通过乐团编号获取声部列表")
-    @GetMapping("/findSubByMusicGroupId")
+    @ApiOperation(value = "获取乐团报名所需信息")
+    @GetMapping("/getMusicGroupRegInfo")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
-    public Object findSubByMusicGroupId(Integer musicGroupId) {
-        return succeed(subjectService.findSubByMusicGroupId(musicGroupId));
+    public HttpResponseResult getMusicGroupRegInfo(Integer musicGroupId) {
+        return succeed(musicGroupSubjectPlanService.getMusicGroupRegInfo(musicGroupId));
     }
+
+
+    @ApiOperation(value = "获取乐团声部费用信息及乐器和辅件")
+    @GetMapping("/findGoodsGroups")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
+    public HttpResponseResult findGoodsGroups(Integer musicGroupId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        MusicGroupSubjectGoodsAndInfo subjectGoodsAndInfo = musicGroupSubjectPlanService.getSubjectGoodsAndInfo(musicGroupId, 1);
+        return succeed(subjectGoodsAndInfo);
+    }
+
+    @ApiOperation(value = "乐团报名支付")
+    @GetMapping("/pay")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "Integer")})
+    public HttpResponseResult Pay(StudentPaymentOrder studentPaymentOrder) {
+        Map<String, Object> rqMap = new LinkedHashMap<String, Object>();
+        rqMap.put("merNo", "07654478");
+        rqMap.put("version", "v1");
+        rqMap.put("notifyUrl", "https://notify.cpm");
+        rqMap.put("timestamp", new Date().getTime());
+        rqMap.put("apiContent", "ap");
+        rqMap.put("signType", "signType");
+        rqMap.put("sign", "sign");
+        rqMap.put("payUrl", "http://pay.url");
+        return succeed(rqMap);
+    }
+
 }

+ 3 - 4
mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseScheduleController.java

@@ -29,15 +29,14 @@ public class StudentCourseScheduleController extends BaseController {
 
     @ApiOperation(value = "根据月份获取乐团在该月有课的日期")
     @GetMapping("/getCourseScheduleDateByMonth")
-    public Object getCourseScheduleDateByMonth(@ApiParam(value = "乐团编号", required = true) @RequestParam Long musicGroupID,
-                                               @ApiParam(value = "月份", required = true) @RequestParam Date month) {
-        return succeed(scheduleService.getCourseScheduleDateByMonth(musicGroupID,month));
+    public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month) {
+        return succeed(scheduleService.getCourseScheduleDateByStudent(month));
     }
 
     @ApiOperation(value = "根据日期获取当日排课")
     @GetMapping("/getCourseSchedulesWithDate")
     public Object getCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date){
-        return succeed(scheduleService.getCourseSchedulesWithDate(date));
+        return succeed(scheduleService.getStudentCourseSchedulesWithDate(date));
     }
 
     @ApiOperation(value = "课时调整")

+ 17 - 4
mec-student/src/main/java/com/ym/mec/student/controller/StudentDemoGroupController.java

@@ -1,14 +1,17 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.biz.dal.dto.QueryConditionDto;
 import com.ym.mec.biz.dal.page.StudentDemoGroupQueryInfo;
 import com.ym.mec.biz.service.DemoGroupService;
+import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * @Author Joburgess
@@ -21,10 +24,20 @@ public class StudentDemoGroupController extends BaseController {
 
     @Autowired
     private DemoGroupService demoGroupService;
+    @Autowired
+    private SubjectService subjectService;
+
+    @ApiOperation("获取试听课筛选条件")
+    @GetMapping(value = "/findQueryCondition")
+    public Object findQueryCondition(){
+        List<QueryConditionDto> conditions=new ArrayList<>();
+        conditions.add(new QueryConditionDto("乐器选择","subjectId",subjectService.findSubjectConditions()));
+        return succeed(conditions);
+    }
 
     @ApiOperation(value = "试听课列表获取")
     @PostMapping("/queryStudentDemoGroups")
-    public Object queryStudentDemoGroups(StudentDemoGroupQueryInfo queryInfo){
+    public Object queryStudentDemoGroups(@RequestBody StudentDemoGroupQueryInfo queryInfo){
         return succeed(demoGroupService.queryStudentDemoGroups(queryInfo));
     }
 

+ 40 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherCourseScheduleController.java

@@ -0,0 +1,40 @@
+package com.ym.mec.teacher.controller;
+
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.common.controller.BaseController;
+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.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/27
+ */
+@RequestMapping("teacherCourseSchedule")
+@Api(tags = "课程计划服务")
+@RestController
+public class TeacherCourseScheduleController extends BaseController {
+
+    @Autowired
+    private CourseScheduleService scheduleService;
+
+    @ApiOperation(value = "根据月份获取乐团在该月有课的日期")
+    @GetMapping("/getCourseScheduleDateByMonth")
+    public Object getCourseScheduleDateByMonth(@ApiParam(value = "月份", required = true) @RequestParam Date month) {
+        return succeed(scheduleService.getCourseScheduleDateByTeacher(month));
+    }
+
+    @ApiOperation(value = "根据日期获取当日排课")
+    @GetMapping("/getCourseSchedulesWithDate")
+    public Object getCourseSchedulesWithDate(@ApiParam(value = "日期", required = true) Date date){
+        return succeed(scheduleService.getTeacherCourseSchedulesWithDate(date));
+    }
+
+}

+ 5 - 4
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/eseal/provider/TsignPlugin.java

@@ -27,18 +27,19 @@ import com.timevale.esign.sdk.tech.service.UserSignService;
 import com.timevale.esign.sdk.tech.v3.client.ServiceClient;
 import com.timevale.esign.sdk.tech.v3.client.ServiceClientManager;
 import com.timevale.tech.sdk.bean.ProjectConfig;
+import com.ym.mec.thirdparty.eseal.ESealPlugin;
 import com.ym.mec.thirdparty.exception.ThirdpartyException;
 
 @Service
-public class TsignPlugin implements InitializingBean, DisposableBean {
+public class TsignPlugin implements ESealPlugin, InitializingBean, DisposableBean {
 
-	@Value("${eseal.tsign.projectid:1}")
+	@Value("${eseal.tsign.projectid:1111563517}")
 	public String projectId; // = "1111563517";
 
-	@Value("${eseal.tsign.projectSecret:1}")
+	@Value("${eseal.tsign.projectSecret:95439b0863c241c63a861b87d1e647b7}")
 	public String projectSecret; // = "95439b0863c241c63a861b87d1e647b7";
 
-	@Value("${eseal.tsign.apisUrl:1}")
+	@Value("${eseal.tsign.apisUrl:http://smlitsm.tsign.cn:8080/tgmonitor/rest/app!getAPIInfo2}")
 	public String apisUrl; // = "http://smlitsm.tsign.cn:8080/tgmonitor/rest/app!getAPIInfo2";
 
 	private ServiceClient serviceClient;

+ 6 - 4
mec-web/src/main/java/com/ym/mec/web/controller/SysUserBankCardController.java

@@ -23,19 +23,21 @@ public class SysUserBankCardController extends BaseController {
     @ApiOperation(value = "新增银行卡信息")
     @PostMapping("/add")
     public Object add(SysUserBankCard sysUserBankCard) {
-        sysUserBankCardService.insert(sysUserBankCard);
-        return succeed();
+        if(sysUserBankCard == null){
+            return failed("参数校验异常");
+        }
+        return sysUserBankCardService.add(sysUserBankCard)?succeed():failed();
     }
 
     @ApiOperation(value = "删除银行卡信息")
-    @PostMapping("/del/{id}")
+    @PostMapping("/del")
     public Object del(@ApiParam(value = "银行卡信息编号", required = true) @PathVariable("id") Long id) {
         sysUserBankCardService.delete(id);
         return succeed();
     }
 
     @ApiOperation(value = "修改银行卡信息")
-    @PutMapping("/update")
+    @PostMapping("/update")
     public Object update(SysUserBankCard sysUserBankCard) {
         sysUserBankCard.setModifyOn(new Date());
         sysUserBankCardService.update(sysUserBankCard);

+ 10 - 34
mec-web/src/main/java/com/ym/mec/web/controller/SysUserCashAccountController.java

@@ -1,20 +1,16 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.entity.ChargeType;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.service.ChargeTypeService;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
-import com.ym.mec.common.security.AuthUser;
-import com.ym.mec.common.security.SecurityUtils;
 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.*;
-
-import java.util.Date;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 @RequestMapping("userCashAccount")
 @Api(tags = "用户账户服务")
@@ -23,39 +19,19 @@ public class SysUserCashAccountController extends BaseController {
 
     @Autowired
     private SysUserCashAccountService sysUserCashAccountService;
-
-//    @ApiOperation(value = "新增用户账户")
-//    @PostMapping("/add")
-//    public Object add(SysUserCashAccount sysUserCashAccount) {
-//        sysUserCashAccountService.insert(sysUserCashAccount);
-//        return succeed();
-//    }
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "获取用户账户信息")
     @GetMapping("/get")
     public Object add() {
-        AuthUser user = SecurityUtils.getUser();
-        if(user == null){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
             return failed("请重新登录");
         }
-        return succeed(sysUserCashAccountService.get(user.getUserId()));
+        return succeed(sysUserCashAccountService.get(sysUser.getId()));
     }
 
-//    @ApiOperation(value = "删除收费类型")
-//    @PostMapping("/del/{id}")
-//    public Object del(@ApiParam(value = "收费类型编号", required = true) @PathVariable("id") Integer id) {
-//        sysUserCashAccountService.delete(id);
-//        return succeed();
-//    }
-//
-//    @ApiOperation(value = "修改收费类型")
-//    @PostMapping("/update")
-//    public Object update(SysUserCashAccount sysUserCashAccount) {
-//        sysUserCashAccount.setUpdateTime(new Date());
-//        sysUserCashAccountService.update(sysUserCashAccount);
-//        return succeed();
-//    }
-
     @ApiOperation(value = "分页查询收费类型列表")
     @GetMapping("/queryPage")
     public Object queryPage(QueryInfo queryInfo) {