licailing 5 anos atrás
pai
commit
8af132c288

+ 4 - 0
src/main/java/com/izouma/jiashanxia/domain/Category.java

@@ -19,8 +19,12 @@ public class Category extends BaseEntity {
 
     private String name;
 
+    private String img;
+
     private Long parent;
 
+    private int flag;
+
     @OneToMany
     @JoinColumn(name = "parent", insertable = false, updatable = false, foreignKey = @ForeignKey(ConstraintMode.NO_CONSTRAINT))
     List<Category> children;

+ 9 - 8
src/main/java/com/izouma/jiashanxia/domain/User.java

@@ -81,14 +81,15 @@ public class User extends BaseEntity implements Serializable {
     @ApiModelProperty(value = "暂存")
     private BigDecimal cacheAmount;
 
-    @ApiModelProperty(value = "推广")
-    private BigDecimal promote;
-
-    private BigDecimal maker;
-
-    private BigDecimal general;
-
-//    private BigDecimal employeesPromote;
+//    @ApiModelProperty(value = "推广")
+//    private BigDecimal promote;
+//
+//    private BigDecimal maker;
+//
+//    private BigDecimal general;
+
+    @ApiModelProperty(value = "已提现收益")
+    private BigDecimal withdraw;
 
     private Long parent;
 

+ 1 - 0
src/main/java/com/izouma/jiashanxia/dto/StatisticDTO.java

@@ -15,5 +15,6 @@ import java.time.LocalDate;
 public class StatisticDTO {
     private Long       dayOrder;
     private BigDecimal dayFee;
+    private BigDecimal dayWithdraw;
     private LocalDate  date;
 }

+ 1 - 1
src/main/java/com/izouma/jiashanxia/enums/Member.java

@@ -6,7 +6,7 @@ public enum Member {
      */
     NORMAL,
     /*
-    达人
+    佳客
      */
     EXPERT,
     /*

+ 3 - 0
src/main/java/com/izouma/jiashanxia/repo/WithdrawRepo.java

@@ -1,6 +1,7 @@
 package com.izouma.jiashanxia.repo;
 
 import com.izouma.jiashanxia.domain.Withdraw;
+import com.izouma.jiashanxia.enums.WithdrawStatus;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Modifying;
@@ -16,4 +17,6 @@ public interface WithdrawRepo extends JpaRepository<Withdraw, Long>, JpaSpecific
     void softDelete(Long id);
 
     List<Withdraw> findAllByUserId(Long userId);
+
+    List<Withdraw> findAllByStatus(WithdrawStatus status);
 }

+ 18 - 16
src/main/java/com/izouma/jiashanxia/service/CommissionRecordService.java

@@ -176,22 +176,24 @@ public class CommissionRecordService {
             BigDecimal amount = record.getAmount();
             if (ObjectUtil.isNotEmpty(user)) {
                 user.setCacheAmount(user.getCacheAmount().subtract(amount));
-                switch (record.getTransactionType()) {
-                    case PROMOTE:
-                        user.setPromote(user.getPromote().add(amount));
-                        userRepo.save(user);
-                        break;
-                    case GENERAL:
-                        user.setGeneral(user.getGeneral().add(amount));
-                        userRepo.save(user);
-                        break;
-                    case MAKER:
-                        user.setMaker(user.getMaker().add(amount));
-                        userRepo.save(user);
-                        break;
-                    default:
-                        break;
-                }
+                user.setAmount(amount.add(user.getAmount()));
+                userRepo.save(user);
+//                switch (record.getTransactionType()) {
+//                    case PROMOTE:
+//                        user.setPromote(user.getPromote().add(amount));
+//                        userRepo.save(user);
+//                        break;
+//                    case GENERAL:
+//                        user.setGeneral(user.getGeneral().add(amount));
+//                        userRepo.save(user);
+//                        break;
+//                    case MAKER:
+//                        user.setMaker(user.getMaker().add(amount));
+//                        userRepo.save(user);
+//                        break;
+//                    default:
+//                        break;
+//                }
             }
         });
     }

+ 14 - 10
src/main/java/com/izouma/jiashanxia/service/OrderInfoService.java

@@ -144,10 +144,10 @@ public class OrderInfoService {
 
         // 用户
         User user = userRepo.findById(userId).orElseThrow(new BusinessException("无用户"));
-        if (!user.isVip()) {
-            user.setVip(true);
-            userRepo.save(user);
-        }
+//        if (!user.isVip()) {
+//            user.setVip(true);
+//            userRepo.save(user);
+//        }
 
         // 用户id和上级id相同
         if (user.getParent() != null && !userId.equals(user.getParent())) {
@@ -229,11 +229,17 @@ public class OrderInfoService {
         Package aPackage = packageRepo.findById(orderInfo.getPackageId()).orElseThrow(new BusinessException("无套餐"));
 
         User parentUser = userRepo.findById(parent).orElseThrow(new BusinessException("无用户"));
-//        Member member = parentUser.getMember();
-//        if (Member.NORMAL.equals(member) || Member.EMPLOYEE.equals(member)) {
-//            return;
-//        }
         BigDecimal amount = orderInfo.getPrice();
+
+        // 无限级找创客/108将
+        this.makerGeneralDistribution(parentUser, amount, orderInfo.getId(), userId);
+
+//        Member member = parentUser.getMember();
+        // 不成为佳客没有奖励
+        if (Member.NORMAL.equals(parentUser.getMember())) {
+            return;
+        }
+
         String transactionId = orderInfo.getId().toString();
 
         BigDecimal ratio = aPackage.getPersonalRatio0();
@@ -257,8 +263,6 @@ public class OrderInfoService {
             commissionRecordRepo.save(commissionRecord1);
         }
 
-        // 无限级找创客/108将
-        this.makerGeneralDistribution(parentUser, amount, orderInfo.getId(), userId);
         // 间推
         this.indirect(parentUser, aPackage, userId, transactionId, amount);
     }

+ 14 - 8
src/main/java/com/izouma/jiashanxia/service/StatisticService.java

@@ -1,13 +1,12 @@
 package com.izouma.jiashanxia.service;
 
 import com.izouma.jiashanxia.domain.OrderInfo;
+import com.izouma.jiashanxia.domain.Withdraw;
 import com.izouma.jiashanxia.domain.WxFee;
 import com.izouma.jiashanxia.dto.StatisticDTO;
 import com.izouma.jiashanxia.enums.OrderInfoStatus;
-import com.izouma.jiashanxia.repo.CompanyRepo;
-import com.izouma.jiashanxia.repo.OrderInfoRepo;
-import com.izouma.jiashanxia.repo.UserRepo;
-import com.izouma.jiashanxia.repo.WxFeeRepo;
+import com.izouma.jiashanxia.enums.WithdrawStatus;
+import com.izouma.jiashanxia.repo.*;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 
@@ -22,10 +21,11 @@ import java.util.Map;
 @Service
 @AllArgsConstructor
 public class StatisticService {
-    private UserRepo      userRepo;
-    private CompanyRepo   companyRepo;
-    private OrderInfoRepo orderInfoRepo;
-    private WxFeeRepo     wxFeeRepo;
+    private final UserRepo      userRepo;
+    private final CompanyRepo   companyRepo;
+    private final OrderInfoRepo orderInfoRepo;
+    private final WxFeeRepo     wxFeeRepo;
+    private final WithdrawRepo  withdrawRepo;
 
     /*
     数据总揽
@@ -53,6 +53,7 @@ public class StatisticService {
         LocalDateTime start = LocalDateTime.of(now.toLocalDate().minusDays(day - 1), LocalTime.MIN);
         List<OrderInfo> orderInfos = orderInfoRepo.findAllByPaidAtBetweenAndStatus(start, now, OrderInfoStatus.PAID);
         List<WxFee> wxFees = wxFeeRepo.findAllByCreatedAtBetween(start, now);
+        List<Withdraw> withdraws = withdrawRepo.findAllByStatus(WithdrawStatus.SUCCESS);
 
         while (day > 0) {
             LocalDateTime end = start.plusDays(1);
@@ -64,11 +65,16 @@ public class StatisticService {
                     .filter(wxFee -> !finalStart.isAfter(wxFee.getCreatedAt()) && end.isAfter(wxFee.getCreatedAt()))
                     .map(WxFee::getAmount)
                     .reduce(BigDecimal.ZERO, BigDecimal::add);
+            BigDecimal withdraw = withdraws.stream()
+                    .filter(wxFee -> !finalStart.isAfter(wxFee.getAuditTime()) && end.isAfter(wxFee.getAuditTime()))
+                    .map(Withdraw::getAmount)
+                    .reduce(BigDecimal.ZERO, BigDecimal::add);
 
             dtos.add(StatisticDTO.builder()
                     .date(finalStart.toLocalDate())
                     .dayOrder(order)
                     .dayFee(fee)
+                    .dayWithdraw(withdraw)
                     .build());
             day--;
             start = end;

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

@@ -146,9 +146,9 @@ public class UserService {
                     .teamFounder(false)
                     .sessionKey(sessionKey)
                     .member(Member.NORMAL)
-                    .promote(BigDecimal.ZERO)
-                    .maker(BigDecimal.ZERO)
-                    .general(BigDecimal.ZERO)
+//                    .promote(BigDecimal.ZERO)
+//                    .maker(BigDecimal.ZERO)
+                    .withdraw(BigDecimal.ZERO)
                     .cacheAmount(BigDecimal.ZERO)
                     .build();
             // 插入上级
@@ -230,9 +230,9 @@ public class UserService {
                     .teamFounder(false)
                     .wxAuthorized(true)
                     .member(Member.NORMAL)
-                    .promote(BigDecimal.ZERO)
-                    .maker(BigDecimal.ZERO)
-                    .general(BigDecimal.ZERO)
+//                    .promote(BigDecimal.ZERO)
+//                    .maker(BigDecimal.ZERO)
+                    .withdraw(BigDecimal.ZERO)
                     .cacheAmount(BigDecimal.ZERO)
                     .build();
             user = userRepo.save(user);
@@ -424,6 +424,7 @@ public class UserService {
             return user;
         }
         user.setMember(Member.EXPERT);
+        user.setVip(true);
         return userRepo.save(user);
     }
 

+ 4 - 2
src/main/java/com/izouma/jiashanxia/service/WithdrawService.java

@@ -100,6 +100,7 @@ public class WithdrawService {
     public void audit(Long withdrawId, Boolean pass) {
         Withdraw withdraw = withdrawRepo.findById(withdrawId).orElseThrow(new BusinessException("无提现记录"));
         LocalDateTime now = LocalDateTime.now();
+        User user = userRepo.findById(withdraw.getUserId()).orElseThrow(new BusinessException("无用户"));
         if (pass) {
             withdraw.setStatus(WithdrawStatus.SUCCESS);
             withdraw.setAuditTime(now);
@@ -109,15 +110,16 @@ public class WithdrawService {
                     .amount(withdraw.getAmount().negate())
                     .payMethod(PayMethod.YUE)
                     .transactionType(TransactionType.WITHDRAW)
-                    .transactionId("W"+withdrawId)
+                    .transactionId("W" + withdrawId)
                     .build());
             withdrawRepo.save(withdraw);
+            user.setWithdraw(withdraw.getAmount().add(user.getWithdraw()));
+            userRepo.save(user);
             return;
         }
         withdraw.setStatus(WithdrawStatus.FAIL);
         withdraw.setAuditTime(now);
         // 拒绝后加上余额
-        User user = userRepo.findById(withdraw.getUserId()).orElseThrow(new BusinessException("无用户"));
         user.setAmount(user.getAmount().add(withdraw.getAmount()));
         userRepo.save(user);
         withdrawRepo.save(withdraw);

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

@@ -191,7 +191,7 @@ public class UserController extends BaseController {
     }
 
     @PostMapping("/becomeExpert")
-    @ApiOperation("成为达人")
+    @ApiOperation("成为佳客")
     public User becomeExpert() {
         return userService.becomeExpert(SecurityUtils.getAuthenticatedUser());
     }

+ 3 - 0
src/main/vue/src/views/manage/Categories.vue

@@ -31,6 +31,9 @@
                             >
                                 <el-input v-model="menu.name"></el-input>
                             </el-form-item>
+                            <el-form-item prop="img" label="图片">
+                                <single-upload v-model="menu.img"></single-upload>
+                            </el-form-item>
                         </el-form>
                         <div slot="footer">
                             <el-button @click="dialogVisible = false">取消 </el-button>

+ 7 - 0
src/main/vue/src/widgets/RecentSales.vue

@@ -48,6 +48,13 @@ export default {
                                 backgroundColor: ['rgba(54, 162, 235, 0.2)'],
                                 borderColor: ['rgba(54, 162, 235, 1)'],
                                 borderWidth: 1
+                            },
+                            {
+                                label: '提现金额',
+                                data: res.map(i => i.dayWithdraw),
+                                backgroundColor: ['rgba(230, 162, 60, 0.2)'],
+                                borderColor: ['rgba(230, 162, 60, 1)'],
+                                borderWidth: 1
                             }
                         ]
                     };