wangqifan 4 лет назад
Родитель
Сommit
385385ba9d

+ 14 - 0
src/main/java/com/izouma/nineth/dto/oasis/OasisLoginDTO.java

@@ -0,0 +1,14 @@
+package com.izouma.nineth.dto.oasis;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class OasisLoginDTO {
+    private Long   assetId;
+    private Long   oasisId;
+    private String url;
+}

+ 2 - 0
src/main/java/com/izouma/nineth/repo/CollectionRepo.java

@@ -168,4 +168,6 @@ public interface CollectionRepo extends JpaRepository<Collection, Long>, JpaSpec
     String lowestPrice(String search);
     String lowestPrice(String search);
 
 
     List<Collection> findAllByOasisIdInAndStockGreaterThan(List<Long> oasisIds, int stock);
     List<Collection> findAllByOasisIdInAndStockGreaterThan(List<Long> oasisIds, int stock);
+
+    Collection findFirstByOnShelfAndAssetId(boolean onShelf, Long assetId);
 }
 }

+ 18 - 2
src/main/java/com/izouma/nineth/service/UserService.java

@@ -14,6 +14,7 @@ import com.izouma.nineth.config.RedisKeys;
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.Collection;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.domain.*;
 import com.izouma.nineth.dto.*;
 import com.izouma.nineth.dto.*;
+import com.izouma.nineth.dto.oasis.OasisLoginDTO;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.AssetStatus;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.enums.AuthStatus;
 import com.izouma.nineth.enums.AuthorityName;
 import com.izouma.nineth.enums.AuthorityName;
@@ -57,6 +58,7 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import javax.management.openmbean.OpenMBeanAttributeInfoSupport;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
 import javax.persistence.criteria.Predicate;
@@ -892,8 +894,22 @@ public class UserService {
     public Map<String, Object> oasisInfo(Long userId) {
     public Map<String, Object> oasisInfo(Long userId) {
         Map<String, Object> map = new HashMap<>();
         Map<String, Object> map = new HashMap<>();
         map.put("nickName", SecurityUtils.getAuthenticatedUser().getNickname());
         map.put("nickName", SecurityUtils.getAuthenticatedUser().getNickname());
-        map.put("oasisIds", assetRepo.findAllByOwnerIdAndStatusAndOasisIdNotNull(userId, AssetStatus.NORMAL).stream()
-                .map(Asset::getOasisId).collect(Collectors.toSet()));
+        List<Asset> assets = assetRepo.findAllByOwnerIdAndStatusAndOasisIdNotNull(userId, AssetStatus.NORMAL);
+        List<OasisLoginDTO> oasisLoginDTOS = new ArrayList<>();
+        assets.forEach(asset -> {
+            OasisLoginDTO oasisLoginDTO = new OasisLoginDTO();
+            oasisLoginDTO.setOasisId(asset.getOasisId());
+            oasisLoginDTO.setAssetId(asset.getId());
+            Collection collection = collectionRepo.findFirstByOnShelfAndAssetId(true, asset.getId());
+            if (collection != null) {
+                oasisLoginDTO.setUrl(generalProperties.getHost() + "/9th/productDetail/" + collection
+                        .getId() + "?id=" + collection.getId());
+            } else {
+                oasisLoginDTO.setUrl("未公开展示");
+            }
+            oasisLoginDTOS.add(oasisLoginDTO);
+        });
+        map.put("oasisInfo", oasisLoginDTOS);
         map.put("avatar", SecurityUtils.getAuthenticatedUser().getAvatar());
         map.put("avatar", SecurityUtils.getAuthenticatedUser().getAvatar());
         return map;
         return map;
     }
     }

+ 6 - 0
src/main/java/com/izouma/nineth/web/AuthenticationController.java

@@ -41,6 +41,12 @@ public class AuthenticationController {
         return userService.oasisInfo(user.getId());
         return userService.oasisInfo(user.getId());
     }
     }
 
 
+    @PostMapping("/oasisLoginPhone")
+    public Map<String, Object> oasisLogin(String phone, String code) {
+        User user = userService.loginByPhone(phone, code);
+        return userService.oasisInfo(user.getId());
+    }
+
     @PostMapping("/loginAdmin")
     @PostMapping("/loginAdmin")
     public String loginByUserPwdAdmin(String username, String password, Integer expiration) {
     public String loginByUserPwdAdmin(String username, String password, Integer expiration) {
         User user = userService.loginByUsernamePwd(username, password);
         User user = userService.loginByUsernamePwd(username, password);