From d84bf561acde2a721681f27d791b1cca06d5cc8f Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 25 Dec 2025 13:55:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=AC=AC=E4=B8=89=E6=96=B9=E5=85=8D?= =?UTF-8?q?=E5=AF=86=E6=94=AF=E4=BB=98=E8=AE=B0=E5=BD=95=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_hardware.sql | 30 +++- .../api/constant/HardThirdMiTypeEnum.java | 28 ++++ .../api/entity/HardThirdMiOrderEntity.java | 143 ++++++++++++++++++ .../HardThirdMiOrderController.java | 100 ++++++++++++ .../hard/mapper/HardThirdMiOrderMapper.java | 10 ++ .../hard/service/HardThirdMiOrderService.java | 8 + .../impl/HardThirdMiOrderServiceImpl.java | 15 ++ .../mapper/HardThirdMiOrderMapper.xml | 6 + 8 files changed, 339 insertions(+), 1 deletion(-) create mode 100644 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java create mode 100755 pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java create mode 100755 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java create mode 100755 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java create mode 100755 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java create mode 100755 pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardThirdMiOrderServiceImpl.java create mode 100755 pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardThirdMiOrderMapper.xml diff --git a/db/800pjcloudx_hardware.sql b/db/800pjcloudx_hardware.sql index cd04b8c58..d93d5c60c 100644 --- a/db/800pjcloudx_hardware.sql +++ b/db/800pjcloudx_hardware.sql @@ -571,4 +571,32 @@ CREATE TABLE hard_spu_repertory 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 hard_third_mi_order +-- ---------------------------- +DROP TABLE IF EXISTS hard_third_mi_order; +CREATE TABLE hard_third_mi_order +( + id bigint NOT NULL AUTO_INCREMENT COMMENT '编号', + biz_type tinytext NOT NULL COMMENT '上架类型', + user_id bigint NOT NULL COMMENT '用户id', + auth_id bigint COMMENT '授权id', + flow_id bigint COMMENT '流程id', + order_id bigint COMMENT '订单id', + out_order_no varchar(128) COMMENT '外部订单号', + third_order_no varchar(128) COMMENT '第三方订单号', + create_order_time datetime DEFAULT NULL COMMENT '创建订单时间', + pay_order_time datetime DEFAULT NULL COMMENT '支付时间', + refund_order_time datetime DEFAULT NULL COMMENT '退款时间', + order_status tinyint COMMENT '订单状态', + org_json text COMMENT '原始json数据', + 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-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java new file mode 100644 index 000000000..bebfaf775 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/constant/HardThirdMiTypeEnum.java @@ -0,0 +1,28 @@ +package com.bsd.pjcloud.hard.api.constant; + +import cn.hutool.core.util.ObjectUtil; +import lombok.AllArgsConstructor; +import lombok.Getter; + +import java.util.Arrays; + +/** + * 第三方面密类型 + */ +@AllArgsConstructor +@Getter +public enum HardThirdMiTypeEnum { + + MI_WECHAT("10", "微信免密支付"), + MI_ALIPAY("20", "支付宝-芝麻先享"), + ; + + private final String type; + private final String description; + + public static HardThirdMiTypeEnum valueOfByType(String type) { + if (ObjectUtil.isEmpty(type)) return null; + return Arrays.stream(values()).filter(v -> ObjectUtil.equals(type, v.getType())).findFirst().get(); + } + +} diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java new file mode 100755 index 000000000..b49b90844 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardThirdMiOrderEntity.java @@ -0,0 +1,143 @@ +package com.bsd.pjcloud.hard.api.entity; + +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.LocalDateTime; + +/** + * 硬件商品免密订单 + */ +@Data +@TenantTable +@TableName("hard_third_mi_order") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "硬件商品免密订单") +public class HardThirdMiOrderEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "编号") + private Long id; + + /** + * 上架类型 + */ + @Schema(description = "上架类型") + private String bizType; + + /** + * 用户id + */ + @Schema(description = "用户id") + private Long userId; + + /** + * 授权id + */ + @Schema(description = "授权id") + private Long authId; + + /** + * 流程id + */ + @Schema(description = "流程id") + private Long flowId; + + /** + * 订单id + */ + @Schema(description = "订单id") + private Long orderId; + + /** + * 外部订单号 + */ + @Schema(description = "外部订单号") + private String outOrderNo; + + /** + * 第三方订单号 + */ + @Schema(description = "第三方订单号") + private String thirdOrderNo; + + /** + * 创建订单时间 + */ + @Schema(description = "创建订单时间") + private LocalDateTime createOrderTime; + + /** + * 支付时间 + */ + @Schema(description = "支付时间") + private LocalDateTime payOrderTime; + + /** + * 退款时间 + */ + @Schema(description = "退款时间") + private LocalDateTime refundOrderTime; + + /** + * 订单状态 + */ + @Schema(description = "订单状态") + private Integer orderStatus; + + /** + * 原始json数据 + */ + @Schema(description = "原始json数据") + private String orgJson; + + /** + * 创建人 + */ + @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-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java new file mode 100755 index 000000000..b0b703e50 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardThirdMiOrderController.java @@ -0,0 +1,100 @@ +package com.bsd.pjcloud.hard.controller; + +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.hard.api.entity.HardThirdMiOrderEntity; +import com.bsd.pjcloud.hard.service.HardThirdMiOrderService; +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("/hardThirdMiOrder") +@Tag(description = "hardThirdMiOrder", name = "硬件商品免密订单管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class HardThirdMiOrderController { + + private final HardThirdMiOrderService hardThirdMiOrderService; + + /** + * 分页查询 + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_view')") + public R getHardThirdMiOrderPage(@ParameterObject Page page, @ParameterObject HardThirdMiOrderEntity hardThirdMiOrder) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(hardThirdMiOrderService.page(page, wrapper)); + } + + /** + * 通过id查询硬件商品免密订单 + */ + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(hardThirdMiOrderService.getById(id)); + } + + /** + * 新增硬件商品免密订单 + */ + @Operation(summary = "新增硬件商品免密订单", description = "新增硬件商品免密订单") + @SysLog("新增硬件商品免密订单") + @PostMapping + @PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_add')") + public R save(@RequestBody HardThirdMiOrderEntity hardThirdMiOrder) { + return R.ok(hardThirdMiOrderService.save(hardThirdMiOrder)); + } + + /** + * 修改硬件商品免密订单 + */ + @Operation(summary = "修改硬件商品免密订单", description = "修改硬件商品免密订单") + @SysLog("修改硬件商品免密订单") + @PutMapping + @PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_edit')") + public R updateById(@RequestBody HardThirdMiOrderEntity hardThirdMiOrder) { + return R.ok(hardThirdMiOrderService.updateById(hardThirdMiOrder)); + } + + /** + * 通过id删除硬件商品免密订单 + */ + @Operation(summary = "通过id删除硬件商品免密订单", description = "通过id删除硬件商品免密订单") + @SysLog("通过id删除硬件商品免密订单") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(hardThirdMiOrderService.removeBatchByIds(CollUtil.toList(ids))); + } + + /** + * 导出excel 表格 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('thirdmi_hardThirdMiOrder_export')") + public List export(HardThirdMiOrderEntity hardThirdMiOrder, Long[] ids) { + return hardThirdMiOrderService.list(Wrappers.lambdaQuery(hardThirdMiOrder).in(ArrayUtil.isNotEmpty(ids), HardThirdMiOrderEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java new file mode 100755 index 000000000..0494c6a3a --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/HardThirdMiOrderMapper.java @@ -0,0 +1,10 @@ +package com.bsd.pjcloud.hard.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface HardThirdMiOrderMapper extends PjcloudBaseMapper { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java new file mode 100755 index 000000000..8dc7729b2 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardThirdMiOrderService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.hard.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity; + +public interface HardThirdMiOrderService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardThirdMiOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardThirdMiOrderServiceImpl.java new file mode 100755 index 000000000..3bcc86d89 --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardThirdMiOrderServiceImpl.java @@ -0,0 +1,15 @@ +package com.bsd.pjcloud.hard.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.hard.api.entity.HardThirdMiOrderEntity; +import com.bsd.pjcloud.hard.mapper.HardThirdMiOrderMapper; +import com.bsd.pjcloud.hard.service.HardThirdMiOrderService; +import org.springframework.stereotype.Service; + +/** + * 硬件商品免密订单 + */ +@Service +public class HardThirdMiOrderServiceImpl extends ServiceImpl implements HardThirdMiOrderService { + +} \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardThirdMiOrderMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardThirdMiOrderMapper.xml new file mode 100755 index 000000000..30a495b6e --- /dev/null +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/HardThirdMiOrderMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file