Explorar el Código

Merge branch 'develop-debt' into develop

* develop-debt:
  添加盟主扣除日志changeType为1
  欠款分开操作
  no message
  总欠款添加新增时间
  新增创客编号搜索
  欠款扣除日志
  no message
  创客总欠款功能
  远程调用扣除创客余额
  用户欠款功能
  用户总欠款接口
mac hace 2 años
padre
commit
972e45a7b9
Se han modificado 27 ficheros con 1083 adiciones y 3 borrados
  1. 1 1
      kxs-common/kxs-common-core/src/main/resources/logback-spring.xml
  2. 7 0
      kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/feign/RemoteOldService.java
  3. 3 0
      kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsLeaderAmountLogServiceImpl.java
  4. 3 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsLeaderAmountLog.java
  5. 3 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsPartnerAmountLog.java
  6. 109 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsTotalDebt.java
  7. 129 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsTotalDebtLog.java
  8. 40 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/old/KxsMain.java
  9. 27 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/totalDebt/TotalDebtListVO.java
  10. 25 0
      kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/totalDebt/TotalDebtDetailVO.java
  11. 1 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/UserErrorTypeEnum.java
  12. 38 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/UserVariationTypeEnum.java
  13. 117 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/admin/SysTotalDebtController.java
  14. 44 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/TotalDebtController.java
  15. 17 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsTotalDebtLogMapper.java
  16. 29 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsTotalDebtMapper.java
  17. 40 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/old/KxsMainServerMapper.java
  18. 36 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/old/KxsOpServerMapper.java
  19. 15 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsTotalDebtLogService.java
  20. 57 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsTotalDebtService.java
  21. 19 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsTotalDebtLogServiceImpl.java
  22. 200 0
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsTotalDebtServiceImpl.java
  23. 32 2
      kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/task/KxsUserTaskJob.java
  24. 19 0
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsMainMapper.xml
  25. 21 0
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsOpMapper.xml
  26. 22 0
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsTotalDebtLogMapper.xml
  27. 29 0
      kxs-user/kxs-user-biz/src/main/resources/mapper/KxsTotalDebtMapper.xml

+ 1 - 1
kxs-common/kxs-common-core/src/main/resources/logback-spring.xml

@@ -81,7 +81,7 @@
 		</root>
 		</root>
 	</springProfile>
 	</springProfile>
 	<springProfile name="prod">
 	<springProfile name="prod">
-		<root level="ERROR">
+		<root level="INFO">
 			<appender-ref ref="console"/>
 			<appender-ref ref="console"/>
 			<appender-ref ref="debug"/>
 			<appender-ref ref="debug"/>
 			<appender-ref ref="error"/>
 			<appender-ref ref="error"/>

+ 7 - 0
kxs-system/kxs-system-api/src/main/java/com/kxs/system/api/feign/RemoteOldService.java

@@ -23,4 +23,11 @@ public interface RemoteOldService {
 	@PostExchange("/v1/kxsmain/tochargebackrecord/addtochargebackrecord")
 	@PostExchange("/v1/kxsmain/tochargebackrecord/addtochargebackrecord")
 	R savePosAdvance(@RequestParam Map<String, Object> param);
 	R savePosAdvance(@RequestParam Map<String, Object> param);
 
 
+	/**
+	 * 创客欠款扣除
+	 * @param param 请求实体
+	 */
+	@PostExchange("/v1/kxsmain/users/deductmakerdebts")
+	R deductMakerDebts(@RequestParam Map<String, Object> param);
+
 }
 }

+ 3 - 0
kxs-transfer/src/main/java/com/kxs/transfer/api/service/user/impl/KxsLeaderAmountLogServiceImpl.java

@@ -50,6 +50,9 @@ public class KxsLeaderAmountLogServiceImpl extends ServiceImpl<KxsLeaderAmountLo
                 case "UserId":
                 case "UserId":
                     leaderAmountLog.setUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
                     leaderAmountLog.setUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
                     break;
                     break;
+                case "SourceUserId":
+                    leaderAmountLog.setSourceUserId(Integer.parseInt(validFieldDataMap.get(field).toString()));
+                    break;
                 case "Sort":
                 case "Sort":
                     leaderAmountLog.setVariationType(Integer.parseInt(validFieldDataMap.get(field).toString()));
                     leaderAmountLog.setVariationType(Integer.parseInt(validFieldDataMap.get(field).toString()));
                     break;
                     break;

+ 3 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsLeaderAmountLog.java

@@ -120,6 +120,9 @@ public class KxsLeaderAmountLog extends Model<KxsLeaderAmountLog> implements Ser
 
 
     /**
     /**
      * 金额类型
      * 金额类型
+     * 盟主储蓄金增减单=11
+     * 可提现余额增减单=12
+     * 盟主储蓄金减少可提现余额增加=13
      */
      */
     @Schema(description = "金额类型")
     @Schema(description = "金额类型")
     private Integer variationType;
     private Integer variationType;

+ 3 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsPartnerAmountLog.java

@@ -97,6 +97,9 @@ public class KxsPartnerAmountLog extends Model<KxsPartnerAmountLog> implements S
 
 
     /**
     /**
      * 金额类型
      * 金额类型
+     * 可提现余额增减=0
+     * 可使用余额增减=1
+     * 关键分仓额度增减=2
      */
      */
     @Schema(description = "金额类型")
     @Schema(description = "金额类型")
     private Integer variationType;
     private Integer variationType;

