username 6 years ago
parent
commit
92feef6dd8
100 changed files with 447 additions and 99 deletions
  1. 2 1
      src/main/java/com/izouma/immall/config/SpringSecurityAuditorAware.java
  2. 2 1
      src/main/java/com/izouma/immall/domain/BackUser.java
  3. 0 57
      src/main/java/com/izouma/immall/domain/SuperUser.java
  4. 5 9
      src/main/java/com/izouma/immall/domain/User.java
  5. 11 1
      src/main/java/com/izouma/immall/domain/UserAddress.java
  6. 12 2
      src/main/java/com/izouma/immall/repo/BackUserRepo.java
  7. 16 0
      src/main/java/com/izouma/immall/repo/UserAddressRepo.java
  8. 4 3
      src/main/java/com/izouma/immall/repo/UserRepo.java
  9. 7 0
      src/main/java/com/izouma/immall/repo/VipAuthorityRepo.java
  10. 1 1
      src/main/java/com/izouma/immall/security/JwtAuthorizationTokenFilter.java
  11. 2 2
      src/main/java/com/izouma/immall/security/JwtBackUser.java
  12. 27 0
      src/main/java/com/izouma/immall/security/JwtBackUserDetailsService.java
  13. 2 1
      src/main/java/com/izouma/immall/security/JwtTokenUtil.java
  14. 1 3
      src/main/java/com/izouma/immall/security/VipAuthority.java
  15. 2 1
      src/main/java/com/izouma/immall/security/WebSecurityConfig.java
  16. 0 1
      src/main/java/com/izouma/immall/service/BackUserService.java
  17. 6 5
      src/main/java/com/izouma/immall/utils/SecurityUtils.java
  18. 5 7
      src/main/java/com/izouma/immall/web/BackUserController.java
  19. 55 0
      src/test/java/com/izouma/immall/repo/BackUserRepoTest.java
  20. 53 0
      src/test/java/com/izouma/immall/repo/UserAddressRepoTest.java
  21. 10 4
      src/test/java/com/izouma/immall/repo/UserRepoTest.java
  22. BIN
      target/classes/META-INF/immall.kotlin_module
  23. 133 0
      target/classes/META-INF/spring-configuration-metadata.json
  24. 91 0
      target/classes/application.yaml
  25. BIN
      target/classes/com/izouma/immall/Application.class
  26. BIN
      target/classes/com/izouma/immall/annotations/Searchable.class
  27. BIN
      target/classes/com/izouma/immall/config/Constants$Regex.class
  28. BIN
      target/classes/com/izouma/immall/config/Constants.class
  29. BIN
      target/classes/com/izouma/immall/config/DateConfig$1.class
  30. BIN
      target/classes/com/izouma/immall/config/DateConfig$2.class
  31. BIN
      target/classes/com/izouma/immall/config/DateConfig$3.class
  32. BIN
      target/classes/com/izouma/immall/config/DateConfig$4.class
  33. BIN
      target/classes/com/izouma/immall/config/DateConfig$5.class
  34. BIN
      target/classes/com/izouma/immall/config/DateConfig$6.class
  35. BIN
      target/classes/com/izouma/immall/config/DateConfig.class
  36. BIN
      target/classes/com/izouma/immall/config/ErrorPageConfig.class
  37. BIN
      target/classes/com/izouma/immall/config/LocalDateTimeSerializerConfig.class
  38. BIN
      target/classes/com/izouma/immall/config/RedisConfig.class
  39. BIN
      target/classes/com/izouma/immall/config/SpringSecurityAuditorAware.class
  40. BIN
      target/classes/com/izouma/immall/config/WebMvcConfig.class
  41. BIN
      target/classes/com/izouma/immall/config/WxMaConfiguration.class
  42. BIN
      target/classes/com/izouma/immall/config/WxMaProperties.class
  43. BIN
      target/classes/com/izouma/immall/config/WxMpConfiguration.class
  44. BIN
      target/classes/com/izouma/immall/config/WxMpProperties.class
  45. BIN
      target/classes/com/izouma/immall/config/WxPayConfiguration.class
  46. BIN
      target/classes/com/izouma/immall/config/WxPayProperties.class
  47. BIN
      target/classes/com/izouma/immall/converter/LongArrayConverter.class
  48. BIN
      target/classes/com/izouma/immall/converter/StringArrayConverter.class
  49. BIN
      target/classes/com/izouma/immall/converter/StringToMapConverter$1.class
  50. BIN
      target/classes/com/izouma/immall/converter/StringToMapConverter.class
  51. BIN
      target/classes/com/izouma/immall/domain/AuditedEntity.class
  52. BIN
      target/classes/com/izouma/immall/domain/BackUser$BackUserBuilder.class
  53. BIN
      target/classes/com/izouma/immall/domain/BackUser.class
  54. BIN
      target/classes/com/izouma/immall/domain/BaseEntity.class
  55. BIN
      target/classes/com/izouma/immall/domain/Invitation$InvitationBuilder.class
  56. BIN
      target/classes/com/izouma/immall/domain/Invitation.class
  57. BIN
      target/classes/com/izouma/immall/domain/Menu.class
  58. BIN
      target/classes/com/izouma/immall/domain/SmsRecord$SmsRecordBuilder.class
  59. BIN
      target/classes/com/izouma/immall/domain/SmsRecord.class
  60. BIN
      target/classes/com/izouma/immall/domain/User$UserBuilder.class
  61. BIN
      target/classes/com/izouma/immall/domain/User.class
  62. BIN
      target/classes/com/izouma/immall/domain/UserAddress$UserAddressBuilder.class
  63. BIN
      target/classes/com/izouma/immall/domain/UserAddress.class
  64. BIN
      target/classes/com/izouma/immall/dto/PageQuery.class
  65. BIN
      target/classes/com/izouma/immall/dto/gen/GenCode.class
  66. BIN
      target/classes/com/izouma/immall/dto/gen/Subtable.class
  67. BIN
      target/classes/com/izouma/immall/dto/gen/TableField.class
  68. BIN
      target/classes/com/izouma/immall/exception/AuthenticationException.class
  69. BIN
      target/classes/com/izouma/immall/exception/BusinessException.class
  70. BIN
      target/classes/com/izouma/immall/exception/GlobalExceptionHandler.class
  71. BIN
      target/classes/com/izouma/immall/mpHandler/LogHandler.class
  72. BIN
      target/classes/com/izouma/immall/repo/AuthorityRepo.class
  73. BIN
      target/classes/com/izouma/immall/repo/BackUserRepo.class
  74. BIN
      target/classes/com/izouma/immall/repo/MenuRepo.class
  75. BIN
      target/classes/com/izouma/immall/repo/SmsRecordRepo.class
  76. BIN
      target/classes/com/izouma/immall/repo/UserRepo.class
  77. BIN
      target/classes/com/izouma/immall/security/Authority$AuthorityBuilder.class
  78. BIN
      target/classes/com/izouma/immall/security/Authority$NAMES.class
  79. BIN
      target/classes/com/izouma/immall/security/Authority.class
  80. BIN
      target/classes/com/izouma/immall/security/JwtAuthenticationEntryPoint.class
  81. BIN
      target/classes/com/izouma/immall/security/JwtAuthorizationTokenFilter.class
  82. BIN
      target/classes/com/izouma/immall/security/JwtBackUser.class
  83. BIN
      target/classes/com/izouma/immall/security/JwtBackUserFactory.class
  84. BIN
      target/classes/com/izouma/immall/security/JwtTokenUtil.class
  85. BIN
      target/classes/com/izouma/immall/security/VipAuthority$NAMES.class
  86. BIN
      target/classes/com/izouma/immall/security/VipAuthority$VipAuthorityBuilder.class
  87. BIN
      target/classes/com/izouma/immall/security/VipAuthority.class
  88. BIN
      target/classes/com/izouma/immall/security/WebSecurityConfig.class
  89. BIN
      target/classes/com/izouma/immall/service/BackUserService.class
  90. BIN
      target/classes/com/izouma/immall/service/GenCodeService.class
  91. BIN
      target/classes/com/izouma/immall/service/sms/AliSmsService.class
  92. BIN
      target/classes/com/izouma/immall/service/sms/SmsService$SmsVerifyException.class
  93. BIN
      target/classes/com/izouma/immall/service/sms/SmsService.class
  94. BIN
      target/classes/com/izouma/immall/service/storage/AliStorageService.class
  95. BIN
      target/classes/com/izouma/immall/service/storage/LocalStorageService.class
  96. BIN
      target/classes/com/izouma/immall/service/storage/StorageService.class
  97. BIN
      target/classes/com/izouma/immall/utils/DateTimeUtils.class
  98. BIN
      target/classes/com/izouma/immall/utils/FileUtils.class
  99. BIN
      target/classes/com/izouma/immall/utils/JsonUtils$ArrayBuilder.class
  100. BIN
      target/classes/com/izouma/immall/utils/JsonUtils$Builder.class

