Skip to content

Commit a90c147

Browse files
committed
添加实例的查询结果的条件排序
1 parent 8a3ba21 commit a90c147

File tree

6 files changed

+96
-51
lines changed

6 files changed

+96
-51
lines changed

springboot-dubbo-api/src/main/java/com/lzq/api/dto/ExampleAccount.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package com.lzq.api.dto;
22

3+
import com.baomidou.mybatisplus.annotation.FieldFill;
34
import com.baomidou.mybatisplus.annotation.IdType;
45
import com.baomidou.mybatisplus.annotation.TableField;
56
import com.baomidou.mybatisplus.annotation.TableId;
7+
import com.fasterxml.jackson.annotation.JsonFormat;
68
import com.fasterxml.jackson.annotation.JsonIgnore;
79
import com.fasterxml.jackson.annotation.JsonProperty;
810
import lombok.Data;
911

1012
import java.io.Serializable;
13+
import java.util.Date;
1114

1215
/**
1316
* @author :LZQ
@@ -83,4 +86,19 @@ public class ExampleAccount implements Serializable {
8386
@TableField(exist = false)
8487
@JsonProperty("myFavorites")
8588
private Boolean myFavorites=false;
89+
90+
/**
91+
* 创建时间
92+
*/
93+
@JsonProperty("createTime")
94+
@TableField(fill = FieldFill.INSERT)
95+
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss:",timezone = "GMT+8")
96+
private Date createTime;
97+
/**
98+
* 更新时间
99+
*/
100+
@JsonProperty("updateTime")
101+
@TableField(fill = FieldFill.INSERT_UPDATE)
102+
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss",timezone = "GMT+8")
103+
private Date updateTime;
86104
}

springboot-dubbo-api/src/main/java/com/lzq/api/service/ExampleAccountService.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,21 @@ public interface ExampleAccountService {
1414

1515
/**
1616
* 通过实例名查询实例
17-
* @param exampleName 实例名
18-
* @param currentPage 当前页
17+
*
18+
* @param exampleName 实例名
19+
* @param currentPage 当前页
20+
* @param orderCondition 排序条件
1921
* @return
2022
*/
21-
PageInfo<ExampleAccount> queryByExampleName(String exampleName, Integer currentPage);
23+
PageInfo<ExampleAccount> queryByExampleName(String exampleName, Integer currentPage, Integer orderCondition);
2224

2325
/**
2426
* 查询个人喜爱实例
25-
* @param username 用户名
27+
*
28+
* @param username 用户名
2629
* @param currentPage 当前页
30+
* @param orderCondition
2731
* @return
2832
*/
29-
PageInfo<ExampleAccount> queryPersonFavorites(String username, Integer currentPage);
33+
PageInfo<ExampleAccount> queryPersonFavorites(String username, Integer currentPage,Integer orderCondition);
3034
}

springboot-dubbo-service/src/main/java/com/lzq/dubboservice/mapper/ExampleAccountMapper.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
@Repository
1616
public interface ExampleAccountMapper extends BaseMapper<ExampleAccount> {
1717

18-
public List<ExampleAccount> queryByExampleName(String exampleName);
18+
public List<ExampleAccount> queryByExampleName(@Param("exampleName") String exampleName,@Param("orderCondition") Integer orderCondition);
1919

20-
List<ExampleAccount> queryPersonFavorites(@Param("username") String username);
20+
List<ExampleAccount> queryPersonFavorites(@Param("username") String username,@Param("orderCondition") Integer orderCondition);
2121
}