+ 109 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsTotalDebt.java

@@ -0,0 +1,109 @@
+package com.kxs.user.api.model;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+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.DecimalMax;
+import jakarta.validation.constraints.DecimalMin;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户总欠款表(KxsTotalDebt)表实体类
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsTotalDebt extends Model<KxsTotalDebt> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 删除标记,0未删除,1已删除
+     */
+    @Schema(description = "删除标记,0未删除,1已删除")
+    private Integer delFlag;
+
+
+    /**
+     * 版本
+     */
+    @Schema(description = "版本")
+    private Integer version;
+
+
+    /**
+     * 创客ID
+     */
+    @Schema(description = "创客ID")
+    @NotNull(message = "创客ID不能为空")
+    @DecimalMin("1")
+    private Integer userId;
+
+
+    /**
+     * 总欠款
+     */
+    @Schema(description = "总欠款")
+    @NotNull(message = "总欠款不能为空")
+    @DecimalMin("1")
+    private BigDecimal totalDebt;
+
+
+    /**
+     * 创建人
+     */
+    @Schema(description = "创建人")
+    private String createBy;
+
+
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    private String remark;
+
+
+
+
+}
+

+ 129 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/KxsTotalDebtLog.java

@@ -0,0 +1,129 @@
+package com.kxs.user.api.model;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+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 lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 用户总欠款变动日志表(KxsTotalDebtLog)表实体类
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsTotalDebtLog extends Model<KxsTotalDebtLog> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+    /**
+     * 新增时间
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Schema(description = "新增时间")
+    private LocalDateTime createTime;
+
+
+    /**
+     * 更新时间
+     */
+    @TableField(fill = FieldFill.UPDATE)
+    @Schema(description = "更新时间")
+    private LocalDateTime updateTime;
+
+
+    /**
+     * 删除标记,0未删除,1已删除
+     */
+    @Schema(description = "删除标记,0未删除,1已删除")
+    private Integer delFlag;
+
+
+    /**
+     * 版本
+     */
+    @Schema(description = "版本")
+    private Integer version;
+
+
+    /**
+     * 用户ID
+     */
+    @Schema(description = "用户ID")
+    private Integer userId;
+
+
+    /**
+     * 变动前金额
+     */
+    @Schema(description = "变动前金额")
+    private BigDecimal beforeAmount;
+
+
+    /**
+     * 变动后金额
+     */
+    @Schema(description = "变动后金额")
+    private BigDecimal afterAmount;
+
+
+    /**
+     * 操作金额
+     */
+    @Schema(description = "操作金额")
+    private BigDecimal amount;
+
+
+    /**
+     * 变动类型 
+     */
+    @Schema(description = "变动类型 ")
+    private Integer changeType;
+
+
+    /**
+     * 日志类型 add新增 sub减少
+     */
+    @Schema(description = "日志类型 add新增 sub减少")
+    private String kind;
+
+
+    /**
+     * 备注
+     */
+    @Schema(description = "备注")
+    private String remark;
+
+
+    /**
+     * 操作人
+     */
+    @Schema(description = "操作人")
+    private String createBy;
+
+
+
+
+}
+

+ 40 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/model/old/KxsMain.java

@@ -0,0 +1,40 @@
+package com.kxs.user.api.model.old;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+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 lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 客小爽老库
+ *
+ * @author 系统
+ * @since 2024-02-22 15:39:26
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class KxsMain extends Model<KxsMain> implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+    
+    /**
+     * 主键ID
+     */
+    @Schema(description = "主键ID")
+    @TableId(type = IdType.AUTO)
+    private Integer id;
+
+
+
+}
+

+ 27 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/admin/totalDebt/TotalDebtListVO.java

@@ -0,0 +1,27 @@
+package com.kxs.user.api.vo.admin.totalDebt;
+
+import com.kxs.user.api.model.KxsTotalDebt;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 总欠款明细 VO
+ *
+ * @author 没秃顶的码农
+ * @date 2024-03-22
+ */
+@Data
+@Schema(description = "总欠款明细")
+@Builder
+public class TotalDebtListVO extends KxsTotalDebt implements Serializable {
+
+    private String username;
+
+    private String userCode;
+
+
+}

+ 25 - 0
kxs-user/kxs-user-api/src/main/java/com/kxs/user/api/vo/kxsapp/totalDebt/TotalDebtDetailVO.java

@@ -0,0 +1,25 @@
+package com.kxs.user.api.vo.kxsapp.totalDebt;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Builder;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 总欠款明细 VO
+ *
+ * @author 没秃顶的码农
+ * @date 2024-03-22
+ */
+@Data
+@Schema(description = "总欠款明细")
+@Builder
+public class TotalDebtDetailVO implements Serializable {
+
+    private BigDecimal totalDebt;
+
+    private LocalDateTime createTime;
+}

+ 1 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/UserErrorTypeEnum.java

