From badada9b65ae72595c91600fed5c40a03b412859 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 2 Jan 2025 13:14:06 +0800 Subject: [PATCH 1/3] =?UTF-8?q?create:=E5=95=86=E6=88=B7=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wallet/api/feign/RemoteMchService.java | 9 ++++--- .../pjcloud/wallet/api/utils/MchDataUtil.java | 27 +++++++++++++++++++ .../wallet/api/vo/base/BaseMchInterface.java | 19 +++++++++++++ .../controller/MchManageController.java | 20 +++++++------- .../wallet/mapper/MchManageMapper.java | 14 +++++++++- .../wallet/service/MchManageService.java | 6 +++-- .../service/impl/MchManageServiceImpl.java | 19 ++++++++----- 7 files changed, 90 insertions(+), 24 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java 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 index 0d3e8fdf0..f80179f27 100644 --- 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 @@ -5,6 +5,7 @@ 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 com.bsd.pjcloud.wallet.api.vo.MchManageVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestParam; @@ -16,18 +17,18 @@ public interface RemoteMchService { @NoToken @GetMapping("/get-by-id") - R getById(@RequestParam Long id); + R getById(@RequestParam Long id); @NoToken @GetMapping("/get-by-ids") - R> getByIds(@RequestParam List ids); + R> getByIds(@RequestParam List ids); @NoToken @GetMapping("/get-by-dept-id") - R getByDeptId(@RequestParam Long deptId); + R getByDeptId(@RequestParam Long deptId); @NoToken @GetMapping("/get-first-mch") - R getFirstMch(@RequestParam List deptIds); + R getFirstMch(@RequestParam List deptIds); } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java new file mode 100644 index 000000000..279c2ed01 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java @@ -0,0 +1,27 @@ +package com.bsd.pjcloud.wallet.api.utils; + +import cn.hutool.core.util.ObjectUtil; +import com.bsd.pjcloud.admin.api.entity.SysUser; +import com.bsd.pjcloud.admin.api.vo.base.BaseUserInterface; +import com.bsd.pjcloud.common.core.util.CollectionUtils; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; +import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; +import lombok.experimental.UtilityClass; + +import java.util.List; +import java.util.Map; + +@UtilityClass +public class MchDataUtil { + + public List convertMchList(List list, Map map) { + return CollectionUtils.convertList(list, v -> convertMch(v, map.get(v.getMchId()))); + } + + public T convertMch(T v, MchManageVo vo) { + if (ObjectUtil.isEmpty(vo)) return v; + v.setMchName(vo.getName()); + return v; + } + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java new file mode 100644 index 000000000..a4ba9c7b2 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java @@ -0,0 +1,19 @@ +package com.bsd.pjcloud.wallet.api.vo.base; + +public interface BaseMchInterface { + + /** + * 商户id + */ + Long getMchId(); + + void setMchId(Long dchId); + + /** + * 商户名 + */ + String getMchName(); + + void setMchName(String dchName); + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java index b5dec56c7..a9234a074 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java @@ -47,32 +47,32 @@ public class MchManageController { @Inner @GetMapping("/get-by-id") - public R getById(@RequestParam Long 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)); + return R.ok(BeanUtils.toBean(mchManage, MchManageVo.class)); } @Inner @GetMapping("/get-by-ids") - public R> getByIds(@RequestParam List ids) { - Page page = mchManageService.pageJoin(new Page<>(), MchManageDto.builder().deptIds(ids).build()); - if (ObjectUtil.isAllNotEmpty(page, page.getRecords())) return R.failed("商户不存在"); - return R.ok(BeanUtils.toBean(page.getRecords(), MchManageDto.class)); + public R> getByIds(@RequestParam List ids) { + List list = mchManageService.list(MchManageDto.builder().deptIds(ids).build()); + if (ObjectUtil.isAllNotEmpty(list)) return R.failed("商户不存在"); + return R.ok(list); } @Inner @GetMapping("/get-by-dept-id") - public R getByDeptId(@RequestParam Long deptId) { - MchManageDto mchManage = mchManageService.getByDeptId(deptId); + public R getByDeptId(@RequestParam Long deptId) { + MchManageVo 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); + public R getFirstMch(@RequestParam List deptIds) { + MchManageVo mchManage = mchManageService.getFirstMch(deptIds); if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); return R.ok(mchManage); } 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 index 04b3bde97..3edc018a8 100644 --- 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 @@ -1,5 +1,6 @@ package com.bsd.pjcloud.wallet.mapper; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.wallet.api.dto.MchManageDto; @@ -8,6 +9,8 @@ import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import com.github.yulichang.query.MPJLambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; +import java.util.List; + @Mapper public interface MchManageMapper extends PjcloudBaseMapper { @@ -15,7 +18,16 @@ public interface MchManageMapper extends PjcloudBaseMapper { default Page pageJoin(Page page, MchManageDto dto) { MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() .selectAll(MchManageEntity.class) - .likeIfExists(MchManageEntity::getName, dto.getName()); + .likeIfExists(MchManageEntity::getName, dto.getName()) + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()); return selectJoinPage(page, MchManageVo.class, wrapper); } + + default List list(MchManageDto dto) { + MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() + .selectAll(MchManageEntity.class) + .likeIfExists(MchManageEntity::getName, dto.getName()) + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()); + return selectJoinList(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 index 83e52d323..14ff55186 100644 --- 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 @@ -19,7 +19,9 @@ public interface MchManageService extends IService { Page pageJoin(Page page, MchManageDto dto); - MchManageDto getByDeptId(Long deptId); + List list(MchManageDto dto); - MchManageDto getFirstMch(List deptIds); + MchManageVo getByDeptId(Long deptId); + + MchManageVo 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 index 366ceaab0..43ee9fd8d 100644 --- 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 @@ -130,21 +130,26 @@ public class MchManageServiceImpl extends ServiceImpl() - .eq(MchManageEntity::getDeptId, deptId) - ); - return BeanUtils.toBean(mchManage, MchManageDto.class); + public List list(MchManageDto dto) { + return baseMapper.list(dto); } @Override - public MchManageDto getFirstMch(List deptIds) { + public MchManageVo getByDeptId(Long deptId) { + MchManageEntity mchManage = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(MchManageEntity::getDeptId, deptId) + ); + return BeanUtils.toBean(mchManage, MchManageVo.class); + } + + @Override + public MchManageVo 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 BeanUtils.toBean(merchant, MchManageVo.class); } } } From d4a2df19e960649a155660eeb43a14938cbef9ed Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 2 Jan 2025 15:47:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?create:=E9=92=B1=E5=8C=85=E5=BC=80=E5=8D=A1?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/700pjcloudx_merchant.sql | 28 --------- db/800pjcloudx_wallet.sql | 14 ++--- .../pjcloud/wallet/api/dto/MchManageDto.java | 2 + .../wallet/api/dto/WalletActiveDto.java | 4 +- .../wallet/api/entity/MchManageEntity.java | 9 ++- .../pjcloud/wallet/api/utils/MchDataUtil.java | 4 +- .../pjcloud/wallet/api/vo/WalletActiveVo.java | 24 +++++++- .../wallet/api/vo/base/BaseMchInterface.java | 8 +-- .../controller/MchManageController.java | 4 +- .../controller/WalletActiveController.java | 19 +++++- .../wallet/mapper/MchManageMapper.java | 3 +- .../wallet/mapper/WalletActiveMapper.java | 14 ++++- .../wallet/service/WalletActiveService.java | 4 ++ .../service/impl/MchManageServiceImpl.java | 2 +- .../service/impl/WalletActiveServiceImpl.java | 58 +++++++++++++++++-- 15 files changed, 138 insertions(+), 59 deletions(-) delete mode 100644 db/700pjcloudx_merchant.sql diff --git a/db/700pjcloudx_merchant.sql b/db/700pjcloudx_merchant.sql deleted file mode 100644 index 886084bbc..000000000 --- a/db/700pjcloudx_merchant.sql +++ /dev/null @@ -1,28 +0,0 @@ --- mch 商户管理 -create database `pjcloudx_mch` default character set utf8mb4 collate utf8mb4_general_ci; - -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); \ No newline at end of file diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index bad0e5c45..d22e44b61 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -15,8 +15,8 @@ CREATE TABLE mch_manage 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 '商户结束营业时间', + job_start_time time DEFAULT NULL COMMENT '商户开始营业时间', + job_end_time time 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 '创建时间', @@ -88,9 +88,9 @@ DROP TABLE IF EXISTS wallet_active; CREATE TABLE wallet_active ( id bigint NOT NULL COMMENT '主键', - user_id bigint NOT NULL COMMENT '用户id', - wallet_id bigint NOT NULL COMMENT '钱包id', - wallet_type_id bigint NOT NULL COMMENT '饭卡类型id', + user_id bigint DEFAULT NULL COMMENT '用户id', + wallet_id bigint DEFAULT NULL COMMENT '钱包id', + wallet_type_id bigint DEFAULT NULL COMMENT '饭卡类型id', dept_id bigint NOT NULL COMMENT '部门id', merchant_id bigint NOT NULL COMMENT '商户id', card_number varchar(128) NOT NULL COMMENT '用户卡号', @@ -106,7 +106,6 @@ CREATE TABLE wallet_active ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='钱包开卡'; CREATE INDEX idx_dept_id ON wallet_active (user_id); -CREATE INDEX idx_dept_id ON wallet_active (dept_id); -- ---------------------------- -- Table structure for wallet_freeze @@ -193,10 +192,11 @@ CREATE TABLE wallet_recharge_apply COLLATE = utf8mb4_general_ci COMMENT ='充值申请表'; CREATE INDEX idx_dept_id ON wallet_recharge_apply (user_id); +DROP TABLE IF EXISTS wallet_recharge_import; CREATE TABLE wallet_recharge_import ( id bigint NOT NULL COMMENT '编号', - user_id bigint NOT NULL COMMENT '用户id', + user_id bigint default NULL COMMENT '用户id', apply_id bigint NOT NULL COMMENT '申请id', before_price int DEFAULT NULL COMMENT '导入前的金额', price int NOT NULL COMMENT '交易金额, 单位分', 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 index e8f477052..508ace06f 100644 --- 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 @@ -16,4 +16,6 @@ public class MchManageDto extends MchManageEntity { private List deptIds; + private List ids; + } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletActiveDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletActiveDto.java index 3da2f5f95..d89563823 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletActiveDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletActiveDto.java @@ -7,6 +7,8 @@ import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; import lombok.Data; +import java.util.List; + @Data public class WalletActiveDto extends WalletActiveEntity { @@ -19,7 +21,7 @@ public class WalletActiveDto extends WalletActiveEntity { @NotNull(message = "商户id不能为空") private Long merchantId; - @NotNull(message = "钱包类型id不能为空") private Long walletTypeId; + private List userIds; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java index cb8cd549c..c6fb65b30 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java @@ -1,12 +1,15 @@ package com.bsd.pjcloud.wallet.api.entity; +import cn.hutool.core.date.DatePattern; import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; 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; +import java.time.LocalTime; /** * 商户管理 @@ -75,13 +78,15 @@ public class MchManageEntity extends Model { * 商户开始营业时间 */ @Schema(description="商户开始营业时间") - private LocalDateTime jobStartTime; + @JsonFormat(pattern = DatePattern.NORM_TIME_PATTERN) + private LocalTime jobStartTime; /** * 商户结束营业时间 */ @Schema(description="商户结束营业时间") - private LocalDateTime jobEndTime; + @JsonFormat(pattern = DatePattern.NORM_TIME_PATTERN) + private LocalTime jobEndTime; /** * 商户地址 diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java index 279c2ed01..20e7e642d 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/MchDataUtil.java @@ -15,12 +15,12 @@ import java.util.Map; public class MchDataUtil { public List convertMchList(List list, Map map) { - return CollectionUtils.convertList(list, v -> convertMch(v, map.get(v.getMchId()))); + return CollectionUtils.convertList(list, v -> convertMch(v, map.get(v.getMerchantId()))); } public T convertMch(T v, MchManageVo vo) { if (ObjectUtil.isEmpty(vo)) return v; - v.setMchName(vo.getName()); + v.setMerchantName(vo.getName()); return v; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java index 27f250d4e..bff468891 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java @@ -1,8 +1,30 @@ package com.bsd.pjcloud.wallet.api.vo; +import com.bsd.pjcloud.admin.api.vo.base.BaseDeptInterface; +import com.bsd.pjcloud.admin.api.vo.base.BaseUserInterface; import com.bsd.pjcloud.wallet.api.entity.WalletActiveEntity; +import com.bsd.pjcloud.wallet.api.vo.base.BaseMchInterface; import lombok.Data; + @Data -public class WalletActiveVo extends WalletActiveEntity { +public class WalletActiveVo extends WalletActiveEntity implements BaseUserInterface, BaseDeptInterface, BaseMchInterface { + /** + * 用户相关 + */ + private String username; + + private String userMobile; + + private String userAvatar; + + /** + * 部门相关 + */ + private String deptName; + + /** + * 商户相关 + */ + private String merchantName; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java index a4ba9c7b2..afc7012a9 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseMchInterface.java @@ -5,15 +5,15 @@ public interface BaseMchInterface { /** * 商户id */ - Long getMchId(); + Long getMerchantId(); - void setMchId(Long dchId); + void setMerchantId(Long dchId); /** * 商户名 */ - String getMchName(); + String getMerchantName(); - void setMchName(String dchName); + void setMerchantName(String dchName); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java index a9234a074..010a0ecb6 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java @@ -10,10 +10,8 @@ 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 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.api.vo.MchManageVo; import com.bsd.pjcloud.wallet.service.MchManageService; import org.springframework.security.access.prepost.PreAuthorize; @@ -42,7 +40,7 @@ import java.util.List; public class MchManageController { private final MchManageService mchManageService; - + /* ************************************* start 远程调用 start ************************************* */ @Inner diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java index 1a7fdc47f..d6d7f5b23 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletActiveController.java @@ -11,6 +11,7 @@ import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.wallet.api.dto.WalletActiveDto; import com.bsd.pjcloud.wallet.api.entity.WalletActiveEntity; import com.bsd.pjcloud.wallet.service.WalletActiveService; +import jakarta.validation.Valid; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; import io.swagger.v3.oas.annotations.security.SecurityRequirement; @@ -23,8 +24,6 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Objects; -import java.util.concurrent.TimeUnit; /** * 钱包开卡 @@ -45,7 +44,7 @@ public class WalletActiveController { @PostMapping("/fast-create-card") @Operation(summary = "一键开卡") @Idempotent(info = "正在开卡中,请勿重复提交") - public R fastCreateCard(WalletActiveDto dto) { + public R fastCreateCard(@Valid @RequestBody WalletActiveDto dto) { walletActiveService.fastCreateCard(dto); return R.ok(true); } @@ -65,6 +64,20 @@ public class WalletActiveController { return R.ok(walletActiveService.page(page, wrapper)); } + /** + * 分页复杂查询 + * + * @param page 分页对象 + * @param walletActive 钱包开卡 + * @return + */ + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('wallet_walletActive_view')") + public R getWalletActivePageJoin(@ParameterObject Page page, @ParameterObject WalletActiveDto dto) { + return R.ok(walletActiveService.pageJoin(page, dto)); + } + /** * 通过id查询钱包开卡 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 index 3edc018a8..6f163c994 100644 --- 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 @@ -27,7 +27,8 @@ public interface MchManageMapper extends PjcloudBaseMapper { MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() .selectAll(MchManageEntity.class) .likeIfExists(MchManageEntity::getName, dto.getName()) - .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()); + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()) + .in(ObjectUtil.isNotEmpty(dto.getIds()), MchManageEntity::getId, dto.getIds()); return selectJoinList(MchManageVo.class, wrapper); } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java index 667e1c529..4472ae6c9 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletActiveMapper.java @@ -1,11 +1,23 @@ package com.bsd.pjcloud.wallet.mapper; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.WalletActiveDto; import com.bsd.pjcloud.wallet.api.entity.WalletActiveEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletActiveVo; +import com.github.yulichang.query.MPJLambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface WalletActiveMapper extends PjcloudBaseMapper { - + default Page pageJoin(Page page, WalletActiveDto dto) { + MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() + .selectAll(WalletActiveEntity.class) + .likeIfExists(WalletActiveEntity::getCardNumber, dto.getCardNumber()) + .eqIfExists(WalletActiveEntity::getIsActiveHardware, dto.getIsActiveHardware()) + .in(ObjectUtil.isNotEmpty(dto.getUserIds()), WalletActiveEntity::getId, dto.getUserIds()); + return selectJoinPage(page, WalletActiveVo.class, wrapper); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletActiveService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletActiveService.java index 85dcb627c..7fa47e0a2 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletActiveService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletActiveService.java @@ -1,8 +1,10 @@ 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.WalletActiveDto; import com.bsd.pjcloud.wallet.api.entity.WalletActiveEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletActiveVo; public interface WalletActiveService extends IService { /** @@ -11,4 +13,6 @@ public interface WalletActiveService extends IService { * @param dto */ void fastCreateCard(WalletActiveDto dto); + + Page pageJoin(Page page, WalletActiveDto dto); } \ 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 index 43ee9fd8d..5fea534a3 100644 --- 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 @@ -69,7 +69,7 @@ public class MchManageServiceImpl extends ServiceImpl implements WalletActiveService { private final WalletTypeService walletTypeService; + private final MchManageService mchManageService; + + private final RemoteUserService userService; + private final RemoteDeptService deptService; @Override @Transactional(rollbackFor = Exception.class) public void fastCreateCard(WalletActiveDto dto) { Long count = dto.getCount(); // 查询饭卡钱包类型 - WalletTypeEntity walletType = walletTypeService.getById(dto.getWalletTypeId()); + WalletTypeEntity walletType = walletTypeService.getByUniqueCode(WalletTypeCodeEnum.CANTEEN); if (ObjectUtil.isEmpty(walletType)) throw new CheckedException("钱包类型不存在"); // 查询商户 - + MchManageEntity mchManage = mchManageService.getById(dto.getMerchantId()); + if (ObjectUtil.isEmpty(mchManage)) throw new CheckedException("商户不存在"); int startNum = 1; WalletActiveEntity last = getLast(); if (ObjectUtil.isNotEmpty(last)) startNum = last.getCardSort(); @@ -53,16 +74,43 @@ public class WalletActiveServiceImpl extends ServiceImpl pageJoin(Page page, WalletActiveDto dto) { + Page list = baseMapper.pageJoin(page, dto); + if (ObjectUtil.isNotEmpty(list.getRecords())) { + // 用户 + List userIds = list.getRecords().stream().map(WalletActiveVo::getUserId).distinct().toList(); + R> userList = userService.getUserById(new ArrayList<>(userIds)); + if (ObjectUtil.isNotEmpty(userList.getData())) { + DataUtil.convertUserList(page.getRecords(), CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); + } + // 部门 + List deptIds = list.getRecords().stream().map(WalletActiveVo::getDeptId).distinct().toList(); + R> deptList = deptService.getDeptByDeptIds(deptIds); + if (ObjectUtil.isNotEmpty(deptList.getData())) { + DataUtil.convertDeptList(page.getRecords(), deptList.getData()); + } + // 商户 + List mchIds = list.getRecords().stream().map(WalletActiveVo::getMerchantId).distinct().toList(); + List mchList = mchManageService.list(MchManageDto.builder().ids(mchIds).build()); + if (ObjectUtil.isNotEmpty(mchList)) { + MchDataUtil.convertMchList(page.getRecords(), CollectionUtils.convertMap(mchList, MchManageVo::getId)); + } + } + return list; + } + private WalletActiveEntity getLast() { LambdaQueryWrapper query = new LambdaQueryWrapper(); query.orderByDesc(WalletActiveEntity::getId).last("LIMIT 1"); From 54e3a200950bc9a136f40182dc70646ffff81b22 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 2 Jan 2025 16:51:33 +0800 Subject: [PATCH 3/3] =?UTF-8?q?create:=E8=B7=A8=E5=8D=95=E4=BD=8D=E3=80=81?= =?UTF-8?q?=E5=A4=96=E6=9D=A5=E4=BA=BA=E5=91=98=E4=BB=A3=E7=A0=81=E7=94=9F?= =?UTF-8?q?=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 84 ++++++++++++- .../wallet/api/dto/WalletCodeUseDto.java | 8 ++ .../wallet/api/dto/WalletFreezeDto.java | 15 +++ .../wallet/api/dto/WalletFreezeEntityDto.java | 8 -- .../wallet/api/dto/WalletStrideDto.java | 8 ++ .../api/entity/WalletCodeUseEntity.java | 115 +++++++++++++++++ .../api/entity/WalletForeignEntity.java | 116 +++++++++++++++++ .../wallet/api/entity/WalletStrideEntity.java | 103 +++++++++++++++ .../wallet/api/vo/WalletCodeUseVo.java | 8 ++ .../wallet/api/vo/WalletForeignVo.java | 9 ++ .../pjcloud/wallet/api/vo/WalletFreezeVo.java | 21 +++- .../pjcloud/wallet/api/vo/WalletStrideVo.java | 9 ++ .../controller/WalletFreezeController.java | 14 +++ .../controller/WalletStrideController.java | 119 ++++++++++++++++++ .../wallet/mapper/WalletCodeUseMapper.java | 11 ++ .../wallet/mapper/WalletForeignMapper.java | 10 ++ .../wallet/mapper/WalletFreezeMapper.java | 19 ++- .../wallet/mapper/WalletStrideMapper.java | 11 ++ .../wallet/service/WalletCodeUseService.java | 8 ++ .../wallet/service/WalletForeignService.java | 8 ++ .../wallet/service/WalletFreezeService.java | 4 + .../wallet/service/WalletStrideService.java | 8 ++ .../impl/WalletCodeUseServiceImpl.java | 16 +++ .../impl/WalletForeignServiceImpl.java | 18 +++ .../service/impl/WalletFreezeServiceImpl.java | 40 ++++++ .../service/impl/WalletStrideServiceImpl.java | 16 +++ .../resources/mapper/WalletCodeUseMapper.xml | 22 ++++ .../resources/mapper/WalletForeignMapper.xml | 21 ++++ .../resources/mapper/WalletStrideMapper.xml | 19 +++ 29 files changed, 856 insertions(+), 12 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletCodeUseDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeEntityDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletCodeUseEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletForeignEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletStrideEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletCodeUseVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletForeignVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletStrideVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletCodeUseMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletStrideMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletCodeUseService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletForeignService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletStrideService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletForeignServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletStrideServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletCodeUseMapper.xml create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletForeignMapper.xml create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletStrideMapper.xml diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index d22e44b61..43091580e 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -153,7 +153,10 @@ CREATE TABLE wallet_transaction CREATE INDEX idx_dept_id ON wallet_transaction (wallet_id); - +-- ---------------------------- +-- Table structure for sys_user_face +-- ---------------------------- +DROP TABLE IF EXISTS sys_user_face; CREATE TABLE `sys_user_face` ( id bigint AUTO_INCREMENT NOT NULL COMMENT '编号', @@ -171,6 +174,10 @@ CREATE TABLE `sys_user_face` COLLATE = utf8mb4_general_ci COMMENT ='人脸样本表'; CREATE INDEX idx_dept_id ON sys_user_face (user_id); +-- ---------------------------- +-- Table structure for wallet_recharge_apply +-- ---------------------------- +DROP TABLE IF EXISTS wallet_recharge_apply; CREATE TABLE wallet_recharge_apply ( id bigint NOT NULL COMMENT '主键ID', @@ -192,6 +199,9 @@ CREATE TABLE wallet_recharge_apply COLLATE = utf8mb4_general_ci COMMENT ='充值申请表'; CREATE INDEX idx_dept_id ON wallet_recharge_apply (user_id); +-- ---------------------------- +-- Table structure for wallet_recharge_import +-- ---------------------------- DROP TABLE IF EXISTS wallet_recharge_import; CREATE TABLE wallet_recharge_import ( @@ -208,4 +218,74 @@ CREATE TABLE wallet_recharge_import 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 +CREATE INDEX idx_dept_id ON wallet_recharge_import (user_id); + +-- ---------------------------- +-- Table structure for wallet_stride_dept +-- ---------------------------- +DROP TABLE IF EXISTS wallet_stride; +CREATE TABLE wallet_stride +( + id bigint NOT NULL COMMENT '编号', + dept_id bigint NOT NULL COMMENT '部门id', + count int NOT NULL COMMENT '申请数量', + use_count int NOT NULL COMMENT '使用数量', + user_id bigint NOT NULL COMMENT '申请人id', + remark varchar(1024) 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 COMMENT ='跨单位就餐'; + +-- ---------------------------- +-- Table structure for wallet_recharge_import +-- ---------------------------- +DROP TABLE IF EXISTS wallet_foreign; +CREATE TABLE wallet_foreign +( + id bigint NOT NULL COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户id', + dept_id bigint NOT NULL COMMENT '部门id', + apply_start_time date NULL COMMENT '申请使用开始时间', + apply_end_time date NULL COMMENT '申请使用结束时间', + count int NOT NULL COMMENT '申请数量', + use_count int NOT NULL COMMENT '使用数量', + remark VARCHAR(1024) 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 COMMENT ='外来人员电子餐券表'; + +-- ---------------------------- +-- Table structure for wallet_code_use +-- ---------------------------- +DROP TABLE IF EXISTS wallet_code_use; +CREATE TABLE wallet_code_use +( + id bigint NOT NULL COMMENT '编号', + user_id bigint NOT NULL COMMENT '用户id', + biz_type tinytext NOT NULL COMMENT '类型', + biz_id bigint NOT NULL COMMENT '类型关联id', + status char(1) DEFAULT '0' NOT NULL COMMENT '是否使用', + code varchar(1024) DEFAULT NULL COMMENT '二维码', + code_content varchar(1024) DEFAULT NULL COMMENT '二维码内容', + use_time timestamp 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 COMMENT ='二维码使用表'; \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletCodeUseDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletCodeUseDto.java new file mode 100644 index 000000000..526b17c59 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletCodeUseDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.WalletCodeUseEntity; +import lombok.Data; + +@Data +public class WalletCodeUseDto extends WalletCodeUseEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java new file mode 100644 index 000000000..151e1834d --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeDto.java @@ -0,0 +1,15 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class WalletFreezeDto extends WalletFreezeEntity { + + private List userIds; + + private String cardNumber; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeEntityDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeEntityDto.java deleted file mode 100644 index cfe78fb9e..000000000 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletFreezeEntityDto.java +++ /dev/null @@ -1,8 +0,0 @@ -package com.bsd.pjcloud.wallet.api.dto; - -import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; -import lombok.Data; - -@Data -public class WalletFreezeEntityDto extends WalletFreezeEntity { -} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java new file mode 100644 index 000000000..e3eaff66a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletStrideDto.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.WalletStrideEntity; +import lombok.Data; + +@Data +public class WalletStrideDto extends WalletStrideEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletCodeUseEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletCodeUseEntity.java new file mode 100644 index 000000000..e5c4341db --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletCodeUseEntity.java @@ -0,0 +1,115 @@ +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 2025-01-02 16:26:10 + */ +@Data +@TenantTable +@TableName("wallet_code_use") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "二维码使用表") +public class WalletCodeUseEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 用户id + */ + @Schema(description="用户id") + private Long userId; + + /** + * 类型 + */ + @Schema(description="类型") + private String bizType; + + /** + * 类型关联id + */ + @Schema(description="类型关联id") + private Long bizId; + + /** + * 是否使用 + */ + @Schema(description="是否使用") + private String status; + + /** + * 二维码 + */ + @Schema(description="二维码") + private String code; + + /** + * 二维码内容 + */ + @Schema(description="二维码内容") + private String codeContent; + + /** + * 使用时间 + */ + @Schema(description="使用时间") + private LocalDateTime useTime; + + /** + * 创建人 + */ + @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/WalletForeignEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletForeignEntity.java new file mode 100644 index 000000000..cf9f65a0e --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletForeignEntity.java @@ -0,0 +1,116 @@ +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.LocalDate; +import java.time.LocalDateTime; + +/** + * 外来人员电子餐券表 + * + * @author dzc + * @date 2025-01-02 16:26:48 + */ +@Data +@TenantTable +@TableName("wallet_foreign") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "外来人员电子餐券表") +public class WalletForeignEntity 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 deptId; + + /** + * 申请使用开始时间 + */ + @Schema(description="申请使用开始时间") + private LocalDate applyStartTime; + + /** + * 申请使用结束时间 + */ + @Schema(description="申请使用结束时间") + private LocalDate applyEndTime; + + /** + * 申请数量 + */ + @Schema(description="申请数量") + private Integer count; + + /** + * 使用数量 + */ + @Schema(description="使用数量") + private Integer useCount; + + /** + * 申请备注 + */ + @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/WalletStrideEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletStrideEntity.java new file mode 100644 index 000000000..547d08f36 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletStrideEntity.java @@ -0,0 +1,103 @@ +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 2025-01-02 16:27:26 + */ +@Data +@TenantTable +@TableName("wallet_stride") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "跨单位就餐") +public class WalletStrideEntity extends Model { + + + /** + * 编号 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="编号") + private Long id; + + /** + * 部门id + */ + @Schema(description="部门id") + private Long deptId; + + /** + * 申请数量 + */ + @Schema(description="申请数量") + private Integer count; + + /** + * 使用数量 + */ + @Schema(description="使用数量") + private Integer useCount; + + /** + * 申请人id + */ + @Schema(description="申请人id") + private Long userId; + + /** + * 备注 + */ + @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/WalletCodeUseVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletCodeUseVo.java new file mode 100644 index 000000000..74ca35940 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletCodeUseVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletCodeUseEntity; +import lombok.Data; + +@Data +public class WalletCodeUseVo extends WalletCodeUseEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletForeignVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletForeignVo.java new file mode 100644 index 000000000..73c291e1f --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletForeignVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletForeignEntity; +import lombok.Data; + +@Data +public class WalletForeignVo extends WalletForeignEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java index eda567a06..7e7446b76 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletFreezeVo.java @@ -1,8 +1,27 @@ package com.bsd.pjcloud.wallet.api.vo; +import com.bsd.pjcloud.admin.api.vo.base.BaseDeptInterface; +import com.bsd.pjcloud.admin.api.vo.base.BaseUserInterface; import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; import lombok.Data; @Data -public class WalletFreezeVo extends WalletFreezeEntity { +public class WalletFreezeVo extends WalletFreezeEntity implements BaseUserInterface, BaseDeptInterface { + /** + * 用户相关 + */ + private String username; + + private String userMobile; + + private String userAvatar; + + /** + * 部门相关 + */ + private Long deptId; + + private String deptName; + + private String cardNumber; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletStrideVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletStrideVo.java new file mode 100644 index 000000000..ed32612a2 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletStrideVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletStrideEntity; +import lombok.Data; + +@Data +public class WalletStrideVo extends WalletStrideEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java index 523615236..6629aa1ac 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletFreezeController.java @@ -7,6 +7,7 @@ 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.dto.WalletFreezeDto; import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; import com.bsd.pjcloud.wallet.service.WalletFreezeService; import org.springframework.security.access.prepost.PreAuthorize; @@ -50,6 +51,19 @@ public class WalletFreezeController { return R.ok(walletFreezeService.page(page, wrapper)); } + /** + * 分页复杂查询 + * @param page 分页复杂查询 + * @param dto 分页复杂查询 + * @return + */ + @Operation(summary = "分页复杂查询" , description = "分页复杂查询" ) + @GetMapping("/page-join" ) + @PreAuthorize("@pms.hasPermission('wallet_walletFreeze_view')" ) + public R getWalletFreezePage(@ParameterObject Page page, @ParameterObject WalletFreezeDto dto) { + return R.ok(walletFreezeService.pageJoin(page, dto)); + } + /** * 通过id查询饭卡冻结记录表 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java new file mode 100644 index 000000000..aa119a1d2 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletStrideController.java @@ -0,0 +1,119 @@ +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.WalletStrideEntity; +import com.bsd.pjcloud.wallet.service.WalletStrideService; +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 2025-01-02 16:27:26 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/walletStride" ) +@Tag(description = "walletStride" , name = "跨单位就餐管理" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class WalletStrideController { + + private final WalletStrideService walletStrideService; + + /** + * 分页查询 + * @param page 分页对象 + * @param walletStride 跨单位就餐 + * @return + */ + @Operation(summary = "分页查询" , description = "分页查询" ) + @GetMapping("/page" ) + @PreAuthorize("@pms.hasPermission('admin_walletStride_view')" ) + public R getWalletStridePage(@ParameterObject Page page, @ParameterObject WalletStrideEntity walletStride) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(walletStrideService.page(page, wrapper)); + } + + + /** + * 通过id查询跨单位就餐 + * @param id id + * @return R + */ + @Operation(summary = "通过id查询" , description = "通过id查询" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('admin_walletStride_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(walletStrideService.getById(id)); + } + + /** + * 新增跨单位就餐 + * @param walletStride 跨单位就餐 + * @return R + */ + @Operation(summary = "新增跨单位就餐" , description = "新增跨单位就餐" ) + @SysLog("新增跨单位就餐" ) + @PostMapping + @PreAuthorize("@pms.hasPermission('admin_walletStride_add')" ) + public R save(@RequestBody WalletStrideEntity walletStride) { + return R.ok(walletStrideService.save(walletStride)); + } + + /** + * 修改跨单位就餐 + * @param walletStride 跨单位就餐 + * @return R + */ + @Operation(summary = "修改跨单位就餐" , description = "修改跨单位就餐" ) + @SysLog("修改跨单位就餐" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('admin_walletStride_edit')" ) + public R updateById(@RequestBody WalletStrideEntity walletStride) { + return R.ok(walletStrideService.updateById(walletStride)); + } + + /** + * 通过id删除跨单位就餐 + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除跨单位就餐" , description = "通过id删除跨单位就餐" ) + @SysLog("通过id删除跨单位就餐" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('admin_walletStride_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(walletStrideService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 导出excel 表格 + * @param walletStride 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('admin_walletStride_export')" ) + public List export(WalletStrideEntity walletStride,Long[] ids) { + return walletStrideService.list(Wrappers.lambdaQuery(walletStride).in(ArrayUtil.isNotEmpty(ids), WalletStrideEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletCodeUseMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletCodeUseMapper.java new file mode 100644 index 000000000..6c23f6721 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletCodeUseMapper.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.WalletCodeUseEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletCodeUseMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java new file mode 100644 index 000000000..e5926d76c --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletForeignMapper.java @@ -0,0 +1,10 @@ +package com.bsd.pjcloud.wallet.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.WalletForeignEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletForeignMapper extends PjcloudBaseMapper { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletFreezeMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletFreezeMapper.java index f7e2d8bc4..27ecf4321 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletFreezeMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletFreezeMapper.java @@ -1,11 +1,28 @@ package com.bsd.pjcloud.wallet.mapper; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.WalletFreezeDto; +import com.bsd.pjcloud.wallet.api.entity.WalletActiveEntity; import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; +import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletActiveVo; +import com.bsd.pjcloud.wallet.api.vo.WalletFreezeVo; +import com.github.yulichang.query.MPJLambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface WalletFreezeMapper extends PjcloudBaseMapper { - + default Page pageJoin(Page page, WalletFreezeDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .selectAll(WalletFreezeEntity.class) + .selectAs(WalletManageEntity::getCardNumber, WalletFreezeDto::getCardNumber) + .leftJoin(WalletManageEntity.class, WalletManageEntity::getId, WalletFreezeEntity::getWalletId) + .eqIfExists(WalletManageEntity::getCardNumber, dto.getCardNumber()) + .in(ObjectUtil.isNotEmpty(dto.getUserIds()), WalletFreezeEntity::getId, dto.getUserIds()); + return selectJoinPage(page, WalletActiveVo.class, wrapper); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletStrideMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletStrideMapper.java new file mode 100644 index 000000000..01ebc0ec3 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletStrideMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.admin.entity.WalletStrideEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletStrideMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletCodeUseService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletCodeUseService.java new file mode 100644 index 000000000..2c6471498 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletCodeUseService.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.WalletCodeUseEntity; + +public interface WalletCodeUseService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletForeignService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletForeignService.java new file mode 100644 index 000000000..4f348a0e3 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletForeignService.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.WalletForeignEntity; + +public interface WalletForeignService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletFreezeService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletFreezeService.java index 9177fdcdb..1297d6a3d 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletFreezeService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletFreezeService.java @@ -1,8 +1,12 @@ 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.WalletFreezeDto; import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletFreezeVo; public interface WalletFreezeService extends IService { + Page pageJoin(Page page, WalletFreezeDto dto); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletStrideService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletStrideService.java new file mode 100644 index 000000000..834e3dd3a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletStrideService.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.WalletStrideEntity; + +public interface WalletStrideService 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/WalletCodeUseServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.java new file mode 100644 index 000000000..19d943fff --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.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.WalletCodeUseEntity; +import com.bsd.pjcloud.wallet.mapper.WalletCodeUseMapper; +import com.bsd.pjcloud.wallet.service.WalletCodeUseService; +import org.springframework.stereotype.Service; +/** + * 二维码使用表 + * + * @author dzc + * @date 2025-01-02 16:26:10 + */ +@Service +public class WalletCodeUseServiceImpl extends ServiceImpl implements WalletCodeUseService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletForeignServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletForeignServiceImpl.java new file mode 100644 index 000000000..0d3d07796 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletForeignServiceImpl.java @@ -0,0 +1,18 @@ +package com.bsd.pjcloud.wallet.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.WalletForeignEntity; +import com.bsd.pjcloud.wallet.mapper.WalletForeignMapper; +import com.bsd.pjcloud.wallet.service.WalletForeignService; +import org.springframework.stereotype.Service; + +/** + * 外来人员电子餐券表 + * + * @author dzc + * @date 2025-01-02 16:26:48 + */ +@Service +public class WalletForeignServiceImpl extends ServiceImpl implements WalletForeignService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java index 2ea4dc98d..947fe2ed3 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletFreezeServiceImpl.java @@ -1,7 +1,19 @@ package com.bsd.pjcloud.wallet.service.impl; +import cn.hutool.core.util.ObjectUtil; +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.entity.SysUser; +import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; +import com.bsd.pjcloud.admin.api.feign.RemoteUserService; +import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.common.core.util.CollectionUtils; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.wallet.api.dto.WalletFreezeDto; import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletActiveVo; +import com.bsd.pjcloud.wallet.api.vo.WalletFreezeVo; import com.bsd.pjcloud.wallet.mapper.WalletFreezeMapper; import com.bsd.pjcloud.wallet.service.WalletFreezeService; import lombok.RequiredArgsConstructor; @@ -9,6 +21,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + /** * 饭卡冻结记录表 * @@ -20,4 +36,28 @@ import org.springframework.validation.annotation.Validated; @RequiredArgsConstructor @Service public class WalletFreezeServiceImpl extends ServiceImpl implements WalletFreezeService { + + private final RemoteUserService userService; + private final RemoteDeptService deptService; + + @Override + public Page pageJoin(Page page, WalletFreezeDto dto) { + Page list = baseMapper.pageJoin(page, dto); + if (ObjectUtil.isNotEmpty(list.getRecords())) { + // 用户 + List userIds = list.getRecords().stream().map(WalletFreezeVo::getUserId).distinct().toList(); + R> userList = userService.getUserById(new ArrayList<>(userIds)); + if (ObjectUtil.isNotEmpty(userList.getData())) { + DataUtil.convertUserList(page.getRecords(), CollectionUtils.convertMap(userList.getData(), SysUser::getUserId)); + } + // 部门 + List deptIds = list.getRecords().stream().map(WalletFreezeVo::getDeptId).distinct().toList(); + R> deptList = deptService.getDeptByDeptIds(deptIds); + if (ObjectUtil.isNotEmpty(deptList.getData())) { + DataUtil.convertDeptList(page.getRecords(), deptList.getData()); + } + } + return list; + } + } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletStrideServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletStrideServiceImpl.java new file mode 100644 index 000000000..ffa17cdcc --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletStrideServiceImpl.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.WalletStrideEntity; +import com.bsd.pjcloud.wallet.mapper.WalletStrideMapper; +import com.bsd.pjcloud.wallet.service.WalletStrideService; +import org.springframework.stereotype.Service; +/** + * 跨单位就餐 + * + * @author pjcloud + * @date 2025-01-02 16:27:26 + */ +@Service +public class WalletStrideServiceImpl extends ServiceImpl implements WalletStrideService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletCodeUseMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletCodeUseMapper.xml new file mode 100644 index 000000000..d9d0d632a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletCodeUseMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletForeignMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletForeignMapper.xml new file mode 100644 index 000000000..2a6439f93 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletForeignMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletStrideMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletStrideMapper.xml new file mode 100644 index 000000000..1f0652c35 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletStrideMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file