+ 2 - 1
src/main/java/com/izouma/immall/config/SpringSecurityAuditorAware.java

@@ -1,5 +1,6 @@
 package com.izouma.immall.config;
 
+import com.izouma.immall.domain.BackUser;
 import com.izouma.immall.domain.User;
 import com.izouma.immall.utils.SecurityUtils;
 import org.springframework.data.domain.AuditorAware;
@@ -15,7 +16,7 @@ public class SpringSecurityAuditorAware implements AuditorAware<String> {
     @Nonnull
     public Optional<String> getCurrentAuditor() {
         String auditor = "system";
-        User user = SecurityUtils.getAuthenticatedUser();
+        BackUser user = SecurityUtils.getAuthenticatedUser();
         if (user != null) {
             auditor = user.getNickname() + "(" + user.getId() + ")";
         }

+ 2 - 1
src/main/java/com/izouma/immall/domain/BackUser.java

@@ -16,6 +16,7 @@ import org.hibernate.annotations.Where;
 import javax.persistence.*;
 import javax.validation.constraints.Pattern;
 import javax.validation.constraints.Size;
+import java.io.Serializable;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -26,7 +27,7 @@ import java.util.Set;
 @Where(clause = "enabled = 1")
 @Builder
 @ApiModel(value = "后台用户", description = "后台用户")
-public class BackUser extends BaseEntity {
+public class BackUser extends BaseEntity implements Serializable {
 
     @Pattern(regexp = Constants.Regex.USERNAME)
     @Size(min = 1, max = 50)

+ 0 - 57
src/main/java/com/izouma/immall/domain/SuperUser.java

@@ -1,57 +0,0 @@
-package com.izouma.immall.domain;
-
-import com.alibaba.excel.annotation.ExcelIgnore;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.izouma.immall.annotations.Searchable;
-import com.izouma.immall.config.Constants;
-import com.izouma.immall.security.Authority;
-import io.swagger.annotations.ApiModel;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
-import org.hibernate.annotations.BatchSize;
-import org.hibernate.annotations.Where;
-import javax.persistence.*;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
-import java.util.HashSet;
-import java.util.Set;
-
-@Data
-@Entity
-@AllArgsConstructor
-@NoArgsConstructor
-@Where(clause = "enabled = 1")
-@ApiModel(value = "超级用户", description = "超级用户")
-public class SuperUser extends BaseEntity {
-
-    @Pattern(regexp = Constants.Regex.USERNAME)
-    @Size(min = 1, max = 50)
-    @Column(nullable = false, unique = true)
-    @Searchable
-    private String username;
-
-    @Searchable
-    private String nickname;
-
-    private String avatar;
-
-    @JsonIgnore
-    private String password;
-
-    @Searchable
-    private String phone;
-
-    @Column(nullable = false)
-    private Boolean enabled = true;
-
-    @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL})
-    @JoinTable(
-            name = "super_user_authority",
-            joinColumns = {@JoinColumn(name = "super_user_id", referencedColumnName = "id")},
-            inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name")})
-    @BatchSize(size = 20)
-    @ExcelIgnore
-    private Set<Authority> authorities = new HashSet<>();
-
-}

+ 5 - 9
src/main/java/com/izouma/immall/domain/User.java

@@ -4,7 +4,6 @@ import com.alibaba.excel.annotation.ExcelIgnore;
 import com.fasterxml.jackson.annotation.JsonIgnore;
 import com.izouma.immall.annotations.Searchable;
 import com.izouma.immall.config.Constants;
-import com.izouma.immall.security.VipAuthority;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -37,7 +36,6 @@ public class User extends BaseEntity implements Serializable {
     @Searchable
     private String username;
 
-    @Searchable
     private String nickname;
 
     private String avatar;
@@ -48,14 +46,14 @@ public class User extends BaseEntity implements Serializable {
     @Column(nullable = false)
     private Boolean enabled = true;
 
-    @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.DETACH})
+/*    @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.DETACH})
     @JoinTable(
             name = "vip_authority",
             joinColumns = {@JoinColumn(name = "user_id", referencedColumnName = "id", foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))},
             inverseJoinColumns = {@JoinColumn(name = "authority_name", referencedColumnName = "name", foreignKey = @ForeignKey(name = "none", value = ConstraintMode.NO_CONSTRAINT))})
     @BatchSize(size = 20)
     @ExcelIgnore
-    private Set<VipAuthority> authorities = new HashSet<>();
+    private Set<VipAuthority> authorities = new HashSet<>();*/
 
     private String openId;
 
@@ -74,14 +72,12 @@ public class User extends BaseEntity implements Serializable {
 
     private String email;
 
-//    private String realname;
-//
-//    private String idNo;
-
+    @Searchable
     @ApiModelProperty("邀请码")
-    private String invitationCode;
+    private int invitationCode;
 
     @ApiModelProperty( "用户余额")
     private BigDecimal money;
 
+
 }

+ 11 - 1
src/main/java/com/izouma/immall/domain/UserAddress.java

@@ -8,6 +8,7 @@ import lombok.Data;
 import lombok.NoArgsConstructor;
 
 import javax.persistence.*;
+import java.io.Serializable;
 
 @Data
 @AllArgsConstructor
@@ -15,21 +16,30 @@ import javax.persistence.*;
 @Entity
 @Builder
 @ApiModel(value = "收货地址记录", description = "收获地址记录")
-public class UserAddress extends BaseEntity {
+public class UserAddress extends BaseEntity implements Serializable {
     @ApiModelProperty("用户Id")
     private Long userId;
+
+    private String openId;
+
     @ApiModelProperty("收件人姓名")
     private String name;
+
     @ApiModelProperty("收件人电话")
     private String phone;
+
     @ApiModelProperty("收件人省")
     private String province;
+
     @ApiModelProperty("收件人市")
     private String citry;
+
     @ApiModelProperty("收件人区")
     private String district;
+
     @ApiModelProperty("详细地址")
     private String address;
+
     @ApiModelProperty("是否选为默认地址")
     private boolean isDefault;
 

+ 12 - 2
src/main/java/com/izouma/immall/repo/BackUserRepo.java

@@ -1,14 +1,17 @@
 package com.izouma.immall.repo;
 
 import com.izouma.immall.domain.BackUser;
-import com.izouma.immall.domain.User;
 import com.izouma.immall.security.Authority;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Modifying;
+import org.springframework.data.jpa.repository.Query;
 
+import javax.transaction.Transactional;
 import java.util.List;
 
-public interface BackUserRepo extends JpaRepository<BackUser, Long>, JpaSpecificationExecutor<User> {
+public interface BackUserRepo extends JpaRepository<BackUser, Long>, JpaSpecificationExecutor<BackUser> {
+
     BackUser findByUsername(String username);
 
     List<BackUser> findAllByAuthoritiesContains(Authority authority);
@@ -16,4 +19,11 @@ public interface BackUserRepo extends JpaRepository<BackUser, Long>, JpaSpecific
 //    BackUser findByOpenId(String openId);
 
     BackUser findByPhone(String phone);
+
+    @Query("update BackUser t set t.enabled = false where t.id = ?1 ")
+    @Modifying
+    @Transactional
+    void deleteByBackUserId(Long id);
+
+
 }

+ 16 - 0
src/main/java/com/izouma/immall/repo/UserAddressRepo.java

@@ -0,0 +1,16 @@
+package com.izouma.immall.repo;
+
+import com.izouma.immall.domain.UserAddress;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+import java.util.List;
+
+public interface UserAddressRepo extends JpaRepository<UserAddress, Long> {
+    List<UserAddress> findAllByUserId(Long userId);
+
+    List<UserAddress> findAllByOpenId(String openId);
+
+    List<UserAddress> findAllByPhone(String phone);
+
+}

+ 4 - 3
src/main/java/com/izouma/immall/repo/UserRepo.java

@@ -1,16 +1,17 @@
 package com.izouma.immall.repo;
 
 import com.izouma.immall.domain.User;
-import com.izouma.immall.security.Authority;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 
-import java.util.List;
 
 public interface UserRepo extends JpaRepository<User, Long>, JpaSpecificationExecutor<User> {
     User findByUsername(String username);
 
-    List<User> findAllByAuthoritiesContains(Authority authority);
+    //根据邀请码查找用户
+    User findByInvitationCode(String invitationCode);
+
+//    List<User> findAllByAuthoritiesContains(VipAuthority authority);
 
     User findByOpenId(String openId);
 

+ 7 - 0
src/main/java/com/izouma/immall/repo/VipAuthorityRepo.java

@@ -0,0 +1,7 @@
+package com.izouma.immall.repo;
+
+import com.izouma.immall.security.VipAuthority;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface VipAuthorityRepo extends JpaRepository<VipAuthority, String> {
+}

+ 1 - 1
src/main/java/com/izouma/immall/security/JwtAuthorizationTokenFilter.java

@@ -27,7 +27,7 @@ public class JwtAuthorizationTokenFilter extends OncePerRequestFilter {
     private final JwtTokenUtil       jwtTokenUtil;
     private final String             tokenHeader;
 
-    public JwtAuthorizationTokenFilter(@Qualifier("jwtUserDetailsService") UserDetailsService userDetailsService, JwtTokenUtil jwtTokenUtil, @Value("${jwt.header}") String tokenHeader) {
+    public JwtAuthorizationTokenFilter(@Qualifier("jwtBackUserDetailsService") UserDetailsService userDetailsService, JwtTokenUtil jwtTokenUtil, @Value("${jwt.header}") String tokenHeader) {
         this.userDetailsService = userDetailsService;
         this.jwtTokenUtil = jwtTokenUtil;
         this.tokenHeader = tokenHeader;

+ 2 - 2
src/main/java/com/izouma/immall/security/JwtBackUser.java

@@ -15,11 +15,11 @@ import java.util.Date;
  */
 public class JwtBackUser implements UserDetails {
 
-    private static final long serialVersionUID = 5803985158027956021L;
+    private static final long serialVersionUID = 5803785158027956031L;
 
     private final Collection<? extends GrantedAuthority> authorities;
     private final Date                                   lastPasswordResetDate;
-    private BackUser user;
+    private BackUser                                     user;
 
     public JwtBackUser(BackUser user, Collection<? extends GrantedAuthority> authorities) {
         this.authorities = authorities;

+ 27 - 0
src/main/java/com/izouma/immall/security/JwtBackUserDetailsService.java

@@ -0,0 +1,27 @@
+package com.izouma.immall.security;
+
+import com.izouma.immall.domain.BackUser;
+import com.izouma.immall.domain.User;
+import com.izouma.immall.repo.BackUserRepo;
+import lombok.AllArgsConstructor;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
+
+@AllArgsConstructor
+@Service("jwtBackUserDetailsService")
+public class JwtBackUserDetailsService implements UserDetailsService {
+    private BackUserRepo backUserRepo;
+
+    @Override
+    public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
+        BackUser user = backUserRepo.findByUsername(username);
+
+        if (user == null) {
+            throw new UsernameNotFoundException(String.format("No user found with username '%s'.", username));
+        } else {
+            return JwtBackUserFactory.create(user);
+        }
+    }
+}

+ 2 - 1
src/main/java/com/izouma/immall/security/JwtTokenUtil.java

@@ -108,7 +108,8 @@ public class JwtTokenUtil implements Serializable {
     }
 
     public Boolean validateToken(String token, UserDetails userDetails) {
-        JwtUser user = (JwtUser) userDetails;
+//        JwtUser user = (JwtUser) userDetails;
+        JwtBackUser user = (JwtBackUser) userDetails;
         final String username = getUsernameFromToken(token);
         final Date created = getIssuedAtDateFromToken(token);
         //final Date expiration = getExpirationDateFromToken(token);

+ 1 - 3
src/main/java/com/izouma/immall/security/VipAuthority.java

@@ -10,6 +10,7 @@ import javax.persistence.Id;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import java.io.Serializable;
+import java.time.LocalDateTime;
 import java.util.Objects;
 
 @Entity
@@ -28,9 +29,6 @@ public class VipAuthority implements Serializable  {
     @NotNull
     private String name;
 
-//    private String startime;
-//    private String endtime;
-
     @Override
     public boolean equals(Object o) {
         if (this == o) {

+ 2 - 1
src/main/java/com/izouma/immall/security/WebSecurityConfig.java

@@ -24,7 +24,8 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
     private JwtAuthenticationEntryPoint unauthorizedHandler;
 
     @Autowired
-    private JwtUserDetailsService jwtUserDetailsService;
+    private JwtBackUserDetailsService jwtUserDetailsService;
+//    private JwtUserDetailsService jwtUserDetailsService;
 
     // Custom JWT based security filter
     @Autowired

+ 0 - 1
src/main/java/com/izouma/immall/service/BackUserService.java

@@ -8,7 +8,6 @@ import com.izouma.immall.domain.BackUser;
 import com.izouma.immall.domain.User;
 import com.izouma.immall.exception.BusinessException;
 import com.izouma.immall.repo.BackUserRepo;
-import com.izouma.immall.repo.UserRepo;
 import com.izouma.immall.security.Authority;
 import com.izouma.immall.service.sms.SmsService;
 import com.izouma.immall.service.storage.StorageService;

+ 6 - 5
src/main/java/com/izouma/immall/utils/SecurityUtils.java

@@ -1,16 +1,17 @@
 package com.izouma.immall.utils;
 
+import com.izouma.immall.domain.BackUser;
 import com.izouma.immall.domain.User;
-import com.izouma.immall.security.JwtUser;
+import com.izouma.immall.security.JwtBackUser;
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.context.SecurityContextHolder;
 
 public class SecurityUtils {
-    public static User getAuthenticatedUser() {
+    public static BackUser getAuthenticatedUser() {
         Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
-        User user = null;
-        if (authentication != null && authentication.getPrincipal() instanceof JwtUser) {
-            user = ((JwtUser) authentication.getPrincipal()).getUser();
+        BackUser user = null;
+        if (authentication != null && authentication.getPrincipal() instanceof JwtBackUser) {
+            user = ((JwtBackUser) authentication.getPrincipal()).getUser();
         }
         return user;
     }

+ 5 - 7
src/main/java/com/izouma/immall/web/BackUserController.java

@@ -5,10 +5,8 @@ import com.izouma.immall.domain.User;
 import com.izouma.immall.dto.PageQuery;
 import com.izouma.immall.exception.BusinessException;
 import com.izouma.immall.repo.BackUserRepo;
-import com.izouma.immall.repo.UserRepo;
 import com.izouma.immall.security.Authority;
 import com.izouma.immall.service.BackUserService;
-import com.izouma.immall.service.UserService;
 import com.izouma.immall.utils.ObjUtils;
 import com.izouma.immall.utils.SecurityUtils;
 import com.izouma.immall.utils.excel.ExcelUtils;
@@ -62,8 +60,8 @@ public class BackUserController extends BaseController {
 
     @PreAuthorize("hasRole('ADMIN')")
     @GetMapping("/back/all")
-    public Page<User> all(PageQuery pageQuery) {
-        return backUserRepo.findAll(toSpecification(pageQuery, User.class), toPageRequest(pageQuery));
+    public Page<BackUser> all(PageQuery pageQuery) {
+        return backUserRepo.findAll(toSpecification(pageQuery, BackUser.class), toPageRequest(pageQuery));
     }
 
     @PreAuthorize("hasRole('ADMIN')")
@@ -72,12 +70,12 @@ public class BackUserController extends BaseController {
         return backUserRepo.findById(id).orElseThrow(new BusinessException("无记录"));
     }
 
-    @GetMapping("/back/excel")
+/*    @GetMapping("/back/excel")
     @ResponseBody
     public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
-        List<User> data = all(pageQuery).getContent();
+        List<BackUser> data = all(pageQuery).getContent();
         ExcelUtils.export(response, data);
-    }
+    }*/
 
 
 

+ 55 - 0
src/test/java/com/izouma/immall/repo/BackUserRepoTest.java

@@ -0,0 +1,55 @@
+package com.izouma.immall.repo;
+
+import com.izouma.immall.domain.BackUser;
+import com.izouma.immall.security.Authority;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class BackUserRepoTest {
+    @Autowired
+    private BackUserRepo backUserRepo;
+
+    @Test
+    public void testUser() {
+        BackUser user = BackUser.builder()
+                .username("testuser")
+                .password("123")
+                .avatar("")
+                .enabled(true)
+                .build();
+        backUserRepo.save(user);
+    }
+
+    @Test
+    public void createUser() {
+
+        BackUser user = backUserRepo.findByUsername("root");
+        user.setPassword(new BCryptPasswordEncoder().encode("123456"));
+        backUserRepo.save(user);
+    }
+
+    @Test
+    public void findAllByAuthoritiesContains() {
+        List<BackUser> list = backUserRepo.findAllByAuthoritiesContains(Authority.builder().name("ROLE_ADMIN").build());
+        System.out.println(list);
+    }
+
+    @Test
+    public void deleteUser(){
+        backUserRepo.deleteByBackUserId(2L);
+    }
+
+    @Test
+    public void findAllUser(){
+        List<BackUser> b = backUserRepo.findAll();
+        System.out.println(b);
+    }
+}

+ 53 - 0
src/test/java/com/izouma/immall/repo/UserAddressRepoTest.java

@@ -0,0 +1,53 @@
+package com.izouma.immall.repo;
+
+import com.izouma.immall.domain.User;
+import com.izouma.immall.domain.UserAddress;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import java.util.List;
+import java.util.Optional;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class UserAddressRepoTest {
+    @Autowired
+    private UserAddressRepo userAddressRepo;
+    @Autowired
+    private UserRepo userRepo;
+
+    @Test
+    public void testUserAddress() {
+        List<User> users = userRepo.findAll();
+        User user = users.get(0);
+        System.out.println(user);
+        UserAddress add1 = UserAddress.builder()
+                .userId(user.getId())
+                .name("张三")
+                .phone("123456")
+                .province("江苏")
+                .citry("南京")
+                .district("江宁")
+                .address("将军大道1号")
+                .isDefault(true)
+                .build();
+        userAddressRepo.save(add1);
+    }
+
+    @Test
+    public void setUserAddress() {
+        Optional<UserAddress> adds = userAddressRepo.findById(6L);
+        UserAddress userAddress = adds.get();
+        userAddress.setAddress("弘景大道");
+        userAddressRepo.save(userAddress);
+    }
+
+    @Test
+    public void findAllUserAddress(){
+        List<UserAddress> list = userAddressRepo.findAllByUserId(5L);
+        System.out.println("------>"+list+"<-----------");
+    }
+}

+ 10 - 4
src/test/java/com/izouma/immall/repo/UserRepoTest.java

@@ -1,7 +1,6 @@
 package com.izouma.immall.repo;
 
 import com.izouma.immall.domain.User;
-import com.izouma.immall.security.Authority;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +22,7 @@ public class UserRepoTest {
                 .username("testuser")
                 .password("123")
                 .avatar("")
+                .phone("123456")
                 .enabled(true)
                 .build();
         userRepo.save(user);
@@ -31,14 +31,20 @@ public class UserRepoTest {
     @Test
     public void createUser() {
 
-        User user = userRepo.findByUsername("root");
+        User user = userRepo.findByUsername("testuser");
         user.setPassword(new BCryptPasswordEncoder().encode("123456"));
         userRepo.save(user);
     }
 
+//    @Test
+//    public void findAllByAuthoritiesContains() {
+//        List<User> list = userRepo.findAllByAuthoritiesContains(Authority.builder().name("ROLE_ADMIN").build());
+//        System.out.println(list);
+//    }
+
     @Test
-    public void findAllByAuthoritiesContains() {
-        List<User> list = userRepo.findAllByAuthoritiesContains(Authority.builder().name("ROLE_ADMIN").build());
+    public void findAllUser(){
+        List<User> list = userRepo.findAll();
         System.out.println(list);
     }
 }

BIN
target/classes/META-INF/immall.kotlin_module


+ 133 - 0
target/classes/META-INF/spring-configuration-metadata.json

@@ -0,0 +1,133 @@
+{
+  "groups": [
+    {
+      "name": "aliyun",
+      "type": "com.izouma.immall.service.storage.AliStorageService",
+      "sourceType": "com.izouma.immall.service.storage.AliStorageService"
+    },
+    {
+      "name": "wx.ma",
+      "type": "com.izouma.immall.config.WxMaProperties",
+      "sourceType": "com.izouma.immall.config.WxMaProperties"
+    },
+    {
+      "name": "wx.mp",
+      "type": "com.izouma.immall.config.WxMpProperties",
+      "sourceType": "com.izouma.immall.config.WxMpProperties"
+    },
+    {
+      "name": "wx.pay",
+      "type": "com.izouma.immall.config.WxPayProperties",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    }
+  ],
+  "properties": [
+    {
+      "name": "aliyun.access-key-id",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.service.storage.AliStorageService"
+    },
+    {
+      "name": "aliyun.access-key-secret",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.service.storage.AliStorageService"
+    },
+    {
+      "name": "aliyun.oss-bucket-name",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.service.storage.AliStorageService"
+    },
+    {
+      "name": "aliyun.oss-domain",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.service.storage.AliStorageService"
+    },
+    {
+      "name": "aliyun.oss-end-point",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.service.storage.AliStorageService"
+    },
+    {
+      "name": "wx.ma.app-id",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMaProperties"
+    },
+    {
+      "name": "wx.ma.app-secret",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMaProperties"
+    },
+    {
+      "name": "wx.ma.msg-aes-key",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMaProperties"
+    },
+    {
+      "name": "wx.ma.msg-format",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMaProperties"
+    },
+    {
+      "name": "wx.ma.msg-token",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMaProperties"
+    },
+    {
+      "name": "wx.mp.aes-key",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMpProperties"
+    },
+    {
+      "name": "wx.mp.app-id",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMpProperties"
+    },
+    {
+      "name": "wx.mp.app-secret",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMpProperties"
+    },
+    {
+      "name": "wx.mp.token",
+      "type": "java.lang.String",
+      "sourceType": "com.izouma.immall.config.WxMpProperties"
+    },
+    {
+      "name": "wx.pay.app-id",
+      "type": "java.lang.String",
+      "description": "设置微信公众号或者小程序等的appid",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    },
+    {
+      "name": "wx.pay.key-path",
+      "type": "java.lang.String",
+      "description": "apiclient_cert.p12文件的绝对路径,或者如果放在项目中,请以classpath:开头指定",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    },
+    {
+      "name": "wx.pay.mch-id",
+      "type": "java.lang.String",
+      "description": "微信支付商户号",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    },
+    {
+      "name": "wx.pay.mch-key",
+      "type": "java.lang.String",
+      "description": "微信支付商户密钥",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    },
+    {
+      "name": "wx.pay.sub-app-id",
+      "type": "java.lang.String",
+      "description": "服务商模式下的子商户公众账号ID,普通模式请不要配置,请在配置文件中将对应项删除",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    },
+    {
+      "name": "wx.pay.sub-mch-id",
+      "type": "java.lang.String",
+      "description": "服务商模式下的子商户号,普通模式请不要配置,最好是请在配置文件中将对应项删除",
+      "sourceType": "com.izouma.immall.config.WxPayProperties"
+    }
+  ],
+  "hints": []
+}

+ 91 - 0
target/classes/application.yaml

@@ -0,0 +1,91 @@
+server:
+    port: 8080
+    servlet:
+        context_path: /
+    compression:
+        enabled: true
+        mime-types: application/json,application/xml,text/html,text/xml,text/plain
+spring:
+    profiles:
+        active: dev
+    datasource:
+        url: jdbc:mysql://localhost:3306/im_mall?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+#        url: jdbc:mysql://rdsave1o67m1ido6gwp6public.mysql.rds.aliyuncs.com/im_mall?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8
+#        username: microball
+        username: root
+#        password: 2wsx@WSX#EDC
+        password: 123456
+        hikari:
+            minimum-idle: 5
+            maximum-pool-size: 30
+            auto-commit: true
+            idle-timeout: 30000
+            max-lifetime: 1800000
+            connection-timeout: 30000
+            connection-test-query: SELECT 1
+    jpa:
+        database: MySQL
+        database_platform: org.hibernate.dialect.MySQL5InnoDBDialect
+        hibernate:
+            ddl_auto: update
+        properties:
+            hibernate:
+                enable_lazy_load_no_trans: true
+    redis:
+        host: 127.0.0.1
+        port: 6379
+        lettuce:
+            pool:
+                max_active: 8
+                max_idle: 8
+                min_idle: 0
+    servlet:
+        multipart:
+            max_file_size: 100MB
+            max_request_size: 100MB
+jwt:
+    secret: XvAD0kboD76Dpebm
+    header: Authorization
+    expiration: 2592000 #30days
+    route:
+        authentication:
+            path: /auth
+            refresh: /refresh
+#wx:
+#    mp:
+#        app_id: wx2375cba2eec2c479
+#        app_secret: 28e4829124860d9ef9e2f32aeefd1111
+#    miniapp:
+#        app_id: wx6517cbf58115c508
+#        app_secret: 8af0e8ba28ffddfb7e574e6c7cb6aaf1
+#        msg_token: msgToken
+#        msg_aes_key: aesKey
+#        msg_format: JSON
+#    pay:
+#        appId: wx2375cba2eec2c479
+#        mchId: 1529090291
+#        mchKey: uDusnGcUqYyWqsBdmvuioxDhtgZErwtu
+#        subAppId: #服务商模式下的子商户公众账号ID
+#        subMchId: #服务商模式下的子商户号
+#        keyPath: classpath:/cert/apiclient_cert.p12
+#        notifyUrl: http://zmj.izouma.com/wx/payNotify
+#        refundNotifyUrl: http://zmj.izouma.com/wx/refundNotify
+storage:
+    provider: aliyun
+    local_path: /var/www/upload/
+aliyun:
+    access-key-id: PXzJyah5rZfWHIIH
+    access-key-secret: e1MS6j0wypXJrw8CM0hObZu8qKbfah
+    oss-end-point: oss-cn-hangzhou.aliyuncs.com
+    oss-bucket-name: ticket-exchange
+    oss-domain: https://ticket-exchange.oss-cn-hangzhou.aliyuncs.com
+---
+
+spring:
+    profiles: test
+
+---
+
+spring:
+    profiles: prod
+

BIN
target/classes/com/izouma/immall/Application.class


BIN
target/classes/com/izouma/immall/annotations/Searchable.class


BIN
target/classes/com/izouma/immall/config/Constants$Regex.class


BIN
target/classes/com/izouma/immall/config/Constants.class


BIN
target/classes/com/izouma/immall/config/DateConfig$1.class


BIN
target/classes/com/izouma/immall/config/DateConfig$2.class


BIN
target/classes/com/izouma/immall/config/DateConfig$3.class


BIN
target/classes/com/izouma/immall/config/DateConfig$4.class


BIN
target/classes/com/izouma/immall/config/DateConfig$5.class


BIN
target/classes/com/izouma/immall/config/DateConfig$6.class


BIN
target/classes/com/izouma/immall/config/DateConfig.class


BIN
target/classes/com/izouma/immall/config/ErrorPageConfig.class


BIN
target/classes/com/izouma/immall/config/LocalDateTimeSerializerConfig.class


BIN
target/classes/com/izouma/immall/config/RedisConfig.class


BIN
target/classes/com/izouma/immall/config/SpringSecurityAuditorAware.class


BIN
target/classes/com/izouma/immall/config/WebMvcConfig.class


BIN
target/classes/com/izouma/immall/config/WxMaConfiguration.class


BIN
target/classes/com/izouma/immall/config/WxMaProperties.class


BIN
target/classes/com/izouma/immall/config/WxMpConfiguration.class


BIN
target/classes/com/izouma/immall/config/WxMpProperties.class


BIN
target/classes/com/izouma/immall/config/WxPayConfiguration.class


BIN
target/classes/com/izouma/immall/config/WxPayProperties.class


BIN
target/classes/com/izouma/immall/converter/LongArrayConverter.class


BIN
target/classes/com/izouma/immall/converter/StringArrayConverter.class


BIN
target/classes/com/izouma/immall/converter/StringToMapConverter$1.class


BIN
target/classes/com/izouma/immall/converter/StringToMapConverter.class


BIN
target/classes/com/izouma/immall/domain/AuditedEntity.class


BIN
target/classes/com/izouma/immall/domain/BackUser$BackUserBuilder.class


BIN
target/classes/com/izouma/immall/domain/BackUser.class


BIN
target/classes/com/izouma/immall/domain/BaseEntity.class


BIN
target/classes/com/izouma/immall/domain/Invitation$InvitationBuilder.class


BIN
target/classes/com/izouma/immall/domain/Invitation.class


BIN
target/classes/com/izouma/immall/domain/Menu.class


BIN
target/classes/com/izouma/immall/domain/SmsRecord$SmsRecordBuilder.class


BIN
target/classes/com/izouma/immall/domain/SmsRecord.class


BIN
target/classes/com/izouma/immall/domain/User$UserBuilder.class


BIN
target/classes/com/izouma/immall/domain/User.class


BIN
target/classes/com/izouma/immall/domain/UserAddress$UserAddressBuilder.class


BIN
target/classes/com/izouma/immall/domain/UserAddress.class


BIN
target/classes/com/izouma/immall/dto/PageQuery.class


BIN
target/classes/com/izouma/immall/dto/gen/GenCode.class


BIN
target/classes/com/izouma/immall/dto/gen/Subtable.class


BIN
target/classes/com/izouma/immall/dto/gen/TableField.class


BIN
target/classes/com/izouma/immall/exception/AuthenticationException.class


BIN
target/classes/com/izouma/immall/exception/BusinessException.class


BIN
target/classes/com/izouma/immall/exception/GlobalExceptionHandler.class


BIN
target/classes/com/izouma/immall/mpHandler/LogHandler.class


BIN
target/classes/com/izouma/immall/repo/AuthorityRepo.class


BIN
target/classes/com/izouma/immall/repo/BackUserRepo.class


BIN
target/classes/com/izouma/immall/repo/MenuRepo.class


BIN
target/classes/com/izouma/immall/repo/SmsRecordRepo.class


BIN
target/classes/com/izouma/immall/repo/UserRepo.class


BIN
target/classes/com/izouma/immall/security/Authority$AuthorityBuilder.class


BIN
target/classes/com/izouma/immall/security/Authority$NAMES.class


BIN
target/classes/com/izouma/immall/security/Authority.class


BIN
target/classes/com/izouma/immall/security/JwtAuthenticationEntryPoint.class


BIN
target/classes/com/izouma/immall/security/JwtAuthorizationTokenFilter.class


BIN
target/classes/com/izouma/immall/security/JwtBackUser.class


BIN
target/classes/com/izouma/immall/security/JwtBackUserFactory.class


BIN
target/classes/com/izouma/immall/security/JwtTokenUtil.class


BIN
target/classes/com/izouma/immall/security/VipAuthority$NAMES.class


BIN
target/classes/com/izouma/immall/security/VipAuthority$VipAuthorityBuilder.class


BIN
target/classes/com/izouma/immall/security/VipAuthority.class


BIN
target/classes/com/izouma/immall/security/WebSecurityConfig.class


BIN
target/classes/com/izouma/immall/service/BackUserService.class


BIN
target/classes/com/izouma/immall/service/GenCodeService.class


BIN
target/classes/com/izouma/immall/service/sms/AliSmsService.class


BIN
target/classes/com/izouma/immall/service/sms/SmsService$SmsVerifyException.class


BIN
target/classes/com/izouma/immall/service/sms/SmsService.class


BIN
target/classes/com/izouma/immall/service/storage/AliStorageService.class


BIN
target/classes/com/izouma/immall/service/storage/LocalStorageService.class


BIN
target/classes/com/izouma/immall/service/storage/StorageService.class


BIN
target/classes/com/izouma/immall/utils/DateTimeUtils.class


BIN
target/classes/com/izouma/immall/utils/FileUtils.class


BIN
target/classes/com/izouma/immall/utils/JsonUtils$ArrayBuilder.class


BIN
target/classes/com/izouma/immall/utils/JsonUtils$Builder.class


Some files were not shown because too many files changed in this diff