Browse Source

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

周箭河 5 years ago
parent
commit
a3e3a3b463
34 changed files with 399 additions and 121 deletions
  1. 8 13
      cms/src/main/java/com/ym/mec/cms/controller/NewsController.java
  2. 0 20
      cms/src/main/java/com/ym/mec/cms/dal/entity/NewsTypeEnum.java
  3. 4 5
      cms/src/main/java/com/ym/mec/cms/dal/entity/SysNewsInformation.java
  4. 4 4
      cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml
  5. 1 2
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/SysUserFeignService.java
  6. 0 1
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/client/fallback/SysUserFeignServiceFallback.java
  7. 1 1
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/SysUserType.java
  8. 14 7
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebSecurityConfig.java
  9. 25 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/PhoneLoginAuthenticationFilter.java
  10. 32 12
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java
  11. 7 3
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java
  12. 0 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  13. 1 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/MenuController.java
  14. 1 2
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/SmsCodeController.java
  15. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  16. 73 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java
  17. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  18. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/School.java
  19. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  20. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  21. 22 11
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  22. 10 2
      mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml
  23. 1 1
      mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml
  24. 5 1
      mec-client-api/src/main/java/com/ym/im/ImFeignService.java
  25. 4 0
      mec-client-api/src/main/java/com/ym/im/fallback/ImFeignServiceFallback.java
  26. 53 0
      mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImUserModel.java
  27. 12 0
      mec-education/pom.xml
  28. 8 8
      mec-im/src/main/java/com/ym/controller/UserController.java
  29. 10 10
      mec-im/src/main/java/com/ym/service/Impl/UserServiceImpl.java
  30. 1 1
      mec-im/src/main/java/com/ym/service/UserService.java
  31. 12 0
      mec-student/pom.xml
  32. 0 13
      mec-student/src/main/java/com/ym/mec/student/controller/App.java
  33. 33 0
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  34. 12 0
      mec-teacher/pom.xml

+ 8 - 13
cms/src/main/java/com/ym/mec/cms/controller/NewsController.java

@@ -1,23 +1,17 @@
 package com.ym.mec.cms.controller;
 
+import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
+import com.ym.mec.cms.dal.entity.SysNewsInformation;
+import com.ym.mec.cms.service.SysNewsInformationService;
+import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiOperation;
-
-import java.util.Date;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
-import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
-import com.ym.mec.cms.dal.entity.SysNewsInformation;
-import com.ym.mec.cms.service.SysNewsInformationService;
-import com.ym.mec.common.controller.BaseController;
+import java.util.Date;
 
 @RestController
 @RequestMapping("news")
