From 0263e0a060571e4d2dd4d5185cd8276ccf4205aa Mon Sep 17 00:00:00 2001
From: chentaisen <14615430+chentaisen@user.noreply.gitee.com>
Date: Tue, 20 Aug 2024 14:03:34 +0800
Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 35 ++++
muyu-rule-client/pom.xml | 27 +++
.../src/main/java/com/muyu/Main.java | 7 +
muyu-rule-common/pom.xml | 26 +++
.../src/main/java/pay/domain/Rule.java | 39 ++++
muyu-rule-remote/pom.xml | 27 +++
.../src/main/java/com/muyu/Main.java | 7 +
muyu-rule-server/pom.xml | 126 ++++++++++++
.../com/muyu/pay/MuYuRuleApplication.java | 29 +++
.../OrderPayCustomerController.java | 150 +++++++++++++++
.../pay/mapper/OrderPayCustomerMapper.java | 15 ++
.../com/muyu/pay/mapper/OrderPayMapper.java | 14 ++
.../pay/service/OrderPayCustomerService.java | 52 +++++
.../com/muyu/pay/service/OrderPayService.java | 22 +++
.../impl/OrderPayCustomerServiceImpl.java | 180 ++++++++++++++++++
.../pay/service/impl/OrderPayServiceImpl.java | 30 +++
pom.xml | 29 +++
17 files changed, 815 insertions(+)
create mode 100644 .gitignore
create mode 100644 muyu-rule-client/pom.xml
create mode 100644 muyu-rule-client/src/main/java/com/muyu/Main.java
create mode 100644 muyu-rule-common/pom.xml
create mode 100644 muyu-rule-common/src/main/java/pay/domain/Rule.java
create mode 100644 muyu-rule-remote/pom.xml
create mode 100644 muyu-rule-remote/src/main/java/com/muyu/Main.java
create mode 100644 muyu-rule-server/pom.xml
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/MuYuRuleApplication.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/controller/OrderPayCustomerController.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayCustomerMapper.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayMapper.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayCustomerService.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayService.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayCustomerServiceImpl.java
create mode 100644 muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayServiceImpl.java
create mode 100644 pom.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3e403e3
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,35 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store
diff --git a/muyu-rule-client/pom.xml b/muyu-rule-client/pom.xml
new file mode 100644
index 0000000..4a75d3c
--- /dev/null
+++ b/muyu-rule-client/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-rule
+ 3.6.5
+
+
+ muyu-rule-client
+ 3.6.5
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ muyu-rule-common
+ 3.6.5
+
+
+
diff --git a/muyu-rule-client/src/main/java/com/muyu/Main.java b/muyu-rule-client/src/main/java/com/muyu/Main.java
new file mode 100644
index 0000000..95690d4
--- /dev/null
+++ b/muyu-rule-client/src/main/java/com/muyu/Main.java
@@ -0,0 +1,7 @@
+package com.muyu;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/muyu-rule-common/pom.xml b/muyu-rule-common/pom.xml
new file mode 100644
index 0000000..f1be5b6
--- /dev/null
+++ b/muyu-rule-common/pom.xml
@@ -0,0 +1,26 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-rule
+ 3.6.5
+
+
+ muyu-rule-common
+ 3.6.5
+
+ 17
+ 17
+ UTF-8
+
+
+
+ com.muyu
+ cloud-common-core
+ 3.6.5
+
+
+
diff --git a/muyu-rule-common/src/main/java/pay/domain/Rule.java b/muyu-rule-common/src/main/java/pay/domain/Rule.java
new file mode 100644
index 0000000..e7b2ef5
--- /dev/null
+++ b/muyu-rule-common/src/main/java/pay/domain/Rule.java
@@ -0,0 +1,39 @@
+package pay.domain;
+
+import com.muyu.common.core.web.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @ClassName Rule
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/8/20 11:40
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Rule extends BaseEntity {
+ /**
+ * 规则ID
+ */
+ private Integer id;
+ /**
+ * 规则名称
+ */
+ private String name;
+ /**
+ * 规则类型
+ */
+ private String ruleType;
+ /**
+ * 是否激活
+ */
+ private String isActivate;
+ /**
+ * 规则描述
+ */
+ private String ruleDesc;
+
+}
diff --git a/muyu-rule-remote/pom.xml b/muyu-rule-remote/pom.xml
new file mode 100644
index 0000000..fb8509a
--- /dev/null
+++ b/muyu-rule-remote/pom.xml
@@ -0,0 +1,27 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-rule
+ 3.6.5
+
+
+ muyu-rule-remote
+ 3.6.5
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+ com.muyu
+ muyu-rule-common
+ 3.6.5
+
+
+
diff --git a/muyu-rule-remote/src/main/java/com/muyu/Main.java b/muyu-rule-remote/src/main/java/com/muyu/Main.java
new file mode 100644
index 0000000..95690d4
--- /dev/null
+++ b/muyu-rule-remote/src/main/java/com/muyu/Main.java
@@ -0,0 +1,7 @@
+package com.muyu;
+
+public class Main {
+ public static void main(String[] args) {
+ System.out.println("Hello world!");
+ }
+}
\ No newline at end of file
diff --git a/muyu-rule-server/pom.xml b/muyu-rule-server/pom.xml
new file mode 100644
index 0000000..aca585c
--- /dev/null
+++ b/muyu-rule-server/pom.xml
@@ -0,0 +1,126 @@
+
+
+ 4.0.0
+
+ com.muyu
+ muyu-rule
+ 3.6.5
+
+
+ muyu-rule-server
+ 3.6.5
+
+ 17
+ 17
+ UTF-8
+
+
+
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.muyu
+ cloud-common-datasource
+
+
+
+
+ com.muyu
+ cloud-common-datascope
+
+
+
+
+ com.muyu
+ cloud-common-log
+
+
+
+
+ com.muyu
+ cloud-common-api-doc
+
+
+
+
+
+ com.muyu
+ cloud-common-xxl
+
+
+
+ com.muyu
+ cloud-common-rabbit
+
+
+
+
+
+
+
+
+ com.muyu
+ muyu-rule-common
+ 3.6.5
+
+
+
+
+
+ muyu-rule
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ repackage
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+
+ true
+
+
+
+
+
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/MuYuRuleApplication.java b/muyu-rule-server/src/main/java/com/muyu/pay/MuYuRuleApplication.java
new file mode 100644
index 0000000..915e982
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/MuYuRuleApplication.java
@@ -0,0 +1,29 @@
+package com.muyu.pay;
+
+import com.muyu.common.security.annotation.EnableCustomConfig;
+import com.muyu.common.security.annotation.EnableMyFeignClients;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.ConfigurableApplicationContext;
+
+/**
+ * @ClassName MuYuPayApplication
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/7/29 20:30
+ */
+@Log4j2
+@EnableCustomConfig
+@EnableMyFeignClients
+@SpringBootApplication
+public class MuYuRuleApplication {
+ public static void main(String[] args) {
+ ConfigurableApplicationContext applicationContext = SpringApplication.run(MuYuRuleApplication.class, args);
+// String[] beanDefinitionNames = applicationContext.getBeanFactory().getBeanDefinitionNames();
+// for (String beanDefinitionName : beanDefinitionNames) {
+// log.info("beanDefinitionName:{}",beanDefinitionName);
+// }
+
+ }
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/controller/OrderPayCustomerController.java b/muyu-rule-server/src/main/java/com/muyu/pay/controller/OrderPayCustomerController.java
new file mode 100644
index 0000000..2b89633
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/controller/OrderPayCustomerController.java
@@ -0,0 +1,150 @@
+package com.muyu.pay.controller;
+
+import com.dtflys.forest.springboot.annotation.ForestScannerRegister;
+import com.muyu.cloud.pay.domain.OrderPayCustomer;
+import com.muyu.cloud.pay.domain.req.CustomerListReq;
+import com.muyu.cloud.pay.domain.req.OrderCustomerAddReq;
+import com.muyu.cloud.pay.domain.req.OrderCustomerUpdReq;
+import com.muyu.cloud.pay.domain.resp.CustomerResp;
+import com.muyu.cloud.pay.service.OrderPayCustomerService;
+import com.muyu.common.core.domain.Result;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * @ClassName OrderPayCustomerController
+ * @Description 支付客户控制层
+ * @Author Chen
+ * @Date 2024/8/5 21:22
+ */
+@Log4j2
+@RestController
+@RequestMapping("/customer")
+@Tag(name = "客户控制层", description = "进行客户管理、查看等相关操作")
+public class OrderPayCustomerController {
+
+ public OrderPayCustomerController() {
+ log.info("forest扫描路径:{}", ForestScannerRegister.getBasePackages());
+ }
+
+ /**
+ * 客户业务层
+ */
+ @Autowired
+ private OrderPayCustomerService orderPayCustomerService;
+
+ /**
+ * 查询所有的客户
+ *
+ * @param customerListReq 客户列表请求参数
+ * @return 客户列表
+ */
+ @RequestMapping(path = "/list", method = RequestMethod.POST)
+ @Operation(summary = "查看客户", description = "根据客户的名称、编码、是否开启等可以进行客户的筛选")
+ public Result> selectList(
+ @Validated @RequestBody CustomerListReq customerListReq) {
+ return Result.success(
+ orderPayCustomerService.selectList(customerListReq)
+ );
+ }
+
+ /**
+ * 获取所有客户的列表
+ *
+ * @return客户集合
+ */
+ @GetMapping("/all")
+ @Operation(summary = "获取未接入的客户", description = "调用nacosAPI获取所有的微服务名称,作为支付中台的客户")
+ @Schema(description = "客户列表", defaultValue = "[\"客户1\",\"客户2\"]", type = "List")
+ public Result> getCustomerAllList() {
+ return Result.success(
+ orderPayCustomerService.getCustomerAllList()
+ );
+ }
+
+ /**
+ * 添加客户
+ *
+ * @param orderCustomerAddReq 客户信息
+ * @return 添加结果
+ */
+ @PostMapping
+ @Operation(summary = "客户信息添加", description = "添加支付平台客户信息,添加成功才可以使用支付类的产品")
+ public Result save(@Validated @RequestBody OrderCustomerAddReq orderCustomerAddReq) {
+ orderPayCustomerService.save(OrderPayCustomer.addBuild(orderCustomerAddReq));
+ return Result.success(null, "操作成功");
+ }
+
+ /**
+ * 修改客户
+ *
+ * @param orderCustomerUpdReq 修改客户请求信息
+ * @return 修改结果
+ */
+ @PutMapping("/{orderCustomerId}")
+ @Operation(summary = "客户信息修改", description = "通过ID修改客户信息")
+ public Result update(
+ @Schema(title = "客户ID", type = "Long", defaultValue = "1", description = "修改客户信息需要依据的唯一条件")
+ @PathVariable("orderCustomerId") Long orderCustomerId,
+ @RequestBody @Validated OrderCustomerUpdReq orderCustomerUpdReq) {
+ orderPayCustomerService.updateById(OrderPayCustomer.updBuild(orderCustomerUpdReq, () -> orderCustomerId));
+ return Result.success(null, "操作成功");
+ }
+
+ /**
+ * 删除客户
+ *
+ * @param orderCustomerId 删除客户请求信息
+ * @return 删除结果
+ */
+ @DeleteMapping("/{orderCustomerId}")
+ @Operation(summary = "客户信息删除", description = "通过ID删除客户信息")
+ public Result delete(@PathVariable("orderCustomerId") Long orderCustomerId) {
+ orderPayCustomerService.removeById(orderCustomerId);
+ return Result.success(null, "操作成功");
+ }
+
+
+ /**
+ * 通过ID获取客户
+ *
+ * @param orderCustomerId ID
+ * @return 客户信息
+ */
+ @GetMapping("/{orderCustomerId}")
+ @Operation(summary = "通过ID获取客户信息", description = "通过ID获取客户信息")
+ public Result findById(@PathVariable("orderCustomerId") Long orderCustomerId) {
+ return Result.success(orderPayCustomerService.getById(orderCustomerId), "操作成功");
+ }
+ /**
+ * 通过ID禁用客户
+ *
+ * @param orderCustomerId ID
+ * @return 客户信息
+ */
+ @GetMapping("/disable/{orderCustomerId}")
+ @Operation(summary = "通过ID禁用", description = "通过ID禁用客户,禁用之后禁止调用支付相关接口")
+ public Result disable(@PathVariable("orderCustomerId") Long orderCustomerId) {
+ this.orderPayCustomerService.disable(orderCustomerId);
+ return Result.success(null, "操作成功");
+ }
+ /**
+ * 通过ID启用客户
+ *
+ * @param orderCustomerId ID
+ * @return 客户信息
+ */
+ @GetMapping("/enable/{orderCustomerId}")
+ @Operation(summary = "通过ID启用客户", description = "通过ID启用客户,启用之后禁止调用支付相关接口")
+ public Result enable(@PathVariable("orderCustomerId") Long orderCustomerId) {
+ this.orderPayCustomerService.enable(orderCustomerId);
+ return Result.success(null, "操作成功");
+ }
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayCustomerMapper.java b/muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayCustomerMapper.java
new file mode 100644
index 0000000..39a5d83
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayCustomerMapper.java
@@ -0,0 +1,15 @@
+package com.muyu.pay.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muyu.cloud.pay.domain.OrderPayCustomer;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * @ClassName OrderPayCustomerMapper
+ * @Description 支付服务/客户持久层
+ * @Author Chen
+ * @Date 2024/8/5 21:12
+ */
+@Mapper
+public interface OrderPayCustomerMapper extends BaseMapper {
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayMapper.java b/muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayMapper.java
new file mode 100644
index 0000000..3fa1689
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/mapper/OrderPayMapper.java
@@ -0,0 +1,14 @@
+package com.muyu.pay.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.muyu.cloud.pay.domain.OrderPayInfo;
+import org.apache.ibatis.annotations.Mapper;
+/**
+ * @ClassName OrderPayCustomerMapper
+ * @Description 订单支付持久层
+ * @Author Chen
+ * @Date 2024/8/5 21:12
+ */
+@Mapper
+public interface OrderPayMapper extends BaseMapper {
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayCustomerService.java b/muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayCustomerService.java
new file mode 100644
index 0000000..2a69ce8
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayCustomerService.java
@@ -0,0 +1,52 @@
+package com.muyu.pay.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.muyu.cloud.pay.domain.OrderPayCustomer;
+import com.muyu.cloud.pay.domain.req.CustomerListReq;
+import com.muyu.cloud.pay.domain.resp.CustomerResp;
+
+import java.util.List;
+
+/**
+ * @ClassName OrderPayCustomerService
+ * @Description 支付客户业务层
+ * @Author Chen
+ * @Date 2024/7/29 20:30
+ */
+public interface OrderPayCustomerService extends IService {
+ /**
+ * 查询客户集合
+ *
+ * @param customerListReq
+ * @return客户集合
+ */
+ public List selectList(CustomerListReq customerListReq);
+
+ /**
+ * 获取所有的客户
+ *
+ * @return 客户集合
+ */
+ List getCustomerAllList();
+
+ /**
+ * 禁用客户
+ *
+ * @param orderCustomerId 客户ID
+ */
+ void disable(Long orderCustomerId);
+
+ /**
+ * 启用用户
+ *
+ * @param orderCustomerId 客户Id
+ */
+ void enable(Long orderCustomerId);
+
+ /**
+ * 通过客户ID设置客户状态
+ * @param orderCustomerId id
+ * @param status 状态 SysIsYesNo
+ */
+ void settingStatus(Long orderCustomerId, String status);
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayService.java b/muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayService.java
new file mode 100644
index 0000000..9816760
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/service/OrderPayService.java
@@ -0,0 +1,22 @@
+package com.muyu.pay.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.muyu.cloud.pay.domain.OrderPayInfo;
+
+import java.util.List;
+
+/**
+ * @ClassName OrderPayCustomerMapper
+ * @Description 订单支付业务层
+ * @Author Chen
+ * @Date 2024/8/5 21:12
+ */
+public interface OrderPayService extends IService {
+ /**
+ * 根客户code和分页限制,查询结果
+ * @param appCode 客户code
+ * @param limit 分页限制
+ * @return 支付订单记录
+ */
+ List selectOrderPayByAppCodeAndLimit(String appCode, int limit);
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayCustomerServiceImpl.java b/muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayCustomerServiceImpl.java
new file mode 100644
index 0000000..6765c70
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayCustomerServiceImpl.java
@@ -0,0 +1,180 @@
+package com.muyu.pay.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.muyu.cloud.pay.domain.OrderPayCustomer;
+import com.muyu.cloud.pay.domain.OrderPayInfo;
+import com.muyu.cloud.pay.domain.req.CustomerListReq;
+import com.muyu.cloud.pay.domain.resp.CustomerResp;
+import com.muyu.cloud.pay.mapper.OrderPayCustomerMapper;
+import com.muyu.cloud.pay.service.OrderPayCustomerService;
+import com.muyu.cloud.pay.service.OrderPayService;
+import com.muyu.common.core.enums.SystemYesNo;
+import com.muyu.common.core.exception.ServiceException;
+import com.muyu.common.core.utils.DateUtils;
+import com.muyu.common.core.utils.StringUtils;
+import com.muyu.common.nacos.service.NacosServerService;
+import lombok.extern.log4j.Log4j2;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * @ClassName OrderPayCustomerServiceImpl
+ * @Description 支付客户业务层实现类
+ * @Author Chen
+ * @Date 2024/8/5 21:18
+ */
+@Log4j2
+@Service
+public class OrderPayCustomerServiceImpl
+ extends ServiceImpl
+ implements OrderPayCustomerService {
+ @Autowired
+ private OrderPayService orderPayService;
+
+ @Autowired
+ private NacosServerService nacosServerService;
+
+
+ /**
+ * 查询客户集合
+ *
+ * @param customerListReq
+ * @return
+ */
+ @Override
+ public List selectList(CustomerListReq customerListReq) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.like(
+ StringUtils.isNotEmpty(customerListReq.getAppName()),
+ OrderPayCustomer::getAppName, customerListReq.getAppName()
+ );
+ queryWrapper.like(
+ StringUtils.isNotEmpty(customerListReq.getAppCode()),
+ OrderPayCustomer::getAppCode, customerListReq.getAppCode()
+ );
+ queryWrapper.eq(
+ StringUtils.isNotEmpty(customerListReq.getStatus()),
+ OrderPayCustomer::getStatus, customerListReq.getStatus()
+ );
+ List orderPayCustomerList = this.list(queryWrapper);
+ return orderPayCustomerList.stream()
+ .map(orderPayCustomer -> CustomerResp.customerBuild(orderPayCustomer,
+ () -> orderPayService.selectOrderPayByAppCodeAndLimit(orderPayCustomer.getAppCode(), 5)
+ .stream()
+ .map(OrderPayInfo::buildCustomerOrderPaySimpleResp)
+ .toList()))
+ .toList();
+ }
+
+ /**
+ * 获取所有的客户
+ *
+ * @return客户集合
+ */
+ @Override
+ public List getCustomerAllList() {
+ List nacosServerAllList = nacosServerService.nacosServerAllList();
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.select(OrderPayCustomer::getAppCode);
+ List orderPayCustomerList = this.list(queryWrapper);
+ Set customerSet = orderPayCustomerList.stream()
+ .map(OrderPayCustomer::getAppCode)
+ .collect(Collectors.toSet());
+
+ return nacosServerAllList.stream()
+ .filter(nacosServer -> !customerSet.contains(nacosServer))
+ .toList();
+ }
+
+ @Override
+ public boolean removeById(Serializable id) {
+ OrderPayCustomer orderPayCustomer = this.getById(id);
+ if (orderPayCustomer==null){
+ throw new ServiceException("客户不存在");
+ }
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(OrderPayInfo::getAppCode,orderPayCustomer.getAppCode());
+ queryWrapper.gt(OrderPayInfo::getCreateTime, DateUtils.addDays(new Date(),-7));
+ long count = orderPayService.count();
+ if (count>0){
+ throw new RuntimeException(
+ StringUtils.format("客户:[{}],近七天还在使用,不可删除",orderPayCustomer.getAppName())
+ );
+ }
+ return super.removeById(id);
+ }
+
+ /**
+ * 禁用客户
+ *
+ * @param orderCustomerId 客户ID
+ */
+ @Override
+ public void disable(Long orderCustomerId) {
+ this.settingStatus(orderCustomerId, SystemYesNo.NO.getCode());
+ }
+
+ /**
+ * 启用客户
+ *
+ * @param orderCustomerId 客户Id
+ */
+ @Override
+ public void enable(Long orderCustomerId) {
+ this.settingStatus(orderCustomerId, SystemYesNo.YES.getCode());
+ }
+
+ /**
+ * 通过客户ID设置客户状态
+ * @param orderCustomerId id
+ * @param status 状态 SysIsYesNo
+ */
+ public void settingStatus(Long orderCustomerId, String status) {
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(OrderPayCustomer::getId, orderCustomerId);
+ boolean isExists = this.exists(queryWrapper);
+ if (!isExists) {
+ throw new ServiceException("操作客户不存在");
+ }
+
+ if (!SystemYesNo.isCode(status)){
+ throw new ServiceException("设置状态值违法");
+ }
+ LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>();
+ updateWrapper.eq(OrderPayCustomer::getId,orderCustomerId);
+ updateWrapper.set(OrderPayCustomer::getStatus,status);
+ this.update(updateWrapper);
+ }
+
+ /**
+ * 获取所有的客户
+ *
+ * @return客户集合
+ */
+ @Override
+ public boolean save(OrderPayCustomer orderPayCustomer) {
+ String appCode = orderPayCustomer.getAppCode();
+ List nacosServerAllList = nacosServerService.nacosServerAllList();
+ log.info("进行服务合法性判断:[{}->{}]", appCode, nacosServerAllList);
+ if (!nacosServerAllList.contains(appCode)) {
+ throw new ServiceException("客户编码违法");
+ }
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.eq(OrderPayCustomer::getAppCode, appCode);
+ long isAppCodeOnly = this.count(queryWrapper);
+ log.info("进行服务code唯一性校验:[{}--{}]", appCode, isAppCodeOnly);
+ if (isAppCodeOnly > 0) {
+ throw new ServiceException("客户编码重复");
+ }
+ return super.save(orderPayCustomer);
+ }
+
+}
diff --git a/muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayServiceImpl.java b/muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayServiceImpl.java
new file mode 100644
index 0000000..f5278a2
--- /dev/null
+++ b/muyu-rule-server/src/main/java/com/muyu/pay/service/impl/OrderPayServiceImpl.java
@@ -0,0 +1,30 @@
+package com.muyu.pay.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.muyu.cloud.pay.domain.OrderPayInfo;
+import com.muyu.cloud.pay.mapper.OrderPayMapper;
+import com.muyu.cloud.pay.service.OrderPayService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * @ClassName OrderPayServiceImpl
+ * @Description 描述
+ * @Author Chen
+ * @Date 2024/8/7 22:24
+ */
+@Service
+public class OrderPayServiceImpl extends ServiceImpl implements OrderPayService {
+
+ @Override
+ public List selectOrderPayByAppCodeAndLimit(String appCode, int limit) {
+ LambdaQueryWrapper orderPayInfoWrapper = new LambdaQueryWrapper<>();
+ orderPayInfoWrapper.eq(OrderPayInfo::getAppCode,appCode);
+ orderPayInfoWrapper.orderBy(true,false,OrderPayInfo::getCreateTime);
+ orderPayInfoWrapper.last("limit "+limit);
+
+ return this.list(orderPayInfoWrapper);
+ }
+}
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..30841e2
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+
+
+ com.muyu
+ cloud-server-parent
+ 3.6.5
+
+
+ muyu-rule
+ 3.6.5
+ pom
+
+ muyu-rule-common
+ muyu-rule-client
+ muyu-rule-remote
+ muyu-rule-server
+
+
+
+ 17
+ 17
+ UTF-8
+
+
+