zioinfo-esn/backend/src/main/resources/mapper/HCoreMapper.xml
DESKTOP-TKLFCPR\ython 969fcd7284 feat(esn): zioinfo ESN ESL 통합 플랫폼 초기 구현
Spring Boot 3.5 / Java 17 + React 19 + PostgreSQL 단일 JAR.
멀티테넌트(LGINNOTEK/LGIT/EMART/ZIOINFO), HCore 게이트웨이 관제,
POS 연동 가격 자동 업데이트, Ollama 온프레미스 AI 알람 분석·POS 분류.
레거시 ESN 6개 프로젝트(Spring Boot 1.5/Java 8) 현대화 통합.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-16 01:07:05 +09:00

100 lines
4.2 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="com.zioinfo.esn.mapper.HCoreMapper">
<resultMap id="hcoreMap" type="com.zioinfo.esn.domain.HCoreVo">
<id property="id" column="id"/>
<result property="tenantCode" column="tenant_code"/>
<result property="storeId" column="store_id"/>
<result property="storeName" column="store_name"/>
<result property="deviceType" column="device_type"/>
<result property="deviceId" column="device_id"/>
<result property="ipAddress" column="ip_address"/>
<result property="macAddress" column="mac_address"/>
<result property="firmwareVersion" column="firmware_version"/>
<result property="status" column="status"/>
<result property="batteryLevel" column="battery_level"/>
<result property="signalStrength" column="signal_strength"/>
<result property="lastSeenAt" column="last_seen_at"/>
<result property="createdAt" column="created_at"/>
</resultMap>
<select id="findAll" resultMap="hcoreMap">
SELECT h.id, h.tenant_code, h.store_id, s.store_name, h.device_type, h.device_id,
h.ip_address, h.mac_address, h.firmware_version, h.status, h.battery_level,
h.signal_strength, h.last_seen_at, h.created_at
FROM esn_hcore_device h
LEFT JOIN esn_store s ON h.store_id = s.id
<where>
<if test="tenantCode != null and tenantCode != ''">AND h.tenant_code = #{tenantCode}</if>
<if test="storeId != null">AND h.store_id = #{storeId}</if>
<if test="deviceType != null and deviceType != ''">AND h.device_type = #{deviceType}</if>
<if test="status != null and status != ''">AND h.status = #{status}</if>
</where>
ORDER BY h.device_id
</select>
<select id="findById" resultMap="hcoreMap">
SELECT h.id, h.tenant_code, h.store_id, s.store_name, h.device_type, h.device_id,
h.ip_address, h.mac_address, h.firmware_version, h.status, h.battery_level,
h.signal_strength, h.last_seen_at, h.created_at
FROM esn_hcore_device h
LEFT JOIN esn_store s ON h.store_id = s.id
WHERE h.id = #{id}
</select>
<select id="findByDeviceId" resultMap="hcoreMap">
SELECT h.id, h.tenant_code, h.store_id, s.store_name, h.device_type, h.device_id,
h.ip_address, h.mac_address, h.firmware_version, h.status, h.battery_level,
h.signal_strength, h.last_seen_at, h.created_at
FROM esn_hcore_device h
LEFT JOIN esn_store s ON h.store_id = s.id
WHERE h.device_id = #{deviceId}
</select>
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
INSERT INTO esn_hcore_device (tenant_code, store_id, device_type, device_id, ip_address,
mac_address, firmware_version, status)
VALUES (#{tenantCode}, #{storeId}, #{deviceType}, #{deviceId}, #{ipAddress},
#{macAddress}, #{firmwareVersion}, #{status})
</insert>
<update id="update">
UPDATE esn_hcore_device SET
ip_address = #{ipAddress},
mac_address = #{macAddress},
firmware_version = #{firmwareVersion},
status = #{status},
battery_level = #{batteryLevel},
signal_strength = #{signalStrength},
last_seen_at = NOW()
WHERE id = #{id}
</update>
<update id="updateStatus">
UPDATE esn_hcore_device SET status = #{status}, last_seen_at = NOW()
WHERE id = #{id}
</update>
<delete id="delete">DELETE FROM esn_hcore_device WHERE id = #{id}</delete>
<select id="countOnline" resultType="long">
SELECT COUNT(*) FROM esn_hcore_device WHERE status = 'ONLINE'
<if test="tenantCode != null and tenantCode != ''">AND tenant_code = #{tenantCode}</if>
</select>
<select id="countOffline" resultType="long">
SELECT COUNT(*) FROM esn_hcore_device WHERE status = 'OFFLINE'
<if test="tenantCode != null and tenantCode != ''">AND tenant_code = #{tenantCode}</if>
</select>
<select id="countAll" resultType="long">
SELECT COUNT(*) FROM esn_hcore_device
<where>
<if test="tenantCode != null and tenantCode != ''">AND tenant_code = #{tenantCode}</if>
</where>
</select>
</mapper>