Browse Source

盟主中心接口,同步数据优化

mac 2 years ago
parent
commit
73446048ad

+ 43 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/dto/kxsapp/leader/LeaderAccountLogDTO.java

@@ -0,0 +1,43 @@
+package com.kxs.system.api.dto.kxsapp.leader;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 余额日志列表 DTO
+ *
+ * @author 没秃顶的码农
+ * @date 2024-07-18
+ */
+@Data
+public class LeaderAccountLogDTO {
+
+    /**
+     * 金额类型
+     */
+    @Schema(description = "金额类型")
+    private List<Integer> variationType;
+
+    /**
+     * 日志类型 add新增 sub减少
+     */
+    @Schema(description = "日志类型 add新增 sub减少")
+    private String kind;
+
+    /**
+     * 变动类型 可提现余额增减=0 储蓄金增减=1
+     */
+    @Schema(description = "变动类型 可提现余额增减=0 储蓄金增减=1")
+    private Integer changeType;
+
+    /**
+     * 交易月
+     */
+    @Schema(description = "交易月")
+    @NotNull(message = "月份不能为空")
+    private Integer tradeMonth;
+
+}

+ 11 - 4
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/KxsLeaderAccountLogService.java

@@ -2,6 +2,7 @@ package com.kxs.transfer.api.service.user;
 
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.StrUtil;
 import com.aliyun.dts.subscribe.clients.record.OperationType;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -99,11 +100,13 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
                     leaderAccountLog.setAfterAmount(new BigDecimal(validFieldDataMap.get(field).toString()));
                     break;
                 case "Remark":
-                    leaderAccountLog.setRemark(validFieldDataMap.get(field).toString());
-                    break;
-                case "SeoKeyword":
                     leaderAccountLog.setVariationCause(validFieldDataMap.get(field).toString());
                     break;
+                case "SeoKeyword", "SeoDescription":
+                    if(StrUtil.isNotBlank(validFieldDataMap.get(field).toString())){
+                        leaderAccountLog.setRemark(validFieldDataMap.get(field).toString());
+                    }
+                    break;
                 case "CreateDate":
                     leaderAccountLog.setCreateTime(LocalDateTimeUtil.parse(validFieldDataMap.get(field).toString(), DatePattern.NORM_DATETIME_PATTERN));
                     break;
@@ -182,7 +185,11 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
                     break;
             }
         }
