From bcef4245709a07f70d33de33787694c3e193d9b5 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 9 May 2025 10:10:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E5=95=86=E6=88=B7=E7=BB=93=E8=B4=A6?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 25 +++- .../wallet/api/dto/mch/MchCheckoutDto.java | 8 ++ .../api/entity/mch/MchCheckoutEntity.java | 108 ++++++++++++++++++ .../wallet/api/vo/mch/MchCheckoutVo.java | 8 ++ .../controller/mch/MchCheckoutController.java | 82 +++++++++++++ .../wallet/mapper/mch/MchCheckoutMapper.java | 11 ++ .../wallet/service/MchCheckoutService.java | 8 ++ .../impl/mch/MchCheckoutServiceImpl.java | 13 +++ .../mapper/mch/MchCheckoutMapper.xml | 20 ++++ 9 files changed, 282 insertions(+), 1 deletion(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchCheckoutDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchCheckoutEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchCheckoutVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchCheckoutController.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchCheckoutMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchCheckoutService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchCheckoutServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchCheckoutMapper.xml diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index 6817780df..90511ebe5 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -559,4 +559,27 @@ CREATE TABLE wallet_setting del_flag char(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记', tenant_id bigint DEFAULT NULL COMMENT '租户ID', PRIMARY KEY (id) -) ENGINE = InnoDB COMMENT ='支付设置'; \ No newline at end of file +) ENGINE = InnoDB COMMENT ='支付设置'; + + +-- ---------------------------- +-- Table structure for mch_checkout +-- ---------------------------- +DROP TABLE IF EXISTS mch_checkout; +CREATE TABLE mch_checkout +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '创建者', + checkout_time date NOT NULL COMMENT '结账年月日(存入年月就行)', + checkout_user_id bigint NOT NULL COMMENT '结账人', + merchant_id bigint NOT NULL COMMENT '商户id', + price bigint NOT NULL COMMENT '结账价格', + pic varchar(2048) DEFAULT NULL COMMENT '结账凭证图片', + remark varchar(512) 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 COMMENT ='商户结账表'; \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchCheckoutDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchCheckoutDto.java new file mode 100644 index 000000000..05579ac8c --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchCheckoutDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.dto.mch; + +import com.bsd.pjcloud.wallet.api.entity.mch.MchCheckoutEntity; +import lombok.Data; + +@Data +public class MchCheckoutDto extends MchCheckoutEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchCheckoutEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchCheckoutEntity.java new file mode 100644 index 000000000..d0f05802d --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchCheckoutEntity.java @@ -0,0 +1,108 @@ +package com.bsd.pjcloud.wallet.api.entity.mch; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 商户结账 + */ +@Data +@TenantTable +@TableName("mch_checkout") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "商户结账") +public class MchCheckoutEntity extends Model { + + + /** + * 创建者 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "创建者") + private Long id; + + /** + * 结账年月日(存入年月就行) + */ + @Schema(description = "结账年月日(存入年月就行)") + private LocalDate checkoutTime; + + /** + * 结账人 + */ + @Schema(description = "结账人") + private Long checkoutUserId; + + /** + * 商户id + */ + @Schema(description = "商户id") + private Long merchantId; + + /** + * 结账价格 + */ + @Schema(description = "结账价格") + private Long price; + + /** + * 结账凭证图片 + */ + @Schema(description = "结账凭证图片") + private String pic; + + /** + * 结账备注 + */ + @Schema(description = "结账备注") + private String remark; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") + private LocalDateTime createTime; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") + private String updateBy; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") + private String delFlag; + + /** + * 租户ID + */ + @Schema(description = "租户ID") + private Long tenantId; +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchCheckoutVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchCheckoutVo.java new file mode 100644 index 000000000..21f309438 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchCheckoutVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.vo.mch; + +import com.bsd.pjcloud.wallet.api.entity.mch.MchCheckoutEntity; +import lombok.Data; + +@Data +public class MchCheckoutVo extends MchCheckoutEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchCheckoutController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchCheckoutController.java new file mode 100644 index 000000000..88cb4f668 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchCheckoutController.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.wallet.controller.mch; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +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.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.wallet.api.entity.mch.MchCheckoutEntity; +import com.bsd.pjcloud.wallet.service.MchCheckoutService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 商户结账 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/mch-checkout") +@Tag(description = "mch-checkout", name = "商户结账管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class MchCheckoutController { + + private final MchCheckoutService mchCheckoutService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('wallet_mchCheckout_view')") + public R getMchCheckoutPage(@ParameterObject Page page, @ParameterObject MchCheckoutEntity mchCheckout) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(mchCheckoutService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('wallet_mchCheckout_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(mchCheckoutService.getById(id)); + } + + @Operation(summary = "新增商户结账", description = "新增商户结账") + @SysLog("新增商户结账") + @PostMapping + @PreAuthorize("@pms.hasPermission('wallet_mchCheckout_add')") + public R save(@RequestBody MchCheckoutEntity mchCheckout) { + return R.ok(mchCheckoutService.save(mchCheckout)); + } + + @Operation(summary = "修改商户结账", description = "修改商户结账") + @SysLog("修改商户结账") + @PutMapping + @PreAuthorize("@pms.hasPermission('wallet_mchCheckout_edit')") + public R updateById(@RequestBody MchCheckoutEntity mchCheckout) { + return R.ok(mchCheckoutService.updateById(mchCheckout)); + } + + @Operation(summary = "通过id删除商户结账", description = "通过id删除商户结账") + @SysLog("通过id删除商户结账") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('wallet_mchCheckout_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(mchCheckoutService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('wallet_mchCheckout_export')") + public List export(MchCheckoutEntity mchCheckout, Long[] ids) { + return mchCheckoutService.list(Wrappers.lambdaQuery(mchCheckout).in(ArrayUtil.isNotEmpty(ids), MchCheckoutEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchCheckoutMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchCheckoutMapper.java new file mode 100644 index 000000000..e8a963204 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchCheckoutMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper.mch; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.mch.MchCheckoutEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MchCheckoutMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchCheckoutService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchCheckoutService.java new file mode 100644 index 000000000..02fd8692f --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchCheckoutService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.wallet.api.entity.mch.MchCheckoutEntity; + +public interface MchCheckoutService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchCheckoutServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchCheckoutServiceImpl.java new file mode 100644 index 000000000..041d223e1 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchCheckoutServiceImpl.java @@ -0,0 +1,13 @@ +package com.bsd.pjcloud.wallet.service.impl.mch; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.mch.MchCheckoutEntity; +import com.bsd.pjcloud.wallet.mapper.mch.MchCheckoutMapper; +import com.bsd.pjcloud.wallet.service.MchCheckoutService; +import org.springframework.stereotype.Service; +/** + * 商户结账 + */ +@Service +public class MchCheckoutServiceImpl extends ServiceImpl implements MchCheckoutService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchCheckoutMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchCheckoutMapper.xml new file mode 100644 index 000000000..3b63ca632 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchCheckoutMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file