@@ -26,6 +26,7 @@ public enum UserErrorTypeEnum {
 	WITHDRAW_MAX(-1, "单笔提现金额不能超过50000"),
 	WITHDRAW_MAX(-1, "单笔提现金额不能超过50000"),
 	NOT_SUFFICIENT_FUNDS(-1, "可提现余额不足"),
 	NOT_SUFFICIENT_FUNDS(-1, "可提现余额不足"),
 	USER_LIMIT_ERROR(-1, "用户预发额度初始化失败"),
 	USER_LIMIT_ERROR(-1, "用户预发额度初始化失败"),
+	USER_HAS_ADDED_AN_AMOUNT_OWED(-1, "此用户已添加欠款"),
 	CLIENT_NULL(-1, "客户端查询异常,请检查数据库链接");
 	CLIENT_NULL(-1, "客户端查询异常,请检查数据库链接");
 
 
 	private final int code;
 	private final int code;

+ 38 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/constant/enums/UserVariationTypeEnum.java

@@ -0,0 +1,38 @@
+package com.kxs.user.biz.constant.enums;
+
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+
+/**
+ * 交易类型枚举
+ *
+ * @author 没秃顶的码农
+ * @date 2024-03-25
+ */
+@Getter
+@RequiredArgsConstructor
+public enum UserVariationTypeEnum {
+
+    /**
+     * 盟主金额变动记录类型
+     */
+    LEADER_SAVINGS(11, "盟主储蓄金增减单"),
+    LEADER_WITHDRAW_BALANCE(12, "可提现余额增减单"),
+    LEADER_SAVINGS_WITHDRAW (13, "盟主储蓄金减少可提现余额增加"),
+    /**
+     * 合伙人进入变动类型
+     */
+    PARTNER_WITHDRAW_BALANCE(0, "可提现余额增减单"),
+    PARTNER_USE_BALANCE(1, "可使用余额增减"),
+    PARTNER_STORE_AMOUNT (2, "关键分仓额度增减");
+
+    /**
+     * 类型
+     */
+    private final Integer type;
+
+    /**
+     * 描述
+     */
+    private final String description;
+}

+ 117 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/admin/SysTotalDebtController.java

@@ -0,0 +1,117 @@
+package com.kxs.user.biz.controller.admin;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+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.system.api.model.SysPublicParam;
+import com.kxs.user.api.model.KxsTotalDebt;
+import com.kxs.user.api.model.KxsTotalDebtLog;
+import com.kxs.user.biz.service.KxsTotalDebtLogService;
+import com.kxs.user.biz.service.KxsTotalDebtService;
+import jakarta.validation.Valid;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.time.LocalDateTime;
+import java.util.List;
+
+/**
+ * 用户模块(SysTotalDebt)控制层
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:45
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("sysTotalDebt")
+public class SysTotalDebtController {
+
+    /**
+     * KXS总偿债额
+     * 服务对象
+     */
+    private final KxsTotalDebtService kxsTotalDebtService;
+    private final KxsTotalDebtLogService kxsTotalDebtLogService;
+
+
+
+    /**
+     * 账户管理-总欠款管理-列表
+     *
+     * @param page 分页对象
+     * @param keyword 关键字
+     * @return 账户管理-总欠款管理-列表
+     */
+    @GetMapping("/page")
+    public R page(Page<KxsTotalDebt> page, @RequestParam(value = "keyword",required = false) String keyword) {
+
+        return R.ok(kxsTotalDebtService.getByPage(page, keyword));
+    }
+
+
+    /**
+     * 账户管理-总欠款管理-新增
+     *
+     * @param param 实体对象
+     * @return 账户管理-总欠款管理-新增
+     */
+    @PostMapping("/add")
+//    @PreAuthorize("@pms.hasPermission('sys_debt_add')")
+    public R add(@RequestBody @Valid KxsTotalDebt param) {
+
+        return kxsTotalDebtService.addData(param);
+    }
+
+
+    /**
+     * 账户管理-总欠款管理-修改
+     *
+     * @param param 实体对象
+     * @return 账户管理-总欠款管理-修改
+     */
+    @PostMapping("/update")
+//    @PreAuthorize("@pms.hasPermission('sys_debt_edit')")
+    public R update(@RequestBody @Valid KxsTotalDebt param) {
+
+        return R.ok(kxsTotalDebtService.update(Wrappers.<KxsTotalDebt>lambdaUpdate()
+                .eq(KxsTotalDebt::getId, param.getId())
+                .set(KxsTotalDebt::getTotalDebt, param.getTotalDebt())
+                .set(KxsTotalDebt::getRemark, param.getRemark())
+                .set(KxsTotalDebt::getUpdateTime, LocalDateTime.now())));
+    }
+
+
+    /**
+     * 账户管理-总欠款管理-删除
+     *
+     * @param idsList id集合
+     * @return 账户管理-总欠款管理-删除
+     */
+    @PostMapping("/remove")
+//    @PreAuthorize("@pms.hasPermission('sys_debt_del')")
+    public R remove(@RequestBody List<Integer> idsList) {
+        return R.ok(kxsTotalDebtService.removeBatchByIds(idsList));
+    }
+
+
+    /**
+     * 账户管理-总欠款管理-欠款明细列表
+     *
+     * @return 账户管理-总欠款管理-欠款明细列表
+     */
+    @GetMapping("/{pagelog}")
+//    @PreAuthorize("@pms.hasPermission('sys_debtlog_del')")
+    public R pagelog(Page<KxsTotalDebtLog> page, KxsTotalDebtLog param) {
+
+        return R.ok(kxsTotalDebtLogService.page(page, new QueryWrapper<>(param)));
+    }
+
+
+
+
+
+}
+

