zouxuan 5 年之前
父節點
當前提交
d071456f8d

+ 1 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/controller/EmployeeController.java

@@ -37,7 +37,7 @@ public class EmployeeController extends BaseController {
 	@ApiImplicitParam(name = "id", value = "员工ID", required = true, dataType = "Integer", paramType = "path")
 	@GetMapping(value = "/query")
 	public HttpResponseResult<Employee> query(Integer id) {
-		return succeed(employeeService.get(id));
+		return succeed(employeeService.getEmployee(id));
 	}
 
 	@ApiOperation("新增员工")

+ 6 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/SysUserDao.java

@@ -51,4 +51,10 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 */
 	void batchAddEmployeeRole(@Param("userId") Integer id, @Param("roles") Set<Integer> roles);
 
+	/**
+	 * 获取用户角色列表
+	 * @param userId
+	 * @return
+	 */
+    Set<Integer> queryRoleIds(Integer userId);
 }

+ 2 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/EmployeeService.java

@@ -19,4 +19,6 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
     void updateEmployee(Employee employee);
 
     void del(Integer id);
+
+    Employee getEmployee(Integer id);
 }

+ 29 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/EmployeeServiceImpl.java

@@ -20,6 +20,8 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Set;
+
 @Service
 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
 	
@@ -67,6 +69,13 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 				}
 				sysUserDao.update(user);
 			}else if(employee1.getDelFlag()){
+				SysUser sysUser1 = employee1.getSysUser();
+				if(StringUtils.isEmpty(sysUser1.getUserType())){
+					sysUser1.setUserType("SYSTEM");
+				}else {
+					sysUser1.setUserType(sysUser1.getUserType() + ",SYSTEM");
+				}
+				sysUserDao.update(sysUser1);
 				employee1.setDelFlag(false);
 				employeeDao.update(employee1);
 			}else{
@@ -115,7 +124,27 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 	@Transactional(rollbackFor = Exception.class)
 	public void del(Integer id) {
 		Employee employee = employeeDao.get(id);
+		SysUser sysUser = employee.getSysUser();
+		String userType = sysUser.getUserType();
+		if(userType.contains(",SYSTEM")){
+			userType.replace(",SYSTEM","");
+		}else if(userType.contains("SYSTEM,")){
+			userType.replace("SYSTEM,","");
+		}else {
+			sysUser.setUserType("");
+		}
+		sysUser.setUserType(userType);
+		sysUserDao.update(sysUser);
 		sysUserDao.delEmployeeRole(employee.getUserId());
 		employeeDao.delete(id);
 	}
+
+	@Override
+	public Employee getEmployee(Integer id) {
+		Employee employee = employeeDao.get(id);
+		SysUser sysUser = employee.getSysUser();
+		Set<Integer> roleIds = sysUserDao.queryRoleIds(sysUser.getId());
+		sysUser.setRoles(roleIds);
+		return employee;
+	}
 }

+ 19 - 0
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/OrganizationServiceImpl.java

@@ -90,6 +90,13 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 				user.setPhone(organ.getContactPhone());
 				sysUserDao.update(user);
 			}else if(organization.getDelFlag() == YesOrNoEnum.YES){
+				SysUser sysUser1 = organization.getSysUser();
+				if(StringUtils.isEmpty(sysUser1.getUserType())){
+					sysUser1.setUserType("SYSTEM");
+				}else {
+					sysUser1.setUserType(sysUser1.getUserType() + ",SYSTEM");
+				}
+				sysUserDao.update(sysUser1);
 				organization.setDelFlag(YesOrNoEnum.NO);
 				organDao.update(organization);
 			}else{
@@ -201,6 +208,18 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		Integer count = examOrganizationRelationDao.findByOrganId(id);
 		Organization organization = organDao.get(id);
 		if(count == null || count == 0){
+			SysUser sysUser = organization.getSysUser();
+			String userType = sysUser.getUserType();
+			if(userType.contains(",SYSTEM")){
+				userType.replace(",SYSTEM","");
+			}else if(userType.contains("SYSTEM,")){
+				userType.replace("SYSTEM,","");
+			}else {
+				sysUser.setUserType("");
+			}
+			sysUser.setUserType(userType);
+			sysUserDao.update(sysUser);
+
 			sysUserDao.delEmployeeRole(organization.getUserId());
 			organDao.delete(id);
 		}else {

+ 2 - 3
edu-user/edu-user-server/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -30,10 +30,9 @@
 
     <!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="Employee" >
-		SELECT e.*,su.*,sur.role_id_ FROM employee e
+		SELECT e.*,su.* FROM employee e
 		LEFT JOIN sys_user su ON e.user_id_ = su.id_
-		LEFT JOIN sys_user_role sur ON e.user_id_ = sur.user_id_
-		WHERE e.user_id_ = #{userId}
+		WHERE e.user_id_ = #{userId} LIMIT 1
 	</select>
 	
 	<!-- 全查询 -->

+ 3 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -27,7 +27,9 @@
 	
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="Organization" >
-		SELECT * FROM organization WHERE id_ = #{id}
+		SELECT * FROM organization o
+		LEFT JOIN sys_user su ON o.user_id_ = su.id_
+		WHERE o.id_ = #{id} LIMIT 1
 	</select>
 	
 	<!-- 全查询 -->

+ 6 - 1
edu-user/edu-user-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -30,7 +30,7 @@
         <result column="wechat_id_" property="wechatId"/>
         <result column="is_super_admin_" property="isSuperAdmin"/>
         <result column="tenant_id_" property="tenantId"/>
-        <collection property="roles" ofType="java.lang.Integer" column="role_id_"/>
+        <!--<collection property="roles" ofType="java.lang.Integer" column="role_id_"/>-->
     </resultMap>
 
     <resultMap id="BaseUserInfoDto" type="com.keao.edu.user.dto.BaseUserInfoDto">
@@ -179,6 +179,11 @@
     <select id="queryByPhoneAndClient" resultMap="SysUser">
         select * from sys_user where (phone_ = #{phone} OR username_ = #{phone}) AND user_type_ LIKE CONCAT('%',#{client},'%') LIMIT 1 FOR UPDATE
     </select>
+    <select id="queryRoleIds" resultType="java.lang.Integer">
+        SELECT sur.role_id_ FROM employee e
+		LEFT JOIN sys_user_role sur ON e.user_id_ = sur.user_id_
+		WHERE e.user_id_ = #{userId}
+    </select>
 
     <insert id="batchAddEmployeeRole">
         INSERT INTO sys_user_role(user_id_,role_id_) values