x1ongzhu hace 6 años
padre
commit
828ddbea79

+ 15 - 0
src/main/java/com/izouma/walkchina/service/UserInfoService.java

@@ -25,6 +25,7 @@ import org.springframework.stereotype.Service;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.UUID;
 
 
@@ -201,4 +202,18 @@ public class UserInfoService implements UserDetailsService {
     public List<RankInfo> friendRank(Long userId) {
         return userInfoRepository.findFriendByRank(userId);
     }
+
+    public void update(Long userId, Map<String, Object> map) {
+        UserInfo userInfo = userInfoRepository.findById(userId).orElseThrow(new ServiceException("用户不存在"));
+        if (map.get("nickname") != null) {
+            userInfo.setNickname(String.valueOf(map.get("nickname")));
+        }
+        if (map.get("avatar") != null) {
+            userInfo.setAvatar(String.valueOf(map.get("avatar")));
+        }
+        if (map.get("sex") != null) {
+            userInfo.setSex(Integer.parseInt(map.get("sex").toString()));
+        }
+        userInfoRepository.save(userInfo);
+    }
 }

+ 8 - 0
src/main/java/com/izouma/walkchina/web/UserInfoController.java

@@ -13,6 +13,8 @@ import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.Map;
+
 @RestController
 @RequestMapping("/user")
 public class UserInfoController {
@@ -105,4 +107,10 @@ public class UserInfoController {
     public Result friendRank() {
         return Result.ok(userInfoService.friendRank(SecurityUtils.getAuthenticatedUser().getId()));
     }
+
+    @PostMapping("/update")
+    public Result update(@RequestParam Map<String, Object> map) {
+        userInfoService.update(SecurityUtils.getAuthenticatedUser().getId(), map);
+        return Result.ok();
+    }
 }

+ 17 - 6
src/test/java/com/izouma/walkchina/CommonTest.java

@@ -1,20 +1,17 @@
 package com.izouma.walkchina;
 
+import com.izouma.walkchina.domain.UserInfo;
 import com.izouma.walkchina.utils.ImageUtils;
+import org.apache.commons.beanutils.BeanUtils;
 import org.joda.time.Days;
 import org.joda.time.LocalDate;
 import org.junit.Test;
-import org.springframework.core.io.ClassPathResource;
-import org.springframework.core.io.Resource;
 
 import javax.imageio.ImageIO;
-import java.awt.*;
-import java.awt.image.BufferedImage;
 import java.io.File;
 import java.io.IOException;
-import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.math.BigDecimal;
-import java.net.URL;
 import java.text.MessageFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
@@ -43,4 +40,18 @@ public class CommonTest {
         System.out.println(message);
         System.out.println(String.format("%.2f", BigDecimal.valueOf(1.11111)));
     }
+
+    @Test
+    public void testCopyProperties() throws InvocationTargetException, IllegalAccessException {
+        UserInfo u1 = UserInfo.builder()
+                .nickname("aaa")
+                .phone("111")
+                .build();
+        UserInfo u2 = UserInfo.builder()
+                .nickname("bbb")
+                .sex(1)
+                .build();
+        BeanUtils.copyProperties(u1, u2);
+        System.out.println();
+    }
 }