@@ -35,7 +29,8 @@ public class NewsController extends BaseController {
 
 	@ApiOperation("查询资讯详情")
 	@ApiImplicitParam(name = "id", value = "资讯ID编号", required = true, dataType = "Long", paramType = "path")
-	@GetMapping(value = "/query/{id}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@GetMapping(value = "/query/{id}",
+			consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
 	public Object query(@PathVariable("id") Long id) {
 
 		return succeed(sysNewsInformationService.get(id));

+ 0 - 20
cms/src/main/java/com/ym/mec/cms/dal/entity/NewsTypeEnum.java

@@ -1,20 +0,0 @@
-package com.ym.mec.cms.dal.entity;
-
-import com.ym.mec.common.enums.BaseEnum;
-
-public enum NewsTypeEnum implements BaseEnum<Integer, NewsTypeEnum> {
-
-	ACTIVITY(1), INFORMATION(0);
-
-	private Integer code;
-
-	NewsTypeEnum(int code) {
-		this.code = code;
-	}
-
-	@Override
-	public Integer getCode() {
-		return code;
-	}
-
-}

+ 4 - 5
cms/src/main/java/com/ym/mec/cms/dal/entity/SysNewsInformation.java

@@ -1,7 +1,6 @@
 package com.ym.mec.cms.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -25,8 +24,8 @@ public class SysNewsInformation {
 	private String coverImage;
 
 	/** 类型 */
-	@ApiModelProperty(value = "类型", required = true)
-	private NewsTypeEnum type;
+	@ApiModelProperty(value = "类型,1精彩活动,2热门资讯", required = true)
+	private Integer type;
 
 	/** 状态(1-可见 0-不可见) */
 	@ApiModelProperty(value = "状态(1-可见 0-不可见)", required = true)
@@ -70,11 +69,11 @@ public class SysNewsInformation {
 		return this.coverImage;
 	}
 
-	public void setType(NewsTypeEnum type) {
+	public void setType(Integer type) {
 		this.type = type;
 	}
 
-	public NewsTypeEnum getType() {
+	public Integer getType() {
 		return this.type;
 	}
 

+ 4 - 4
cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -11,7 +11,7 @@
 		<result column="title_" property="title" />
 		<result column="content_" property="content" />
 		<result column="cover_image_" property="coverImage" />
-		<result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+		<result column="type_" property="type"/>
 		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
@@ -20,7 +20,7 @@
 	<sql id="queryCondition">
 		<where>
 			<if test="type != null">
-				and type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+				and type_ = #{type}
 			</if>
 			<if test="status != null">
 				and status_ = #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
@@ -49,7 +49,7 @@
 		</selectKey>
 		-->
 		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_)
-		VALUES(#{id},#{title},#{content},#{coverImage},#{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now)
+		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now)
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -72,7 +72,7 @@
 				cover_image_ = #{coverImage},
 			</if>
 			<if test="type != null">
-				type_ = #{type, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+				type_ = #{type},
 			</if>
 		</set>
 		WHERE id_ = #{id}

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

@@ -3,13 +3,12 @@ package com.ym.mec.auth.api.client;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import com.ym.mec.auth.api.client.fallback.SysUserFeignServiceFallback;
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.config.FeignConfiguration;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestParam;
 
 @FeignClient(name = "auth-server", configuration = FeignConfiguration.class, fallback = SysUserFeignServiceFallback.class)
 public interface SysUserFeignService {

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

@@ -5,7 +5,6 @@ import org.springframework.stereotype.Component;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
-import org.springframework.web.bind.annotation.RequestBody;
 
 @Component
 public class SysUserFeignServiceFallback implements SysUserFeignService {

+ 1 - 1
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/SysUserType.java

@@ -6,7 +6,7 @@ import com.ym.mec.common.enums.BaseEnum;
 
 public enum SysUserType implements BaseEnum<String, SysUserType> {
 
-	STUDENT("学生"), EDU_TEACHER("教务老师"), ADVISER("指导老师"), SYSTEM("系统內置");
+	STUDENT("学生"), EDU_TEACHER("教务老师"), TEACHER("指导老师"), SYSTEM("系统內置");
 
 	private String desc;
 

+ 14 - 7
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/config/WebSecurityConfig.java

@@ -1,12 +1,5 @@
 package com.ym.mec.auth.config;
 
-import com.ym.mec.auth.core.filter.PhoneLoginAuthenticationFilter;
-import com.ym.mec.auth.core.filter.UsernameAuthenticationFilter;
-import com.ym.mec.auth.core.handler.BaseAuthenticationFailureEvenHandler;
-import com.ym.mec.auth.core.handler.BaseAuthenticationSuccessEventHandler;
-import com.ym.mec.auth.core.provider.PhoneAuthenticationProvider;
-import com.ym.mec.auth.core.provider.service.DefaultUserDetailsService;
-import com.ym.mec.common.validcode.SmsCodeService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -22,6 +15,15 @@ import org.springframework.security.crypto.factory.PasswordEncoderFactories;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
 
+import com.ym.mec.auth.core.filter.PhoneLoginAuthenticationFilter;
+import com.ym.mec.auth.core.filter.UsernameAuthenticationFilter;
+import com.ym.mec.auth.core.handler.BaseAuthenticationFailureEvenHandler;
+import com.ym.mec.auth.core.handler.BaseAuthenticationSuccessEventHandler;
+import com.ym.mec.auth.core.provider.PhoneAuthenticationProvider;
+import com.ym.mec.auth.core.provider.service.DefaultUserDetailsService;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.common.validcode.SmsCodeService;
+
 @Configuration
 @EnableWebSecurity
 @EnableGlobalMethodSecurity(prePostEnabled = true)//会拦截注解了@PreAuthrize注解的配置.
@@ -38,6 +40,9 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 	
 	@Autowired
 	private SmsCodeService smsCodeService;
+
+	@Autowired
+	private SysUserService sysUserService;
 	
 	@Override
 	protected void configure(AuthenticationManagerBuilder auth) throws Exception {
@@ -109,6 +114,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 		filter.setAuthenticationManager(authenticationManagerBean());
 		filter.setAuthenticationSuccessHandler(successEventHandler);
 		filter.setAuthenticationFailureHandler(failureEvenHandler);
+		filter.setSysUserService(sysUserService);
 		return filter;
 	}
 
@@ -118,6 +124,7 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
 		filter.setAuthenticationManager(authenticationManagerBean());
 		filter.setAuthenticationSuccessHandler(successEventHandler);
 		filter.setAuthenticationFailureHandler(failureEvenHandler);
+		filter.setSysUserService(sysUserService);
 		return filter;
 	}
 

+ 25 - 0
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/PhoneLoginAuthenticationFilter.java

@@ -7,23 +7,31 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.authentication.AbstractAuthenticationToken;
 import org.springframework.security.authentication.AuthenticationServiceException;
+import org.springframework.security.authentication.LockedException;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 
+import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.config.constant.SecurityConstants;
 import com.ym.mec.auth.config.token.PhoneAuthenticationToken;
+import com.ym.mec.auth.service.SysUserService;
 
 public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
 
 	private static final String SPRING_SECURITY_RESTFUL_PHONE_KEY = "phone";
 	private static final String SPRING_SECURITY_RESTFUL_VERIFY_CODE_KEY = "smsCode";
+	private static final String clientIdParameter = "clientId";
 
 	private static final String SPRING_SECURITY_RESTFUL_LOGIN_URL = "/smsLogin";
 	private boolean postOnly = true;
+	
+	private SysUserService sysUserService;
 
 	public PhoneLoginAuthenticationFilter() {
 		super(new AntPathRequestMatcher(SPRING_SECURITY_RESTFUL_LOGIN_URL, "POST"));
@@ -43,6 +51,18 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 		principal = obtainParameter(request, SPRING_SECURITY_RESTFUL_PHONE_KEY);
 		credentials = obtainParameter(request, SPRING_SECURITY_RESTFUL_VERIFY_CODE_KEY);
 
+		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(principal);
+
+		String clientId = request.getParameter(clientIdParameter);
+
+		if (userInfo == null) {
+			throw new UsernameNotFoundException("用户名或密码错误");
+		}
+	
+		if (!StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
+			throw new LockedException("用户名或密码错误");
+		}
+
 		principal = principal.trim();
 		authRequest = new PhoneAuthenticationToken(SecurityConstants.PHONE_PRINCIPAL_PREFIX + principal, credentials);
 
@@ -66,4 +86,9 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 		String result = request.getParameter(parameter);
 		return result == null ? "" : result;
 	}
+
+	public void setSysUserService(SysUserService sysUserService) {
+		this.sysUserService = sysUserService;
+	}
+
 }

+ 32 - 12
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java

@@ -7,23 +7,31 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.authentication.AuthenticationServiceException;
+import org.springframework.security.authentication.LockedException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.util.Assert;
 
+import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.config.constant.SecurityConstants;
+import com.ym.mec.auth.service.SysUserService;
 
 public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
 
+	private SysUserService sysUserService;
+
 	// ~ Static fields/initializers
 	// =====================================================================================
 
 	private String usernameParameter = "username";
 	private String passwordParameter = "password";
+	private String clientIdParameter = "clientId";
 	private boolean postOnly = true;
 
 	// ~ Constructors
@@ -36,12 +44,9 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 	// ~ Methods
 	// ========================================================================================================
 
-
-	public Authentication attemptAuthentication(HttpServletRequest request,
-												HttpServletResponse response) throws AuthenticationException {
+	public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
 		if (postOnly && !request.getMethod().equals("POST")) {
-			throw new AuthenticationServiceException(
-					"Authentication method not supported: " + request.getMethod());
+			throw new AuthenticationServiceException("Authentication method not supported: " + request.getMethod());
 		}
 
 		String username = obtainUsername(request);
@@ -57,8 +62,20 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 		username = username.trim();
 		password = password.trim();
 
-		UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(
-				SecurityConstants.USERNAME_PRINCIPAL_PREFIX + username, password);
+		SysUserInfo userInfo = sysUserService.queryUserInfoByUsername(username);
+
+		String clientId = request.getParameter(clientIdParameter);
+
+		if (userInfo == null) {
+			throw new UsernameNotFoundException("用户名或密码错误");
+		}
+	
+		if (!StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
+			throw new LockedException("用户名或密码错误");
+		}
+
+		UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(SecurityConstants.USERNAME_PRINCIPAL_PREFIX + username,
+				password);
 
 		// Allow subclasses to set the "details" property
 		setDetails(request, authRequest);
@@ -67,10 +84,10 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 	}
 
 	@Override
-	protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response,
-			FilterChain chain, Authentication authResult) throws IOException, ServletException {
+	protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult)
+			throws IOException, ServletException {
 		super.successfulAuthentication(request, response, chain, authResult);
-		//chain.doFilter(request, response);
+		// chain.doFilter(request, response);
 	}
 
 	/**
@@ -113,8 +130,7 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 	 * @param authRequest the authentication request object that should have its details
 	 * set
 	 */
-	protected void setDetails(HttpServletRequest request,
-			UsernamePasswordAuthenticationToken authRequest) {
+	protected void setDetails(HttpServletRequest request, UsernamePasswordAuthenticationToken authRequest) {
 		authRequest.setDetails(authenticationDetailsSource.buildDetails(request));
 	}
 
@@ -161,4 +177,8 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 		return passwordParameter;
 	}
 
+	public void setSysUserService(SysUserService sysUserService) {
+		this.sysUserService = sysUserService;
+	}
+
 }

+ 7 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/handler/BaseAuthenticationSuccessEventHandler.java

@@ -4,11 +4,13 @@ import java.io.IOException;
 import java.util.Base64;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.Map;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.collections.MapUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -17,6 +19,7 @@ import org.springframework.http.HttpStatus;
 import org.springframework.http.MediaType;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.core.Authentication;
+import org.springframework.security.oauth2.common.DefaultOAuth2AccessToken;
 import org.springframework.security.oauth2.common.OAuth2AccessToken;
 import org.springframework.security.oauth2.common.exceptions.UnapprovedClientAuthenticationException;
 import org.springframework.security.oauth2.provider.ClientDetails;
@@ -108,10 +111,11 @@ public class BaseAuthenticationSuccessEventHandler extends SavedRequestAwareAuth
 			OAuth2Authentication oAuth2Authentication = new OAuth2Authentication(oAuth2Request, authentication);
 			OAuth2AccessToken oAuth2AccessToken = defaultAuthorizationServerTokenServices.createAccessToken(oAuth2Authentication);
 			logger.info("获取token 成功:{}", oAuth2AccessToken.getValue());
-
+			Map<String,Object> map = new HashMap<>(3);
+			map.put("password", StringUtils.isEmpty(sysUser.getPassword())?false:true);
+			map.put("authentication",oAuth2AccessToken);
 			response.setContentType("application/json; charset=utf-8");
-
-			HttpResponseResult result = new HttpResponseResult(true, HttpStatus.OK.value(), oAuth2AccessToken, "");
+			HttpResponseResult result = new HttpResponseResult(true, HttpStatus.OK.value(), map, "");
 			response.getWriter().write(objectMapper.writeValueAsString(result));
 		} catch (IOException e) {
 			throw new BadCredentialsException("Failed to decode basic authentication token");

+ 0 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -3,7 +3,6 @@ package com.ym.mec.auth.service.impl;
 import java.util.Date;
 import java.util.List;
 
-import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;

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

@@ -59,7 +59,7 @@ public class MenuController extends BaseController {
     }
 
     @ApiOperation("查询用户可访问菜单树状结构")
-    @GetMapping(value = "/findByUser",consumes = MediaType.APPLICATION_JSON_VALUE)
+    @GetMapping(value = "/findByUser")
     public Object findByUser(@RequestBody(required = false) MenuQueryInfo menuQueryInfo) {
         AuthUser user = SecurityUtils.getUser();
         if(user != null){

+ 1 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/SmsCodeController.java

@@ -38,7 +38,6 @@ public class SmsCodeController extends BaseController {
     @ApiOperation(value = "发送登录短信验证码")
     @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String")
     @PostMapping(value = "/sendSms",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
-    @PreAuthorize("@pcs.hasPermissions('sys_user_manage')")
     public Object sendLoginVerifyCode(String mobile) {
         smsCodeService.sendValidCode(mobile);
         return succeed();
@@ -75,7 +74,7 @@ public class SmsCodeController extends BaseController {
         return failed(SecurityConstants.VERIFY_FAILURE);
     }
 
-    @GetMapping(value = "/getLoginImage",consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
+    @GetMapping(value = "/getLoginImage")
     @ApiOperation("获取登录图片验证码")
     @ApiImplicitParam(name = "phone", value = "手机号", required = true, dataType = "String")
     public void getKaptchaImage(HttpServletResponse response,String phone) throws Exception {

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

@@ -1,9 +1,17 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.common.dal.BaseDAO;
 
+import java.util.List;
+
 public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
 
-	
+    /**
+     * 获取学员所在乐团详情列表
+     * @param userId
+     * @return
+     */
+    List<MusicCardDto> queryUserMusicGroups(Integer userId);
 }

+ 73 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicCardDto.java

@@ -0,0 +1,73 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicCardDto {
+
+    @ApiModelProperty(value = "用户姓名",required = true)
+    private String userName;
+
+    @ApiModelProperty(value = "乐团名称",required = true)
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "科目名称",required = true)
+    private String subjectName;
+
+    @ApiModelProperty(value = "所在年级",required = true)
+    private String currentGrade;
+
+    @ApiModelProperty(value = "所在班级",required = true)
+    private String currentClass;
+
+    @ApiModelProperty(value = "是否缴费",required = true)
+    private YesOrNoEnum paymentStatus;
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+
+    public String getCurrentGrade() {
+        return currentGrade;
+    }
+
+    public void setCurrentGrade(String currentGrade) {
+        this.currentGrade = currentGrade;
+    }
+
+    public String getCurrentClass() {
+        return currentClass;
+    }
+
+    public void setCurrentClass(String currentClass) {
+        this.currentClass = currentClass;
+    }
+
+    public YesOrNoEnum getPaymentStatus() {
+        return paymentStatus;
+    }
+
+    public void setPaymentStatus(YesOrNoEnum paymentStatus) {
+        this.paymentStatus = paymentStatus;
+    }
+}

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

@@ -10,7 +10,7 @@ import org.apache.commons.lang3.builder.ToStringBuilder;
 /**
  * 对应数据库表(music_group):
  */
-public class MusicGroup {
+public class 	MusicGroup {
 
 	/**  */
 	private String id;

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/School.java

@@ -51,6 +51,10 @@ public class School {
 	
 	@ApiModelProperty(value = "补贴", required = false)
 	private BigDecimal subsidy;
+	
+	private Integer cooperationOrganId;
+	
+	private String remark;
 
 	public void setId(Integer id) {
 		this.id = id;
@@ -140,6 +144,22 @@ public class School {
 		this.subsidy = subsidy;
 	}
 
+	public Integer getCooperationOrganId() {
+		return cooperationOrganId;
+	}
+
+	public void setCooperationOrganId(Integer cooperationOrganId) {
+		this.cooperationOrganId = cooperationOrganId;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java

@@ -1,9 +1,12 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface MusicGroupService extends BaseService<String, MusicGroup> {
 
     /**
@@ -17,4 +20,10 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
      * @param subFeeSettingDto
      */
     void createGroup(SubFeeSettingDto subFeeSettingDto);
+
+    /**
+     * 获取学生所在乐团详情
+     * @return
+     */
+    List<MusicCardDto> queryUserMusicGroups(Integer userId);
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.service.MusicGroupService;
@@ -87,4 +88,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup>
 			});
 		}
 	}
+
+	@Override
+	public List<MusicCardDto> queryUserMusicGroups(Integer userId) {
+		return musicGroupDao.queryUserMusicGroups(userId);
+	}
 }

+ 22 - 11
mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml

@@ -15,12 +15,12 @@
 		<result column="course_form_" property="courseForm" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
-		<result column="status_" property="status" />
+		<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="bill_start_date_" property="billStartDate" />
 		<result column="improvent_classes_num_" property="improventClassesNum" />
 		<result column="enroll_classes_" property="enrollClasses" />
 		<result column="payment_expire_date_" property="paymentExpireDate" />
-		<result column="is_extra_class_" property="isExtraClass" />
+		<result column="is_extra_class_" property="isExtraClass" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="cooperation_organ_id_" property="cooperationOrganId" />
 		<result column="enlightenment_course_time_" property="enlightenmentCourseTime" />
 		<result column="parent_meeting_time_" property="parentMeetingTime" />
@@ -45,7 +45,7 @@
 			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO music_group
 		(id_,name_,organ_id_,school_id_,apply_expire_date_,team_teacher_id_,educational_teacher_id_,charge_type_id_,course_form_,create_time_,update_time_,status_,bill_start_date_,improvent_classes_num_,enroll_classes_,payment_expire_date_,is_extra_class_,cooperation_organ_id_,enlightenment_course_time_,parent_meeting_time_)
-		VALUES(#{id},#{name},#{organId},#{schoolId},#{applyExpireDate},#{teamTeacherId},#{educationalTeacherId},#{chargeTypeId},#{courseForm},#{createTime},#{updateTime},#{status},#{billStartDate},#{improventClassesNum},#{enrollClasses},#{paymentExpireDate},#{isExtraClass},#{cooperationOrganId},#{enlightenmentCourseTime},#{parentMeetingTime})
+		VALUES(#{id},#{name},#{organId},#{schoolId},#{applyExpireDate},#{teamTeacherId},#{educationalTeacherId},#{chargeTypeId},#{courseForm},now(),now(),#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{billStartDate},#{improventClassesNum},#{enrollClasses},#{paymentExpireDate},#{isExtraClass, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{cooperationOrganId},#{enlightenmentCourseTime},#{parentMeetingTime})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -53,7 +53,7 @@
 		UPDATE music_group
 		<set>
 			<if test="status != null">
-				status_ = #{status},
+				status_ = #{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="organId != null">
 				organ_id_ = #{organId},
@@ -61,9 +61,6 @@
 			<if test="improventClassesNum != null">
 				improvent_classes_num_ = #{improventClassesNum},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
-			</if>
 			<if test="courseForm != null">
 				course_form_ = #{courseForm},
 			</if>
@@ -79,11 +76,8 @@
 			<if test="name != null">
 				name_ = #{name},
 			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
 			<if test="isExtraClass != null">
-				is_extra_class_ = #{isExtraClass},
+				is_extra_class_ = #{isExtraClass, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
 			<if test="paymentExpireDate != null">
 				payment_expire_date_ = #{paymentExpireDate},
@@ -132,4 +126,21 @@
 		SELECT COUNT(*) FROM
 		music_group
 	</select>
+
+	<resultMap type="com.ym.mec.biz.dal.dto.MusicCardDto" id="queryUserMusicGroupsMap">
+		<result column="user_name_" property="userName" />
+		<result column="subject_name_" property="subjectName" />
+		<result column="current_class_" property="currentClass" />
+		<result column="current_grade_" property="currentGrade" />
+		<result column="music_group_name_" property="musicGroupName" />
+		<result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+	</resultMap>
+    <select id="queryUserMusicGroups" resultMap="queryUserMusicGroupsMap">
+		SELECT sr.name_ user_name_,sr.current_class_,sr.current_grade_,
+		sr.payment_status_,mg.name_ music_group_name_,s.name_ subject_name_
+		FROM student_registration sr
+		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
+		LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_
+		WHERE sr.user_id_ = #{userId}
+	</select>
 </mapper>

+ 10 - 2
mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml

@@ -18,6 +18,8 @@
         <result column="contact_name_" property="contactName"/>
         <result column="longitude_latitude_" property="longitudeLatitude"/>
         <result column="subsidy_" property="subsidy"/>
+        <result column="cooperation_organ_id_" property="cooperationOrganId"/>
+        <result column="remark_" property="remark"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -39,8 +41,8 @@
         </selectKey>
         -->
         INSERT INTO school
-        (id_,name_,organ_id_,address_,contact_phone_,create_time_,update_time_,contact_name_,longitude_latitude_,subsidy_)
-        VALUES(#{id},#{name},#{organId},#{address},#{contactPhone},now(),now(),#{contactName},#{longitudeLatitude},#{subsidy})
+        (id_,name_,organ_id_,address_,contact_phone_,create_time_,update_time_,contact_name_,longitude_latitude_,subsidy_,cooperation_organ_id_,remark_)
+        VALUES(#{id},#{name},#{organId},#{address},#{contactPhone},now(),now(),#{contactName},#{longitudeLatitude},#{subsidy},#{cooperationOrganId},#{remark})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -74,6 +76,12 @@
             <if test="subsidy != null">
                 subsidy_ = #{subsidy},
             </if>
+            <if test="cooperationOrganId != null">
+                cooperation_organ_id_ = #{cooperationOrganId},
+            </if>
+            <if test="remark != null">
+                remark_ = #{remark},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

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

@@ -103,6 +103,6 @@
 		SELECT COUNT(*) FROM sys_message
 	</select>
     <select id="findNewMessageNum" resultType="java.lang.Integer">
-SELECT * FROM sys_message WHERE status_ = 4 AND read_status_ = 0
+        SELECT COUNT(id_) FROM sys_message WHERE status_ = 4 AND read_status_ = 0
     </select>
 </mapper>

+ 5 - 1
mec-client-api/src/main/java/com/ym/im/ImFeignService.java

@@ -3,8 +3,12 @@ package com.ym.im;
 import com.ym.im.fallback.ImFeignServiceFallback;
 import com.ym.mec.common.config.FeignConfiguration;
 import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
-@FeignClient(name = "auth-server", configuration = FeignConfiguration.class, fallback = ImFeignServiceFallback.class)
+@FeignClient(name = "im-server", configuration = FeignConfiguration.class, fallback = ImFeignServiceFallback.class)
 public interface ImFeignService {
 
+    @PostMapping(value = "user/register")
+    Object getUser(@RequestBody String username);
 }

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

@@ -5,4 +5,8 @@ import org.springframework.stereotype.Component;
 
 @Component
 public class ImFeignServiceFallback implements ImFeignService {
+    @Override
+    public Object getUser(String username) {
+        return null;
+    }
 }

+ 53 - 0
mec-common/common-core/src/main/java/com/ym/mec/common/entity/ImUserModel.java

@@ -0,0 +1,53 @@
+package com.ym.mec.common.entity;
+
+public class ImUserModel {
+    public String id;
+
+    public String name;
+
+    public String portrait;
+
+    private Integer minute;
+
+    private ImUserModel[] blacklist;
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPortrait() {
+        return portrait;
+    }
+
+    public void setPortrait(String portrait) {
+        this.portrait = portrait;
+    }
+
+    public Integer getMinute() {
+        return minute;
+    }
+
+    public void setMinute(Integer minute) {
+        this.minute = minute;
+    }
+
+    public ImUserModel[] getBlacklist() {
+        return blacklist;
+    }
+
+    public void setBlacklist(ImUserModel[] blacklist) {
+        this.blacklist = blacklist;
+    }
+}

+ 12 - 0
mec-education/pom.xml

@@ -51,4 +51,16 @@
 			<artifactId>mec-biz</artifactId>
 		</dependency>
 	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>com.spotify</groupId>
+				<artifactId>docker-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
 </project>

+ 8 - 8
mec-im/src/main/java/com/ym/controller/UserController.java

@@ -22,14 +22,14 @@ public class UserController {
     @Autowired
     UserService userService;
 
-    @RequestMapping(value = "/refresh-token", method = RequestMethod.POST)
-    public Object refreshToken(@RequestBody ReqUserData reqUserData)
-            throws ApiException, Exception {
-        String token = userService.refreshToken(reqUserData.getUserId(), reqUserData.getUserId());
-        BaseResponse<String> response = new BaseResponse<>();
-        response.setData(token);
-        return response;
-    }
+//    @RequestMapping(value = "/refresh-token", method = RequestMethod.POST)
+//    public Object refreshToken(@RequestBody ReqUserData reqUserData)
+//            throws ApiException, Exception {
+//        String token = userService.refreshToken(reqUserData.getUserId(), reqUserData.getUserId());
+//        BaseResponse<String> response = new BaseResponse<>();
+//        response.setData(token);
+//        return response;
+//    }
 
     @RequestMapping(value = "/register", method = RequestMethod.POST)
     public Object register(@RequestBody UserModel userModel) throws Exception {

+ 10 - 10
mec-im/src/main/java/com/ym/service/Impl/UserServiceImpl.java

@@ -42,16 +42,16 @@ public class UserServiceImpl implements UserService {
     @Autowired
     IMHelper imHelper;
 
-    @Override
-    public String refreshToken(String userId, String name) throws ApiException, Exception  {
-        log.info("request token: {}, {}", userId, name);
-        IMTokenInfo tokenInfo = imHelper.getToken(userId, name, "");
-        if (tokenInfo.isSuccess()) {
-            return tokenInfo.getAuthenticationValue();
-        } else {
-            throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
-        }
-    }
+//    @Override
+//    public String refreshToken(String userId, String name) throws ApiException, Exception  {
+//        log.info("request token: {}, {}", userId, name);
+//        IMTokenInfo tokenInfo = imHelper.getToken(userId, name, "");
+//        if (tokenInfo.isSuccess()) {
+//            return tokenInfo.getAuthenticationValue();
+//        } else {
+//            throw new ApiException(ErrorEnum.ERR_IM_TOKEN_ERROR, tokenInfo.getErrorMessage());
+//        }
+//    }
 
     private User getUser(){
         RongCloud rongCloud = RongCloud.getInstance(appKey, appSecret);

+ 1 - 1
mec-im/src/main/java/com/ym/service/UserService.java

@@ -15,7 +15,7 @@ import io.rong.models.user.UserModel;
  */
 public interface UserService {
 
-    public String refreshToken(String userId, String name) throws ApiException, Exception;
+//    public String refreshToken(String userId, String name) throws ApiException, Exception;
 
     //用户
     TokenResult register(UserModel userModel) throws Exception;

+ 12 - 0
mec-student/pom.xml

@@ -51,4 +51,16 @@
 			<artifactId>mec-biz</artifactId>
 		</dependency>
 	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>com.spotify</groupId>
+				<artifactId>docker-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
 </project>

+ 0 - 13
mec-student/src/main/java/com/ym/mec/student/controller/App.java

@@ -1,13 +0,0 @@
-package com.ym.mec.student.controller;
-
-/**
- * Hello world!
- *
- */
-public class App 
-{
-    public static void main( String[] args )
-    {
-        System.out.println( "Hello World!" );
-    }
-}

+ 33 - 0
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -0,0 +1,33 @@
+package com.ym.mec.student.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.service.MusicGroupService;
+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.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RequestMapping("musicGroup")
+@Api(tags = "乐团服务")
+@RestController
+public class MusicGroupController extends BaseController {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private MusicGroupService musicGroupService;
+
+    @ApiOperation("获取学生所在乐团列表")
+    @GetMapping(value = "/queryUserMusicGroups")
+    private Object queryUserMusicGroups(){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("请重新登录");
+        }
+        return succeed(musicGroupService.queryUserMusicGroups(sysUser.getId()));
+    }
+}

+ 12 - 0
mec-teacher/pom.xml

@@ -51,4 +51,16 @@
 			<artifactId>mec-biz</artifactId>
 		</dependency>
 	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+			</plugin>
+			<plugin>
+				<groupId>com.spotify</groupId>
+				<artifactId>docker-maven-plugin</artifactId>
+			</plugin>
+		</plugins>
+	</build>
 </project>