+ 44 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/controller/kxsapp/TotalDebtController.java

@@ -0,0 +1,44 @@
+package com.kxs.user.biz.controller.kxsapp;
+
+import com.kxs.common.core.util.R;
+import com.kxs.user.biz.service.KxsTotalDebtService;
+import lombok.RequiredArgsConstructor;
+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;
+
+/**
+ * 用户相关(TotalDebt)控制层
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:44
+ */
+@RestController
+@RequiredArgsConstructor
+@RequestMapping("totalDebt")
+public class TotalDebtController {
+
+    /**
+     * 服务对象
+     */
+    private final KxsTotalDebtService kxsTotalDebtService;
+
+
+
+    /**
+     * 盟主中心-盟主提现-欠款金额
+     *
+     * @return 盟主中心-盟主提现-欠款金额
+     */
+    @GetMapping("/detail")
+    public R detail() {
+        return R.ok(kxsTotalDebtService.detail());
+    }
+
+
+
+
+
+}
+

+ 17 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsTotalDebtLogMapper.java

@@ -0,0 +1,17 @@
+package com.kxs.user.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.user.api.model.KxsTotalDebtLog;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 用户总欠款变动日志表(KxsTotalDebtLog)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+@Mapper
+public interface KxsTotalDebtLogMapper extends BaseMapper<KxsTotalDebtLog> {
+
+}
+

+ 29 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/KxsTotalDebtMapper.java

@@ -0,0 +1,29 @@
+package com.kxs.user.biz.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.kxs.user.api.model.KxsTotalDebt;
+import com.kxs.user.api.vo.admin.totalDebt.TotalDebtListVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 用户总欠款表(KxsTotalDebt)表数据库访问层
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+@Mapper
+public interface KxsTotalDebtMapper extends BaseMapper<KxsTotalDebt> {
+
+    /**
+     * 分页
+     *
+     * @param page  页
+     * @param keyword 参数
+     * @return {@link IPage}<{@link TotalDebtListVO}>
+     */
+    IPage<TotalDebtListVO> getByPage(Page<KxsTotalDebt> page, @Param("keyword") String keyword);
+}
+

+ 40 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/old/KxsMainServerMapper.java

@@ -0,0 +1,40 @@
+package com.kxs.user.biz.mapper.old;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.user.api.model.KxsLeaderAmountLog;
+import com.kxs.user.api.model.KxsUserAmount;
+import com.kxs.user.api.model.old.KxsMain;
+import com.kxs.user.api.model.old.TradeDaySummary;
+import com.kxs.user.api.vo.kxsapp.userLevel.AmountDetailVO;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+
+/**
+ * 操作老库
+ *
+ * @author 没秃顶的码农
+ * @date 2024-02-27
+ */
+@Mapper
+@DS("KxsProfitServer")
+public interface KxsMainServerMapper extends BaseMapper<KxsMain> {
+
+
+    /**
+     * 扣除盟主可提现额度
+     *
+     * @param userAmount 用户数量
+     */
+    void deductMakerUseAmount(KxsUserAmount userAmount);
+
+    /**
+     * 添加金额日志
+     *
+     * @param kxsLeaderAmountLog KXS 领导金额日志
+     */
+    void addAmountLog(KxsLeaderAmountLog kxsLeaderAmountLog);
+
+}

+ 36 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/mapper/old/KxsOpServerMapper.java

@@ -0,0 +1,36 @@
+package com.kxs.user.biz.mapper.old;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.kxs.user.api.model.KxsPartner;
+import com.kxs.user.api.model.KxsPartnerAmountLog;
+import com.kxs.user.api.model.old.KxsMain;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 操作运营中心老库
+ *
+ * @author 没秃顶的码农
+ * @date 2024-02-27
+ */
+@Mapper
+@DS("KxsOpServer")
+public interface KxsOpServerMapper extends BaseMapper<KxsMain> {
+
+
+    /**
+     * 扣除运营中心可提现额度
+     *
+     * @param partner 伙伴
+     */
+    void deductMakerUseAmount(KxsPartner partner);
+
+    /**
+     * 添加金额日志
+     *
+     * @param kxsPartner          KXS合伙人
+     * @param partnerDeductAmount 扣款金额
+     */
+    void addAmountLog(@Param("param") KxsPartner kxsPartner, @Param("amountLog") KxsPartnerAmountLog partnerDeductAmount);
+}

+ 15 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsTotalDebtLogService.java

