聚合支付项目-14改写为长尾可以是:聚合支付项目-14具体是做什么的?

2026-04-10 09:431阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1493个文字,预计阅读时间需要6分钟。

聚合支付项目-14改写为长尾可以是:聚合支付项目-14具体是做什么的?

1.7+ 工程测试+通过一个案例了解Id查询商家的开发历程。基于此,介绍基本开发方法。

1.7.1 生成代码+使用mp的自动生成工程生成entity、mapper等文件。

1.2 修改生成类中的数据库连接,连接到Id查询商家。

1.7 工程测试

通过一个案例”根据Id查询商户“的开发去熟悉项目架构的基本开发方法。

1.7.1生成代码

使用mp的自动生成工程生成entity、mapper等文件。

1)修改生成类中的数据库链接,连接huiminpay_merchant_service数据库

2)设置包路径

PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.huiminpay");

3)运行生成类,输入模块名:merchant

生成成功:

将生成的entity、mapper拷贝到huiminpay-merchant-service工程

1.7.2Mybatis-Plus配置

1.7.2.1配置连接池Druid

  1. 在nacos中新建连接池Druid配置:spring-boot-starter-druid.yaml,Group为:COMMON_GROUP
    内容如下:

spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/oauth?useUnicode=true username: root password: yourpassword druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: true test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 filter: stat: slow-sql-millis: 1 log-slow-sql: true filters: config,stat,wall,log4j2 web-stat-filter: enabled: true url-pattern: /* exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" session-stat-enable: false session-stat-max-count: 1000 principal-cookie-name: admin principal-session-name: admin profile-enable: true stat-view-servlet: enabled: true url-pattern: /druid/* allow: 127.0.0.1 deny: 127.0.0.1 reset-enable: false login-password: admin login-username: admin aop-patterns: com.huiminpay.*.service.*

  1. 商户服务覆盖部分配置(数据库名和用户名密码):merchant-service.yaml

# 覆盖spring‐boot‐starter‐druid.yaml的项目 spring: datasource: druid: url: jdbc:mysql://127.0.0.1:3306/huiminpay_merchant_service?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: yourpassword

  1. 应用配置到项目中:bootstrap.yml

- refresh: true data-id: spring-boot-starter-druid.yaml # spring boot starter druid配置 group: COMMON_GROUP # 通用配置组

1.7.2.2配置Mybatis-Plus

  1. 在nacos中添加配置:spring-boot-mybatis-plus.yaml,Group为:COMMON_GROUP

mybatis-plus: configuration: cache-enabled: false map-underscore-to-camel-case: true global-config: id-type: 0 field-strategy: 0 db-column-underline: true refresh-mapper: true typeAliasesPackage: com.huiminpay.user.entity mapper-locations: classpath:com/huimin/*/mapper/*.xml

  1. 商户服务覆盖部分Mybatis-Plus配置:merchant-service.yaml

mybatis-plus: typeAliasesPackage: com.huiminpay.merchant.entity mapper-locations: classpath:com/huiminpay/*/mapper/*.xml

  1. 应用配置到项目中:bootstrap.yml

- refresh: true data-id: spring-boot-mybatis-plus.yaml # spring boot mybatisplus配置 group: COMMON_GROUP # 通用配置组

  1. 添加分页和性能分析插件:MybatisPlusConfig

package com.huiminpay.merchant.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author Administrator * @version 1.0 **/ @Configuration @MapperScan("com.huiminpay.**.mapper") public class MybatisPlusConfig { /** * 分页插件,自动识别数据库类型 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } /** * 启用性能分析插件 */ @Bean public PerformanceInterceptor performanceInterceptor(){ return new PerformanceInterceptor(); } }

1.7.3创建接口

在huiminpay-merchant-api下新建商户接口:MerchantService

package com.huiminpay.merchant.api; import com.huiminpay.merchant.api.dto.MerchantDTO; public interface IMerchantService{ /** * 根据ID查询商户信息 * @param merchantId * @return */ MerchantDTO queryMerchantById(Long merchantId); }

注意:DTO类型的对象作为service层传输的对象。

