diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index 374cfc8a5..9860dcc2a 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -89,6 +89,12 @@ CREATE TABLE wallet_freeze user_id bigint NOT NULL COMMENT '用户id', free_status TINYINT 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 ='饭卡冻结记录表'; @@ -101,14 +107,19 @@ CREATE INDEX idx_dept_id ON wallet_freeze (user_id); DROP TABLE IF EXISTS wallet_transaction; CREATE TABLE wallet_transaction ( - id bigint NOT NULL COMMENT '编号', - wallet_id bigint NOT NULL COMMENT '会员钱包 id', - biz_type tinyint NOT NULL COMMENT '关联类型', - biz_id varchar(64) NOT NULL COMMENT '关联业务编号', - no varchar(64) NOT NULL COMMENT '流水号', - title varchar(128) NOT NULL COMMENT '流水标题', - price int NOT NULL COMMENT '交易金额, 单位分', - balance int NOT NULL COMMENT '余额, 单位分', + id bigint NOT NULL COMMENT '编号', + wallet_id bigint NOT NULL COMMENT '会员钱包 id', + biz_type tinyint NOT NULL COMMENT '关联类型', + biz_id varchar(64) NOT NULL COMMENT '关联业务编号', + title varchar(128) NOT NULL COMMENT '流水标题', + price int NOT NULL COMMENT '交易金额, 单位分', + balance 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) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='会员钱包流水表'; diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java index 776deb71b..689eaeebf 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/YesNoEnum.java @@ -13,16 +13,16 @@ import lombok.Getter; @AllArgsConstructor public enum YesNoEnum { - YES("1", "是"), NO("0", "否"); + YES("1", "是"), NO("0", "否"); - /** - * 编码 - */ - private String code; + /** + * 编码 + */ + private String code; - /** - * 描述 - */ - private String desc; + /** + * 描述 + */ + private String desc; } diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/utils/DataUtil.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/utils/DataUtil.java index 3e55e8cc3..2819f4028 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/utils/DataUtil.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/utils/DataUtil.java @@ -1,6 +1,7 @@ package com.bsd.pjcloud.admin.api.utils; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.entity.SysMenu; import com.bsd.pjcloud.admin.api.entity.SysUser; @@ -96,6 +97,7 @@ public class DataUtil { } public T convertUser(T v, SysUser user) { + if (ObjectUtil.isEmpty(user)) return v; v.setUsername(user.getUsername()); v.setUserMobile(user.getPhone()); v.setUserAvatar(user.getAvatar()); @@ -107,6 +109,7 @@ public class DataUtil { } public T convertDept(T v, SysDept dept) { + if (ObjectUtil.isEmpty(dept)) return v; v.setDeptId(dept.getDeptId()); v.setDeptName(dept.getName()); return v; diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java index 4b6068be6..cc7f4dd51 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserServiceImpl.java @@ -64,6 +64,7 @@ import org.springframework.validation.BindingResult; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; /** @@ -140,7 +141,7 @@ public class SysUserServiceImpl extends ServiceImpl impl }).forEach(sysUserRoleMapper::insert); // 创建用户默认钱包 - remoteWalletService.createWallet(userDto.getUserId()); + CompletableFuture.runAsync(() -> remoteWalletService.createWallet(userDto.getUserId())); return Boolean.TRUE; } @@ -224,6 +225,10 @@ public class SysUserServiceImpl extends ServiceImpl impl sysUserRoleMapper.delete(Wrappers.lambdaQuery().in(SysUserRole::getUserId, CollUtil.toList(ids))); this.removeBatchByIds(CollUtil.toList(ids)); + + // 删除钱包 + CompletableFuture.runAsync(() -> remoteWalletService.delWallet(List.of(ids))); + return Boolean.TRUE; } @@ -282,7 +287,7 @@ public class SysUserServiceImpl extends ServiceImpl impl } // 创建用户默认钱包 - remoteWalletService.createWallet(userDto.getUserId()); + CompletableFuture.runAsync(() -> remoteWalletService.createWallet(userDto.getUserId())); return Boolean.TRUE; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageDto.java index 791296b5e..848618ed7 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletManageDto.java @@ -1,10 +1,7 @@ package com.bsd.pjcloud.wallet.api.dto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; -import lombok.AllArgsConstructor; -import lombok.Builder; import lombok.Data; -import lombok.NoArgsConstructor; @Data public class WalletManageDto extends WalletManageEntity { diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java new file mode 100644 index 000000000..48521791a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionDto.java @@ -0,0 +1,14 @@ +package com.bsd.pjcloud.wallet.api.dto; + +import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; +import lombok.Data; + +@Data +public class WalletTransactionDto extends WalletTransactionEntity { + + /** + * 用户id + */ + private Long userId; + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java index feacd44cf..2db7e1761 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTransactionEntity.java @@ -6,6 +6,8 @@ import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import lombok.EqualsAndHashCode; +import java.time.LocalDateTime; + /** * 会员钱包流水表 * @@ -44,12 +46,6 @@ public class WalletTransactionEntity extends Model { @Schema(description="关联业务编号") private String bizId; - /** - * 流水号 - */ - @Schema(description="流水号") - private String no; - /** * 流水标题 */ @@ -67,4 +63,46 @@ public class WalletTransactionEntity extends Model { */ @Schema(description="余额, 单位分") private Integer balance; + + /** + * 创建人 + */ + @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/feign/RemoteWalletService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java index 75e644918..f1956c7e5 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletService.java @@ -7,8 +7,11 @@ import com.bsd.pjcloud.wallet.api.constant.WalletTypeCodeEnum; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; +import java.util.List; + @FeignClient(contextId = "remoteWalletService", value = ServiceNameConstants.WALLET_SERVICE) public interface RemoteWalletService { @@ -22,6 +25,10 @@ public interface RemoteWalletService { @NoToken @GetMapping("/wallet-manage/create-wallet") - R createWallet(@RequestParam Long userId); + R createWallet(@RequestParam Long userId); + + @NoToken + @GetMapping("/wallet-manage/del-wallet") + R delWallet(@RequestParam("userIds") List userIds); } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTransactionVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTransactionVo.java new file mode 100644 index 000000000..9663288ca --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTransactionVo.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; +import lombok.Data; + +@Data +public class WalletTransactionVo extends WalletTransactionEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java index 638df70ae..1e08d9061 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletManageController.java @@ -73,6 +73,12 @@ public class WalletManageController { return R.ok(wallet); } + @Inner + @GetMapping("/del-wallet") + public R delWallet(@RequestParam("userIds") List userIds){ + return R.ok(walletManageService.delWalletByUserIds(userIds)); + } + /* ************************************* start 远程调用 start ************************************* */ /** @@ -108,7 +114,7 @@ public class WalletManageController { @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletManage_view')") public R getById(@PathVariable("id") Long id) { - return R.ok(walletManageService.getById(id)); + return R.ok(walletManageService.getWallet(id)); } /** diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java index 5b099d4f2..f8bbc6614 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java @@ -2,12 +2,16 @@ package com.bsd.pjcloud.wallet.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.wallet.api.dto.WalletTransactionDto; +import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; +import com.bsd.pjcloud.wallet.service.WalletManageService; import com.bsd.pjcloud.wallet.service.WalletTransactionService; import org.springframework.security.access.prepost.PreAuthorize; import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; @@ -29,75 +33,93 @@ import java.util.List; */ @RestController @RequiredArgsConstructor -@RequestMapping("/walletTransaction" ) -@Tag(description = "walletTransaction" , name = "会员钱包流水表管理" ) +@RequestMapping("/walletTransaction") +@Tag(description = "walletTransaction", name = "会员钱包流水表管理") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class WalletTransactionController { - private final WalletTransactionService walletTransactionService; + private final WalletTransactionService walletTransactionService; + + @PutMapping("/update-balance") + @Operation(summary = "更新会员用户余额") + public R updateWalletBalance(@RequestBody WalletTransactionDto dto) { + return R.ok(walletTransactionService.updateWalletBalance(dto)); + } /** * 分页查询 + * * @param page 分页对象 - * @param walletTransaction 会员钱包流水表 + * @param dto 会员钱包流水表 * @return */ - @Operation(summary = "分页查询" , description = "分页查询" ) - @GetMapping("/page" ) - @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_view')" ) - public R getWalletTransactionPage(@ParameterObject Page page, @ParameterObject WalletTransactionEntity walletTransaction) { - LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_view')") + public R getWalletTransactionPage(@ParameterObject Page page, @ParameterObject WalletTransactionEntity dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); return R.ok(walletTransactionService.page(page, wrapper)); } + @Operation(summary = "分页查询复杂查询", description = "分页查询复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_view')") + public R getWalletTransactionPageJoin(@ParameterObject Page page, @ParameterObject WalletTransactionDto dto) { + return R.ok(walletTransactionService.pageJoin(page, dto)); + } + /** * 通过id查询会员钱包流水表 + * * @param id id * @return R */ - @Operation(summary = "通过id查询" , description = "通过id查询" ) - @GetMapping("/{id}" ) - @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_view')" ) - public R getById(@PathVariable("id" ) Long id) { + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_view')") + public R getById(@PathVariable("id") Long id) { return R.ok(walletTransactionService.getById(id)); } /** * 新增会员钱包流水表 + * * @param walletTransaction 会员钱包流水表 * @return R */ - @Operation(summary = "新增会员钱包流水表" , description = "新增会员钱包流水表" ) - @SysLog("新增会员钱包流水表" ) + @Operation(summary = "新增会员钱包流水表", description = "新增会员钱包流水表") + @SysLog("新增会员钱包流水表") @PostMapping - @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_add')" ) + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_add')") public R save(@RequestBody WalletTransactionEntity walletTransaction) { return R.ok(walletTransactionService.save(walletTransaction)); } /** * 修改会员钱包流水表 + * * @param walletTransaction 会员钱包流水表 * @return R */ - @Operation(summary = "修改会员钱包流水表" , description = "修改会员钱包流水表" ) - @SysLog("修改会员钱包流水表" ) + @Operation(summary = "修改会员钱包流水表", description = "修改会员钱包流水表") + @SysLog("修改会员钱包流水表") @PutMapping - @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_edit')" ) + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_edit')") public R updateById(@RequestBody WalletTransactionEntity walletTransaction) { return R.ok(walletTransactionService.updateById(walletTransaction)); } /** * 通过id删除会员钱包流水表 + * * @param ids id列表 * @return R */ - @Operation(summary = "通过id删除会员钱包流水表" , description = "通过id删除会员钱包流水表" ) - @SysLog("通过id删除会员钱包流水表" ) + @Operation(summary = "通过id删除会员钱包流水表", description = "通过id删除会员钱包流水表") + @SysLog("通过id删除会员钱包流水表") @DeleteMapping - @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_del')" ) + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_del')") public R removeById(@RequestBody Long[] ids) { return R.ok(walletTransactionService.removeBatchByIds(CollUtil.toList(ids))); } @@ -105,14 +127,15 @@ public class WalletTransactionController { /** * 导出excel 表格 + * * @param walletTransaction 查询条件 - * @param ids 导出指定ID + * @param ids 导出指定ID * @return excel 文件流 */ @ResponseExcel @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_export')" ) - public List export(WalletTransactionEntity walletTransaction,Long[] ids) { + @PreAuthorize("@pms.hasPermission('wallet_walletTransaction_export')") + public List export(WalletTransactionEntity walletTransaction, Long[] ids) { return walletTransactionService.list(Wrappers.lambdaQuery(walletTransaction).in(ArrayUtil.isNotEmpty(ids), WalletTransactionEntity::getId, ids)); } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java index f51fdf65f..f1c9769a6 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java @@ -1,12 +1,24 @@ package com.bsd.pjcloud.wallet.mapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.WalletTransactionDto; +import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; +import com.bsd.pjcloud.wallet.api.vo.WalletTransactionVo; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface WalletTransactionMapper extends PjcloudBaseMapper { + default IPage pageJoin(Page page, WalletTransactionDto dto) { + MPJLambdaWrapper wrapper = new MPJLambdaWrapper() + .eqIfExists(WalletTransactionEntity::getWalletId, dto.getWalletId()); + return selectJoinPage(page, WalletTransactionVo.class, wrapper); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java index 71ba3de26..ec0f40f33 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletManageService.java @@ -6,8 +6,11 @@ import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.wallet.api.constant.WalletTypeCodeEnum; import com.bsd.pjcloud.wallet.api.dto.WalletManageDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; +import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import java.util.List; + public interface WalletManageService extends IService { /** @@ -34,12 +37,29 @@ public interface WalletManageService extends IService { /** * 获取钱包(有缓存) + * * @param userId * @param walletTypeCode * @return */ WalletManageEntity getWallet(@NotNull Long userId, @NotNull WalletTypeCodeEnum walletTypeCode); + /** + * 获取钱包(有缓存) + * + * @param walletId + * @return + */ + WalletManageEntity getWallet(@NotNull Long walletId); + + + /** + * 根据用户id删除用户钱包 + * + * @param userIds + * @return + */ + Boolean delWalletByUserIds(List<@NotNull Long> userIds); /** * 分页连表查询 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java index 47cc505ea..39bf35b61 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletTransactionService.java @@ -1,8 +1,13 @@ package com.bsd.pjcloud.wallet.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.common.core.util.R; import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum; +import com.bsd.pjcloud.wallet.api.dto.WalletTransactionDto; import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletTransactionVo; public interface WalletTransactionService extends IService { @@ -29,4 +34,18 @@ public interface WalletTransactionService extends IService pageJoin(Page page, WalletTransactionDto dto); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index c44198565..f030ce754 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java @@ -24,18 +24,19 @@ import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; import com.bsd.pjcloud.wallet.mapper.WalletTypeMapper; import com.bsd.pjcloud.wallet.service.WalletManageService; import com.bsd.pjcloud.wallet.service.WalletTypeService; -import com.bsd.pjcloud.wallet.utils.ConvertUtil; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.cache.annotation.CacheEvict; +import org.ehcache.xml.model.CacheTemplate; import org.springframework.cache.annotation.CachePut; import org.springframework.cache.annotation.Cacheable; +import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import java.util.*; -import java.util.stream.Collectors; /** * 钱包管理 @@ -58,6 +59,8 @@ public class WalletManageServiceImpl extends ServiceImpl userIds) { + if (ObjectUtil.isEmpty(userIds)) return false; + for (Long userId : userIds) { + List list = baseMapper.selectList(new LambdaQueryWrapper() + .eq(WalletManageEntity::getUserId, userId) + ); + if (ObjectUtil.isEmpty(list)) return false; + baseMapper.deleteByIds(CollectionUtils.convertList(list, WalletManageEntity::getId)); + list.forEach(v -> redisTemplate.opsForValue().getAndDelete(CacheConstants.WALLET_DETAIL + v.getId())); + } + return true; + } + @Override public R pageJoin(Page page, WalletManageDto dto) { Page list = baseMapper.pageJoin(page, dto); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java index 51c36f7e7..956943538 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletTransactionServiceImpl.java @@ -1,17 +1,26 @@ package com.bsd.pjcloud.wallet.service.impl; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.extra.spring.SpringUtil; +import com.alibaba.fastjson.JSON; +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.common.core.constant.CacheConstants; import com.bsd.pjcloud.common.core.exception.CheckedException; import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum; +import com.bsd.pjcloud.wallet.api.dto.WalletTransactionDto; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; +import com.bsd.pjcloud.wallet.api.vo.WalletTransactionVo; import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; import com.bsd.pjcloud.wallet.mapper.WalletTransactionMapper; import com.bsd.pjcloud.wallet.service.WalletManageService; import com.bsd.pjcloud.wallet.service.WalletTransactionService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -42,6 +51,7 @@ public class WalletTransactionServiceImpl extends ServiceImpl pageJoin(Page page, WalletTransactionDto dto) { + return baseMapper.pageJoin(page, dto); + } } \ No newline at end of file