fanzherong_v 1 miesiąc temu
rodzic
commit
4b4edbc113
36 zmienionych plików z 1959 dodań i 0 usunięć
  1. 28 0
      snowy-admin-web/src/api/biz/bizServiceCustomerAccountApi.js
  2. 28 0
      snowy-admin-web/src/api/biz/bizServiceCustomerApi.js
  3. 28 0
      snowy-admin-web/src/api/biz/bizServiceCustomerFlowApi.js
  4. 119 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/controller/BizServiceCustomerController.java
  5. 59 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/entity/BizServiceCustomer.java
  6. 34 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/enums/BizServiceCustomerEnum.java
  7. 25 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/mapper/BizServiceCustomerMapper.java
  8. 5 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/mapper/mapping/BizServiceCustomerMapper.xml
  9. 57 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerAddParam.java
  10. 62 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerEditParam.java
  11. 35 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerIdParam.java
  12. 51 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerPageParam.java
  13. 80 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/service/BizServiceCustomerService.java
  14. 94 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/service/impl/BizServiceCustomerServiceImpl.java
  15. 119 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/controller/BizServiceCustomerAccountController.java
  16. 67 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/entity/BizServiceCustomerAccount.java
  17. 34 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/enums/BizServiceCustomerAccountEnum.java
  18. 25 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/mapper/BizServiceCustomerAccountMapper.java
  19. 5 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/mapper/mapping/BizServiceCustomerAccountMapper.xml
  20. 62 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountAddParam.java
  21. 67 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountEditParam.java
  22. 35 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountIdParam.java
  23. 51 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountPageParam.java
  24. 80 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/service/BizServiceCustomerAccountService.java
  25. 94 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/service/impl/BizServiceCustomerAccountServiceImpl.java
  26. 119 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/controller/BizServiceCustomerFlowController.java
  27. 59 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/entity/BizServiceCustomerFlow.java
  28. 34 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/enums/BizServiceCustomerFlowEnum.java
  29. 25 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/mapper/BizServiceCustomerFlowMapper.java
  30. 5 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/mapper/mapping/BizServiceCustomerFlowMapper.xml
  31. 54 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowAddParam.java
  32. 59 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowEditParam.java
  33. 35 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowIdParam.java
  34. 51 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowPageParam.java
  35. 80 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/service/BizServiceCustomerFlowService.java
  36. 94 0
      snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/service/impl/BizServiceCustomerFlowServiceImpl.java

+ 28 - 0
snowy-admin-web/src/api/biz/bizServiceCustomerAccountApi.js