dto:表示的是 vo和entity的一个中间转换对象,是vo或entity对象中属性的一个子对象。当前端传来vo数据,我们提取vo中的数据到dto中,再将dto的数据处理后全部移动到entity中进行数据的保存。反之亦然

在huiminpay-merchant-api工程 定义MerchantDTO

package com.huiminpay.merchant.dto; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @ApiModel("商户基本信息") @Data public class MerchantDTO implements Serializable { /** * 主键 */ // @JsonSerialize(using = ToStringSerializer.class) private Long id; /** * 商户名称 */ @ApiModelProperty(name = "merchantName",value = "商户名称",example = "黄焖鸡") private String merchantName; /** * 企业编号 */ @ApiModelProperty(name = "merchantNo",value = "企业编号",example = "10000") private String merchantNo; /** * 企业地址 */ private String merchantAddress; /** * 商户类型 */ private String merchantType; /** * 营业执照(企业证明) */ private String businessLicensesImg; /** * 法人身份证正面照片 */ private String idCardFrontImg; /** * 法人身份证反面照片 */ private String idCardAfterImg; /** * 联系人姓名 */ private String username; /** * 联系人手机号(关联统一账号) */ private String mobile; /** * 联系人地址 */ private String contactsAddress; /** * 审核状态 0-未申请,1-已申请待审核,2-审核通过,3-审核拒绝 */ private String auditStatus; /** * 租户ID,关联统一用户 */ private Long tenantId; private String password; }

@ApiModel和 @ApiModelProperty是Swagger注解后边会学习。

实现类:

聚合支付项目-14改写为长尾可以是:聚合支付项目-14具体是做什么的?

package com.huiminpay.merchant.service; import com.huiminpay.merchant.entity.Merchant; import com.huiminpay.merchant.mapper.MerchantMapper; import com.yh.merchant.api.IMerchantService; import com.yh.merchant.api.dto.MerchantDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; /** * <p> * 服务实现类 * </p> * * @author suozhenhua * @since 2021-03-15 */ @Slf4j @org.apache.dubbo.config.annotation.Service public class MerchantServiceImpl implements IMerchantService { @Autowired MerchantMapper merchantMapper; @Override public MerchantDTO queryMerchantById(Long merchantId) { Merchant merchant = merchantMapper.selectById(merchantId); MerchantDTO merchantDTO = new MerchantDTO(); BeanUtils.copyProperties(merchant,merchantDTO); return merchantDTO; } }

1.7.4创建接口实现

在huiminpay-merchant-service下新建商户接口实现类:MerchantServiceImpl,并添加新建商户测试方法 本方法从huiminpay_merchant_service数据库的merchant表查询数据。

public MerchantDTO queryMerchantById(Long merchantId) { Merchant merchant = merchantMapper.selectById(merchantId); MerchantDTO merchantDTO = new MerchantDTO(); BeanUtils.copyProperties(merchant,merchantDTO); return merchantDTO; }

1.7.5应用层

在huiminpay-merchant-application下添加如下pom依赖:

<dependency> <groupId>com.huiminpay</groupId> <artifactId>huiminpay-merchant-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency>

在huiminpay-merchant-application下新建商户Controller:MerchantController,并调用商户中心服务提供的新 建商户接口

package com.huiminpay.merchant.controller; import com.yh.merchant.api.IMerchantService; import com.yh.merchant.api.dto.MerchantDTO; import org.apache.dubbo.config.annotation.Reference; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class MerchantController { @Reference IMerchantService merchantService; @GetMapping("/merchants/{id}") public MerchantDTO queryMerchantById(@PathVariable("id") Long id) { MerchantDTO merchantDTO = merchantService.queryMerchantById(id); return merchantDTO; } }

  1. 启动商户平台应用和商户服务
  2. 访问 localhost:57010/merchant/merchants/具体的id值 测试查询商户

如果merchant表没有数据可手动添加后再行测试。

本文共计1493个文字,预计阅读时间需要6分钟。

聚合支付项目-14改写为长尾可以是:聚合支付项目-14具体是做什么的?

1.7+ 工程测试+通过一个案例了解Id查询商家的开发历程。基于此,介绍基本开发方法。

1.7.1 生成代码+使用mp的自动生成工程生成entity、mapper等文件。

1.2 修改生成类中的数据库连接,连接到Id查询商家。

1.7 工程测试

通过一个案例”根据Id查询商户“的开发去熟悉项目架构的基本开发方法。

1.7.1生成代码

使用mp的自动生成工程生成entity、mapper等文件。

1)修改生成类中的数据库链接,连接huiminpay_merchant_service数据库