@@ -0,0 +1,15 @@
+package com.kxs.user.biz.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.kxs.user.api.model.KxsTotalDebtLog;
+
+/**
+ * 用户总欠款变动日志表(KxsTotalDebtLog)表服务接口
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+public interface KxsTotalDebtLogService extends IService<KxsTotalDebtLog> {
+
+}
+

+ 57 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/KxsTotalDebtService.java

@@ -0,0 +1,57 @@
+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.common.core.util.R;
+import com.kxs.user.api.model.KxsTotalDebt;
+import com.kxs.user.api.vo.admin.totalDebt.TotalDebtListVO;
+import com.kxs.user.api.vo.kxsapp.totalDebt.TotalDebtDetailVO;
+
+/**
+ * 用户总欠款表(KxsTotalDebt)表服务接口
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+public interface KxsTotalDebtService extends IService<KxsTotalDebt> {
+
+    /**
+     * 添加数据
+     *
+     * @param param 参数
+     * @return {@link R}
+     */
+    R addData(KxsTotalDebt param);
+
+    /**
+     * app查询总欠款
+     *
+     * @return {@link TotalDebtDetailVO}
+     */
+    TotalDebtDetailVO detail();
+
+    /**
+     * 扣除合伙人可提现额度
+     *
+     * @param kxsTotalDebt KXS总债务
+     */
+    void deductPartnerAmount(KxsTotalDebt kxsTotalDebt);
+
+    /**
+     * 扣除盟主可提现额度
+     *
+     * @param kxsTotalDebt KXS总债务
+     */
+    void deductLeaderAmount(KxsTotalDebt kxsTotalDebt);
+
+    /**
+     * 分页
+     *
+     * @param page  页
+     * @param param 参数
+     * @return {@link IPage}<{@link TotalDebtListVO}>
+     */
+    IPage<TotalDebtListVO> getByPage(Page<KxsTotalDebt> page, String param);
+}
+

+ 19 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsTotalDebtLogServiceImpl.java

