From 096dea346c82115dfca0d988bc04a1631352d2e5 Mon Sep 17 00:00:00 2001 From: panqihua <1029559041@qq.com> Date: Mon, 20 Apr 2020 10:48:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pocket/entity/vo/android/Info.java | 10 +++++----- .../pocket/repository/android/UserDao.java | 20 ++++--------------- .../pocket/util/LookupOperationUtil.java | 10 +++++++++- .../pocket/DemoApplicationTests.java | 7 +++++++ 4 files changed, 25 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/community/pocket/entity/vo/android/Info.java b/src/main/java/com/community/pocket/entity/vo/android/Info.java index 58003a1..4e1d003 100644 --- a/src/main/java/com/community/pocket/entity/vo/android/Info.java +++ b/src/main/java/com/community/pocket/entity/vo/android/Info.java @@ -6,7 +6,7 @@ import java.util.List; public class Info { //用户名 - private String username; + private String id; //信用分 private Integer creditScore; //头像 @@ -22,12 +22,12 @@ public class Info { //信用分历史记录 private List scoreHistory; - public String getUsername() { - return username; + public String getId() { + return id; } - public void setUsername(String username) { - this.username = username; + public void setId(String id) { + this.id = id; } public Integer getCreditScore() { diff --git a/src/main/java/com/community/pocket/repository/android/UserDao.java b/src/main/java/com/community/pocket/repository/android/UserDao.java index 8e7b294..33e81d3 100644 --- a/src/main/java/com/community/pocket/repository/android/UserDao.java +++ b/src/main/java/com/community/pocket/repository/android/UserDao.java @@ -9,6 +9,7 @@ import com.community.pocket.repository.BaseDao; import com.community.pocket.repository.CreditScoreDao; import com.community.pocket.repository.EmailDao; import com.community.pocket.util.LookupOperationUtil; +import com.community.pocket.util.TableName; import com.mongodb.client.result.UpdateResult; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -16,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Sort; +import org.springframework.data.mongodb.core.aggregation.Aggregation; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; @@ -209,22 +211,8 @@ public class UserDao extends BaseDao { //获取个人信息 public Info queryUser(String username) { - MyInfo myInfo = mongoTemplate.findOne(new Query(Criteria.where("username").is(username)), entityClass()); - if (myInfo != null) { - Info info = new Info(); - info.setUsername(myInfo.getUsername()); - info.setCreditScore(myInfo.getCreditScore()); - info.setEmail(myInfo.getEmail()); - info.setHeadImg(myInfo.getHeadImg()); - info.setMobie(myInfo.getMobie()); - info.setPosts(myInfo.getPosts()); - info.setVisitors(myInfo.getVisitors()); - info.setScoreHistory(myInfo.getScoreHistory()); - return info; - } else { - return null; - } - + Aggregation aggregation = Aggregation.newAggregation(LookupOperationUtil.scoreHistoryLookup, Aggregation.match(Criteria.where(LookupOperationUtil.idKey).is(username))); + return mongoTemplate.aggregate(aggregation, TableName.info, Info.class).getUniqueMappedResult(); } //修改密码 diff --git a/src/main/java/com/community/pocket/util/LookupOperationUtil.java b/src/main/java/com/community/pocket/util/LookupOperationUtil.java index 63aedb6..7607a72 100644 --- a/src/main/java/com/community/pocket/util/LookupOperationUtil.java +++ b/src/main/java/com/community/pocket/util/LookupOperationUtil.java @@ -10,19 +10,27 @@ public class LookupOperationUtil { private static final String activeKey = "activeDto"; //关联 public static final LookupOperation activeforumLookup = LookupOperation.newLookup().from(TableName.active).localField(idKey).foreignField(idKey).as(activeKey); + //投诉贴 //关联属性 private static final String complainKey = "complainDto"; //定义管道操作 public static final LookupOperation complainforumLookup = LookupOperation.newLookup().from(TableName.complain).localField(idKey).foreignField(idKey).as(complainKey); + //结算贴 private static final String scoreKey = "score"; //定义管道操作 public static final LookupOperation scoreforumLookup = LookupOperation.newLookup().from(TableName.score).localField(idKey).foreignField(idKey).as(scoreKey); - //关联属性 + + //用户信息 private static final String infoKey = "info"; //关联用户外键属性 private static final String usernameKey = "username"; //定义管道操作 public static final LookupOperation infoLookup = LookupOperation.newLookup().from(TableName.info).localField(usernameKey).foreignField(idKey).as(infoKey); + + //信用分历史记录 + private static final String scorehistoryKey = "scoreHistory"; + public static final LookupOperation scoreHistoryLookup = LookupOperation.newLookup().from(TableName.creditScore).localField(idKey).foreignField(usernameKey).as(scorehistoryKey); + } diff --git a/src/test/java/com/community/pocket/DemoApplicationTests.java b/src/test/java/com/community/pocket/DemoApplicationTests.java index 790c529..82a473c 100644 --- a/src/test/java/com/community/pocket/DemoApplicationTests.java +++ b/src/test/java/com/community/pocket/DemoApplicationTests.java @@ -6,6 +6,7 @@ import com.community.pocket.entity.po.android.GarbageWastePrice; import com.community.pocket.entity.po.android.MyInfo; import com.community.pocket.entity.po.android.Token; import com.community.pocket.entity.vo.android.GarbageCateGory; +import com.community.pocket.entity.vo.android.Info; import com.community.pocket.entity.vo.android.QueryUserForm; import com.community.pocket.repository.android.GarbageDao; import com.community.pocket.repository.android.GarbagePriceDao; @@ -233,4 +234,10 @@ class DemoApplicationTests { .param("like", String.valueOf(false)) ).andDo(MockMvcResultHandlers.print()).andReturn().getResponse(); } + + //查询用户信息 + @Test + void findUser() { + Info myInfo = userDao.queryUser("panqihua"); + } }