2)设置包路径

PackageConfig packageConfig = new PackageConfig(); packageConfig.setParent("com.huiminpay");

3)运行生成类,输入模块名:merchant

生成成功:

将生成的entity、mapper拷贝到huiminpay-merchant-service工程

1.7.2Mybatis-Plus配置

1.7.2.1配置连接池Druid

  1. 在nacos中新建连接池Druid配置:spring-boot-starter-druid.yaml,Group为:COMMON_GROUP
    内容如下:

spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/oauth?useUnicode=true username: root password: yourpassword druid: initial-size: 5 min-idle: 5 max-active: 20 max-wait: 60000 time-between-eviction-runs-millis: 60000 min-evictable-idle-time-millis: 300000 validation-query: SELECT 1 FROM DUAL test-while-idle: true test-on-borrow: true test-on-return: false pool-prepared-statements: true max-pool-prepared-statement-per-connection-size: 20 filter: stat: slow-sql-millis: 1 log-slow-sql: true filters: config,stat,wall,log4j2 web-stat-filter: enabled: true url-pattern: /* exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*" session-stat-enable: false session-stat-max-count: 1000 principal-cookie-name: admin principal-session-name: admin profile-enable: true stat-view-servlet: enabled: true url-pattern: /druid/* allow: 127.0.0.1 deny: 127.0.0.1 reset-enable: false login-password: admin login-username: admin aop-patterns: com.huiminpay.*.service.*

  1. 商户服务覆盖部分配置(数据库名和用户名密码):merchant-service.yaml

# 覆盖spring‐boot‐starter‐druid.yaml的项目 spring: datasource: druid: url: jdbc:mysql://127.0.0.1:3306/huiminpay_merchant_service?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: yourpassword

  1. 应用配置到项目中:bootstrap.yml

- refresh: true data-id: spring-boot-starter-druid.yaml # spring boot starter druid配置 group: COMMON_GROUP # 通用配置组

1.7.2.2配置Mybatis-Plus

  1. 在nacos中添加配置:spring-boot-mybatis-plus.yaml,Group为:COMMON_GROUP

mybatis-plus: configuration: cache-enabled: false map-underscore-to-camel-case: true global-config: id-type: 0 field-strategy: 0 db-column-underline: true refresh-mapper: true typeAliasesPackage: com.huiminpay.user.entity mapper-locations: classpath:com/huimin/*/mapper/*.xml

  1. 商户服务覆盖部分Mybatis-Plus配置:merchant-service.yaml

mybatis-plus: typeAliasesPackage: com.huiminpay.merchant.entity mapper-locations: classpath:com/huiminpay/*/mapper/*.xml

  1. 应用配置到项目中:bootstrap.yml

- refresh: true data-id: spring-boot-mybatis-plus.yaml # spring boot mybatisplus配置 group: COMMON_GROUP # 通用配置组

  1. 添加分页和性能分析插件:MybatisPlusConfig

package com.huiminpay.merchant.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import com.baomidou.mybatisplus.extension.plugins.PerformanceInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** * @author Administrator * @version 1.0 **/ @Configuration @MapperScan("com.huiminpay.**.mapper") public class MybatisPlusConfig { /** * 分页插件,自动识别数据库类型 */ @Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } /** * 启用性能分析插件 */ @Bean public PerformanceInterceptor performanceInterceptor(){ return new PerformanceInterceptor(); } }

1.7.3创建接口

在huiminpay-merchant-api下新建商户接口:MerchantService

package com.huiminpay.merchant.api; import com.huiminpay.merchant.api.dto.MerchantDTO; public interface IMerchantService{ /** * 根据ID查询商户信息 * @param merchantId * @return */ MerchantDTO queryMerchantById(Long merchantId); }

