Explorar el Código

代理人app开发

xuqiang hace 1 año
padre
commit
963423aa1d

+ 1 - 2
src/main/java/com/ydtech/modules/partner/dao/PartnerPartnerAccountMapper.java

@@ -13,8 +13,7 @@ import java.math.BigDecimal;
 public interface PartnerPartnerAccountMapper extends BaseMapper<PartnerPartnerAccount> {
 
 
-    @Select("SELECT SUM(history_fee) AS historyFee,SUM(cash_fee) AS cashFee,SUM(DISTINCT sum_Premium) AS sumPremium,(SELECT SUM(extract_fee)  FROM partner_partner_account WHERE user_id = #{userId}) AS extractFee  FROM partner_partner_account WHERE (user_id,grade) IN( " +
-            " SELECT user_id,grade FROM partner_user WHERE identity_status = 0  AND user_id = #{userId} )")
+    @Select("SELECT (SUM( extract_fee ) - SUM(expired_amount)) AS extractFee, SUM( history_fee ) AS historyFee, (SUM( cash_fee ) - SUM(expired_amount)) AS cashFee , SUM(expired_amount) FROM partner_partner_account WHERE  user_id = #{userId} ")
     PartnerPartnerAccount selectByUserId(String userId);
 
     @Select("SELECT cash_fee FROM partner_partner_account WHERE user_id = #{userId} AND grade = #{grade}")

+ 3 - 0
src/main/java/com/ydtech/modules/partner/dao/PartnerPremiumDetailsMapper.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ydtech.modules.partner.model.PartnerPremiumDetails;
 import org.apache.ibatis.annotations.*;
 import java.math.BigDecimal;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -46,4 +47,6 @@ public interface PartnerPremiumDetailsMapper extends BaseMapper<PartnerPremiumDe
     List<Map<String,Object>> selectCombinedStatistics(@Param("ew")QueryWrapper<PartnerPremiumDetails> wrapper);
 
 
+    @Select("SELECT SUM(extract_fee) AS commission FROM partner_premium_details WHERE user_id = #{userId} AND source = #{grade} AND create_time >= #{createTime}")
+    BigDecimal commissionAfterUserLocking(@Param("userId") String userId,@Param("grade") Integer grade,@Param("createTime") Date createTime);
 }

+ 6 - 0
src/main/java/com/ydtech/modules/partner/model/PartnerPartnerAccount.java

