Browse Source

盟主运营中心金额操作记录合并

mac 2 years ago
parent
commit
62f878f43e

+ 1 - 1
kxs-transfer/src/main/java/com/kxs/transfer/api/controller/DtsController.java

@@ -198,7 +198,7 @@ public class DtsController {
             //盟主金额变动记录表
             if ("LeaderReserveRecord".equals(dmlData.getTableName())) {
                 kxsLeaderAmountLogService.changeData(dmlData);
-                //盟主运营中心合并的新表
+                //盟主运营中心合并的新表,此表只同步盟主储蓄金
                 kxsLeaderAccountLogService.changeData(dmlData);
             }
             //盟主可提现金额变动记录表

+ 24 - 10
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/KxsLeaderAccountLogService.java

@@ -31,13 +31,15 @@ import java.util.Map;
  */
 @Service("kxsLeaderAccountLogService")
 @RequiredArgsConstructor
-public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogMapper, KxsLeaderAccountLog>{
+public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogMapper, KxsLeaderAccountLog> {
 
     private final KxsChangeTypeKindMapper kxsChangeTypeKindMapper;
 
     public void changeData(DMLData dmlData) {
         //修改的字段值
         Map<String, Object> validFieldDataMap = dmlData.getValidFieldDataMap();
+        Map<String, FieldData> fieldDataMap = dmlData.getFieldDataMap();
+
         //修改的字段
         List<String> changeFieldList = dmlData.getChangeFieldList();
         //操作的主键
@@ -50,6 +52,17 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
         if (operation.equals(OperationType.DELETE) || operation.equals(OperationType.UPDATE)) {
             return;
         }
+        //排除此表的可提现余额变动,因为另一张表已同步
+        if (fieldDataMap.get("Sort").getValue() != null) {
+            int sort = Integer.parseInt(fieldDataMap.get("Sort").getValue().toString());
+            if (sort == 12) {
+                return;
+            }
+        }
+
+        //此数据只变动储蓄金
+        leaderAccountLog.setChangeType(1);
+
         for (String field : changeFieldList) {
 
             switch (field) {
@@ -59,12 +72,9 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
                 case "SourceUserId":
                     leaderAccountLog.setSourceUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
                     break;
-                case "Sort":
-                    leaderAccountLog.setChangeType(1);
-                    break;
                 case "ChangeType":
                     int type = Integer.parseInt(validFieldDataMap.get(field).toString());
-                    if(type == 1){
+                    if (type == 1) {
                         leaderAccountLog.setKind(KindTypeEnum.SUB.getType());
                     } else {
                         leaderAccountLog.setKind(KindTypeEnum.ADD.getType());
@@ -102,8 +112,12 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
                     break;
             }
         }
-
-        if(operation.equals(OperationType.INSERT)){
+        //由于此表没有关联changeType字段,故只有通过remark查询
+        KxsChangeTypeKind kxsChangeTypeKind = kxsChangeTypeKindMapper.selectOne(Wrappers.<KxsChangeTypeKind>lambdaQuery().eq(KxsChangeTypeKind::getName, leaderAccountLog.getRemark()));
+        if (kxsChangeTypeKind != null) {
+            leaderAccountLog.setVariationType(kxsChangeTypeKind.getId());
+        }
+        if (operation.equals(OperationType.INSERT)) {
 
             // 插入数据
             baseMapper.insert(leaderAccountLog);
@@ -138,7 +152,7 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
                     int type = Integer.parseInt(validFieldDataMap.get(field).toString());
                     if (adds.contains(type)) {
                         leaderAccountLog.setKind(KindTypeEnum.ADD.getType());
-                    }else{
+                    } else {
                         leaderAccountLog.setKind(KindTypeEnum.SUB.getType());
                     }
                     leaderAccountLog.setVariationType(type);
@@ -169,7 +183,7 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
             }
         }
 
-        if(operation.equals(OperationType.INSERT)){
+        if (operation.equals(OperationType.INSERT)) {
 
             // 插入数据
             baseMapper.insert(leaderAccountLog);
@@ -242,7 +256,7 @@ public class KxsLeaderAccountLogService extends ServiceImpl<KxsLeaderAccountLogM
             }
 
             leaderAccountLog.setChangeType(0);
-            leaderAccountLog1.setKind(KindTypeEnum.ADD.getType());
+            leaderAccountLog.setKind(KindTypeEnum.ADD.getType());
             for (String field : changeFieldList) {
 
                 switch (field) {

+ 6 - 1
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsLeaderAccountLog.java

@@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.extension.activerecord.Model;
 import io.swagger.v3.oas.annotations.media.Schema;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
@@ -144,13 +146,16 @@ public class KxsLeaderAccountLog extends Model<KxsLeaderAccountLog> implements S
     private Integer dataId;
 
     /**
-     * 易月
+     * 易月
      */
+    @Schema(description = "交易月")
+    @NotNull(message = "月份不能为空")
     private Integer tradeMonth;
 
     /**
      * 交易日期
      */
+    @Schema(description = "交易日期")
     private Integer tradeDate;
 
 

+ 46 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/leader/LeaderInfoVO.java

@@ -0,0 +1,46 @@
+package com.kxs.user.api.vo.kxsapp.leader;
+
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 盟主中心-账户合计vo
+ *
+ * @author 系统
+ * @date 2024-01-03 09:39:59
+ */
+@Data
+@Schema(description = "盟主中心-账户合计返回实体")
+@Builder
+public class LeaderInfoVO implements Serializable {
+
+	@Serial
+	private static final long serialVersionUID = 1L;
+
+
+
+    /**
+     * 盟主储备金
+     */
+    @Schema(description = "盟主储备金")
+    private BigDecimal leaderReserve;
+
+    /**
+     * 盟主余额
+     */
+    @Schema(description = "盟主余额")
+    private BigDecimal leaderBalanceAmount;
+
+
+
+
+
+	
+
+}

+ 33 - 4
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/KxsLeaderController.java

@@ -1,14 +1,18 @@
 package com.kxs.user.biz.controller.kxsapp;
 
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.kxs.common.core.util.R;
-import com.kxs.common.security.annotation.Inner;
-import com.kxs.user.api.model.KxsLeader;
+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.KxsLeaderAmountLogService;
 import com.kxs.user.biz.service.KxsLeaderService;
+import com.kxs.user.biz.service.KxsUserAmountService;
+import jakarta.validation.Valid;
 import lombok.RequiredArgsConstructor;
+import org.springdoc.core.annotations.ParameterObject;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -22,5 +26,30 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("leader")
 public class KxsLeaderController {
 
+    private final KxsLeaderService kxsLeaderService;
+    private final KxsUserAmountService kxsUserAmountService;
+    private final KxsLeaderAmountLogService kxsLeaderAmountLogService;
+
+    /**
+     * 盟主信息
+     */
+    @GetMapping("info")
+    public R info(){
+
+        return R.ok(kxsUserAmountService.leaderInfo());
+    }
+
+    /**
+     * 余额日志列表
+     *
+     * @param page  页
+     * @param param 参数
+     * @return {@link R}
+     */
+    @GetMapping("accountPage")
+    public R accountPage(@ParameterObject Page<KxsLeaderAccountLog> page, @Valid @ParameterObject KxsLeaderAccountLog param){
+
+        return R.ok(kxsLeaderAmountLogService.accountPage(page, param));
+    }
 
 }

+ 11 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsLeaderAmountLogService.java

@@ -1,6 +1,9 @@
 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.user.api.model.KxsLeaderAccountLog;
 import com.kxs.user.api.model.KxsLeaderAmountLog;
 
 /**
@@ -11,5 +14,13 @@ 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);
 }
 

+ 9 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsUserAmountService.java

@@ -6,6 +6,7 @@ import com.kxs.user.api.dto.kxsapp.userAccount.PayRequestDTO;
 import com.kxs.user.api.dto.kxsapp.userAccount.RefundRequestDTO;
 import com.kxs.user.api.model.KxsUserAmount;
 import com.kxs.user.api.model.KxsUserAmountLog;
+import com.kxs.user.api.vo.kxsapp.leader.LeaderInfoVO;
 import com.kxs.user.api.vo.kxsapp.userAccount.MyAccountVO;
 
 /**
@@ -40,5 +41,13 @@ public interface KxsUserAmountService extends IService<KxsUserAmount> {
      * 退款
      */
     R refund(RefundRequestDTO req);
+
+    /**
+     * 盟主信息
+     *
+     * @return {@link LeaderInfoVO}
+     */
+    LeaderInfoVO leaderInfo();
+
 }
 

+ 9 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsLeaderAmountLogServiceImpl.java

@@ -1,6 +1,9 @@
 package com.kxs.user.biz.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.user.api.model.KxsLeaderAccountLog;
 import com.kxs.user.biz.mapper.KxsLeaderAmountLogMapper;
 import com.kxs.user.api.model.KxsLeaderAmountLog;
 import com.kxs.user.biz.service.KxsLeaderAmountLogService;
@@ -15,5 +18,11 @@ 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;
+    }
 }
 

+ 14 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsUserAmountServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.kxs.common.core.constant.enums.KindTypeEnum;
 import com.kxs.common.core.constant.enums.UserAdvanceStatusEnum;
+import com.kxs.common.core.exception.GlobalCustomerException;
 import com.kxs.common.core.util.R;
 import com.kxs.common.core.util.SysUtils;
 import com.kxs.common.mybatis.handler.MonthTableNameHandler;
@@ -16,6 +17,7 @@ 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.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;
@@ -31,6 +33,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.math.BigDecimal;
 import java.util.Objects;
+import java.util.Optional;
 
 /**
  * 用户账户表(KxsUserAmount)表服务实现类
@@ -173,6 +176,17 @@ public class KxsUserAmountServiceImpl extends ServiceImpl<KxsUserAmountMapper, K
                 .refundFee(trade.getTradeAmount()).build());
     }
 
+    @Override
+    public LeaderInfoVO leaderInfo() {
+
+        KxsUserAmount userAmount = getById(SecurityUtils.getUser().getId());
+        Optional.ofNullable(userAmount).orElseThrow(() -> new GlobalCustomerException("用户账户不存在"));
+
+        return LeaderInfoVO.builder()
+                .leaderReserve(userAmount.getLeaderReserve())
+                .leaderBalanceAmount(userAmount.getLeaderBalanceAmount()).build();
+    }
+
 
 }