-
+        //由于此表没有关联changeType字段,故只有通过remark查询
+        KxsChangeTypeKind kxsChangeTypeKind = kxsChangeTypeKindMapper.selectById(leaderAccountLog.getVariationType());
+        if (kxsChangeTypeKind != null) {
+            leaderAccountLog.setVariationCause(kxsChangeTypeKind.getName());
+        }
         if (operation.equals(OperationType.INSERT)) {
 
             // 插入数据

+ 5 - 3
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsLeaderController.java

@@ -2,9 +2,11 @@ package com.kxs.user.biz.controller.kxsapp;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.R;
+import com.kxs.system.api.dto.kxsapp.leader.LeaderAccountLogDTO;
 import com.kxs.user.api.dto.kxsapp.user.UserMyUserListDTO;
 import com.kxs.user.api.model.KxsLeaderAccountLog;
 import com.kxs.user.api.model.KxsUser;
+import com.kxs.user.biz.service.KxsLeaderAccountLogService;
 import com.kxs.user.biz.service.KxsLeaderAmountLogService;
 import com.kxs.user.biz.service.KxsLeaderService;
 import com.kxs.user.biz.service.KxsUserAmountService;
@@ -28,7 +30,7 @@ public class KxsLeaderController {
 
     private final KxsLeaderService kxsLeaderService;
     private final KxsUserAmountService kxsUserAmountService;
-    private final KxsLeaderAmountLogService kxsLeaderAmountLogService;
+    private final KxsLeaderAccountLogService kxsLeaderAccountLogService;
 
     /**
      * 盟主信息
@@ -47,9 +49,9 @@ public class KxsLeaderController {
      * @return {@link R}
      */
     @GetMapping("accountPage")
-    public R accountPage(@ParameterObject Page<KxsLeaderAccountLog> page, @Valid @ParameterObject KxsLeaderAccountLog param){
+    public R accountPage(@ParameterObject Page<KxsLeaderAccountLog> page, @Valid @ParameterObject LeaderAccountLogDTO param){
 
-        return R.ok(kxsLeaderAmountLogService.accountPage(page, param));
+        return R.ok(kxsLeaderAccountLogService.accountPage(page, param));
     }
 
 }

+ 12 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsLeaderAccountLogService.java

@@ -1,7 +1,11 @@
 package com.kxs.user.biz.service;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.system.api.dto.kxsapp.leader.LeaderAccountLogDTO;
 import com.kxs.user.api.model.KxsLeaderAccountLog;
+import jakarta.validation.Valid;
 
 /**
  * 盟主金额变动记录(KxsLeaderAccountLog)表服务接口
@@ -11,5 +15,13 @@ import com.kxs.user.api.model.KxsLeaderAccountLog;
  */
 public interface KxsLeaderAccountLogService extends IService<KxsLeaderAccountLog> {
 
+    /**
+     * 余额日志列表
+     *
+     * @param page  页
+     * @param param 参数
+     * @return {@link IPage}<{@link KxsLeaderAccountLog}>
+     */
+    IPage<KxsLeaderAccountLog> accountPage(Page<KxsLeaderAccountLog> page, LeaderAccountLogDTO param);
 }
 

+ 1 - 8
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsLeaderAmountLogService.java

@@ -14,13 +14,6 @@ import com.kxs.user.api.model.KxsLeaderAmountLog;
  */
 public interface KxsLeaderAmountLogService extends IService<KxsLeaderAmountLog> {
 
-    /**
-     * 余额日志列表
-     *
-     * @param page  页
-     * @param param 参数
-     * @return {@link IPage}<{@link KxsLeaderAccountLog}>
-     */
-    IPage<KxsLeaderAccountLog> accountPage(Page<KxsLeaderAccountLog> page, KxsLeaderAccountLog param);
+
 }
 

+ 21 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsLeaderAccountLogServiceImpl.java

@@ -1,9 +1,16 @@
 package com.kxs.user.biz.service.impl;
 
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.system.api.dto.kxsapp.leader.LeaderAccountLogDTO;
 import com.kxs.user.biz.mapper.KxsLeaderAccountLogMapper;
 import com.kxs.user.api.model.KxsLeaderAccountLog;
 import com.kxs.user.biz.service.KxsLeaderAccountLogService;
+import jakarta.validation.Valid;
 import org.springframework.stereotype.Service;
 
 /**
@@ -15,5 +22,19 @@ import org.springframework.stereotype.Service;
 @Service("kxsLeaderAccountLogService")
 public class KxsLeaderAccountLogServiceImpl extends ServiceImpl<KxsLeaderAccountLogMapper, KxsLeaderAccountLog> implements KxsLeaderAccountLogService {
 
+    @Override
+    public IPage<KxsLeaderAccountLog> accountPage(Page<KxsLeaderAccountLog> page, LeaderAccountLogDTO param) {
+
+        LambdaQueryWrapper<KxsLeaderAccountLog> query = Wrappers.lambdaQuery();
+        query.eq(KxsLeaderAccountLog::getTradeMonth, param.getTradeMonth());
+        if(StrUtil.isNotBlank(param.getKind())){
+            query.eq(KxsLeaderAccountLog::getKind, param.getKind());
+        }
+        if(param.getChangeType() != null){
+            query.eq(KxsLeaderAccountLog::getChangeType, param.getChangeType());
+        }
+
+        return page(page, query);
+    }
 }
 

+ 2 - 7
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsLeaderAmountLogServiceImpl.java

@@ -1,6 +1,8 @@
 package com.kxs.user.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.user.api.model.KxsLeaderAccountLog;
@@ -17,12 +19,5 @@ import org.springframework.stereotype.Service;
  */
 @Service("kxsLeaderAmountLogService")
 public class KxsLeaderAmountLogServiceImpl extends ServiceImpl<KxsLeaderAmountLogMapper, KxsLeaderAmountLog> implements KxsLeaderAmountLogService {
-
-    @Override
-    public IPage<KxsLeaderAccountLog> accountPage(Page<KxsLeaderAccountLog> page, KxsLeaderAccountLog param) {
-
-
-        return null;
-    }
 }
 

+ 13 - 5
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAmountServiceImpl.java

@@ -13,14 +13,12 @@ import com.kxs.common.security.util.SecurityUtils;
 import com.kxs.system.api.util.ParamResolver;
 import com.kxs.user.api.dto.kxsapp.userAccount.PayRequestDTO;
 import com.kxs.user.api.dto.kxsapp.userAccount.RefundRequestDTO;
-import com.kxs.user.api.model.KxsUserAdvance;
-import com.kxs.user.api.model.KxsUserAmount;
-import com.kxs.user.api.model.KxsUserAmountLog;
-import com.kxs.user.api.model.KxsUserYuepay;
+import com.kxs.user.api.model.*;
 import com.kxs.user.api.vo.kxsapp.leader.LeaderInfoVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.MyAccountVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.RefundResVO;
 import com.kxs.user.biz.constant.enums.YuePayStatusEnum;
+import com.kxs.user.biz.mapper.KxsPartnerMapper;
 import com.kxs.user.biz.mapper.KxsUserAdvanceMapper;
 import com.kxs.user.biz.mapper.KxsUserAmountMapper;
 import com.kxs.user.biz.service.KxsUserAmountLogService;
@@ -32,6 +30,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
+import java.time.LocalDateTime;
 import java.util.Objects;
 import java.util.Optional;
 
@@ -51,6 +50,8 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
 
     private final KxsUserAdvanceMapper kxsUserAdvanceMapper;
 
+    private final KxsPartnerMapper kxsPartnerMapper;
+
     @Override
     public MyAccountVO myAccount() {
 
@@ -178,10 +179,17 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
 
     @Override
     public LeaderInfoVO leaderInfo() {
+        Long userId = SecurityUtils.getUser().getId();
 
-        KxsUserAmount userAmount = getById(SecurityUtils.getUser().getId());
+        KxsUserAmount userAmount = getById(userId);
         Optional.ofNullable(userAmount).orElseThrow(() -> new GlobalCustomerException("用户账户不存在"));
 
+        KxsPartner kxsPartner = kxsPartnerMapper.selectByPartner(userId.intValue(), LocalDateTime.now());
+        if(kxsPartner != null){
+            userAmount.setLeaderBalanceAmount(userAmount.getLeaderBalanceAmount().add(kxsPartner.getWithdrawalAmount()));
+            userAmount.setLeaderReserve(userAmount.getLeaderReserve().add(kxsPartner.getAmount()));
+        }
+
         return LeaderInfoVO.builder()
                 .leaderReserve(userAmount.getLeaderReserve())
                 .leaderBalanceAmount(userAmount.getLeaderBalanceAmount()).build();