@@ -0,0 +1,28 @@
+import { baseRequest } from '@/utils/request'
+
+const request = (url, ...arg) => baseRequest(`/biz/bizservicecustomeraccount/` + url, ...arg)
+
+/**
+ * 服务客户账号管理Api接口管理器
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+export default {
+	// 获取服务客户账号管理分页
+	bizServiceCustomerAccountPage(data) {
+		return request('page', data, 'get')
+	},
+	// 提交服务客户账号管理表单 edit为true时为编辑,默认为新增
+	bizServiceCustomerAccountSubmitForm(data, edit = false) {
+		return request(edit ? 'edit' : 'add', data)
+	},
+	// 删除服务客户账号管理
+	bizServiceCustomerAccountDelete(data) {
+		return request('delete', data)
+	},
+	// 获取服务客户账号管理详情
+	bizServiceCustomerAccountDetail(data) {
+		return request('detail', data, 'get')
+	}
+}

+ 28 - 0
snowy-admin-web/src/api/biz/bizServiceCustomerApi.js

@@ -0,0 +1,28 @@
+import { baseRequest } from '@/utils/request'
+
+const request = (url, ...arg) => baseRequest(`/biz/bizservicecustomer/` + url, ...arg)
+
+/**
+ * 服务客户管理Api接口管理器
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+export default {
+	// 获取服务客户管理分页
+	bizServiceCustomerPage(data) {
+		return request('page', data, 'get')
+	},
+	// 提交服务客户管理表单 edit为true时为编辑,默认为新增
+	bizServiceCustomerSubmitForm(data, edit = false) {
+		return request(edit ? 'edit' : 'add', data)
+	},
+	// 删除服务客户管理
+	bizServiceCustomerDelete(data) {
+		return request('delete', data)
+	},
+	// 获取服务客户管理详情
+	bizServiceCustomerDetail(data) {
+		return request('detail', data, 'get')
+	}
+}

+ 28 - 0
snowy-admin-web/src/api/biz/bizServiceCustomerFlowApi.js

@@ -0,0 +1,28 @@
+import { baseRequest } from '@/utils/request'
+
+const request = (url, ...arg) => baseRequest(`/biz/bizservicecustomerflow/` + url, ...arg)
+
+/**
+ * 服务客户资金流水Api接口管理器
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+export default {
+	// 获取服务客户资金流水分页
+	bizServiceCustomerFlowPage(data) {
+		return request('page', data, 'get')
+	},
+	// 提交服务客户资金流水表单 edit为true时为编辑,默认为新增
+	bizServiceCustomerFlowSubmitForm(data, edit = false) {
+		return request(edit ? 'edit' : 'add', data)
+	},
+	// 删除服务客户资金流水
+	bizServiceCustomerFlowDelete(data) {
+		return request('delete', data)
+	},
+	// 获取服务客户资金流水详情
+	bizServiceCustomerFlowDetail(data) {
+		return request('detail', data, 'get')
+	}
+}

+ 119 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/controller/BizServiceCustomerController.java

@@ -0,0 +1,119 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.biz.modular.bizservicecustomer.entity.BizServiceCustomer;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerPageParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.service.BizServiceCustomerService;
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 服务客户管理控制器
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ */
+@Tag(name = "服务客户管理控制器")
+@RestController
+@Validated
+public class BizServiceCustomerController {
+
+    @Resource
+    private BizServiceCustomerService bizServiceCustomerService;
+
+    /**
+     * 获取服务客户管理分页
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    @Operation(summary = "获取服务客户管理分页")
+    @SaCheckPermission("/biz/bizservicecustomer/page")
+    @GetMapping("/biz/bizservicecustomer/page")
+    public CommonResult<Page<BizServiceCustomer>> page(BizServiceCustomerPageParam bizServiceCustomerPageParam) {
+        return CommonResult.data(bizServiceCustomerService.page(bizServiceCustomerPageParam));
+    }
+
+    /**
+     * 添加服务客户管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    @Operation(summary = "添加服务客户管理")
+    @CommonLog("添加服务客户管理")
+    @PostMapping("/biz/bizservicecustomer/add")
+    public CommonResult<String> add(@RequestBody @Valid BizServiceCustomerAddParam bizServiceCustomerAddParam) {
+        bizServiceCustomerService.add(bizServiceCustomerAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑服务客户管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    @Operation(summary = "编辑服务客户管理")
+    @CommonLog("编辑服务客户管理")
+    @PostMapping("/biz/bizservicecustomer/edit")
+    public CommonResult<String> edit(@RequestBody @Valid BizServiceCustomerEditParam bizServiceCustomerEditParam) {
+        bizServiceCustomerService.edit(bizServiceCustomerEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除服务客户管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    @Operation(summary = "删除服务客户管理")
+    @CommonLog("删除服务客户管理")
+    @PostMapping("/biz/bizservicecustomer/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   List<BizServiceCustomerIdParam> bizServiceCustomerIdParamList) {
+        bizServiceCustomerService.delete(bizServiceCustomerIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取服务客户管理详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    @Operation(summary = "获取服务客户管理详情")
+    @GetMapping("/biz/bizservicecustomer/detail")
+    public CommonResult<BizServiceCustomer> detail(@Valid BizServiceCustomerIdParam bizServiceCustomerIdParam) {
+        return CommonResult.data(bizServiceCustomerService.detail(bizServiceCustomerIdParam));
+    }
+}

+ 59 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/entity/BizServiceCustomer.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.common.pojo.CommonEntity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户管理实体
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Getter
+@Setter
+@TableName("biz_service_customer")
+public class BizServiceCustomer extends CommonEntity {
+
+    /** 主键ID */
+    @TableId
+    @Schema(description = "主键ID")
+    private String id;
+
+    /** 客户名称 */
+    @Schema(description = "客户名称")
+    private String name;
+
+    /** 联系人 */
+    @Schema(description = "联系人")
+    private String contact;
+
+    /** 手机号 */
+    @Schema(description = "手机号")
+    private String phone;
+
+    /** 客户地址 */
+    @Schema(description = "客户地址")
+    private String address;
+
+    /** 备注 */
+    @Schema(description = "备注")
+    private String remark;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/enums/BizServiceCustomerEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.enums;
+
+import lombok.Getter;
+
+/**
+ * 服务客户管理枚举
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Getter
+public enum BizServiceCustomerEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    BizServiceCustomerEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/mapper/BizServiceCustomerMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.biz.modular.bizservicecustomer.entity.BizServiceCustomer;
+
+/**
+ * 服务客户管理Mapper接口
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+public interface BizServiceCustomerMapper extends BaseMapper<BizServiceCustomer> {
+}

+ 5 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/mapper/mapping/BizServiceCustomerMapper.xml

@@ -0,0 +1,5 @@
+<?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="vip.xiaonuo.biz.modular.bizservicecustomer.mapper.BizServiceCustomerMapper">
+
+</mapper>

+ 57 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerAddParam.java

@@ -0,0 +1,57 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户管理添加参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerAddParam {
+
+    /** 客户名称 */
+    @Schema(description = "客户名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "name不能为空")
+    private String name;
+
+    /** 联系人 */
+    @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "contact不能为空")
+    private String contact;
+
+    /** 手机号 */
+    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "phone不能为空")
+    private String phone;
+
+    /** 客户地址 */
+    @Schema(description = "客户地址")
+    private String address;
+
+    /** 备注 */
+    @Schema(description = "备注")
+    private String remark;
+
+}

