zouxuan 5 年之前
父節點
當前提交
9fe66e4d33

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

@@ -21,7 +21,7 @@ public interface SysUserFeignService {
 	public SysUser getUserByMobile(@RequestParam("mobile") String mobile);
 
 	@GetMapping(value = "user/add")
-	public Object addUser(@RequestBody SysUser user);
+	public Object addUser(SysUser user);
 
 	@GetMapping(value = "task/test")
 	public Object test();

+ 15 - 14
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -1,12 +1,13 @@
 package com.ym.mec.auth.api.entity;
 
-import java.util.Date;
-
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.auth.api.enums.UserLockFlag;
+import com.ym.mec.auth.api.enums.YesOrNoEnum;
+import com.ym.mec.common.enums.UserGenderEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.common.enums.UserGenderEnum;
+import java.util.Date;
 
 /**
  * 对应数据库表(sys_user):
@@ -48,11 +49,11 @@ public class SysUser {
 
 	/** 0-正常,9-锁定 */
 	@ApiModelProperty(value = "0-正常,9-锁定",required = false)
-	private String lockFlag;
+	private UserLockFlag lockFlag;
 
 	/** 0-正常,1-删除 */
 	@ApiModelProperty(value = "0-正常,1-删除",required = false)
-	private String delFlag;
+	private YesOrNoEnum delFlag;
 
 	/** 微信openid */
 	@ApiModelProperty(value = "微信openid",required = false)
@@ -161,20 +162,20 @@ public class SysUser {
 		return this.updateTime;
 	}
 
-	public void setLockFlag(String lockFlag) {
-		this.lockFlag = lockFlag;
+	public UserLockFlag getLockFlag() {
+		return lockFlag;
 	}
 
-	public String getLockFlag() {
-		return this.lockFlag;
+	public void setLockFlag(UserLockFlag lockFlag) {
+		this.lockFlag = lockFlag;
 	}
 
-	public void setDelFlag(String delFlag) {
-		this.delFlag = delFlag;
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
 	}
 
-	public String getDelFlag() {
-		return this.delFlag;
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
 	}
 
 	public void setWxOpenid(String wxOpenid) {

+ 47 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/enums/UserLockFlag.java

@@ -0,0 +1,47 @@
+package com.ym.mec.auth.api.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/** 
+ * @author sunzl 
+ * 2015825日 下午4:19:00 
+ * 会员状态枚举类
+ */
+public enum UserLockFlag implements BaseEnum<Integer, UserLockFlag> {
+
+	NOACTIVATED(0, "正常"), CANCELLED(1, "冻结"), NORMAL(9, "锁定");
+
+	private int code;
+
+	private UserLockFlag(int code, String remark) {
+		this.code = code;
+		this.remark = remark;
+	}
+
+	private String remark;
+
+	public Integer getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public static UserLockFlag codeOf(int code) {
+		for (UserLockFlag userStatus : UserLockFlag.values()) {
+			if (code == userStatus.getCode()) {
+				return userStatus;
+			}
+		}
+		return null;
+	}
+}

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

@@ -140,7 +140,7 @@ public class UserController extends BaseController {
 
 	@ApiOperation(value = "修改用户")
 	@PutMapping("/update")
-	public Object update(@RequestBody SysUser sysUser) {
+	public Object update(SysUser sysUser) {
 		AuthUser user = SecurityUtils.getUser();
 		if(user != null){
 			Date date = new Date();

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

@@ -16,8 +16,8 @@
         <result column="organ_id_" property="organId"/>
         <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="lock_flag_" property="lockFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <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"/>
@@ -37,7 +37,7 @@
             and create_time_ &lt;= #{createEndDate}
         </if>
         <if test="userType != null">
-            and user_type_ = #{userType}
+            and user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
         <if test="organId != null">
             and organ_id_ = #{organId}
@@ -64,7 +64,8 @@
         -->
         INSERT INTO sys_user
         (im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_)
-        VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{gender, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{nation},#{birthdate},#{email})
+        VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        #{gender, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{nation},#{birthdate},#{email})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -72,7 +73,7 @@
         UPDATE sys_user
         <set>
             <if test="delFlag != null">
-                del_flag_ = #{delFlag},
+                del_flag_ = #{delFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="wxOpenid != null">
                 wx_openid_ = #{wxOpenid},
@@ -99,7 +100,7 @@
                 update_time_ = #{updateTime},
             </if>
             <if test="lockFlag != null">
-                lock_flag_ = #{lockFlag},
+                lock_flag_ = #{lockFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="birthdate != null">
                 birthdate_ = #{birthdate},

+ 4 - 20
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -1,7 +1,6 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.security.SecurityUtils;
 import com.ym.mec.web.dal.entity.Teacher;
 import com.ym.mec.web.dal.page.TeacherQueryInfo;
 import com.ym.mec.web.service.ClassGroupService;
@@ -37,40 +36,25 @@ public class TeacherController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "删除教师")
-    @PostMapping("/del/{id}")
-    public Object del(@ApiParam(value = "教师编号", required = true) @PathVariable("id") Integer id) {
-        teacherService.delete(id);
-        return succeed();
-    }
-
     @ApiOperation(value = "修改教师")
     @PostMapping("/update")
     public Object update(Teacher teacher) {
-        Integer organId = SecurityUtils.getUser().getOrganId();
-        if(organId != null){
-            teacher.setOrganId(organId);
-        }
-        Teacher teacherServiceByCertificateNum = teacherService.findByCertificateNum(teacher.getCertificateNum());
-        if (teacherServiceByCertificateNum != null && !teacherServiceByCertificateNum.getId().equals(teacher.getId())) {
-            return failed("系统已存在该证件号的老师,请核查");
-        }
         teacher.setUpdateTime(new Date());
-        teacherService.update(teacher);
+        teacherService.updateTea(teacher);
         return succeed();
     }
 
-    @ApiOperation(value = "根据教师编号查询教师")
+    @ApiOperation(value = "根据教师编号查询教师基本信息")
     @GetMapping("/get/{id}")
     @ApiParam(value = "教师编号", required = true)
     public Object get(@PathVariable("id") Integer id) {
-        return succeed(teacherService.get(id));
+        return succeed(teacherService.getDetail(id));
     }
 
     @ApiOperation(value = "分页查询教师列表")
     @GetMapping("/queryPage")
     public Object queryPage(TeacherQueryInfo queryInfo) {
-        return succeed(teacherService.queryPage(queryInfo));
+        return succeed(teacherService.queryPageDetail(queryInfo));
     }
 
     @ApiOperation(value = "根据教师编号查询教师课程班列表")

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/OrganizationDao.java

@@ -15,4 +15,11 @@ public interface OrganizationDao extends BaseDAO<Integer, Organization> {
      * @return
      */
     List<Organization> findByParentId(@Param("parentId") Integer parentId, @Param("delFlag") String delFlag);
+
+    /**
+     * 根据分部id字符串查询
+     * @param organIds
+     * @return
+     */
+    List<String> findByOrganIds(String organIds);
 }

+ 7 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dao/SubjectDao.java

@@ -51,4 +51,11 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
      * @return
      */
     List<SubjectApplyDetailDto> findSubApplyDetail(Integer musicGroupId);
+
+    /**
+     * 根据声部id字符串查询
+     * @param subIds
+     * @return
+     */
+    List<String> findBySubIds(String subIds);
 }

+ 7 - 1
mec-web/src/main/java/com/ym/mec/web/dal/dao/TeacherDao.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.dal.dao;
 
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.web.dal.entity.Teacher;
 import org.apache.ibatis.annotations.Param;
@@ -12,5 +13,10 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return Teacher 老师信息
      */
     Teacher findByCertificateNum(@Param("certificateNum") String certificateNum);
-	
+
+    /**
+     * 修改用户信息
+     * @param user
+     */
+    void updateUser(SysUser user);
 }

+ 14 - 2
mec-web/src/main/java/com/ym/mec/web/dal/entity/Teacher.java

@@ -40,12 +40,16 @@ public class Teacher extends SysUser {
 	@ApiModelProperty(value = "技术职称", required = false)
 	private String technicalTitles;
 
+	/** 所属分部名称 */
+	@ApiModelProperty(value = "所属分部名称", required = false)
+	private String organName;
+
 	/** 工作单位 */
 	@ApiModelProperty(value = "工作单位", required = false)
 	private String workUnit;
 
 	/** 专业技能(支持多个,用|分隔),对应科目表编号 */
-	@ApiModelProperty(value = "专业技能(支持多个,用|分隔),对应科目表编号", required = false)
+	@ApiModelProperty(value = "专业技能(支持多个,用逗号分隔),对应科目表编号", required = false)
 	private String subjectId;
 
 	/** 入职时间 */
@@ -61,7 +65,7 @@ public class Teacher extends SysUser {
 	private String certificateNum;
 
 	/** 流动范围(多个用|分开) */
-	@ApiModelProperty(value = "流动范围(多个用|分开)", required = false)
+	@ApiModelProperty(value = "流动范围(多个用逗号分开)", required = false)
 	private String flowOrganRange;
 
 	@ApiModelProperty(value = "老师介绍", required = false)
@@ -70,6 +74,14 @@ public class Teacher extends SysUser {
 	@ApiModelProperty(value = "离职时间", required = false)
 	private Date demissionDate;
 
+	public String getOrganName() {
+		return organName;
+	}
+
+	public void setOrganName(String organName) {
+		this.organName = organName;
+	}
+
 	public JobTypeEnum getJobType() {
 		return jobType;
 	}

+ 47 - 0
mec-web/src/main/java/com/ym/mec/web/dal/enums/UserLockFlag.java

@@ -0,0 +1,47 @@
+package com.ym.mec.web.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/** 
+ * @author sunzl 
+ * 2015825日 下午4:19:00 
+ * 会员状态枚举类
+ */
+public enum UserLockFlag implements BaseEnum<Integer, UserLockFlag> {
+
+	NOACTIVATED(0, "正常"), CANCELLED(1, "冻结"), NORMAL(9, "锁定");
+
+	private int code;
+
+	private UserLockFlag(int code, String remark) {
+		this.code = code;
+		this.remark = remark;
+	}
+
+	private String remark;
+
+	public Integer getCode() {
+		return code;
+	}
+
+	public void setCode(int code) {
+		this.code = code;
+	}
+
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
+	public static UserLockFlag codeOf(int code) {
+		for (UserLockFlag userStatus : UserLockFlag.values()) {
+			if (code == userStatus.getCode()) {
+				return userStatus;
+			}
+		}
+		return null;
+	}
+}

+ 59 - 0
mec-web/src/main/java/com/ym/mec/web/dal/page/TeacherQueryInfo.java

@@ -1,6 +1,65 @@
 package com.ym.mec.web.dal.page;
 
+import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.web.dal.enums.JobNatureEnum;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import io.swagger.annotations.ApiModelProperty;
 
 public class TeacherQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "科目编号")
+    private Integer subjectId;
+
+    @ApiModelProperty(value = "机构编号")
+    private Integer organId;
+
+    @ApiModelProperty(value = "教师工作性质")
+    private JobNatureEnum jobNature;
+
+    @ApiModelProperty(value = "是否试用期")
+    private YesOrNoEnum isProbationPeriod;
+
+    @ApiModelProperty(value = "账号状态")
+    private UserLockFlag lockFlag;
+
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public JobNatureEnum getJobNature() {
+        return jobNature;
+    }
+
+    public void setJobNature(JobNatureEnum jobNature) {
+        this.jobNature = jobNature;
+    }
+
+    public YesOrNoEnum getIsProbationPeriod() {
+        return isProbationPeriod;
+    }
+
+    public void setIsProbationPeriod(YesOrNoEnum isProbationPeriod) {
+        this.isProbationPeriod = isProbationPeriod;
+    }
+
+    public UserLockFlag getLockFlag() {
+        return lockFlag;
+    }
+
+    public void setLockFlag(UserLockFlag lockFlag) {
+        this.lockFlag = lockFlag;
+    }
 }

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/service/TeacherService.java

@@ -1,8 +1,10 @@
 package com.ym.mec.web.service;
 
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.web.dal.dto.TeacherUserDto;
 import com.ym.mec.web.dal.entity.Teacher;
+import com.ym.mec.web.dal.page.TeacherQueryInfo;
 
 public interface TeacherService extends BaseService<Integer, Teacher> {
 
@@ -18,4 +20,24 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @param teacher
      */
     void add(Teacher teacher) throws Exception;
+
+    /**
+     * 修改教师信息
+     * @param teacher
+     */
+    void updateTea(Teacher teacher);
+
+    /**
+     * 分页查询教师列表
+     * @param queryInfo
+     * @return
+     */
+    PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo);
+
+    /**
+     * 获取教师详情
+     * @param id
+     * @return
+     */
+    Teacher getDetail(Integer id);
 }

+ 50 - 0
mec-web/src/main/java/com/ym/mec/web/service/impl/TeacherServiceImpl.java

@@ -1,22 +1,35 @@
 package com.ym.mec.web.service.impl;
 
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.web.dal.dao.OrganizationDao;
+import com.ym.mec.web.dal.dao.SubjectDao;
 import com.ym.mec.web.dal.dao.TeacherDao;
 import com.ym.mec.web.dal.entity.Teacher;
+import com.ym.mec.web.dal.page.TeacherQueryInfo;
 import com.ym.mec.web.service.TeacherService;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+import java.util.List;
+
 @Service
 public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  implements TeacherService {
 	
 	@Autowired
 	private TeacherDao teacherDao;
 	@Autowired
+	private SubjectDao subjectDao;
+	@Autowired
+	private OrganizationDao organizationDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	@Override
@@ -44,4 +57,41 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		teacherDao.insert(teacher);
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateTea(Teacher teacher) {
+		teacher.setUpdateTime(new Date());
+		teacherDao.update(teacher);
+		teacherDao.updateUser(teacher);
+	}
+
+	@Override
+	public PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo) {
+		PageInfo<Teacher> pageInfo = queryPage(queryInfo);
+		List<Teacher> teachers = pageInfo.getRows();
+		if(teachers != null && teachers.size() > 0){
+			teachers.forEach(e->{
+				if(StringUtils.isNotEmpty(e.getSubjectId())){
+					e.setSubjectId(JSON.toJSONString(subjectDao.findBySubIds(e.getSubjectId())));
+				}
+			});
+		}
+		return pageInfo;
+	}
+
+	@Override
+	public Teacher getDetail(Integer id) {
+		Teacher teacher = teacherDao.get(id);
+		if(teacher != null){
+			if(StringUtils.isNotEmpty(teacher.getFlowOrganRange())){
+				List<String> organNames = organizationDao.findByOrganIds(teacher.getFlowOrganRange());
+				teacher.setFlowOrganRange(JSON.toJSONString(organNames));
+			}
+			if(StringUtils.isNotEmpty(teacher.getSubjectId())){
+				teacher.setSubjectId(JSON.toJSONString(subjectDao.findBySubIds(teacher.getSubjectId())));
+			}
+		}
+		return teacher;
+	}
+
 }

+ 3 - 0
mec-web/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -97,4 +97,7 @@
     <select id="findByParentId" resultMap="Organization">
         SELECT * FROM organization <include refid="queryPageSql"/>
     </select>
+    <select id="findByOrganIds" resultType="java.lang.String">
+        SELECT name_ FROM organization IN (#{organIds}) WHERE del_flag_ = 0
+    </select>
 </mapper>

+ 3 - 0
mec-web/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -120,6 +120,9 @@
         LEFT JOIN `subject` s ON mgsp.subject_id_ = s.id_
         WHERE mgsp.music_group_id_ =
     </select>
+    <select id="findBySubIds" resultType="java.lang.String">
+        SELECT name_ FROM `subject` IN (#{subIds}) WHERE del_flag_ = 0
+    </select>
 
     <sql id="querySubPageSql">
         <where>

+ 114 - 11
mec-web/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -9,6 +9,7 @@
     <resultMap type="com.ym.mec.web.dal.entity.Teacher" id="Teacher">
         <result column="id_" property="id"/>
         <result column="organ_id_" property="organId"/>
+        <result column="organ_name_" property="organName"/>
         <result column="job_type_" property="jobType"/>
         <result column="job_nature_" property="jobNature"/>
         <result column="is_probation_period_" property="isProbationPeriod" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -25,11 +26,33 @@
         <result column="introduction_" property="introduction"/>
         <result column="update_time_" property="updateTime"/>
         <result column="create_time_" property="createTime"/>
+
+        <result column="username_" property="username"/>
+        <result column="password_" property="password"/>
+        <result column="salt_" property="salt"/>
+        <result column="phone_" property="phone"/>
+        <result column="avatar_" property="avatar"/>
+        <result column="lock_flag_" property="lockFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <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="gender_" property="gender" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="nation_" property="nation"/>
+        <result column="birthdate_" property="birthdate"/>
+        <result column="email_" property="email"/>
+        <result column="im_token_" property="imToken"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="Teacher">
-		SELECT * FROM teacher WHERE user_id_ = #{userId} 
+		SELECT t.*,su.username_,su.password_,su.salt_,su.phone_,su.avatar_,
+        su.lock_flag_,su.del_flag_,su.wx_openid_,su.qq_openid_,su.user_type_,
+        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_
+        FROM teacher t
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        LEFT JOIN organization o ON t.organ_id_ = o.id_
+        WHERE t.user_id_ = #{userId} AND o.del_flag_ = 0
 	</select>
 
     <!-- 全查询 -->
@@ -40,11 +63,6 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.web.dal.entity.Teacher" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        <!--
-        <selectKey resultClass="int" keyProperty="id" >
-        SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL
-        </selectKey>
-        -->
         INSERT INTO teacher
         (id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,demission_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_)
         VALUES(#{id},#{organId},#{jobType},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now())
@@ -107,19 +125,104 @@
     </update>
 
     <!-- 根据主键删除一条记录 -->
-    <delete id="delete">
-		DELETE FROM teacher WHERE user_id_ = #{userId} 
-	</delete>
+    <update id="delete">
+		DELETE FROM teacher WHERE user_id_ = #{userId}
+	</update>
+
+    <update id="updateUser" parameterType="com.ym.mec.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="avatar != null">
+                avatar_ = #{avatar},
+            </if>
+            <if test="email != null">
+                email_ = #{email},
+            </if>
+            <if test="gender != null">
+                gender_ = #{gender, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="salt != null">
+                salt_ = #{salt},
+            </if>
+            <if test="username != null">
+                username_ = #{username},
+            </if>
+            <if test="userType != null">
+                user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="updateTime != null">
+                update_time_ = #{updateTime},
+            </if>
+            <if test="lockFlag != null">
+                lock_flag_ = #{lockFlag, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </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="organId != null">
+                organ_id_ = #{organId},
+            </if>
+            <if test="imToken != null">
+                im_token_ = #{imToken},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+    </update>
 
     <!-- 分页查询 -->
     <select id="queryPage" resultMap="Teacher" parameterType="map">
-        SELECT * FROM teacher ORDER BY user_id_
+        SELECT t.*,su.username_,su.password_,su.salt_,su.phone_,su.avatar_,
+        su.lock_flag_,su.del_flag_,su.wx_openid_,su.qq_openid_,su.user_type_,
+        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_
+        FROM teacher t
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        LEFT JOIN organization o ON t.organ_id_ = o.id_
+        <include refid="queryPageMap"/>
         <include refid="global.limit"/>
     </select>
 
+    <sql id="queryPageMap">
+        <where>
+            <if test="lockFlag != null">
+                AND su.lock_flag_ = #{lockFlag}
+            </if>
+            <if test="subjectId != null">
+                AND t.subject_id_ LIKE CONCAT('%',#{subjectId},'%')
+            </if>
+            <if test="organId != null">
+                AND o.organ_id_ = #{organId}
+            </if>
+            <if test="jobNature != null">
+                AND t.job_nature_ = #{jobNature}
+            </if>
+            <if test="isProbationPeriod != null">
+                AND t.is_probation_period_ = #{isProbationPeriod}
+            </if>
+        </where>
+    </sql>
+
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM teacher
+        SELECT COUNT(t.id_) FROM teacher t
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        LEFT JOIN `subject` s ON t.subject_id_ = s.id_
+        LEFT JOIN organization o ON t.organ_id_ = o.id_
+        <include refid="queryPageMap"/>
 	</select>
 
     <!-- 根据证件号查询老师 -->