guardia-mall/backend/target/classes/mapper/AdminUserMapper.xml

45 lines
1.9 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zioinfo.mall.admin.mapper.AdminUserMapper">
<resultMap id="userMap" type="com.zioinfo.mall.auth.MallUser">
<id property="id" column="id"/>
<result property="username" column="username"/>
<result property="passwordHash" column="password_hash"/>
<result property="role" column="role"/>
<result property="displayName" column="display_name"/>
<result property="active" column="is_active"/>
<result property="createdAt" column="created_at"/>
</resultMap>
<select id="findAll" resultMap="userMap">
SELECT id, username, password_hash, role, display_name, is_active, created_at
FROM mall_account ORDER BY id ASC
</select>
<select id="findById" resultMap="userMap">
SELECT id, username, password_hash, role, display_name, is_active, created_at
FROM mall_account WHERE id = #{id}
</select>
<insert id="insert" parameterType="com.zioinfo.mall.auth.MallUser"
useGeneratedKeys="true" keyProperty="id">
INSERT INTO mall_account (username, password_hash, role, display_name, is_active)
VALUES (#{username}, #{passwordHash}, #{role}, #{displayName}, #{active})
</insert>
<update id="updateRole">UPDATE mall_account SET role = #{role} WHERE id = #{id}</update>
<update id="updateActive">UPDATE mall_account SET is_active = #{active} WHERE id = #{id}</update>
<update id="updatePassword">UPDATE mall_account SET password_hash = #{passwordHash} WHERE id = #{id}</update>
<delete id="deleteById">DELETE FROM mall_account WHERE id = #{id}</delete>
<select id="countAdmins" resultType="int">
SELECT COUNT(*) FROM mall_account WHERE role = 'ADMIN' AND is_active = TRUE
</select>
<select id="countByUsername" resultType="int">
SELECT COUNT(*) FROM mall_account WHERE username = #{username}
</select>
</mapper>