licailing hace 5 años
padre
commit
620e10af9a

+ 42 - 0
src/main/java/com/izouma/jiashanxia/dto/UserDTO.java

@@ -0,0 +1,42 @@
+package com.izouma.jiashanxia.dto;
+
+import com.izouma.jiashanxia.domain.User;
+import com.izouma.jiashanxia.enums.Member;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@NoArgsConstructor
+public class UserDTO {
+    private Long id;
+
+    private String nickname;
+
+    private String username;
+
+    private String parentName;
+
+    private String avatar;
+
+    private LocalDateTime createdAt;
+
+    private BigDecimal amount;
+
+    @ApiModelProperty(value = "会员类型")
+    private Member member;
+
+    public UserDTO(User user, String parentName){
+        this.id = user.getId();
+        this.nickname = user.getNickname();
+        this.username = user.getUsername();
+        this.parentName = parentName;
+        this.avatar = user.getAvatar();
+        this.createdAt = user.getCreatedAt();
+        this.amount = user.getAmount();
+        this.member = user.getMember();
+    }
+}

+ 6 - 22
src/main/java/com/izouma/jiashanxia/service/UserService.java

@@ -8,8 +8,10 @@ import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.izouma.jiashanxia.config.Constants;
 import com.izouma.jiashanxia.domain.User;
+import com.izouma.jiashanxia.dto.UserDTO;
 import com.izouma.jiashanxia.enums.Member;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.dto.PromotionDTO;
@@ -28,14 +30,12 @@ import com.izouma.jiashanxia.service.storage.StorageService;
 import com.izouma.jiashanxia.utils.JpaUtils;
 import com.izouma.jiashanxia.utils.SecurityUtils;
 import lombok.AllArgsConstructor;
-import lombok.SneakyThrows;
 import lombok.extern.slf4j.Slf4j;
 import me.chanjar.weixin.common.error.WxErrorException;
 import me.chanjar.weixin.mp.api.WxMpService;
 import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken;
 import me.chanjar.weixin.mp.bean.result.WxMpUser;
 import net.coobird.thumbnailator.Thumbnails;
