From c086729afbbc27e08efc2e327c958b54b2471d8a Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 2 Jan 2025 12:00:52 +0800 Subject: [PATCH] =?UTF-8?q?del:=E5=88=A0=E9=99=A4=E5=95=86=E6=88=B7?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=20creat:=E6=96=B0=E5=BB=BA=E9=92=B1=E5=8C=85?= =?UTF-8?q?=E5=95=86=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 30 +++ .../common/core/constant/CacheConstants.java | 2 + pjcloud-merchant/.editorconfig | 18 -- pjcloud-merchant/README.md | 22 --- pjcloud-merchant/pjcloud-merchant-api/pom.xml | 42 ----- .../java/merchant/api/feign/packge-info.java | 6 - .../java/merchant/constant/packge-info.java | 6 - .../main/java/merchant/dto/packge-info.java | 6 - .../java/merchant/entity/packge-info.java | 6 - pjcloud-merchant/pjcloud-merchant-biz/pom.xml | 134 -------------- .../src/main/java/merchant/MerchantApp.java | 24 --- .../java/merchant/controller/packge-info.java | 4 - .../java/merchant/mapper/MchManageMapper.java | 10 - .../java/merchant/mapper/packge-info.java | 6 - .../merchant/service/MchManageService.java | 8 - .../service/impl/MchManageServiceImpl.java | 16 -- .../java/merchant/service/packge-info.java | 4 - .../src/main/resources/application.yml | 18 -- .../src/main/resources/logback-spring.xml | 70 ------- pjcloud-merchant/pom.xml | 21 --- .../pjcloud/wallet/api/dto/MchManageDto.java | 8 + .../wallet/api}/entity/MchManageEntity.java | 6 +- .../wallet/api/feign/RemoteMchService.java | 29 +++ .../wallet/api/feign/RemoteWalletService.java | 1 - .../pjcloud/wallet/api/vo/MchManageVo.java | 12 ++ .../api/vo/code/MchCollectionCodeVo.java | 23 +++ ...mework.cloud.openfeign.FeignClient.imports | 3 +- .../controller/MchManageController.java | 80 ++++++-- .../wallet/mapper/MchManageMapper.java | 21 +++ .../wallet/service/MchManageService.java | 25 +++ .../service/impl/MchManageServiceImpl.java | 175 ++++++++++++++++++ .../service/impl/WalletActiveServiceImpl.java | 1 + .../service/impl/WalletManageServiceImpl.java | 1 - .../main/resources/mapper/MchManageMapper.xml | 4 +- 34 files changed, 398 insertions(+), 444 deletions(-) delete mode 100644 pjcloud-merchant/.editorconfig delete mode 100644 pjcloud-merchant/README.md delete mode 100644 pjcloud-merchant/pjcloud-merchant-api/pom.xml delete mode 100644 pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/api/feign/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/constant/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/dto/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/pom.xml delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/MerchantApp.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/MchManageMapper.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/MchManageService.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/impl/MchManageServiceImpl.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/packge-info.java delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/application.yml delete mode 100644 pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/logback-spring.xml delete mode 100644 pjcloud-merchant/pom.xml create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java rename {pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant => pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api}/entity/MchManageEntity.java (96%) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/code/MchCollectionCodeVo.java rename {pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant => pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet}/controller/MchManageController.java (53%) create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java rename {pjcloud-merchant/pjcloud-merchant-biz => pjcloud-wallet/pjcloud-wallet-biz}/src/main/resources/mapper/MchManageMapper.xml (87%) diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index cd99d11f6..bad0e5c45 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -1,5 +1,35 @@ create database `pjcloudx_wallet` default character set utf8mb4 collate utf8mb4_general_ci; + +-- ---------------------------- +-- Table structure for mch_manage +-- ---------------------------- +DROP TABLE IF EXISTS `mch_manage`; +CREATE TABLE mch_manage +( + id bigint NOT NULL COMMENT '主键', + dept_id bigint NOT NULL COMMENT '绑定的部门id', + name varchar(64) NOT NULL COMMENT '商户名', + types varchar(64) NOT NULL COMMENT '店铺类型,逗号分隔', + logo_pic varchar(256) NOT NULL COMMENT '商户logo图片', + collection_code varchar(256) DEFAULT '' COMMENT '商户收款码,自动生成', + swiper_pic text DEFAULT NULL COMMENT '商户轮播图,逗号分隔', + phone varchar(128) DEFAULT '' COMMENT '商户手机号', + job_start_time timestamp DEFAULT NULL COMMENT '商户开始营业时间', + job_end_time timestamp DEFAULT NULL COMMENT '商户结束营业时间', + address_des varchar(256) DEFAULT NULL COMMENT '商户地址', + create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', + create_time datetime DEFAULT NULL COMMENT '创建时间', + update_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '修改人', + update_time datetime DEFAULT NULL COMMENT '修改时间', + del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', + tenant_id bigint DEFAULT NULL COMMENT '租户ID', + PRIMARY KEY (id) +) ENGINE = InnoDB + DEFAULT CHARSET = utf8mb4 + COLLATE = utf8mb4_general_ci COMMENT ='商户管理'; +CREATE INDEX idx_dept_id ON mch_manage (dept_id); + -- ---------------------------- -- Table structure for wallet_manage -- ---------------------------- diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java index f349c7f61..5229d1554 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/CacheConstants.java @@ -122,6 +122,8 @@ public interface CacheConstants { /* ************************************* start 钱包相关 start ************************************* */ + String WALLET_MCH = "wallet:detail:mch"; + String WALLET_DETAIL = "wallet:detail:manage"; String WALLET_TYPE_DETAIL = "wallet:detail:type"; diff --git a/pjcloud-merchant/.editorconfig b/pjcloud-merchant/.editorconfig deleted file mode 100644 index 2f2262bb1..000000000 --- a/pjcloud-merchant/.editorconfig +++ /dev/null @@ -1,18 +0,0 @@ -# 开发组IDE 编辑器标准 V2.1.0 -root = true - -[*.{adoc, bat, groovy, html, java, js, jsp, kt, kts, md, properties, py, rb, sh, sql, svg, txt, xml, xsd}] -charset = utf-8 - -[*.{groovy, java, kt, kts, xml, xsd}] -indent_style = tab -indent_size = 4 -continuation_indent_size = 8 -end_of_line = lf - -[*.{js, html}] -indent_style = space -indent_size = 2 -end_of_line = lf -insert_final_newline = true -trim_trailing_whitespace = true diff --git a/pjcloud-merchant/README.md b/pjcloud-merchant/README.md deleted file mode 100644 index 77b54353a..000000000 --- a/pjcloud-merchant/README.md +++ /dev/null @@ -1,22 +0,0 @@ - -项目描述 .... - - - - -| 姓名 | 角色 | 时间 | -| ---- | ---- |---------| -| xxx | 开发 | 2023-01 | -| | | | -| | | | - - - - -``` -项目根目录 -├── xxx-api -- 业务接口(实体,DTO,utils,feign接口) -├── xxx-biz -- 业务实现[默认服务端口 : 6060] -``` - - diff --git a/pjcloud-merchant/pjcloud-merchant-api/pom.xml b/pjcloud-merchant/pjcloud-merchant-api/pom.xml deleted file mode 100644 index 6a63133f0..000000000 --- a/pjcloud-merchant/pjcloud-merchant-api/pom.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - 4.0.0 - - com.bsd - pjcloud-merchant - 5.7.0 - - - pjcloud-merchant-api - - - - - com.github.yulichang - mybatis-plus-join-annotation - - - - com.bsd - pjcloud-common-core - - - - com.baomidou - mybatis-plus-spring - - - - com.bsd - pjcloud-common-feign - - - - com.bsd - pjcloud-common-excel - - - diff --git a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/api/feign/packge-info.java b/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/api/feign/packge-info.java deleted file mode 100644 index cad138c33..000000000 --- a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/api/feign/packge-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/* - @author pigx archetype - *

- * feign client 存放目录,注意 @EnablePigxFeignClients 的扫描范围 - */ -package merchant.api.feign; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/constant/packge-info.java b/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/constant/packge-info.java deleted file mode 100644 index 8ffa52ee9..000000000 --- a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/constant/packge-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/* - * @author pigx archetype - *

- * 常量和枚举定义 - */ -package merchant.constant; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/dto/packge-info.java b/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/dto/packge-info.java deleted file mode 100644 index 7ef402142..000000000 --- a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/dto/packge-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/* - * @author pigx archetype - *

- * DTO 存放目录 - */ -package merchant.dto; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/packge-info.java b/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/packge-info.java deleted file mode 100644 index 61923d055..000000000 --- a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/packge-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/* - * @author pigx archetype - *

- * 实体 存放目录 - */ -package merchant.entity; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/pom.xml b/pjcloud-merchant/pjcloud-merchant-biz/pom.xml deleted file mode 100644 index a50062133..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/pom.xml +++ /dev/null @@ -1,134 +0,0 @@ - - - 4.0.0 - - com.bsd - pjcloud-merchant - 5.7.0 - - - pjcloud-merchant-biz - - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-discovery - - - - com.alibaba.cloud - spring-cloud-starter-alibaba-nacos-config - - - - com.bsd - pjcloud-common-data - - - - com.bsd - pjcloud-common-security - - - - com.bsd - pjcloud-common-xss - - - - com.bsd - pjcloud-common-sentinel - - - - com.bsd - pjcloud-common-feign - - - - com.bsd - pjcloud-merchant-api - 5.7.0 - - - - com.bsd - pjcloud-common-log - - - - com.baomidou - mybatis-plus-spring-boot3-starter - - - - com.alibaba - druid-spring-boot-3-starter - - - - com.mysql - mysql-connector-j - - - - com.bsd - pjcloud-common-swagger - - - - org.springframework.boot - spring-boot-starter-undertow - - - - org.springframework.boot - spring-boot-starter-web - - - - org.springframework.boot - spring-boot-starter-test - - - - - cloud - - true - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - repackage - - - CLASSIC - - - - - - io.fabric8 - docker-maven-plugin - - false - - - - - - - boot - - - diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/MerchantApp.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/MerchantApp.java deleted file mode 100644 index c24afdca0..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/MerchantApp.java +++ /dev/null @@ -1,24 +0,0 @@ -package merchant; - -import com.bsd.pjcloud.common.feign.annotation.EnablePjcloudFeignClients; -import com.bsd.pjcloud.common.security.annotation.EnablePjcloudResourceServer; -import com.bsd.pjcloud.common.swagger.annotation.EnableOpenApi; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.cloud.client.discovery.EnableDiscoveryClient; - -/** - * @author archetype auto - *

- * 项目启动类 - */ -@EnableOpenApi("merchant") -@EnablePjcloudFeignClients -@EnableDiscoveryClient -@EnablePjcloudResourceServer -@SpringBootApplication -public class MerchantApp { - public static void main(String[] args) { - SpringApplication.run(MerchantApp.class, args); - } -} diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/packge-info.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/packge-info.java deleted file mode 100644 index 030660b23..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/packge-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/* - * @author pigx archetype - */ -package merchant.controller; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/MchManageMapper.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/MchManageMapper.java deleted file mode 100644 index e163e607c..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/MchManageMapper.java +++ /dev/null @@ -1,10 +0,0 @@ -package merchant.mapper; - -import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; -import merchant.entity.MchManageEntity; -import org.apache.ibatis.annotations.Mapper; - -@Mapper -public interface MchManageMapper extends PjcloudBaseMapper { - -} \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/packge-info.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/packge-info.java deleted file mode 100644 index 7f3d48085..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/mapper/packge-info.java +++ /dev/null @@ -1,6 +0,0 @@ -/* - * @author pigx archetype - *

- * Mybatis Mapper 存放目录 - */ -package merchant.mapper; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/MchManageService.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/MchManageService.java deleted file mode 100644 index 12c2357c9..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/MchManageService.java +++ /dev/null @@ -1,8 +0,0 @@ -package merchant.service; - -import com.baomidou.mybatisplus.extension.service.IService; -import merchant.entity.MchManageEntity; - -public interface MchManageService extends IService { - -} \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/impl/MchManageServiceImpl.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/impl/MchManageServiceImpl.java deleted file mode 100644 index 174e6f146..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/impl/MchManageServiceImpl.java +++ /dev/null @@ -1,16 +0,0 @@ -package merchant.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import merchant.entity.MchManageEntity; -import merchant.mapper.MchManageMapper; -import merchant.service.MchManageService; -import org.springframework.stereotype.Service; -/** - * 商户管理 - * - * @author pjcloud - * @date 2024-12-27 17:25:08 - */ -@Service -public class MchManageServiceImpl extends ServiceImpl implements MchManageService { -} \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/packge-info.java b/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/packge-info.java deleted file mode 100644 index d388ec919..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/service/packge-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/* - * @author pigx archetype - */ -package merchant.service; \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/application.yml b/pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/application.yml deleted file mode 100644 index d4e63e272..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/application.yml +++ /dev/null @@ -1,18 +0,0 @@ -server: - port: 6060 - -spring: - application: - name: @artifactId@ - cloud: - nacos: - username: @nacos.username@ - password: @nacos.password@ - discovery: - server-addr: ${NACOS_HOST:pjcloud-register}:${NACOS_PORT:8848} - config: - server-addr: ${spring.cloud.nacos.discovery.server-addr} - config: - import: - - optional:nacos:application-@profiles.active@.yml - - optional:nacos:${spring.application.name}-@profiles.active@.yml diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/logback-spring.xml b/pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/logback-spring.xml deleted file mode 100644 index 964ca8735..000000000 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - ${CONSOLE_LOG_PATTERN} - - - - - - ${log.path}/debug.log - - ${log.path}/%d{yyyy-MM, aux}/debug.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - - - - ${log.path}/error.log - - ${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz - 50MB - 30 - - - %date [%thread] %-5level [%logger{50}] %file:%line - %msg%n - - - ERROR - - - - - - - - - - - - - - - - - diff --git a/pjcloud-merchant/pom.xml b/pjcloud-merchant/pom.xml deleted file mode 100644 index 79da54d89..000000000 --- a/pjcloud-merchant/pom.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - 4.0.0 - - - com.bsd - pjcloud - 5.7.0 - - - pjcloud-merchant - pom - - - - pjcloud-merchant-api - pjcloud-merchant-biz - - diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java new file mode 100644 index 000000000..499b09ae9 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; +import lombok.Data; + +@Data +public class MchManageDto extends MchManageEntity { +} diff --git a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/MchManageEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java similarity index 96% rename from pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/MchManageEntity.java rename to pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java index 75cca3ad4..cb8cd549c 100644 --- a/pjcloud-merchant/pjcloud-merchant-api/src/main/java/merchant/entity/MchManageEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java @@ -1,4 +1,4 @@ -package merchant.entity; +package com.bsd.pjcloud.wallet.api.entity; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; @@ -11,8 +11,8 @@ import java.time.LocalDateTime; /** * 商户管理 * - * @author pjcloud - * @date 2024-12-27 17:25:08 + * @author dzc + * @date 2025-01-02 11:09:26 */ @Data @TenantTable diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java new file mode 100644 index 000000000..48312cb12 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java @@ -0,0 +1,29 @@ +package com.bsd.pjcloud.wallet.api.feign; + +import com.bsd.pjcloud.common.core.constant.ServiceNameConstants; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.feign.annotation.NoToken; +import com.bsd.pjcloud.wallet.api.constant.WalletTypeCodeEnum; +import com.bsd.pjcloud.wallet.api.dto.MchManageDto; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; + +@FeignClient(contextId = "remoteMchService", value = ServiceNameConstants.WALLET_SERVICE) +public interface RemoteMchService { + + @NoToken + @GetMapping("/get-by-id") + R getById(@RequestParam Long id); + + @NoToken + @GetMapping("/get-by-dept-id") + R getByDeptId(@RequestParam Long deptId); + + @NoToken + @GetMapping("/get-first-mch") + R getFirstMch(@RequestParam List deptIds); + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java index f1956c7e5..5523ff404 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java @@ -7,7 +7,6 @@ import com.bsd.pjcloud.wallet.api.constant.WalletTypeCodeEnum; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java new file mode 100644 index 000000000..2dfb00085 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java @@ -0,0 +1,12 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.admin.api.vo.base.BaseDeptInterface; +import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; +import lombok.Data; + +@Data +public class MchManageVo extends MchManageEntity implements BaseDeptInterface { + + private String deptName; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/code/MchCollectionCodeVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/code/MchCollectionCodeVo.java new file mode 100644 index 000000000..ea4af2c79 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/code/MchCollectionCodeVo.java @@ -0,0 +1,23 @@ +package com.bsd.pjcloud.wallet.api.vo.code; + +import lombok.Data; + +@Data +public class MchCollectionCodeVo { + /** + * 商户Id + */ + private Long id; + /** + * 商户名 + */ + private String name; + /** + * 商户类型 + */ + private String type; + + public String getFileName() { + return "merchant_collect_money_code_" + id; + } +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports b/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports index 66232e3fa..958a7276d 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports @@ -1 +1,2 @@ -com.bsd.pjcloud.wallet.api.feign.RemoteWalletService \ No newline at end of file +com.bsd.pjcloud.wallet.api.feign.RemoteWalletService +com.bsd.pjcloud.wallet.api.feign.RemoteMchService \ No newline at end of file diff --git a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java similarity index 53% rename from pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/MchManageController.java rename to pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java index aff9a7492..b0e0d952b 100644 --- a/pjcloud-merchant/pjcloud-merchant-biz/src/main/java/merchant/controller/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java @@ -1,14 +1,20 @@ -package merchant.controller; +package com.bsd.pjcloud.wallet.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; -import merchant.entity.MchManageEntity; -import merchant.service.MchManageService; +import com.bsd.pjcloud.common.security.annotation.Inner; +import com.bsd.pjcloud.wallet.api.constant.WalletTypeCodeEnum; +import com.bsd.pjcloud.wallet.api.dto.MchManageDto; +import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; +import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; +import com.bsd.pjcloud.wallet.service.MchManageService; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -24,8 +30,8 @@ import java.util.List; /** * 商户管理 * - * @author pjcloud - * @date 2024-12-27 17:25:08 + * @author dzc + * @date 2025-01-02 11:09:26 */ @RestController @RequiredArgsConstructor @@ -36,6 +42,34 @@ public class MchManageController { private final MchManageService mchManageService; + /* ************************************* start 远程调用 start ************************************* */ + + @Inner + @GetMapping("/get-by-id") + public R getById(@RequestParam Long id) { + MchManageEntity mchManage = mchManageService.getById(id); + if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); + return R.ok(BeanUtils.toBean(mchManage, MchManageDto.class)); + } + + @Inner + @GetMapping("/get-by-dept-id") + public R getByDeptId(@RequestParam Long deptId) { + MchManageDto mchManage = mchManageService.getByDeptId(deptId); + if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); + return R.ok(mchManage); + } + + @Inner + @GetMapping("/get-first-mch") + public R getFirstMch(@RequestParam List deptIds) { + MchManageDto mchManage = mchManageService.getFirstMch(deptIds); + if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); + return R.ok(mchManage); + } + + /* ************************************* end 远程调用 end ************************************* */ + /** * 分页查询 * @@ -45,12 +79,26 @@ public class MchManageController { */ @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") - @PreAuthorize("@pms.hasPermission('mch_mchManage_view')") + @PreAuthorize("@pms.hasPermission('wallet_mchManage_view')") public R getMchManagePage(@ParameterObject Page page, @ParameterObject MchManageEntity mchManage) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); return R.ok(mchManageService.page(page, wrapper)); } + /** + * 分页复杂查询 + * + * @param page 分页对象 + * @param dto 商户管理 + * @return + */ + @Operation(summary = "分页复杂查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('wallet_mchManage_view')") + public R getMchManagePage(@ParameterObject Page page, @ParameterObject MchManageDto dto) { + return R.ok(mchManageService.pageJoin(page, dto)); + } + /** * 通过id查询商户管理 @@ -60,8 +108,8 @@ public class MchManageController { */ @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") - @PreAuthorize("@pms.hasPermission('mch_mchManage_view')") - public R getById(@PathVariable("id") Long id) { + @PreAuthorize("@pms.hasPermission('wallet_mchManage_view')") + public R getDetail(@PathVariable("id") Long id) { return R.ok(mchManageService.getById(id)); } @@ -74,9 +122,9 @@ public class MchManageController { @Operation(summary = "新增商户管理", description = "新增商户管理") @SysLog("新增商户管理") @PostMapping - @PreAuthorize("@pms.hasPermission('mch_mchManage_add')") + @PreAuthorize("@pms.hasPermission('wallet_mchManage_add')") public R save(@RequestBody MchManageEntity mchManage) { - return R.ok(mchManageService.save(mchManage)); + return R.ok(mchManageService.create(mchManage)); } /** @@ -88,9 +136,10 @@ public class MchManageController { @Operation(summary = "修改商户管理", description = "修改商户管理") @SysLog("修改商户管理") @PutMapping - @PreAuthorize("@pms.hasPermission('mch_mchManage_edit')") + @PreAuthorize("@pms.hasPermission('wallet_mchManage_edit')") public R updateById(@RequestBody MchManageEntity mchManage) { - return R.ok(mchManageService.updateById(mchManage)); + mchManageService.edit(mchManage); + return R.ok(true); } /** @@ -102,9 +151,10 @@ public class MchManageController { @Operation(summary = "通过id删除商户管理", description = "通过id删除商户管理") @SysLog("通过id删除商户管理") @DeleteMapping - @PreAuthorize("@pms.hasPermission('mch_mchManage_del')") + @PreAuthorize("@pms.hasPermission('wallet_mchManage_del')") public R removeById(@RequestBody Long[] ids) { - return R.ok(mchManageService.removeBatchByIds(CollUtil.toList(ids))); + mchManageService.delByIds(CollUtil.toList(ids)); + return R.ok(true); } @@ -117,7 +167,7 @@ public class MchManageController { */ @ResponseExcel @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('mch_mchManage_export')") + @PreAuthorize("@pms.hasPermission('wallet_mchManage_export')") public List export(MchManageEntity mchManage, Long[] ids) { return mchManageService.list(Wrappers.lambdaQuery(mchManage).in(ArrayUtil.isNotEmpty(ids), MchManageEntity::getId, ids)); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java new file mode 100644 index 000000000..04b3bde97 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/MchManageMapper.java @@ -0,0 +1,21 @@ +package com.bsd.pjcloud.wallet.mapper; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.MchManageDto; +import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; +import com.github.yulichang.query.MPJLambdaQueryWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MchManageMapper extends PjcloudBaseMapper { + + + default Page pageJoin(Page page, MchManageDto dto) { + MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() + .selectAll(MchManageEntity.class) + .likeIfExists(MchManageEntity::getName, dto.getName()); + return selectJoinPage(page, MchManageVo.class, wrapper); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java new file mode 100644 index 000000000..83e52d323 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.wallet.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.wallet.api.dto.MchManageDto; +import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; + +import java.util.ArrayList; +import java.util.List; + +public interface MchManageService extends IService { + + Long create(MchManageEntity dto); + + void edit(MchManageEntity dto); + + void delByIds(ArrayList list); + + Page pageJoin(Page page, MchManageDto dto); + + MchManageDto getByDeptId(Long deptId); + + MchManageDto getFirstMch(List deptIds); +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java new file mode 100644 index 000000000..366ceaab0 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java @@ -0,0 +1,175 @@ +package com.bsd.pjcloud.wallet.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.entity.SysDept; +import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; +import com.bsd.pjcloud.admin.api.feign.RemoteFileService; +import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.common.core.constant.CacheConstants; +import com.bsd.pjcloud.common.core.exception.CheckedException; +import com.bsd.pjcloud.common.core.util.BeanUtils; +import com.bsd.pjcloud.common.core.util.QRCodeImageGenerator; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.wallet.api.dto.MchManageDto; +import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; +import com.bsd.pjcloud.wallet.api.vo.code.MchCollectionCodeVo; +import com.bsd.pjcloud.wallet.mapper.MchManageMapper; +import com.bsd.pjcloud.wallet.service.MchManageService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CachePut; +import org.springframework.cache.annotation.Cacheable; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.multipart.MultipartFile; + +import java.io.ByteArrayInputStream; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * 商户管理 + * + * @author dzc + * @date 2025-01-02 11:09:26 + */ +@Validated +@Slf4j +@RequiredArgsConstructor +@Service +public class MchManageServiceImpl extends ServiceImpl implements MchManageService { + + private final String TAG = "商户管理"; + + private final RemoteDeptService remoteDeptService; + private final RemoteFileService remoteFileService; + + private final StringRedisTemplate redisTemplate; + + @Override + @Cacheable(value = CacheConstants.WALLET_DETAIL, key = "#id", condition = "#id != null", unless = "#result == null") + public MchManageEntity getById(Serializable id) { + return super.getById(id); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Long create(MchManageEntity dto) { + if (existName(dto.getName(), null)) { + throw new CheckedException("商户名不能重复"); + } + if (existDeptId(dto.getDeptId(), null)) { + throw new CheckedException("改部门已经绑定过商户"); + } + baseMapper.insert(dto); + try { + MchCollectionCodeVo mchCollectionCode = new MchCollectionCodeVo(); + BeanUtils.toBean(dto, MchCollectionCodeVo.class); + byte[] bytes = QRCodeImageGenerator.generateQrCodeImage(JSON.toJSONString(mchCollectionCode), 1024); + MultipartFile multipartFile = new MockMultipartFile("file", mchCollectionCode.getFileName() + ".png", "image/png", new ByteArrayInputStream(bytes)); + R upload = remoteFileService.upload(multipartFile, null, null, null); + Map data = (Map) upload.getData(); + String url = (String) data.get("url"); + MchManageEntity merchantInfoEntity = new MchManageEntity(); + merchantInfoEntity.setCollectionCode(url); + merchantInfoEntity.setId(dto.getId()); + updateById(merchantInfoEntity); + } catch (Exception e) { + e.printStackTrace(); + log.error("|{}|新增商户,生成收款码错误dto:|{}|error:|{}|", TAG, JSON.toJSONString(dto), e.getMessage()); + } + return dto.getId(); + } + + @Override + @CachePut(value = CacheConstants.WALLET_MCH, key = "dto.getId()", condition = "dto.getId() != null", unless = "#result == null ") + public void edit(MchManageEntity dto) { + if (existName(dto.getName(), null)) { + throw new CheckedException("商户名不能重复"); + } + if (existDeptId(dto.getDeptId(), null)) { + throw new CheckedException("改部门已经绑定过商户"); + } + MchManageEntity mchManage = getById(dto.getId()); + if (ObjectUtil.isEmpty(mchManage)) { + throw new CheckedException("商户不存在"); + } + baseMapper.updateById(dto); + } + + @Override + public void delByIds(ArrayList list) { + if (ObjectUtil.isEmpty(list)) return; + delByIds(list); + // 删除缓存 + list.forEach(v -> redisTemplate.opsForValue().getAndDelete(CacheConstants.WALLET_MCH + v)); + } + + @Override + public Page pageJoin(Page page, MchManageDto dto) { + Page list = baseMapper.pageJoin(page, dto); + if (ObjectUtil.isNotEmpty(list.getRecords())) { + // 部门 + List deptIds = list.getRecords().stream().map(MchManageVo::getDeptId).distinct().toList(); + R> deptList = remoteDeptService.getDeptByDeptIds(deptIds); + if (ObjectUtil.isNotEmpty(deptList.getData())) { + DataUtil.convertDeptList(page.getRecords(), deptList.getData()); + } + } + return list; + } + + @Override + public MchManageDto getByDeptId(Long deptId) { + MchManageEntity mchManage = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(MchManageEntity::getDeptId, deptId) + ); + return BeanUtils.toBean(mchManage, MchManageDto.class); + } + + @Override + public MchManageDto getFirstMch(List deptIds) { + List merchantList = baseMapper.selectList(new LambdaQueryWrapper()); + if (ObjectUtil.isEmpty(merchantList)) return null; + for (Long id : deptIds) { + for (MchManageEntity merchant : merchantList) { + if (ObjectUtil.equals(merchant.getDeptId(), id)) { + return BeanUtils.toBean(merchant, MchManageDto.class); + } + } + } + return null; + } + + private boolean existName(String name, Long id) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(name), MchManageEntity::getName, name) + .ne(ObjectUtil.isNotEmpty(id), MchManageEntity::getId, id) + ); + if (ObjectUtil.isNotEmpty(id)) { + return count >= 1; + } + return count > 0; + } + + private boolean existDeptId(Long deptId, Long id) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(deptId), MchManageEntity::getDeptId, deptId) + .ne(ObjectUtil.isNotEmpty(id), MchManageEntity::getId, id) + ); + if (ObjectUtil.isNotEmpty(id)) { + return count >= 1; + } + return count > 0; + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletActiveServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletActiveServiceImpl.java index 08cc28ab6..33c997c26 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletActiveServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletActiveServiceImpl.java @@ -44,6 +44,7 @@ public class WalletActiveServiceImpl extends ServiceImpl - + - +