2026-03-10 14:30:24 +08:00

61 lines
2.4 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="BadgeLog">
<insert id="insertBadgeLog" parameterType="BadgeLog">
INSERT INTO BadgeLog ( badgeLogId, userId, badgeType, objectId,
badgeCaseId, created , areaid ,pointCaseType )
Values ( #{badgeLogId}, #{userId}, #{badgeType}, #{objectId},
#{badgeCaseId},current_timestamp , #{areaid} ,
#{pointCaseType} )
</insert>
<update id="updateBadgeLog" parameterType="BadgeLog">
UPDATE BadgeLog SET
badgeLogId = #{badgeLogId}, userId = #{userId},
badgeType = #{badgeType}, objectId = #{objectId},
badgeCaseId = #{badgeCaseId}, created = #{created} ,
areaid = #{areaid} , pointCaseType = #{pointCaseType}
where badgeLogId=#{badgeLogId}
</update>
<select id="getBadgeLogByKey" parameterType="java.lang.Integer" resultType="BadgeLog">
SELECT badgeLogId , userId , badgeType , objectId , badgeCaseId ,
created , areaid , pointCaseType
FROM BadgeLog
WHERE badgeLogId=#{badgeLogId}
</select>
<select id="getSeqBadgeLog" resultType="Long" useCache="false" flushCache="true">
SELECT nextval('seq_badgeLogId') ;
</select>
<select id="getBadgeLogsByUserId" parameterType="java.util.Map" resultType="BadgeLog">
SELECT badgeLogId , userId , badgeType , objectId , badgeCaseId ,
created ,areaid , pointCaseType
FROM BadgeLog
WHERE userId=#{userId} and areaid = #{areaid}
</select>
<select id="getMedalByUid" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select userid ,
count(case when badgecaseid =6 then 1 else null end ) as copper,
count(case when badgecaseid =7 then 1 else null end ) as silver ,
count(case when badgecaseid =8 then 1 else null end ) as gold
from badgelog
where userid = #{uid} and areaId=#{areaId}
group by userid
</select>
<select id="getBadgeByUid" parameterType="java.util.HashMap" resultType="java.util.HashMap">
select userid ,
count(case when badgecaseid =2 then 1 else null end ) as copper,
count(case when badgecaseid =3 then 1 else null end ) as silver ,
count(case when badgecaseid =4 then 1 else null end ) as gold
from badgelog
where userid = #{uid} and areaId=#{areaId}
group by userid
</select>
</mapper>