注意:DTO类型的对象作为service层传输的对象。

dto:表示的是 vo和entity的一个中间转换对象,是vo或entity对象中属性的一个子对象。当前端传来vo数据,我们提取vo中的数据到dto中,再将dto的数据处理后全部移动到entity中进行数据的保存。反之亦然

在huiminpay-merchant-api工程 定义MerchantDTO

package com.huiminpay.merchant.dto; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; @ApiModel("商户基本信息") @Data public class MerchantDTO implements Serializable { /** * 主键 */ // @JsonSerialize(using = ToStringSerializer.class) private Long id; /** * 商户名称 */ @ApiModelProperty(name = "merchantName",value = "商户名称",example = "黄焖鸡") private String merchantName; /** * 企业编号 */ @ApiModelProperty(name = "merchantNo",value = "企业编号",example = "10000") private String merchantNo; /** * 企业地址 */ private String merchantAddress; /** * 商户类型 */ private String merchantType; /** * 营业执照(企业证明) */ private String businessLicensesImg; /** * 法人身份证正面照片 */ private String idCardFrontImg; /** * 法人身份证反面照片 */ private String idCardAfterImg; /** * 联系人姓名 */ private String username; /** * 联系人手机号(关联统一账号) */ private String mobile; /** * 联系人地址 */ private String contactsAddress; /** * 审核状态 0-未申请,1-已申请待审核,2-审核通过,3-审核拒绝 */ private String auditStatus; /** * 租户ID,关联统一用户 */ private Long tenantId; private String password; }

@ApiModel和 @ApiModelProperty是Swagger注解后边会学习。

实现类:

聚合支付项目-14改写为长尾可以是:聚合支付项目-14具体是做什么的?

package com.huiminpay.merchant.service; import com.huiminpay.merchant.entity.Merchant; import com.huiminpay.merchant.mapper.MerchantMapper; import com.yh.merchant.api.IMerchantService; import com.yh.merchant.api.dto.MerchantDTO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; /** * <p> * 服务实现类 * </p> * * @author suozhenhua * @since 2021-03-15 */ @Slf4j @org.apache.dubbo.config.annotation.Service public class MerchantServiceImpl implements IMerchantService { @Autowired MerchantMapper merchantMapper; @Override public MerchantDTO queryMerchantById(Long merchantId) { Merchant merchant = merchantMapper.selectById(merchantId); MerchantDTO merchantDTO = new MerchantDTO(); BeanUtils.copyProperties(merchant,merchantDTO); return merchantDTO; } }

1.7.4创建接口实现

在huiminpay-merchant-service下新建商户接口实现类:MerchantServiceImpl,并添加新建商户测试方法 本方法从huiminpay_merchant_service数据库的merchant表查询数据。

public MerchantDTO queryMerchantById(Long merchantId) { Merchant merchant = merchantMapper.selectById(merchantId); MerchantDTO merchantDTO = new MerchantDTO(); BeanUtils.copyProperties(merchant,merchantDTO); return merchantDTO; }

1.7.5应用层

在huiminpay-merchant-application下添加如下pom依赖:

<dependency> <groupId>com.huiminpay</groupId> <artifactId>huiminpay-merchant-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency>

在huiminpay-merchant-application下新建商户Controller:MerchantController,并调用商户中心服务提供的新 建商户接口

package com.huiminpay.merchant.controller; import com.yh.merchant.api.IMerchantService; import com.yh.merchant.api.dto.MerchantDTO; import org.apache.dubbo.config.annotation.Reference; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; @RestController public class MerchantController { @Reference IMerchantService merchantService; @GetMapping("/merchants/{id}") public MerchantDTO queryMerchantById(@PathVariable("id") Long id) { MerchantDTO merchantDTO = merchantService.queryMerchantById(id); return merchantDTO; } }

  1. 启动商户平台应用和商户服务
  2. 访问 localhost:57010/merchant/merchants/具体的id值 测试查询商户

如果merchant表没有数据可手动添加后再行测试。