Bonus-Cloud-Material-Mall/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devConfig/EquipmentPropertyMapper.xml

262 lines
9.4 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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.bonus.material.devConfig.mapper.EquipmentPropertyMapper">
<!-- 基础结果映射 -->
<resultMap id="EquipmentPropertyResult" type="com.bonus.material.devConfig.domain.EquipmentProperty">
<id property="id" column="id"/>
<result property="typeId" column="type_id"/>
<result property="mustHave" column="must_have"/>
<result property="inputType" column="input_type"/>
<result property="propertyName" column="property_name"/>
<result property="propertyValue" column="property_value"/>
<result property="value" column="value"/>
<result property="createTime" column="create_time"/>
</resultMap>
<!-- 装备类型结果映射 -->
<resultMap id="EquipmentTypeResult" type="com.bonus.material.devConfig.domain.EquipmentType">
<id property="typeId" column="type_id"/>
<result property="typeName" column="type_name"/>
<result property="parentId" column="parent_id"/>
<result property="sortOrder" column="sort_order"/>
<result property="status" column="status"/>
<result property="level" column="level"/>
<result property="leaf" column="leaf"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
</resultMap>
<!-- 关联查询结果映射 -->
<resultMap id="EquipmentPropertyDTOResult" type="com.bonus.material.devConfig.domain.EquipmentPropertyDTO">
<!-- 装备类型信息 -->
<result property="typeId" column="type_id"/>
<result property="typeName" column="type_name"/>
<result property="parentId" column="parent_id"/>
<result property="sortOrder" column="sort_order"/>
<result property="status" column="status"/>
<result property="level" column="level"/>
<result property="leaf" column="leaf"/>
<!-- 特征值信息 -->
<result property="propertyId" column="property_id"/>
<result property="mustHave" column="must_have"/>
<result property="inputType" column="input_type"/>
<result property="propertyName" column="property_name"/>
<result property="propertyValue" column="property_value"/>
<result property="propertyCreateTime" column="property_create_time"/>
</resultMap>
<!-- 详细的关联查询结果映射(包含特征值列表) -->
<resultMap id="TypeDetailWithPropertiesResult" type="com.bonus.material.devConfig.domain.EquipmentPropertyDTO">
<constructor>
<idArg column="type_id" javaType="java.lang.Long"/>
</constructor>
<result property="typeId" column="type_id"/>
<result property="typeName" column="type_name"/>
<result property="parentId" column="parent_id"/>
<result property="sortOrder" column="sort_order"/>
<result property="status" column="status"/>
<result property="level" column="level"/>
<result property="leaf" column="leaf"/>
<!-- 关联特征值列表 -->
<collection property="properties" ofType="com.bonus.material.devConfig.domain.EquipmentProperty"
resultMap="EquipmentPropertyResult"/>
</resultMap>
<!-- 根据typeId查询去重后的特征项 -->
<select id="selectAll" resultMap="EquipmentPropertyResult">
SELECT DISTINCT
MIN(id) as id,
'' as type_id,
must_have,
input_type,
property_name,
'' as property_value,
MAX(create_time) as create_time
FROM ma_type_properties
WHERE type_id = #{typeId}
GROUP BY property_name
ORDER BY create_time DESC
</select>
<!-- 根据ID查询特征值 -->
<select id="selectById" resultMap="EquipmentPropertyResult">
SELECT id,
type_id,
must_have,
input_type,
property_name,
property_value,
create_time
FROM ma_type_properties
WHERE id = #{id}
</select>
<!-- 根据类型ID查询特征值 -->
<select id="selectByTypeId" resultMap="EquipmentPropertyResult">
SELECT id,
type_id,
must_have,
input_type,
property_name,
property_value AS value,
create_time
FROM ma_type_properties
WHERE type_id = #{typeId}
ORDER BY create_time DESC
</select>
<select id="selectByType" resultMap="EquipmentPropertyResult">
SELECT id,
type_id,
must_have,
input_type,
property_name,
property_value,
create_time
FROM ma_type_properties
WHERE type_id = #{typeId}
ORDER BY create_time DESC
</select>
<!-- 根据类型ID查询装备类型及其特征值扁平化结果 -->
<select id="selectTypeWithProperties" parameterType="java.lang.Long" resultMap="EquipmentPropertyResult">
SELECT
et.type_id,
et.type_name,
et.parent_id,
et.sort_order,
et.status,
et.level,
et.leaf,
ep.id as property_id,
ep.must_have,
ep.input_type,
ep.property_name,
ep.property_value,
ep.create_time as property_create_time
FROM ma_type et
LEFT JOIN ma_type_propertis ep ON et.type_id = ep.type_id
WHERE et.type_id = #{typeId}
ORDER BY ep.create_time DESC
</select>
<!-- 查询所有装备类型及其特征值(扁平化结果) -->
<select id="selectAllTypesWithProperties" resultMap="EquipmentPropertyResult">
SELECT
et.type_id,
et.type_name,
et.parent_id,
et.sort_order,
et.status,
et.level,
et.leaf,
ep.id as property_id,
ep.must_have,
ep.input_type,
ep.property_name,
ep.property_value,
ep.create_time as property_create_time
FROM ma_type et
LEFT JOIN ma_type_properties ep ON et.type_id = ep.type_id
WHERE et.status = '0'
ORDER BY et.type_id, ep.create_time DESC
</select>
<!-- 查询装备类型详情及其特征值列表 -->
<select id="selectTypeDetailWithProperties" parameterType="java.lang.Long" resultMap="TypeDetailWithPropertiesResult">
SELECT
et.type_id,
et.type_name,
et.parent_id,
et.sort_order,
et.status,
et.level,
et.leaf,
ep.id,
ep.type_id as ep_type_id,
ep.must_have,
ep.input_type,
ep.property_name,
ep.property_value,
ep.create_time
FROM ma_type et
LEFT JOIN ma_type_properties ep ON et.type_id = ep.type_id
WHERE et.type_id = #{typeId}
ORDER BY ep.create_time DESC
</select>
<select id="selectNameByTypeId" resultType="com.bonus.material.devConfig.domain.EquipmentProperty">
SELECT id, type_id, must_have, input_type, property_name
FROM ma_type_properties
WHERE type_id = #{typeId}
GROUP BY property_name
ORDER BY create_time DESC
</select>
<!-- 新增特征值 -->
<insert id="insert" parameterType="com.bonus.material.devConfig.domain.EquipmentProperty"
useGeneratedKeys="true" keyProperty="id">
INSERT INTO ma_type_properties (
type_id,
must_have,
input_type,
property_name,
property_value,
create_time
) VALUES (
#{typeId},
#{mustHave},
#{inputType},
#{propertyName},
#{propertyValue},
#{createTime}
)
</insert>
<!-- 更新特征值 -->
<update id="update" parameterType="com.bonus.material.devConfig.domain.EquipmentProperty">
UPDATE ma_type_properties
<set>
<if test="typeId != null">type_id = #{typeId},</if>
<if test="mustHave != null and mustHave != ''">must_have = #{mustHave},</if>
<if test="inputType != null">input_type = #{inputType},</if>
<if test="propertyName != null and propertyName != ''">property_name = #{propertyName},</if>
<if test="propertyValue != null">property_value = #{propertyValue},</if>
</set>
WHERE id = #{id}
</update>
<!-- 根据ID删除特征值 -->
<delete id="deleteById" >
DELETE FROM ma_type_properties
WHERE id = #{id}
</delete>
<!-- 根据 propertyName 查询记录 -->
<select id="getByPropertyName" resultType="com.bonus.material.devConfig.domain.EquipmentProperty">
SELECT * FROM ma_type_properties WHERE property_name = #{propertyName} and type_id=#{typeId}
</select>
<!-- 更新记录 -->
<update id="updateById" parameterType="com.bonus.material.devConfig.domain.EquipmentProperty">
UPDATE ma_type_properties
SET property_value = #{propertyValue}
WHERE id = #{id}
</update>
</mapper>