From 4f2010ac345d88de96ad42204e4fd5dffc5324ed Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 31 Dec 2024 12:32:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat:=E4=BA=BA=E8=84=B8=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pjcloud/admin/api/dto/SysUserFaceDto.java | 8 ++ .../admin/api/entity/SysUserFaceEntity.java | 85 +++++++++++ .../pjcloud/admin/api/vo/SysUserFaceVo.java | 11 ++ .../controller/SysUserFaceController.java | 135 ++++++++++++++++++ .../admin/mapper/SysUserFaceMapper.java | 25 ++++ .../admin/service/SysUserFaceService.java | 22 +++ .../service/impl/SysUserFaceServiceImpl.java | 57 ++++++++ .../resources/mapper/SysUserFaceMapper.xml | 17 +++ 8 files changed, 360 insertions(+) create mode 100644 pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/SysUserFaceDto.java create mode 100644 pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/SysUserFaceEntity.java create mode 100644 pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/vo/SysUserFaceVo.java create mode 100644 pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java create mode 100644 pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java create mode 100644 pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserFaceService.java create mode 100644 pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java create mode 100644 pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserFaceMapper.xml diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/SysUserFaceDto.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/SysUserFaceDto.java new file mode 100644 index 000000000..f25e474e2 --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/SysUserFaceDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.admin.api.dto; + +import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; +import lombok.Data; + +@Data +public class SysUserFaceDto extends SysUserFaceEntity { +} diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/SysUserFaceEntity.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/SysUserFaceEntity.java new file mode 100644 index 000000000..cdb9c62dd --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/entity/SysUserFaceEntity.java @@ -0,0 +1,85 @@ +package com.bsd.pjcloud.admin.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; + +/** + * 人脸样本表 + * + * @author pjcloud + * @date 2024-12-31 11:20:04 + */ +@Data +@TenantTable +@TableName("sys_user_face") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "人脸样本表") +public class SysUserFaceEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 用户ID + */ + @Schema(description="用户ID") + private Long userId; + + /** + * 人脸图片 + */ + @Schema(description="人脸图片") + private String faceImg; + + /** + * 创建人 + */ + @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-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/vo/SysUserFaceVo.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/vo/SysUserFaceVo.java new file mode 100644 index 000000000..a40ff55bb --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/vo/SysUserFaceVo.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.admin.api.vo; + +import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; +import lombok.Data; + +@Data +public class SysUserFaceVo extends SysUserFaceEntity { + + private String username; + +} diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java new file mode 100644 index 000000000..da64b360f --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java @@ -0,0 +1,135 @@ +package com.bsd.pjcloud.admin.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.admin.api.dto.SysUserFaceDto; +import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; +import com.bsd.pjcloud.admin.service.SysUserFaceService; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +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; + +/** + * 人脸样本表 + * + * @author pjcloud + * @date 2024-12-31 11:20:04 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/user-face") +@Tag(description = "sysUserFace", name = "人脸样本表管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class SysUserFaceController { + + private final SysUserFaceService sysUserFaceService; + + /** + * 分页查询 + * + * @param page 分页对象 + * @param sysUserFace 人脸样本表 + * @return + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") + public R getSysUserFacePage(@ParameterObject Page page, @ParameterObject SysUserFaceEntity sysUserFace) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(sysUserFaceService.page(page, wrapper)); + } + + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") + public R getSysUserFacePageJoin(@ParameterObject Page page, @ParameterObject SysUserFaceDto dto) { + return R.ok(sysUserFaceService.pageJoin(page, dto)); + } + + + /** + * 通过id查询人脸样本表 + * + * @param id id + * @return R + */ + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(sysUserFaceService.getById(id)); + } + + /** + * 新增人脸样本表 + * + * @param sysUserFace 人脸样本表 + * @return R + */ + @Operation(summary = "新增人脸样本表", description = "新增人脸样本表") + @SysLog("新增人脸样本表") + @PostMapping + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_add')") + public R save(@RequestBody SysUserFaceEntity sysUserFace) { + return R.ok(sysUserFaceService.create(sysUserFace)); + } + + /** + * 修改人脸样本表 + * + * @param sysUserFace 人脸样本表 + * @return R + */ + @Operation(summary = "修改人脸样本表", description = "修改人脸样本表") + @SysLog("修改人脸样本表") + @PutMapping + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_edit')") + public R updateById(@RequestBody SysUserFaceEntity sysUserFace) { + sysUserFaceService.edit(sysUserFace); + return R.ok(true); + } + + /** + * 通过id删除人脸样本表 + * + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除人脸样本表", description = "通过id删除人脸样本表") + @SysLog("通过id删除人脸样本表") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_del')") + public R removeById(@RequestBody Long[] ids) { + sysUserFaceService.delByIds(CollUtil.toList(ids)); + return R.ok(true); + } + + + /** + * 导出excel 表格 + * + * @param sysUserFace 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('userFace_sysUserFace_export')") + public List export(SysUserFaceEntity sysUserFace, Long[] ids) { + return sysUserFaceService.list(Wrappers.lambdaQuery(sysUserFace).in(ArrayUtil.isNotEmpty(ids), SysUserFaceEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java new file mode 100644 index 000000000..33f99d236 --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java @@ -0,0 +1,25 @@ +package com.bsd.pjcloud.admin.mapper; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.admin.api.dto.SysUserFaceDto; +import com.bsd.pjcloud.admin.api.entity.SysUser; +import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; +import com.bsd.pjcloud.admin.api.vo.SysUserFaceVo; +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface SysUserFaceMapper extends PjcloudBaseMapper { + + default IPage pageJoin(Page page, SysUserFaceDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(SysUserFaceEntity.class) + .selectAs(SysUser::getName, SysUserFaceVo::getUsername) + .leftJoin(SysUser.class, SysUser::getUserId, SysUserFaceEntity::getUserId) + .eqIfExists(SysUserFaceEntity::getUserId, dto.getUserId()); + return selectJoinPage(page, SysUserFaceVo.class, wrapper); + } + +} \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserFaceService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserFaceService.java new file mode 100644 index 000000000..b6512f86b --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserFaceService.java @@ -0,0 +1,22 @@ +package com.bsd.pjcloud.admin.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.admin.api.dto.SysUserFaceDto; +import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; +import com.bsd.pjcloud.admin.api.vo.SysUserFaceVo; + +import java.util.ArrayList; + +public interface SysUserFaceService extends IService { + + + Long create(SysUserFaceEntity sysUserFace); + + void edit(SysUserFaceEntity sysUserFace); + + void delByIds(ArrayList list); + + IPage pageJoin(Page page, SysUserFaceDto dto); +} \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java new file mode 100644 index 000000000..ced4c5144 --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java @@ -0,0 +1,57 @@ +package com.bsd.pjcloud.admin.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.dto.SysUserFaceDto; +import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; +import com.bsd.pjcloud.admin.api.vo.SysUserFaceVo; +import com.bsd.pjcloud.admin.mapper.SysUserFaceMapper; +import com.bsd.pjcloud.admin.service.SysUserFaceService; +import com.bsd.pjcloud.common.core.exception.CheckedException; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Collection; + +/** + * 人脸样本表 + * + * @author pjcloud + * @date 2024-12-31 11:20:04 + */ +@Service +public class SysUserFaceServiceImpl extends ServiceImpl implements SysUserFaceService { + + @Override + public Long create(SysUserFaceEntity sysUserFace) { + // 插入 + baseMapper.insert(sysUserFace); + + return sysUserFace.getId(); + } + + @Override + public void edit(SysUserFaceEntity sysUserFace) { + SysUserFaceEntity userFace = baseMapper.selectById(sysUserFace.getId()); + if (userFace == null) { + throw new CheckedException("人脸样本表不存在"); + } + baseMapper.selectById(userFace.getUserId()); + } + + @Override + public void delByIds(ArrayList list) { + if (ObjectUtil.isEmpty(list)) return; + baseMapper.deleteBatchIds(list); + list.forEach(v -> { + // 发送mq给硬件设备 + }); + } + + @Override + public IPage pageJoin(Page page, SysUserFaceDto dto) { + return baseMapper.pageJoin(page, dto); + } +} \ No newline at end of file diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserFaceMapper.xml b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserFaceMapper.xml new file mode 100644 index 000000000..3b3e8af33 --- /dev/null +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserFaceMapper.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file From c717985e1dc1b4373188ad906261a6b035df195a Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 31 Dec 2024 14:38:27 +0800 Subject: [PATCH 2/2] =?UTF-8?q?feat:=E5=85=85=E5=80=BC/=E6=89=A3=E6=AC=BE?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=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 | 39 +++++- .../api/dto/WalletRechargeApplyDto.java | 9 ++ .../api/dto/WalletRechargeImportDto.java | 9 ++ .../api/entity/WalletRechargeApplyEntity.java | 109 +++++++++++++++ .../entity/WalletRechargeImportEntity.java | 97 ++++++++++++++ .../wallet/api/vo/WalletRechargeApplyVo.java | 9 ++ .../wallet/api/vo/WalletRechargeImportVo.java | 9 ++ .../WalletRechargeApplyController.java | 124 ++++++++++++++++++ .../mapper/WalletRechargeApplyMapper.java | 11 ++ .../mapper/WalletRechargeImportMapper.java | 11 ++ .../service/WalletRechargeApplyService.java | 8 ++ .../service/WalletRechargeImportService.java | 8 ++ .../impl/WalletRechargeApplyServiceImpl.java | 16 +++ .../impl/WalletRechargeImportServiceImpl.java | 15 +++ .../mapper/WalletRechargeApplyMapper.xml | 21 +++ .../mapper/WalletRechargeImportMapper.xml | 18 +++ 16 files changed, 512 insertions(+), 1 deletion(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeApplyDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeImportDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeApplyEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeImportEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeApplyVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeImportVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletRechargeApplyController.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeApplyMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeImportMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeImportService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeApplyServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeImportServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeApplyMapper.xml create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeImportMapper.xml diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index eff997fb3..43b9d809c 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -109,7 +109,7 @@ CREATE TABLE wallet_transaction ( id bigint NOT NULL COMMENT '编号', wallet_id bigint NOT NULL COMMENT '会员钱包 id', - biz_type tinyint NOT NULL COMMENT '关联类型', + biz_type tinytext NOT NULL COMMENT '关联类型', biz_id varchar(64) NOT NULL COMMENT '关联业务编号', title varchar(128) NOT NULL COMMENT '流水标题', price int NOT NULL COMMENT '交易金额, 单位分', @@ -144,3 +144,40 @@ CREATE TABLE `sys_user_face` COLLATE = utf8mb4_general_ci COMMENT ='人脸样本表'; CREATE INDEX idx_dept_id ON sys_user_face (user_id); +CREATE TABLE wallet_recharge_apply +( + id bigint NOT NULL COMMENT '主键ID', + user_id bigint NOT NULL COMMENT '申请人ID', + biz_type tinytext DEFAULT NULL COMMENT '充值类型', + wallet_type_id bigint DEFAULT NULL COMMENT '饭卡类型id', + dept_id bigint NOT NULL COMMENT '部门ID', + import_time timestamp DEFAULT NULL COMMENT '导入时间(手动选择)', + remark varchar(256) DEFAULT '' 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 wallet_recharge_apply (user_id); + +CREATE TABLE wallet_recharge_import +( + id bigint NOT NULL COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户id', + apply_id bigint NOT NULL COMMENT '申请id', + before_price int NOT NULL COMMENT '导入前的金额', + price int NOT 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) +) COMMENT ='充值导入表'; +CREATE INDEX idx_dept_id ON wallet_recharge_import (user_id); \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeApplyDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeApplyDto.java new file mode 100644 index 000000000..8638ffc54 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeApplyDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeApplyEntity; +import lombok.Data; + +@Data +public class WalletRechargeApplyDto extends WalletRechargeApplyEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeImportDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeImportDto.java new file mode 100644 index 000000000..324ce25d6 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletRechargeImportDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeImportEntity; +import lombok.Data; + +@Data +public class WalletRechargeImportDto extends WalletRechargeImportEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeApplyEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeApplyEntity.java new file mode 100644 index 000000000..36470a1bc --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeApplyEntity.java @@ -0,0 +1,109 @@ +package com.bsd.pjcloud.wallet.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; + +/** + * 充值/扣款申请 + * + * @author pjcloud + * @date 2024-12-31 14:23:57 + */ +@Data +@TenantTable +@TableName("wallet_recharge_apply") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "充值/扣款申请") +public class WalletRechargeApplyEntity extends Model { + + /** + * 主键ID + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "主键ID") + private Long id; + + /** + * 申请人ID + */ + @Schema(description = "申请人ID") + private Long userId; + + /** + * 充值类型 + */ + @Schema(description = "充值类型") + private String bizType; + + /** + * 饭卡类型id + */ + @Schema(description = "饭卡类型id") + private Long walletTypeId; + + /** + * 部门ID + */ + @Schema(description = "部门ID") + private Long deptId; + + /** + * 导入时间(手动选择) + */ + @Schema(description = "导入时间(手动选择)") + private LocalDateTime importTime; + + /** + * 备注 + */ + @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/entity/WalletRechargeImportEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeImportEntity.java new file mode 100644 index 000000000..0a71b5c01 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletRechargeImportEntity.java @@ -0,0 +1,97 @@ +package com.bsd.pjcloud.wallet.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; + +/** + * 充值导入表 + * + * @author dzc + * @date 2024-12-31 14:24:39 + */ +@Data +@TenantTable +@TableName("wallet_recharge_import") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "充值导入表") +public class WalletRechargeImportEntity extends Model { + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description = "编号") + private Long id; + + /** + * 用户id + */ + @Schema(description = "用户id") + private Long userId; + + /** + * 申请id + */ + @Schema(description = "申请id") + private Long applyId; + + /** + * 导入前的金额 + */ + @Schema(description = "导入前的金额") + private Integer beforePrice; + + /** + * 交易金额, 单位分 + */ + @Schema(description = "交易金额, 单位分") + private Integer price; + + /** + * 创建人 + */ + @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/WalletRechargeApplyVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeApplyVo.java new file mode 100644 index 000000000..008823f5a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeApplyVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeApplyEntity; +import lombok.Data; + +@Data +public class WalletRechargeApplyVo extends WalletRechargeApplyEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeImportVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeImportVo.java new file mode 100644 index 000000000..a913f778b --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletRechargeImportVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeImportEntity; +import lombok.Data; + +@Data +public class WalletRechargeImportVo extends WalletRechargeImportEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletRechargeApplyController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletRechargeApplyController.java new file mode 100644 index 000000000..ef9d99fc3 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletRechargeApplyController.java @@ -0,0 +1,124 @@ +package com.bsd.pjcloud.wallet.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.wallet.api.entity.WalletRechargeApplyEntity; +import com.bsd.pjcloud.wallet.service.WalletRechargeApplyService; +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; + +/** + * 充值/扣款申请 + * + * @author pjcloud + * @date 2024-12-31 14:23:57 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/wallet-recharge-apply") +@Tag(description = "wallet-recharge-apply", name = "充值/扣款申请管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class WalletRechargeApplyController { + + private final WalletRechargeApplyService walletRechargeApplyService; + + /** + * 分页查询 + * + * @param page 分页对象 + * @param walletRechargeApply 充值/扣款申请 + * @return + */ + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_view')") + public R getWalletRechargeApplyPage(@ParameterObject Page page, @ParameterObject WalletRechargeApplyEntity walletRechargeApply) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(walletRechargeApplyService.page(page, wrapper)); + } + + + /** + * 通过id查询充值/扣款申请 + * + * @param id id + * @return R + */ + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(walletRechargeApplyService.getById(id)); + } + + /** + * 新增充值/扣款申请 + * + * @param walletRechargeApply 充值/扣款申请 + * @return R + */ + @Operation(summary = "新增充值/扣款申请", description = "新增充值/扣款申请") + @SysLog("新增充值/扣款申请") + @PostMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_add')") + public R save(@RequestBody WalletRechargeApplyEntity walletRechargeApply) { + return R.ok(walletRechargeApplyService.save(walletRechargeApply)); + } + + /** + * 修改充值/扣款申请 + * + * @param walletRechargeApply 充值/扣款申请 + * @return R + */ + @Operation(summary = "修改充值/扣款申请", description = "修改充值/扣款申请") + @SysLog("修改充值/扣款申请") + @PutMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_edit')") + public R updateById(@RequestBody WalletRechargeApplyEntity walletRechargeApply) { + return R.ok(walletRechargeApplyService.updateById(walletRechargeApply)); + } + + /** + * 通过id删除充值/扣款申请 + * + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除充值/扣款申请", description = "通过id删除充值/扣款申请") + @SysLog("通过id删除充值/扣款申请") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(walletRechargeApplyService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 导出excel 表格 + * + * @param walletRechargeApply 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_export')") + public List export(WalletRechargeApplyEntity walletRechargeApply, Long[] ids) { + return walletRechargeApplyService.list(Wrappers.lambdaQuery(walletRechargeApply).in(ArrayUtil.isNotEmpty(ids), WalletRechargeApplyEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeApplyMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeApplyMapper.java new file mode 100644 index 000000000..3fc0ed42b --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeApplyMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeApplyEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletRechargeApplyMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeImportMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeImportMapper.java new file mode 100644 index 000000000..0c890d767 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletRechargeImportMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeImportEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletRechargeImportMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java new file mode 100644 index 000000000..21320770e --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.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.WalletRechargeApplyEntity; + +public interface WalletRechargeApplyService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeImportService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeImportService.java new file mode 100644 index 000000000..4be9e2761 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeImportService.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.WalletRechargeImportEntity; + +public interface WalletRechargeImportService 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/WalletRechargeApplyServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeApplyServiceImpl.java new file mode 100644 index 000000000..b28fe7278 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeApplyServiceImpl.java @@ -0,0 +1,16 @@ +package com.bsd.pjcloud.wallet.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeApplyEntity; +import com.bsd.pjcloud.wallet.mapper.WalletRechargeApplyMapper; +import com.bsd.pjcloud.wallet.service.WalletRechargeApplyService; +import org.springframework.stereotype.Service; +/** + * 充值/扣款申请 + * + * @author pjcloud + * @date 2024-12-31 14:23:57 + */ +@Service +public class WalletRechargeApplyServiceImpl extends ServiceImpl implements WalletRechargeApplyService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeImportServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeImportServiceImpl.java new file mode 100644 index 000000000..a7443d88a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletRechargeImportServiceImpl.java @@ -0,0 +1,15 @@ +package com.bsd.pjcloud.wallet.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.WalletRechargeImportEntity; +import com.bsd.pjcloud.wallet.mapper.WalletRechargeImportMapper; +import org.springframework.stereotype.Service; +/** + * 充值导入表 + * + * @author dzc + * @date 2024-12-31 14:24:39 + */ +@Service +public class WalletRechargeImportServiceImpl extends ServiceImpl implements WalletRechargeImportService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeApplyMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeApplyMapper.xml new file mode 100644 index 000000000..c9f5eff36 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeApplyMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeImportMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeImportMapper.xml new file mode 100644 index 000000000..fcc777c0b --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletRechargeImportMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file