246 lines
9.3 KiB
XML
246 lines
9.3 KiB
XML
<?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="Teacher">
|
|
|
|
|
|
<insert id="insertTeacher" parameterType="Teacher">
|
|
INSERT INTO Teacher ( teacherId, schoolId, loginNo, password, truename,
|
|
nickname, gender, address, areaId, recognizeCode, cellphone,
|
|
telephone, email, status, source
|
|
<if test="issuper != null">
|
|
,issuper
|
|
</if>
|
|
)
|
|
Values ( #{teacherId}, #{schoolId}, upper(#{loginNo}), #{password}, #{truename},
|
|
#{nickname}, #{gender}, #{address}, #{areaId}, #{recognizeCode}, #{cellphone},
|
|
#{telephone}, #{email}, #{status}, #{source}
|
|
<if test="issuper != null">
|
|
,#{issuper}
|
|
</if>
|
|
)
|
|
</insert>
|
|
|
|
<update id="updateTeacher" parameterType="Teacher">
|
|
|
|
UPDATE Teacher
|
|
SET teacherId = #{teacherId}, schoolId = #{schoolId}, loginNo = upper(#{loginNo}),
|
|
truename = #{truename}, nickname = #{nickname},
|
|
gender = #{gender}, address = #{address}, areaId = #{areaId},
|
|
recognizeCode = #{recognizeCode}, cellphone = #{cellphone},
|
|
telephone = #{telephone}, email = #{email}, status = #{status}, source = #{source} ,
|
|
lastSignIn = #{lastSignIn} , jdToken = #{jdToken},signature=#{signature}
|
|
<if test="issuper != null">
|
|
,issuper= #{issuper}
|
|
</if>
|
|
WHERE teacherId=#{teacherId}
|
|
|
|
</update>
|
|
|
|
<select id="getTeacherByKey" parameterType="java.lang.Long" resultType="Teacher">
|
|
|
|
SELECT teacherId , schoolId , loginNo , password , truename , nickname ,
|
|
gender , address , areaId , recognizeCode , cellphone , telephone ,
|
|
avatar , email , status , source ,signature,lastSignIn,issuper
|
|
FROM Teacher
|
|
WHERE teacherId=#{teacherId}
|
|
|
|
</select>
|
|
|
|
<select id="getSeqTeacher" resultType="Integer" useCache="false" flushCache="true">
|
|
|
|
SELECT nextval('seq_teacherId') ;
|
|
|
|
</select>
|
|
|
|
<select id="getAllTeacher" resultType="Teacher">
|
|
|
|
SELECT teacherId , schoolId , loginNo , password , truename ,
|
|
nickname , gender , address , areaId , recognizeCode ,
|
|
cellphone , telephone , email , status , source ,signature,issuper
|
|
FROM Teacher
|
|
|
|
</select>
|
|
|
|
<insert id="insertTeacherBatch" parameterType="java.util.List">
|
|
|
|
INSERT INTO Teacher ( teacherId, schoolId, loginNo, password, truename,
|
|
nickname, gender, address, areaId, recognizeCode, cellphone,
|
|
telephone, email, status, source,issuper ) Values
|
|
|
|
<foreach collection="list" index="index" item="item" separator=",">
|
|
|
|
( #{item.teacherId}, #{item.schoolId}, upper(#{item.loginNo}),
|
|
#{item.password}, #{item.truename}, #{item.nickname},
|
|
#{item.gender}, #{item.address}, #{item.areaId},
|
|
#{item.recognizeCode}, #{item.cellphone}, #{item.telephone},
|
|
#{item.email}, #{item.status}, #{item.source}
|
|
, #{item.issuper}
|
|
)
|
|
|
|
</foreach>
|
|
</insert>
|
|
|
|
<select id="getTeacherByLoginNo" parameterType="java.lang.String" resultType="Teacher">
|
|
|
|
SELECT teacherId , schoolId , loginNo , password , truename , nickname ,
|
|
gender , address , areaId , recognizeCode , cellphone , telephone ,
|
|
avatar , email , status , source ,signature,lastSignIn,issuper
|
|
FROM Teacher
|
|
WHERE upper(loginNo)=upper(#{_parameter})
|
|
|
|
</select>
|
|
|
|
<select id="getTeachersCountByschoolId" parameterType="java.lang.Long" resultType="Integer">
|
|
|
|
SELECT count(*) as howmuch
|
|
FROM Teacher
|
|
WHERE schoolId=#{schoolId}
|
|
AND status = 1
|
|
|
|
</select>
|
|
|
|
<select id="getTeachersBySchoolId" parameterType="java.util.Map" resultType="Teacher">
|
|
|
|
SELECT teacherId , schoolId , loginNo , password , truename , nickname ,
|
|
gender , address , areaId , recognizeCode , cellphone , telephone ,
|
|
avatar , email , status , source,issuper
|
|
FROM Teacher
|
|
WHERE schoolId=#{schoolId} and status = 1
|
|
ORDER BY loginNo
|
|
<if test="pageSize!=null">
|
|
LIMIT #{pageSize}
|
|
</if>
|
|
|
|
<if test="offset!=null">
|
|
OFFSET #{offset}
|
|
</if>
|
|
|
|
</select>
|
|
|
|
<update id="updateTeacherPassword" parameterType="java.util.Map">
|
|
|
|
UPDATE Teacher
|
|
SET password = #{password}
|
|
where teacherId =#{teacherId}
|
|
|
|
</update>
|
|
|
|
<update id="updateTeacherAvatar" parameterType="java.util.Map">
|
|
|
|
UPDATE Teacher
|
|
SET avatar = #{avatar}
|
|
where teacherId =#{teacherId}
|
|
|
|
</update>
|
|
|
|
|
|
<select id="getServerFeeByTeacherId" parameterType="long" resultType="integer">
|
|
|
|
select distinct(s.serviceFee) from school s inner join classes c on c.schoolId = s.schoolId
|
|
and c.teacherId = #{uid}
|
|
|
|
|
|
</select>
|
|
|
|
<select id="getSchoolIdByTeacherId" parameterType="long" resultType="Long">
|
|
|
|
select distinct(schoolid) from classes where classtype = 1 and status = 1 and teacherId = #{uid}
|
|
limit 1
|
|
|
|
</select>
|
|
|
|
|
|
<select id="getTeacherMapByTrueName" parameterType="java.util.HashMap" resultType="java.util.HashMap">
|
|
SELECT t.teacherid , t.truename , t.loginno , 0 as classesid ,
|
|
array_agg(case when c.classname is null then '' else c.classname end) as classname , s.schoolid , s.schoolname,t.source,t.cellphone
|
|
FROM teacher t left join classes c on t.teacherid = c.teacherid
|
|
and c.classtype = 1 and c.status =1
|
|
INNER JOIN school s
|
|
ON t.schoolid = s.schoolId and s.status = 1 and t.status=1
|
|
WHERE t.truename like '%${trueName}%' group by t.teacherid , t.truename , t.loginno ,s.schoolid , s.schoolname,t.source
|
|
ORDER BY t.loginno
|
|
LIMIT #{pageSize} OFFSET #{offset}
|
|
</select>
|
|
|
|
<select id="getTeacherMapByTrueNameCount" parameterType="String" resultType="Integer">
|
|
SELECT count(*)
|
|
FROM teacher t
|
|
INNER JOIN school s
|
|
ON t.schoolid = s.schoolId and s.status = 1 and t.status=1
|
|
WHERE t.truename like '%${_parameter}%'
|
|
</select>
|
|
|
|
<select id="getTeacherMapByRecognizeCode" parameterType="java.util.HashMap" resultType="java.util.HashMap">
|
|
|
|
select t.teacherid , t.truename , t.loginno ,array_agg(case when c.classname is null then '' else c.classname end) as classname ,
|
|
s.schoolid , s.schoolname,t.source,t.cellphone from teacher t left join classes c on t.teacherid = c.teacherid
|
|
and c.classtype = 1 and c.status =1
|
|
left join school s on s.schoolid = t.schoolId
|
|
where upper(t.loginno) = upper(#{loginNo}) and t.status=1
|
|
group by t.teacherid , t.truename ,t.loginno ,s.schoolid , s.schoolname,t.source
|
|
order by t.loginno
|
|
limit #{pageSize} offset #{offset}
|
|
|
|
</select>
|
|
|
|
<select id="getTeacherMapByCellphone" parameterType="java.util.HashMap" resultType="java.util.HashMap">
|
|
|
|
select t.teacherid , t.truename , t.loginno ,array_agg(case when c.classname is null then '' else c.classname end) as classname ,
|
|
s.schoolid , s.schoolname,t.source,t.cellphone from teacher t left join classes c on t.teacherid = c.teacherid
|
|
and c.classtype = 1 and c.status =1
|
|
left join school s on s.schoolid = t.schoolId
|
|
where t.cellphone = #{cellphone} and t.status=1
|
|
group by t.teacherid , t.truename ,t.loginno ,s.schoolid , s.schoolname,t.source
|
|
order by t.loginno
|
|
limit #{pageSize} offset #{offset}
|
|
|
|
</select>
|
|
|
|
<select id="getTeacherMapByRecognizeCodeCount" parameterType="String" resultType="Integer">
|
|
|
|
select count(distinct(t.teacherid))
|
|
from teacher t
|
|
left join classes c
|
|
on t.teacherid = c.teacherid
|
|
and c.classtype = 1 and c.status =1
|
|
left join school s on s.schoolid = c.schoolId
|
|
where upper(t.loginno) = upper(#{_parameter}) and t.status=1
|
|
|
|
</select>
|
|
|
|
<select id="getTeacherCountByCellPhone" parameterType="String" resultType="Integer">
|
|
select count(teacherId) from teacher where cellphone=#{_parameter}
|
|
</select>
|
|
|
|
|
|
<select id="getTeacherByStudentId" parameterType="java.lang.Long" resultType="Teacher">
|
|
|
|
SELECT teacherId , schoolId , truename , nickname
|
|
|
|
FROM Teacher where teacherid=(select teacherid from classes c
|
|
inner join studentownclass s on c.classesid=s.classesid and c.classtype=1 and c.status=1 and s.status=1
|
|
and s.studentid=#{studentId})
|
|
</select>
|
|
|
|
|
|
<select id="getMockPermission" resultType="java.util.HashMap" parameterType="Long">
|
|
|
|
select startTime "startTime",valueStr as "endTime" from parameter where paralong=#{teacherId} and paraType=12 order by created desc limit 1
|
|
|
|
</select>
|
|
|
|
|
|
<select id="getAllClassesHasRegister" parameterType = "java.lang.Long" resultType="java.util.Map">
|
|
with temp as (select classesid from classes where teacherid = #{teacherId} and source = 9 and status = 1)
|
|
select classesid,count(classesid) as count from temp as a inner join parameter as b on a.classesid = b.valuelong where b.paraint = 1 and status = 1 and paratype =20 group by classesid
|
|
</select>
|
|
|
|
<select id="getAllClassesLogouters" parameterType="java.util.Map" resultType="java.util.Map">
|
|
select soc.classesid as classesId from parameter as a
|
|
inner join student as s on a.paraLong = s.studentId and s.areaid = #{areaId}
|
|
inner join studentownclass as soc on soc.studentId = s.studentId and soc.areaid = #{areaId}
|
|
inner join classes as c on c.classesid = soc.classesid and c.classtype=1 and c.status = 1
|
|
where a.paraInt = 1 and a.status = 1 and a.paraType = 16 and a.valuelong = #{teacherId} group by soc.classesid
|
|
</select>
|
|
</mapper> |