pull/2/head
zxy 4 months ago
parent 8e87ff2ea5
commit dda949ebc0

@ -2,69 +2,149 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dao.CommonDao">
<select id="getOption" resultType="String" >
SELECT distinct ${column} FROM ${table}
where ${column} is not null and ${column} !=''
<if test = "level != null">
and level=#{level}
</if>
<if test = "parent != null">
and parent=#{parent}
</if>
</select>
<select id="getFollowByOption" resultType="map" >
SELECT * FROM ${table} where ${column}=#{columnValue}
</select>
<update id="sh">
UPDATE ${table} set sfsh=#{sfsh} where id=#{id}
</update>
<select id="remindCount" resultType="int" >
SELECT count(1) FROM ${table}
where 1=1
<if test = "type == 1 ">
<if test = " remindstart != null ">
and ${column} &gt;= #{remindstart}
</if>
<if test = " remindend != null ">
and ${column} &lt;= #{remindend}
</if>
</if>
<if test = "type == 2 ">
<if test = " remindstart != null ">
and ${column} &gt;= str_to_date(#{remindstart},'%Y-%m-%d')
</if>
<if test = " remindend != null ">
and ${column} &lt;= str_to_date(#{remindend},'%Y-%m-%d')
</if>
</if>
</select>
<select id="selectCal" resultType="map" >
SELECT sum(${column}) sum,max(${column}) max,min(${column}) min,avg(${column}) avg FROM ${table}
</select>
<select id="selectGroup" resultType="map" >
SELECT ${column} , count(1) total FROM ${table} group by ${column}
</select>
<select id="selectValue" resultType="map" >
SELECT ${xColumn}, sum(${yColumn}) total FROM ${table} group by ${xColumn}
</select>
<!--
方法getOption
功能:从指定表中获取指定列的不同值,且该列值不为空且不为空字符串。
可以根据 level 和 parent 条件进行筛选。
resultType返回值类型为 String即获取到的列值。
参数:
- column要查询的列名通过 ${column} 动态传入。
- table要查询的表名通过 ${table} 动态传入。
- level筛选条件中的 level 值,通过 #{level} 传入,可为空。
- parent筛选条件中的 parent 值,通过 #{parent} 传入,可为空。
-->
<select id="getOption" resultType="String">
SELECT distinct ${column} FROM ${table}
where ${column} is not null and ${column} != ''
<if test = "level != null">
and level=#{level}
</if>
<if test = "parent != null">
and parent=#{parent}
</if>
</select>
<select id="selectTimeStatValue" resultType="map" >
<if test = 'timeStatType == "日"'>
SELECT DATE_FORMAT(${xColumn},'%Y-%m-%d') ${xColumn}, sum(${yColumn}) total FROM ${table} group by DATE_FORMAT(${xColumn},'%Y-%m-%d')
</if>
<if test = 'timeStatType == "月"'>
SELECT DATE_FORMAT(${xColumn},'%Y-%m') ${xColumn}, sum(${yColumn}) total FROM ${table} group by DATE_FORMAT(${xColumn},'%Y-%m')
</if>
<if test = 'timeStatType == "年"'>
SELECT DATE_FORMAT(${xColumn},'%Y') ${xColumn}, sum(${yColumn}) total FROM ${table} group by DATE_FORMAT(${xColumn},'%Y')
</if>
</select>
<!--
方法getFollowByOption
功能:从指定表中获取满足指定列等于给定值的所有记录。
resultType返回值类型为 map即每一条记录以 Map 的形式返回,键为列名,值为对应列的值。
参数:
- table要查询的表名通过 ${table} 动态传入。
- column要匹配的列名通过 ${column} 动态传入。
- columnValue要匹配的列值通过 #{columnValue} 传入。
-->
<select id="getFollowByOption" resultType="map">
SELECT * FROM ${table} where ${column}=#{columnValue}
</select>
<!--
方法sh
功能:更新指定表中指定 id 记录的 sfsh 字段值。
参数:
- table要更新的表名通过 ${table} 动态传入。
- sfsh要设置的 sfsh 字段的新值,通过 #{sfsh} 传入。
- id要更新记录的 id 值,通过 #{id} 传入。
-->
<update id="sh">
UPDATE ${table} set sfsh=#{sfsh} where id=#{id}
</update>
<!--
方法remindCount
功能:根据不同的条件统计指定表中的记录数量。
当 type 为 1 时,根据指定列的数值范围进行统计;当 type 为 2 时,根据指定列的日期范围进行统计。
resultType返回值类型为 int即统计的记录数量。
参数:
- table要统计的表名通过 ${table} 动态传入。
- type统计类型通过 #{type} 传入,值为 1 或 2。
- column要进行条件判断的列名通过 ${column} 动态传入。
- remindstart范围起始值通过 #{remindstart} 传入,可为空。
- remindend范围结束值通过 #{remindend} 传入,可为空。
-->
<select id="remindCount" resultType="int">
SELECT count(1) FROM ${table}
where 1=1
<if test = "type == 1 ">
<if test = " remindstart != null ">
and ${column} &gt;= #{remindstart}
</if>
<if test = " remindend != null ">
and ${column} &lt;= #{remindend}
</if>
</if>
<if test = "type == 2 ">
<if test = " remindstart != null ">
and ${column} &gt;= str_to_date(#{remindstart},'%Y-%m-%d')
</if>
<if test = " remindend != null ">
and ${column} &lt;= str_to_date(#{remindend},'%Y-%m-%d')
</if>
</if>
</select>
<!--
方法selectCal
功能:对指定表中指定列进行聚合计算,包括求和、求最大值、求最小值和求平均值。
resultType返回值类型为 map包含 sum、max最大值、min最小值、avg平均值四个键值对。
参数:
- table要计算的表名通过 ${table} 动态传入。
- column要进行聚合计算的列名通过 ${column} 动态传入。
-->
<select id="selectCal" resultType="map">
SELECT sum(${column}) sum,max(${column}) max,min(${column}) min,avg(${column}) avg FROM ${table}
</select>
<!--
方法selectGroup
功能:根据指定列对指定表进行分组统计,统计每个分组的记录数量。
resultType返回值类型为 map键为分组的列值值为该分组的记录数量键名为 total
参数:
- table要分组统计的表名通过 ${table} 动态传入。
- column要进行分组的列名通过 ${column} 动态传入。
-->
<select id="selectGroup" resultType="map">
SELECT ${column} , count(1) total FROM ${table} group by ${column}
</select>
<!--
方法selectValue
功能:根据指定的 xColumn 列对指定表进行分组,并对 yColumn 列进行求和统计。
resultType返回值类型为 map键为 xColumn 列的值,值为 yColumn 列的求和结果(键名为 total
参数:
- table要分组统计的表名通过 ${table} 动态传入。
- xColumn分组的列名通过 ${xColumn} 动态传入。
- yColumn要进行求和的列名通过 ${yColumn} 动态传入。
-->
<select id="selectValue" resultType="map">
SELECT ${xColumn}, sum(${yColumn}) total FROM ${table} group by ${xColumn}
</select>
<!--
方法selectTimeStatValue
功能:根据不同的时间统计类型(日、月、年),对指定表中指定的 xColumn 列按时间分组,并对 yColumn 列进行求和统计。
resultType返回值类型为 map键为格式化后的时间值根据统计类型值为 yColumn 列的求和结果(键名为 total
参数:
- table要统计的表名通过 ${table} 动态传入。
- xColumn要进行时间分组的列名通过 ${xColumn} 动态传入。
- yColumn要进行求和的列名通过 ${yColumn} 动态传入。
- timeStatType时间统计类型通过 #{timeStatType} 传入,值为 "日"、"月" 或 "年"。
-->
<select id="selectTimeStatValue" resultType="map">
<if test = 'timeStatType == "日"'>
SELECT DATE_FORMAT(${xColumn},'%Y-%m-%d') ${xColumn}, sum(${yColumn}) total FROM ${table} group by DATE_FORMAT(${xColumn},'%Y-%m-%d')
</if>
<if test = 'timeStatType == "月"'>
SELECT DATE_FORMAT(${xColumn},'%Y-%m') ${xColumn}, sum(${yColumn}) total FROM ${table} group by DATE_FORMAT(${xColumn},'%Y-%m')
</if>
<if test = 'timeStatType == "年"'>
SELECT DATE_FORMAT(${xColumn},'%Y') ${xColumn}, sum(${yColumn}) total FROM ${table} group by DATE_FORMAT(${xColumn},'%Y')
</if>
</select>
<!--
方法getFollowByOption2
功能:目前该方法未定义具体的 SQL 语句,返回值类型为 java.lang.String
可能后续会补充完整的 SQL 查询逻辑。
-->
<select id="getFollowByOption2" resultType="java.lang.String"></select>
</mapper>
</mapper>
Loading…
Cancel
Save