Browse Source

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

周箭河 5 years ago
parent
commit
ca2436c844
92 changed files with 2356 additions and 246 deletions
  1. 1 1
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/SysUserFeignService.java
  2. 1 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/fallback/SysUserFeignServiceFallback.java
  3. 10 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysRole.java
  4. 47 10
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java
  5. 5 21
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java
  6. 6 2
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysRoleMapper.xml
  7. 16 4
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  8. 0 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  9. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupClassGroupMapperDao.java
  10. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupCoursesPlanDao.java
  11. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupDao.java
  12. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  13. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRechargeDao.java
  14. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentWithdrawDao.java
  15. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysAreaDao.java
  16. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserCashAccountDetailDao.java
  17. 0 7
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java
  18. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CashAccountDetail.java
  19. 37 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ConditionDto.java
  20. 94 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseListDto.java
  21. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EmployeeDto.java
  22. 54 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WithdrawDto.java
  23. 134 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WithdrawInfoDto.java
  24. 92 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroup.java
  25. 59 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroupClassGroupMapper.java
  26. 59 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroupCoursesPlan.java
  27. 37 24
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserCashAccountDetail.java
  28. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java
  29. 4 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TransTypeEnum.java
  30. 136 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentCashDetailQueryInfo.java
  31. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRechargeQueryInfo.java
  32. 30 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVipGroupQueryInfo.java
  33. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleService.java
  34. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupClassGroupMapperService.java
  35. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupCoursesPlanService.java
  36. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupService.java
  37. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRechargeService.java
  38. 19 1
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentWithdrawService.java
  39. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysAreaService.java
  40. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java
  41. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  42. 24 34
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  43. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupClassGroupMapperServiceImpl.java
  44. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupCoursesPlanServiceImpl.java
  45. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java
  46. 10 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java
  47. 134 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java
  48. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysAreaServiceImpl.java
  49. 5 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountDetailServiceImpl.java
  50. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  51. 0 18
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  52. 68 0
      mec-biz/src/main/resources/config/mybatis/DemoGroupClassGroupMapperMapper.xml
  53. 68 0
      mec-biz/src/main/resources/config/mybatis/DemoGroupCoursesPlanMapper.xml
  54. 80 0
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  55. 9 3
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  56. 4 0
      mec-biz/src/main/resources/config/mybatis/StudentRechargeMapper.xml
  57. 12 2
      mec-biz/src/main/resources/config/mybatis/StudentWithdrawMapper.xml
  58. 3 0
      mec-biz/src/main/resources/config/mybatis/SysAreaMapper.xml
  59. 14 4
      mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml
  60. 17 12
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  61. 38 0
      mec-client-api/src/main/java/com/ym/im/ImFeignService.java
  62. 21 0
      mec-client-api/src/main/java/com/ym/im/fallback/ImFeignServiceFallback.java
  63. 41 0
      mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImGroupMember.java
  64. 69 0
      mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImGroupModel.java
  65. 3 4
      mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/UploadFileService.java
  66. 11 0
      mec-common/common-core/src/main/java/com/ym/mec/common/utils/DateUtils.java
  67. 28 2
      mec-education/pom.xml
  68. 1 8
      mec-education/src/main/java/com/ym/mec/education/EducationApplication.java
  69. 22 0
      mec-education/src/main/java/com/ym/mec/education/config/MybatisPlusConfig.java
  70. 2 0
      mec-education/src/main/java/com/ym/mec/education/config/ResourceServerConfig.java
  71. 8 4
      mec-education/src/main/java/com/ym/mec/education/config/WebMvcConfig.java
  72. 139 0
      mec-education/src/main/java/com/ym/mec/education/entity/SysUser.java
  73. 16 0
      mec-education/src/main/java/com/ym/mec/education/mapper/SysUserMapper.java
  74. 36 0
      mec-education/src/main/java/com/ym/mec/education/mapper/xml/SysUserMapper.xml
  75. 16 0
      mec-education/src/main/java/com/ym/mec/education/service/ISysUserService.java
  76. 21 0
      mec-education/src/main/java/com/ym/mec/education/service/impl/SysUserServiceImpl.java
  77. 167 0
      mec-education/src/main/java/test/MpGenerator.java
  78. 14 11
      mec-education/src/main/resources/application.yml
  79. 1 0
      mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java
  80. 20 0
      mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java
  81. 5 2
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  82. 27 2
      mec-student/src/main/java/com/ym/mec/student/controller/StudentVipGroupController.java
  83. 41 0
      mec-student/src/main/java/com/ym/mec/student/controller/WithdrawController.java
  84. 2 2
      mec-student/src/main/resources/application.yml
  85. 3 3
      mec-thirdparty/src/main/java/com/ym/mec/thirdparty/storage/vendors/AliyunOssStoragePlugin.java
  86. 4 12
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  87. 8 6
      mec-web/src/main/java/com/ym/mec/web/controller/SysAreaController.java
  88. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/education/EmployeeController.java
  89. 81 0
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCashAccountDetailController.java
  90. 2 6
      mec-web/src/main/java/com/ym/mec/web/controller/system/VipGroupManageController.java
  91. 2 6
      mec-web/src/main/java/com/ym/mec/web/controller/teacher/TeacherVipGroupController.java
  92. 9 0
      mec-web/src/test/java/com/ym/Test.java

+ 1 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/SysUserFeignService.java

@@ -26,5 +26,5 @@ public interface SysUserFeignService {
 	public Object test();
 
 	@GetMapping(value = "queryUserInfo")
-	SysUser queryUserInfo();
+	public SysUser queryUserInfo();
 }

+ 1 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/fallback/SysUserFeignServiceFallback.java