+ 62 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerEditParam.java

@@ -0,0 +1,62 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户管理编辑参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerEditParam {
+
+    /** 主键ID */
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 客户名称 */
+    @Schema(description = "客户名称", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "name不能为空")
+    private String name;
+
+    /** 联系人 */
+    @Schema(description = "联系人", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "contact不能为空")
+    private String contact;
+
+    /** 手机号 */
+    @Schema(description = "手机号", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "phone不能为空")
+    private String phone;
+
+    /** 客户地址 */
+    @Schema(description = "客户地址")
+    private String address;
+
+    /** 备注 */
+    @Schema(description = "备注")
+    private String remark;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 服务客户管理Id参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerIdParam {
+
+    /** 主键ID */
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/param/BizServiceCustomerPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户管理查询参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerPageParam {
+
+    /** 当前页 */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @Schema(description = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+}

+ 80 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/service/BizServiceCustomerService.java

@@ -0,0 +1,80 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.biz.modular.bizservicecustomer.entity.BizServiceCustomer;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerPageParam;
+
+import java.util.List;
+
+/**
+ * 服务客户管理Service接口
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+public interface BizServiceCustomerService extends IService<BizServiceCustomer> {
+
+    /**
+     * 获取服务客户管理分页
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    Page<BizServiceCustomer> page(BizServiceCustomerPageParam bizServiceCustomerPageParam);
+
+    /**
+     * 添加服务客户管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    void add(BizServiceCustomerAddParam bizServiceCustomerAddParam);
+
+    /**
+     * 编辑服务客户管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    void edit(BizServiceCustomerEditParam bizServiceCustomerEditParam);
+
+    /**
+     * 删除服务客户管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    void delete(List<BizServiceCustomerIdParam> bizServiceCustomerIdParamList);
+
+    /**
+     * 获取服务客户管理详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     */
+    BizServiceCustomer detail(BizServiceCustomerIdParam bizServiceCustomerIdParam);
+
+    /**
+     * 获取服务客户管理详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:27
+     **/
+    BizServiceCustomer queryEntity(String id);
+}

+ 94 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomer/service/impl/BizServiceCustomerServiceImpl.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomer.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.biz.modular.bizservicecustomer.entity.BizServiceCustomer;
+import vip.xiaonuo.biz.modular.bizservicecustomer.mapper.BizServiceCustomerMapper;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.param.BizServiceCustomerPageParam;
+import vip.xiaonuo.biz.modular.bizservicecustomer.service.BizServiceCustomerService;
+
+import java.util.List;
+
+/**
+ * 服务客户管理Service接口实现类
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:27
+ **/
+@Service
+public class BizServiceCustomerServiceImpl extends ServiceImpl<BizServiceCustomerMapper, BizServiceCustomer> implements BizServiceCustomerService {
+
+    @Override
+    public Page<BizServiceCustomer> page(BizServiceCustomerPageParam bizServiceCustomerPageParam) {
+        QueryWrapper<BizServiceCustomer> queryWrapper = new QueryWrapper<BizServiceCustomer>().checkSqlInjection();
+        if(ObjectUtil.isAllNotEmpty(bizServiceCustomerPageParam.getSortField(), bizServiceCustomerPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(bizServiceCustomerPageParam.getSortOrder());
+            queryWrapper.orderBy(true, bizServiceCustomerPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(bizServiceCustomerPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(BizServiceCustomer::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(BizServiceCustomerAddParam bizServiceCustomerAddParam) {
+        BizServiceCustomer bizServiceCustomer = BeanUtil.toBean(bizServiceCustomerAddParam, BizServiceCustomer.class);
+        this.save(bizServiceCustomer);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(BizServiceCustomerEditParam bizServiceCustomerEditParam) {
+        BizServiceCustomer bizServiceCustomer = this.queryEntity(bizServiceCustomerEditParam.getId());
+        BeanUtil.copyProperties(bizServiceCustomerEditParam, bizServiceCustomer);
+        this.updateById(bizServiceCustomer);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<BizServiceCustomerIdParam> bizServiceCustomerIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(bizServiceCustomerIdParamList, BizServiceCustomerIdParam::getId));
+    }
+
+    @Override
+    public BizServiceCustomer detail(BizServiceCustomerIdParam bizServiceCustomerIdParam) {
+        return this.queryEntity(bizServiceCustomerIdParam.getId());
+    }
+
+    @Override
+    public BizServiceCustomer queryEntity(String id) {
+        BizServiceCustomer bizServiceCustomer = this.getById(id);
+        if(ObjectUtil.isEmpty(bizServiceCustomer)) {
+            throw new CommonException("服务客户管理不存在,id值为:{}", id);
+        }
+        return bizServiceCustomer;
+    }
+}

+ 119 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/controller/BizServiceCustomerAccountController.java

@@ -0,0 +1,119 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.entity.BizServiceCustomerAccount;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountPageParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.service.BizServiceCustomerAccountService;
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 服务客户账号管理控制器
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ */
+@Tag(name = "服务客户账号管理控制器")
+@RestController
+@Validated
+public class BizServiceCustomerAccountController {
+
+    @Resource
+    private BizServiceCustomerAccountService bizServiceCustomerAccountService;
+
+    /**
+     * 获取服务客户账号管理分页
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    @Operation(summary = "获取服务客户账号管理分页")
+    @SaCheckPermission("/biz/bizservicecustomeraccount/page")
+    @GetMapping("/biz/bizservicecustomeraccount/page")
+    public CommonResult<Page<BizServiceCustomerAccount>> page(BizServiceCustomerAccountPageParam bizServiceCustomerAccountPageParam) {
+        return CommonResult.data(bizServiceCustomerAccountService.page(bizServiceCustomerAccountPageParam));
+    }
+
+    /**
+     * 添加服务客户账号管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    @Operation(summary = "添加服务客户账号管理")
+    @CommonLog("添加服务客户账号管理")
+    @PostMapping("/biz/bizservicecustomeraccount/add")
+    public CommonResult<String> add(@RequestBody @Valid BizServiceCustomerAccountAddParam bizServiceCustomerAccountAddParam) {
+        bizServiceCustomerAccountService.add(bizServiceCustomerAccountAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑服务客户账号管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    @Operation(summary = "编辑服务客户账号管理")
+    @CommonLog("编辑服务客户账号管理")
+    @PostMapping("/biz/bizservicecustomeraccount/edit")
+    public CommonResult<String> edit(@RequestBody @Valid BizServiceCustomerAccountEditParam bizServiceCustomerAccountEditParam) {
+        bizServiceCustomerAccountService.edit(bizServiceCustomerAccountEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除服务客户账号管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    @Operation(summary = "删除服务客户账号管理")
+    @CommonLog("删除服务客户账号管理")
+    @PostMapping("/biz/bizservicecustomeraccount/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   List<BizServiceCustomerAccountIdParam> bizServiceCustomerAccountIdParamList) {
+        bizServiceCustomerAccountService.delete(bizServiceCustomerAccountIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取服务客户账号管理详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    @Operation(summary = "获取服务客户账号管理详情")
+    @GetMapping("/biz/bizservicecustomeraccount/detail")
+    public CommonResult<BizServiceCustomerAccount> detail(@Valid BizServiceCustomerAccountIdParam bizServiceCustomerAccountIdParam) {
+        return CommonResult.data(bizServiceCustomerAccountService.detail(bizServiceCustomerAccountIdParam));
+    }
+}

+ 67 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/entity/BizServiceCustomerAccount.java

@@ -0,0 +1,67 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.common.pojo.CommonEntity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户账号管理实体
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Getter
+@Setter
+@TableName("biz_service_customer_account")
+public class BizServiceCustomerAccount extends CommonEntity {
+
+    /** 主键ID */
+    @TableId
+    @Schema(description = "主键ID")
+    private String id;
+
+    /** 客户id */
+    @Schema(description = "客户id")
+    private String customerId;
+
+    /** 账号 */
+    @Schema(description = "账号")
+    private String loginAccount;
+
+    /** 充值总余额 */
+    @Schema(description = "充值总余额")
+    private BigDecimal rechargeAmount;
+
+    /** 消费总金额 */
+    @Schema(description = "消费总金额")
+    private BigDecimal consumptionAmount;
+
+    /** 锁定金额(占用金额) */
+    @Schema(description = "锁定金额(占用金额)")
+    private BigDecimal lockAmount;
+
+    /** 可用余额(账户余额) */
+    @Schema(description = "可用余额(账户余额)")
+    private BigDecimal accountAmount;
+
+    /** 授信额度 */
+    @Schema(description = "授信额度")
+    private BigDecimal creditAmount;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/enums/BizServiceCustomerAccountEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.enums;
+
+import lombok.Getter;
+
+/**
+ * 服务客户账号管理枚举
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Getter
+public enum BizServiceCustomerAccountEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    BizServiceCustomerAccountEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/mapper/BizServiceCustomerAccountMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.entity.BizServiceCustomerAccount;
+
+/**
+ * 服务客户账号管理Mapper接口
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+public interface BizServiceCustomerAccountMapper extends BaseMapper<BizServiceCustomerAccount> {
+}

+ 5 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/mapper/mapping/BizServiceCustomerAccountMapper.xml

@@ -0,0 +1,5 @@
+<?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="vip.xiaonuo.biz.modular.bizservicecustomeraccount.mapper.BizServiceCustomerAccountMapper">
+
+</mapper>

+ 62 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountAddParam.java

@@ -0,0 +1,62 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户账号管理添加参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerAccountAddParam {
+
+    /** 客户id */
+    @Schema(description = "客户id")
+    private String customerId;
+
+    /** 账号 */
+    @Schema(description = "账号")
+    private String loginAccount;
+
+    /** 充值总余额 */
+    @Schema(description = "充值总余额")
+    private BigDecimal rechargeAmount;
+
+    /** 消费总金额 */
+    @Schema(description = "消费总金额")
+    private BigDecimal consumptionAmount;
+
+    /** 锁定金额(占用金额) */
+    @Schema(description = "锁定金额(占用金额)")
+    private BigDecimal lockAmount;
+
+    /** 可用余额(账户余额) */
+    @Schema(description = "可用余额(账户余额)")
+    private BigDecimal accountAmount;
+
+    /** 授信额度 */
+    @Schema(description = "授信额度")
+    private BigDecimal creditAmount;
+
+}

+ 67 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountEditParam.java

@@ -0,0 +1,67 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户账号管理编辑参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerAccountEditParam {
+
+    /** 主键ID */
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 客户id */
+    @Schema(description = "客户id")
+    private String customerId;
+
+    /** 账号 */
+    @Schema(description = "账号")
+    private String loginAccount;
+
+    /** 充值总余额 */
+    @Schema(description = "充值总余额")
+    private BigDecimal rechargeAmount;
+
+    /** 消费总金额 */
+    @Schema(description = "消费总金额")
+    private BigDecimal consumptionAmount;
+
+    /** 锁定金额(占用金额) */
+    @Schema(description = "锁定金额(占用金额)")
+    private BigDecimal lockAmount;
+
+    /** 可用余额(账户余额) */
+    @Schema(description = "可用余额(账户余额)")
+    private BigDecimal accountAmount;
+
+    /** 授信额度 */
+    @Schema(description = "授信额度")
+    private BigDecimal creditAmount;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 服务客户账号管理Id参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerAccountIdParam {
+
+    /** 主键ID */
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/param/BizServiceCustomerAccountPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户账号管理查询参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerAccountPageParam {
+
+    /** 当前页 */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @Schema(description = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+}

+ 80 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/service/BizServiceCustomerAccountService.java

@@ -0,0 +1,80 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.entity.BizServiceCustomerAccount;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountPageParam;
+
+import java.util.List;
+
+/**
+ * 服务客户账号管理Service接口
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+public interface BizServiceCustomerAccountService extends IService<BizServiceCustomerAccount> {
+
+    /**
+     * 获取服务客户账号管理分页
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    Page<BizServiceCustomerAccount> page(BizServiceCustomerAccountPageParam bizServiceCustomerAccountPageParam);
+
+    /**
+     * 添加服务客户账号管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    void add(BizServiceCustomerAccountAddParam bizServiceCustomerAccountAddParam);
+
+    /**
+     * 编辑服务客户账号管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    void edit(BizServiceCustomerAccountEditParam bizServiceCustomerAccountEditParam);
+
+    /**
+     * 删除服务客户账号管理
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    void delete(List<BizServiceCustomerAccountIdParam> bizServiceCustomerAccountIdParamList);
+
+    /**
+     * 获取服务客户账号管理详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     */
+    BizServiceCustomerAccount detail(BizServiceCustomerAccountIdParam bizServiceCustomerAccountIdParam);
+
+    /**
+     * 获取服务客户账号管理详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:39
+     **/
+    BizServiceCustomerAccount queryEntity(String id);
+}

+ 94 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomeraccount/service/impl/BizServiceCustomerAccountServiceImpl.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomeraccount.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.entity.BizServiceCustomerAccount;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.mapper.BizServiceCustomerAccountMapper;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.param.BizServiceCustomerAccountPageParam;
+import vip.xiaonuo.biz.modular.bizservicecustomeraccount.service.BizServiceCustomerAccountService;
+
+import java.util.List;
+
+/**
+ * 服务客户账号管理Service接口实现类
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:39
+ **/
+@Service
+public class BizServiceCustomerAccountServiceImpl extends ServiceImpl<BizServiceCustomerAccountMapper, BizServiceCustomerAccount> implements BizServiceCustomerAccountService {
+
+    @Override
+    public Page<BizServiceCustomerAccount> page(BizServiceCustomerAccountPageParam bizServiceCustomerAccountPageParam) {
+        QueryWrapper<BizServiceCustomerAccount> queryWrapper = new QueryWrapper<BizServiceCustomerAccount>().checkSqlInjection();
+        if(ObjectUtil.isAllNotEmpty(bizServiceCustomerAccountPageParam.getSortField(), bizServiceCustomerAccountPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(bizServiceCustomerAccountPageParam.getSortOrder());
+            queryWrapper.orderBy(true, bizServiceCustomerAccountPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(bizServiceCustomerAccountPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(BizServiceCustomerAccount::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(BizServiceCustomerAccountAddParam bizServiceCustomerAccountAddParam) {
+        BizServiceCustomerAccount bizServiceCustomerAccount = BeanUtil.toBean(bizServiceCustomerAccountAddParam, BizServiceCustomerAccount.class);
+        this.save(bizServiceCustomerAccount);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(BizServiceCustomerAccountEditParam bizServiceCustomerAccountEditParam) {
+        BizServiceCustomerAccount bizServiceCustomerAccount = this.queryEntity(bizServiceCustomerAccountEditParam.getId());
+        BeanUtil.copyProperties(bizServiceCustomerAccountEditParam, bizServiceCustomerAccount);
+        this.updateById(bizServiceCustomerAccount);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<BizServiceCustomerAccountIdParam> bizServiceCustomerAccountIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(bizServiceCustomerAccountIdParamList, BizServiceCustomerAccountIdParam::getId));
+    }
+
+    @Override
+    public BizServiceCustomerAccount detail(BizServiceCustomerAccountIdParam bizServiceCustomerAccountIdParam) {
+        return this.queryEntity(bizServiceCustomerAccountIdParam.getId());
+    }
+
+    @Override
+    public BizServiceCustomerAccount queryEntity(String id) {
+        BizServiceCustomerAccount bizServiceCustomerAccount = this.getById(id);
+        if(ObjectUtil.isEmpty(bizServiceCustomerAccount)) {
+            throw new CommonException("服务客户账号管理不存在,id值为:{}", id);
+        }
+        return bizServiceCustomerAccount;
+    }
+}

+ 119 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/controller/BizServiceCustomerFlowController.java

@@ -0,0 +1,119 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.controller;
+
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.entity.BizServiceCustomerFlow;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowPageParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.service.BizServiceCustomerFlowService;
+
+import jakarta.annotation.Resource;
+import jakarta.validation.Valid;
+import jakarta.validation.constraints.NotEmpty;
+import java.util.List;
+
+/**
+ * 服务客户资金流水控制器
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ */
+@Tag(name = "服务客户资金流水控制器")
+@RestController
+@Validated
+public class BizServiceCustomerFlowController {
+
+    @Resource
+    private BizServiceCustomerFlowService bizServiceCustomerFlowService;
+
+    /**
+     * 获取服务客户资金流水分页
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    @Operation(summary = "获取服务客户资金流水分页")
+    @SaCheckPermission("/biz/bizservicecustomerflow/page")
+    @GetMapping("/biz/bizservicecustomerflow/page")
+    public CommonResult<Page<BizServiceCustomerFlow>> page(BizServiceCustomerFlowPageParam bizServiceCustomerFlowPageParam) {
+        return CommonResult.data(bizServiceCustomerFlowService.page(bizServiceCustomerFlowPageParam));
+    }
+
+    /**
+     * 添加服务客户资金流水
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    @Operation(summary = "添加服务客户资金流水")
+    @CommonLog("添加服务客户资金流水")
+    @PostMapping("/biz/bizservicecustomerflow/add")
+    public CommonResult<String> add(@RequestBody @Valid BizServiceCustomerFlowAddParam bizServiceCustomerFlowAddParam) {
+        bizServiceCustomerFlowService.add(bizServiceCustomerFlowAddParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑服务客户资金流水
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    @Operation(summary = "编辑服务客户资金流水")
+    @CommonLog("编辑服务客户资金流水")
+    @PostMapping("/biz/bizservicecustomerflow/edit")
+    public CommonResult<String> edit(@RequestBody @Valid BizServiceCustomerFlowEditParam bizServiceCustomerFlowEditParam) {
+        bizServiceCustomerFlowService.edit(bizServiceCustomerFlowEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除服务客户资金流水
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    @Operation(summary = "删除服务客户资金流水")
+    @CommonLog("删除服务客户资金流水")
+    @PostMapping("/biz/bizservicecustomerflow/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   List<BizServiceCustomerFlowIdParam> bizServiceCustomerFlowIdParamList) {
+        bizServiceCustomerFlowService.delete(bizServiceCustomerFlowIdParamList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取服务客户资金流水详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    @Operation(summary = "获取服务客户资金流水详情")
+    @GetMapping("/biz/bizservicecustomerflow/detail")
+    public CommonResult<BizServiceCustomerFlow> detail(@Valid BizServiceCustomerFlowIdParam bizServiceCustomerFlowIdParam) {
+        return CommonResult.data(bizServiceCustomerFlowService.detail(bizServiceCustomerFlowIdParam));
+    }
+}

+ 59 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/entity/BizServiceCustomerFlow.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.entity;
+
+import com.baomidou.mybatisplus.annotation.*;
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import vip.xiaonuo.common.pojo.CommonEntity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户资金流水实体
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Getter
+@Setter
+@TableName("biz_service_customer_flow")
+public class BizServiceCustomerFlow extends CommonEntity {
+
+    /** 主键ID */
+    @TableId
+    @Schema(description = "主键ID")
+    private String id;
+
+    /** 服务客户id */
+    @Schema(description = "服务客户id")
+    private String customerAccountId;
+
+    /** 操作类型  1:充值   2:消费 */
+    @Schema(description = "操作类型  1:充值   2:消费")
+    private String operateType;
+
+    /** 操作前账户余额(充值或消费前账户余额) */
+    @Schema(description = "操作前账户余额(充值或消费前账户余额)")
+    private BigDecimal operateAmountBegin;
+
+    /** 操作金额(充值或消费金额) */
+    @Schema(description = "操作金额(充值或消费金额)")
+    private BigDecimal operateAmount;
+
+    /** 操作后账户余额(充值或消费后账户余额) */
+    @Schema(description = "操作后账户余额(充值或消费后账户余额)")
+    private BigDecimal operateAmountAfter;
+}

+ 34 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/enums/BizServiceCustomerFlowEnum.java

@@ -0,0 +1,34 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.enums;
+
+import lombok.Getter;
+
+/**
+ * 服务客户资金流水枚举
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Getter
+public enum BizServiceCustomerFlowEnum {
+
+    /** 测试 */
+    TEST("TEST");
+
+    private final String value;
+
+    BizServiceCustomerFlowEnum(String value) {
+        this.value = value;
+    }
+}

+ 25 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/mapper/BizServiceCustomerFlowMapper.java

@@ -0,0 +1,25 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.entity.BizServiceCustomerFlow;
+
+/**
+ * 服务客户资金流水Mapper接口
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+public interface BizServiceCustomerFlowMapper extends BaseMapper<BizServiceCustomerFlow> {
+}

+ 5 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/mapper/mapping/BizServiceCustomerFlowMapper.xml

@@ -0,0 +1,5 @@
+<?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="vip.xiaonuo.biz.modular.bizservicecustomerflow.mapper.BizServiceCustomerFlowMapper">
+
+</mapper>

+ 54 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowAddParam.java

@@ -0,0 +1,54 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户资金流水添加参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerFlowAddParam {
+
+    /** 服务客户id */
+    @Schema(description = "服务客户id")
+    private String customerAccountId;
+
+    /** 操作类型  1:充值   2:消费 */
+    @Schema(description = "操作类型  1:充值   2:消费")
+    private String operateType;
+
+    /** 操作前账户余额(充值或消费前账户余额) */
+    @Schema(description = "操作前账户余额(充值或消费前账户余额)")
+    private BigDecimal operateAmountBegin;
+
+    /** 操作金额(充值或消费金额) */
+    @Schema(description = "操作金额(充值或消费金额)")
+    private BigDecimal operateAmount;
+
+    /** 操作后账户余额(充值或消费后账户余额) */
+    @Schema(description = "操作后账户余额(充值或消费后账户余额)")
+    private BigDecimal operateAmountAfter;
+
+}

+ 59 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowEditParam.java

@@ -0,0 +1,59 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.NotNull;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户资金流水编辑参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerFlowEditParam {
+
+    /** 主键ID */
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+
+    /** 服务客户id */
+    @Schema(description = "服务客户id")
+    private String customerAccountId;
+
+    /** 操作类型  1:充值   2:消费 */
+    @Schema(description = "操作类型  1:充值   2:消费")
+    private String operateType;
+
+    /** 操作前账户余额(充值或消费前账户余额) */
+    @Schema(description = "操作前账户余额(充值或消费前账户余额)")
+    private BigDecimal operateAmountBegin;
+
+    /** 操作金额(充值或消费金额) */
+    @Schema(description = "操作金额(充值或消费金额)")
+    private BigDecimal operateAmount;
+
+    /** 操作后账户余额(充值或消费后账户余额) */
+    @Schema(description = "操作后账户余额(充值或消费后账户余额)")
+    private BigDecimal operateAmountAfter;
+
+}

+ 35 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowIdParam.java

@@ -0,0 +1,35 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import jakarta.validation.constraints.NotBlank;
+
+/**
+ * 服务客户资金流水Id参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerFlowIdParam {
+
+    /** 主键ID */
+    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED)
+    @NotBlank(message = "id不能为空")
+    private String id;
+}

+ 51 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/param/BizServiceCustomerFlowPageParam.java

@@ -0,0 +1,51 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.param;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 服务客户资金流水查询参数
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Getter
+@Setter
+public class BizServiceCustomerFlowPageParam {
+
+    /** 当前页 */
+    @Schema(description = "当前页码")
+    private Integer current;
+
+    /** 每页条数 */
+    @Schema(description = "每页条数")
+    private Integer size;
+
+    /** 排序字段 */
+    @Schema(description = "排序字段,字段驼峰名称,如:userName")
+    private String sortField;
+
+    /** 排序方式 */
+    @Schema(description = "排序方式,升序:ASCEND;降序:DESCEND")
+    private String sortOrder;
+
+    /** 关键词 */
+    @Schema(description = "关键词")
+    private String searchKey;
+
+}

+ 80 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/service/BizServiceCustomerFlowService.java

@@ -0,0 +1,80 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.service;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.entity.BizServiceCustomerFlow;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowPageParam;
+
+import java.util.List;
+
+/**
+ * 服务客户资金流水Service接口
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+public interface BizServiceCustomerFlowService extends IService<BizServiceCustomerFlow> {
+
+    /**
+     * 获取服务客户资金流水分页
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    Page<BizServiceCustomerFlow> page(BizServiceCustomerFlowPageParam bizServiceCustomerFlowPageParam);
+
+    /**
+     * 添加服务客户资金流水
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    void add(BizServiceCustomerFlowAddParam bizServiceCustomerFlowAddParam);
+
+    /**
+     * 编辑服务客户资金流水
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    void edit(BizServiceCustomerFlowEditParam bizServiceCustomerFlowEditParam);
+
+    /**
+     * 删除服务客户资金流水
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    void delete(List<BizServiceCustomerFlowIdParam> bizServiceCustomerFlowIdParamList);
+
+    /**
+     * 获取服务客户资金流水详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     */
+    BizServiceCustomerFlow detail(BizServiceCustomerFlowIdParam bizServiceCustomerFlowIdParam);
+
+    /**
+     * 获取服务客户资金流水详情
+     *
+     * @author fanzherong
+     * @date  2025/05/29 14:40
+     **/
+    BizServiceCustomerFlow queryEntity(String id);
+}

+ 94 - 0
snowy-plugin/snowy-plugin-biz/src/main/java/vip/xiaonuo/biz/modular/bizservicecustomerflow/service/impl/BizServiceCustomerFlowServiceImpl.java

@@ -0,0 +1,94 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.biz.modular.bizservicecustomerflow.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import vip.xiaonuo.common.enums.CommonSortOrderEnum;
+import vip.xiaonuo.common.exception.CommonException;
+import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.entity.BizServiceCustomerFlow;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.mapper.BizServiceCustomerFlowMapper;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowAddParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowEditParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowIdParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.param.BizServiceCustomerFlowPageParam;
+import vip.xiaonuo.biz.modular.bizservicecustomerflow.service.BizServiceCustomerFlowService;
+
+import java.util.List;
+
+/**
+ * 服务客户资金流水Service接口实现类
+ *
+ * @author fanzherong
+ * @date  2025/05/29 14:40
+ **/
+@Service
+public class BizServiceCustomerFlowServiceImpl extends ServiceImpl<BizServiceCustomerFlowMapper, BizServiceCustomerFlow> implements BizServiceCustomerFlowService {
+
+    @Override
+    public Page<BizServiceCustomerFlow> page(BizServiceCustomerFlowPageParam bizServiceCustomerFlowPageParam) {
+        QueryWrapper<BizServiceCustomerFlow> queryWrapper = new QueryWrapper<BizServiceCustomerFlow>().checkSqlInjection();
+        if(ObjectUtil.isAllNotEmpty(bizServiceCustomerFlowPageParam.getSortField(), bizServiceCustomerFlowPageParam.getSortOrder())) {
+            CommonSortOrderEnum.validate(bizServiceCustomerFlowPageParam.getSortOrder());
+            queryWrapper.orderBy(true, bizServiceCustomerFlowPageParam.getSortOrder().equals(CommonSortOrderEnum.ASC.getValue()),
+                    StrUtil.toUnderlineCase(bizServiceCustomerFlowPageParam.getSortField()));
+        } else {
+            queryWrapper.lambda().orderByAsc(BizServiceCustomerFlow::getId);
+        }
+        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void add(BizServiceCustomerFlowAddParam bizServiceCustomerFlowAddParam) {
+        BizServiceCustomerFlow bizServiceCustomerFlow = BeanUtil.toBean(bizServiceCustomerFlowAddParam, BizServiceCustomerFlow.class);
+        this.save(bizServiceCustomerFlow);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void edit(BizServiceCustomerFlowEditParam bizServiceCustomerFlowEditParam) {
+        BizServiceCustomerFlow bizServiceCustomerFlow = this.queryEntity(bizServiceCustomerFlowEditParam.getId());
+        BeanUtil.copyProperties(bizServiceCustomerFlowEditParam, bizServiceCustomerFlow);
+        this.updateById(bizServiceCustomerFlow);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void delete(List<BizServiceCustomerFlowIdParam> bizServiceCustomerFlowIdParamList) {
+        // 执行删除
+        this.removeByIds(CollStreamUtil.toList(bizServiceCustomerFlowIdParamList, BizServiceCustomerFlowIdParam::getId));
+    }
+
+    @Override
+    public BizServiceCustomerFlow detail(BizServiceCustomerFlowIdParam bizServiceCustomerFlowIdParam) {
+        return this.queryEntity(bizServiceCustomerFlowIdParam.getId());
+    }
+
+    @Override
+    public BizServiceCustomerFlow queryEntity(String id) {
+        BizServiceCustomerFlow bizServiceCustomerFlow = this.getById(id);
+        if(ObjectUtil.isEmpty(bizServiceCustomerFlow)) {
+            throw new CommonException("服务客户资金流水不存在,id值为:{}", id);
+        }
+        return bizServiceCustomerFlow;
+    }
+}