262 lines
9.4 KiB
XML
262 lines
9.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="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> |