feiyu02
9 天以前 b36ead72a90faf8c5459cdf0ed912e0b292851ef
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?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="cn.flightfeather.supervision.domain.mapper.UserSettingMapper" >
  <resultMap id="BaseResultMap" type="cn.flightfeather.supervision.domain.entity.UserSetting" >
    <!--
      WARNING - @mbg.generated
    -->
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="User_Type_Id" property="userTypeId" jdbcType="INTEGER" />
    <result column="User_Type" property="userType" jdbcType="VARCHAR" />
    <result column="User_SubType_Id" property="userSubtypeId" jdbcType="INTEGER" />
    <result column="User_SubType" property="userSubtype" jdbcType="VARCHAR" />
    <result column="Province_Code" property="provinceCode" jdbcType="VARCHAR" />
    <result column="Province_Name" property="provinceName" jdbcType="VARCHAR" />
    <result column="City_Code" property="cityCode" jdbcType="VARCHAR" />
    <result column="City_Name" property="cityName" jdbcType="VARCHAR" />
    <result column="District_Code" property="districtCode" jdbcType="VARCHAR" />
    <result column="District_Name" property="districtName" jdbcType="VARCHAR" />
    <result column="Town_Code" property="townCode" jdbcType="VARCHAR" />
    <result column="Town_Name" property="townName" jdbcType="VARCHAR" />
    <result column="Area_Code" property="areaCode" jdbcType="VARCHAR" />
    <result column="Area" property="area" jdbcType="VARCHAR" />
    <result column="Management_Company_Id" property="managementCompanyId" jdbcType="VARCHAR" />
    <result column="Management_Company" property="managementCompany" jdbcType="VARCHAR" />
    <result column="scene_type_id" property="sceneTypeId" jdbcType="INTEGER" />
    <result column="ledger_deadline" property="ledgerDeadline" jdbcType="INTEGER" />
    <result column="self_patrol_promise" property="selfPatrolPromise" jdbcType="BIT" />
  </resultMap>
  <resultMap id="ResultMapWithBLOBs" type="cn.flightfeather.supervision.domain.entity.UserSetting" extends="BaseResultMap" >
    <!--
      WARNING - @mbg.generated
    -->
    <result column="sp_promise_content" property="spPromiseContent" jdbcType="LONGVARCHAR" />
  </resultMap>
  <sql id="Base_Column_List" >
    <!--
      WARNING - @mbg.generated
    -->
    id, User_Type_Id, User_Type, User_SubType_Id, User_SubType, Province_Code, Province_Name, 
    City_Code, City_Name, District_Code, District_Name, Town_Code, Town_Name, Area_Code, 
    Area, Management_Company_Id, Management_Company, scene_type_id, ledger_deadline, 
    self_patrol_promise
  </sql>
  <sql id="Blob_Column_List" >
    <!--
      WARNING - @mbg.generated
    -->
    sp_promise_content
  </sql>
 
  <!-- 行政区划最匹配查询条件 -->
  <select id="selectBestConfig" resultMap="ResultMapWithBLOBs">
    select
    <include refid="Base_Column_List" />, <include refid="Blob_Column_List" />
    FROM sm_t_setting
    <where>
      <if test="userTypeId != null">
        AND User_Type_Id = #{userTypeId}
      </if>
      <if test="sceneTypeId != null">
        AND (scene_type_id = #{sceneTypeId} OR scene_type_id IS NULL)
      </if>
      <if test="provinceName != null">
        AND (Province_Name = #{provinceName} OR Province_Name IS NULL)
      </if>
      <if test="cityName != null">
        AND (City_Name = #{cityName} OR City_Name IS NULL)
      </if>
      <if test="districtName != null">
        AND (District_Name = #{districtName} OR District_Name IS NULL)
      </if>
      <if test="townName != null">
        AND (Town_Name = #{townName} OR Town_Name IS NULL)
      </if>
      <if test="area != null">
        AND (Area = #{area} OR Area IS NULL)
      </if>
      <if test="managementCompany != null">
        AND (Management_Company = #{managementCompany} OR Management_Company IS NULL)
      </if>
    </where>
    ORDER BY
      CASE
        WHEN Province_Name = #{provinceName} AND City_Name = #{cityName}
          AND District_Name = #{districtName} AND Town_Name = #{townName} THEN 1
        WHEN Province_Name = #{provinceName} AND City_Name = #{cityName}
          AND District_Name = #{districtName} AND Town_Name IS NULL THEN 2
        WHEN Province_Name = #{provinceName} AND City_Name = #{cityName}
          AND District_Name IS NULL AND Town_Name IS NULL THEN 3
        WHEN Province_Name = #{provinceName} AND City_Name IS NULL
          AND District_Name IS NULL AND Town_Name IS NULL THEN 4
      END,
      CASE
        WHEN Area = #{area} THEN 1
        WHEN Area IS NULL THEN 2
      END,
      CASE
        WHEN Management_Company = #{managementCompany} THEN 1
        WHEN Management_Company IS NULL THEN 2
      END,
      CASE
        WHEN scene_type_id = #{sceneTypeId} THEN 1
        WHEN scene_type_id IS NULL THEN 2
      END
    LIMIT 1;
  </select>
</mapper>