@@ -0,0 +1,19 @@
+package com.kxs.user.biz.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.kxs.user.biz.mapper.KxsTotalDebtLogMapper;
+import com.kxs.user.api.model.KxsTotalDebtLog;
+import com.kxs.user.biz.service.KxsTotalDebtLogService;
+import org.springframework.stereotype.Service;
+
+/**
+ * 用户总欠款变动日志表(KxsTotalDebtLog)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+@Service("kxsTotalDebtLogService")
+public class KxsTotalDebtLogServiceImpl extends ServiceImpl<KxsTotalDebtLogMapper, KxsTotalDebtLog> implements KxsTotalDebtLogService {
+
+}
+

+ 200 - 0
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/service/impl/KxsTotalDebtServiceImpl.java

@@ -0,0 +1,200 @@
+package com.kxs.user.biz.service.impl;
+
+import cn.hutool.core.util.NumberUtil;
+import com.baomidou.dynamic.datasource.annotation.DSTransactional;
+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.common.core.constant.enums.KindTypeEnum;
+import com.kxs.common.core.util.R;
+import com.kxs.common.security.util.SecurityUtils;
+import com.kxs.system.api.feign.RemoteOldService;
+import com.kxs.user.api.model.*;
+import com.kxs.user.api.vo.admin.totalDebt.TotalDebtListVO;
+import com.kxs.user.api.vo.kxsapp.totalDebt.TotalDebtDetailVO;
+import com.kxs.user.biz.constant.enums.UserErrorTypeEnum;
+import com.kxs.user.biz.constant.enums.UserVariationTypeEnum;
+import com.kxs.user.biz.mapper.*;
+import com.kxs.user.biz.mapper.old.KxsMainServerMapper;
+import com.kxs.user.biz.mapper.old.KxsOpServerMapper;
+import com.kxs.user.biz.service.KxsTotalDebtService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+
+/**
+ * 用户总欠款表(KxsTotalDebt)表服务实现类
+ *
+ * @author 系统
+ * @since 2024-03-22 11:05:40
+ */
+@Service("kxsTotalDebtService")
+@Slf4j
+@RequiredArgsConstructor
+public class KxsTotalDebtServiceImpl extends ServiceImpl<KxsTotalDebtMapper, KxsTotalDebt> implements KxsTotalDebtService {
+
+    private final KxsUserMapper kxsUserMapper;
+
+    private final KxsLeaderMapper kxsLeaderMapper;
+
+    private final KxsUserAmountMapper kxsUserAmountMapper;
+
+    private final KxsPartnerMapper kxsPartnerMapper;
+
+    private final RemoteOldService remoteOldService;
+
+    private final KxsTotalDebtLogMapper kxsTotalDebtLogMapper;
+
+    private final KxsMainServerMapper kxsMainServerMapper;
+
+    private final KxsOpServerMapper kxsOpServerMapper;
+
+
+    @Override
+    public IPage<TotalDebtListVO> getByPage(Page<KxsTotalDebt> page, String keyword) {
+
+        return baseMapper.getByPage(page, keyword);
+    }
+
+    @Override
+    public R addData(KxsTotalDebt param) {
+        KxsUser user = kxsUserMapper.selectById(param.getUserId());
+        if(user == null){
+            return R.failed(UserErrorTypeEnum.USER_NOT_EXIST.getDescription());
+        }
+        KxsTotalDebt totalDebt = getOne(Wrappers.<KxsTotalDebt>lambdaQuery().eq(KxsTotalDebt::getUserId, param.getUserId()));
+        if(totalDebt != null){
+            return R.failed(UserErrorTypeEnum.USER_HAS_ADDED_AN_AMOUNT_OWED.getDescription());
+        }
+        return R.ok(save(param));
+    }
+
+    @Override
+    public TotalDebtDetailVO detail() {
+
+        Long userId = SecurityUtils.getUser().getId();
+        KxsTotalDebt kxsTotalDebt = baseMapper.selectOne(Wrappers.<KxsTotalDebt>lambdaQuery().eq(KxsTotalDebt::getUserId, userId));
+
+        return kxsTotalDebt == null ? null : TotalDebtDetailVO.builder()
+                .createTime(kxsTotalDebt.getCreateTime())
+                .totalDebt(kxsTotalDebt.getTotalDebt())
+                .build();
+    }
+
+    @Override
+    @DSTransactional(rollbackFor = Exception.class)
+    public void deductPartnerAmount(KxsTotalDebt kxsTotalDebt) {
+        //执行之前先查询一次
+        KxsTotalDebt totalDebt = baseMapper.selectById(kxsTotalDebt.getId());
+        if(totalDebt.getTotalDebt().compareTo(BigDecimal.ZERO) <= 0){
+            return;
+        }
+        //查询该创客合伙人/盟主是否有客提现余额,如果大于0则扣除
+        KxsPartner kxsPartner = kxsPartnerMapper.selectOne(Wrappers.<KxsPartner>lambdaQuery().eq(KxsPartner::getUserId, kxsTotalDebt.getUserId()));
+        if(kxsPartner == null){
+            return;
+        }
+        //合伙人扣除金额
+        BigDecimal partnerDeductAmount;
+        if(kxsPartner.getWithdrawalAmount().compareTo(BigDecimal.ZERO) > 0){
+            //扣除可提现余额
+            if(kxsTotalDebt.getTotalDebt().compareTo(kxsPartner.getWithdrawalAmount()) >= 0){
+                partnerDeductAmount = kxsPartner.getWithdrawalAmount();
+            }else{
+                partnerDeductAmount = kxsTotalDebt.getTotalDebt();
+            }
+            //扣除可提现额度
+            kxsPartner.setWithdrawalAmount(NumberUtil.sub(kxsPartner.getWithdrawalAmount(),partnerDeductAmount));
+            //扣除运营中心可提现额度
+            kxsOpServerMapper.deductMakerUseAmount(kxsPartner);
+            //增加运营中心额度日志
+            KxsPartnerAmountLog kxsPartnerAmountLog = new KxsPartnerAmountLog();
+            kxsPartnerAmountLog.setUserId(kxsTotalDebt.getUserId());
+            kxsPartnerAmountLog.setBeforeAmount(NumberUtil.add(kxsPartner.getWithdrawalAmount(),partnerDeductAmount));
+            kxsPartnerAmountLog.setAfterAmount(kxsPartner.getWithdrawalAmount());
+            kxsPartnerAmountLog.setAmount(partnerDeductAmount);
+            kxsPartnerAmountLog.setKind(KindTypeEnum.SUB.getType());
+            kxsPartnerAmountLog.setRemark("预借款项还款");
+            kxsPartnerAmountLog.setVariationType(UserVariationTypeEnum.PARTNER_WITHDRAW_BALANCE.getType());
+            kxsOpServerMapper.addAmountLog(kxsPartner, kxsPartnerAmountLog);
+            //扣除成功 增加欠款日志
+            BigDecimal afterAmount = NumberUtil.sub(kxsTotalDebt.getTotalDebt(),partnerDeductAmount);
+            //添加日志
+            KxsTotalDebtLog kxsTotalDebtLog = new KxsTotalDebtLog();
+            kxsTotalDebtLog.setKind(KindTypeEnum.SUB.getType());
+            kxsTotalDebtLog.setUserId(kxsTotalDebt.getUserId());
+            kxsTotalDebtLog.setRemark("扣除合伙人可提现余额");
+            kxsTotalDebtLog.setCreateBy("系统");
+            kxsTotalDebtLog.setAmount(partnerDeductAmount);
+            kxsTotalDebtLog.setAfterAmount(afterAmount);
+            kxsTotalDebtLog.setBeforeAmount(kxsTotalDebt.getTotalDebt());
+            kxsTotalDebtLogMapper.insert(kxsTotalDebtLog);
+
+            kxsTotalDebt.setTotalDebt(afterAmount);
+            baseMapper.updateById(kxsTotalDebt);
+            log.info("扣除合伙人:{}可提现额度:{}", kxsPartner.getUserId(), partnerDeductAmount);
+
+        }
+    }
+    @Override
+    @DSTransactional(rollbackFor = Exception.class)
+    public void deductLeaderAmount(KxsTotalDebt kxsTotalDebt) {
+
+        KxsTotalDebt totalDebt = baseMapper.selectById(kxsTotalDebt.getId());
+        if(totalDebt.getTotalDebt().compareTo(BigDecimal.ZERO) <= 0){
+            return;
+        }
+        //查询该创客合伙人/盟主是否有客提现余额,如果大于0则扣除
+        KxsLeader kxsLeader = kxsLeaderMapper.selectOne(Wrappers.<KxsLeader>lambdaQuery().eq(KxsLeader::getUserId, kxsTotalDebt.getUserId()));
+        if(kxsLeader == null){
+            return;
+        }
+        KxsUserAmount userAmount = kxsUserAmountMapper.selectOne(Wrappers.<KxsUserAmount>lambdaQuery().eq(KxsUserAmount::getUserId, kxsTotalDebt.getUserId()));
+        //合伙人扣除金额
+        BigDecimal leaderDeductAmount;
+        if(userAmount != null && userAmount.getLeaderBalanceAmount().compareTo(BigDecimal.ZERO) > 0){
+            //扣除可提现余额
+            if(kxsTotalDebt.getTotalDebt().compareTo(userAmount.getLeaderBalanceAmount()) >= 0){
+                leaderDeductAmount = userAmount.getLeaderBalanceAmount();
+            }else{
+                leaderDeductAmount = kxsTotalDebt.getTotalDebt();
+            }
+            //扣除盟主可提现额度
+            userAmount.setLeaderBalanceAmount(NumberUtil.sub(userAmount.getLeaderBalanceAmount(),leaderDeductAmount));
+            kxsMainServerMapper.deductMakerUseAmount(userAmount);
+            //添加盟主扣除日志
+            KxsLeaderAmountLog kxsLeaderAmountLog = new KxsLeaderAmountLog();
+            kxsLeaderAmountLog.setUserId(kxsTotalDebt.getUserId());
+            kxsLeaderAmountLog.setRemark("预借款项还款");
+            kxsLeaderAmountLog.setBeforeAmount(NumberUtil.add(userAmount.getLeaderBalanceAmount(), leaderDeductAmount));
+            kxsLeaderAmountLog.setAfterAmount(userAmount.getLeaderBalanceAmount());
+            kxsLeaderAmountLog.setAmount(leaderDeductAmount);
+            kxsLeaderAmountLog.setKind(KindTypeEnum.SUB.getType());
+            kxsLeaderAmountLog.setVariationType(UserVariationTypeEnum.LEADER_WITHDRAW_BALANCE.getType());
+            kxsMainServerMapper.addAmountLog(kxsLeaderAmountLog);
+
+            //扣除盟主余额成功
+            BigDecimal afterAmount = kxsTotalDebt.getTotalDebt().subtract(leaderDeductAmount);
+
+            //添加欠款日志
+            KxsTotalDebtLog kxsTotalDebtLog = new KxsTotalDebtLog();
+            kxsTotalDebtLog.setKind(KindTypeEnum.SUB.getType());
+            kxsTotalDebtLog.setUserId(kxsTotalDebt.getUserId());
+            kxsTotalDebtLog.setRemark("扣除盟主可提现余额");
+            kxsTotalDebtLog.setCreateBy("系统");
+            kxsTotalDebtLog.setAmount(leaderDeductAmount);
+            kxsTotalDebtLog.setAfterAmount(afterAmount);
+            kxsTotalDebtLog.setBeforeAmount(kxsTotalDebt.getTotalDebt());
+            kxsTotalDebtLogMapper.insert(kxsTotalDebtLog);
+
+            kxsTotalDebt.setTotalDebt(afterAmount);
+            baseMapper.updateById(kxsTotalDebt);
+            log.info("扣除盟主:{}可提现额度:{}", kxsTotalDebt.getUserId(), leaderDeductAmount);
+        }
+    }
+
+}
+

