Browse Source

媒体列表:根据名称首字母排序

liuyu 3 years ago
parent
commit
58e5f1273f

+ 14 - 11
src/main/java/com/ylcm/sys/controller/AdMediaController.java

@@ -90,17 +90,20 @@ public class AdMediaController extends BaseController{
90 90
     }
91 91
 	
92 92
 	private IPage<AdMedia> getAdMedia(String name, Integer rank, Integer pageSize, Integer pageNo) {
93
-		LambdaQueryWrapper<AdMedia> queryWrapper = new LambdaQueryWrapper<AdMedia>();
94
-        if (rank != null) {
95
-			queryWrapper.eq(AdMedia::getRank, rank);
96
-		}
97
-        if (StringUtils.isNotBlank(name)) {
98
-			queryWrapper.like(AdMedia::getName, name.trim());
99
-		}
100
-		queryWrapper.orderByAsc(AdMedia::getName);
101
-        
102
-        IPage<AdMedia> page = adMediaService.page(new Page<AdMedia>(pageNo, pageSize), queryWrapper);
103
-        return page;
93
+//		LambdaQueryWrapper<AdMedia> queryWrapper = new LambdaQueryWrapper<AdMedia>();
94
+//        if (rank != null) {
95
+//			queryWrapper.eq(AdMedia::getRank, rank);
96
+//		}
97
+//        if (StringUtils.isNotBlank(name)) {
98
+//        	name = name.trim();
99
+//			queryWrapper.like(AdMedia::getName, name.trim());
100
+//		}
101
+//		queryWrapper.orderByAsc(AdMedia::getName);
102
+//		return adMediaService.page(new Page<AdMedia>(pageNo, pageSize), queryWrapper);
103
+
104
+		IPage<AdMedia> iPage = new Page<AdMedia>();
105
+		iPage.setRecords(adMediaService.getListByPage(name, rank, pageSize, pageNo));
106
+		return iPage;
104 107
 	}
105 108
 	
106 109
 	@RequestMapping(value = "/export.do")

+ 3 - 0
src/main/java/com/ylcm/sys/mapper/AdMediaMapper.java

@@ -3,6 +3,8 @@ package com.ylcm.sys.mapper;
3 3
 import com.ylcm.sys.domain.AdMedia;
4 4
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
5 5
 
6
+import java.util.List;
7
+
6 8
 /**
7 9
  * <p>
8 10
  * 媒体管理表 Mapper 接口
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
13 15
  */
14 16
 public interface AdMediaMapper extends BaseMapper<AdMedia> {
15 17
 
18
+    List<AdMedia> getListByPage(String name, Integer rank, Integer pageSize, Integer pageNo);
16 19
 }

+ 2 - 0
src/main/java/com/ylcm/sys/service/AdMediaService.java

@@ -26,4 +26,6 @@ public interface AdMediaService extends IService<AdMedia> {
26 26
 	String deleteById(Integer id);
27 27
 	
28 28
     void updateByForm(AdMediaForm adMediaForm);
29
+
30
+	List<AdMedia> getListByPage(String name, Integer rank, Integer pageSize, Integer pageNo);
29 31
 }

+ 10 - 0
src/main/java/com/ylcm/sys/service/impl/AdMediaServiceImpl.java

@@ -43,6 +43,8 @@ public class AdMediaServiceImpl extends ServiceImpl<AdMediaMapper, AdMedia> impl
43 43
 	private AdSpecialService adSpecialService;
44 44
 	@Resource
45 45
 	private AdTheatreService adTheatreService;
46
+	@Resource
47
+	private AdMediaMapper adMediaMapper;
46 48
 	
47 49
 	@Override
48 50
 	public AdMedia getByName(String name) {
@@ -107,4 +109,12 @@ public class AdMediaServiceImpl extends ServiceImpl<AdMediaMapper, AdMedia> impl
107 109
         BeanUtils.copyProperties(adMediaForm, upAdMedia);
108 110
         this.updateById(upAdMedia);
109 111
     }
112
+
113
+	@Override
114
+	public List<AdMedia> getListByPage(String name, Integer rank, Integer pageSize, Integer pageNo) {
115
+		if (StringUtils.isNotBlank(name)){
116
+			name = name.trim();
117
+		}
118
+		return adMediaMapper.getListByPage(name, rank, pageSize, pageNo);
119
+	}
110 120
 }

+ 29 - 0
src/main/resource/mapper/AdMediaMapper.xml

@@ -18,4 +18,33 @@
18 18
         id, name, rank, img_url, status, crt_time, upd_time
19 19
     </sql>
20 20
 
21
+    <select id="getListByPage" resultMap="BaseResultMap">
22
+        SELECT
23
+        <include refid="Base_Column_List" />
24
+        FROM ad_media
25
+        <trim prefix="WHERE" prefixOverrides="AND |OR ">
26
+            <if test="name != null and name != '' ">
27
+                AND name LIKE CONCAT('%',#{name},'%')
28
+            </if>
29
+            <if test="rank != null ">
30
+                AND rank = #{rank}
31
+            </if>
32
+        </trim>
33
+        ORDER BY (name+0)
34
+        ,(lower(case when name REGEXP '^[a-zA-Z]' then LEFT(name, 1)
35
+        when name REGEXP '^[0-9]' then LEFT(name, 1)
36
+        else ELT(INTERVAL(CONV(HEX(LEFT(CONVERT(name USING gbk),1)),16,10),
37
+        0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7,
38
+        0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6,
39
+        0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1),
40
+        'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P',
41
+        'Q','R','S','T','W','X','Y','Z')
42
+        end)
43
+        ) ASC
44
+        ,name
45
+        <if test="pageIndex != null">
46
+            LIMIT #{pageSize} OFFSET #{pageIndex}
47
+        </if>
48
+    </select>
49
+
21 50
 </mapper>