瀏覽代碼

update:用户类型修改

yonge 5 年之前
父節點
當前提交
497642df94

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

@@ -7,7 +7,6 @@ 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.YesOrNoEnum;
 
 /**
@@ -75,7 +74,7 @@ public class SysUser implements Serializable{
 
 	/** 用户类型 */
 	@ApiModelProperty(value = "用户类型",required = false)
-	private SysUserType userType;
+	private String userType;
 
 	@ApiModelProperty(value = "性别0女1男",required = false)
 	private Integer gender;
@@ -262,11 +261,11 @@ public class SysUser implements Serializable{
 		return this.qqOpenid;
 	}
 
-	public SysUserType getUserType() {
+	public String getUserType() {
 		return userType;
 	}
 
-	public void setUserType(SysUserType userType) {
+	public void setUserType(String userType) {
 		this.userType = userType;
 	}
 

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

@@ -1,11 +1,12 @@
 package com.ym.mec.auth.core.filter;
 
-import com.ym.mec.auth.api.dto.SysUserInfo;
-import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.auth.config.token.PhoneAuthenticationToken;
-import com.ym.mec.auth.service.SysUserService;
-import com.ym.mec.common.security.SecurityConstants;
-import org.apache.commons.lang3.StringUtils;
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.security.authentication.AbstractAuthenticationToken;
 import org.springframework.security.authentication.AuthenticationServiceException;
 import org.springframework.security.authentication.LockedException;
@@ -14,11 +15,10 @@ import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
+import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.config.token.PhoneAuthenticationToken;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.common.security.SecurityConstants;
 
 public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
 
@@ -55,8 +55,8 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 			userInfo = sysUserService.initUser(principal,clientId,isRegister);
 		}
 	
-		if (userInfo.getSysUser().getUserType() != SysUserType.SYSTEM && !StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
-			throw new LockedException("用户不存在,请联系教务老师");
+		if (userInfo.getSysUser().getUserType().toLowerCase().indexOf(clientId.toLowerCase()) < 0) {
+			throw new LockedException("用户不存在");
 		}
 
 		principal = principal.trim();

+ 2 - 4
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java

@@ -7,7 +7,6 @@ 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;
@@ -19,7 +18,6 @@ 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.api.enums.SysUserType;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.common.security.SecurityConstants;
 
@@ -71,8 +69,8 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 			throw new UsernameNotFoundException("404.9");
 		}
 	
-		if (userInfo.getSysUser().getUserType() != SysUserType.SYSTEM && !StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
-			throw new LockedException("登录失败");
+		if (userInfo.getSysUser().getUserType().toLowerCase().indexOf(clientId.toLowerCase()) < 0) {
+			throw new LockedException("用户不存在");
 		}
 
 		UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(SecurityConstants.USERNAME_PRINCIPAL_PREFIX + username,

+ 12 - 7
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/service/DefaultUserDetailsService.java

@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.common.security.AuthUser;
 import com.ym.mec.common.security.SecurityConstants;
@@ -57,19 +56,25 @@ public class DefaultUserDetailsService implements UserDetailsService {
 
 		List<GrantedAuthority> authorities = null;
 
-		SysUserType userType = userInfo.getSysUser().getUserType();
+		String userType = userInfo.getSysUser().getUserType();
+		String[] roles = userType.split(",");
 
-		if (userType == SysUserType.SYSTEM) {
+		if (userInfo.getSysUser().getUserType().toLowerCase().indexOf(SysUserType.SYSTEM.getCode().toLowerCase()) >= 0) {
 			authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
-		} else {
+		}
+
+		if (authorities == null) {
 			authorities = new ArrayList<GrantedAuthority>();
-			authorities.add(new SimpleGrantedAuthority(StringUtils.lowerCase(userType.name())));
+		}
+
+		for (String role : roles) {
+			authorities.add(new SimpleGrantedAuthority(StringUtils.lowerCase(role)));
 		}
 
 		SysUser sysUser = userInfo.getSysUser();
 
-		return new AuthUser(sysUser.getId(), sysUser.getOrganId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0,
-				true, true, true, authorities);
+		return new AuthUser(sysUser.getId(), sysUser.getOrganId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0, true, true, true,
+				authorities);
 	}
 
 }

+ 2 - 6
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -116,10 +116,6 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	@Override
 	public Integer add(SysUser sysUser) {
 		sysUserDao.insert(sysUser);
-		switch (sysUser.getUserType()){
-			case TEACHER:
-
-		}
 		ImResult imResult = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), sysUser.getAvatar()));
 		sysUser.setImToken(imResult.getToken());
 		sysUserDao.update(sysUser);
@@ -154,7 +150,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 			if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
 				SysUser sysUser = new SysUser();
 				sysUser.setPhone(phone);
-				sysUser.setUserType(SysUserType.STUDENT);
+				sysUser.setUserType(SysUserType.STUDENT.getCode());
 				sysUser.setOrganId("36");
 				sysUserDao.insert(sysUser);
 				//添加用户现金账户
@@ -185,7 +181,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 		}else if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
 			SysUser sysUser = new SysUser();
 			sysUser.setPhone(phone);
