zouxuan 5 роки тому
батько
коміт
958c81840b

+ 1 - 15
edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/dto/AuthUser.java

@@ -17,16 +17,10 @@ public class AuthUser extends User {
 	 */
 	private Integer userId;
 
-	/**
-	 * 所在组织的编号
-	 */
-	private Integer organId;
-
-	public AuthUser(Integer userId, Integer organId, String username, String password, boolean enabled, boolean accountNonExpired,
+	public AuthUser(Integer userId, String username, String password, boolean enabled, boolean accountNonExpired,
 			boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) {
 		super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
 		this.userId = userId;
-		this.organId = organId;
 	}
 
 	public Integer getUserId() {
@@ -37,12 +31,4 @@ public class AuthUser extends User {
 		this.userId = userId;
 	}
 
-	public Integer getOrganId() {
-		return organId;
-	}
-
-	public void setOrganId(Integer organId) {
-		this.organId = organId;
-	}
-
 }

+ 0 - 101
edu-auth/edu-auth-api/src/main/java/com/keao/edu/auth/api/entity/SysUser.java

@@ -40,14 +40,6 @@ public class SysUser implements Serializable{
 	@ApiModelProperty(value = "头像",required = false)
 	private String avatar;
 
-	/** 部门ID */
-	@ApiModelProperty(value = "部门ID",required = false)
-	private Integer organId;
-
-	/** 部门ID */
-	@ApiModelProperty(value = "部门名称",required = false)
-	private String organName;
-
 	/** 创建时间 */
 	private java.util.Date createTime;
 
@@ -72,10 +64,6 @@ public class SysUser implements Serializable{
 
 	/** 用户类型 */
 //	@ApiModelProperty(value = "用户类型",required = false)
-//	private String userType;
-
-	/** 用户类型 */
-//	@ApiModelProperty(value = "用户类型",required = false)
 	//STUDENT("学生"), EDU_TEACHER("教务老师"), TEACHER("指导老师"), SYSTEM("系统內置"), ADMIN("管理员")
 	private String userType;
 
@@ -100,73 +88,15 @@ public class SysUser implements Serializable{
 	@ApiModelProperty(value = "真实姓名",required = false)
 	private String realName;
 
-	@ApiModelProperty(value = "年级",required = false)
-	private String currentGrade;
-
-	@ApiModelProperty(value = "班级",required = false)
-	private String currentClass;
-
 	@ApiModelProperty(value = "微信号",required = false)
 	private String wechatId;
 	
 	@ApiModelProperty(value = "是否是超管",required = false)
 	private Boolean isSuperAdmin = false;
 
-	private Integer serviceTag;
-
-	private Integer operatingTag;
-	
-	private Integer teacherId;
-
 	@ApiModelProperty(value = "用户角色",required = false)
 	private List<Integer> roles;
 
-	@ApiModelProperty(value = "联系地址",required = false)
-	private String contactAddress;
-
-	@ApiModelProperty(value = "邮编",required = false)
-	private String postalCode;
-
-	public Integer getServiceTag() {
-		return serviceTag;
-	}
-
-	public void setServiceTag(Integer serviceTag) {
-		this.serviceTag = serviceTag;
-	}
-
-	public Integer getOperatingTag() {
-		return operatingTag;
-	}
-
-	public void setOperatingTag(Integer operatingTag) {
-		this.operatingTag = operatingTag;
-	}
-
-	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 String getOrganName() {
-		return organName;
-	}
-
-	public void setOrganName(String organName) {
-		this.organName = organName;
-	}
-
 	public String getRealName() {
 		return realName;
 	}
@@ -231,14 +161,6 @@ public class SysUser implements Serializable{
 		return this.avatar;
 	}
 
-	public Integer getOrganId() {
-		return organId;
-	}
-
-	public void setOrganId(Integer organId) {
-		this.organId = organId;
-	}
-
 	public void setCreateTime(java.util.Date createTime) {
 		this.createTime = createTime;
 	}
@@ -359,14 +281,6 @@ public class SysUser implements Serializable{
 		this.isSuperAdmin = isSuperAdmin;
 	}
 
-	public Integer getTeacherId() {
-		return teacherId;
-	}
-
-	public void setTeacherId(Integer teacherId) {
-		this.teacherId = teacherId;
-	}
-
 	public List<Integer> getRoles() {
 		return roles;
 	}
@@ -374,21 +288,6 @@ public class SysUser implements Serializable{
 	public void setRoles(List<Integer> roles) {
 		this.roles = roles;
 	}
-	public String getContactAddress() {
-		return contactAddress;
-	}
-
-	public void setContactAddress(String contactAddress) {
-		this.contactAddress = contactAddress;
-	}
-
-	public String getPostalCode() {
-		return postalCode;
-	}
-
-	public void setPostalCode(String postalCode) {
-		this.postalCode = postalCode;
-	}
 
 	@Override
 	public String toString() {

+ 8 - 13
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/core/provider/service/DefaultUserDetailsService.java

@@ -1,8 +1,10 @@
 package com.keao.edu.auth.core.provider.service;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import com.keao.edu.auth.api.dto.AuthUser;
+import com.keao.edu.auth.api.dto.SysUserInfo;
+import com.keao.edu.auth.api.entity.SysUser;
+import com.keao.edu.auth.api.util.SecurityConstants;
+import com.keao.edu.auth.service.SysUserService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.LockedException;
@@ -12,22 +14,15 @@ import org.springframework.security.core.authority.SimpleGrantedAuthority;
 import org.springframework.security.core.userdetails.UserDetails;
 import org.springframework.security.core.userdetails.UserDetailsService;
 import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 
-import com.keao.edu.auth.api.dto.AuthUser;
-import com.keao.edu.auth.api.dto.SysUserInfo;
-import com.keao.edu.auth.api.entity.SysUser;
-import com.keao.edu.auth.api.util.SecurityConstants;
-import com.keao.edu.auth.service.SysUserService;
+import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class DefaultUserDetailsService implements UserDetailsService {
 
 	@Autowired
-	private PasswordEncoder passwordEncoder;
-
-	@Autowired
 	private SysUserService sysUserService;
 
 	private final String BCRYPT = "{bcrypt}";
@@ -74,7 +69,7 @@ public class DefaultUserDetailsService implements UserDetailsService {
 
 		SysUser sysUser = userInfo.getSysUser();
 
-		return new AuthUser(sysUser.getId(), sysUser.getOrganId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0, true, true, true,
+		return new AuthUser(sysUser.getId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0, true, true, true,
 				authorities);
 	}
 

+ 9 - 18
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/dal/dao/SysUserDao.java

@@ -1,13 +1,12 @@
 package com.keao.edu.auth.dal.dao;
 
-import java.util.List;
-
-import org.apache.ibatis.annotations.Param;
-
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.auth.api.enums.UserLockFlag;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.im.api.entity.ImUserModel;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 
@@ -40,13 +39,6 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	void updatePassword(@Param("mobile") String mobile, @Param("password") String password);
 
 	/**
-	 * 获取用户基本信息
-	 * @param userId
-	 * @return
-	 */
-	ImUserModel getBasic(Integer userId);
-
-	/**
 	 * 根据状态查询
 	 * @param status
 	 * @return
@@ -54,17 +46,16 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	List<SysUser> queryByStatus(UserLockFlag status);
 
 	/**
-	 * 获取随机盐不为null的一条数据
-	 * @param userType
-	 * @return
-	 */
-	SysUser findUserBySalt(String userType);
-
-	/**
 	 * 刷新用户token
 	 * @param userId
 	 * @param imToken
 	 */
 	void refreshImToken(@Param("userId") Integer userId, @Param("imToken") String imToken);
 
+	/**
+	 * 获取用户基本信息
+	 * @param userId
+	 * @return
+	 */
+	ImUserModel getBasic(Integer userId);
 }

+ 13 - 19
edu-auth/edu-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -14,7 +14,6 @@
         <result column="salt_" property="salt"/>
         <result column="phone_" property="phone"/>
         <result column="avatar_" property="avatar"/>
-        <result column="organ_id_" property="organId"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="lock_flag_" property="lockFlag"/>
@@ -30,8 +29,6 @@
         <result column="id_card_no_" property="idCardNo"/>
         <result column="wechat_id_" property="wechatId"/>
         <result column="is_super_admin_" property="isSuperAdmin"/>
-        <result column="current_grade_" property="currentGrade"/>
-        <result column="current_class_" property="currentClass"/>
     </resultMap>
 
     <!-- 查询条件 -->
@@ -45,16 +42,11 @@
         <if test="userType != null">
             and user_type_ = #{userType}
         </if>
-        <if test="organId != null">
-            and organ_id_ = #{organId}
-        </if>
     </sql>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="SysUser">
-		SELECT su.*,sr.current_class_,sr.current_grade_
-        FROM sys_user su LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ = #{id} LIMIT 1
+		SELECT * FROM sys_user WHERE id_ = #{id} LIMIT 1
 	</select>
 
     <!-- 全查询 -->
@@ -66,9 +58,9 @@
     <insert id="insert" parameterType="com.keao.edu.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         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_,
+        (is_super_admin_,im_token_,id_,username_,salt_,phone_,avatar_,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},
+        VALUES(#{isSuperAdmin},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
         #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName})
     </insert>
 
@@ -118,9 +110,6 @@
             <if test="nation != null">
                 nation_ = #{nation},
             </if>
-            <if test="organId != null">
-                organ_id_ = #{organId},
-            </if>
             <if test="imToken != null">
                 im_token_ = #{imToken},
             </if>
@@ -137,7 +126,7 @@
                 real_name_ = #{realName},
             </if>
             <if test="isSuperAdmin != null">
-                is_super_admin_ = #{isSuperAdmin},
+                is_super_admin_ = #{isSuperAdmin}
             </if>
         </set>
         WHERE id_ = #{id}
@@ -180,12 +169,17 @@
         select * from sys_user where lock_flag_ = #{status}
     </select>
 
-    <select id="findUserBySalt" resultMap="SysUser">
-        SELECT * FROM sys_user WHERE salt_ IS NOT NULL AND salt_ = 'replace' AND user_type_ LIKE CONCAT('%',#{userType},'%') LIMIT 1
-    </select>
-
     <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>
+    <resultMap id="ImUserModel" type="com.keao.edu.im.api.entity.ImUserModel">
+        <result column="id_" property="id"/>
+        <result property="name" column="username_"/>
+        <result property="portrait" column="avatar_"/>
+    </resultMap>
+    <select id="getBasic" resultMap="ImUserModel">
+        select CASE WHEN real_name_ IS NULL OR real_name_ = '' THEN username_ ELSE real_name_ END username_,id_,avatar_
+        from sys_user where id_ = #{userId} LIMIT 1
+    </select>
 
 </mapper>

+ 5 - 1
edu-user/edu-user-server/pom.xml

@@ -70,5 +70,9 @@
 			<groupId>com.keao.edu</groupId>
 			<artifactId>edu-auth-api</artifactId>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>com.keao.edu</groupId>
+            <artifactId>edu-im-api</artifactId>
+        </dependency>
+    </dependencies>
 </project>

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

@@ -1,6 +1,7 @@
 package com.keao.edu.user.controller;
 
 
+import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.controller.BaseController;
 import com.keao.edu.common.entity.HttpResponseResult;
 import com.keao.edu.common.page.PageInfo;
@@ -38,8 +39,9 @@ public class EmployeeController extends BaseController {
 
 	@ApiOperation("新增员工")
 	@PostMapping(value = "/add")
-	public HttpResponseResult add(Employee employee) {
-		return succeed(employeeService.add(employee));
+	public HttpResponseResult add(SysUser sysUser) {
+		employeeService.add(sysUser);
+		return succeed();
 	}
 
 	@ApiOperation("更新员工")

+ 22 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/dao/EmployeeDao.java

@@ -1,9 +1,30 @@
 package com.keao.edu.user.dao;
 
+import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
 import com.keao.edu.user.entity.Employee;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 public interface EmployeeDao extends BaseDAO<Integer, Employee> {
 
-	
+    /**
+     * 批量新增用户角色
+     * @param id
+     * @param roles
+     */
+    void batchAddEmployeeRole(@Param("userId") Integer id, @Param("roles") List<Integer> roles);
+
+    /**
+     * 修改用户信息
+     * @param user
+     */
+    void updateUser(SysUser user);
+
+    /**
+     * 新增用户
+     * @param user
+     */
+    void addSysUser(SysUser user);
 }

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

@@ -0,0 +1,40 @@
+package com.keao.edu.user.dao;
+
+import com.keao.edu.auth.api.entity.SysUser;
+import com.keao.edu.auth.api.enums.UserLockFlag;
+import com.keao.edu.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+public interface SysUserDao extends BaseDAO<Integer, SysUser> {
+
+	/**
+	 * 根据用户名查询对象
+	 * @param username
+	 * @return
+	 */
+	SysUser queryByUsername(String username);
+
+	/**
+	 * 根据手机号查询对象
+	 * @param phone
+	 * @return
+	 */
+	SysUser queryByPhone(String phone);
+
+	/**
+	 * 根据手机号查询对象
+	 * @param phone
+	 * @return
+	 */
+	SysUser queryByPhoneAndClient(@Param("phone") String phone, @Param("client") String client);
+
+	/**
+	 * 根据状态查询
+	 * @param status
+	 * @return
+	 */
+	List<SysUser> queryByStatus(UserLockFlag status);
+
+}

+ 13 - 1
edu-user/edu-user-server/src/main/java/com/keao/edu/user/entity/Employee.java

@@ -1,5 +1,6 @@
 package com.keao.edu.user.entity;
 
+import com.keao.edu.auth.api.entity.SysUser;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -61,7 +62,18 @@ public class Employee {
 	/** 邮政编码 */
 	@ApiModelProperty(value = "邮政编码",required = false)
 	private String postalCode;
-	
+
+	@ApiModelProperty(value = "员工信息",required = false)
+	private SysUser sysUser;
+
+	public SysUser getSysUser() {
+		return sysUser;
+	}
+
+	public void setSysUser(SysUser sysUser) {
+		this.sysUser = sysUser;
+	}
+
 	public void setUserId(Integer userId){
 		this.userId = userId;
 	}

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

@@ -1,5 +1,6 @@
 package com.keao.edu.user.service;
 
+import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.service.BaseService;
 import com.keao.edu.user.entity.Employee;
 
@@ -7,8 +8,8 @@ public interface EmployeeService extends BaseService<Integer, Employee> {
 
     /**
      * 新增员工
-     * @param employee
+     * @param sysUser
      * @return
      */
-    Integer add(Employee employee);
+    void add(SysUser sysUser);
 }

+ 45 - 3
edu-user/edu-user-server/src/main/java/com/keao/edu/user/service/impl/EmployeeServiceImpl.java

@@ -2,13 +2,22 @@ package com.keao.edu.user.service.impl;
 
 
 import com.keao.edu.auth.api.client.SysUserFeignService;
+import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
+import com.keao.edu.im.api.client.ImFeignService;
+import com.keao.edu.im.api.entity.ImResult;
+import com.keao.edu.im.api.entity.ImUserModel;
 import com.keao.edu.user.dao.EmployeeDao;
+import com.keao.edu.user.dao.SysUserDao;
 import com.keao.edu.user.entity.Employee;
 import com.keao.edu.user.service.EmployeeService;
+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;
 
 @Service
 public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> implements EmployeeService {
@@ -16,7 +25,9 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 	@Autowired
 	private EmployeeDao employeeDao;
 	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	private ImFeignService imFeignService;
+	@Autowired
+	private SysUserDao sysUserDao;
 
 	@Override
 	public BaseDAO<Integer, Employee> getDAO() {
@@ -24,7 +35,38 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee> impl
 	}
 
 	@Override
-	public Integer add(Employee employee) {
-		return null;
+	@Transactional(rollbackFor = Exception.class)
+	public void add(SysUser sysUser) {
+		SysUser user = sysUserDao.queryByPhone(sysUser.getPhone());
+		Employee employee;
+		if(user != null && user.getId() != null){
+			employee = employeeDao.get(user.getId());
+			if(employee == null){
+				if(StringUtils.isEmpty(user.getPassword())){
+					user.setPassword(new BCryptPasswordEncoder().encode("123456"));
+				}
+				employee.setUserId(user.getId());
+				employeeDao.insert(employee);
+				//新增用户角色
+				employeeDao.batchAddEmployeeRole(user.getId(),sysUser.getRoles());
+				user.setUserType(user.getUserType() + ",SYSTEM");
+				employeeDao.updateUser(user);
+				return;
+			}else{
+				throw new BizException("用户已存在");
+			}
+		}
+		user = new SysUser();
+		user.setPassword(new BCryptPasswordEncoder().encode("123456"));
+		user.setUserType("SYSTEM");
+		employeeDao.addSysUser(user);
+		employee = new Employee();
+		employee.setUserId(user.getId());
+		employeeDao.insert(employee);
+		//新增用户角色
+		employeeDao.batchAddEmployeeRole(user.getId(),sysUser.getRoles());
+		ImResult imResult = imFeignService.register(new ImUserModel(user.getId().toString(), user.getRealName(),null));
+		user.setImToken(imResult.getToken());
+		employeeDao.updateUser(user);
 	}
 }

+ 64 - 1
edu-user/edu-user-server/src/main/resources/config.mybatis/EmployeeMapper.xml

@@ -93,7 +93,70 @@
 		</if>
 		</set> WHERE user_id_ = #{userId}
 	</update>
-	
+    <update id="batchAddEmployeeRole">
+		INSERT INTO sys_user_role(user_id_,role_id_) values
+		<foreach collection="roles" item="item" index="index" separator=",">
+			(#{userId},#{item})
+		</foreach>
+	</update>
+	<update id="updateUser" parameterType="com.keao.edu.auth.api.entity.SysUser">
+		UPDATE sys_user
+		<set>
+			<if test="delFlag != null">
+				del_flag_ = #{delFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+			</if>
+			<if test="wxOpenid != null">
+				wx_openid_ = #{wxOpenid},
+			</if>
+			<if test="password != null">
+				password_ = #{password},
+			</if>
+			<if test="avatar != null">
+				avatar_ = #{avatar},
+			</if>
+			<if test="email != null">
+				email_ = #{email},
+			</if>
+			<if test="gender != null">
+				gender_ = #{gender},
+			</if>
+			<if test="salt != null">
+				salt_ = #{salt},
+			</if>
+			<if test="username != null">
+				username_ = #{username},
+			</if>
+			<if test="realName != null">
+				real_name_ = #{realName},
+			</if>
+			<if test="userType != null">
+				user_type_ = #{userType},
+			</if>
+			<if test="updateTime != null">
+				update_time_ = NOW(),
+			</if>
+			<if test="lockFlag != null">
+				lock_flag_ = #{lockFlag},
+			</if>
+			<if test="birthdate != null">
+				birthdate_ = #{birthdate},
+			</if>
+			<if test="phone != null">
+				phone_ = #{phone},
+			</if>
+			<if test="qqOpenid != null">
+				qq_openid_ = #{qqOpenid},
+			</if>
+			<if test="nation != null">
+				nation_ = #{nation},
+			</if>
+			<if test="imToken != null">
+				im_token_ = #{imToken}
+			</if>
+		</set>
+		WHERE id_ = #{id}
+	</update>
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM employee WHERE user_id_ = #{userId} 

+ 169 - 0
edu-user/edu-user-server/src/main/resources/config.mybatis/SysUserMapper.xml

@@ -0,0 +1,169 @@
+<?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.keao.edu.user.dao.SysUserDao">
+
+    <resultMap type="com.keao.edu.auth.api.entity.SysUser" id="SysUser">
+        <result column="id_" property="id"/>
+        <result column="username_" property="username"/>
+        <result column="real_name_" property="realName"/>
+        <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="im_token_" property="imToken"/>
+        <result column="id_card_no_" property="idCardNo"/>
+        <result column="wechat_id_" property="wechatId"/>
+        <result column="is_super_admin_" property="isSuperAdmin"/>
+    </resultMap>
+
+    <!-- 查询条件 -->
+    <sql id="queryCondition">
+        <if test="userStartDate != null">
+            and create_time_ &gt;= #{createStartDate}
+        </if>
+        <if test="userEndDate != null">
+            and create_time_ &lt;= #{createEndDate}
+        </if>
+        <if test="userType != null">
+            and user_type_ = #{userType}
+        </if>
+    </sql>
+
+    <!-- 根据主键查询一条记录 -->
+    <select id="get" resultMap="SysUser">
+		SELECT * FROM sys_user WHERE id_ = #{id} LIMIT 1
+	</select>
+
+    <!-- 全查询 -->
+    <select id="findAll" resultMap="SysUser">
+		SELECT * FROM sys_user ORDER BY id_
+	</select>
+
+    <!-- 向数据库增加一条记录 -->
+    <insert id="insert" parameterType="com.keao.edu.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
+            keyProperty="id">
+        INSERT INTO sys_user
+        (is_super_admin_,im_token_,id_,username_,salt_,phone_,avatar_,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},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
+        #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName})
+    </insert>
+
+    <!-- 根据主键查询一条记录 -->
+    <update id="update" parameterType="com.keao.edu.auth.api.entity.SysUser">
+        UPDATE sys_user
+        <set>
+            <if test="delFlag != null">
+                del_flag_ = #{delFlag},
+            </if>
+            <if test="wxOpenid != null">
+                wx_openid_ = #{wxOpenid},
+            </if>
+            <if test="avatar != null">
+                avatar_ = #{avatar},
+            </if>
+            <if test="email != null">
+                email_ = #{email},
+            </if>
+            <if test="gender != null">
+                gender_ = #{gender},
+            </if>
+            <if test="salt != null">
+                salt_ = #{salt},
+            </if>
+            <if test="username != null">
+                username_ = #{username},
+            </if>
+            <if test="userType != null">
+                user_type_ = #{userType},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = NOW(),
+            </if>
+            <if test="lockFlag != null">
+                lock_flag_ = #{lockFlag},
+            </if>
+            <if test="birthdate != null">
+                birthdate_ = #{birthdate},
+            </if>
+            <if test="phone != null">
+                phone_ = #{phone},
+            </if>
+            <if test="qqOpenid != null">
+                qq_openid_ = #{qqOpenid},
+            </if>
+            <if test="nation != null">
+                nation_ = #{nation},
+            </if>
+            <if test="imToken != null">
+                im_token_ = #{imToken},
+            </if>
+            <if test="idCardNo != null">
+                id_card_no_ = #{idCardNo},
+            </if>
+            <if test="password != null">
+                password_ = #{password},
+            </if>
+            <if test="wechatId != null">
+                wechat_id_ = #{wechatId},
+            </if>
+            <if test="realName != null">
+                real_name_ = #{realName},
+            </if>
+            <if test="isSuperAdmin != null">
+                is_super_admin_ = #{isSuperAdmin}
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
+    <!-- 根据主键删除一条记录 -->
+    <delete id="delete">
+		UPDATE sys_user SET del_flag_ = 1 WHERE id_ = #{id}
+	</delete>
+
+    <!-- 分页查询 -->
+    <select id="queryPage" resultMap="SysUser" parameterType="map">
+        SELECT * FROM sys_user ORDER BY id_
+        <include refid="queryCondition"/>
+        <include refid="global.orderby"/>
+        <include refid="global.limit"/>
+    </select>
+
+    <!-- 查询当前表的总记录数 -->
+    <select id="queryCount" resultType="int">
+        SELECT COUNT(*) FROM sys_user
+        <include refid="queryCondition"/>
+    </select>
+
+    <select id="queryByUsername" resultMap="SysUser">
+		select * from sys_user where username_ = #{username} OR phone_ = #{username} LIMIT 1 FOR UPDATE
+	</select>
+
+    <select id="queryByPhone" resultMap="SysUser">
+		select * from sys_user where phone_ = #{phone} OR username_ = #{phone} LIMIT 1 FOR UPDATE
+	</select>
+    
+    <select id="queryByStatus" resultMap="SysUser">
+        select * from sys_user where lock_flag_ = #{status}
+    </select>
+
+    <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>
+
+</mapper>