• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

wz2cool / mybatis-dynamic-query / #393

19 May 2024 12:06PM CUT coverage: 72.18% (-17.3%) from 89.44%
#393

push

wz2cool
add ci

1977 of 2739 relevant lines covered (72.18%)

0.72 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

36.84
/src/main/java/com/github/wz2cool/dynamic/mybatis/mapper/SelectSumByDynamicQueryMapper.java
1
package com.github.wz2cool.dynamic.mybatis.mapper;
2

3
import com.github.wz2cool.dynamic.DynamicQuery;
4
import com.github.wz2cool.dynamic.helper.CommonsHelper;
5
import com.github.wz2cool.dynamic.lambda.*;
6
import com.github.wz2cool.dynamic.mybatis.QueryHelper;
7
import com.github.wz2cool.dynamic.mybatis.TypeHelper;
8
import com.github.wz2cool.dynamic.mybatis.mapper.constant.MapperConstants;
9
import com.github.wz2cool.dynamic.mybatis.mapper.provider.DynamicQueryProvider;
10
import org.apache.ibatis.annotations.Param;
11
import org.apache.ibatis.annotations.SelectProvider;
12
import tk.mybatis.mapper.annotation.RegisterMapper;
13

14
import java.math.BigDecimal;
15
import java.util.Optional;
16

17
/**
18
 * @author Frank
19
 **/
20
@RegisterMapper
21
public interface SelectSumByDynamicQueryMapper<T> {
22

23
    QueryHelper QUERY_HELPER = new QueryHelper();
1✔
24

25
    /**
26
     * Select sum value of column by dynamic query.
27
     *
28
     * @param column       the column need get sum value
29
     * @param dynamicQuery dynamic query
30
     * @return max value of column.
31
     */
32
    @SelectProvider(type = DynamicQueryProvider.class, method = "dynamicSQL")
33
    Object selectSumByDynamicQuery(
34
            @Param(MapperConstants.COLUMN) String column, @Param(MapperConstants.DYNAMIC_QUERY) DynamicQuery<T> dynamicQuery);
35

36
    /**
37
     * Select sum value of property by dynamic query.
38
     *
39
     * @param getPropertyFunction the property need get sum value
40
     * @param dynamicQuery        dynamic query.
41
     * @return sum value of property.
42
     */
43
    default <R extends Comparable> Object selectSumByDynamicQueryInternal(
44
            GetPropertyFunction<T, R> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
45
        String propertyName = CommonsHelper.getPropertyName(getPropertyFunction);
1✔
46
        Class entityClass = dynamicQuery.getEntityClass();
1✔
47
        String queryColumn = QUERY_HELPER.getQueryColumnByProperty(entityClass, propertyName);
1✔
48
        return selectSumByDynamicQuery(queryColumn, dynamicQuery);
1✔
49
    }
50

51
    /**
52
     * Select sum value of property by dynamic query.
53
     *
54
     * @param getPropertyFunction the property need get sum value
55
     * @param dynamicQuery        dynamic query.
56
     * @return sum value of property.
57
     */
58
    default Optional<BigDecimal> selectSumByDynamicQuery(
59
            GetBigDecimalPropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
60
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
1✔
61
        return Optional.ofNullable(TypeHelper.getBigDecimal(result));
1✔
62
    }
63

64
    /**
65
     * Select sum value of property by dynamic query.
66
     *
67
     * @param getPropertyFunction the property need get sum value
68
     * @param dynamicQuery        dynamic query.
69
     * @return sum value of property.
70
     */
71
    default Optional<Long> selectSumByDynamicQuery(
72
            GetBytePropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
73
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
×
74
        return Optional.ofNullable(TypeHelper.getLong(result));
×
75
    }
76

77
    /**
78
     * Select sum value of property by dynamic query.
79
     *
80
     * @param getPropertyFunction the property need get sum value
81
     * @param dynamicQuery        dynamic query.
82
     * @return sum value of property.
83
     */
84
    default Optional<BigDecimal> selectSumByDynamicQuery(
85
            GetDoublePropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
86
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
×
87
        return Optional.ofNullable(TypeHelper.getBigDecimal(result));
×
88
    }
89

90
    /**
91
     * Select sum value of property by dynamic query.
92
     *
93
     * @param getPropertyFunction the property need get sum value
94
     * @param dynamicQuery        dynamic query.
95
     * @return sum value of property.
96
     */
97
    default Optional<BigDecimal> selectSumByDynamicQuery(
98
            GetFloatPropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
99
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
×
100
        return Optional.ofNullable(TypeHelper.getBigDecimal(result));
×
101
    }
102

103
    /**
104
     * Select sum value of property by dynamic query.
105
     *
106
     * @param getPropertyFunction the property need get sum value
107
     * @param dynamicQuery        dynamic query.
108
     * @return sum value of property.
109
     */
110
    default Optional<Long> selectSumByDynamicQuery(
111
            GetIntegerPropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
112
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
×
113
        return Optional.ofNullable(TypeHelper.getLong(result));
×
114
    }
115

116
    /**
117
     * Select sum value of property by dynamic query.
118
     *
119
     * @param getPropertyFunction the property need get sum value
120
     * @param dynamicQuery        dynamic query.
121
     * @return sum value of property.
122
     */
123
    default Optional<Long> selectSumByDynamicQuery(
124
            GetLongPropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
125
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
×
126
        return Optional.ofNullable(TypeHelper.getLong(result));
×
127
    }
128

129
    /**
130
     * Select sum value of property by dynamic query.
131
     *
132
     * @param getPropertyFunction the property need get sum value
133
     * @param dynamicQuery        dynamic query.
134
     * @return sum value of property.
135
     */
136
    default Optional<Long> selectSumByDynamicQuery(
137
            GetShortPropertyFunction<T> getPropertyFunction, DynamicQuery<T> dynamicQuery) {
138
        Object result = selectSumByDynamicQueryInternal(getPropertyFunction, dynamicQuery);
×
139
        return Optional.ofNullable(TypeHelper.getLong(result));
×
140
    }
141
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc