Browse Source

Revert "MOD: user wrapper"

This reverts commit 207557cfd34edacf2885939552abd369d5026c1f.
zhangxin 7 years ago
parent
commit
ba05c3f5d8

+ 0 - 86
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/constants/Converter.java

@@ -1,86 +0,0 @@
-package cn.iselab.mooctest.user.constants;
-
-import com.google.common.collect.Maps;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import org.springframework.cglib.beans.BeanCopier;
-
-import java.util.Map;
-
-/**
- * @author sean
- * @date 2018-03-06.
- */
-public class Converter {
-    private static Map<CopierIdentity, BeanCopier> copierCache = Maps.newConcurrentMap();
-    private static PrimitiveConverter primitiveConverter = new PrimitiveConverter();
-
-    public static <T> T copy(T target, Object source) {
-        BeanCopier copier = getCopier(source.getClass(), target.getClass());
-        copier.copy(source, target, primitiveConverter);
-        return target;
-    }
-
-    public static <T> T convert(Class<T> targetClass, Object source) {
-        try {
-            T target = targetClass.newInstance();
-            BeanCopier copier = getCopier(source.getClass(), targetClass);
-            copier.copy(source, target, primitiveConverter);
-            return target;
-        } catch (InstantiationException | IllegalAccessException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    private static BeanCopier getCopier(Class<?> source, Class<?> target) {
-        CopierIdentity identity = new CopierIdentity(source, target);
-        BeanCopier copier;
-        if (copierCache.containsKey(identity)) {
-            copier = copierCache.get(identity);
-        } else {
-            copier = BeanCopier.create(source, target, true);
-            copierCache.putIfAbsent(identity, copier);
-        }
-        return copier;
-    }
-
-    public static class PrimitiveConverter implements org.springframework.cglib.core.Converter {
-        @Override
-        @SuppressWarnings("unchecked")
-        public Object convert(Object value, Class target, Object context) {
-            if (value == null) return null;
-            if (target.equals(String.class)
-                    && !String.class.isAssignableFrom(value.getClass()))
-                return value.toString();
-            if (Number.class.isAssignableFrom(value.getClass())) {
-                Number num = (Number) value;
-                if (target.equals(int.class) || target.equals(Integer.class))
-                    return num.intValue();
-                else if (target.equals(long.class) || target.equals(Long.class))
-                    return num.longValue();
-                else if (target.equals(short.class) || target.equals(Short.class))
-                    return num.shortValue();
-                else if (target.equals(float.class) || target.equals(Float.class))
-                    return num.floatValue();
-                else if (target.equals(double.class) || target.equals(Double.class))
-                    return num.doubleValue();
-                else if (target.equals(byte.class) || target.equals(Byte.class))
-                    return num.byteValue();
-            } else if (target.isAssignableFrom(value.getClass()))
-                return value;
-            return null;
-        }
-    }
-
-    @AllArgsConstructor
-    @Data
-    @EqualsAndHashCode
-    private static class CopierIdentity {
-        private Class<?> source;
-        private Class<?> target;
-    }
-
-}
-
-

+ 4 - 6
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/ctrl/UserController.java

@@ -4,7 +4,10 @@ import cn.iselab.mooctest.rpc.user.data.UserDTO;
 import cn.iselab.mooctest.user.constants.UrlConstants;
 import cn.iselab.mooctest.user.constants.UrlConstants;
 import cn.iselab.mooctest.user.web.logic.UserLogic;
 import cn.iselab.mooctest.user.web.logic.UserLogic;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RestController;
 
 
 /**
 /**
  * @author sean
  * @author sean
@@ -25,9 +28,4 @@ public class UserController extends BaseController {
     public UserDTO getUserByEmail(@PathVariable("email") String email) {
     public UserDTO getUserByEmail(@PathVariable("email") String email) {
         return userLogic.getUserByEmail(email);
         return userLogic.getUserByEmail(email);
     }
     }
-
-    @RequestMapping(value = UrlConstants.API + "user", method = RequestMethod.POST)
-    public UserDTO save(@RequestBody UserDTO userDTO){
-        return userLogic.save(userDTO);
-    }
 }
 }

+ 4 - 7
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/logic/impl/UserLogicImpl.java

@@ -1,7 +1,6 @@
 package cn.iselab.mooctest.user.web.logic.impl;
 package cn.iselab.mooctest.user.web.logic.impl;
 
 
 import cn.iselab.mooctest.rpc.user.data.UserDTO;
 import cn.iselab.mooctest.rpc.user.data.UserDTO;
-import cn.iselab.mooctest.user.constants.Converter;
 import cn.iselab.mooctest.user.model.User;
 import cn.iselab.mooctest.user.model.User;
 import cn.iselab.mooctest.user.service.UserService;
 import cn.iselab.mooctest.user.service.UserService;
 import cn.iselab.mooctest.user.web.exception.HttpBadRequestException;
 import cn.iselab.mooctest.user.web.exception.HttpBadRequestException;
@@ -75,15 +74,13 @@ public class UserLogicImpl extends BaseLogic implements UserLogic {
 
 
     @Override
     @Override
     public UserDTO save(UserDTO userDTO) {
     public UserDTO save(UserDTO userDTO) {
-        User user = Converter.convert(User.class, userDTO);
-        user = userService.register(user);
-        return Converter.convert(UserDTO.class, user);
+        User user = userWrapper.unwrap(userDTO);
+        return userWrapper.wrap(userService.register(user));
     }
     }
 
 
     @Override
     @Override
     public UserDTO updateUser(UserDTO userDTO) {
     public UserDTO updateUser(UserDTO userDTO) {
-        User user = Converter.convert(User.class, userDTO);
-        user = userService.update(user);
-        return Converter.convert(UserDTO.class, user);
+        User user = userWrapper.unwrap(userDTO);
+        return userWrapper.wrap(userService.update(user));
     }
     }
 }
 }

+ 18 - 1
mooctest-user-server/src/main/java/cn/iselab/mooctest/user/web/wrapper/UserWrapper.java

@@ -4,6 +4,8 @@ import cn.iselab.mooctest.rpc.user.data.UserDTO;
 import cn.iselab.mooctest.user.model.User;
 import cn.iselab.mooctest.user.model.User;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.sql.Timestamp;
+
 /**
 /**
  * @author sean
  * @author sean
  * @date 2018-03-04.
  * @date 2018-03-04.
@@ -32,6 +34,21 @@ public class UserWrapper extends BaseWrapper<UserDTO, User> {
 
 
     @Override
     @Override
     public User unwrap(UserDTO data) {
     public User unwrap(UserDTO data) {
-        return null;
+        User user = new User();
+
+        user.setSchool(data.getSchool());
+        user.setProvince(data.getProvince());
+        user.setPhotoUrl(data.getPhotoUrl());
+        user.setAvailable(data.getAvailable());
+        user.setCity(data.getCity());
+        user.setCreateTime(new Timestamp(data.getCreateTime()));
+        user.setEmail(data.getEmail());
+        user.setId(data.getId());
+        user.setManualCheckValid(data.getManualCheckValid());
+        user.setMobile(data.getMobile());
+        user.setName(data.getName());
+        user.setPassword(data.getPassword());
+
+        return user;
     }
     }
 }
 }