-			sysUser.setUserType(SysUserType.STUDENT);
+			sysUser.setUserType(SysUserType.STUDENT.getCode());
 			sysUserDao.insert(sysUser);
             //添加用户现金账户
 			imFeignService.register(new ImUserModel(sysUser.getId().toString(),phone,null));

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

@@ -21,7 +21,7 @@
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <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="user_type_" property="userType"/>
         <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
@@ -43,7 +43,7 @@
             and create_time_ &lt;= #{createEndDate}
         </if>
         <if test="userType != null">
-            and user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            and user_type_ like '%' #{userType} '%'
         </if>
         <if test="organId != null">
             and organ_id_ = #{organId}
@@ -72,7 +72,7 @@
         -->
         INSERT INTO sys_user
         (is_super_admin_,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_,wechat_id_,real_name_)
-        VALUES(#{isSuperAdmin},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        VALUES(#{isSuperAdmin},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
         #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName})
     </insert>
 
@@ -102,7 +102,7 @@
                 username_ = #{username},
             </if>
             <if test="userType != null">
-                user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                user_type_ = #{userType},
             </if>
             <if test="updateTime != null">
                 update_time_ = NOW(),

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

@@ -1,5 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
@@ -15,7 +26,6 @@ import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.enums.ParamEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.biz.service.EmployeeService;
-import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
@@ -24,16 +34,6 @@ import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
 
 @Service
 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  implements EmployeeService {
@@ -71,16 +71,17 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 				employee.setUserId(user.getId());
 				employeeDao.insert(employee);
 				//新增用户角色
-				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds());
-				employee.setUserType(SysUserType.SYSTEM);
+				employeeDao.batchAddEmployeeRole(user.getId(), employee.getRoleIds());
+				employee.setUserType(user.getUserType() + "," + SysUserType.SYSTEM.getCode());
 				teacherDao.updateUser(employee);
 			}else{
 				throw new BizException("员工已存在");
 			}
 			return;
+		} else {
+			employee.setUserType(SysUserType.SYSTEM.getCode());
 		}
 		employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
-		employee.setUserType(SysUserType.SYSTEM);
 		employee.setUsername(employee.getRealName());
 		employee.setOrganId(employee.getOrganIdList());
 		teacherDao.addSysUser(employee);

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

@@ -318,7 +318,7 @@ public class StudentManageServiceImpl implements StudentManageService {
         if(sysUser1 != null){
             throw new BizException("手机号已被占用");
         }
-        sysUser.setUserType(SysUserType.STUDENT);
+        sysUser.setUserType(SysUserType.STUDENT.getCode());
         teacherDao.addSysUser(sysUser);
         Integer userId = sysUser.getId();
         ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getPhone(), null));

+ 5 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -267,7 +267,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 				sysUser.setUpdateTime(date);
 				sysUser.setLockFlag(0);
 				sysUser.setDelFlag(com.ym.mec.auth.api.enums.YesOrNoEnum.NO);