@@ -47,6 +47,12 @@ public class PartnerPartnerAccount {
     @ApiModelProperty(value = "可提现抽成费用")
     private BigDecimal cashFee;
 
+
+    /**
+     * 可提现抽成费用
+     */
+    private BigDecimal expiredAmount;
+
     /**
      * 创建时间
      */

+ 4 - 0
src/main/java/com/ydtech/modules/partner/model/PartnerUser.java

@@ -73,6 +73,10 @@ public class PartnerUser{
     @TableField(value = "identity_status")
     private boolean identityStatus;
 
+
+    @TableField(value = "identity_time")
+    private Date identityTime;
+
     /**
      * 降级考核时间
      */

+ 1 - 1
src/main/java/com/ydtech/modules/partner/model/vo/MyUserLevel.java

@@ -29,7 +29,7 @@ public class MyUserLevel {
     @ApiModelProperty(value = "0/1/2")
     private Integer progressBar;
 
-    private Long zeroDays;
+    private String zeroDays;
 
     @ApiModelProperty(value = "等级比例")
     private String ratio;

+ 18 - 0
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerLiftingRecordServiceImpl.java

@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.partner.dao.PartnerLiftingRecordMapper;
+import com.ydtech.modules.partner.dao.PartnerPremiumDetailsMapper;
 import com.ydtech.modules.partner.dao.PartnerRecordApperMapper;
 import com.ydtech.modules.partner.dao.PartnerUserMapper;
 import com.ydtech.modules.partner.model.PartnerLiftingRecord;
@@ -46,6 +47,9 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
     @Autowired
     private PurchaseRecordService purchaseRecordService;
 
+    @Autowired
+    private PartnerPremiumDetailsMapper detailsMapper;
+
 
     @Override
     public Map<String,Object> queryPage(PartnerLiftingRecordParam recordParam) {
@@ -337,4 +341,18 @@ public class PartnerLiftingRecordServiceImpl extends ServiceImpl<PartnerLiftingR
         record.setPurchasingTime(new Date());
         return record;
     }
+
+
+    public BigDecimal queryLockCommission(String userId, String grade){
+        PartnerUser user = partnerUserMapper.selectOne(new LambdaQueryWrapper<>(PartnerUser.class).eq(PartnerUser::getUserId, userId)
+                        .eq(PartnerUser::getGrade, grade).eq(PartnerUser::isIdentityStatus, 1));
+        if (null == user || Objects.isNull(user.getIdentityTime())){
+            return null;
+        }
+        BigDecimal commission = detailsMapper.commissionAfterUserLocking(userId,user.getGrade(),user.getIdentityTime());
+        return commission;
+    }
+
+
+
 }

+ 7 - 7
src/main/java/com/ydtech/modules/partner/service/Impl/PartnerUserServiceImpl.java

@@ -292,7 +292,7 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
             }else {
                 if (partnerUser.isIdentityStatus()){
                     overviewVo.setParentStatus("2");
-                    overviewVo.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
+                    overviewVo.setLockCommission(liftingRecordService.queryLockCommission(partnerUser.getUserId(),overviewVo.getGrade()));
                     Long difference = calculateTimeDifference(partnerUser.getUserId(), partnerUser.getGrade());
                     overviewVo.setZeroDays(difference);
                     PartnerRuleEntity rule = partnerRuleService.selectByGrade(overviewVo.getGrade());
@@ -523,9 +523,13 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     // 处理活跃用户的逻辑
     private void handleActiveUser(PartnerUser partnerUser, MyUserLevel level) {
         level.setLockingState("2");
-        level.setLockCommission(accountMapper.selectCashFee(partnerUser.getUserId(), partnerUser.getGrade()));
+        level.setLockCommission(liftingRecordService.queryLockCommission(partnerUser.getUserId(),String.valueOf(partnerUser.getGrade())));
         Long difference = calculateTimeDifference(partnerUser.getUserId(), partnerUser.getGrade());
-        level.setZeroDays(difference);
+        if (null != difference){
+            level.setZeroDays(0 == difference ? "今" : difference + "");
+        }else {
+            level.setZeroDays("99");
+        }
         Integer grade = partnerUser.getGrade();
         if (grade != 4){
             grade = grade + 1;
@@ -1356,10 +1360,6 @@ public class PartnerUserServiceImpl extends ServiceImpl<PartnerUserMapper, Partn
     @Override
     public PartnerPartnerAccount newGetFee(String userId) {
         PartnerPartnerAccount account = partnerPartnerAccountMapper.selectByUserId(userId);
-        BigDecimal invalid = expiredCommissionMapper.selectCountInvalid(userId);
-        if (null != invalid && invalid.compareTo(BigDecimal.ZERO) != 0){
-            account.setCashFee(account.getCashFee().subtract(invalid));
-        }
         return account;
     }
 

+ 3 - 0
src/main/java/com/ydtech/modules/partner/service/PartnerLiftingRecordService.java

@@ -6,6 +6,7 @@ import com.ydtech.modules.partner.model.PartnerRecordApper;
 import com.ydtech.modules.partner.model.param.LiftingRecordAudit;
 import com.ydtech.modules.partner.model.param.PartnerLiftingRecordParam;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -38,4 +39,6 @@ public interface PartnerLiftingRecordService {
 
     Date selectQueryDowngradeTime(String userId, Integer grade);
 
+    BigDecimal queryLockCommission(String userId,String grade);
+
 }

+ 1 - 0
src/main/java/com/ydtech/modules/partner/utils/ExpiredCommissionUtils.java

@@ -174,6 +174,7 @@ public class ExpiredCommissionUtils {
         }
         partnerUser.setIdentityStatus(true);
         partnerUser.setCommissionRate(null);
+        partnerUser.setIdentityTime(PartnerDateUtils.addDaysToday(new Date(),0));
         partnerUserMapper.updateById(partnerUser);
         partnerUserMapper.resetFixedRatio(partnerUser.getUserId(),user.getGrade());
         PartnerLiftingRecord liftingRecord = getLiftingRecord(partnerUser, user);

+ 9 - 3
src/main/java/com/ydtech/modules/partner/utils/TimedTaskUtils.java

@@ -69,10 +69,16 @@ public class TimedTaskUtils {
             }
             PartnerExpiredCommission commission = getExpiredCommission(record, account);
             expiredCommissionMapper.insert(commission);
-
-            account.setCashFee(BigDecimal.ZERO);
-            accountMapper.updateById( account);
+            BigDecimal lockCommission = liftingRecordService.queryLockCommission(record.getUserId(), record.getOriginalLevel());
+            if (null != lockCommission){
+                account.setExpiredAmount(account.getExpiredAmount().add(lockCommission));
+                accountMapper.updateById(account);
+            }
             liftingRecordService.updateAuditStatusById(record);
+            PartnerUser partnerUser = partnerUserMapper.selectOne(new LambdaQueryWrapper<PartnerUser>().eq(PartnerUser::getUserId, record.getUserId())
+                    .eq(PartnerUser::getGrade, record.getOriginalLevel()));
+            partnerUser.setIdentityTime(PartnerDateUtils.addDaysToday(new Date(),0));
+            partnerUserMapper.updateById(partnerUser);
         }