+ 32 - 2
kxs-user/kxs-user-biz/src/main/java/com/kxs/user/biz/task/KxsUserTaskJob.java

@@ -2,15 +2,28 @@ package com.kxs.user.biz.task;
 
 
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
+import cn.hutool.core.util.NumberUtil;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.kxs.common.core.util.R;
 import com.kxs.common.security.annotation.Inner;
 import com.kxs.common.security.annotation.Inner;
-import com.kxs.user.biz.mapper.KxsUserAmountLogMapper;
+import com.kxs.system.api.feign.RemoteOldService;
+import com.kxs.user.api.model.KxsLeader;
+import com.kxs.user.api.model.KxsPartner;
+import com.kxs.user.api.model.KxsTotalDebt;
+import com.kxs.user.api.model.KxsUserAmount;
+import com.kxs.user.biz.mapper.*;
+import com.kxs.user.biz.service.KxsTotalDebtService;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import java.math.BigDecimal;
 import java.time.LocalDate;
 import java.time.LocalDate;
+import java.util.HashMap;
+import java.util.List;
 
 
 /**
 /**
  * 产品模块定时任务
  * 产品模块定时任务
@@ -26,6 +39,11 @@ public class KxsUserTaskJob {
 
 
     private final KxsUserAmountLogMapper kxsUserAmountLogMapper;
     private final KxsUserAmountLogMapper kxsUserAmountLogMapper;
 
 
+    private final KxsTotalDebtService kxsTotalDebtService;
+
+    private final KxsTotalDebtMapper kxsTotalDebtMapper;
+
+    private final static String PREFIX_TABLE_NAME = "kxs_user_amount_log_";
 
 
     /**
     /**
      * 自动表创建任务
      * 自动表创建任务
@@ -35,7 +53,7 @@ public class KxsUserTaskJob {
     @GetMapping("/automaticTableCreationTasks")
     @GetMapping("/automaticTableCreationTasks")
     public void automaticTableCreationTasks() {
     public void automaticTableCreationTasks() {
         String thisMoth = LocalDateTimeUtil.format(LocalDate.now().plusMonths(1L), DatePattern.SIMPLE_MONTH_PATTERN);
         String thisMoth = LocalDateTimeUtil.format(LocalDate.now().plusMonths(1L), DatePattern.SIMPLE_MONTH_PATTERN);
-        kxsUserAmountLogMapper.automaticTableCreationTasks("kxs_user_amount_log_" +thisMoth);
+        kxsUserAmountLogMapper.automaticTableCreationTasks(PREFIX_TABLE_NAME + thisMoth);
     }
     }
 
 
     /**
     /**
@@ -46,5 +64,17 @@ public class KxsUserTaskJob {
     @Inner
     @Inner
     @GetMapping("/userTotalDebtSub")
     @GetMapping("/userTotalDebtSub")
     public void userTotalDebtSub(){
     public void userTotalDebtSub(){
+        //查询所有欠款大于0的创客
+        List<KxsTotalDebt> kxsTotalDebts = kxsTotalDebtMapper.selectList(Wrappers.<KxsTotalDebt>lambdaQuery().gt(KxsTotalDebt::getTotalDebt, BigDecimal.ZERO));
+        for (KxsTotalDebt kxsTotalDebt : kxsTotalDebts) {
+            //扣除合伙人
+            kxsTotalDebtService.deductPartnerAmount(kxsTotalDebt);
+            //扣除盟主
+            kxsTotalDebtService.deductLeaderAmount(kxsTotalDebt);
+
+        }
+
     }
     }
+
+
 }
 }

+ 19 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsMainMapper.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kxs.user.biz.mapper.old.KxsMainServerMapper">
+
+    <insert id="addAmountLog">
+        insert into LeaderReserveRecord (UserId, ChangeType, Remark, AfterAmt, BeforeAmt, ChangeAmt, sort, TradeDate, TradeMonth, CreateDate)
+        values (#{userId}, 1, #{remark}, #{afterAmount},#{beforeAmount},#{amount}, #{variationType}, DATE_FORMAT(NOW(), '%Y%m%d'), DATE_FORMAT(NOW(), '%Y%m'), NOW())
+    </insert>
+
+    <update id="deductMakerUseAmount">
+        update UserAccount
+        <set>
+            <if test="userId != null">
+                LeaderBalanceAmount = #{leaderBalanceAmount},
+            </if>
+        </set>
+        where UserId = #{userId}
+    </update>
+</mapper>

+ 21 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsOpMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kxs.user.biz.mapper.old.KxsOpServerMapper">
+
+
+    <insert id="addAmountLog">
+        insert into AmountRecord (UserId, SeoDescription, UseAmount, AfterValidForGetAmount, AfterTotalAmt, AfterValidAmount, CreateDate)
+        values (#{amountLog.userId}, #{amountLog.remark}, #{amountLog.amount},#{param.withdrawalAmount},#{param.amount}, #{param.storeAmount}, NOW())
+    </insert>
+
+
+    <update id="deductMakerUseAmount">
+        update UserAccount
+        <set>
+            <if test="userId != null">
+                ValidForGetAmount = #{withdrawalAmount},
+            </if>
+        </set>
+        where UserId = #{userId}
+    </update>
+</mapper>

+ 22 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsTotalDebtLogMapper.xml

@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kxs.user.biz.mapper.KxsTotalDebtLogMapper">
+
+    <resultMap type="com.kxs.user.api.model.KxsTotalDebtLog" id="KxsTotalDebtLogMap">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="del_flag" property="delFlag" />
+        <result column="version" property="version" />
+        <result column="user_id" property="userId" />
+        <result column="before_amount" property="beforeAmount" />
+        <result column="after_amount" property="afterAmount" />
+        <result column="amount" property="amount" />
+        <result column="change_type" property="changeType" />
+        <result column="kind" property="kind" />
+        <result column="remark" property="remark" />
+        <result column="create_by" property="createBy" />
+
+    </resultMap>
+
+</mapper>

+ 29 - 0
kxs-user/kxs-user-biz/src/main/resources/mapper/KxsTotalDebtMapper.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.kxs.user.biz.mapper.KxsTotalDebtMapper">
+
+    <resultMap type="com.kxs.user.api.model.KxsTotalDebt" id="KxsTotalDebtMap">
+        <result column="id" property="id" />
+        <result column="create_time" property="createTime" />
+        <result column="update_time" property="updateTime" />
+        <result column="del_flag" property="delFlag" />
+        <result column="version" property="version" />
+        <result column="user_id" property="userId" />
+        <result column="total_debt" property="totalDebt" />
+        <result column="create_by" property="createBy" />
+        <result column="remark" property="remark" />
+
+    </resultMap>
+    <select id="getByPage" resultType="com.kxs.user.api.vo.admin.totalDebt.TotalDebtListVO">
+        SELECT a.*, u.username, u.user_code from kxs_total_debt a
+        LEFT JOIN kxs_user u on a.user_id = u.id
+        <where>
+            a.del_flag = 0
+            <if test="keyword != null and keyword !=''">
+               and (u.username like concat('%' #{keyword} '%') or u.phone like concat('%' #{keyword} '%') or u.user_code like concat('%' #{keyword} '%'))
+            </if>
+
+        </where>
+    </select>
+
+</mapper>