diff --git a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayCustomer.java b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayCustomer.java index 6829ec4..da09947 100644 --- a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayCustomer.java +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/OrderPayCustomer.java @@ -3,6 +3,7 @@ package com.muyu.cloud.pay.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; +import com.muyu.cloud.pay.domain.req.OrderCustomerAddReq; import com.muyu.common.core.web.domain.BaseEntity; import lombok.*; import lombok.experimental.SuperBuilder; @@ -27,8 +28,23 @@ public class OrderPayCustomer extends BaseEntity { * 服务/客户编码 */ private String appCode; + /** + * 客户描述 + */ + private String appDesc; /** * 状态 */ private String status; + + + public static OrderPayCustomer addBuild(OrderCustomerAddReq orderCustomerAddReq){ + return OrderPayCustomer.builder() + .appCode(orderCustomerAddReq.getAppCode()) + .appDesc(orderCustomerAddReq.getAppDesc()) + .appName(orderCustomerAddReq.getAppName()) + .status(orderCustomerAddReq.getStatus()) + .remark(orderCustomerAddReq.getRemark()) + .build(); + } } diff --git a/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/req/OrderCustomerAddReq.java b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/req/OrderCustomerAddReq.java new file mode 100644 index 0000000..c281e67 --- /dev/null +++ b/cloud-pay-common/src/main/java/com/muyu/cloud/pay/domain/req/OrderCustomerAddReq.java @@ -0,0 +1,50 @@ +package com.muyu.cloud.pay.domain.req; + +import com.muyu.common.core.validation.IsSystemPayType; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Tag(name = "支付服务客户添加请求对象",description = "根据入参进行客户服务的添加") +public class OrderCustomerAddReq { + /** + * 服务/客户名称 + */ + @NotEmpty(message = "服务/客户名称不能为空") + @Schema(title = "服务/客户名称",type = "String",defaultValue = "会员服务",description = "客户名称一般为微服务的中文名称,方便使用者进行区分") + private String appName; + /** + * 服务/客户编码 + */ + @NotBlank(message = "服务/客户编码不能为空") + @Schema(title = "服务/客户编码",type = "String",defaultValue = "muyu-vip", + description = "客户编码,从[/customer/all]接口当中进行获取",requiredProperties = {"appName"}) + private String appCode; + /** + * 客户描述 + */ + @Schema(title = "服务/客户描述",type = "String") + private String appDesc; + /** + * 状态 + */ + @NotBlank(message = "状态不能为空") + @IsSystemPayType + @Schema(title = "状态为Y和N,如果为Y则客户可以使用支付接口,若为N则客户不可以使用支付类接口") + private String status; + + /** + * 客户备注 + */ + @Schema(title = "服务/客户备注",type = "String") + private String remark; +} diff --git a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/controller/OrderPayCustomerController.java b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/controller/OrderPayCustomerController.java index 15b37d0..a8e87c1 100644 --- a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/controller/OrderPayCustomerController.java +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/controller/OrderPayCustomerController.java @@ -3,6 +3,7 @@ package com.muyu.cloud.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.resp.CustomerResp; import com.muyu.cloud.pay.service.OrderPayCustomerService; import com.muyu.common.core.domain.Result; @@ -59,4 +60,15 @@ public class OrderPayCustomerController { ); } + + /** + * 添加客户 + * @param orderCustomerAddReq + * @return 添加结果 + */ + public Result save(@Validated @RequestBody OrderCustomerAddReq orderCustomerAddReq){ + orderPayCustomerService.save(OrderPayCustomer.addBuild(orderCustomerAddReq)); + return Result.success(); + } + } diff --git a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java index 97a5d7e..0738d70 100644 --- a/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java +++ b/cloud-pay-server/src/main/java/com/muyu/cloud/pay/service/impl/OrderPayCustomerServiceImpl.java @@ -9,6 +9,7 @@ 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.exception.ServiceException; import com.muyu.common.core.utils.StringUtils; import com.muyu.common.nacos.service.NacosService; import lombok.extern.slf4j.Slf4j; @@ -76,4 +77,19 @@ public class OrderPayCustomerServiceImpl extends ServiceImpl !customerSet.contains(nacosService)) .toList(); } + + @Override + public boolean save(OrderPayCustomer orderPayCustomer) { + String appCode = orderPayCustomer.getAppCode(); + List nacosServerAllList = nacosService.nacosServerAllList(); + if (!nacosServerAllList.contains(appCode)){ + throw new ServiceException("客户编码违法"); + } + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OrderPayCustomer::getAppCode, appCode); + if (this.count(queryWrapper) > 0) { + throw new ServiceException("该客户已接入"); + } + return super.save(orderPayCustomer); + } }