@@ -22,6 +22,7 @@ public class SysUserFeignServiceFallback implements SysUserFeignService {
 
 	@Override
 	public SysUser queryUserInfo() {
+		System.out.println("********************************");
 		return null;
 	}
 

+ 10 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysRole.java

@@ -32,6 +32,8 @@ public class SysRole {
 	/** 删除标识(0-正常,1-删除) */
 	@ApiModelProperty(value = "删除标识(0-正常,1-删除)",required = false)
 	private String delFlag;
+	
+	private Integer organId;
 
 	public Integer getId() {
 		return id;
@@ -89,6 +91,14 @@ public class SysRole {
 		return this.delFlag;
 	}
 			
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 47 - 10
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -1,18 +1,25 @@
 package com.ym.mec.auth.api.entity;
 
-import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.auth.api.enums.UserLockFlag;
-import com.ym.mec.auth.api.enums.YesOrNoEnum;
-import com.ym.mec.common.enums.UserGenderEnum;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.io.Serializable;
 import java.util.Date;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.auth.api.enums.UserLockFlag;
+import com.ym.mec.auth.api.enums.YesOrNoEnum;
+
 /**
  * 对应数据库表(sys_user):
  */
-public class SysUser {
+public class SysUser implements Serializable{
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -1374403507360017093L;
 
 	/** 主键ID */
 	private Integer id;
@@ -67,8 +74,8 @@ public class SysUser {
 	@ApiModelProperty(value = "用户类型",required = false)
 	private SysUserType userType;
 
-	@ApiModelProperty(value = "性别",required = false)
-	private UserGenderEnum gender;
+	@ApiModelProperty(value = "性别0女1男",required = false)
+	private Integer gender;
 
 	@ApiModelProperty(value = "民族",required = false)
 	private String nation;
@@ -81,6 +88,12 @@ public class SysUser {
 
 	@ApiModelProperty(value = "融云token",required = false)
 	private String imToken;
+	
+	private String idCardNo;
+	
+	private String esignId;
+	
+	private String wechatId;
 
 	public String getImToken() {
 		return imToken;
@@ -202,11 +215,11 @@ public class SysUser {
 		this.userType = userType;
 	}
 
-	public UserGenderEnum getGender() {
+	public Integer getGender() {
 		return gender;
 	}
 
-	public void setGender(UserGenderEnum gender) {
+	public void setGender(Integer gender) {
 		this.gender = gender;
 	}
 
@@ -234,6 +247,30 @@ public class SysUser {
 		this.email = email;
 	}
 
+	public String getIdCardNo() {
+		return idCardNo;
+	}
+
+	public void setIdCardNo(String idCardNo) {
+		this.idCardNo = idCardNo;
+	}
+
+	public String getEsignId() {
+		return esignId;
+	}
+
+	public void setEsignId(String esignId) {
+		this.esignId = esignId;
+	}
+
+	public String getWechatId() {
+		return wechatId;
+	}
+
+	public void setWechatId(String wechatId) {
+		this.wechatId = wechatId;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 5 - 21
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java

@@ -92,10 +92,9 @@ public class UserController extends BaseController {
 	@PostMapping(value = "/updatePassword",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
 	@ApiImplicitParams({ @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String"),
 			@ApiImplicitParam(name = "authCode", value = "验证码", required = true, dataType = "String"),
-			@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, dataType = "String"),
-			@ApiImplicitParam(name = "password", value = "旧密码", required = true, dataType = "String") })
-	public Object updatePassword(String mobile,String authCode,String password,String newPassword) {
-		if(StringUtils.isEmpty(mobile) || StringUtils.isEmpty(authCode) || StringUtils.isEmpty(password) || StringUtils.isEmpty(newPassword)){
+			@ApiImplicitParam(name = "newPassword", value = "新密码", required = true, dataType = "String")})
+	public Object updatePassword(String mobile,String authCode,String newPassword) {
+		if(StringUtils.isEmpty(mobile) || StringUtils.isEmpty(authCode) || StringUtils.isEmpty(newPassword)){
 			return failed("参数校验异常");
 		}
 		SysUser sysUser = sysUserService.queryByPhone(mobile);
@@ -103,28 +102,13 @@ public class UserController extends BaseController {
 			return failed("用户不存在");
 		}
 		if(smsCodeService.verifyValidCode(mobile, authCode)){
-			if(StringUtils.equals(password,newPassword)){
-				return failed("新密码与旧密码一致");
-			}
-			BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();
-			newPassword = bCryptPasswordEncoder.encode(newPassword);
-			if(bCryptPasswordEncoder.matches(password,sysUser.getPassword())){
-				sysUserService.updatePassword(mobile,newPassword);
-				return succeed();
-			}else {
-				return failed("密码错误");
-			}
+			sysUserService.updatePassword(mobile,new BCryptPasswordEncoder().encode(newPassword));
+			return succeed();
 		}else {
 			return failed("验证码错误");
 		}
 	}
 
-	/*@ApiOperation(value = "删除用户")
-	@DeleteMapping("/del/{id}")
-	public Object del(@ApiParam(value = "用户编号", required = true) @PathVariable("id") Integer id) {
-		return sysUserService.deleteById(id) ? succeed("删除成功") : failed("删除失败");
-	}*/
-
 	@ApiOperation(value = "修改用户")
 	@PostMapping(value = "/update",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
 	public Object update(SysUser sysUser) {

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

@@ -14,6 +14,7 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="del_flag_" property="delFlag"/>
+        <result column="organ_id_" property="organId"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -34,8 +35,8 @@
         SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
         </selectKey>
         -->
-        INSERT INTO sys_role (id_,role_name_,role_code_,role_desc_,create_time_,update_time_)
-        VALUES(#{id},#{roleName},#{roleCode},#{roleDesc},now(),now())
+        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)
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -57,6 +58,9 @@
             <if test="updateTime != null">
                 update_time_ = #{updateTime},
             </if>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 16 - 4
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -21,11 +21,14 @@
         <result column="wx_openid_" property="wxOpenid"/>
         <result column="qq_openid_" property="qqOpenid"/>
         <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="gender_" property="gender" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
         <result column="email_" property="email"/>
         <result column="im_token_" property="imToken"/>
+        <result column="id_card_no_" property="idCardNo"/>
+        <result column="esign_id_" property="esignId"/>
+        <result column="wechat_id_" property="wechatId"/>
     </resultMap>
 
     <!-- 查询条件 -->
@@ -63,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_)
+        (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_)
         VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-        #{gender, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{nation},#{birthdate},#{email})
+        #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{esignId},#{wechatId})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -85,7 +88,7 @@
                 email_ = #{email},
             </if>
             <if test="gender != null">
-                gender_ = #{gender, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                gender_ = #{gender},
             </if>
             <if test="salt != null">
                 salt_ = #{salt},
@@ -120,6 +123,15 @@
             <if test="imToken != null">
                 im_token_ = #{imToken},
             </if>
+            <if test="idCardNo != null">
+                id_card_no_ = #{idCardNo},
+            </if>
+            <if test="esignId != null">
+                esign_id_ = #{esignId},
+            </if>
+            <if test="wechatId != null">
+                wechat_id_ = #{wechatId},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

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

@@ -54,13 +54,6 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     /**
      * @Author: Joburgess
      * @Date: 2019/9/23
-     * 根据班级id获取已添加最大课次
-     */
-    String[] getMaxClassTimeByClassIds(List<Long> ids);
-
-    /**
-     * @Author: Joburgess
-     * @Date: 2019/9/23
      * 统计教师在一天内有时间重复的课数
      */
     int countTeacherCourseInOnDayRepeats(CourseSchedule courseSchedule);

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupClassGroupMapperDao.java

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

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupCoursesPlanDao.java

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

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/DemoGroupDao.java

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

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java

@@ -29,7 +29,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param userId
      * @return
      */
-    int countUserMusicGroups(Integer userId);
+    Integer countUserMusicGroups(Integer userId);
 
     /**
      * 根据课程类型获取剩余课时
@@ -37,5 +37,5 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param type
      * @return
      */
-    int countCourseByType(@Param("userId") Integer userId, @Param("type") ClassGroupTypeEnum type);
+    Integer countCourseByType(@Param("userId") Integer userId, @Param("type") ClassGroupTypeEnum type);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRechargeDao.java

@@ -5,5 +5,7 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface StudentRechargeDao extends BaseDAO<String, StudentRecharge> {
 
+
+    StudentRecharge selectByTransNo(String transNo);
 	
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentWithdrawDao.java

@@ -5,5 +5,5 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface StudentWithdrawDao extends BaseDAO<String, StudentWithdraw> {
 
-	
-}
+    StudentWithdraw getByUserId(Long userId);
+}

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysAreaDao.java

@@ -18,4 +18,11 @@ public interface SysAreaDao extends BaseDAO<Integer, SysArea> {
      * @return
      */
     List<SysArea> findRootList(@Param("parentId") Integer parentId, @Param("delFlag") YesOrNoEnum delFlag);
+
+    /**
+     * 根据子级区域获取父级节点
+     * @param id
+     * @return
+     */
+    SysArea getParentArea(Integer id);
 }

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

@@ -5,5 +5,5 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface SysUserCashAccountDetailDao extends BaseDAO<Long, SysUserCashAccountDetail> {
 
-	
+    SysUserCashAccountDetail selectDetailByTransNo(String transNo);
 }

+ 0 - 7
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDao.java

@@ -44,13 +44,6 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
 	/**
 	 * @Author: Joburgess
 	 * @Date: 2019/9/23
-	 * 获取小课当前课时
-	 */
-	int getVipGroupCurrentClassTime(Long vipGroupId);
-
-	/**
-	 * @Author: Joburgess
-	 * @Date: 2019/9/23
 	 * 获取小课考勤记录
 	 */
     List<CourseSchedule> findVipGroupAttendances(Map<String,Object> params);

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CashAccountDetail.java

@@ -1,10 +1,14 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
 
 public class CashAccountDetail extends QueryInfo {
     private Integer userId;
 
+    @ApiModelProperty(value = "交易类型", required = true)
+    private String type;
+
     public Integer getUserId() {
         return userId;
     }
@@ -12,4 +16,12 @@ public class CashAccountDetail extends QueryInfo {
     public void setUserId(Integer userId) {
         this.userId = userId;
     }
+
+    public String getType() {
+        return type;
+    }
+
+    public void setType(String type) {
+        this.type = type;
+    }
 }

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ConditionDto.java

@@ -0,0 +1,37 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/25
+ */
+public class ConditionDto {
+
+    @ApiModelProperty(value = "条件ID",required = false)
+    private Long id;
+
+    @ApiModelProperty(value = "条件名称",required = false)
+    private String name;
+
+    public ConditionDto(Long id, String name) {
+        this.id = id;
+        this.name = name;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

+ 94 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseListDto.java

@@ -0,0 +1,94 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+public class CourseListDto {
+
+    @ApiModelProperty(value = "乐团、vip课编号",required = true)
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "学生姓名",required = true)
+    private String studentNames;
+
+    @ApiModelProperty(value = "乐团、vip课名称",required = true)
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "授课地址",required = true)
+    private String address;
+
+    @ApiModelProperty(value = "总课次",required = true)
+    private Integer totalClassTimes;
+
+    @ApiModelProperty(value = "当前课次",required = true)
+    private Integer currentClassTimes;
+
+    @ApiModelProperty(value = "教师姓名",required = true)
+    private String teacherName;
+
+    @ApiModelProperty(value = "上课模式",required = true)
+    private String teachMode;
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getStudentNames() {
+        return studentNames;
+    }
+
+    public void setStudentNames(String studentNames) {
+        this.studentNames = studentNames;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getAddress() {
+        return address;
+    }
+
+    public void setAddress(String address) {
+        this.address = address;
+    }
+
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(String teachMode) {
+        this.teachMode = teachMode;
+    }
+}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/EmployeeDto.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.common.enums.UserGenderEnum;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
@@ -40,6 +41,28 @@ public class EmployeeDto {
     /** 离职日期 */
     private java.util.Date demissionDate;
 
+    @ApiModelProperty(value = "部门ID",required = false)
+    private Long organId;
+
+    @ApiModelProperty(value = "部门名称",required = false)
+    private String organName;
+
+    public Long getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Long organId) {
+        this.organId = organId;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
     public Integer getId() {
         return id;
     }

+ 54 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WithdrawDto.java

@@ -2,12 +2,31 @@ package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
+import java.math.BigDecimal;
 
+/**
+ * @program: mec
+ * @description: 提现
+ * @author: xw
+ * @create: 2019-09-23 17:12
+ */
 public class WithdrawDto extends QueryInfo {
 
-    @ApiModelProperty(value = "最新课次",required = false)
+    @ApiModelProperty(value = "用户id",required = false)
     private Integer userId;
 
+    @ApiModelProperty(value = "银行卡号", required = true)
+    private String bankCardNo;
+
+    @ApiModelProperty(value = "提现金额", required = true)
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "交易类型", required = true)
+    private Integer TransType;
+
+    public WithdrawDto() {
+    }
+
     public Integer getUserId() {
         return userId;
     }
@@ -15,4 +34,38 @@ public class WithdrawDto extends QueryInfo {
     public void setUserId(Integer userId) {
         this.userId = userId;
     }
+
+    public String getBankCardNo() {
+        return bankCardNo;
+    }
+
+    public void setBankCardNo(String bankCardNo) {
+        this.bankCardNo = bankCardNo;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public Integer getTransType() {
+        return TransType;
+    }
+
+    public void setTransType(Integer transType) {
+        TransType = transType;
+    }
+
+    @Override
+    public String toString() {
+        return "WithdrawDto{" +
+                "userId=" + userId +
+                ", bankCardNo='" + bankCardNo + '\'' +
+                ", amount=" + amount +
+                ", TransType=" + TransType +
+                '}';
+    }
 }

+ 134 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/WithdrawInfoDto.java

@@ -0,0 +1,134 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * @program: mec
+ * @description: 学员详情(提现)
+ * @author: xw
+ * @create: 2019-09-24 19:10
+ */
+public class WithdrawInfoDto implements Serializable {
+
+    @ApiModelProperty(value = "提现交易流水号",required = false)
+    private String withdrawId;
+    @ApiModelProperty(value = "申请时间",required = false)
+    private String dateTime;
+    @ApiModelProperty(value = "提现金额",required = false)
+    private BigDecimal amount;
+    @ApiModelProperty(value = "账户金额",required = false)
+    private BigDecimal balance;
+    @ApiModelProperty(value = "提现账户",required = false)
+    private String transTypeName;
+    @ApiModelProperty(value = "账户号",required = false)
+    private String accountNo;
+    @ApiModelProperty(value = "提现状态",required = false)
+    private String withdrawStatus;
+    @ApiModelProperty(value = "支付账号",required = false)
+    private String payAccountNo;
+    @ApiModelProperty(value = "支付渠道",required = false)
+    private String payChannel;
+    @ApiModelProperty(value = "交易流水号",required = false)
+    private String transactionalNo;
+
+    public WithdrawInfoDto() {
+    }
+
+    public String getWithdrawId() {
+        return withdrawId;
+    }
+
+    public void setWithdrawId(String withdrawId) {
+        this.withdrawId = withdrawId;
+    }
+
+    public String getDateTime() {
+        return dateTime;
+    }
+
+    public void setDateTime(String dateTime) {
+        this.dateTime = dateTime;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public String getTransTypeName() {
+        return transTypeName;
+    }
+
+    public void setTransTypeName(String transTypeName) {
+        this.transTypeName = transTypeName;
+    }
+
+    public String getAccountNo() {
+        return accountNo;
+    }
+
+    public void setAccountNo(String accountNo) {
+        this.accountNo = accountNo;
+    }
+
+    public String getWithdrawStatus() {
+        return withdrawStatus;
+    }
+
+    public void setWithdrawStatus(String withdrawStatus) {
+        this.withdrawStatus = withdrawStatus;
+    }
+
+    public String getPayAccountNo() {
+        return payAccountNo;
+    }
+
+    public void setPayAccountNo(String payAccountNo) {
+        this.payAccountNo = payAccountNo;
+    }
+
+    public String getPayChannel() {
+        return payChannel;
+    }
+
+    public void setPayChannel(String payChannel) {
+        this.payChannel = payChannel;
+    }
+
+    public String getTransactionalNo() {
+        return transactionalNo;
+    }
+
+    public void setTransactionalNo(String transactionalNo) {
+        this.transactionalNo = transactionalNo;
+    }
+
+    @Override
+    public String toString() {
+        return "WithdrawInfoDto{" +
+                "withdrawId='" + withdrawId + '\'' +
+                ", dateTime='" + dateTime + '\'' +
+                ", amount=" + amount +
+                ", balance=" + balance +
+                ", transTypeName='" + transTypeName + '\'' +
+                ", accountNo='" + accountNo + '\'' +
+                ", withdrawStatus='" + withdrawStatus + '\'' +
+                ", payAccountNo='" + payAccountNo + '\'' +
+                ", payChannel='" + payChannel + '\'' +
+                ", transactionalNo='" + transactionalNo + '\'' +
+                '}';
+    }
+}

+ 92 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroup.java

@@ -0,0 +1,92 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(demo_group):
+ */
+public class DemoGroup {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private String name;
+	
+	/** 单节课时 */
+	private Integer singleClassMinutes;
+	
+	/** 所属分部列表 */
+	private String organIdList;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	/** 老师编号 */
+	private Integer userId;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setName(String name){
+		this.name = name;
+	}
+	
+	public String getName(){
+		return this.name;
+	}
+			
+	public void setSingleClassMinutes(Integer singleClassMinutes){
+		this.singleClassMinutes = singleClassMinutes;
+	}
+	
+	public Integer getSingleClassMinutes(){
+		return this.singleClassMinutes;
+	}
+			
+	public void setOrganIdList(String organIdList){
+		this.organIdList = organIdList;
+	}
+	
+	public String getOrganIdList(){
+		return this.organIdList;
+	}
+			
+	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 setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 59 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroupClassGroupMapper.java

@@ -0,0 +1,59 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(demo_group_class_group_mapper):
+ */
+public class DemoGroupClassGroupMapper {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Long demoGroupId;
+	
+	/**  */
+	private Integer classGroupId;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setDemoGroupId(Long demoGroupId){
+		this.demoGroupId = demoGroupId;
+	}
+	
+	public Long getDemoGroupId(){
+		return this.demoGroupId;
+	}
+			
+	public void setClassGroupId(Integer classGroupId){
+		this.classGroupId = classGroupId;
+	}
+	
+	public Integer getClassGroupId(){
+		return this.classGroupId;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 59 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/DemoGroupCoursesPlan.java

@@ -0,0 +1,59 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(demo_group_courses_plan):
+ */
+public class DemoGroupCoursesPlan {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Long demoGroupId;
+	
+	/**  */
+	private java.util.Date coursesStartTime;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setDemoGroupId(Long demoGroupId){
+		this.demoGroupId = demoGroupId;
+	}
+	
+	public Long getDemoGroupId(){
+		return this.demoGroupId;
+	}
+			
+	public void setCoursesStartTime(java.util.Date coursesStartTime){
+		this.coursesStartTime = coursesStartTime;
+	}
+	
+	public java.util.Date getCoursesStartTime(){
+		return this.coursesStartTime;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 37 - 24
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserCashAccountDetail.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
 
+import com.ym.mec.biz.dal.enums.TransTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -17,65 +18,69 @@ public class SysUserCashAccountDetail {
 	/** 序号 */
 	@ApiModelProperty(value = "序号",required = false)
 	private Long id;
-	
+
 	/** 用户编号 */
 	@ApiModelProperty(value = "用户编号",required = false)
 	private Integer userId;
-	
+
 	/** 交易流水号 */
 	@ApiModelProperty(value = "交易流水号",required = false)
 	private String transNo;
-	
+
 	/** 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账) */
 	@ApiModelProperty(value = "交易类型",required = false)
 	private PlatformCashAccountDetailTypeEnum type;
-	
+
+	/** 交易方式1.微信,2支付宝,3快捷*/
+	@ApiModelProperty(value = "交易方式",required = false)
+	private TransTypeEnum transType;
+
 	/** 交易状态(1,交易中;2,成功交易;-1,交易失败;) */
 	@ApiModelProperty(value = "交易状态",required = false)
 	private DealStatusEnum status;
-	
+
 	/** 交易金额 */
 	@ApiModelProperty(value = "交易金额",required = false)
 	private BigDecimal amount;
-	
+
 	/** 账户可用余额 */
 	@ApiModelProperty(value = "账户可用余额",required = false)
 	private BigDecimal balance;
-	
+
 	/** 描述 */
 	@ApiModelProperty(value = "描述",required = false)
 	private String description;
-	
+
 	/** 后台备注 */
 	@ApiModelProperty(value = "后台备注",required = false)
 	private String comment;
-	
+
 	/** 创建时间 */
 	private java.util.Date createTime;
-	
+
 	/** 修改时间 */
 	private java.util.Date updateTime;
-	
+
 	public void setId(Long id){
 		this.id = id;
 	}
-	
+
 	public Long getId(){
 		return this.id;
 	}
-			
+
 	public void setUserId(Integer userId){
 		this.userId = userId;
 	}
-	
+
 	public Integer getUserId(){
 		return this.userId;
 	}
-			
+
 	public void setTransNo(String transNo){
 		this.transNo = transNo;
 	}
-	
+
 	public String getTransNo(){
 		return this.transNo;
 	}
@@ -115,35 +120,43 @@ public class SysUserCashAccountDetail {
 	public void setDescription(String description){
 		this.description = description;
 	}
-	
+
 	public String getDescription(){
 		return this.description;
 	}
-			
+
 	public void setComment(String comment){
 		this.comment = comment;
 	}
-	
+
 	public String getComment(){
 		return this.comment;
 	}
-			
+
 	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 TransTypeEnum getTransType() {
+		return transType;
+	}
+
+	public void setTransType(TransTypeEnum transType) {
+		this.transType = transType;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java

@@ -6,7 +6,7 @@ import com.ym.mec.common.enums.BaseEnum;
  * 班级类型
  */
 public enum ClassGroupTypeEnum implements BaseEnum<String, ClassGroupTypeEnum> {
-	NORMAL("NORMAL", "普通班级"), MIX("MIX", "合奏班级"), HIGH("HIGH", "提高班"), VIP("VIP", "vip课"), TRIAL("trial", "试听课");
+	NORMAL("NORMAL", "普通班级"), MIX("MIX", "合奏班级"), HIGH("HIGH", "提高班"), VIP("VIP", "vip课"), DEMO("demo", "试听课");
 
 	private String code;
 

+ 4 - 2
mec-common/common-core/src/main/java/com/ym/mec/common/enums/TransTypeEnum.java → mec-biz/src/main/java/com/ym/mec/biz/dal/enums/TransTypeEnum.java

@@ -1,5 +1,6 @@
-package com.ym.mec.common.enums;
+package com.ym.mec.biz.dal.enums;
 
+import com.ym.mec.common.enums.BaseEnum;
 import java.util.Arrays;
 
 /**
@@ -8,7 +9,7 @@ import java.util.Arrays;
  * @author: xw
  * @create: 2019-09-24 16:00
  */
-public enum TransTypeEnum {
+public enum TransTypeEnum implements BaseEnum<Integer, TransTypeEnum> {
 
     WECHAT(1, "微信"),
     ALIPAY(2, "支付宝"),
@@ -23,6 +24,7 @@ public enum TransTypeEnum {
         this.description = description;
     }
 
+    @Override
     public Integer getCode() {
         return code;
     }

+ 136 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentCashDetailQueryInfo.java

@@ -0,0 +1,136 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author : chengp
+ * @version V1.0
+ * @Description: TODO
+ * @date Date : 2019年09月24日 10:07
+ */
+public class StudentCashDetailQueryInfo extends QueryInfo {
+
+    /** 用户编号 */
+    @ApiModelProperty(value = "用户编号",required = false)
+    private Integer userId;
+
+    /** 交易流水号 */
+    @ApiModelProperty(value = "交易流水号",required = false)
+    private String transNo;
+
+    /** 交易类型 (RECHARGE 充值,WITHDRAW 提现,PAY_FEE 缴费,REFUNDS 退费,FILL_ACCOUNT 人工补账) */
+    @ApiModelProperty(value = "交易类型",required = false)
+    private PlatformCashAccountDetailTypeEnum type;
+
+    /** 交易状态(1,交易中;2,成功交易;-1,交易失败;) */
+    @ApiModelProperty(value = "交易状态",required = false)
+    private DealStatusEnum status;
+
+    /** 交易金额 */
+    @ApiModelProperty(value = "交易金额",required = false)
+    private BigDecimal amount;
+
+    /** 账户可用余额 */
+    @ApiModelProperty(value = "账户可用余额",required = false)
+    private BigDecimal balance;
+
+    /** 描述 */
+    @ApiModelProperty(value = "描述",required = false)
+    private String description;
+
+    /** 后台备注 */
+    @ApiModelProperty(value = "后台备注",required = false)
+    private String comment;
+
+    /** 创建时间 */
+    private java.util.Date createTime;
+
+    /** 修改时间 */
+    private java.util.Date updateTime;
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getTransNo() {
+        return transNo;
+    }
+
+    public void setTransNo(String transNo) {
+        this.transNo = transNo;
+    }
+
+    public PlatformCashAccountDetailTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(PlatformCashAccountDetailTypeEnum type) {
+        this.type = type;
+    }
+
+    public DealStatusEnum getStatus() {
+        return status;
+    }
+
+    public void setStatus(DealStatusEnum status) {
+        this.status = status;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public BigDecimal getBalance() {
+        return balance;
+    }
+
+    public void setBalance(BigDecimal balance) {
+        this.balance = balance;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    public String getComment() {
+        return comment;
+    }
+
+    public void setComment(String comment) {
+        this.comment = comment;
+    }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    public Date getUpdateTime() {
+        return updateTime;
+    }
+
+    public void setUpdateTime(Date updateTime) {
+        this.updateTime = updateTime;
+    }
+}

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRechargeQueryInfo.java

@@ -0,0 +1,12 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+ * @author : chengp
+ * @version V1.0
+ * @Description: TODO
+ * @date Date : 2019年09月24日 10:07
+ */
+public class StudentRechargeQueryInfo extends QueryInfo {
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVipGroupQueryInfo.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/25
+ */
+public class StudentVipGroupQueryInfo extends QueryInfo {
+
+    private Long subjectId;
+
+    private Long classType;
+
+    public Long getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Long subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Long getClassType() {
+        return classType;
+    }
+
+    public void setClassType(Long classType) {
+        this.classType = classType;
+    }
+}

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

@@ -24,14 +24,14 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
      * @Date: 2019/9/17
      * 批量插入课程计划
      */
-    String batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
+    void batchAddCourseSchedule(List<CourseSchedule> courseSchedules);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/17
      * 批量更新课程计划
      */
-    String batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules,Long musicGroupID);
+    void batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules,Long musicGroupID);
 
     /**
      * @Author: Joburgess

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupClassGroupMapperService.java

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

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupCoursesPlanService.java

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

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/DemoGroupService.java

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

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRechargeService.java

@@ -11,4 +11,6 @@ public interface StudentRechargeService extends BaseService<String, StudentRecha
      * @param rechargeDto
      */
     Boolean recharge(RechargeDto rechargeDto);
+
+    StudentRecharge selectByTransNo(String transNo);
 }

+ 19 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/StudentWithdrawService.java

@@ -1,8 +1,26 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.dto.WithdrawDto;
+import com.ym.mec.biz.dal.dto.WithdrawInfoDto;
 import com.ym.mec.biz.dal.entity.StudentWithdraw;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface StudentWithdrawService extends BaseService<String, StudentWithdraw> {
 
-}
+    /**
+     * 确认提现
+     * @param withdrawDto
+     * @return
+     */
+    boolean confirmWithdraw(WithdrawDto withdrawDto);
+
+    /**
+     * 根据学员id查询提现记录
+     * @param cashAccountDetail
+     * @return
+     */
+    PageInfo<WithdrawInfoDto> queryWithdrawPage(CashAccountDetail cashAccountDetail);
+
+}

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

@@ -22,4 +22,11 @@ public interface SysAreaService extends BaseService<Integer, SysArea> {
      * @return
      */
     List<SysArea> queryChild(TreeDto treeDto);
+
+    /**
+     * 根据子级区域获取父级节点
+     * @param id
+     * @return
+     */
+    SysArea getParentArea(Integer id);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysUserCashAccountDetailService.java

@@ -5,4 +5,6 @@ import com.ym.mec.common.service.BaseService;
 
 public interface SysUserCashAccountDetailService extends BaseService<Long, SysUserCashAccountDetail> {
 
+    SysUserCashAccountDetail selectDetailByTransNo(String transNo);
+
 }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -4,6 +4,7 @@ import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
 import com.ym.mec.biz.dal.entity.VipGroup;
+import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
@@ -16,14 +17,14 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @Date: 2019/9/21
      * 创建vip课
      */
-    String createVipGroup(VipGroupApplyDto vipGroup);
+    void createVipGroup(VipGroupApplyDto vipGroup);
 
     /**
      * @Author: Joburgess
      * @Date: 2019/9/23
      * 获取可购买vip课列表
      */
-    PageInfo findStudentVipGroupList(QueryInfo queryInfo);
+    PageInfo findStudentVipGroupList(StudentVipGroupQueryInfo queryInfo);
 
     /**
      * @Author: Joburgess

+ 24 - 34
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -43,26 +43,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
-	public String batchAddCourseSchedule(List<CourseSchedule> courseSchedules) {
-		String result=checkCourseSchedule(courseSchedules);
-		if(result.isEmpty()){
-			courseScheduleDao.batchAddCourseSchedules(courseSchedules);
-			return result;
-		}else{
-			return result;
-		}
+	public void batchAddCourseSchedule(List<CourseSchedule> courseSchedules) {
+		checkCourseSchedule(courseSchedules);
+		courseScheduleDao.batchAddCourseSchedules(courseSchedules);
 	}
 
 	@Override
-	public String batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules, Long musicGroupID) {
-		String result=checkCourseSchedule(courseSchedules);
-		if(result.isEmpty()){
-			courseScheduleDao.deleteCourseSchedulesByMusicGroupID(musicGroupID);
-			courseScheduleDao.batchAddCourseSchedules(courseSchedules);
-			return result;
-		}else{
-			return result;
-		}
+	public void batchUpdateCourseSchedule(List<CourseSchedule> courseSchedules, Long musicGroupID) {
+		checkCourseSchedule(courseSchedules);
+        courseScheduleDao.deleteCourseSchedulesByMusicGroupID(musicGroupID);
+        courseScheduleDao.batchAddCourseSchedules(courseSchedules);
 	}
 
 	@Override
@@ -81,7 +71,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	 * @param courseSchedules
 	 * @return
 	 */
-	private String checkCourseSchedule(List<CourseSchedule> courseSchedules){
+	private void checkCourseSchedule(List<CourseSchedule> courseSchedules){
 		Map<Date, List<CourseSchedule>> collect = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassDate));
 		for(Date keyDate:collect.keySet()){
 			List<CourseSchedule> currentCourses=collect.get(keyDate);
@@ -96,34 +86,34 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 								Collectors.groupingBy(CourseSchedule::getTeacherId));
 						for (Long teacherID:collect2.keySet()){
 							if(collect2.get(teacherID).size()>ParamEnum.ONE.getCode()){
-								return new SimpleDateFormat("yyyy-MM-dd").format(keyDate)+"日的课程安排在教师分配上有冲突!";
+								throw new BizException(new SimpleDateFormat("yyyy-MM-dd").format(keyDate)+"日的课程安排在教师分配上有冲突!");
 							}
 						}
 						List<Integer> repeatClassGroupIds = currentCourses1.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
 						Integer[] counts=courseScheduleDao.countStudentInClass(repeatClassGroupIds);
 						for (Integer i:counts){
 							if (i>ParamEnum.ONE.getCode()){
-								return new SimpleDateFormat("yyyy-MM-dd").format(keyDate)+"日的课程安排有学生重复!";
+								throw new BizException(new SimpleDateFormat("yyyy-MM-dd").format(keyDate)+"日的课程安排有学生重复!");
 							}
 						}
 					}
 				}
 			}
 		}
-		Map<Integer, List<CourseSchedule>> classGroupByID = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassGroupId));
-		List<Long> ids=new ArrayList<>();
-		for (Integer key:classGroupByID.keySet()){
-			ids.add(Long.valueOf(key));
-		}
-		Map<Integer, Integer> maxClassTimes = convertToMap(courseScheduleDao.getMaxClassTimeByClassIds(ids));
-		courseSchedules.clear();
-		for (Integer key:classGroupByID.keySet()){
-			Integer maxClassTime = null == maxClassTimes.get(key) ? 0 : maxClassTimes.get(key);
-			for(CourseSchedule courseSchedule:classGroupByID.get(key)){
-				courseSchedules.add(courseSchedule);
-			}
-		}
-		return "";
+		//课次创建
+//		Map<Integer, List<CourseSchedule>> classGroupByID = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassGroupId));
+//		List<Long> ids=new ArrayList<>();
+//		for (Integer key:classGroupByID.keySet()){
+//			ids.add(Long.valueOf(key));
+//		}
+//		Map<Integer, Integer> maxClassTimes = convertToMap(courseScheduleDao.getMaxClassTimeByClassIds(ids));
+//		courseSchedules.clear();
+//		for (Integer key:classGroupByID.keySet()){
+//			Integer maxClassTime = null == maxClassTimes.get(key) ? 0 : maxClassTimes.get(key);
+//			for(CourseSchedule courseSchedule:classGroupByID.get(key)){
+//				courseSchedules.add(courseSchedule);
+//			}
+//		}
 	}
 
 	private Map<Integer,Integer> convertToMap(String[] result){

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupClassGroupMapperServiceImpl.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ym.mec.biz.dal.dao.DemoGroupClassGroupMapperDao;
+import com.ym.mec.biz.dal.entity.DemoGroupClassGroupMapper;
+import com.ym.mec.biz.service.DemoGroupClassGroupMapperService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class DemoGroupClassGroupMapperServiceImpl extends BaseServiceImpl<Long, DemoGroupClassGroupMapper>  implements DemoGroupClassGroupMapperService {
+	
+	@Autowired
+	private DemoGroupClassGroupMapperDao demoGroupClassGroupMapperDao;
+
+	@Override
+	public BaseDAO<Long, DemoGroupClassGroupMapper> getDAO() {
+		return demoGroupClassGroupMapperDao;
+	}
+	
+}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupCoursesPlanServiceImpl.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ym.mec.biz.dal.dao.DemoGroupCoursesPlanDao;
+import com.ym.mec.biz.dal.entity.DemoGroupCoursesPlan;
+import com.ym.mec.biz.service.DemoGroupCoursesPlanService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class DemoGroupCoursesPlanServiceImpl extends BaseServiceImpl<Long, DemoGroupCoursesPlan>  implements DemoGroupCoursesPlanService {
+	
+	@Autowired
+	private DemoGroupCoursesPlanDao demoGroupCoursesPlanDao;
+
+	@Override
+	public BaseDAO<Long, DemoGroupCoursesPlan> getDAO() {
+		return demoGroupCoursesPlanDao;
+	}
+	
+}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/DemoGroupServiceImpl.java

@@ -0,0 +1,23 @@
+package com.ym.mec.biz.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.ym.mec.biz.dal.dao.DemoGroupDao;
+import com.ym.mec.biz.dal.entity.DemoGroup;
+import com.ym.mec.biz.service.DemoGroupService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class DemoGroupServiceImpl extends BaseServiceImpl<Long, DemoGroup>  implements DemoGroupService {
+	
+	@Autowired
+	private DemoGroupDao demoGroupDao;
+
+	@Override
+	public BaseDAO<Long, DemoGroup> getDAO() {
+		return demoGroupDao;
+	}
+	
+}

+ 10 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java

@@ -40,17 +40,17 @@ public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentR
 	@Override
 	public Boolean recharge(RechargeDto rechargeDto) {
 
-		//TODO ???????????????
+		//TODO 调用第三方支付
 		Date now  = new Date();
 
-		//?????????
+		//充值记录
         StudentRecharge studentRecharge = new StudentRecharge();
         studentRecharge.setAmount(rechargeDto.getRechargeAmount());
 		studentRecharge.setCreateTime(now);
 		studentRecharge.setUserId(rechargeDto.getUserId().longValue());
 		studentRecharge.setTransNo(null);
 		studentRechargeDao.insert(studentRecharge);
-		//??????
+		//账户资金流水
 		SysUserCashAccountDetail cashAccount = new SysUserCashAccountDetail();
 		cashAccount.setAmount(rechargeDto.getRechargeAmount());
 		cashAccount.setBalance(null);
@@ -59,9 +59,15 @@ public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentR
 		cashAccount.setUserId(rechargeDto.getUserId());
 		cashAccount.setCreateTime(now);
 		sysUserCashAccountDetailDao.insert(cashAccount);
-		//??????????
+
+		//扣减账户
 		sysUserCashAccountDao.incrAccount(rechargeDto.getUserId(),rechargeDto.getRechargeAmount());
 
 		return true;
 	}
+
+	@Override
+	public StudentRecharge selectByTransNo(String transNo) {
+		return studentRechargeDao.selectByTransNo(transNo);
+	}
 }

+ 134 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java

@@ -1,17 +1,41 @@
 package com.ym.mec.biz.service.impl;
 
+import com.google.common.collect.Lists;
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.dto.WithdrawDto;
+import com.ym.mec.biz.dal.dto.WithdrawInfoDto;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.dal.enums.TransTypeEnum;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.utils.DateUtils;
+import com.ym.mec.util.string.IdWorker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.stereotype.Service;
-
 import com.ym.mec.biz.dal.dao.StudentWithdrawDao;
 import com.ym.mec.biz.dal.entity.StudentWithdraw;
 import com.ym.mec.biz.service.StudentWithdrawService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.concurrent.locks.Lock;
+import java.util.concurrent.locks.ReentrantLock;
 
 @Service
 public class StudentWithdrawServiceImpl extends BaseServiceImpl<String, StudentWithdraw>  implements StudentWithdrawService {
-	
+
 	@Autowired
 	private StudentWithdrawDao studentWithdrawDao;
 
@@ -19,5 +43,111 @@ public class StudentWithdrawServiceImpl extends BaseServiceImpl<String, StudentW
 	public BaseDAO<String, StudentWithdraw> getDAO() {
 		return studentWithdrawDao;
 	}
-	
-}
+
+	private static final Logger log = LoggerFactory.getLogger(StudentWithdrawServiceImpl.class);
+
+//	@Qualifier("auth-server")
+//	@Autowired
+//	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private SysUserCashAccountService cashAccountService;
+	@Autowired
+	private SysUserCashAccountDetailService cashAccountDetailService;
+	@Autowired
+	private SysUserCashAccountDetailService accountDetailService;
+
+	private Lock lock = new ReentrantLock();
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean confirmWithdraw(WithdrawDto withdrawDto) {
+		try {
+//			SysUser sysUser = sysUserFeignService.queryUserInfo();
+//			if (Objects.isNull(sysUser)) {
+//				throw new BizException("请重新登录");
+//			}
+			lock.lock();
+			SysUserCashAccount sysUserCashAccount = cashAccountService.get(withdrawDto.getUserId().intValue());
+			if (Objects.isNull(sysUserCashAccount)){
+				throw new BizException("账户不存在!");
+			}
+			//校验银行账户余额
+			if (sysUserCashAccount.getBalance().compareTo(withdrawDto.getAmount()) < 0) {
+				throw new BizException("余额不足,提现失败!");
+			}
+			//第三方提现到用户银行卡
+			//用户个人虚拟账户金额减少
+			updateCashAccount(sysUserCashAccount, withdrawDto);
+			//生成提现记录(缺少银行流水号,交易状态,用户承担的费用,平台承担的费用)
+			saveStudentWithdraw(withdrawDto);
+		} catch (Exception e) {
+			log.error("用户提现出现异常 {}", e.getMessage(), e);
+			throw new BizException(e.getMessage());
+		} finally {
+			lock.unlock();
+		}
+		return true;
+	}
+
+	@Override
+	public PageInfo<WithdrawInfoDto> queryWithdrawPage(CashAccountDetail cashAccountDetail) {
+		PageInfo<WithdrawInfoDto> result = new PageInfo<>();
+		cashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.WITHDRAW.getCode());
+		PageInfo<SysUserCashAccountDetail> accountDetailPageInfo = accountDetailService.queryPage(cashAccountDetail);
+		List<WithdrawInfoDto> dataList = Lists.newArrayList();
+		accountDetailPageInfo.getRows().forEach(data ->{
+			WithdrawInfoDto withdrawInfoDto = new WithdrawInfoDto();
+			StudentWithdraw studentWithdraw = studentWithdrawDao.getByUserId(data.getUserId().longValue());
+			withdrawInfoDto.setWithdrawId(studentWithdraw.getId());
+			withdrawInfoDto.setDateTime(DateUtils.date2ChineseDate(studentWithdraw.getCreateTime()));
+			withdrawInfoDto.setAmount(data.getAmount());
+			withdrawInfoDto.setBalance(data.getBalance());
+			withdrawInfoDto.setTransTypeName(TransTypeEnum.getDescriptionByCode(data.getTransType().getCode()));
+			withdrawInfoDto.setAccountNo(studentWithdraw.getBankCardNo());
+			withdrawInfoDto.setWithdrawStatus(studentWithdraw.getStatus().getMsg());
+			//支付账号
+			dataList.add(withdrawInfoDto);
+		});
+		BeanUtils.copyProperties(accountDetailPageInfo, result);
+		result.setRows(dataList);
+		return result;
+	}
+
+	/**
+	 * 修改用户账户余额,保存账户明细
+	 *
+	 * @param withdrawDto
+	 */
+	private void updateCashAccount(SysUserCashAccount sysUserCashAccount, WithdrawDto withdrawDto) {
+		BigDecimal balance = sysUserCashAccount.getBalance().subtract(withdrawDto.getAmount());
+		SysUserCashAccount account = new SysUserCashAccount();
+		account.setUserId(sysUserCashAccount.getUserId());
+		account.setBalance(balance);
+		account.setUpdateTime(new Date());
+		cashAccountService.update(account);
+		SysUserCashAccountDetail cashAccountDetail = new SysUserCashAccountDetail();
+		cashAccountDetail.setUserId(withdrawDto.getUserId());
+		cashAccountDetail.setType(PlatformCashAccountDetailTypeEnum.WITHDRAW);
+		cashAccountDetail.setAmount(withdrawDto.getAmount());
+		cashAccountDetail.setBalance(balance);
+		cashAccountDetail.setCreateTime(new Date());
+		cashAccountDetailService.insert(cashAccountDetail);
+	}
+
+	/**
+	 * 保存提现记录
+	 *
+	 * @param withdrawDto
+	 */
+	private void saveStudentWithdraw(WithdrawDto withdrawDto) {
+		IdWorker idWorker = new IdWorker(0, 0);
+		StudentWithdraw studentWithdraw = new StudentWithdraw();
+		studentWithdraw.setId(idWorker.nextId());
+		studentWithdraw.setUserId(withdrawDto.getUserId().longValue());
+		studentWithdraw.setBankCardNo(withdrawDto.getBankCardNo());
+		studentWithdraw.setAmount(withdrawDto.getAmount());
+		studentWithdraw.setCreateTime(new Date());
+		insert(studentWithdraw);
+	}
+
+}

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

@@ -39,6 +39,11 @@ public class SysAreaServiceImpl extends BaseServiceImpl<Integer, SysArea> implem
 		return sysAreaDao.findRootList(treeDto.getParentId(),treeDto.getDelFlag());
 	}
 
+	@Override
+	public SysArea getParentArea(Integer id) {
+		return sysAreaDao.getParentArea(id);
+	}
+
 	private SysArea getTree(SysArea area){
 		//得到根节点对象
 		//获取子节点list

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

@@ -19,5 +19,9 @@ public class SysUserCashAccountDetailServiceImpl extends BaseServiceImpl<Long, S
 	public BaseDAO<Long, SysUserCashAccountDetail> getDAO() {
 		return sysUserCashAccountDetailDao;
 	}
-	
+
+	@Override
+	public SysUserCashAccountDetail selectDetailByTransNo(String transNo) {
+		return sysUserCashAccountDetailDao.selectDetailByTransNo(transNo);
+	}
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.VipGroupService;
@@ -45,7 +46,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public String createVipGroup(VipGroupApplyDto vipGroup) {
+	public void createVipGroup(VipGroupApplyDto vipGroup) {
 		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
 		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
 		ClassGroup classGroup=new ClassGroup();
@@ -66,11 +67,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		vipGroup.getCourseSchedules().forEach(courseSchedule -> {
 			courseSchedule.setClassGroupId(classGroup.getId());
 		});
-		return courseScheduleService.batchAddCourseSchedule(vipGroup.getCourseSchedules());
+		courseScheduleService.batchAddCourseSchedule(vipGroup.getCourseSchedules());
 	}
 
 	@Override
-	public PageInfo findStudentVipGroupList(QueryInfo queryInfo) {
+	public PageInfo findStudentVipGroupList(StudentVipGroupQueryInfo queryInfo) {
 		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
@@ -92,7 +93,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Override
 	public VipGroupManageDetailDto getVipGroupDetail(Long vipGroupId) {
 		VipGroupManageDetailDto vipGroupBaseInfo = vipGroupDao.getVipGroupBaseInfo(vipGroupId);
-		vipGroupBaseInfo.setLatestClassTime(vipGroupDao.getVipGroupCurrentClassTime(vipGroupId));
 		return vipGroupBaseInfo;
 	}
 

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

@@ -20,7 +20,6 @@
         <result column="update_time_" property="updateTime"/>
         <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="complaint_status_" property="complaintStatus"/>
-        <result column="current_class_times_" property="currentClassTimes"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
@@ -91,9 +90,6 @@
             <if test="updateTime != null">
                 update_time_ = #{updateTime},
             </if>
-            <if test="currentClassTimes!=null">
-                current_class_times_=#{currentClassTimes}
-            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -225,20 +221,6 @@
         GROUP BY cs.class_date_
     </select>
 
-    <select id="getMaxClassTimeByClassIds" resultType="string">
-        SELECT
-        concat(class_group_id_,",",IF(MAX( current_class_times_ ) IS NULL,0,MAX( current_class_times_ )))
-        FROM
-        course_schedule
-        WHERE
-        class_group_id_ IN
-        <foreach collection="list" item="id" open="(" close=")" separator=",">
-            #{id}
-        </foreach>
-        GROUP BY
-        class_group_id_
-    </select>
-
     <select id="countTeacherCourseInOnDayRepeats" parameterType="com.ym.mec.biz.dal.entity.CourseSchedule" resultType="int">
         SELECT
         COUNT( * )

+ 68 - 0
mec-biz/src/main/resources/config/mybatis/DemoGroupClassGroupMapperMapper.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.DemoGroupClassGroupMapperDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.DemoGroupClassGroupMapper" id="DemoGroupClassGroupMapper">
+		<result column="id_" property="id" />
+		<result column="demo_group_id_" property="demoGroupId" />
+		<result column="class_group_id_" property="classGroupId" />
+		<result column="create_time_" property="createTime" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="DemoGroupClassGroupMapper" >
+		SELECT * FROM demo_group_class_group_mapper WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="DemoGroupClassGroupMapper">
+		SELECT * FROM demo_group_class_group_mapper ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.DemoGroupClassGroupMapper" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO demo_group_class_group_mapper (id_,demo_group_id_,class_group_id_,create_time_) VALUES(#{id},#{demoGroupId},#{classGroupId},#{createTime})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.DemoGroupClassGroupMapper">
+		UPDATE demo_group_class_group_mapper <set>
+<if test="id != null">
+id_ = #{id},
+</if>
+<if test="classGroupId != null">
+class_group_id_ = #{classGroupId},
+</if>
+<if test="demoGroupId != null">
+demo_group_id_ = #{demoGroupId},
+</if>
+<if test="createTime != null">
+create_time_ = #{createTime},
+</if>
+</set> WHERE id_ = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM demo_group_class_group_mapper WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="DemoGroupClassGroupMapper" parameterType="map">
+		SELECT * FROM demo_group_class_group_mapper ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM demo_group_class_group_mapper
+	</select>
+</mapper>

+ 68 - 0
mec-biz/src/main/resources/config/mybatis/DemoGroupCoursesPlanMapper.xml

@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.DemoGroupCoursesPlanDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.DemoGroupCoursesPlan" id="DemoGroupCoursesPlan">
+		<result column="id_" property="id" />
+		<result column="demo_group_id_" property="demoGroupId" />
+		<result column="courses_start_time_" property="coursesStartTime" />
+		<result column="create_time_" property="createTime" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="DemoGroupCoursesPlan" >
+		SELECT * FROM demo_group_courses_plan WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="DemoGroupCoursesPlan">
+		SELECT * FROM demo_group_courses_plan ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.DemoGroupCoursesPlan" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		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},#{createTime})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.DemoGroupCoursesPlan">
+		UPDATE demo_group_courses_plan <set>
+<if test="id != null">
+id_ = #{id},
+</if>
+<if test="demoGroupId != null">
+demo_group_id_ = #{demoGroupId},
+</if>
+<if test="coursesStartTime != null">
+courses_start_time_ = #{coursesStartTime},
+</if>
+<if test="createTime != null">
+create_time_ = #{createTime},
+</if>
+</set> WHERE id_ = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM demo_group_courses_plan WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="DemoGroupCoursesPlan" parameterType="map">
+		SELECT * FROM demo_group_courses_plan ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM demo_group_courses_plan
+	</select>
+</mapper>

+ 80 - 0
mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml

@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.DemoGroupDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.DemoGroup" id="DemoGroup">
+		<result column="id_" property="id" />
+		<result column="name_" property="name" />
+		<result column="single_class_minutes_" property="singleClassMinutes" />
+		<result column="organ_id_list_" property="organIdList" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+		<result column="user_id_" property="userId" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="DemoGroup" >
+		SELECT * FROM demo_group WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="DemoGroup">
+		SELECT * FROM demo_group ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.DemoGroup" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO demo_group (id_,name_,single_class_minutes_,organ_id_list_,create_time_,update_time_,user_id_) VALUES(#{id},#{name},#{singleClassMinutes},#{organIdList},#{createTime},#{updateTime},#{userId})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.DemoGroup">
+		UPDATE demo_group <set>
+<if test="userId != null">
+user_id_ = #{userId},
+</if>
+<if test="id != null">
+id_ = #{id},
+</if>
+<if test="updateTime != null">
+update_time_ = #{updateTime},
+</if>
+<if test="singleClassMinutes != null">
+single_class_minutes_ = #{singleClassMinutes},
+</if>
+<if test="organIdList != null">
+organ_id_list_ = #{organIdList},
+</if>
+<if test="name != null">
+name_ = #{name},
+</if>
+<if test="createTime != null">
+create_time_ = #{createTime},
+</if>
+</set> WHERE id_ = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM demo_group WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="DemoGroup" parameterType="map">
+		SELECT * FROM demo_group ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM demo_group
+	</select>
+</mapper>

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

@@ -96,7 +96,7 @@
     </update>
 
     <update id="updateUserLockStatus">
-		UPDATE sys_user SET lock_flag_ = IF(lock_flag_=0,9,0) WHERE id_=#{userID}
+		UPDATE sys_user SET lock_flag_ = IF(lock_flag_=0,1,0) WHERE id_=#{userID}
 	</update>
 
 	<!-- 根据主键删除一条记录 -->
@@ -119,15 +119,18 @@
         <result property="username" column="username_" />
         <result property="gender" column="gender_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="phone" column="phone_" />
-        <result property="lockFlag" column="role_name_" />
-        <result property="roleName" column="lock_flag_" />
+        <result property="lockFlag" column="lock_flag_" />
+        <result property="roleName" column="role_name_" />
         <result property="jobNature" column="job_nature_" />
         <result property="entryDate" column="entry_date_" />
         <result property="demissionDate" column="demission_date_" />
+        <result property="organId" column="organ_id_" />
+        <result property="organName" column="organ_name_" />
     </resultMap>
 
     <sql id="queryCondition">
         <where>
+            su.user_type_='SYSTEM'
             <if test="organId != null">
                 and su.organ_id_ = #{organId}
             </if>
@@ -149,6 +152,8 @@
         su.phone_,
         sr.role_name_,
         su.lock_flag_,
+        su.organ_id_,
+        o.name_ organ_name_,
         e.job_nature_,
         e.entry_date_,
         e.demission_date_
@@ -157,6 +162,7 @@
         LEFT JOIN employee e ON su.id_=e.user_id_
         LEFT JOIN sys_user_role sur ON su.id_=sur.user_id_
         LEFT JOIN sys_role sr ON sur.role_id_=sr.id_
+        LEFT JOIN organization o ON su.organ_id_=o.id_
         <include refid="queryCondition"/>
     </select>
 

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/StudentRechargeMapper.xml

@@ -97,4 +97,8 @@
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM student_recharge
 	</select>
+
+    <select id="selectByTransNo" resultMap="StudentRecharge">
+		SELECT * FROM student_recharge WHERE  trans_no_ = #{transNo}
+	</select>
 </mapper>

+ 12 - 2
mec-biz/src/main/resources/config/mybatis/StudentWithdrawMapper.xml

@@ -23,7 +23,7 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="StudentWithdraw">
-		SELECT * FROM student_withdraw WHERE id_ = #{id} 
+		SELECT * FROM student_withdraw WHERE id_ = #{id}
 	</select>
 
     <!-- 全查询 -->
@@ -84,7 +84,7 @@
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
-		DELETE FROM student_withdraw WHERE id_ = #{id} 
+		DELETE FROM student_withdraw WHERE id_ = #{id}
 	</delete>
 
     <!-- 分页查询 -->
@@ -108,4 +108,14 @@
             </if>
         </where>
 	</select>
+
+    <select id="getByUserId" resultMap="StudentWithdraw" parameterType="Long">
+        SELECT * FROM student_withdraw
+        <where>
+            <if test="userId != null">
+                user_id_ = #{userId}
+            </if>
+        </where>
+        LIMIT 1
+    </select>
 </mapper>

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

@@ -80,4 +80,7 @@
         SELECT * FROM sys_area WHERE parent_organ_id_ = #{parentId}
         AND del_flag_ = #{delFlag,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
     </select>
+    <select id="getParentArea" resultMap="SysArea">
+        SELECT * FROM sys_area WHERE id_ = (SELECT parent_organ_id_ FROM sys_area WHERE id_ = #{id})
+    </select>
 </mapper>

+ 14 - 4
mec-biz/src/main/resources/config/mybatis/SysUserCashAccountDetailMapper.xml

@@ -11,6 +11,7 @@
         <result column="user_id_" property="userId"/>
         <result column="trans_no_" property="transNo"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="trans_type_" property="transType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="amount_" property="amount"/>
         <result column="balance_" property="balance"/>
@@ -22,7 +23,7 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="SysUserCashAccountDetail">
-		SELECT * FROM sys_user_cash_account_detail WHERE id_ = #{id} 
+		SELECT * FROM sys_user_cash_account_detail WHERE id_ = #{id}
 	</select>
 
     <!-- 全查询 -->
@@ -39,8 +40,10 @@
         </selectKey>
         -->
         INSERT INTO sys_user_cash_account_detail
-        (id_,user_id_,trans_no_,type_,status_,amount_,balance_,description_,comment_,create_time_,update_time_)
-        VALUES(#{id},#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},now(),now())
+        (id_,user_id_,trans_no_,type_,trans_type_, status_,amount_,balance_,description_,comment_,create_time_,update_time_)
+        VALUES(#{id},#{userId},#{transNo},#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        ,#{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{balance},#{description},#{comment},now(),now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -74,13 +77,16 @@
             <if test="type != null">
                 type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
+            <if test="transType != null">
+                trans_type_ = #{transType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
 
     <!-- 根据主键删除一条记录 -->
     <delete id="delete">
-		DELETE FROM sys_user_cash_account_detail WHERE id_ = #{id} 
+		DELETE FROM sys_user_cash_account_detail WHERE id_ = #{id}
 	</delete>
 
     <!-- 分页查询 -->
@@ -96,4 +102,8 @@
 		SELECT COUNT(*) FROM sys_user_cash_account_detail
 		WHERE user_id_ = #{userId}
 	</select>
+
+    <select id="selectDetailByTransNo" resultMap="SysUserCashAccountDetail">
+		SELECT * FROM sys_user_cash_account_detail WHERE    trans_no_ = #{transNo}
+	</select>
 </mapper>

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

@@ -28,6 +28,7 @@
 
     <resultMap id="vipGroupManageDetailDto" type="com.ym.mec.biz.dal.dto.VipGroupManageDetailDto" extends="VipGroup">
         <result property="studentNum" column="student_num_"/>
+        <result property="latestClassTime" column="current_class_times_"/>
         <collection property="students" ofType="com.ym.mec.auth.api.entity.SysUser" column="user_id_">
             <result property="id" column="user_id_"/>
             <result property="username" column="username_"/>
@@ -144,7 +145,16 @@
 		SELECT COUNT(*) FROM vip_group
 	</select>
 
-
+    <sql id="studentVipGroupQueryCondition">
+        <where>
+            <if test="subjectId!=null">
+                FIND_IN_SET(#{subjectId},cg.subject_id_list_)
+            </if>
+            <if test="classType!=null">
+                AND cg.teach_mode_=#{classType}
+            </if>
+        </where>
+    </sql>
 
     <select id="findVipGroups" resultMap="studentVipGroup">
        SELECT
@@ -165,6 +175,7 @@
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
             LEFT JOIN class_group_teacher_mapper cgtm ON vgcgm.class_group_id_=cgtm.class_group_id_
             LEFT JOIN sys_user su ON cgtm.user_id_=su.id_
+            <include refid="studentVipGroupQueryCondition"/>
         ORDER BY vg.id_ DESC
         <include refid="global.limit"/>
     </select>
@@ -173,11 +184,15 @@
             count(*)
         FROM
             vip_group vg
+        LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_=vgcgm.vip_group_id_
+        LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
+        <include refid="studentVipGroupQueryCondition"/>
     </select>
-    <select id="getVipGroupBaseInfo">
+    <select id="getVipGroupBaseInfo" resultMap="vipGroupManageDetailDto">
         SELECT
             vg.*,
             cg.student_num_,
+            cg.current_class_times_,
             su.*
         FROM
             vip_group vg
@@ -188,16 +203,6 @@
         WHERE vg.id_=1
         ORDER BY vg.id_ DESC
     </select>
-    <select id="getVipGroupCurrentClassTime">
-        SELECT
-        if(MAX(cs.current_class_times_) IS NULL,0,MAX(cs.current_class_times_))
-        FROM
-        vip_group vg
-        LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_=vgcgm.vip_group_id_
-        LEFT JOIN course_schedule cs ON vgcgm.class_group_id_=cs.class_group_id_
-        WHERE vg.id_=1 AND CONCAT(cs.class_date_,' ',cs.end_class_time_)&lt;now()
-        GROUP BY cs.id_
-    </select>
 
     <sql id="vipGroupAttendanceQueryCondition">
         <where>

+ 38 - 0
mec-client-api/src/main/java/com/ym/im/ImFeignService.java

@@ -2,6 +2,7 @@ package com.ym.im;
 
 import com.ym.im.fallback.ImFeignServiceFallback;
 import com.ym.mec.common.config.FeignConfiguration;
+import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -10,6 +11,43 @@ import org.springframework.web.bind.annotation.RequestBody;
 @FeignClient(name = "im-server", configuration = FeignConfiguration.class, fallback = ImFeignServiceFallback.class)
 public interface ImFeignService {
 
+    /**
+     * 用户注册
+     * @param userModel
+     * @return
+     */
     @PostMapping(value = "user/register")
     Object getUser(@RequestBody ImUserModel userModel);
+
+    /**
+     * 创建群组
+     * @param groupModel
+     * @return
+     */
+    @PostMapping(value = "group/create")
+    Object groupCreate(@RequestBody ImGroupModel groupModel);
+
+    /**
+     * 加入群组
+     * @param groupModel
+     * @return
+     */
+    @PostMapping(value = "group/join")
+    Object groupJoin(@RequestBody ImGroupModel groupModel);
+
+    /**
+     * 退出群组
+     * @param groupModel
+     * @return
+     */
+    @PostMapping(value = "group/quit")
+    Object groupQuit(@RequestBody ImGroupModel groupModel);
+
+    /**
+     * 解散群组
+     * @param groupModel
+     * @return
+     */
+    @PostMapping(value = "group/dismiss")
+    Object groupDismiss(@RequestBody ImGroupModel groupModel);
 }

+ 21 - 0
mec-client-api/src/main/java/com/ym/im/fallback/ImFeignServiceFallback.java

@@ -1,6 +1,7 @@
 package com.ym.im.fallback;
 
 import com.ym.im.ImFeignService;
+import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
 import org.springframework.stereotype.Component;
 
@@ -10,4 +11,24 @@ public class ImFeignServiceFallback implements ImFeignService {
     public Object getUser(ImUserModel userModel) {
         return null;
     }
+
+    @Override
+    public Object groupCreate(ImGroupModel groupModel) {
+        return null;
+    }
+
+    @Override
+    public Object groupJoin(ImGroupModel groupModel) {
+        return null;
+    }
+
+    @Override
+    public Object groupQuit(ImGroupModel groupModel) {
+        return null;
+    }
+
+    @Override
+    public Object groupDismiss(ImGroupModel groupModel) {
+        return null;
+    }
 }

+ 41 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImGroupMember.java

@@ -0,0 +1,41 @@
+package com.ym.mec.common.entity;
+
+public class ImGroupMember {
+    public String id;
+    public String groupId;
+    public Integer munite;
+
+    public ImGroupMember() {
+    }
+
+    public ImGroupMember(String id, String groupId, Integer munite) {
+        this.id = id;
+        this.groupId = groupId;
+        this.munite = munite;
+    }
+
+    public ImGroupMember setId(String id) {
+        this.id = id;
+        return this;
+    }
+
+    public String getId() {
+        return this.id;
+    }
+
+    public String getGroupId() {
+        return this.groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public Integer getMunite() {
+        return this.munite;
+    }
+
+    public void setMunite(Integer munite) {
+        this.munite = munite;
+    }
+}

+ 69 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImGroupModel.java

@@ -0,0 +1,69 @@
+package com.ym.mec.common.entity;
+
+public class ImGroupModel {
+    private String id;
+    private ImGroupMember[] members;
+    private String name;
+    private Integer minute;
+    private Integer status;
+
+    public ImGroupModel() {
+    }
+
+    public ImGroupModel(String id, ImGroupMember[] members, String name, Integer minute) {
+        this.id = id;
+        this.members = members;
+        this.name = name;
+        this.minute = minute;
+    }
+
+    public ImGroupModel(String id, Integer status) {
+        this.id = id;
+        this.status = status;
+    }
+
+    public String getId() {
+        return this.id;
+    }
+
+    public ImGroupModel setId(String id) {
+        this.id = id;
+        return this;
+    }
+
+    public ImGroupMember[] getMembers() {
+        return this.members;
+    }
+
+    public ImGroupModel setMembers(ImGroupMember[] members) {
+        this.members = members;
+        return this;
+    }
+
+    public String getName() {
+        return this.name;
+    }
+
+    public ImGroupModel setName(String name) {
+        this.name = name;
+        return this;
+    }
+
+    public Integer getMinute() {
+        return this.minute;
+    }
+
+    public ImGroupModel setMinute(Integer minute) {
+        this.minute = minute;
+        return this;
+    }
+
+    public Integer getStatus() {
+        return this.status;
+    }
+
+    public ImGroupModel setStatus(Integer status) {
+        this.status = status;
+        return this;
+    }
+}

+ 3 - 4
mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/UploadFileService.java

@@ -4,6 +4,7 @@ import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.nio.file.Files;
 
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.IOUtils;
@@ -27,7 +28,7 @@ public class UploadFileService {
 	private StoragePlugin storagePlugin;
 
 	/** 最大上传大小,单位kb */
-	@Value("${common.upload.maxSize:10}")
+	@Value("${common.upload.maxSize:10240}")
 	private int maxSize;
 
 	/** 支持的扩展名 */
@@ -35,7 +36,7 @@ public class UploadFileService {
 	private String supportExtensions;
 
 	/** 文件根目录 */
-	@Value("common.upload.fileRoot:/var/tmp/")
+	@Value("/var/tmp/")
 	private String fileRoot;
 
 	public UploadReturnBean uploadFile(InputStream in, String ext) {
@@ -59,9 +60,7 @@ public class UploadFileService {
 
 		String folder = UploadUtil.getFileFloder();
 		String filePath = UploadUtil.getFilePath(root, staticFloder, folder);
-
 		File file = uploadFile(in, filePath, fileName);
-
 		if (maxSize > 0 && maxSize < file.length() / 1024) {
 			FileUtils.deleteQuietly(file);
 			uploadReturn.setMessage("超出允许的大小限制");

+ 11 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/utils/DateUtils.java

@@ -13,6 +13,8 @@ import java.util.List;
  */
 public class DateUtils {
 
+    private static final String CHINESE_DATA_FORMAT = "yyyy年MM月dd日 HH:mm:ss";
+
     /**
      * @Author: Joburgess
      * @Date: 2019/9/23
@@ -32,6 +34,15 @@ public class DateUtils {
         return dates;
     }
 
+    /**
+     * 时间转换为中文格式
+     * @param date
+     * @return
+     */
+    public static String date2ChineseDate(Date date){
+        return new SimpleDateFormat(CHINESE_DATA_FORMAT).format(date);
+    }
+
     public static void main(String[] args) throws ParseException {
         SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd");
         List<Date> mondayCount = getWeekDays(simpleDateFormat.parse("2019-9-23"), simpleDateFormat.parse("2019-10-23"), Calendar.SUNDAY);

+ 28 - 2
mec-education/pom.xml

@@ -47,9 +47,35 @@
 		</dependency>
 
 		<dependency>
-			<groupId>com.ym</groupId>
-			<artifactId>mec-biz</artifactId>
+			<groupId>com.baomidou</groupId>
+			<artifactId>mybatis-plus-boot-starter</artifactId>
+			<version>3.1.0</version>
 		</dependency>
+
+		<dependency>
+			<groupId>com.baomidou</groupId>
+			<artifactId>mybatis-plus-extension</artifactId>
+			<version>3.1.0</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+			<version>1.18.4</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>com.baomidou</groupId>
+			<artifactId>mybatis-plus-generate</artifactId>
+			<version>2.3.3</version>
+		</dependency>
+		<!-- 模板引擎 -->
+		<dependency>
+			<groupId>org.apache.velocity</groupId>
+			<artifactId>velocity-engine-core</artifactId>
+			<version>2.0</version>
+		</dependency>
+
 	</dependencies>
 	<build>
 		<plugins>

+ 1 - 8
mec-education/src/main/java/com/ym/mec/education/EducationApplication.java

@@ -1,23 +1,16 @@
 package com.ym.mec.education;
 
-import org.mybatis.spring.annotation.MapperScan;
+import com.spring4all.swagger.EnableSwagger2Doc;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
-import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.web.client.RestTemplate;
 
-import com.spring4all.swagger.EnableSwagger2Doc;
-
 @SpringBootApplication
 @EnableDiscoveryClient
-@EnableFeignClients("com.ym.mec")
-@MapperScan("com.ym.mec.biz.dal.dao")
-@ComponentScan(basePackages = "com.ym.mec")
 @Configuration
 @EnableSwagger2Doc
 public class EducationApplication {

+ 22 - 0
mec-education/src/main/java/com/ym/mec/education/config/MybatisPlusConfig.java

@@ -0,0 +1,22 @@
+package com.ym.mec.education.config;
+
+import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * program: mec
+ * description: mybatisplus分页插件
+ * @author xw
+ * create: 2019-09-25 13:26
+ */
+@Configuration
+public class MybatisPlusConfig {
+
+    @Bean
+    public PaginationInterceptor paginationInterceptor(){
+        PaginationInterceptor page = new PaginationInterceptor();
+        page.setDialectType("mysql");
+        return page;
+    }
+}

+ 2 - 0
mec-education/src/main/java/com/ym/mec/education/config/ResourceServerConfig.java

@@ -1,3 +1,4 @@
+/*
 package com.ym.mec.education.config;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,3 +32,4 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	}
 
 }
+*/

+ 8 - 4
mec-education/src/main/java/com/ym/mec/education/config/WebMvcConfig.java

@@ -1,3 +1,4 @@
+/*
 package com.ym.mec.education.config;
 
 import java.io.IOException;
@@ -9,6 +10,8 @@ import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.Date;
 
+import com.ym.mec.common.config.EnumConverterFactory;
+import com.ym.mec.common.enums.BaseEnum;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
@@ -32,15 +35,15 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
 import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
-import com.ym.mec.common.config.EnumConverterFactory;
-import com.ym.mec.common.enums.BaseEnum;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {
 
-	/**
+	*/
+/**
 	 * 枚举类的转换器 addConverterFactory
-	 */
+	 *//*
+
 	@Override
 	public void addFormatters(FormatterRegistry registry) {
 		registry.addConverterFactory(new EnumConverterFactory());
@@ -104,3 +107,4 @@ public class WebMvcConfig implements WebMvcConfigurer {
 	}
 
 }
+*/

+ 139 - 0
mec-education/src/main/java/com/ym/mec/education/entity/SysUser.java

@@ -0,0 +1,139 @@
+package com.ym.mec.education.entity;
+
+import com.baomidou.mybatisplus.enums.IdType;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotations.TableId;
+import com.baomidou.mybatisplus.annotations.TableField;
+import com.baomidou.mybatisplus.activerecord.Model;
+import com.baomidou.mybatisplus.annotations.TableName;
+import lombok.Data;
+import lombok.ToString;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 用户表
+ * </p>
+ *
+ * @author lqh
+ * @since 2019-09-25
+ */
+@TableName("sys_user")
+@Data
+@ToString
+public class SysUser extends Model<SysUser> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键ID
+     */
+    @TableId(value = "id_", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 用户名
+     */
+    @TableField("username_")
+    private String username;
+    @TableField("password_")
+    private String password;
+    /**
+     * 随机盐
+     */
+    @TableField("salt_")
+    private String salt;
+    /**
+     * 简介
+     */
+    @TableField("phone_")
+    private String phone;
+    /**
+     * 头像
+     */
+    @TableField("avatar_")
+    private String avatar;
+    /**
+     * 创建时间
+     */
+    @TableField("create_time_")
+    private Date createTime;
+    /**
+     * 修改时间
+     */
+    @TableField("update_time_")
+    private Date updateTime;
+    /**
+     * 0-正常,9-锁定
+     */
+    @TableField("lock_flag_")
+    private String lockFlag;
+    /**
+     * 0-正常,1-删除
+     */
+    @TableField("del_flag_")
+    private String delFlag;
+    /**
+     * 微信openid
+     */
+    @TableField("wx_openid_")
+    private String wxOpenid;
+    /**
+     * QQ openid
+     */
+    @TableField("qq_openid_")
+    private String qqOpenid;
+    /**
+     * 用户类型(STUDENT/TEACHER/SYSTEM)
+     */
+    @TableField("user_type_")
+    private String userType;
+    /**
+     * 性别(0,女  1,男)
+     */
+    @TableField("gender_")
+    private String gender;
+    /**
+     * 民族
+     */
+    @TableField("nation_")
+    private String nation;
+    /**
+     * 出生日期
+     */
+    @TableField("birthdate_")
+    private Date birthdate;
+    /**
+     * 邮箱
+     */
+    @TableField("email_")
+    private String email;
+    @TableField("organ_id_")
+    private Integer organId;
+    /**
+     * 融云token
+     */
+    @TableField("im_token_")
+    private String imToken;
+    /**
+     * 身份证号码
+     */
+    @TableField("id_card_no_")
+    private String idCardNo;
+    /**
+     * e签宝唯一编号
+     */
+    @TableField("esign_id_")
+    private String esignId;
+    /**
+     * 微信号
+     */
+    @TableField("wechat_id_")
+    private String wechatId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return id;
+    }
+}

+ 16 - 0
mec-education/src/main/java/com/ym/mec/education/mapper/SysUserMapper.java

@@ -0,0 +1,16 @@
+package com.ym.mec.education.mapper;
+
+import com.baomidou.mybatisplus.mapper.BaseMapper;
+import com.ym.mec.education.entity.SysUser;
+
+/**
+ * <p>
+ * 用户表 Mapper 接口
+ * </p>
+ *
+ * @author lqh
+ * @since 2019-09-25
+ */
+public interface SysUserMapper extends BaseMapper<SysUser> {
+
+}

+ 36 - 0
mec-education/src/main/java/com/ym/mec/education/mapper/xml/SysUserMapper.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ym.mec.education.mapper.SysUserMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ym.mec.education.entity.SysUser">
+        <id column="id_" property="id" />
+        <result column="username_" property="username" />
+        <result column="password_" property="password" />
+        <result column="salt_" property="salt" />
+        <result column="phone_" property="phone" />
+        <result column="avatar_" property="avatar" />
+        <result column="create_time_" property="createTime" />
+        <result column="update_time_" property="updateTime" />
+        <result column="lock_flag_" property="lockFlag" />
+        <result column="del_flag_" property="delFlag" />
+        <result column="wx_openid_" property="wxOpenid" />
+        <result column="qq_openid_" property="qqOpenid" />
+        <result column="user_type_" property="userType" />
+        <result column="gender_" property="gender" />
+        <result column="nation_" property="nation" />
+        <result column="birthdate_" property="birthdate" />
+        <result column="email_" property="email" />
+        <result column="organ_id_" property="organId" />
+        <result column="im_token_" property="imToken" />
+        <result column="id_card_no_" property="idCardNo" />
+        <result column="esign_id_" property="esignId" />
+        <result column="wechat_id_" property="wechatId" />
+    </resultMap>
+
+    <!-- 通用查询结果列 -->
+    <sql id="Base_Column_List">
+        id_, username_, password_, salt_, phone_, avatar_, create_time_, update_time_, lock_flag_, del_flag_, wx_openid_, qq_openid_, user_type_, gender_, nation_, birthdate_, email_, organ_id_, im_token_, id_card_no_, esign_id_, wechat_id_
+    </sql>
+
+</mapper>

+ 16 - 0
mec-education/src/main/java/com/ym/mec/education/service/ISysUserService.java

@@ -0,0 +1,16 @@
+package com.ym.mec.education.service;
+
+import com.baomidou.mybatisplus.service.IService;
+import com.ym.mec.education.entity.SysUser;
+
+/**
+ * <p>
+ * 用户表 服务类
+ * </p>
+ *
+ * @author lqh
+ * @since 2019-09-25
+ */
+public interface ISysUserService extends IService<SysUser> {
+
+}

+ 21 - 0
mec-education/src/main/java/com/ym/mec/education/service/impl/SysUserServiceImpl.java

@@ -0,0 +1,21 @@
+package com.ym.mec.education.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ym.mec.education.entity.SysUser;
+import com.ym.mec.education.mapper.SysUserMapper;
+import com.ym.mec.education.service.ISysUserService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 用户表 服务实现类
+ * </p>
+ *
+ * @author lqh
+ * @since 2019-09-25
+ */
+@Service
+public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements ISysUserService {
+
+}

+ 167 - 0
mec-education/src/main/java/test/MpGenerator.java

@@ -0,0 +1,167 @@
+package test;
+
+import com.baomidou.mybatisplus.generator.AutoGenerator;
+import com.baomidou.mybatisplus.generator.InjectionConfig;
+import com.baomidou.mybatisplus.generator.config.*;
+import com.baomidou.mybatisplus.generator.config.converts.MySqlTypeConvert;
+import com.baomidou.mybatisplus.generator.config.rules.DbColumnType;
+import com.baomidou.mybatisplus.generator.config.rules.DbType;
+import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+/**
+ * <p>
+ * 代码生成器演示
+ * </p>
+ */
+public class MpGenerator {
+
+    final static String dirPath = "D://gen";
+
+    /**
+     * <p>
+     * MySQL 生成演示
+     * </p>
+     */
+    public static void main(String[] args) {
+        AutoGenerator mpg = new AutoGenerator();
+        // 选择 freemarker 引擎,默认 Veloctiy
+        //mpg.setTemplateEngine(new FreemarkerTemplateEngine());
+
+        // 全局配置
+        GlobalConfig gc = new GlobalConfig();
+        gc.setOutputDir(dirPath);
+        gc.setAuthor("lqh");
+        gc.setFileOverride(true); //是否覆盖
+        gc.setActiveRecord(true);// 不需要ActiveRecord特性的请改为false
+        gc.setEnableCache(false);// XML 二级缓存
+        gc.setBaseResultMap(true);// XML ResultMap
+        gc.setBaseColumnList(true);// XML columList
+
+        // 自定义文件命名,注意 %s 会自动填充表实体属性!
+        // gc.setMapperName("%sDao");
+        // gc.setXmlName("%sMapper");
+        // gc.setServiceName("MP%sService");
+        // gc.setServiceImplName("%sServiceDiy");
+        // gc.setControllerName("%sAction");
+        mpg.setGlobalConfig(gc);
+
+        // 数据源配置
+        DataSourceConfig dsc = new DataSourceConfig();
+        dsc.setDbType(DbType.MYSQL);
+        dsc.setTypeConvert(new MySqlTypeConvert() {
+            // 自定义数据库表字段类型转换【可选】
+            @Override
+            public DbColumnType processTypeConvert(String fieldType) {
+                System.out.println("转换类型:" + fieldType);
+                // 注意!!processTypeConvert 存在默认类型转换,如果不是你要的效果请自定义返回、非如下直接返回。
+                return super.processTypeConvert(fieldType);
+            }
+        });
+        dsc.setDriverName("com.mysql.jdbc.Driver");
+        dsc.setUsername("mec_dev");
+        dsc.setPassword("mec_dev");
+        dsc.setUrl("jdbc:mysql://47.99.212.176:3306/mec_dev?characterEncoding=utf8");
+        mpg.setDataSource(dsc);
+
+        // 策略配置
+        StrategyConfig strategy = new StrategyConfig();
+        // strategy.setCapitalMode(true);// 全局大写命名 ORACLE 注意
+        //strategy.setTablePrefix(new String[]{"tb_", "tsys_"});// 此处可以修改为您的表前缀
+        strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
+         strategy.setInclude(new String[] { "sys_user" }); // 需要生成的表
+        // strategy.setExclude(new String[]{"test"}); // 排除生成的表
+        // 自定义实体父类
+        // strategy.setSuperEntityClass("com.baomidou.demo.TestEntity");
+        // 自定义实体,公共字段
+        // strategy.setSuperEntityColumns(new String[] { "test_id", "age" });
+        // 自定义 mapper 父类
+        // strategy.setSuperMapperClass("com.baomidou.demo.TestMapper");
+        // 自定义 service 父类
+        // strategy.setSuperServiceClass("com.baomidou.demo.TestService");
+        // 自定义 service 实现类父类
+        // strategy.setSuperServiceImplClass("com.baomidou.demo.TestServiceImpl");
+        // 自定义 controller 父类
+        // strategy.setSuperControllerClass("com.baomidou.demo.TestController");
+        // 【实体】是否生成字段常量(默认 false)
+        // public static final String ID = "test_id";
+        // strategy.setEntityColumnConstant(true);
+        // 【实体】是否为构建者模型(默认 false)
+        // public User setName(String name) {this.name = name; return this;}
+        strategy.setEntityBuilderModel(true);
+        mpg.setStrategy(strategy);
+
+        //com.ym.mec.education.entity
+        // 包配置
+        PackageConfig pc = new PackageConfig();
+        pc.setParent("com");
+        pc.setModuleName("ym");
+        pc.setController("education");
+        pc.setEntity("entity");
+        pc.setMapper("mapper");
+        pc.setService("service");
+        pc.setServiceImpl("serviceImpl");
+        pc.setXml("mapperXml");
+
+        mpg.setPackageInfo(pc);
+
+        // 注入自定义配置,可以在 VM 中使用 cfg.abc 【可无】
+        InjectionConfig cfg = new InjectionConfig() {
+            @Override
+            public void initMap() {
+                Map<String, Object> map = new HashMap<String, Object>();
+                map.put("abc", this.getConfig().getGlobalConfig().getAuthor() + "-mp");
+                this.setMap(map);
+            }
+        };
+
+        // 自定义 xxList.jsp 生成
+        List<FileOutConfig> focList = new ArrayList<FileOutConfig>();
+/*        focList.add(new FileOutConfig("/template/list.jsp.vm") {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                // 自定义输入文件名称
+                return "D://my_" + tableInfo.getEntityName() + ".jsp";
+            }
+        });
+        cfg.setFileOutConfigList(focList);
+        mpg.setCfg(cfg);*/
+
+        // 调整 xml 生成目录演示
+/*        focList.add(new FileOutConfig("/templates/mapper.xml.vm") {
+            @Override
+            public String outputFile(TableInfo tableInfo) {
+                return dirPath + tableInfo.getEntityName() + "Mapper.xml";
+            }
+        });
+        cfg.setFileOutConfigList(focList);
+        */
+        mpg.setCfg(cfg);
+
+        // 关闭默认 xml 生成,调整生成 至 根目录
+/*        TemplateConfig tc = new TemplateConfig();
+        tc.setXml(null);
+        mpg.setTemplate(tc);*/
+
+        // 自定义模板配置,可以 copy 源码 mybatis-plus/src/main/resources/templates 下面内容修改,
+        // 放置自己项目的 src/main/resources/templates 目录下, 默认名称一下可以不配置,也可以自定义模板名称
+        // TemplateConfig tc = new TemplateConfig();
+        // tc.setController("...");
+        // tc.setEntity("...");
+        // tc.setMapper("...");
+        // tc.setXml("...");
+        // tc.setService("...");
+        // tc.setServiceImpl("...");
+        // 如上任何一个模块如果设置 空 OR Null 将不生成该模块。
+        // mpg.setTemplate(tc);
+
+        // 执行生成
+        mpg.execute();
+
+        // 打印注入设置【可无】
+        System.err.println(mpg.getCfg().getMap().get("abc"));
+    }
+}

+ 14 - 11
mec-education/src/main/resources/application.yml

@@ -9,7 +9,7 @@ eureka:
 spring:
   application:
     name: education-server
-    
+
   datasource:
     name: test
     url: jdbc:mysql://47.99.212.176:3306/mec_dev?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
@@ -31,11 +31,11 @@ spring:
     testOnReturn: false
     poolPreparedStatements: true
     maxOpenPreparedStatements: 20
-    
+
   redis:
     host: 47.99.212.176
     port: 6379
-    password: 
+    password:
     database: 0
     #连接超时时间(毫秒)
     timeout: 10000
@@ -49,13 +49,16 @@ spring:
       #连接池中的最小空闲连接
       min-idle: 0
 
-mybatis:
-    mapperLocations: classpath:config/mybatis/*.xml
-    
+mybatis-plus:
+  mapper-locations: classpath:com/ym/mec/education/mapper/xml/*.xml
+  typeAliasesPackage : com.ym.mec.education.entity
+  configuration:
+    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
+
 swagger:
   base-package: com.ym.mec.education.controller
- 
-##认证 
+
+##认证
 security:
   oauth2:
     client:
@@ -63,7 +66,7 @@ security:
       client-secret: app
     resource:
       token-info-uri: http://localhost:8001/oauth/check_token
-  
+
 #spring boot admin 相关配置
 management:
   endpoints:
@@ -73,7 +76,7 @@ management:
   endpoint:
     health:
       show-details: ALWAYS
-  
+
 feign:
   hystrix:
-    enabled: true
+    enabled: true

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

@@ -83,6 +83,7 @@ public class RoomServiceImpl implements RoomService {
         CheckUtils.checkArgument(roomId != null, "roomId must't be null");
 
         log.info("joinRoom: roomId={}, userName={}, isAudience={}, isDisableCamera={}", roomId, userName, isAudience, isDisableCamera);
+        roomId = "DAYA" + roomId;
 //        String userId = getUser().getUserId().toString();
         String userId = sysUserFeignService.queryUserInfo().getId().toString();
 

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

@@ -0,0 +1,20 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("course")
+@Api(tags = "课程服务")
+@RestController
+public class CourseController extends BaseController {
+
+    @ApiOperation("获取学生所在乐团列表")
+    @GetMapping(value = "/queryUserMusicGroups")
+    public Object queryCoursePage(){
+        return succeed();
+    }
+}

+ 5 - 2
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -4,6 +4,8 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.common.controller.BaseController;
+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 org.springframework.beans.factory.annotation.Autowired;
@@ -25,10 +27,11 @@ public class MusicGroupController extends BaseController {
     @GetMapping(value = "/queryUserMusicGroups")
     public Object queryUserMusicGroups(){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
+        AuthUser user = SecurityUtils.getUser();
         if(sysUser == null){
             return failed("请重新登录");
         }
-        return succeed(musicGroupService.queryUserMusicGroups(sysUser.getId()));
+        return succeed(musicGroupService.queryUserMusicGroups(1));
     }
 
     @ApiOperation("获取学生个人中心乐团信息")
@@ -38,6 +41,6 @@ public class MusicGroupController extends BaseController {
         if(sysUser == null){
             return failed("请重新登录");
         }
-        return succeed(musicGroupService.queryPersonalMusicGroups(sysUser.getId()));
+        return succeed(musicGroupService.queryPersonalMusicGroups(1));
     }
 }

+ 27 - 2
mec-student/src/main/java/com/ym/mec/student/controller/StudentVipGroupController.java

@@ -1,6 +1,9 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
+import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
+import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
@@ -9,6 +12,11 @@ import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
 /**
  * @Author Joburgess
  * @Date 2019/9/23
@@ -21,11 +29,28 @@ public class StudentVipGroupController extends BaseController {
 
     @Autowired
     private VipGroupService vipGroupService;
+    @Autowired
+    private SubjectService subjectService;
+
+    @ApiOperation("获取vip课列表筛选条件")
+    @GetMapping(value = "/findQueryCondition")
+    public Object findQueryCondition(){
+        Map<String,Object> result=new HashMap<>();
+        result.put("subjects",subjectService.findAll(null));
+        List<ConditionDto> conditionDtos=new ArrayList<>();
+        conditionDtos.add(new ConditionDto(0L,"线下"));
+        conditionDtos.add(new ConditionDto(1L,"线上"));
+        result.put("pageInfo",conditionDtos);
+        return succeed(result);
+    }
 
     @ApiOperation("获取vip课列表")
     @GetMapping(value = "/queryVipGroups")
-    public Object queryVipGroups(QueryInfo queryInfo){
-        return succeed(vipGroupService.findStudentVipGroupList(queryInfo));
+    public Object queryVipGroups(StudentVipGroupQueryInfo queryInfo){
+        Map<String,Object> result=new HashMap<>();
+        result.put("recommendVipGroups",new ArrayList<>());
+        result.put("pageInfo",vipGroupService.findStudentVipGroupList(queryInfo));
+        return succeed(result);
     }
 
     @ApiOperation("获取学生端vip课显示详情")

+ 41 - 0
mec-student/src/main/java/com/ym/mec/student/controller/WithdrawController.java

@@ -0,0 +1,41 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.biz.dal.dto.CashAccountDetail;
+import com.ym.mec.biz.dal.dto.WithdrawDto;
+import com.ym.mec.biz.service.StudentWithdrawService;
+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.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * @program: mec
+ * @description: 提现
+ * @author: xw
+ * @create: 2019-09-23 17:12
+ */
+@RestController
+@RequestMapping("withdraw")
+@Api(tags = "提现服务")
+public class WithdrawController extends BaseController {
+
+    @Autowired
+    private StudentWithdrawService withdrawService;
+
+    @PostMapping("confirm")
+    @ApiOperation(value = "确认提现")
+    public Object confirmWithdraw(@RequestBody WithdrawDto withdrawDto) {
+        withdrawService.confirmWithdraw(withdrawDto);
+        return succeed();
+    }
+
+    @PostMapping("page")
+    @ApiOperation(value = "学员提现详情")
+    public Object getInfo(@RequestBody CashAccountDetail cashAccountDetail) {
+        return succeed(withdrawService.queryWithdrawPage(cashAccountDetail));
+    }
+}

+ 2 - 2
mec-student/src/main/resources/application.yml

@@ -59,8 +59,8 @@ swagger:
 security:
   oauth2:
     client:
-      client-id: app
-      client-secret: app
+      client-id: student
+      client-secret: student
     resource:
       token-info-uri: http://localhost:8001/oauth/check_token
   

+ 3 - 3
mec-thirdparty/src/main/java/com/ym/mec/thirdparty/storage/vendors/AliyunOssStoragePlugin.java

@@ -21,13 +21,13 @@ public class AliyunOssStoragePlugin implements StoragePlugin, InitializingBean,
 	@Value("${storage.oss.endpoint:oss-cn-beijing.aliyuncs.com}")
 	private String endpoint;
 
-	@Value("${storage.oss.accessKeyId:LTAIwZW9XqrfsZ4r}")
+	@Value("${storage.oss.accessKeyId:LTAI4Fdhxwfo7FsBDZKK8Wfv}")
 	private String accessKeyId;
 
-	@Value("${storage.oss.accessKeySecret:5uDsNZmHMxcnxav8w9byII4zcPpu5G}")
+	@Value("${storage.oss.accessKeySecret:ERRma4P9VWbD98n93gspnZXmoq7rn5}")
 	private String accessKeySecret;
 
-	@Value("${storage.oss.bucketName:yooma-test}")
+	@Value("${storage.oss.bucketName:daya-online}")
 	private String bucketName;
 
 	private OSSClient ossClient;

+ 4 - 12
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -42,24 +42,16 @@ public class CourseScheduleController extends BaseController {
     @PostMapping("/batchAddCourseSchedule/{musicGroupID}")
     public Object batchAddCourseSchedule(@RequestBody List<CourseSchedule> courseSchedules,
                                          @ApiParam(value = "乐团编号", required = true) @PathVariable("musicGroupID") Long musicGroupID){
-        String s = scheduleService.batchAddCourseSchedule(courseSchedules);
-        if(s.isEmpty()){
-            return succeed();
-        }else{
-            return failed(s);
-        }
+        scheduleService.batchAddCourseSchedule(courseSchedules);
+        return succeed();
     }
 
     @ApiOperation(value = "批量跟新排课")
     @PostMapping("/batchUpdateCourseSchedule/{musicGroupID}")
     public Object batchUpdateCourseSchedule(@RequestBody List<CourseSchedule> courseSchedules,
                                             @ApiParam(value = "乐团编号", required = true) @PathVariable("musicGroupID") Long musicGroupID){
-        String s = scheduleService.batchUpdateCourseSchedule(courseSchedules,musicGroupID);
-        if(s.isEmpty()){
-            return succeed();
-        }else{
-            return failed(s);
-        }
+        scheduleService.batchUpdateCourseSchedule(courseSchedules,musicGroupID);
+        return succeed();
     }
 
     @ApiOperation(value = "根据月份获取乐团在该月有课的日期")

+ 8 - 6
mec-web/src/main/java/com/ym/mec/web/controller/SysAreaController.java

@@ -3,8 +3,10 @@ package com.ym.mec.web.controller;
 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.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -52,12 +54,12 @@ public class SysAreaController extends BaseController {
     public Object update(SysArea area){
         area.setUpdateTime(new Date());
         return succeed(sysAreaService.update(area));
-    }
+    }*/
 
-    @ApiOperation(value = "根据区域编号查询区域详情")
-    @GetMapping("/get/{id}")
+    @ApiOperation(value = "根据子级区域获取父级节点")
+    @GetMapping("/getParentArea/{id}")
     @ApiParam(value = "区域编号", required = true)
-    public Object get( @PathVariable("id") Integer id){
-        return succeed(sysAreaService.get(id));
-    }*/
+    public Object getParentArea( @PathVariable("id") Integer id){
+        return succeed(sysAreaService.getParentArea(id));
+    }
 }

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

@@ -21,7 +21,7 @@ import com.ym.mec.common.controller.BaseController;
  * @Date 2019/9/17
  */
 @RequestMapping("employee")
-@Api(tags = "学生考勤服务")
+@Api(tags = "员工管理")
 @RestController
 public class EmployeeController extends BaseController {
 
@@ -31,7 +31,7 @@ public class EmployeeController extends BaseController {
     @ApiOperation(value = "根据部门获取下面的员工")
     @GetMapping("/queryEmployByOrganId")
     public Object queryEmployByOrganId(EmployeeQueryInfo queryInfo) throws IOException {
-        return employeeService.queryEmployByOrganId(queryInfo);
+        return succeed(employeeService.queryEmployByOrganId(queryInfo));
     }
 
     @ApiOperation(value = "员工操作")

+ 81 - 0
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCashAccountDetailController.java

@@ -0,0 +1,81 @@
+package com.ym.mec.web.controller.student;
+import com.ym.mec.biz.dal.entity.StudentRecharge;
+import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.page.StudentCashDetailQueryInfo;
+import com.ym.mec.biz.service.StudentRechargeService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
+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.http.MediaType;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+
+/**
+ * @version V1.0
+ * @Description: TODO
+ * @date Date : 2019年09月24日 10:00
+ */
+@RequestMapping("cashAccountDetail")
+@Api(tags = "学生充值")
+@RestController
+public class StudentCashAccountDetailController extends BaseController {
+
+
+    @Autowired
+    private SysUserCashAccountDetailService sysUserCashAccountDetailService;
+
+    @Autowired
+    private StudentRechargeService studentRechargeService;
+    @ApiOperation(value = "账户流水列表")
+    @GetMapping(value = "/queryPage",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object queryPage(@RequestBody(required = false) StudentCashDetailQueryInfo queryInfo){
+        if(queryInfo == null){
+            queryInfo = new StudentCashDetailQueryInfo();
+        }
+        return succeed(sysUserCashAccountDetailService.queryPage(queryInfo));
+    }
+
+    /**
+     * 同步
+     * @return
+     */
+    @ApiOperation(value = "账户流水同步")
+    @GetMapping(value = "/synTransStatus",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    public Object synTransStatus(@RequestBody String transNo){
+
+        if(StringUtils.isEmpty(transNo)){
+            return failed();
+        }
+
+        //
+        StudentRecharge studentRecharge = studentRechargeService.selectByTransNo(transNo);
+        if(studentRecharge == null){
+            return failed("交易不存在");
+        }
+        SysUserCashAccountDetail sysUserCashAccountDetail = sysUserCashAccountDetailService.selectDetailByTransNo(transNo);
+        if(sysUserCashAccountDetail == null){
+            return failed("交易不存在");
+        }
+
+        //TODO 查询第三方
+
+        //更新充值记录
+        studentRecharge.setStatus(DealStatusEnum.ING);
+        studentRecharge.setModifyTime(new Date());
+        studentRechargeService.update(studentRecharge);
+
+        //更新流水记录
+        sysUserCashAccountDetail.setStatus(DealStatusEnum.ING);
+        sysUserCashAccountDetail.setUpdateTime(new Date());
+        sysUserCashAccountDetailService.update(sysUserCashAccountDetail);
+        return succeed();
+    }
+}

+ 2 - 6
mec-web/src/main/java/com/ym/mec/web/controller/system/VipGroupManageController.java

@@ -26,12 +26,8 @@ public class VipGroupManageController extends BaseController {
     @ApiOperation("vip课申请")
     @PostMapping("/vipGroupApply")
     public Object vipGroupApply(@RequestBody VipGroupApplyDto vipGroupApplyDto){
-        String s=vipGroupService.createVipGroup(vipGroupApplyDto);
-        if(s.isEmpty()){
-            return succeed();
-        }else{
-            return failed(s);
-        }
+        vipGroupService.createVipGroup(vipGroupApplyDto);
+        return succeed();
     }
 
     @ApiOperation("vip课详情")

+ 2 - 6
mec-web/src/main/java/com/ym/mec/web/controller/teacher/TeacherVipGroupController.java

@@ -35,12 +35,8 @@ public class TeacherVipGroupController extends BaseController {
     public Object vipGroupApply(@RequestBody VipGroupApplyDto vipGroupApplyDto){
         SysUser user = sysUserFeignService.queryUserInfo();
         vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(user.getId()));
-        String s=vipGroupService.createVipGroup(vipGroupApplyDto);
-        if(s.isEmpty()){
-            return succeed();
-        }else{
-            return failed(s);
-        }
+        vipGroupService.createVipGroup(vipGroupApplyDto);
+        return succeed();
     }
 
 }

+ 9 - 0
mec-web/src/test/java/com/ym/Test.java

@@ -4,6 +4,8 @@ import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import org.springframework.beans.BeanUtils;
 
+import java.io.File;
+import java.io.IOException;
 import java.util.Date;
 
 /**
@@ -25,4 +27,11 @@ public class Test {
         System.out.println(courseSchedule.getId());
     }
 
+    @org.junit.Test
+    public void test2() throws IOException {
+        System.out.println(System.getProperty("java.io.tmpdir"));
+        File file=new File("E:\test.txt");
+        file.createNewFile();
+    }
+
 }