|
|
|
@ -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} >= #{remindstart}
|
|
|
|
|
</if>
|
|
|
|
|
<if test = " remindend != null ">
|
|
|
|
|
and ${column} <= #{remindend}
|
|
|
|
|
</if>
|
|
|
|
|
</if>
|
|
|
|
|
<if test = "type == 2 ">
|
|
|
|
|
<if test = " remindstart != null ">
|
|
|
|
|
and ${column} >= str_to_date(#{remindstart},'%Y-%m-%d')
|
|
|
|
|
</if>
|
|
|
|
|
<if test = " remindend != null ">
|
|
|
|
|
and ${column} <= 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} >= #{remindstart}
|
|
|
|
|
</if>
|
|
|
|
|
<if test = " remindend != null ">
|
|
|
|
|
and ${column} <= #{remindend}
|
|
|
|
|
</if>
|
|
|
|
|
</if>
|
|
|
|
|
<if test = "type == 2 ">
|
|
|
|
|
<if test = " remindstart != null ">
|
|
|
|
|
and ${column} >= str_to_date(#{remindstart},'%Y-%m-%d')
|
|
|
|
|
</if>
|
|
|
|
|
<if test = " remindend != null ">
|
|
|
|
|
and ${column} <= 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>
|