springboot-dubbo-service/src/main/java/com/lzq/dubboservice/service/ExampleAccountServiceImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@
2121
public class ExampleAccountServiceImpl extends ServiceImpl<ExampleAccountMapper, ExampleAccount> implements ExampleAccountService {
2222

2323
@Override
24-
public PageInfo<ExampleAccount> queryByExampleName(String exampleName,Integer currentPage) {
24+
public PageInfo<ExampleAccount> queryByExampleName(String exampleName, Integer currentPage, Integer orderCondition) {
2525
//当前页和每页条数
26-
PageHelper.startPage(currentPage,12);
26+
PageHelper.startPage(currentPage, 12);
2727
//获取全部数据
28-
List<ExampleAccount> list = baseMapper.queryByExampleName(exampleName);
28+
List<ExampleAccount> list = baseMapper.queryByExampleName(exampleName, orderCondition);
2929
return new PageInfo<>(list);
3030
}
3131

3232
@Override
33-
public PageInfo<ExampleAccount> queryPersonFavorites(String username, Integer currentPage) {
33+
public PageInfo<ExampleAccount> queryPersonFavorites(String username, Integer currentPage, Integer orderCondition) {
3434
//当前页和每页条数
35-
PageHelper.startPage(currentPage,12);
36-
List<ExampleAccount> list = baseMapper.queryPersonFavorites(username);
35+
PageHelper.startPage(currentPage, 12);
36+
List<ExampleAccount> list = baseMapper.queryPersonFavorites(username, orderCondition);
3737
return new PageInfo<>(list);
3838
}
3939
}

springboot-dubbo-service/src/main/resources/mapper/ExampleAccoutMapper.xml

Lines changed: 53 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,46 +2,68 @@
22
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
33
<mapper namespace="com.lzq.dubboservice.mapper.ExampleAccountMapper">
44
<sql id="Thebasic">
5-
a.example_id, example_name, ispublic, label, img, file_name, favorites, a.username
5+
a
6+
.
7+
example_id
8+
, example_name, ispublic, label, img, file_name, favorites, a.username
69
</sql>
710

811
<select id="queryByExampleName" resultType="com.lzq.api.dto.ExampleAccount">
912
select
10-
a.username,
13+
a.username,
14+
name,
15+
user_picture,
16+
description,
17+
example_id,
18+
example_name,
19+
label,
20+
img,
21+
b.favorites,
22+
b.create_time,
23+
b.update_time
24+
from account a left join example b
25+
on
26+
a.username=b.username
27+
where
28+
b.example_name like concat('%',#{exampleName},'%')
29+
or b.label like concat('%',#{exampleName},'%')
30+
<if test="orderCondition == 0">
31+
order by b.create_time desc
32+
</if>
33+
<if test="orderCondition == 1">
34+
order by b.update_time desc
35+
</if>
36+
<if test="orderCondition == 2">
37+
order by b.favorites desc
38+
</if>
39+
</select>
40+
41+
<select id="queryPersonFavorites" resultType="com.lzq.api.dto.ExampleAccount">
42+
select a.username,
1143
name,
1244
user_picture,
1345
description,
14-
example_id,
46+
a.example_id,
1547
example_name,
1648
label,
1749
img,
18-
favorites
19-
from account a left join example b
20-
on
21-
a.username=b.username
22-
where b.example_name like concat('%',#{exampleName},'%')
23-
order by b.favorites desc
24-
</select>
25-
26-
<select id="queryPersonFavorites" resultType="com.lzq.api.dto.ExampleAccount">
27-
select
28-
a.username,
29-
name,
30-
user_picture,
31-
description,
32-
a.example_id,
33-
example_name,
34-
label,
35-
img,
36-
a.favorites
37-
from example a left join favorites b
38-
on
39-
a.example_id=b.example_id
40-
left join account c
41-
on
42-
a.username=c.username
43-
where
44-
b.username=#{username}
45-
50+
a.favorites
51+
from example a
52+
left join favorites b
53+
on
54+
a.example_id = b.example_id
55+
left join account c
56+
on
57+
a.username = c.username
58+
where b.username = #{username}
59+
<if test="orderCondition == 0">
60+
order by b.create_time desc
61+
</if>
62+
<if test="orderCondition == 1">
63+
order by b.update_time desc
64+
</if>
65+
<if test="orderCondition == 2">
66+
order by b.favorites desc
67+
</if>
4668
</select>
4769
</mapper>

springboot-dubbo-web/src/main/java/com/lzq/web/controller/QueryController.java

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public Map<String, Object> queryByUsername(String username) {
6666
//获取喜爱人数
6767
Integer count = favoritesService.getCount(username);
6868
//当喜爱数不匹配时进行更新
69-
if (!result.getFavorites().equals(count)){
69+
if (!result.getFavorites().equals(count)) {
7070
result.setFavorites(count);
7171
Account account = new Account();
7272
account.setUsername(result.getUsername());
@@ -196,7 +196,7 @@ public Map<String, Object> getFanList(HttpServletRequest request, AccountResult
196196
*/
197197
@GetMapping("/queryByExampleName")
198198
@ApiOperation("根据实例名查询实例")
199-
public Map<String, Object> queryByExampleName(HttpServletRequest request, String exampleName, @RequestParam(defaultValue = "1") Integer currentPage,@RequestParam(defaultValue = "0") Integer orderCondition) {
199+
public Map<String, Object> queryByExampleName(HttpServletRequest request, String exampleName, @RequestParam(defaultValue = "1") Integer currentPage, @RequestParam(defaultValue = "0") Integer orderCondition) {
200200
String username = null;
201201
if (request.getHeader("token") != null) {
202202
//获取token中的用户名
@@ -273,12 +273,13 @@ public Map<String, Object> getExample(HttpServletRequest request, Account accoun
273273
*
274274
* @param request
275275
* @param account
276-
* @param currentPage
276+
* @param currentPage 当前页数
277+
* @param orderCondition 排序条件
277278
* @return
278279
*/
279280
@GetMapping("/getFavorites")
280281
@ApiOperation("获取喜爱实例列表")
281-
public Map<String, Object> getFavorites(HttpServletRequest request, Account account, @RequestParam(defaultValue = "1") Integer currentPage) {
282+
public Map<String, Object> getFavorites(HttpServletRequest request, Account account, @RequestParam(defaultValue = "1") Integer currentPage, @RequestParam(defaultValue = "0") Integer orderCondition) {
282283
String username = null;
283284
PageInfo<ExampleAccount> list;
284285
if (request.getHeader("token") != null) {
@@ -290,7 +291,7 @@ public Map<String, Object> getFavorites(HttpServletRequest request, Account acco
290291
if (username != null) {
291292
//判断用户是否查看他人的喜爱实例
292293
if (username.equals(account.getUsername())) {
293-
list = exampleAccountService.queryPersonFavorites(account.getUsername(), currentPage);
294+
list = exampleAccountService.queryPersonFavorites(account.getUsername(), currentPage, orderCondition);
294295
//关注列表
295296
List<String> followList = redisTemplate.opsForList().range(username, 0, -1);
296297
List<ExampleAccount> exampleList = list.getList();
@@ -307,7 +308,7 @@ public Map<String, Object> getFavorites(HttpServletRequest request, Account acco
307308
List<Integer> favoritesList = redisTemplate.opsForList().range(username + "fav", 0, -1);
308309
//获取缓存中用户的关注用户名
309310
List<String> followList = redisTemplate.opsForList().range(username, 0, -1);
310-
list = exampleAccountService.queryPersonFavorites(account.getUsername(), currentPage);
311+
list = exampleAccountService.queryPersonFavorites(account.getUsername(), currentPage, orderCondition);
311312
List<ExampleAccount> exampleList = list.getList();
312313
for (ExampleAccount exampleAccount : exampleList) {
313314
//判断该用户是否被关注,该用户是否是自己
@@ -323,7 +324,7 @@ public Map<String, Object> getFavorites(HttpServletRequest request, Account acco
323324
list.setList(exampleList);
324325
}
325326
} else {
326-
list = exampleAccountService.queryPersonFavorites(account.getUsername(), currentPage);
327+
list = exampleAccountService.queryPersonFavorites(account.getUsername(), currentPage, orderCondition);
327328
}
328329
return ResultMapUtils.ResultMap(true, 0, list);
329330
}

0 commit comments

Comments
 (0)