-				sysUser.setUserType(SysUserType.STUDENT);
+				sysUser.setUserType(SysUserType.STUDENT.getCode());
 				sysUser.setGender(studentRegistration.getGender());
 				if (studentRegistration.getOrganId() != null) {
 					sysUser.setOrganId(studentRegistration.getOrganId());
@@ -287,10 +287,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 				ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
 				sysUser.setImToken(register.getToken());
 			} else {
-				if (!sysUser.getUserType().equals(SysUserType.STUDENT)) {
+				if (!(sysUser.getUserType().toLowerCase().indexOf(SysUserType.STUDENT.getCode().toLowerCase()) > -1)) {
 					throw new BizException("您系统存在非学生的账户,不能注册学生");
 				}
-				sysUser.setUserType(SysUserType.STUDENT);
+				sysUser.setUserType(sysUser.getUserType()+ ","+ SysUserType.STUDENT.getCode());
 				sysUser.setPhone(studentRegistration.getParentsPhone());
 				sysUser.setOrganId(studentRegistration.getOrganId());
 				sysUser.setRealName(studentRegistration.getParentsName());
@@ -560,7 +560,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setRealName(studentRegistration.getParentsName());
                 sysUser.setUsername(studentRegistration.getName());
                 sysUser.setGender(studentRegistration.getGender());
-                sysUser.setUserType(SysUserType.STUDENT);
+                sysUser.setUserType(SysUserType.STUDENT.getCode());
                 sysUser.setIdCardNo(studentRegistration.getIdCardNo());
                 sysUser.setOrganId(musicGroup.getOrganId().toString());
                 sysUser.setBirthdate(studentRegistration.getBirthdate());
@@ -578,9 +578,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setImToken(register.getToken());
                 teacherDao.updateUser(sysUser);
             } else {
-                if(!sysUser.getUserType().equals(SysUserType.STUDENT)){
-                    throw new BizException("您系统存在非学生的账户,不能注册学生");
-                }
+				sysUser.setUserType(sysUser.getUserType()+ ","+ SysUserType.STUDENT.getCode());
                 sysUser.setPhone(studentRegistration.getParentsPhone());
                 sysUser.setRealName(studentRegistration.getParentsName());
                 sysUser.setUsername(studentRegistration.getName());

+ 2 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -72,7 +72,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	public int add(Teacher teacher) throws Exception {
 		SysUser user = sysUserFeignService.queryUserByMobile(teacher.getPhone());
 		if(user != null && user.getId() != null){
-			if(user.getUserType() == SysUserType.TEACHER){
+			if(user.getUserType().toLowerCase().indexOf(SysUserType.TEACHER.getCode().toLowerCase()) >= 0){
 				throw new BizException("此手机号已被占用");
 			}
 			Integer id = user.getId();
@@ -81,16 +81,13 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				teacher.setId(id);
 				teacher.setDelFlag(YesOrNoEnum.NO);
 				teacherDao.insert(teacher);
-				if(user.getUserType() == SysUserType.SYSTEM){
-					teacher.setOrganId(null);
-				}
 				teacherDao.updateUser(teacher);
 			}else {
 				throw new BizException("用户已存在");
 			}
 			return id;
 		}
-		teacher.setUserType(SysUserType.TEACHER);
+		teacher.setUserType(user.getUserType()+","+SysUserType.TEACHER.getCode());
 		teacher.setUsername(teacher.getRealName());
 		teacherDao.addSysUser(teacher);
 		//添加用户现金账户

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -71,7 +71,7 @@ public class SporadicChargeInfoController extends BaseController {
 			if (sysUser == null || sysUser.getId() == null) {
 				return failed("用户不存在");
 			}
-			if(sysUser.getUserType() != SysUserType.STUDENT){
+			if(sysUser.getUserType().toLowerCase().indexOf(SysUserType.STUDENT.getCode().toLowerCase()) < 0){
 				return failed("用户信息异常");
 			}
 			sporadicPayDto.setUserId(sysUser.getId());

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

@@ -79,8 +79,8 @@ public class SporadicChargeInfoController extends BaseController {
 			if(user == null){
 				return failed("学员信息不存在");
 			}
-			if(user.getUserType() != SysUserType.STUDENT){
-				return failed("该用户不是学员");
+			if(sysUser.getUserType().toLowerCase().indexOf(SysUserType.STUDENT.getCode().toLowerCase()) < 0){
+				return failed("用户信息异常");
 			}
 			if(user.getOrganId() == null){
 				return failed("分部信息异常");