-import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
@@ -68,7 +68,6 @@ public class UserService {
     private final CaptchaService       captchaService;
     private final OrderInfoRepo        orderInfoRepo;
     private final CommissionRecordRepo commissionRecordRepo;
-    private final SysConfigService     sysConfigService;
 
     public Page<User> all(PageQuery pageQuery) {
         pageQuery.setSort("createdAt,desc");
@@ -193,9 +192,7 @@ public class UserService {
             // 传过来的上级
             User user1 = userRepo.findById(parent).orElse(null);
 
-            if (ObjectUtil.isNotNull(user1) && !Member.NORMAL.equals(user1.getMember())) {
-                return true;
-            }
+            return ObjectUtil.isNotNull(user1) && !Member.NORMAL.equals(user1.getMember());
         }
         return false;
     }
@@ -238,8 +235,6 @@ public class UserService {
                     .teamFounder(false)
                     .wxAuthorized(true)
                     .member(Member.NORMAL)
-//                    .promote(BigDecimal.ZERO)
-//                    .maker(BigDecimal.ZERO)
                     .withdraw(BigDecimal.ZERO)
                     .cacheAmount(BigDecimal.ZERO)
                     .build();
@@ -265,7 +260,9 @@ public class UserService {
         User user = userRepo.findById(SecurityUtils.getAuthenticatedUser().getId())
                 .orElseThrow(new BusinessException("用户不存在"));
         user.setPhone(phoneNoInfo.getPhoneNumber());
-        user.setUsername(phoneNoInfo.getPhoneNumber());
+        if (StrUtil.isNotBlank(phoneNoInfo.getPhoneNumber())){
+            user.setUsername(phoneNoInfo.getPhoneNumber());
+        }
         user = userRepo.save(user);
         String token = jwtTokenUtil.generateToken(JwtUserFactory.create(user));
         Map<String, Object> map = new HashMap<>();
@@ -320,19 +317,6 @@ public class UserService {
     移除员工:推广列表下员工的推广就会没有
     */
     public Page<PromotionDTO> myPromotion(PageQuery pageQuery, Long userId) {
-//        User parent = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
-//        return userRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
-//            List<Predicate> and = JpaUtils.toPredicates(pageQuery, User.class, root, criteriaQuery, criteriaBuilder);
-//            if (parent.getTeamFounder()) {
-//                List<User> employees = userRepo.findAllByCompanyIdAndDelFalse(parent.getCompanyId());
-//                List<Long> collect = employees.stream().map(User::getId).collect(Collectors.toList());
-//                and.add(root.get("parent").in(collect));
-//            } else {
-//                and.add(criteriaBuilder.equal(root.get("parent"), userId));
-//            }
-//            return criteriaBuilder.and(and.toArray(new Predicate[0]));
-//        }), JpaUtils.toPageRequest(pageQuery));
-
         User parent = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
         if (parent.getTeamFounder()) {
             List<User> employees = userRepo.findAllByCompanyIdAndDelFalse(parent.getCompanyId());

+ 20 - 3
src/main/java/com/izouma/jiashanxia/web/UserController.java

@@ -4,8 +4,10 @@ import cn.hutool.core.util.ObjectUtil;
 import com.izouma.jiashanxia.domain.User;
 import com.izouma.jiashanxia.dto.PageQuery;
 import com.izouma.jiashanxia.dto.PromotionDTO;
+import com.izouma.jiashanxia.dto.UserDTO;
 import com.izouma.jiashanxia.dto.UserRegister;
 import com.izouma.jiashanxia.enums.AuthorityName;
+import com.izouma.jiashanxia.enums.Member;
 import com.izouma.jiashanxia.exception.BusinessException;
 import com.izouma.jiashanxia.repo.UserRepo;
 import com.izouma.jiashanxia.security.Authority;
@@ -30,6 +32,7 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 @AllArgsConstructor
 @RestController
@@ -63,6 +66,15 @@ public class UserController extends BaseController {
         if (user.getId() != null) {
             User orig = userRepo.findById(user.getId()).orElseThrow(new BusinessException("无记录"));
             ObjUtils.merge(orig, user);
+            if (Member.NORMAL.equals(orig.getMember())) {
+                if (orig.isVip()) {
+                    orig.setVip(false);
+                }
+            } else {
+                if (!orig.isVip()) {
+                    orig.setVip(true);
+                }
+            }
             return userRepo.save(orig);
         }
         return userRepo.save(user);
@@ -83,8 +95,13 @@ public class UserController extends BaseController {
 
     @PreAuthorize("hasRole('ADMIN')")
     @PostMapping("/all")
-    public Page<User> all(@RequestBody PageQuery pageQuery) {
-        return userService.all(pageQuery);
+    public Page<UserDTO> all(@RequestBody PageQuery pageQuery) {
+        Page<User> all = userService.all(pageQuery);
+        Set<Long> parents = all.getContent().stream().map(User::getParent).collect(Collectors.toSet());
+        Map<Long, String> parentMap = userRepo.findAllById(parents)
+                .stream()
+                .collect(Collectors.toMap(User::getId, User::getNickname));
+        return all.map(user -> new UserDTO(user, parentMap.get(user.getParent())));
     }
 
     @PreAuthorize("hasAnyRole('ADMIN','WRITER')")
@@ -102,7 +119,7 @@ public class UserController extends BaseController {
     @GetMapping("/excel")
     @ResponseBody
     public void excel(HttpServletResponse response, PageQuery pageQuery) throws IOException {
-        List<User> data = all(pageQuery).getContent();
+        List<User> data = userService.all(pageQuery).getContent();
         ExcelUtils.export(response, data);
     }
 

+ 1 - 1
src/main/vue/src/views/UserEdit.vue

@@ -150,7 +150,7 @@ export default {
             id: 0,
             members: [
                 { label: '普通用户', value: 'NORMAL' },
-                { label: '达人', value: 'EXPERT' },
+                { label: '佳客', value: 'EXPERT' },
                 { label: '108将', value: 'GENERAL' },
                 { label: '创客', value: 'MAKER' },
                 { label: '全职', value: 'EMPLOYEE' },

+ 2 - 1
src/main/vue/src/views/UserList.vue

@@ -39,6 +39,7 @@
             </el-table-column>
             <el-table-column prop="amount" label="余额"> </el-table-column>
             <el-table-column prop="member" label="身份" :formatter="memberFormatter"></el-table-column>
+            <el-table-column prop="parentName" label="上级"></el-table-column>
             <el-table-column prop="createdAt" label="注册时间" show-overflow-tooltip> </el-table-column>
             <el-table-column label="操作" align="center" fixed="right">
                 <template slot-scope="{ row }">
@@ -77,7 +78,7 @@ export default {
             sortStr: 'createdAt,desc',
             members: [
                 { label: '普通用户', value: 'NORMAL' },
-                { label: '达人', value: 'EXPERT' },
+                { label: '佳客', value: 'EXPERT' },
                 { label: '108将', value: 'GENERAL' },
                 { label: '创客', value: 'MAKER' },
                 { label: '全职', value: 'EMPLOYEE' },

+ 17 - 0
src/test/java/com/izouma/jiashanxia/service/UserCouponServiceTest.java

@@ -0,0 +1,17 @@
+package com.izouma.jiashanxia.service;
+
+import com.izouma.jiashanxia.ApplicationTests;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+public class UserCouponServiceTest extends ApplicationTests {
+
+    @Autowired
+    private UserCouponService userCouponService;
+
+    @Test
+    public void getCoupon() {
+        userCouponService.getCoupon(916L,1124L);
+    }
+}

+ 6 - 0
src/test/java/com/izouma/jiashanxia/service/UserServiceTest.java

@@ -78,4 +78,10 @@ public class UserServiceTest {
         System.out.println(userService.createShareImg(1L));
 
     }
+
+    @Test
+    public void getParent() {
+        User user = userRepo.findById(1132L).orElseThrow(new BusinessException("无用户"));
+        System.out.println(userService.getParent(916L, user));
+    }
 }