From c07a3b66ae75295cf23097c423892c9db2311067 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 28 Mar 2025 15:40:06 +0800 Subject: [PATCH 01/11] =?UTF-8?q?feat:=E7=94=A8=E6=88=B7=E5=95=86=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wallet/api/dto/mch/MchDeptUserDto.java | 9 ++ .../api/entity/mch/MchDeptUserEntity.java | 91 ++++++++++++++ .../wallet/api/vo/mch/MchDeptUserVo.java | 9 ++ .../controller/mch/MchDeptUserController.java | 116 ++++++++++++++++++ .../wallet/mapper/mch/MchDeptUserMapper.java | 11 ++ .../wallet/service/MchDeptUserService.java | 8 ++ .../impl/mch/MchDeptUserServiceImpl.java | 13 ++ .../mapper/mch/MchDeptUserMapper.xml | 18 +++ 8 files changed, 275 insertions(+) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchDeptUserDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchDeptUserEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchDeptUserVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptUserController.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchDeptUserMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptUserService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptUserServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchDeptUserDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchDeptUserDto.java new file mode 100644 index 000000000..b98412a0c --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchDeptUserDto.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.dto.mch; + +import com.bsd.pjcloud.wallet.api.entity.mch.MchDeptUserEntity; +import lombok.Data; + +@Data +public class MchDeptUserDto extends MchDeptUserEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchDeptUserEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchDeptUserEntity.java new file mode 100644 index 000000000..800cf19dc --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchDeptUserEntity.java @@ -0,0 +1,91 @@ +package com.bsd.pjcloud.wallet.api.entity.mch; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; +import java.time.LocalDateTime; + +/** + * 用户部门商户关系表 + * + * @author pjcloud + * @date 2025-03-28 15:28:00 + */ +@Data +@TenantTable +@TableName("mch_dept_user") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "用户部门商户关系表") +public class MchDeptUserEntity extends Model { + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="主键") + private Long id; + + /** + * 商户id + */ + @Schema(description="商户id") + private Long mchId; + + /** + * 用户id + */ + @Schema(description="用户id") + private Long userId; + + /** + * 用户部门id + */ + @Schema(description="用户部门id") + private Long userDeptId; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建人") + private String createBy; + + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description="创建时间") + private LocalDateTime createTime; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description="修改人") + private String updateBy; + + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description="修改时间") + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @Schema(description="删除标记") + private String delFlag; + + /** + * 租户ID + */ + @Schema(description="租户ID") + private Long tenantId; +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchDeptUserVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchDeptUserVo.java new file mode 100644 index 000000000..e8f1be2cb --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchDeptUserVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.vo.mch; + +import com.bsd.pjcloud.wallet.api.entity.mch.MchDeptUserEntity; +import lombok.Data; + +@Data +public class MchDeptUserVo extends MchDeptUserEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptUserController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptUserController.java new file mode 100644 index 000000000..b88af388c --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptUserController.java @@ -0,0 +1,116 @@ +package com.bsd.pjcloud.wallet.controller.mch; + +import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.collection.CollUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.wallet.api.entity.mch.MchDeptUserEntity; +import com.bsd.pjcloud.wallet.service.MchDeptUserService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 用户部门商户关系表 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/mchDeptUser" ) +@Tag(description = "mchDeptUser" , name = "用户部门商户关系表管理" ) +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class MchDeptUserController { + + private final MchDeptUserService mchDeptUserService; + + /** + * 分页查询 + * @param page 分页对象 + * @param mchDeptUser 用户部门商户关系表 + * @return + */ + @Operation(summary = "分页查询" , description = "分页查询" ) + @GetMapping("/page" ) + @PreAuthorize("@pms.hasPermission('wallet_mchDeptUser_view')" ) + public R getMchDeptUserPage(@ParameterObject Page page, @ParameterObject MchDeptUserEntity mchDeptUser) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(mchDeptUserService.page(page, wrapper)); + } + + + /** + * 通过id查询用户部门商户关系表 + * @param id id + * @return R + */ + @Operation(summary = "通过id查询" , description = "通过id查询" ) + @GetMapping("/{id}" ) + @PreAuthorize("@pms.hasPermission('wallet_mchDeptUser_view')" ) + public R getById(@PathVariable("id" ) Long id) { + return R.ok(mchDeptUserService.getById(id)); + } + + /** + * 新增用户部门商户关系表 + * @param mchDeptUser 用户部门商户关系表 + * @return R + */ + @Operation(summary = "新增用户部门商户关系表" , description = "新增用户部门商户关系表" ) + @SysLog("新增用户部门商户关系表" ) + @PostMapping + @PreAuthorize("@pms.hasPermission('wallet_mchDeptUser_add')" ) + public R save(@RequestBody MchDeptUserEntity mchDeptUser) { + return R.ok(mchDeptUserService.save(mchDeptUser)); + } + + /** + * 修改用户部门商户关系表 + * @param mchDeptUser 用户部门商户关系表 + * @return R + */ + @Operation(summary = "修改用户部门商户关系表" , description = "修改用户部门商户关系表" ) + @SysLog("修改用户部门商户关系表" ) + @PutMapping + @PreAuthorize("@pms.hasPermission('wallet_mchDeptUser_edit')" ) + public R updateById(@RequestBody MchDeptUserEntity mchDeptUser) { + return R.ok(mchDeptUserService.updateById(mchDeptUser)); + } + + /** + * 通过id删除用户部门商户关系表 + * @param ids id列表 + * @return R + */ + @Operation(summary = "通过id删除用户部门商户关系表" , description = "通过id删除用户部门商户关系表" ) + @SysLog("通过id删除用户部门商户关系表" ) + @DeleteMapping + @PreAuthorize("@pms.hasPermission('wallet_mchDeptUser_del')" ) + public R removeById(@RequestBody Long[] ids) { + return R.ok(mchDeptUserService.removeBatchByIds(CollUtil.toList(ids))); + } + + + /** + * 导出excel 表格 + * @param mchDeptUser 查询条件 + * @param ids 导出指定ID + * @return excel 文件流 + */ + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('wallet_mchDeptUser_export')" ) + public List export(MchDeptUserEntity mchDeptUser,Long[] ids) { + return mchDeptUserService.list(Wrappers.lambdaQuery(mchDeptUser).in(ArrayUtil.isNotEmpty(ids), MchDeptUserEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchDeptUserMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchDeptUserMapper.java new file mode 100644 index 000000000..149256664 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/MchDeptUserMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper.mch; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.mch.MchDeptUserEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MchDeptUserMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptUserService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptUserService.java new file mode 100644 index 000000000..ee20ebe7a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptUserService.java @@ -0,0 +1,8 @@ +package com.bsd.pjcloud.wallet.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.wallet.api.entity.mch.MchDeptUserEntity; + +public interface MchDeptUserService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptUserServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptUserServiceImpl.java new file mode 100644 index 000000000..d9c017e83 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptUserServiceImpl.java @@ -0,0 +1,13 @@ +package com.bsd.pjcloud.wallet.service.impl.mch; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.mch.MchDeptUserEntity; +import com.bsd.pjcloud.wallet.mapper.mch.MchDeptUserMapper; +import com.bsd.pjcloud.wallet.service.MchDeptUserService; +import org.springframework.stereotype.Service; +/** + * 用户部门商户关系表 + */ +@Service +public class MchDeptUserServiceImpl extends ServiceImpl implements MchDeptUserService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml new file mode 100644 index 000000000..0d82e8ccf --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file From a1c8527a3a87182c9b2377cd2a4e7e15b611e3d5 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Fri, 28 Mar 2025 16:07:55 +0800 Subject: [PATCH 02/11] 11 --- .../service/impl/thrid/WalletThirdZyServiceImpl.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/thrid/WalletThirdZyServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/thrid/WalletThirdZyServiceImpl.java index 020a4a37e..d7acd3d5d 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/thrid/WalletThirdZyServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/thrid/WalletThirdZyServiceImpl.java @@ -277,10 +277,10 @@ public class WalletThirdZyServiceImpl implements WalletThirdZyService { continue; } } - if (userWallet.getBalance() > 4000) { - log.error("|{}|余额大于40本次不更新|{}|", TAG, v.getUserId()); - continue; - } + // if (userWallet.getBalance() > 4000) { + // log.error("|{}|余额大于40本次不更新|{}|", TAG, v.getUserId()); + // continue; + // } ZyMerSyncAccountInfoDto item = new ZyMerSyncAccountInfoDto(); item.setAccName(v.getName()); item.setAccNum(v.getUserId().toString()); From ffee069910e7196abb4930197113a392db6abffe Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Sat, 29 Mar 2025 10:38:47 +0800 Subject: [PATCH 03/11] =?UTF-8?q?feaet:=E5=85=85=E5=80=BC=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E5=88=B0=E6=AD=A3=E5=85=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 35 +++-- .../core/constant/enums/MerchantTypeEnum.java | 4 +- .../service/impl/HardManagerServiceImpl.java | 1 - .../pjcloud/admin/api/dto/DeptAllListDto.java | 2 + .../admin/api/feign/RemoteUserService.java | 1 + .../admin/controller/SysUserController.java | 5 +- .../pjcloud/admin/service/SysUserService.java | 3 + .../service/impl/SysUserServiceImpl.java | 31 +++++ .../main/resources/mapper/SysDeptMapper.xml | 9 +- .../api/constant/mch/WalletMchSupType.java | 30 +++++ .../pjcloud/wallet/api/dto/MchManageDto.java | 3 +- .../wallet/api/dto/mch/MchDeptDto.java | 26 ++++ .../wallet/api/dto/mch/MchDeptUserDto.java | 9 -- .../wallet/api/dto/mch/MchRuleJoinDto.java | 9 ++ .../api/dto/mch/MchRulePriceConfigDto.java | 9 ++ .../api/dto/rule/WalletRuleMchConfigDto.java | 8 -- .../dto/rule/WalletRulePriceConfigDto.java | 8 -- .../wallet/api/entity/mch/MchDeptEntity.java | 83 ++++++++++++ .../api/entity/mch/MchDeptUserEntity.java | 91 ------------- .../api/entity/{ => mch}/MchManageEntity.java | 10 +- .../MchRuleJoinDtoEntity.java} | 12 +- .../MchRulePriceConfigEntity.java} | 8 +- .../pjcloud/wallet/api/vo/MchManageVo.java | 7 +- .../wallet/api/vo/mch/MchDeptUserVo.java | 9 -- .../pjcloud/wallet/api/vo/mch/MchDeptVo.java | 25 ++++ .../MchRuleJoinDtoVo.java} | 6 +- .../api/vo/mch/MchRulePriceConfigVo.java | 8 ++ .../api/vo/rule/WalletRulePriceConfigVo.java | 8 -- .../controller/WalletFreezeController.java | 4 - .../controller/mch/MchDeptController.java | 91 +++++++++++++ .../controller/mch/MchDeptUserController.java | 116 ---------------- .../{ => mch}/MchManageController.java | 15 ++- .../MchRuleJoinController.java} | 54 +++----- .../MchRulePriceConfigController.java} | 20 +-- .../third/WalletThirdZyController.java | 4 +- .../wallet/mapper/MchManageMapper.java | 6 +- .../wallet/mapper/mch/MchDeptUserMapper.java | 13 +- .../rule/WalletRuleMchConfigMapper.java | 10 +- .../rule/WalletRulePriceConfigMapper.java | 4 +- .../wallet/service/MchDeptService.java | 27 ++++ .../wallet/service/MchDeptUserService.java | 8 -- .../wallet/service/MchManageService.java | 11 +- .../service/MchRuleJoinControllerService.java | 17 +++ .../service/WalletRuleMchConfigService.java | 17 --- .../service/WalletRulePriceConfigService.java | 10 +- .../wallet/service/WalletThirdZyService.java | 4 + .../service/impl/WalletActiveServiceImpl.java | 2 +- .../impl/WalletTransactionServiceImpl.java | 8 ++ .../service/impl/mch/MchDeptServiceImpl.java | 126 ++++++++++++++++++ .../impl/mch/MchDeptUserServiceImpl.java | 13 -- .../impl/{ => mch}/MchManageServiceImpl.java | 62 ++++++++- .../mch/MchRuleJoinControllerServiceImpl.java | 30 +++++ .../MchRulePriceConfigServiceImpl.java} | 30 ++--- .../WalletRechargeApplyServiceImpl.java | 16 ++- .../rule/WalletRuleMchConfigServiceImpl.java | 29 ---- .../impl/thrid/WalletThirdZyServiceImpl.java | 26 ++-- .../resources/mapper/mch/MchDeptMapper.xml | 66 +++++++++ .../mapper/mch/MchDeptUserMapper.xml | 18 --- .../mapper/{ => mch}/MchManageMapper.xml | 6 +- .../MchRuleJoinMapper.xml} | 4 +- .../MchRulePriceConfigMapper.xml} | 2 +- 61 files changed, 839 insertions(+), 490 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchSupType.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchDeptDto.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchDeptUserDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchRuleJoinDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/mch/MchRulePriceConfigDto.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleMchConfigDto.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRulePriceConfigDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchDeptEntity.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchDeptUserEntity.java rename pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/{ => mch}/MchManageEntity.java (95%) rename pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/{rule/WalletRuleMchConfigEntity.java => mch/MchRuleJoinDtoEntity.java} (87%) rename pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/{rule/WalletRulePriceConfigEntity.java => mch/MchRulePriceConfigEntity.java} (90%) delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchDeptUserVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchDeptVo.java rename pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/{rule/WalletRuleMchConfigVo.java => mch/MchRuleJoinDtoVo.java} (63%) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchRulePriceConfigVo.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRulePriceConfigVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptController.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptUserController.java rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/{ => mch}/MchManageController.java (91%) rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/{rule/WalletRuleMchConfigController.java => mch/MchRuleJoinController.java} (59%) rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/{rule/WalletRulePriceConfigController.java => mch/MchRulePriceConfigController.java} (79%) create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptService.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptUserService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchRuleJoinControllerService.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleMchConfigService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptServiceImpl.java delete mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptUserServiceImpl.java rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/{ => mch}/MchManageServiceImpl.java (83%) create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/{rule/WalletRulePriceConfigServiceImpl.java => mch/MchRulePriceConfigServiceImpl.java} (75%) delete mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleMchConfigServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptMapper.xml delete mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml rename pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/{ => mch}/MchManageMapper.xml (81%) rename pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/{rule/WalletRuleMchConfigMapper.xml => mch/MchRuleJoinMapper.xml} (95%) rename pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/{rule/WalletRulePriceConfigMapper.xml => mch/MchRulePriceConfigMapper.xml} (93%) diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index 58d141db1..6b7fed1b6 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -64,23 +64,22 @@ CREATE INDEX idx_dept_id ON mch_manage (dept_id); -- ---------------------------- -- Table structure for mch_dpet_user -- ---------------------------- -DROP TABLE IF EXISTS `mch_dept_user`; -CREATE TABLE mch_dept_user +DROP TABLE IF EXISTS `mch_dept`; +CREATE TABLE mch_dept ( - id bigint NOT NULL COMMENT '主键', - mch_id bigint NOT NULL COMMENT '商户id', - user_id bigint NOT NULL COMMENT '用户id', - user_dept_id bigint NOT NULL COMMENT '用户部门id', - 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', + id bigint NOT NULL COMMENT '主键', + mch_id bigint NOT NULL COMMENT '商户id', + dept_id bigint NOT NULL COMMENT '部门id', + 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 ='用户部门商户关系表'; + COLLATE = utf8mb4_general_ci COMMENT ='商户部门关系表'; -- ---------------------------- -- Table structure for wallet_manage @@ -113,10 +112,10 @@ CREATE TABLE wallet_manage CREATE INDEX idx_dept_id ON wallet_manage (user_id); -- ---------------------------- --- Table structure for wallet_rule_price_config +-- Table structure for mch_rule_price_config -- ---------------------------- -DROP TABLE IF EXISTS wallet_rule_price_config; -CREATE TABLE wallet_rule_price_config +DROP TABLE IF EXISTS mch_rule_price_config; +CREATE TABLE mch_rule_price_config ( id bigint NOT NULL COMMENT '主键', rule_price_type varchar(64) NOT NULL COMMENT '规则类型', @@ -135,8 +134,8 @@ CREATE TABLE wallet_rule_price_config -- ---------------------------- -- Table structure for wallet_rule_mch_config -- ---------------------------- -DROP TABLE IF EXISTS wallet_rule_mch_config; -CREATE TABLE wallet_rule_mch_config +DROP TABLE IF EXISTS mch_rule_join; +CREATE TABLE mch_rule_join ( id bigint NOT NULL COMMENT '主键', source_mch_id bigint NOT NULL COMMENT '源商户id', diff --git a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java index 5403a03a1..81fb03f69 100644 --- a/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java +++ b/pjcloud-common/pjcloud-common-core/src/main/java/com/bsd/pjcloud/common/core/constant/enums/MerchantTypeEnum.java @@ -7,8 +7,8 @@ import lombok.RequiredArgsConstructor; @Getter public enum MerchantTypeEnum { CANTEEN("1", "食堂"), - SUPERMARKET("2", "合作超市"), - SELF_SUPERMARKET("3", "自营超市"), + SUPERMARKET("2", "合作商家"), + SELF_SUPERMARKET("3", "自营商家"), ; /** diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java index 435eb4830..3ff254153 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java @@ -30,7 +30,6 @@ import com.bsd.pjcloud.hard.service.HardManagerService; import com.bsd.pjcloud.hard.mqtt.config.MqttConfig; import com.bsd.pjcloud.hard.utils.MqTopicUtil; import com.bsd.pjcloud.mqtt.api.feign.RemoteMqttEventService; -import com.bsd.pjcloud.wallet.api.entity.MchManageEntity; import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/DeptAllListDto.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/DeptAllListDto.java index f5ab38542..48bb0eb77 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/DeptAllListDto.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/dto/DeptAllListDto.java @@ -13,4 +13,6 @@ public class DeptAllListDto { private Boolean isInclude; + private String isSyncZy; + } diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserService.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserService.java index 135e5707a..64e51160e 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserService.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserService.java @@ -40,6 +40,7 @@ import java.util.Set; @FeignClient(contextId = "remoteUserService", value = ServiceNameConstants.UPMS_SERVICE) public interface RemoteUserService { + @NoToken @PostMapping("/user/inner-page") R> getRemoteUserPage(@RequestParam Long current, @RequestParam Long size, @RequestBody UserDTO userDTO); diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java index 63ab689c1..69692f12b 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserController.java @@ -211,15 +211,16 @@ public class SysUserController { /** * 分页查询用户 */ + @Inner @PostMapping("/inner-page") - public R> getRemoteUserPage(@RequestParam Long current, @RequestParam Long size, @RequestBody UserDTO userDTO) { + public R> innerPage(@RequestParam Long current, @RequestParam Long size, @RequestBody UserDTO userDTO) { if (ObjectUtil.isEmpty(userDTO.getIsFindCheckUser())) { userDTO.setIsFindCheckUser(true); } Page pageParams = new Page(); pageParams.setCurrent(current); pageParams.setSize(size); - return R.ok(userService.getUsersWithRolePage(pageParams, userDTO).getRecords()); + return R.ok(userService.innerPage(pageParams, userDTO).getRecords()); } /** diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java index f5d0b23eb..cfaa7d60e 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserService.java @@ -61,6 +61,8 @@ public interface SysUserService extends IService { */ IPage getUsersWithRolePage(Page page, UserDTO userDTO); + IPage innerPage(Page page, UserDTO userDTO); + /** * 删除用户 * @@ -214,6 +216,7 @@ public interface SysUserService extends IService { /** * 根据用户名或者手机号获取数据库权限的用户信息 + * * @param eq * @return */ 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 83383ee08..696b6b3eb 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 @@ -268,6 +268,37 @@ public class SysUserServiceImpl extends ServiceImpl impl return list; } + @Override + public IPage innerPage(Page page, UserDTO userDTO) { + IPage list = baseMapper.getUserVosPage(page, userDTO, null); + if (ObjectUtil.isNotEmpty(list.getRecords())) { + List userIds = list.getRecords().stream().map(UserVO::getUserId).distinct().toList(); + if (ObjectUtil.isNotEmpty(userIds)) { + SysUserFaceDto faceDto = new SysUserFaceDto(); + List faceList = sysUserFaceMapper.groupConcatFaces(faceDto); + DataUtil.convertFacesList(list.getRecords(), CollectionUtils.convertMap(faceList, SysUserFaceVo::getUserId)); + } + // 审批流程 + if (userDTO.getIsFindCheckUser()) { + List processInstanceIds = list.getRecords().stream().map(UserVO::getProcessId).filter(ObjectUtil::isNotEmpty).distinct().toList(); + if (ObjectUtil.isNotEmpty(processInstanceIds)) { + List taskList = flowUtil.queryProcessInstanceList(SecurityUtils.getUser().getId().toString(), processInstanceIds); + if (ObjectUtil.isNotEmpty(taskList)) { + Map taskMap = CollectionUtils.convertMap(taskList, TaskDto::getProcessInstanceId); + CollectionUtils.convertList(list.getRecords(), v -> { + TaskDto task = taskMap.get(v.getProcessId()); + if (ObjectUtil.isNotEmpty(task)) { + v.setIsCheckUser(true); + } + return v; + }); + } + } + } + } + return list; + } + /** * 通过ID查询用户信息 * diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml index 2b0f16b9b..26f0f5838 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysDeptMapper.xml @@ -24,6 +24,7 @@ + @@ -37,6 +38,7 @@ a.name, a.hard_group_id, a.sort_order, + a.is_sync_zy, a.create_by, a.update_by, a.create_time, @@ -50,6 +52,9 @@ AND a.dept_id = #{dto.deptId} + + AND a.is_sync_zy = #{dto.isSyncZy} + @@ -69,9 +74,11 @@ + + + + + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml deleted file mode 100644 index 0d82e8ccf..000000000 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchDeptUserMapper.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/MchManageMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml similarity index 81% rename from pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/MchManageMapper.xml rename to pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml index ca14f6af0..400887fe2 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/MchManageMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchManageMapper.xml @@ -2,7 +2,7 @@ - + @@ -14,6 +14,10 @@ + + + + diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleMchConfigMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml similarity index 95% rename from pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleMchConfigMapper.xml rename to pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml index b4cdc813b..eb8aaf4fc 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleMchConfigMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml @@ -2,7 +2,7 @@ - + @@ -42,7 +42,7 @@ - p.id as rulePirceConfigId, p.rule_price_type, diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRulePriceConfigMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml similarity index 93% rename from pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRulePriceConfigMapper.xml rename to pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml index 39e197642..cef2a381c 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRulePriceConfigMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml @@ -3,7 +3,7 @@ - + From ca1295434f81feea6aca40b8c571a5293f8f7355 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Sat, 29 Mar 2025 18:05:34 +0800 Subject: [PATCH 04/11] =?UTF-8?q?feat:=E5=95=86=E6=88=B7=E8=A7=84=E5=88=99?= =?UTF-8?q?=E7=BB=91=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/api/feign/RemoteDeptService.java | 4 + .../admin/controller/SysDeptController.java | 8 ++ .../pjcloud/admin/service/SysDeptService.java | 3 + .../service/impl/SysDeptServiceImpl.java | 10 +++ .../api/constant/mch/WalletMchSupType.java | 2 +- .../api/entity/mch/MchRuleJoinDtoEntity.java | 2 +- .../wallet/api/vo/mch/MchRuleJoinDtoVo.java | 10 +++ .../controller/mch/MchDeptController.java | 2 +- .../controller/mch/MchManageController.java | 10 +++ .../controller/mch/MchRuleJoinController.java | 20 +++-- .../mch/MchRulePriceConfigController.java | 14 +++- .../wallet/mapper/MchManageMapper.java | 3 +- .../rule/WalletRuleMchConfigMapper.java | 4 + .../rule/WalletRulePriceConfigMapper.java | 15 ++++ .../wallet/service/MchDeptService.java | 2 +- .../service/MchRuleJoinControllerService.java | 21 +++++ .../service/WalletRulePriceConfigService.java | 8 ++ .../service/impl/mch/MchDeptServiceImpl.java | 9 ++- .../impl/mch/MchManageServiceImpl.java | 37 ++++++--- .../mch/MchRuleJoinControllerServiceImpl.java | 79 +++++++++++++++++++ .../mch/MchRulePriceConfigServiceImpl.java | 12 ++- .../mapper/mch/MchRuleJoinMapper.xml | 30 ++++++- .../mapper/mch/MchRulePriceConfigMapper.xml | 2 + 23 files changed, 275 insertions(+), 32 deletions(-) diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java index b18412c04..722609be9 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java @@ -54,6 +54,10 @@ public interface RemoteDeptService { @PostMapping("/dept/inner-all-dept") R> getInnerAllDept(@RequestBody DeptAllListDto dto); + @NoToken + @PostMapping("/dept/inner-dept") + R> getInnerDept(@RequestBody DeptAllListDto dto); + /** * 通过部门ID获取负责人列表 * diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java index 6b844270a..065482f31 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java @@ -225,4 +225,12 @@ public class SysDeptController { public R> getInnerAllDept(@RequestBody DeptAllListDto dto) { return R.ok(sysDeptMapper.allList(dto)); } + + @Inner + @PostMapping("/inner-dept") + public R> getInnerDept(@RequestBody DeptAllListDto dto) { + return R.ok(sysDeptService.getInnerDept(dto)); + } + + } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysDeptService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysDeptService.java index c985ca6af..94ba43d45 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysDeptService.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysDeptService.java @@ -21,6 +21,7 @@ package com.bsd.pjcloud.admin.service; import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.admin.api.dto.DeptAllListDto; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.vo.DeptExcelVO; import com.bsd.pjcloud.admin.api.vo.OrgTreeVO; @@ -127,4 +128,6 @@ public interface SysDeptService extends IService { */ List selectByNames(List names); + + List getInnerDept(DeptAllListDto dto); } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java index 6d6b56a09..c961176ab 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysDeptServiceImpl.java @@ -31,6 +31,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.admin.api.constant.OrgTypeEnum; import com.bsd.pjcloud.admin.api.constant.PostCodeEnum; +import com.bsd.pjcloud.admin.api.dto.DeptAllListDto; import com.bsd.pjcloud.admin.api.entity.*; import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.admin.api.vo.DeptExcelVO; @@ -413,6 +414,15 @@ public class SysDeptServiceImpl extends ServiceImpl impl ); } + @Override + public List getInnerDept(DeptAllListDto dto) { + return baseMapper.selectList(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), SysDept::getDeptId, dto.getDeptId()) + .eq(ObjectUtil.isNotEmpty(dto.getIsSyncZy()), SysDept::getIsSyncZy, dto.getIsSyncZy()) + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), SysDept::getDeptId, dto.getDeptIds()) + ); + } + /** * 递归查询所有子节点。 * diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchSupType.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchSupType.java index aa0969d1c..93765c8cd 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchSupType.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchSupType.java @@ -15,7 +15,7 @@ import java.util.Arrays; public enum WalletMchSupType { BRAND("10", "品牌"), - MCH("20", "商家"), + MCH("20", "商户"), ; private final String code; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java index 2f5cf4c61..4533b42ff 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java @@ -39,7 +39,7 @@ public class MchRuleJoinDtoEntity extends Model { /** * 目标部门id */ - private Long tragetDeptId; + private Long targetDeptId; /** * 规则配置id diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchRuleJoinDtoVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchRuleJoinDtoVo.java index b20c4dbe4..79392e6e7 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchRuleJoinDtoVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/mch/MchRuleJoinDtoVo.java @@ -26,4 +26,14 @@ public class MchRuleJoinDtoVo extends MchRuleJoinDtoEntity { */ private Long multiple; + /** + * 源商户名 + */ + private String sourceMchName; + + /** + * 目标商户名 + */ + private String targetMchName; + } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptController.java index 4a24a46d5..9f9391e70 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchDeptController.java @@ -39,7 +39,7 @@ public class MchDeptController { @Operation(summary = "同步全部", description = "分页查询") @GetMapping("/sync-all") public R syncAll() { - mchDeptUserService.syncAll(); + mchDeptUserService.syncAll(List.of()); return R.ok(); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java index 771edbe9e..a9c7474c0 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchManageController.java @@ -101,6 +101,16 @@ public class MchManageController { return R.ok(mchManageService.pageJoin(page, dto)); } + @Operation(summary = "app查询合作商家的分店", description = "app查询合作商家的分店") + @GetMapping("/app/children-page-join") + @Inner(value = false) + public R> appParentPageJoin(@ParameterObject Page page, @ParameterObject MchManageDto dto) { + dto.setVisibleMobile(YesNoEnum.YES.getCode()); + dto.setTypes(MerchantTypeEnum.SUPERMARKET.getType()); + dto.setParentIsNull(false); + return R.ok(mchManageService.pageJoin(page, dto)); + } + @Operation(summary = "app查询店铺详情", description = "app查询店铺详情") @GetMapping("/app/detail") public R appPageJoin(@RequestParam Long id) { diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRuleJoinController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRuleJoinController.java index 651e678fd..012f26466 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRuleJoinController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRuleJoinController.java @@ -55,28 +55,36 @@ public class MchRuleJoinController { return R.ok(mchRuleJoinControllerService.getById(id)); } + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("join-detail/{id}") + @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") + public R joinDetail(@PathVariable("id") Long id) { + return R.ok(mchRuleJoinControllerService.joinDetail(id)); + } + @Operation(summary = "新增商户规格配置表", description = "新增商户规格配置表") @SysLog("新增商户规格配置表") @PostMapping @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_add')") - public R save(@RequestBody MchRuleJoinDtoEntity walletRuleMchConfig) { - return R.ok(mchRuleJoinControllerService.save(walletRuleMchConfig)); + public R save(@RequestBody MchRuleJoinDtoEntity dto) { + return R.ok(mchRuleJoinControllerService.create(dto)); } @Operation(summary = "修改商户规格配置表", description = "修改商户规格配置表") @SysLog("修改商户规格配置表") @PutMapping @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_edit')") - public R updateById(@RequestBody MchRuleJoinDtoEntity walletRuleMchConfig) { - return R.ok(mchRuleJoinControllerService.updateById(walletRuleMchConfig)); + public R updateById(@RequestBody MchRuleJoinDtoEntity dto) { + return R.ok(mchRuleJoinControllerService.edit(dto)); } @Operation(summary = "通过id删除商户规格配置表", description = "通过id删除商户规格配置表") @SysLog("通过id删除商户规格配置表") @DeleteMapping @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_del')") - public R removeById(@RequestBody Long ids) { - return R.ok(mchRuleJoinControllerService.removeBatchByIds(CollUtil.toList(ids))); + public R removeById(@RequestBody Long[] ids) { + mchRuleJoinControllerService.delByIds(CollUtil.toList(ids)); + return R.ok(); } @ResponseExcel diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRulePriceConfigController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRulePriceConfigController.java index 7cff04683..516b4f854 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRulePriceConfigController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/mch/MchRulePriceConfigController.java @@ -6,6 +6,7 @@ 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.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; import com.bsd.pjcloud.wallet.api.dto.mch.MchRulePriceConfigDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; @@ -24,8 +25,8 @@ import java.util.List; @RestController @RequiredArgsConstructor -@RequestMapping("/wallet-rule-price-config") -@Tag(description = "wallet-rule-price-config", name = "钱包规则管理") +@RequestMapping("/mch-rule-price-config") +@Tag(description = "mch-rule-price-config", name = "钱包规则管理") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class MchRulePriceConfigController { @@ -39,9 +40,18 @@ public class MchRulePriceConfigController { return R.ok(walletRulePriceConfigService.page(page, wrapper)); } + @Operation(summary = "分页下拉查询", description = "分页下拉查询") + @GetMapping("/page-select") + public R pageSelect(@ParameterObject Page page, @ParameterObject MchRulePriceConfigDto dto) { + DataScope dataScope = null; + return R.ok(walletRulePriceConfigService.scopePageList(page, dto, dataScope)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletRulePriceConfig_view')") + public R getById(@PathVariable("id") Long id) { return R.ok(walletRulePriceConfigService.getById(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 71a537b40..14d6c4da2 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 @@ -24,6 +24,7 @@ public interface MchManageMapper extends PjcloudBaseMapper { MPJLambdaQueryWrapper wrapper = new MPJLambdaQueryWrapper() .selectAll(MchManageEntity.class) .eqIfExists(MchManageEntity::getVisibleMobile, dto.getVisibleMobile()) + .eqIfExists(MchManageEntity::getParentId, dto.getParentId()) .likeIfExists(MchManageEntity::getName, dto.getName()) .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()) .apply(ObjectUtil.isNotEmpty(dto.getType()), "FIND_IN_SET({0}, types)", dto.getType()) @@ -65,9 +66,9 @@ public interface MchManageMapper extends PjcloudBaseMapper { .eq(ObjectUtil.isNotEmpty(dto.getDeptId()), MchManageEntity::getDeptId, dto.getDeptId()) .eq(ObjectUtil.isNotEmpty(dto.getSupType()), MchManageEntity::getSupType, dto.getSupType()) .eq(ObjectUtil.isNotEmpty(dto.getParentId()), MchManageEntity::getParentId, dto.getParentId()) + .eq(dto.getParentIsNull(), MchManageEntity::getParentId, -1L) .like(ObjectUtil.isNotEmpty(dto.getName()), MchManageEntity::getName, dto.getName()) .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()) - .isNull(dto.getParentIsNull(), MchManageEntity::getParentId) .in(ObjectUtil.isNotEmpty(dto.getIds()), MchManageEntity::getId, dto.getIds()) .orderByDesc(MchManageEntity::getSort) .orderByDesc(MchManageEntity::getDeptId) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java index 911e58a0a..f35ecfd6f 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java @@ -4,8 +4,11 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.wallet.api.dto.mch.MchRuleJoinDto; +import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; import com.bsd.pjcloud.wallet.api.entity.mch.MchRuleJoinDtoEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo; +import com.github.yulichang.query.MPJLambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -14,4 +17,5 @@ public interface WalletRuleMchConfigMapper extends PjcloudBaseMapper pageScopeList(Page page, @Param("dto") MchRuleJoinDto dto, DataScope dataScope); + MchRuleJoinDtoVo joinDetail(@Param("id") Long id); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java index 79a0514dd..69044f20f 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java @@ -1,11 +1,26 @@ package com.bsd.pjcloud.wallet.mapper.rule; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.mch.MchRulePriceConfigDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; +import com.bsd.pjcloud.wallet.api.vo.mch.MchRulePriceConfigVo; +import com.github.yulichang.query.MPJLambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface WalletRulePriceConfigMapper extends PjcloudBaseMapper { + default Page scopePageList(Page page, MchRulePriceConfigDto dto, DataScope dataScope) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getId()), MchRulePriceConfigEntity::getId, dto.getId()) + .eq(ObjectUtil.isNotEmpty(dto.getRulePriceType()), MchRulePriceConfigEntity::getRulePriceType, dto.getRulePriceType()) + .orderByDesc(MchRulePriceConfigEntity::getCreateTime) + .orderByDesc(MchRulePriceConfigEntity::getRulePriceType); + return selectPageByScope(page, wrapper, dataScope); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptService.java index 540db8cbc..5174e191a 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchDeptService.java @@ -13,7 +13,7 @@ public interface MchDeptService extends IService { /** * 同步全部 */ - void syncAll(); + void syncAll(List deptIds); /** * 分页复杂查询 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchRuleJoinControllerService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchRuleJoinControllerService.java index 700d73d14..de57848ad 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchRuleJoinControllerService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchRuleJoinControllerService.java @@ -7,6 +7,8 @@ import com.bsd.pjcloud.wallet.api.dto.mch.MchRuleJoinDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRuleJoinDtoEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo; +import java.util.ArrayList; + public interface MchRuleJoinControllerService extends IService { /** @@ -14,4 +16,23 @@ public interface MchRuleJoinControllerService extends IService pageScopeList(Page page, MchRuleJoinDto dto, DataScope dataScope); + /** + * 新增 + */ + Long create(MchRuleJoinDtoEntity dto); + + /** + * 修改 + */ + Long edit(MchRuleJoinDtoEntity dto); + + /** + * 删除 + */ + void delByIds(ArrayList list); + + /** + * 复杂详情 + */ + MchRuleJoinDtoVo joinDetail(Long id); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRulePriceConfigService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRulePriceConfigService.java index 1239c400b..277f00816 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRulePriceConfigService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRulePriceConfigService.java @@ -1,8 +1,11 @@ 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.common.data.datascope.DataScope; import com.bsd.pjcloud.wallet.api.dto.mch.MchRulePriceConfigDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; +import com.bsd.pjcloud.wallet.api.vo.mch.MchRulePriceConfigVo; import java.util.ArrayList; @@ -21,4 +24,9 @@ public interface WalletRulePriceConfigService extends IService list); + + /** + * 权限分页查询 + */ + Page scopePageList(Page page, MchRulePriceConfigDto dto, DataScope dataScope); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptServiceImpl.java index bff39d057..559acd902 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchDeptServiceImpl.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.ObjectUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.admin.api.dto.DeptAllListDto; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; import com.bsd.pjcloud.admin.api.utils.DataUtil; @@ -43,9 +44,11 @@ public class MchDeptServiceImpl extends ServiceImpl dpetList = remoteDeptService.getAllDept(null).getData(); + public void syncAll(List deptIds) { + DataScope dataScope = null; + DeptAllListDto deptDto = new DeptAllListDto(); + if (ObjectUtil.isNotEmpty(deptIds)) deptDto.setDeptIds(deptIds); + List dpetList = remoteDeptService.getInnerDept(deptDto).getData(); if (ObjectUtil.isEmpty(dpetList)) return; // 插入部门 List saveUserList = new ArrayList<>(); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java index 74d0c263a..f4ef141f1 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchManageServiceImpl.java @@ -21,6 +21,7 @@ import com.bsd.pjcloud.common.core.util.QRCodeImageGenerator; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.hard.api.utils.Drawing2D; +import com.bsd.pjcloud.wallet.api.constant.mch.WalletMchSupType; import com.bsd.pjcloud.wallet.api.dto.MchManageDto; import com.bsd.pjcloud.wallet.api.dto.WalletTypeDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; @@ -85,6 +86,7 @@ public class MchManageServiceImpl extends ServiceImpl 0) { - throw new RuntimeException("该" + MerchantTypeEnum.SUPERMARKET.getName() + "下面有子店铺,不能修改类型"); + if (!ObjectUtil.equals(mchManage.getTypes(), dto.getTypes())) { + throw new RuntimeException("该" + MerchantTypeEnum.SUPERMARKET.getName() + "下面有子店铺,不能修改类型"); + } + } + } + // 如果有parentId就不能换types + if (ObjectUtil.notEqual(mchManage.getParentId(), -1L)) { + if (!ObjectUtil.equals(mchManage.getTypes(), dto.getTypes())) { + throw new RuntimeException("该" + MerchantTypeEnum.SUPERMARKET.getName() + "下的" + WalletMchSupType.MCH.getDesc() + ",不能修改类型"); } } baseMapper.updateById(dto); - updateMchCount(dto); + updateMchCount(orgParentId); // walletThirdZyService.syncAllMch(dto.getId(), Boolean.FALSE); } @@ -172,7 +187,7 @@ public class MchManageServiceImpl extends ServiceImpl list = list(childrenDto); - if (ObjectUtil.isEmpty(list)) break; + if (ObjectUtil.isEmpty(list)) continue; v.setChildren(list); } return pageList; @@ -289,14 +304,14 @@ public class MchManageServiceImpl extends ServiceImpl() - .eq(MchManageEntity::getParentId, dto.getParentId()) + .eq(MchManageEntity::getParentId, orgParentId) ); if (ObjectUtil.isNotEmpty(count)) { MchManageEntity updateEntity = new MchManageEntity(); - updateEntity.setId(dto.getParentId()); + updateEntity.setId(orgParentId); updateEntity.setMchCount(count); updateById(updateEntity); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java index f9b324fce..e9ada9649 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java @@ -1,18 +1,24 @@ package com.bsd.pjcloud.wallet.service.impl.mch; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.wallet.api.dto.mch.MchRuleJoinDto; +import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; import com.bsd.pjcloud.wallet.api.entity.mch.MchRuleJoinDtoEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo; import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleMchConfigMapper; +import com.bsd.pjcloud.wallet.service.MchManageService; import com.bsd.pjcloud.wallet.service.MchRuleJoinControllerService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; +import java.util.ArrayList; + @Validated @Slf4j @@ -20,6 +26,53 @@ import org.springframework.validation.annotation.Validated; @Service public class MchRuleJoinControllerServiceImpl extends ServiceImpl implements MchRuleJoinControllerService { + private final MchManageService mchManageService; + + @Override + public Long create(MchRuleJoinDtoEntity dto) { + if (existMchRuleJoin(dto)) { + throw new RuntimeException("绑定的规则类型不能重复"); + } + if (areMchIdsDistinct(dto)) { + throw new RuntimeException("源商户与目标商户不能重复"); + } + MchManageEntity targetMch = mchManageService.getById(dto.getTargetMchId()); + if (ObjectUtil.isEmpty(targetMch)) { + throw new RuntimeException("目标商户不存在"); + } + dto.setTargetDeptId(targetMch.getDeptId()); + baseMapper.insert(dto); + return dto.getId(); + } + + @Override + public Long edit(MchRuleJoinDtoEntity dto) { + if (existMchRuleJoin(dto)) { + throw new RuntimeException("绑定的规则类型不能重复"); + } + if (areMchIdsDistinct(dto)) { + throw new RuntimeException("源商户与目标商户不能重复"); + } + MchManageEntity targetMch = mchManageService.getById(dto.getTargetMchId()); + if (ObjectUtil.isEmpty(targetMch)) { + throw new RuntimeException("目标商户不存在"); + } + dto.setTargetDeptId(targetMch.getDeptId()); + baseMapper.updateById(dto); + return dto.getId(); + } + + @Override + public void delByIds(ArrayList list) { + if (ObjectUtil.isEmpty(list)) return; + baseMapper.deleteByIds(list); + } + + @Override + public MchRuleJoinDtoVo joinDetail(Long id) { + return baseMapper.joinDetail(id); + } + /** * 权限分页查询 */ @@ -27,4 +80,30 @@ public class MchRuleJoinControllerServiceImpl extends ServiceImpl pageScopeList(Page page, MchRuleJoinDto dto, DataScope dataScope) { return baseMapper.pageScopeList(page, dto, dataScope); } + + /** + * 是否重复 + */ + private boolean existMchRuleJoin(MchRuleJoinDtoEntity dto) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getSourceMchId()), MchRuleJoinDtoEntity::getSourceMchId, dto.getSourceMchId()) + .eq(ObjectUtil.isNotEmpty(dto.getTargetMchId()), MchRuleJoinDtoEntity::getTargetMchId, dto.getTargetMchId()) + .eq(ObjectUtil.isNotEmpty(dto.getRulePriceConfigId()), MchRuleJoinDtoEntity::getRulePriceConfigId, dto.getRulePriceConfigId()) + .ne(ObjectUtil.isNotEmpty(dto.getId()), MchRuleJoinDtoEntity::getId, dto.getId()) + ); + if (ObjectUtil.isNotEmpty(dto.getId())) { + return count >= 1; + } + return count > 0; + } + + /** + * sourceMchId和targetMchId是否重复 + */ + private boolean areMchIdsDistinct(MchRuleJoinDtoEntity dto) { + if (!ObjectUtil.isAllNotEmpty(dto.getSourceMchId(), dto.getTargetMchId())) { + return false; + } + return ObjectUtil.equals(dto.getSourceMchId(), dto.getTargetMchId()); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java index e4b6e220e..8e8a12e83 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java @@ -3,10 +3,13 @@ package com.bsd.pjcloud.wallet.service.impl.mch; import cn.hutool.core.util.ObjectUtil; import cn.hutool.extra.spring.SpringUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +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.data.datascope.DataScope; import com.bsd.pjcloud.wallet.api.dto.mch.MchRulePriceConfigDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; +import com.bsd.pjcloud.wallet.api.vo.mch.MchRulePriceConfigVo; import com.bsd.pjcloud.wallet.mapper.rule.WalletRulePriceConfigMapper; import com.bsd.pjcloud.wallet.service.WalletRulePriceConfigService; import lombok.RequiredArgsConstructor; @@ -71,11 +74,18 @@ public class MchRulePriceConfigServiceImpl extends ServiceImpl { redisTemplate.opsForValue().getAndDelete(CacheConstants.WALLET_RULE_PRICE_CONFIG_DETAIL + v); - // walletThirdZyService.syncAllMch(v, Boolean.TRUE); }); baseMapper.deleteByIds(list); } + /** + * 权限分页查询 + */ + @Override + public Page scopePageList(Page page, MchRulePriceConfigDto dto, DataScope dataScope) { + return baseMapper.scopePageList(page, dto, dataScope); + } + private boolean existRulePriceType(String rulePriceConfigType, Long id) { Long count = baseMapper.selectCount(new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(rulePriceConfigType), MchRulePriceConfigEntity::getRulePriceType, rulePriceConfigType) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml index eb8aaf4fc..cfc6b0b22 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml @@ -6,7 +6,7 @@ - + @@ -47,12 +47,34 @@ p.id as rulePirceConfigId, p.rule_price_type, p.base_price, - p.multiple - from wallet_rule_mch_config a - left join wallet_rule_price_config p on a.rule_price_config_id = p.id + p.multiple, + source.name as sourceMchName, + target.name as targetMchName + from mch_rule_join a + left join mch_rule_price_config p on a.rule_price_config_id = p.id + left join mch_manage source on source.id = a.source_mch_id + left join mch_manage target on target.id = a.target_mch_id order by a.create_time desc , a.id desc + + + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml index cef2a381c..6bcca3487 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml @@ -15,4 +15,6 @@ + + \ No newline at end of file From c70a87ed89033cea8b22ef0854a90bf8df1e2eb5 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Sat, 29 Mar 2025 18:30:32 +0800 Subject: [PATCH 05/11] =?UTF-8?q?feat:=E9=92=B1=E5=8C=85=E8=A7=84=E5=88=99?= =?UTF-8?q?=E6=98=AF=E5=90=A6=E5=90=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 37 ++++++++++--------- .../api/entity/mch/MchRuleJoinDtoEntity.java | 6 +++ .../wallet/mapper/MchManageMapper.java | 1 + .../mapper/mch/MchRuleJoinMapper.xml | 3 +- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index 6b7fed1b6..aeb003c47 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -67,15 +67,15 @@ CREATE INDEX idx_dept_id ON mch_manage (dept_id); DROP TABLE IF EXISTS `mch_dept`; CREATE TABLE mch_dept ( - id bigint NOT NULL COMMENT '主键', - mch_id bigint NOT NULL COMMENT '商户id', - dept_id bigint NOT NULL COMMENT '部门id', - 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', + id BIGINT(19) not null comment '主键', + mch_id BIGINT(19) not null comment '商户id', + dept_id BIGINT(19) not null comment '部门id', + create_by VARCHAR(64) null comment '创建人', + create_time DATETIME null comment '创建时间', + update_by VARCHAR(64) null comment '修改人', + update_time DATETIME null comment '修改时间', + del_flag CHAR default '0' null comment '删除标记', + tenant_id BIGINT(19) null comment '租户ID', PRIMARY KEY (id) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 @@ -117,10 +117,10 @@ CREATE INDEX idx_dept_id ON wallet_manage (user_id); DROP TABLE IF EXISTS mch_rule_price_config; CREATE TABLE mch_rule_price_config ( - id bigint NOT NULL COMMENT '主键', - rule_price_type varchar(64) NOT NULL COMMENT '规则类型', - base_price bigint NOT NULL COMMENT '基础金额', - multiple bigint NOT NULL COMMENT '额外支付的倍数', + id BIGINT(19) not null comment '主键', + rule_price_type VARCHAR(64) not null comment '规则类型', + base_price BIGINT(19) not null comment '基础金额', + multiple BIGINT(19) 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 '修改人', @@ -137,11 +137,12 @@ CREATE TABLE mch_rule_price_config DROP TABLE IF EXISTS mch_rule_join; CREATE TABLE mch_rule_join ( - id bigint NOT NULL COMMENT '主键', - source_mch_id bigint NOT NULL COMMENT '源商户id', - target_mch_id bigint NOT NULL COMMENT '目标商户id', - target_dept_id bigint NOT NULL COMMENT '目标部门id', - rule_price_config_id bigint NOT NULL COMMENT '规则配置id', + id BIGINT(19) not null comment '主键', + source_mch_id BIGINT(19) not null comment '源商户id', + target_mch_id BIGINT(19) not null comment '目标商户id', + target_dept_id BIGINT(19) not null comment '目标部门id', + rule_price_config_id BIGINT(19) not null comment '规则配置id', + status VARCHAR(64) default '0' 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 '修改人', diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java index 4533b42ff..5104caaa2 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRuleJoinDtoEntity.java @@ -47,6 +47,12 @@ public class MchRuleJoinDtoEntity extends Model { @Schema(description = "规则配置id") private Long rulePriceConfigId; + /** + * 是否启用 + */ + @Schema(description = "是否启用") + private String status; + /** * 创建人 */ 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 14d6c4da2..69ed9ab43 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 @@ -25,6 +25,7 @@ public interface MchManageMapper extends PjcloudBaseMapper { .selectAll(MchManageEntity.class) .eqIfExists(MchManageEntity::getVisibleMobile, dto.getVisibleMobile()) .eqIfExists(MchManageEntity::getParentId, dto.getParentId()) + .eq(dto.getParentIsNull(), MchManageEntity::getParentId, -1L) .likeIfExists(MchManageEntity::getName, dto.getName()) .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()) .apply(ObjectUtil.isNotEmpty(dto.getType()), "FIND_IN_SET({0}, types)", dto.getType()) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml index cfc6b0b22..fcb5df564 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml @@ -8,6 +8,7 @@ + @@ -21,6 +22,7 @@ a.source_mch_id, a.target_mch_id, a.rule_price_config_id, + a.status, a.create_by, a.create_time, a.update_by, @@ -76,5 +78,4 @@ a.id = #{id} - \ No newline at end of file From bb80b19925de52e313826548fd78950e2e887418 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Sat, 29 Mar 2025 20:06:25 +0800 Subject: [PATCH 06/11] 111 --- .../wallet/api/entity/mch/MchManageEntity.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java index fc28aef9d..d522105d8 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchManageEntity.java @@ -111,12 +111,6 @@ public class MchManageEntity extends Model { @Schema(description = "是否同步到正元") private String isSyncZy; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description = "创建人") - private String createBy; /** * 排序 */ @@ -129,7 +123,6 @@ public class MchManageEntity extends Model { @Schema(description = "超市类型") private String supType; - /** * 优惠价格(没实际作用) */ @@ -148,6 +141,13 @@ public class MchManageEntity extends Model { @Schema(description = "分店数量") private Long mchCount; + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") + private String createBy; + /** * 创建时间 */ From 00e53e3f4d71f74f48ea7fa45cc78ea8d0b06394 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Sun, 30 Mar 2025 18:24:14 +0800 Subject: [PATCH 07/11] =?UTF-8?q?feat:=E9=92=B1=E5=8C=85=E8=A7=84=E5=88=99?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 47 ++++++++++ .../WalletMchRulePriceTypeEnum.java} | 6 +- .../api/dto/rule/WalletRuleJoinDto.java | 14 +++ .../entity/mch/MchRulePriceConfigEntity.java | 1 + .../api/entity/rule/WalletRuleJoinEntity.java | 94 +++++++++++++++++++ .../wallet/api/vo/rule/WalletRuleJoinVo.java | 15 +++ .../rule/WalletRuleJoinController.java | 82 ++++++++++++++++ .../WalletRuleMchConfigMapper.java | 5 +- .../WalletRulePriceConfigMapper.java | 3 +- .../mapper/rule/WalletRuleJoinMapper.java | 11 +++ .../wallet/service/WalletRuleJoinService.java | 8 ++ .../mch/MchRuleJoinControllerServiceImpl.java | 15 ++- .../mch/MchRulePriceConfigServiceImpl.java | 2 +- .../impl/rule/WalletRuleJoinServiceImpl.java | 13 +++ .../mapper/mch/MchRuleJoinMapper.xml | 2 +- .../mapper/mch/MchRulePriceConfigMapper.xml | 2 +- .../mapper/rule/WalletRuleJoinMapper.xml | 19 ++++ 17 files changed, 323 insertions(+), 16 deletions(-) rename pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/{WalletRulePriceTypeEnum.java => mch/WalletMchRulePriceTypeEnum.java} (75%) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/{rule => mch}/WalletRuleMchConfigMapper.java (76%) rename pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/{rule => mch}/WalletRulePriceConfigMapper.java (92%) create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index aeb003c47..bb6bf0f6d 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -173,6 +173,53 @@ CREATE TABLE wallet_type ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COMMENT ='钱包类型'; +-- ---------------------------- +-- Table structure for wallet_rule_join +-- ---------------------------- +DROP TABLE IF EXISTS wallet_rule_join; +CREATE TABLE wallet_rule_join +( + id BIGINT(19) not null comment '主键', + source_wallet_type_id BIGINT(19) not null comment '源钱包类型id', + target_wallet_type_id BIGINT(19) not null comment '目标钱包类型id', + balance_multiple int DEFAULT 0 NOT NULL COMMENT '钱包转换百分比', + status VARCHAR(64) default '0' 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 + COLLATE = utf8mb4_general_ci COMMENT = '钱包规则配置'; + +-- ---------------------------- +-- Table structure for wallet_rule_transaction +-- ---------------------------- +DROP TABLE IF EXISTS wallet_rule_transaction; +CREATE TABLE wallet_rule_transaction +( + id BIGINT(19) not null comment '主键', + source_wallet_id BIGINT(19) not null comment '源钱包id', + target_wallet_id BIGINT(19) not null comment '目标钱包id', + source_wallet_balance int not null comment '源钱包余额', + target_wallet_balance int not null comment '目标钱包余额', + balance int DEFAULT 0 NOT NULL COMMENT '转换金额', + after_balance int DEFAULT 0 NOT NULL COMMENT '转换后的金额', + balance_multiple int DEFAULT 0 NOT NULL COMMENT '钱包转换百分比', + status VARCHAR(64) default '0' 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 + COLLATE = utf8mb4_general_ci COMMENT = '钱包转账记录'; -- ---------------------------- -- Table structure for wallet_active diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRulePriceTypeEnum.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchRulePriceTypeEnum.java similarity index 75% rename from pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRulePriceTypeEnum.java rename to pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchRulePriceTypeEnum.java index 62551ae1f..6547b04ff 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletRulePriceTypeEnum.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/mch/WalletMchRulePriceTypeEnum.java @@ -1,4 +1,4 @@ -package com.bsd.pjcloud.wallet.api.constant; +package com.bsd.pjcloud.wallet.api.constant.mch; import cn.hutool.core.util.ObjectUtil; import lombok.AllArgsConstructor; @@ -11,7 +11,7 @@ import java.util.Arrays; */ @Getter @AllArgsConstructor -public enum WalletRulePriceTypeEnum { +public enum WalletMchRulePriceTypeEnum { STRIDE_LIMIT("10", "跨单位额外支付"), EVERY_LIMIT("20", "每餐额外支付"), ; @@ -19,7 +19,7 @@ public enum WalletRulePriceTypeEnum { private final String code; private final String desc; - public static WalletRulePriceTypeEnum valueOfByCode(String code) { + public static WalletMchRulePriceTypeEnum valueOfByCode(String code) { if (ObjectUtil.isEmpty(code)) return null; return Arrays.stream(values()).filter(v -> ObjectUtil.equals(code, v.getCode())).findFirst().get(); } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java new file mode 100644 index 000000000..cf20316f0 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java @@ -0,0 +1,14 @@ +package com.bsd.pjcloud.wallet.api.dto.rule; + +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class WalletRuleJoinDto extends WalletRuleJoinEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRulePriceConfigEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRulePriceConfigEntity.java index 1149d0f8e..0da29e5d4 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRulePriceConfigEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/mch/MchRulePriceConfigEntity.java @@ -25,6 +25,7 @@ public class MchRulePriceConfigEntity extends Model { /** * 规则类型 + * @see */ @Schema(description = "规则类型") private String rulePriceType; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java new file mode 100644 index 000000000..05af772cf --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java @@ -0,0 +1,94 @@ +package com.bsd.pjcloud.wallet.api.entity.rule; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; +import java.time.LocalDateTime; + +/** + * 钱包规则配置 + */ +@Data +@TenantTable +@TableName("wallet_rule_join") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "钱包规则配置") +public class WalletRuleJoinEntity extends Model { + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="主键") + private Long id; + + /** + * 源钱包类型id + */ + @Schema(description="源钱包类型id") + private Long sourceWalletTypeId; + + /** + * 目标钱包类型id + */ + @Schema(description="目标钱包类型id") + private Long targetWalletTypeId; + + /** + * 钱包转换百分比 + */ + @Schema(description="钱包转换百分比") + private Integer balanceMultiple; + + /** + * 是否启用 + */ + @Schema(description="是否启用") + private String status; + + /** + * 创建人 + */ + @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/rule/WalletRuleJoinVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinVo.java new file mode 100644 index 000000000..fd709165d --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinVo.java @@ -0,0 +1,15 @@ +package com.bsd.pjcloud.wallet.api.vo.rule; + +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + + +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class WalletRuleJoinVo extends WalletRuleJoinEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java new file mode 100644 index 000000000..c45463c86 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.wallet.controller.rule; + +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.rule.WalletRuleJoinEntity; +import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 钱包规则配置 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/wallet-rule-join") +@Tag(description = "wallet-rule-join", name = "钱包规则配置管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class WalletRuleJoinController { + + private final WalletRuleJoinService walletRuleJoinService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") + public R getWalletRuleJoinPage(@ParameterObject Page page, @ParameterObject WalletRuleJoinEntity walletRuleJoin) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(walletRuleJoinService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(walletRuleJoinService.getById(id)); + } + + @Operation(summary = "新增钱包规则配置", description = "新增钱包规则配置") + @SysLog("新增钱包规则配置") + @PostMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_add')") + public R save(@RequestBody WalletRuleJoinEntity walletRuleJoin) { + return R.ok(walletRuleJoinService.save(walletRuleJoin)); + } + + @Operation(summary = "修改钱包规则配置", description = "修改钱包规则配置") + @SysLog("修改钱包规则配置") + @PutMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_edit')") + public R updateById(@RequestBody WalletRuleJoinEntity walletRuleJoin) { + return R.ok(walletRuleJoinService.updateById(walletRuleJoin)); + } + + @Operation(summary = "通过id删除钱包规则配置", description = "通过id删除钱包规则配置") + @SysLog("通过id删除钱包规则配置") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(walletRuleJoinService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_export')") + public List export(WalletRuleJoinEntity walletRuleJoin, Long[] ids) { + return walletRuleJoinService.list(Wrappers.lambdaQuery(walletRuleJoin).in(ArrayUtil.isNotEmpty(ids), WalletRuleJoinEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/WalletRuleMchConfigMapper.java similarity index 76% rename from pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java rename to pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/WalletRuleMchConfigMapper.java index f35ecfd6f..8e7b144ed 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleMchConfigMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/WalletRuleMchConfigMapper.java @@ -1,14 +1,11 @@ -package com.bsd.pjcloud.wallet.mapper.rule; +package com.bsd.pjcloud.wallet.mapper.mch; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.wallet.api.dto.mch.MchRuleJoinDto; -import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; import com.bsd.pjcloud.wallet.api.entity.mch.MchRuleJoinDtoEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo; -import com.github.yulichang.query.MPJLambdaQueryWrapper; -import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/WalletRulePriceConfigMapper.java similarity index 92% rename from pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java rename to pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/WalletRulePriceConfigMapper.java index 69044f20f..869c51b9f 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRulePriceConfigMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/mch/WalletRulePriceConfigMapper.java @@ -1,4 +1,4 @@ -package com.bsd.pjcloud.wallet.mapper.rule; +package com.bsd.pjcloud.wallet.mapper.mch; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -8,7 +8,6 @@ import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; import com.bsd.pjcloud.wallet.api.dto.mch.MchRulePriceConfigDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRulePriceConfigVo; -import com.github.yulichang.query.MPJLambdaQueryWrapper; import org.apache.ibatis.annotations.Mapper; @Mapper diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java new file mode 100644 index 000000000..acbfbd060 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper.rule; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletRuleJoinMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java new file mode 100644 index 000000000..4f9673f55 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.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.rule.WalletRuleJoinEntity; + +public interface WalletRuleJoinService extends IService { + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java index e9ada9649..1ecd6ae92 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRuleJoinControllerServiceImpl.java @@ -5,13 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.wallet.api.constant.mch.WalletMchRulePriceTypeEnum; import com.bsd.pjcloud.wallet.api.dto.mch.MchRuleJoinDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchManageEntity; import com.bsd.pjcloud.wallet.api.entity.mch.MchRuleJoinDtoEntity; +import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo; -import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleMchConfigMapper; +import com.bsd.pjcloud.wallet.mapper.mch.WalletRuleMchConfigMapper; import com.bsd.pjcloud.wallet.service.MchManageService; import com.bsd.pjcloud.wallet.service.MchRuleJoinControllerService; +import com.bsd.pjcloud.wallet.service.WalletRulePriceConfigService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -27,14 +30,19 @@ import java.util.ArrayList; public class MchRuleJoinControllerServiceImpl extends ServiceImpl implements MchRuleJoinControllerService { private final MchManageService mchManageService; + private final WalletRulePriceConfigService rulePriceConfigService; @Override public Long create(MchRuleJoinDtoEntity dto) { if (existMchRuleJoin(dto)) { throw new RuntimeException("绑定的规则类型不能重复"); } - if (areMchIdsDistinct(dto)) { - throw new RuntimeException("源商户与目标商户不能重复"); + // 查询配置规则 + MchRulePriceConfigEntity rulePriceConfig = rulePriceConfigService.getById(dto.getRulePriceConfigId()); + if (ObjectUtil.notEqual(rulePriceConfig.getRulePriceType(), WalletMchRulePriceTypeEnum.EVERY_LIMIT.getCode())) { + if (areMchIdsDistinct(dto)) { + throw new RuntimeException("源商户与目标商户不能重复"); + } } MchManageEntity targetMch = mchManageService.getById(dto.getTargetMchId()); if (ObjectUtil.isEmpty(targetMch)) { @@ -87,7 +95,6 @@ public class MchRuleJoinControllerServiceImpl extends ServiceImpl() .eq(ObjectUtil.isNotEmpty(dto.getSourceMchId()), MchRuleJoinDtoEntity::getSourceMchId, dto.getSourceMchId()) - .eq(ObjectUtil.isNotEmpty(dto.getTargetMchId()), MchRuleJoinDtoEntity::getTargetMchId, dto.getTargetMchId()) .eq(ObjectUtil.isNotEmpty(dto.getRulePriceConfigId()), MchRuleJoinDtoEntity::getRulePriceConfigId, dto.getRulePriceConfigId()) .ne(ObjectUtil.isNotEmpty(dto.getId()), MchRuleJoinDtoEntity::getId, dto.getId()) ); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java index 8e8a12e83..7dcf9372f 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/mch/MchRulePriceConfigServiceImpl.java @@ -10,7 +10,7 @@ import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.wallet.api.dto.mch.MchRulePriceConfigDto; import com.bsd.pjcloud.wallet.api.entity.mch.MchRulePriceConfigEntity; import com.bsd.pjcloud.wallet.api.vo.mch.MchRulePriceConfigVo; -import com.bsd.pjcloud.wallet.mapper.rule.WalletRulePriceConfigMapper; +import com.bsd.pjcloud.wallet.mapper.mch.WalletRulePriceConfigMapper; import com.bsd.pjcloud.wallet.service.WalletRulePriceConfigService; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java new file mode 100644 index 000000000..82a77bac0 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java @@ -0,0 +1,13 @@ +package com.bsd.pjcloud.wallet.service.impl.rule; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleJoinMapper; +import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; +import org.springframework.stereotype.Service; +/** + * 钱包规则配置 + */ +@Service +public class WalletRuleJoinServiceImpl extends ServiceImpl implements WalletRuleJoinService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml index fcb5df564..015011d50 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRuleJoinMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml index 6bcca3487..1a896a330 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/mch/MchRulePriceConfigMapper.xml @@ -1,7 +1,7 @@ - + diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml new file mode 100644 index 000000000..43eb3f1ca --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c5c400c807410cb6734efa65acc4a4e8ade3c312 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Sun, 30 Mar 2025 20:09:49 +0800 Subject: [PATCH 08/11] =?UTF-8?q?feat:=E8=BD=AC=E8=B4=A6=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 2 +- .../api/dto/rule/WalletRuleJoinDto.java | 6 +- .../dto/rule/WalletRuleTransactionDto.java | 6 + .../rule/WalletRuleTransactionEntity.java | 118 ++++++++++++++++++ .../wallet/api/vo/rule/WalletRuleJoinVo.java | 18 +++ .../api/vo/rule/WalletRuleTransactionVo.java | 6 + .../rule/WalletRuleJoinController.java | 39 ++++-- .../rule/WalletRuleTransactionController.java | 82 ++++++++++++ .../mapper/rule/WalletRuleJoinMapper.java | 7 ++ .../rule/WalletRuleTransactionMapper.java | 11 ++ .../wallet/service/WalletRuleJoinService.java | 32 +++++ .../service/WalletRuleTransactionService.java | 8 ++ .../impl/rule/WalletRuleJoinServiceImpl.java | 107 ++++++++++++++++ .../WalletRuleTransactionServiceImpl.java | 20 +++ .../mapper/rule/WalletRuleJoinMapper.xml | 61 ++++++++- .../rule/WalletRuleTransactionMapper.xml | 22 ++++ 16 files changed, 527 insertions(+), 18 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java create mode 100644 pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index bb6bf0f6d..ef2fa0e2f 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -209,7 +209,7 @@ CREATE TABLE wallet_rule_transaction balance int DEFAULT 0 NOT NULL COMMENT '转换金额', after_balance int DEFAULT 0 NOT NULL COMMENT '转换后的金额', balance_multiple int DEFAULT 0 NOT NULL COMMENT '钱包转换百分比', - status VARCHAR(64) default '0' not null comment '是否启用', + is_refund VARCHAR(64) default '0' 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 '修改人', diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java index cf20316f0..5d9f6f7b2 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleJoinDto.java @@ -7,8 +7,8 @@ import lombok.Data; import lombok.NoArgsConstructor; @Data -@Builder -@AllArgsConstructor -@NoArgsConstructor +//@Builder +//@AllArgsConstructor +//@NoArgsConstructor public class WalletRuleJoinDto extends WalletRuleJoinEntity { } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java new file mode 100644 index 000000000..80f9be574 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java @@ -0,0 +1,6 @@ +package com.bsd.pjcloud.wallet.api.dto.rule; + +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; + +public class WalletRuleTransactionDto extends WalletRuleTransactionEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java new file mode 100644 index 000000000..35dfaae66 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java @@ -0,0 +1,118 @@ +package com.bsd.pjcloud.wallet.api.entity.rule; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import com.bsd.pjcloud.common.core.util.TenantTable; +import java.time.LocalDateTime; + +/** + * 钱包转账记录 + */ +@Data +@TenantTable +@TableName("wallet_rule_transaction") +@EqualsAndHashCode(callSuper = true) +@Schema(description = "钱包转账记录") +public class WalletRuleTransactionEntity extends Model { + + + /** + * 主键 + */ + @TableId(type = IdType.ASSIGN_ID) + @Schema(description="主键") + private Long id; + + /** + * 源钱包id + */ + @Schema(description="源钱包id") + private Long sourceWalletId; + + /** + * 目标钱包id + */ + @Schema(description="目标钱包id") + private Long targetWalletId; + + /** + * 源钱包余额 + */ + @Schema(description="源钱包余额") + private Integer sourceWalletBalance; + + /** + * 目标钱包余额 + */ + @Schema(description="目标钱包余额") + private Integer targetWalletBalance; + + /** + * 转换金额 + */ + @Schema(description="转换金额") + private Integer balance; + + /** + * 转换后的金额 + */ + @Schema(description="转换后的金额") + private Integer afterBalance; + + /** + * 钱包转换百分比 + */ + @Schema(description="钱包转换百分比") + private Integer balanceMultiple; + + /** + * 是否退回 + */ + @Schema(description="是否退回") + private String isRefund; + + /** + * 创建人 + */ + @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/rule/WalletRuleJoinVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinVo.java index fd709165d..04d489bdb 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinVo.java @@ -12,4 +12,22 @@ import lombok.NoArgsConstructor; @AllArgsConstructor @NoArgsConstructor public class WalletRuleJoinVo extends WalletRuleJoinEntity { + + /** + * 源钱包类型 + */ + private String sourceName; + + private String sourceUniqueCode; + + private String sourceIcon; + + /** + * 目标钱包类型 + */ + private String targetName; + + private String targetUniqueCode; + + private String targetIcon; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java new file mode 100644 index 000000000..806aae3af --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java @@ -0,0 +1,6 @@ +package com.bsd.pjcloud.wallet.api.vo.rule; + +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; + +public class WalletRuleTransactionVo extends WalletRuleTransactionEntity { +} diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java index c45463c86..f1869c4ee 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleJoinController.java @@ -6,10 +6,11 @@ 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.data.datascope.DataScope; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleJoinDto; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; -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; @@ -17,10 +18,10 @@ 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.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import java.util.List; -import java.util.Objects; /** * 钱包规则配置 @@ -36,46 +37,62 @@ public class WalletRuleJoinController { @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") - @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") public R getWalletRuleJoinPage(@ParameterObject Page page, @ParameterObject WalletRuleJoinEntity walletRuleJoin) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); return R.ok(walletRuleJoinService.page(page, wrapper)); } + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject WalletRuleJoinDto dto) { + DataScope dataScope = null; + return R.ok(walletRuleJoinService.scopeJoinPage(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") - @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_view')") public R getById(@PathVariable("id") Long id) { return R.ok(walletRuleJoinService.getById(id)); } + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("join-detail/{id}") + @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") + public R joinDetail(@PathVariable("id") Long id) { + return R.ok(walletRuleJoinService.joinDetail(id)); + } + @Operation(summary = "新增钱包规则配置", description = "新增钱包规则配置") @SysLog("新增钱包规则配置") @PostMapping - @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_add')") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_add')") public R save(@RequestBody WalletRuleJoinEntity walletRuleJoin) { - return R.ok(walletRuleJoinService.save(walletRuleJoin)); + return R.ok(walletRuleJoinService.create(walletRuleJoin)); } @Operation(summary = "修改钱包规则配置", description = "修改钱包规则配置") @SysLog("修改钱包规则配置") @PutMapping - @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_edit')") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_edit')") public R updateById(@RequestBody WalletRuleJoinEntity walletRuleJoin) { - return R.ok(walletRuleJoinService.updateById(walletRuleJoin)); + return R.ok(walletRuleJoinService.edit(walletRuleJoin)); } @Operation(summary = "通过id删除钱包规则配置", description = "通过id删除钱包规则配置") @SysLog("通过id删除钱包规则配置") @DeleteMapping - @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_del')") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_del')") public R removeById(@RequestBody Long[] ids) { - return R.ok(walletRuleJoinService.removeBatchByIds(CollUtil.toList(ids))); + walletRuleJoinService.delByIds(CollUtil.toList(ids)); + return R.ok(); } @ResponseExcel @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_export')") + // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_export')") public List export(WalletRuleJoinEntity walletRuleJoin, Long[] ids) { return walletRuleJoinService.list(Wrappers.lambdaQuery(walletRuleJoin).in(ArrayUtil.isNotEmpty(ids), WalletRuleJoinEntity::getId, ids)); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java new file mode 100644 index 000000000..a65653f4a --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java @@ -0,0 +1,82 @@ +package com.bsd.pjcloud.wallet.controller.rule; + +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.rule.WalletRuleTransactionEntity; +import com.bsd.pjcloud.wallet.service.WalletRuleTransactionService; +import org.springframework.security.access.prepost.PreAuthorize; +import com.bsd.pjcloud.common.excel.annotation.ResponseExcel; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import org.springdoc.core.annotations.ParameterObject; +import org.springframework.http.HttpHeaders; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.Objects; + +/** + * 钱包转账记录 + */ +@RestController +@RequiredArgsConstructor +@RequestMapping("/wallet-rule-transaction") +@Tag(description = "wallet-rule-transaction", name = "钱包转账记录管理") +@SecurityRequirement(name = HttpHeaders.AUTHORIZATION) +public class WalletRuleTransactionController { + + private final WalletRuleTransactionService walletRuleTransactionService; + + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_view')") + public R getWalletRuleTransactionPage(@ParameterObject Page page, @ParameterObject WalletRuleTransactionEntity walletRuleTransaction) { + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + return R.ok(walletRuleTransactionService.page(page, wrapper)); + } + + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_view')") + public R getById(@PathVariable("id") Long id) { + return R.ok(walletRuleTransactionService.getById(id)); + } + + @Operation(summary = "新增钱包转账记录", description = "新增钱包转账记录") + @SysLog("新增钱包转账记录") + @PostMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_add')") + public R save(@RequestBody WalletRuleTransactionEntity walletRuleTransaction) { + return R.ok(walletRuleTransactionService.save(walletRuleTransaction)); + } + + @Operation(summary = "修改钱包转账记录", description = "修改钱包转账记录") + @SysLog("修改钱包转账记录") + @PutMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_edit')") + public R updateById(@RequestBody WalletRuleTransactionEntity walletRuleTransaction) { + return R.ok(walletRuleTransactionService.updateById(walletRuleTransaction)); + } + + @Operation(summary = "通过id删除钱包转账记录", description = "通过id删除钱包转账记录") + @SysLog("通过id删除钱包转账记录") + @DeleteMapping + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_del')") + public R removeById(@RequestBody Long[] ids) { + return R.ok(walletRuleTransactionService.removeBatchByIds(CollUtil.toList(ids))); + } + + @ResponseExcel + @GetMapping("/export") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_export')") + public List export(WalletRuleTransactionEntity walletRuleTransaction, Long[] ids) { + return walletRuleTransactionService.list(Wrappers.lambdaQuery(walletRuleTransaction).in(ArrayUtil.isNotEmpty(ids), WalletRuleTransactionEntity::getId, ids)); + } +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java index acbfbd060..e60cdba0b 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleJoinMapper.java @@ -1,11 +1,18 @@ package com.bsd.pjcloud.wallet.mapper.rule; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleJoinDto; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface WalletRuleJoinMapper extends PjcloudBaseMapper { + Page scopeJoinPage(Page page, @Param("dto") WalletRuleJoinDto dto, DataScope dataScope); + WalletRuleJoinVo joinDetail(@Param("id") Long id); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java new file mode 100644 index 000000000..fb1496256 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java @@ -0,0 +1,11 @@ +package com.bsd.pjcloud.wallet.mapper.rule; + +import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface WalletRuleTransactionMapper extends PjcloudBaseMapper { + + +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java index 4f9673f55..0a4660b7e 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleJoinService.java @@ -1,8 +1,40 @@ 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.common.data.datascope.DataScope; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleJoinDto; +import com.bsd.pjcloud.wallet.api.entity.mch.MchRuleJoinDtoEntity; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import com.bsd.pjcloud.wallet.api.vo.mch.MchRuleJoinDtoVo; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; + +import java.util.ArrayList; public interface WalletRuleJoinService extends IService { + /** + * 权限分页查询 + */ + Page scopeJoinPage(Page page, WalletRuleJoinDto dto, DataScope dataScope); + + /** + * 新增 + */ + Long create(WalletRuleJoinEntity dto); + + /** + * 修改 + */ + Long edit(WalletRuleJoinEntity dto); + + /** + * 删除 + */ + void delByIds(ArrayList list); + + /** + * 复杂详情 + */ + WalletRuleJoinVo joinDetail(Long id); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java new file mode 100644 index 000000000..44fbb582c --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.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.rule.WalletRuleTransactionEntity; + +public interface WalletRuleTransactionService 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/rule/WalletRuleJoinServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java index 82a77bac0..c45fa1a4e 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java @@ -1,13 +1,120 @@ package com.bsd.pjcloud.wallet.service.impl.rule; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleJoinDto; +import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleJoinMapper; import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; +import com.bsd.pjcloud.wallet.service.WalletTypeService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import java.util.ArrayList; + /** * 钱包规则配置 */ +@Validated +@Slf4j +@RequiredArgsConstructor @Service public class WalletRuleJoinServiceImpl extends ServiceImpl implements WalletRuleJoinService { + + private final WalletTypeService walletTypeService; + + /** + * 权限分页查询 + */ + @Override + public Page scopeJoinPage(Page page, WalletRuleJoinDto dto, DataScope dataScope) { + return baseMapper.scopeJoinPage(page, dto, dataScope); + } + + /** + * 新增 + */ + @Override + public Long create(WalletRuleJoinEntity dto) { + if (existWalletRuleJoin(dto)) { + throw new RuntimeException("绑定类型不能重复"); + } + if (areWalletIdsDistinct(dto)) { + throw new RuntimeException("源钱包类型与目标钱包类型不能重复"); + } + WalletTypeEntity targetMch = walletTypeService.getById(dto.getTargetWalletTypeId()); + if (ObjectUtil.isEmpty(targetMch)) { + throw new RuntimeException("目标钱包类型不存在"); + } + baseMapper.insert(dto); + return dto.getId(); + } + + /** + * 修改 + */ + @Override + public Long edit(WalletRuleJoinEntity dto) { + if (existWalletRuleJoin(dto)) { + throw new RuntimeException("绑定类型不能重复"); + } + if (areWalletIdsDistinct(dto)) { + throw new RuntimeException("源钱包类型与目标钱包类型不能重复"); + } + WalletTypeEntity targetMch = walletTypeService.getById(dto.getTargetWalletTypeId()); + if (ObjectUtil.isEmpty(targetMch)) { + throw new RuntimeException("目标钱包类型不存在"); + } + baseMapper.updateById(dto); + return dto.getId(); + } + + /** + * 删除 + */ + @Override + public void delByIds(ArrayList list) { + if (ObjectUtil.isEmpty(list)) return; + baseMapper.deleteByIds(list); + } + + /** + * 复杂详情 + */ + @Override + public WalletRuleJoinVo joinDetail(Long id) { + return baseMapper.joinDetail(id); + } + + /** + * 是否重复 + */ + private boolean existWalletRuleJoin(WalletRuleJoinEntity dto) { + Long count = baseMapper.selectCount(new LambdaQueryWrapper() + .eq(ObjectUtil.isNotEmpty(dto.getSourceWalletTypeId()), WalletRuleJoinEntity::getSourceWalletTypeId, dto.getSourceWalletTypeId()) + .eq(ObjectUtil.isNotEmpty(dto.getTargetWalletTypeId()), WalletRuleJoinEntity::getTargetWalletTypeId, dto.getTargetWalletTypeId()) + .ne(ObjectUtil.isNotEmpty(dto.getId()), WalletRuleJoinEntity::getId, dto.getId()) + ); + if (ObjectUtil.isNotEmpty(dto.getId())) { + return count >= 1; + } + return count > 0; + } + + /** + * sourceWalletTypeId和targetWalletTypeId是否重复 + */ + private boolean areWalletIdsDistinct(WalletRuleJoinEntity dto) { + if (!ObjectUtil.isAllNotEmpty(dto.getSourceWalletTypeId(), dto.getTargetWalletTypeId())) { + return false; + } + return ObjectUtil.equals(dto.getSourceWalletTypeId(), dto.getTargetWalletTypeId()); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java new file mode 100644 index 000000000..d12b54765 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java @@ -0,0 +1,20 @@ +package com.bsd.pjcloud.wallet.service.impl.rule; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleTransactionMapper; +import com.bsd.pjcloud.wallet.service.WalletRuleTransactionService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +/** + * 钱包转账记录 + */ +@Validated +@Slf4j +@RequiredArgsConstructor +@Service +public class WalletRuleTransactionServiceImpl extends ServiceImpl implements WalletRuleTransactionService { +} \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml index 43eb3f1ca..0fe82158c 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml @@ -2,8 +2,7 @@ - - + @@ -15,5 +14,61 @@ - + + + + select a.id, + a.source_wallet_type_id, + a.target_wallet_type_id, + a.balance_multiple, + a.status, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + a.del_flag = 0 + + and a.source_wallet_type_id = #{dto.sourceWalletTypeId} + + + and a.target_wallet_type_id = #{dto.targetWalletTypeId} + + + + + + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml new file mode 100644 index 000000000..54da92661 --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file From c481a2d2614f008d348a5381e883d483cfc568c8 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 31 Mar 2025 12:32:39 +0800 Subject: [PATCH 09/11] =?UTF-8?q?feat:=E7=94=A8=E6=88=B7=E9=92=B1=E5=8C=85?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E5=88=A0=E9=99=A4=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysUserServiceImpl.java | 14 +- .../wallet/api/constant/WalletBizEnum.java | 1 + .../dto/rule/WalletRuleTransactionDto.java | 16 ++- .../rule/WalletRuleTransactionEntity.java | 131 +++++++++--------- .../wallet/api/feign/RemoteWalletService.java | 3 + .../api/vo/rule/WalletRuleTransactionVo.java | 24 ++++ .../controller/WalletManageController.java | 5 + .../rule/WalletRuleTransactionController.java | 11 ++ .../rule/WalletRuleTransactionMapper.java | 6 + .../wallet/service/WalletManageService.java | 5 + .../service/WalletRuleTransactionService.java | 9 ++ .../service/impl/WalletManageServiceImpl.java | 29 ++++ .../WalletRuleTransactionServiceImpl.java | 12 ++ .../rule/WalletRuleTransactionMapper.xml | 63 +++++++++ 14 files changed, 260 insertions(+), 69 deletions(-) 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 2ad288f26..942b32b55 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 @@ -142,8 +142,8 @@ public class SysUserServiceImpl extends ServiceImpl impl BeanUtils.copyProperties(userDto, sysUser); // 判断是否为部门管理员 PjcloudUser applyUser = SecurityUtils.getUser(); - boolean isDeptAdmin=false; - if (null!=applyUser){ + boolean isDeptAdmin = false; + if (null != applyUser) { isDeptAdmin = sysRoleService.isDeptAdmin(applyUser.getId()); if (isDeptAdmin) { List defaultRoles = sysRoleService.findRolesByCodes(List.of(CommonRoleConstant.DEFAULT_USER, CommonRoleConstant.AUTO_CREATE_WALLET)); @@ -323,8 +323,16 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override @Transactional(rollbackFor = Exception.class) public Boolean deleteUserByIds(Long[] ids) { - // 删除 spring cache List userList = baseMapper.selectBatchIds(CollUtil.toList(ids)); + // 判断是否可以删除 + userList.forEach(v -> { + String errorMsg = remoteWalletService.isDel(v.getUserId()).getData(); + if (ObjectUtil.isNotEmpty(errorMsg)) { + throw new RuntimeException(errorMsg); + } + }); + + // 删除 spring cache Cache cache = cacheManager.getCache(CacheConstants.USER_DETAILS); for (SysUser sysUser : userList) { cache.evict(sysUser.getUsername()); diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletBizEnum.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletBizEnum.java index 490cfaf0a..ba36fb2d7 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletBizEnum.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/WalletBizEnum.java @@ -15,6 +15,7 @@ public enum WalletBizEnum { RECHARGE("3", "充值"), PAYMENT("4", "支付"), REFUND("5", "退款"), + TRANSFER_ACCOUNTS("6", "转账"), ; private final String code; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java index 80f9be574..237859dce 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/rule/WalletRuleTransactionDto.java @@ -1,6 +1,20 @@ package com.bsd.pjcloud.wallet.api.dto.rule; +import com.bsd.pjcloud.admin.api.vo.base.BaseIsIncludeTreeInterface; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import lombok.Data; + +import java.util.List; + +@Data +public class WalletRuleTransactionDto extends WalletRuleTransactionEntity implements BaseIsIncludeTreeInterface { + + /** + * 树状结构搜索 + */ + + private List deptIds; + + private Boolean isInclude = false; -public class WalletRuleTransactionDto extends WalletRuleTransactionEntity { } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java index 35dfaae66..8f673add6 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleTransactionEntity.java @@ -6,6 +6,7 @@ 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; /** @@ -19,100 +20,100 @@ import java.time.LocalDateTime; public class WalletRuleTransactionEntity extends Model { - /** - * 主键 - */ + /** + * 主键 + */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description="主键") + @Schema(description = "主键") private Long id; - /** - * 源钱包id - */ - @Schema(description="源钱包id") + /** + * 源钱包id + */ + @Schema(description = "源钱包id") private Long sourceWalletId; - /** - * 目标钱包id - */ - @Schema(description="目标钱包id") + /** + * 目标钱包id + */ + @Schema(description = "目标钱包id") private Long targetWalletId; - /** - * 源钱包余额 - */ - @Schema(description="源钱包余额") + /** + * 源钱包余额 + */ + @Schema(description = "源钱包余额") private Integer sourceWalletBalance; - /** - * 目标钱包余额 - */ - @Schema(description="目标钱包余额") + /** + * 目标钱包余额 + */ + @Schema(description = "目标钱包余额") private Integer targetWalletBalance; - /** - * 转换金额 - */ - @Schema(description="转换金额") + /** + * 转换金额 + */ + @Schema(description = "转换金额") private Integer balance; - /** - * 转换后的金额 - */ - @Schema(description="转换后的金额") + /** + * 转换后的金额 + */ + @Schema(description = "转换后的金额") private Integer afterBalance; - /** - * 钱包转换百分比 - */ - @Schema(description="钱包转换百分比") + /** + * 钱包转换百分比 + */ + @Schema(description = "钱包转换百分比") private Integer balanceMultiple; - /** - * 是否退回 - */ - @Schema(description="是否退回") + /** + * 是否退回 + */ + @Schema(description = "是否退回") private String isRefund; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建人") + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建时间") + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") private LocalDateTime createTime; - /** - * 修改人 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改人") + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") private String updateBy; - /** - * 修改时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改时间") + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") private LocalDateTime updateTime; - /** - * 删除标记 - */ + /** + * 删除标记 + */ @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description="删除标记") + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") private String delFlag; - /** - * 租户ID - */ - @Schema(description="租户ID") + /** + * 租户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 3196f612e..ec3118e7d 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 @@ -49,4 +49,7 @@ public interface RemoteWalletService { @GetMapping("/wallet-manage/dept-change") R deptChange(@RequestParam Long deptId, @RequestParam Boolean isDel); + + @GetMapping("/wallet-manage/is-del") + R isDel(@RequestParam Long userId); } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java index 806aae3af..2a486a7f8 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleTransactionVo.java @@ -1,6 +1,30 @@ package com.bsd.pjcloud.wallet.api.vo.rule; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import lombok.Data; +@Data public class WalletRuleTransactionVo extends WalletRuleTransactionEntity { + + /** + * 用户相关 + */ + private Long userId; + + private Long deptId; + + /** + * 源钱包相关 + */ + private String sourceWalletTypeName; + + private String sourceWalletTypeCode; + + /** + * 目标钱包相关 + */ + private String targetWalletTypeName; + + private String targetWalletTypeCode; + } 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 ad9b0fd29..4d2ef56b3 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 @@ -126,6 +126,11 @@ public class WalletManageController { return R.ok(true); } + @GetMapping("/is-del") + public R isDel(@RequestParam Long userId) { + return R.ok(walletManageService.isDel(userId)); + } + /* ************************************* end 远程调用 end ************************************* */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java index a65653f4a..37b3620e5 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/rule/WalletRuleTransactionController.java @@ -6,7 +6,10 @@ 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.data.datascope.DataScope; +import com.bsd.pjcloud.common.data.datascope.DataScopeFuncEnum; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleTransactionDto; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; import com.bsd.pjcloud.wallet.service.WalletRuleTransactionService; import org.springframework.security.access.prepost.PreAuthorize; @@ -42,6 +45,14 @@ public class WalletRuleTransactionController { return R.ok(walletRuleTransactionService.page(page, wrapper)); } + @Operation(summary = "分页复杂查询", description = "分页复杂查询") + @GetMapping("/page-join") + @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_view')") + public R pageJoin(@ParameterObject Page page, @ParameterObject WalletRuleTransactionDto dto) { + DataScope dataScope = DataScope.of().func(DataScopeFuncEnum.ALL); + return R.ok(walletRuleTransactionService.scopePageList(page, dto, dataScope)); + } + @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletRuleTransaction_view')") diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java index fb1496256..342c8f6ae 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/rule/WalletRuleTransactionMapper.java @@ -1,11 +1,17 @@ package com.bsd.pjcloud.wallet.mapper.rule; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.common.data.datascope.PjcloudBaseMapper; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleTransactionDto; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleTransactionVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; @Mapper public interface WalletRuleTransactionMapper extends PjcloudBaseMapper { + Page scopePageList(Page page, @Param("dto") WalletRuleTransactionDto dto, DataScope dataScope); } \ 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 a40724ec7..f4976cf1c 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 @@ -124,4 +124,9 @@ public interface WalletManageService extends IService { * 修改部门 */ void deptChange(Long deptId, Boolean isDel); + + /** + * 是否可以删除该用户 + */ + String isDel(Long userId); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java index 44fbb582c..78b4acc8d 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRuleTransactionService.java @@ -1,8 +1,17 @@ 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.common.data.datascope.DataScope; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleTransactionDto; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleTransactionVo; public interface WalletRuleTransactionService extends IService { + /** + * 分页复杂查询 + */ + Page scopePageList(Page page, WalletRuleTransactionDto dto, DataScope dataScope); + } \ 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 a50f74128..e90f18484 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 @@ -39,6 +39,7 @@ import com.bsd.pjcloud.wallet.api.dto.WalletManageDto; import com.bsd.pjcloud.wallet.api.dto.WalletTypeDto; import com.bsd.pjcloud.wallet.api.entity.WalletActiveEntity; import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; +import com.bsd.pjcloud.wallet.api.entity.WalletTransactionEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.utils.WalletDataUtil; import com.bsd.pjcloud.wallet.api.vo.MchManageVo; @@ -46,6 +47,7 @@ import com.bsd.pjcloud.wallet.api.vo.WalletManageBalanceVo; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; import com.bsd.pjcloud.wallet.api.vo.WalletSettingVo; import com.bsd.pjcloud.wallet.mapper.WalletManageMapper; +import com.bsd.pjcloud.wallet.mapper.WalletTransactionMapper; import com.bsd.pjcloud.wallet.mapper.WalletTypeMapper; import com.bsd.pjcloud.wallet.service.*; import jakarta.servlet.http.HttpServletResponse; @@ -93,6 +95,7 @@ public class WalletManageServiceImpl extends ServiceImpl() + .eq(WalletTransactionEntity::getUserId, userId) + ); + if (transactionCount > 0) { + return "用户有消费记录,不能删除"; + } + // 钱包类型 + List walletList = walletTypeMapper.selectList(null); + if (ObjectUtil.isEmpty(walletList)) return ""; + for (WalletTypeEntity v : walletList) { + WalletManageEntity wallet = getWallet(userId, v.getId()); + if (ObjectUtil.isEmpty(wallet)) continue; + if (wallet.getBalance() > 0) { + return "用户" + v.getName() + ",还有" + wallet.getBalance() / 100 + "元,不能删除"; + } + } + return ""; + } + private void disposeList(List list, WalletManageDto dto) { if (ObjectUtil.isNotEmpty(list)) { // 用户 diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java index d12b54765..1b67229fd 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleTransactionServiceImpl.java @@ -1,7 +1,11 @@ package com.bsd.pjcloud.wallet.service.impl.rule; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleTransactionDto; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleTransactionVo; import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleTransactionMapper; import com.bsd.pjcloud.wallet.service.WalletRuleTransactionService; import lombok.RequiredArgsConstructor; @@ -17,4 +21,12 @@ import org.springframework.validation.annotation.Validated; @RequiredArgsConstructor @Service public class WalletRuleTransactionServiceImpl extends ServiceImpl implements WalletRuleTransactionService { + + /** + * 分页复杂查询 + */ + @Override + public Page scopePageList(Page page, WalletRuleTransactionDto dto, DataScope dataScope) { + return baseMapper.scopePageList(page, dto, dataScope); + } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml index 54da92661..f0a0f878b 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleTransactionMapper.xml @@ -19,4 +19,67 @@ + + + select a.id, + a.source_wallet_id, + a.target_wallet_id, + a.source_wallet_balance, + a.target_wallet_balance, + a.balance, + a.after_balance, + a.balance_multiple, + a.is_refund, + a.create_by, + a.create_time, + a.update_by, + a.update_time, + a.del_flag, + a.tenant_id, + + + + a.del_flag = 0 + + and a.source_wallet_id = #{dto.sourceWalletId} + + + and a.target_wallet_id = #{dto.targetWalletId} + + + + \ No newline at end of file From b5a41f85b0882e026301bdeb1c9125e4468c3211 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 31 Mar 2025 14:41:59 +0800 Subject: [PATCH 10/11] =?UTF-8?q?feat:=E4=BD=BF=E7=94=A8=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E9=92=B1=E5=8C=85=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/800pjcloudx_wallet.sql | 10 +- .../wallet/api/entity/WalletTypeEntity.java | 97 ++++++++-------- .../api/entity/rule/WalletRuleJoinEntity.java | 105 ++++++++++-------- .../impl/rule/WalletRuleJoinServiceImpl.java | 1 + .../resources/mapper/WalletTypeMapper.xml | 6 +- .../mapper/rule/WalletRuleJoinMapper.xml | 5 + 6 files changed, 123 insertions(+), 101 deletions(-) diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index ef2fa0e2f..0493737ae 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -132,7 +132,7 @@ CREATE TABLE mch_rule_price_config DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商家商品价格配置表'; -- ---------------------------- --- Table structure for wallet_rule_mch_config +-- Table structure for mch_rule_join -- ---------------------------- DROP TABLE IF EXISTS mch_rule_join; CREATE TABLE mch_rule_join @@ -159,10 +159,11 @@ CREATE TABLE mch_rule_join DROP TABLE IF EXISTS wallet_type; CREATE TABLE wallet_type ( - id bigint NOT NULL COMMENT '主键', - name varchar(64) NOT NULL COMMENT '钱包名', - icon varchar(256) NOT NULL COMMENT '钱包图标', + id bigint NOT NULL COMMENT '主键', + name varchar(64) NOT NULL COMMENT '钱包名', + icon varchar(256) NOT NULL COMMENT '钱包图标', unique_code varchar(16) COMMENT '饭卡code', + is_rule char(1) DEFAULT '0' 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 '修改人', @@ -182,6 +183,7 @@ CREATE TABLE wallet_rule_join id BIGINT(19) not null comment '主键', source_wallet_type_id BIGINT(19) not null comment '源钱包类型id', target_wallet_type_id BIGINT(19) not null comment '目标钱包类型id', + target_dept_id BIGINT(19) not null comment '目标部门id', balance_multiple int DEFAULT 0 NOT NULL COMMENT '钱包转换百分比', status VARCHAR(64) default '0' not null comment '是否启用', create_by varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人', diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTypeEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTypeEntity.java index 4fbe7280a..915cb9654 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTypeEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/WalletTypeEntity.java @@ -6,6 +6,7 @@ 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; /** @@ -22,70 +23,76 @@ import java.time.LocalDateTime; public class WalletTypeEntity extends Model { - /** - * 主键 - */ + /** + * 主键 + */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description="主键") + @Schema(description = "主键") private Long id; - /** - * 钱包名 - */ - @Schema(description="钱包名") + /** + * 钱包名 + */ + @Schema(description = "钱包名") private String name; - /** - * 钱包图标 - */ - @Schema(description="钱包图标") + /** + * 钱包图标 + */ + @Schema(description = "钱包图标") private String icon; - /** - * 饭卡code - */ - @Schema(description="饭卡code") + /** + * 饭卡code + */ + @Schema(description = "饭卡code") private String uniqueCode; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建人") + /** + * 是否启用钱包转账规则 + */ + @Schema(description = "是否启用钱包转账规则") + private String isRule; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建时间") + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") private LocalDateTime createTime; - /** - * 修改人 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改人") + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") private String updateBy; - /** - * 修改时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改时间") + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") private LocalDateTime updateTime; - /** - * 删除标记 - */ + /** + * 删除标记 + */ @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description="删除标记") + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") private String delFlag; - /** - * 租户ID - */ - @Schema(description="租户ID") + /** + * 租户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/rule/WalletRuleJoinEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java index 05af772cf..672287860 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/rule/WalletRuleJoinEntity.java @@ -6,6 +6,7 @@ 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; /** @@ -19,76 +20,82 @@ import java.time.LocalDateTime; public class WalletRuleJoinEntity extends Model { - /** - * 主键 - */ + /** + * 主键 + */ @TableId(type = IdType.ASSIGN_ID) - @Schema(description="主键") + @Schema(description = "主键") private Long id; - /** - * 源钱包类型id - */ - @Schema(description="源钱包类型id") + /** + * 源钱包类型id + */ + @Schema(description = "源钱包类型id") private Long sourceWalletTypeId; - /** - * 目标钱包类型id - */ - @Schema(description="目标钱包类型id") + /** + * 目标钱包类型id + */ + @Schema(description = "目标钱包类型id") private Long targetWalletTypeId; - /** - * 钱包转换百分比 - */ - @Schema(description="钱包转换百分比") + /** + * 目标部门id + */ + @Schema(description = "目标部门id") + private Long targetDeptId; + + /** + * 钱包转换百分比 + */ + @Schema(description = "钱包转换百分比") private Integer balanceMultiple; - /** - * 是否启用 - */ - @Schema(description="是否启用") + /** + * 是否启用 + */ + @Schema(description = "是否启用") private String status; - /** - * 创建人 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建人") + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建人") private String createBy; - /** - * 创建时间 - */ - @TableField(fill = FieldFill.INSERT) - @Schema(description="创建时间") + /** + * 创建时间 + */ + @TableField(fill = FieldFill.INSERT) + @Schema(description = "创建时间") private LocalDateTime createTime; - /** - * 修改人 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改人") + /** + * 修改人 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改人") private String updateBy; - /** - * 修改时间 - */ - @TableField(fill = FieldFill.INSERT_UPDATE) - @Schema(description="修改时间") + /** + * 修改时间 + */ + @TableField(fill = FieldFill.INSERT_UPDATE) + @Schema(description = "修改时间") private LocalDateTime updateTime; - /** - * 删除标记 - */ + /** + * 删除标记 + */ @TableLogic - @TableField(fill = FieldFill.INSERT) - @Schema(description="删除标记") + @TableField(fill = FieldFill.INSERT) + @Schema(description = "删除标记") private String delFlag; - /** - * 租户ID - */ - @Schema(description="租户ID") + /** + * 租户ID + */ + @Schema(description = "租户ID") private Long tenantId; } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java index c45fa1a4e..9813f3ff6 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/rule/WalletRuleJoinServiceImpl.java @@ -100,6 +100,7 @@ public class WalletRuleJoinServiceImpl extends ServiceImpl() .eq(ObjectUtil.isNotEmpty(dto.getSourceWalletTypeId()), WalletRuleJoinEntity::getSourceWalletTypeId, dto.getSourceWalletTypeId()) .eq(ObjectUtil.isNotEmpty(dto.getTargetWalletTypeId()), WalletRuleJoinEntity::getTargetWalletTypeId, dto.getTargetWalletTypeId()) + .eq(ObjectUtil.isNotEmpty(dto.getTargetDeptId()), WalletRuleJoinEntity::getTargetDeptId, dto.getTargetDeptId()) .ne(ObjectUtil.isNotEmpty(dto.getId()), WalletRuleJoinEntity::getId, dto.getId()) ); if (ObjectUtil.isNotEmpty(dto.getId())) { diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTypeMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTypeMapper.xml index 399c3dc1a..fbbac680a 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTypeMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTypeMapper.xml @@ -2,17 +2,17 @@ - - + + - + \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml index 0fe82158c..c8615e689 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/rule/WalletRuleJoinMapper.xml @@ -6,6 +6,7 @@ + @@ -20,6 +21,7 @@ select a.id, a.source_wallet_type_id, a.target_wallet_type_id, + a.target_dept_id, a.balance_multiple, a.status, a.create_by, @@ -38,6 +40,9 @@ and a.target_wallet_type_id = #{dto.targetWalletTypeId} + + and a.target_dept_id = #{dto.targetDeptId} +