From 8e7b2fab0400c4a8c686421f4eec31e0dd123217 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 31 Mar 2025 17:28:02 +0800 Subject: [PATCH 1/5] =?UTF-8?q?fix:=E4=BA=BA=E5=91=98=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0excel=E6=89=8B=E6=9C=BA=E5=8F=B7=E3=80=81?= =?UTF-8?q?=E5=A7=93=E5=90=8D=E9=87=8D=E5=A4=8D=E9=AA=8C=E8=AF=81=E3=80=81?= =?UTF-8?q?=E4=BA=BA=E8=84=B8=E5=8F=96=E6=B6=88=E5=BF=85=E5=A1=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/SysUserServiceImpl.java | 25 ++++++++-- .../wallet/api/vo/rule/WalletRuleJoinVo.java | 10 +++- .../rule/WalletRuleJoinController.java | 3 +- .../wallet/service/WalletRuleJoinService.java | 2 +- .../impl/rule/WalletRuleJoinServiceImpl.java | 46 +++++++++++++++---- 5 files changed, 70 insertions(+), 16 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 942b32b55..7a2d19b04 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 @@ -65,6 +65,7 @@ import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.flow.task.constant.TaskCheckStatusEnum; import com.bsd.pjcloud.flow.task.dto.ProcessNodeRecordAssignUserParamDto; import com.bsd.pjcloud.flow.task.dto.TaskDto; +import com.bsd.pjcloud.wallet.api.dto.recharge.excel.WalletRechargeExcelDto; import com.bsd.pjcloud.wallet.api.feign.RemoteWalletService; import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeApplyVo; @@ -541,6 +542,10 @@ public class SysUserServiceImpl extends ServiceImpl impl String walletAutoCreate = ParamResolver.getStr("WALLET_AUTO_CREATE"); String userDefaultRole = ParamResolver.getStr("USER_DEFAULT_ROLE"); List roleIds = roleList.stream().filter(v -> ObjectUtil.equals(v.getRoleCode(), walletAutoCreate) || ObjectUtil.equals(v.getRoleCode(), userDefaultRole)).map(SysRole::getRoleId).toList(); + // 用户手机号重复判断 + List userPoneList = excelList.stream().map(UserExcelFaceVo::getMobile).toList(); + // 用户名重复判断 + List usernameList = excelList.stream().map(UserExcelFaceVo::getUsername).toList(); // 读取图片 Map images = ExcelTool.getPictureFromExcel(file, 1); for (UserExcelFaceVo v : excelList) { @@ -576,9 +581,20 @@ public class SysUserServiceImpl extends ServiceImpl impl String key = String.valueOf(v.getLineNum() - 1); face = images.getOrDefault(key, null); } - if (ObjectUtil.isEmpty(face)) { - errorMsg.add("人脸照片为空"); + // if (ObjectUtil.isEmpty(face)) { + // errorMsg.add("人脸照片为空"); + // } + + long userPhone = userPoneList.stream().filter(i -> ObjectUtil.equals(i, v.getMobile())).count(); + if (userPhone > 1) { + errorMsg.add("用手机号 <" + v.getMobile() + "> 重复"); } + + long repetitionUsername = usernameList.stream().filter(i -> ObjectUtil.equals(i, v.getUsername())).count(); + if (repetitionUsername > 1) { + errorMsg.add("用户名 <" + v.getUsername() + "> 重复"); + } + if (CollUtil.isEmpty(errorMsg)) { insertExcelUser(v, deptId, roleIds, face); } else { @@ -638,7 +654,10 @@ public class SysUserServiceImpl extends ServiceImpl impl // 插入用户 Long usrId = this.saveUser(userDTO); userDTO.setUserId(usrId); - insertExcelFace(userDTO, face); + // 更新人脸 + if (ObjectUtil.isNotEmpty(face)) { + insertExcelFace(userDTO, face); + } } public void insertExcelFace(UserDTO user, PictureData face) { 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 04d489bdb..8dc505024 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 @@ -1,5 +1,6 @@ package com.bsd.pjcloud.wallet.api.vo.rule; +import com.bsd.pjcloud.admin.api.vo.base.BaseDeptInterface; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; import lombok.AllArgsConstructor; import lombok.Builder; @@ -11,7 +12,7 @@ import lombok.NoArgsConstructor; @Builder @AllArgsConstructor @NoArgsConstructor -public class WalletRuleJoinVo extends WalletRuleJoinEntity { +public class WalletRuleJoinVo extends WalletRuleJoinEntity implements BaseDeptInterface { /** * 源钱包类型 @@ -30,4 +31,11 @@ public class WalletRuleJoinVo extends WalletRuleJoinEntity { private String targetUniqueCode; private String targetIcon; + + /** + * 部门 + */ + private Long deptId; + + private String deptName; } 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 6298c7ca8..298329fda 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 @@ -70,7 +70,8 @@ public class WalletRuleJoinController { @PostMapping // @PreAuthorize("@pms.hasPermission('wallet_walletRuleJoin_add')") public R save(@RequestBody WalletRuleJoinDto dto) { - return R.ok(walletRuleJoinService.create(dto)); + walletRuleJoinService.create(dto); + return R.ok(); } @Operation(summary = "修改钱包规则配置", description = "修改钱包规则配置") 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 0a4660b7e..764dbca75 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 @@ -21,7 +21,7 @@ public interface WalletRuleJoinService extends IService { /** * 新增 */ - Long create(WalletRuleJoinEntity dto); + void create(WalletRuleJoinDto dto); /** * 修改 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 9813f3ff6..aff37aab1 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 @@ -4,10 +4,16 @@ 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.admin.api.entity.SysDept; +import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; +import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.common.core.util.BeanUtils; +import com.bsd.pjcloud.common.core.util.R; 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.WalletManageVo; import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleJoinMapper; import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; @@ -18,6 +24,8 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.ArrayList; +import java.util.List; +import java.util.Map; /** * 钱包规则配置 @@ -30,31 +38,39 @@ public class WalletRuleJoinServiceImpl extends ServiceImpl scopeJoinPage(Page page, WalletRuleJoinDto dto, DataScope dataScope) { - return baseMapper.scopeJoinPage(page, dto, dataScope); + Page pageList = baseMapper.scopeJoinPage(page, dto, dataScope); + disposeList(pageList.getRecords(), dto); + return pageList; } /** * 新增 */ @Override - public Long create(WalletRuleJoinEntity dto) { - if (existWalletRuleJoin(dto)) { - throw new RuntimeException("绑定类型不能重复"); - } + public void create(WalletRuleJoinDto dto) { if (areWalletIdsDistinct(dto)) { throw new RuntimeException("源钱包类型与目标钱包类型不能重复"); } - WalletTypeEntity targetMch = walletTypeService.getById(dto.getTargetWalletTypeId()); - if (ObjectUtil.isEmpty(targetMch)) { - throw new RuntimeException("目标钱包类型不存在"); + List saveList = new ArrayList<>(); + for (Long v : dto.getTargetDeptIdList()) { + if (ObjectUtil.isEmpty(v)) continue; + WalletRuleJoinEntity item = BeanUtils.toBean(dto, WalletRuleJoinEntity.class); + item.setTargetDeptId(v); + if (existWalletRuleJoin(dto)) { + // 查询部门 + SysDept sysDept = remoteDeptService.getDeptByDeptId(v).getData(); + throw new RuntimeException(sysDept.getName() + "部门绑定类型不能重复"); + } + saveList.add(item); } - baseMapper.insert(dto); - return dto.getId(); + baseMapper.insert(saveList); } /** @@ -118,4 +134,14 @@ public class WalletRuleJoinServiceImpl extends ServiceImpl list, WalletRuleJoinDto dto) { + if (ObjectUtil.isEmpty(list)) return; + // 部门 + List deptIds = list.stream().map(WalletRuleJoinVo::getTargetDeptId).distinct().toList(); + R> deptList = remoteDeptService.getDeptByDeptIds(deptIds); + if (ObjectUtil.isNotEmpty(deptList.getData())) { + DataUtil.convertDeptList(list, deptList.getData()); + } + } } \ No newline at end of file From 5f0fee09179d0020587949ac04f7da76add7632a Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 31 Mar 2025 19:04:53 +0800 Subject: [PATCH 2/5] =?UTF-8?q?feat:=E7=A7=BB=E5=8A=A8=E7=AB=AF=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=88=86=E5=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/order/HardOrderController.java | 20 +++++++++++++++ .../wallet/api/utils/WalletDataUtil.java | 1 + .../pjcloud/wallet/api/vo/MchManageVo.java | 9 +++++-- .../pjcloud/wallet/api/vo/WalletActiveVo.java | 2 ++ .../pjcloud/wallet/api/vo/WalletManageVo.java | 2 ++ .../api/vo/base/BaseWalletTypeInterface.java | 4 +++ .../vo/recharge/WalletRechargeApplyVo.java | 2 ++ .../vo/recharge/WalletRechargeImportVo.java | 2 ++ .../vo/transaction/WalletTransactionVo.java | 2 ++ .../controller/WalletManageController.java | 7 ++++++ .../wallet/service/WalletManageService.java | 25 ------------------- .../service/impl/WalletManageServiceImpl.java | 2 +- .../impl/rule/WalletRuleJoinServiceImpl.java | 1 + 13 files changed, 51 insertions(+), 28 deletions(-) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java index c06b25735..5f06576de 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderController.java @@ -100,6 +100,26 @@ public class HardOrderController { return R.ok(hardwareOrderService.pagejoin(page, dto)); } + @Operation(summary = "app查询超市订单列表", description = "app查询订单列表") + @GetMapping("/app/sup-page-join") + public R appSupPageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + dto.setUserId(user.getId()); + dto.setIsFindCarList(true); + dto.setMchTypeCodes(List.of(MerchantTypeEnum.SUPERMARKET.getType(), MerchantTypeEnum.SELF_SUPERMARKET.getType())); + return R.ok(hardwareOrderService.pagejoin(page, dto)); + } + + @Operation(summary = "app查询食堂订单列表", description = "app查询订单列表") + @GetMapping("/app/caneen-page-join") + public R appCaneenPageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { + PjcloudUser user = SecurityUtils.getUser(); + dto.setUserId(user.getId()); + dto.setIsFindCarList(true); + dto.setMchTypeCodes(List.of(MerchantTypeEnum.CANTEEN.getType())); + return R.ok(hardwareOrderService.pagejoin(page, dto)); + } + @Operation(summary = "app商户查询订单列表", description = "app商户查询订单列表") @GetMapping("/app/mch-page-join") public R appMchPageJoin(@ParameterObject Page page, @ParameterObject HardOrderDto dto) { diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java index 59f17bb2d..dce22c0cc 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/utils/WalletDataUtil.java @@ -37,6 +37,7 @@ public class WalletDataUtil { v.setWalletTypeName(vo.getName()); v.setWalletTypeUniqueCode(vo.getUniqueCode()); v.setWalletTypeIcon(vo.getIcon()); + v.setIsRule(vo.getIsRule()); return v; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java index a963ff646..1cd54e0c5 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/MchManageVo.java @@ -10,8 +10,9 @@ import java.util.List; @Data public class MchManageVo extends MchManageEntity implements BaseDeptInterface, BaseWalletTypeInterface { - private String deptName; - + /** + * 钱包类型相关 + */ private Long walletTypeId; private String walletTypeName; @@ -20,6 +21,10 @@ public class MchManageVo extends MchManageEntity implements BaseDeptInterface, B private String walletTypeIcon; + private String isRule; + + private String deptName; + private List children; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java index 6bc7a3df4..45615fecd 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletActiveVo.java @@ -41,4 +41,6 @@ public class WalletActiveVo extends WalletActiveEntity implements BaseUserInterf private String walletTypeUniqueCode; private String walletTypeIcon; + + private String isRule; } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java index 8a9ef7216..4ea23cc72 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletManageVo.java @@ -24,6 +24,8 @@ public class WalletManageVo extends WalletManageEntity implements BaseUserInterf private String walletTypeIcon; + private String isRule; + /** * 用户相关 */ diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseWalletTypeInterface.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseWalletTypeInterface.java index 8c2ff646b..9efc401fd 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseWalletTypeInterface.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/base/BaseWalletTypeInterface.java @@ -17,4 +17,8 @@ public interface BaseWalletTypeInterface { String getWalletTypeIcon(); void setWalletTypeIcon(String walletTypeIcon); + + String getIsRule(); + + void setIsRule(String isRule); } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeApplyVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeApplyVo.java index d8a5c8c77..929716217 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeApplyVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeApplyVo.java @@ -19,6 +19,8 @@ public class WalletRechargeApplyVo extends WalletRechargeApplyEntity implements private String walletTypeIcon; + private String isRule; + /** * 用户相关 */ diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeImportVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeImportVo.java index 6a37a72f1..d864f22b7 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeImportVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/recharge/WalletRechargeImportVo.java @@ -57,6 +57,8 @@ public class WalletRechargeImportVo extends WalletRechargeImportEntity implement private String importTimeStr; + private String isRule; + /** * 导出相关 */ diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/transaction/WalletTransactionVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/transaction/WalletTransactionVo.java index 96b122b2a..64fea7535 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/transaction/WalletTransactionVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/transaction/WalletTransactionVo.java @@ -71,6 +71,8 @@ public class WalletTransactionVo extends WalletTransactionEntity implements Base private String walletTypeIcon; + private String isRule; + /** * 订单相关 */ 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 4d2ef56b3..3f204b3b8 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 @@ -190,6 +190,13 @@ public class WalletManageController { return R.ok(walletManageService.getWallet(id)); } + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/join/{id}") + @PreAuthorize("@pms.hasPermission('wallet_walletManage_view')") + public R joinDetail(@PathVariable("id") Long id) { + return R.ok(walletManageService.join(null, id)); + } + @Operation(summary = "新增钱包管理", description = "新增钱包管理") @SysLog("新增钱包管理") @PostMapping 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 f4976cf1c..038263a16 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 @@ -17,67 +17,42 @@ public interface WalletManageService extends IService { /** * 创建钱包 - * - * @param userId - * @param checkPermission */ void createWallet(@NotNull Long userId, @NotNull Boolean checkPermission); /** * 创建钱包 - * - * @param userId */ void createWallet(@NotNull Long userId); /** * 获取钱包没有就创建用户钱包(没有缓存) - * - * @param userId */ WalletManageEntity getOrCreateWallet(@NotNull Long userId, @NotNull WalletTypeEnum walletTypeCode); /** * 获取钱包(没有缓存) - * - * @param userId - * @param walletTypeCode - * @return */ WalletManageEntity getWallet(@NotNull Long userId, @NotNull WalletTypeEnum walletTypeCode); - /** * 获取钱包(没有缓存) - * - * @param cardNumber - * @return */ WalletManageEntity getWallet(@NotNull String cardNumber); /** * 获取钱包(没有缓存) - * - * @param userId - * @param walletTypeId - * @return */ WalletManageEntity getWallet(@NotNull Long userId, @NotNull Long walletTypeId); /** * 获取钱包(有缓存) - * - * @param walletId - * @return */ WalletManageEntity getWallet(@NotNull Long walletId); /** * 根据用户id删除用户钱包 - * - * @param userIds - * @return */ Boolean delWalletByUserIds(List<@NotNull Long> userIds); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletManageServiceImpl.java index e90f18484..3773f3e85 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 @@ -254,7 +254,7 @@ public class WalletManageServiceImpl extends ServiceImpl list, WalletRuleJoinDto dto) { if (ObjectUtil.isEmpty(list)) return; // 部门 + list.forEach(v -> v.setDeptId(v.getTargetDeptId())); List deptIds = list.stream().map(WalletRuleJoinVo::getTargetDeptId).distinct().toList(); R> deptList = remoteDeptService.getDeptByDeptIds(deptIds); if (ObjectUtil.isNotEmpty(deptList.getData())) { From 3abb866eb1d84a35b617fa78234d343b497101b7 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 31 Mar 2025 19:26:04 +0800 Subject: [PATCH 3/5] 111 --- .../service/impl/SysUserServiceImpl.java | 21 ++++++------ .../dto/WalletTransactionSumAndCountDto.java | 2 ++ .../vo/rule/WalletRuleJoinUserConfigVo.java | 32 +++++++++++++++++++ .../rule/WalletRuleJoinController.java | 9 +++++- .../wallet/service/WalletRuleJoinService.java | 8 +++-- .../impl/rule/WalletRuleJoinServiceImpl.java | 19 +++++++++++ .../mapper/WalletTransactionMapper.xml | 3 ++ 7 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java 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 7a2d19b04..4066c95a9 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 @@ -543,9 +543,9 @@ public class SysUserServiceImpl extends ServiceImpl impl String userDefaultRole = ParamResolver.getStr("USER_DEFAULT_ROLE"); List roleIds = roleList.stream().filter(v -> ObjectUtil.equals(v.getRoleCode(), walletAutoCreate) || ObjectUtil.equals(v.getRoleCode(), userDefaultRole)).map(SysRole::getRoleId).toList(); // 用户手机号重复判断 - List userPoneList = excelList.stream().map(UserExcelFaceVo::getMobile).toList(); + List userPoneList = excelList.stream().map(UserExcelFaceVo::getMobile).filter(ObjectUtil::isNotEmpty).toList(); // 用户名重复判断 - List usernameList = excelList.stream().map(UserExcelFaceVo::getUsername).toList(); + List usernameList = excelList.stream().map(UserExcelFaceVo::getUsername).filter(ObjectUtil::isNotEmpty).toList(); // 读取图片 Map images = ExcelTool.getPictureFromExcel(file, 1); for (UserExcelFaceVo v : excelList) { @@ -584,15 +584,18 @@ public class SysUserServiceImpl extends ServiceImpl impl // if (ObjectUtil.isEmpty(face)) { // errorMsg.add("人脸照片为空"); // } + if (ObjectUtil.isNotEmpty(v.getMobile())) { + long userPhone = userPoneList.stream().filter(i -> ObjectUtil.equals(i, v.getMobile())).count(); + if (userPhone > 1) { + errorMsg.add("用手机号 <" + v.getMobile() + "> 重复"); + } - long userPhone = userPoneList.stream().filter(i -> ObjectUtil.equals(i, v.getMobile())).count(); - if (userPhone > 1) { - errorMsg.add("用手机号 <" + v.getMobile() + "> 重复"); } - - long repetitionUsername = usernameList.stream().filter(i -> ObjectUtil.equals(i, v.getUsername())).count(); - if (repetitionUsername > 1) { - errorMsg.add("用户名 <" + v.getUsername() + "> 重复"); + if (ObjectUtil.isNotEmpty(v.getUsername())) { + long repetitionUsername = usernameList.stream().filter(i -> ObjectUtil.equals(i, v.getUsername())).count(); + if (repetitionUsername > 1) { + errorMsg.add("用户名 <" + v.getUsername() + "> 重复"); + } } if (CollUtil.isEmpty(errorMsg)) { diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionSumAndCountDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionSumAndCountDto.java index a99570c9a..464b1dfbc 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionSumAndCountDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTransactionSumAndCountDto.java @@ -29,4 +29,6 @@ public class WalletTransactionSumAndCountDto { private Long walletTypeId; + private Long walletId; + } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java new file mode 100644 index 000000000..ea080e56d --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java @@ -0,0 +1,32 @@ +package com.bsd.pjcloud.wallet.api.vo.rule; + +import lombok.Data; + +@Data +public class WalletRuleJoinUserConfigVo { + + /** + * 用户相关 + */ + private Long userId; + + private String username; + + /** + * 钱包相关 + */ + private Long walletId; + + private Long walletTypeId; + + /** + * 总充值余额 + */ + private Long totalTopUpBalance; + + /** + * 总的转账余额 + */ + private Long totalTransferBalance; + +} 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 298329fda..c86a4d33c 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 @@ -60,11 +60,18 @@ public class WalletRuleJoinController { @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("join-detail/{id}") - @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") + // @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") public R joinDetail(@PathVariable("id") Long id) { return R.ok(walletRuleJoinService.joinDetail(id)); } + @Operation(summary = "查询用户转账配置", description = "查询用户转账配置") + @GetMapping("user-config/{walletId}") + // @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") + public R userConfig(@PathVariable("walletId") Long walletId) { + return R.ok(walletRuleJoinService.userConfig(walletId)); + } + @Operation(summary = "新增钱包规则配置", description = "新增钱包规则配置") @SysLog("新增钱包规则配置") @PostMapping 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 764dbca75..63a3aef6a 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 @@ -4,9 +4,8 @@ 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.WalletRuleJoinUserConfigVo; import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; import java.util.ArrayList; @@ -37,4 +36,9 @@ public interface WalletRuleJoinService extends IService { * 复杂详情 */ WalletRuleJoinVo joinDetail(Long id); + + /** + * 用户配置 + */ + WalletRuleJoinUserConfigVo userConfig(Long walletId); } \ 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 d09b784dc..df8438cbf 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 @@ -10,11 +10,16 @@ import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.data.datascope.DataScope; +import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum; +import com.bsd.pjcloud.wallet.api.dto.WalletTransactionSumAndCountDto; 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.WalletManageVo; +import com.bsd.pjcloud.wallet.api.vo.WalletTransactionSumAndCountVo; +import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinUserConfigVo; import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; +import com.bsd.pjcloud.wallet.mapper.WalletTransactionMapper; import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleJoinMapper; import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; import com.bsd.pjcloud.wallet.service.WalletTypeService; @@ -36,6 +41,8 @@ import java.util.Map; @Service public class WalletRuleJoinServiceImpl extends ServiceImpl implements WalletRuleJoinService { + private final WalletTransactionMapper walletTransactionMapper; + private final WalletTypeService walletTypeService; private final RemoteDeptService remoteDeptService; @@ -109,6 +116,18 @@ public class WalletRuleJoinServiceImpl extends ServiceImpl totalTopupVo = walletTransactionMapper.sumAndCount(totalTopupDto); + return null; + } + /** * 是否重复 */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml index 8e0718ab8..2c706c2c5 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml @@ -58,6 +58,9 @@ from wallet_transaction a a.del_flag = 0 and a.dept_id is not null + + a.wallet_id = ${dto.walletId} + From 75814f3876da9e8dcf08c8a2cb73a375d8427da3 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Mon, 31 Mar 2025 19:32:34 +0800 Subject: [PATCH 4/5] 111 --- .../java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java | 1 + 1 file changed, 1 insertion(+) diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java index 4bba10015..71e95df2e 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/mapper/order/HardOrderMapper.java @@ -65,6 +65,7 @@ public interface HardOrderMapper extends PjcloudBaseMapper { .eqIfExists(HardOrderEntity::getPayType, dto.getPayType()) .eqIfExists(HardOrderEntity::getOrderStatus, dto.getOrderStatus()) .in(ObjectUtil.isNotEmpty(dto.getUserIds()), HardOrderEntity::getUserId, dto.getUserIds()) + .in(ObjectUtil.isNotEmpty(dto.getMchTypeCodes()), HardOrderEntity::getMerchantType, dto.getMchTypeCodes()) .orderByDesc(HardOrderEntity::getCreateTime) .orderByDesc(HardOrderEntity::getUserId); return selectJoinPage(page, HardOrderVo.class, wrapper); From 8712745fbd309ed0aba15a73d72df2801f4504ff Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Tue, 1 Apr 2025 12:56:18 +0800 Subject: [PATCH 5/5] =?UTF-8?q?feat:=E9=BB=98=E8=AE=A4=E9=80=89=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pjcloud/wallet/api/dto/MchManageDto.java | 2 + .../pjcloud/wallet/api/dto/WalletTypeDto.java | 2 + .../pjcloud/wallet/api/vo/WalletTypeVo.java | 9 +++ .../vo/rule/WalletRuleJoinUserConfigVo.java | 38 +++++++++-- .../controller/WalletManageController.java | 4 +- .../controller/WalletTypeController.java | 50 ++------------ .../rule/WalletRuleJoinController.java | 8 +-- .../wallet/mapper/MchManageMapper.java | 1 + .../mapper/WalletTransactionMapper.java | 2 + .../wallet/service/WalletManageService.java | 13 +--- .../wallet/service/WalletRuleJoinService.java | 2 +- .../service/impl/WalletManageServiceImpl.java | 23 ++++++- .../impl/rule/WalletRuleJoinServiceImpl.java | 66 +++++++++++++++++-- .../mapper/WalletTransactionMapper.xml | 42 +++++++++++- 14 files changed, 186 insertions(+), 76 deletions(-) create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTypeVo.java diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java index b0d2e3a69..4a3570483 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/MchManageDto.java @@ -18,6 +18,8 @@ public class MchManageDto extends MchManageEntity { private List ids; + private List notIds; + private String type; private Boolean parentIsNull = true; diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTypeDto.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTypeDto.java index 8e1d098e3..76b4e201b 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTypeDto.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/dto/WalletTypeDto.java @@ -10,4 +10,6 @@ public class WalletTypeDto extends WalletTypeEntity { private List walletTypeIds; + private List notWalletTypeIds; + } diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTypeVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTypeVo.java new file mode 100644 index 000000000..a6df5f80f --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/WalletTypeVo.java @@ -0,0 +1,9 @@ +package com.bsd.pjcloud.wallet.api.vo; + +import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; +import lombok.Data; + +@Data +public class WalletTypeVo extends WalletTypeEntity { + +} diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java index ea080e56d..eb181434f 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java @@ -10,23 +10,47 @@ public class WalletRuleJoinUserConfigVo { */ private Long userId; + private Long userDpetId; + private String username; - /** - * 钱包相关 - */ - private Long walletId; + private String userMobile; - private Long walletTypeId; + /** + * 源钱包相关 + */ + private Long sourceWalletId; + + private Integer sourceWalletBalance = 0; + + private Long sourceWalletTypeId; + + private String sourceWalletTypeName; + + /** + * 目标钱包相关 + */ + private Long targetWalletId; + + private Integer targetWalletBalance = 0; + + private Long targetWalletTypeId; + + private String targetWalletTypeName; + + /** + * 可以转账的余额 + */ + private Integer changeTransferBalance = 0; /** * 总充值余额 */ - private Long totalTopUpBalance; + private Long totalTopUpBalance = 0L; /** * 总的转账余额 */ - private Long totalTransferBalance; + private Long totalTransferBalance = 0L; } 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 3f204b3b8..7aca69942 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 @@ -150,7 +150,7 @@ public class WalletManageController { @GetMapping("/app/detail") public R appGetAll(@RequestParam Long walletId) { PjcloudUser user = SecurityUtils.getUser(); - return R.ok(walletManageService.join(user.getId(), walletId)); + return R.ok(walletManageService.join(walletId)); } @GetMapping("/app/get-qr-code") @@ -194,7 +194,7 @@ public class WalletManageController { @GetMapping("/join/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletManage_view')") public R joinDetail(@PathVariable("id") Long id) { - return R.ok(walletManageService.join(null, id)); + return R.ok(walletManageService.join(id)); } @Operation(summary = "新增钱包管理", description = "新增钱包管理") diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java index f5538a2af..fcd6c2f27 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTypeController.java @@ -2,11 +2,13 @@ package com.bsd.pjcloud.wallet.controller; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsd.pjcloud.common.core.util.R; import com.bsd.pjcloud.common.log.annotation.SysLog; +import com.bsd.pjcloud.wallet.api.dto.WalletTypeDto; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.service.WalletTypeService; import org.springframework.security.access.prepost.PreAuthorize; @@ -37,40 +39,24 @@ public class WalletTypeController { private final WalletTypeService walletTypeService; - /** - * 分页查询 - * - * @param page 分页对象 - * @param walletType 钱包类型 - * @return - */ @Operation(summary = "分页查询", description = "分页查询") @GetMapping("/page") @PreAuthorize("@pms.hasPermission('wallet_walletType_view')") - public R getWalletTypePage(@ParameterObject Page page, @ParameterObject WalletTypeEntity walletType) { + public R getWalletTypePage(@ParameterObject Page page, @ParameterObject WalletTypeDto dto) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.orderByDesc(WalletTypeEntity::getCreateTime); return R.ok(walletTypeService.page(page, wrapper)); } - /** - * 查询下拉 - */ @Operation(summary = "查询下拉", description = "查询下拉") @GetMapping("/select") - public R> walletList(@ParameterObject Page page) { + public R> walletList(@ParameterObject Page page, @ParameterObject WalletTypeDto dto) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.orderByDesc(WalletTypeEntity::getCreateTime); + wrapper.notIn(ObjectUtil.isNotEmpty(dto.getNotWalletTypeIds()), WalletTypeEntity::getId, dto.getNotWalletTypeIds()); return R.ok(walletTypeService.page(page, wrapper)); } - - /** - * 通过id查询钱包类型 - * - * @param id id - * @return R - */ @Operation(summary = "通过id查询", description = "通过id查询") @GetMapping("/{id}") @PreAuthorize("@pms.hasPermission('wallet_walletType_view')") @@ -78,12 +64,6 @@ public class WalletTypeController { return R.ok(walletTypeService.getById(id)); } - /** - * 新增钱包类型 - * - * @param dto 钱包类型 - * @return R - */ @Operation(summary = "新增钱包类型", description = "新增钱包类型") @SysLog("新增钱包类型") @PostMapping @@ -93,12 +73,6 @@ public class WalletTypeController { return R.ok(true); } - /** - * 修改钱包类型 - * - * @param dto 钱包类型 - * @return R - */ @Operation(summary = "修改钱包类型", description = "修改钱包类型") @SysLog("修改钱包类型") @PutMapping @@ -108,12 +82,6 @@ public class WalletTypeController { return R.ok(true); } - /** - * 通过id删除钱包类型 - * - * @param ids id列表 - * @return R - */ @Operation(summary = "通过id删除钱包类型", description = "通过id删除钱包类型") @SysLog("通过id删除钱包类型") @DeleteMapping @@ -122,14 +90,6 @@ public class WalletTypeController { return R.ok(walletTypeService.removeBatchByIds(CollUtil.toList(ids))); } - - /** - * 导出excel 表格 - * - * @param walletType 查询条件 - * @param ids 导出指定ID - * @return excel 文件流 - */ @ResponseExcel @GetMapping("/export") @PreAuthorize("@pms.hasPermission('wallet_walletType_export')") 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 c86a4d33c..f4b09a5d6 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 @@ -59,17 +59,17 @@ public class WalletRuleJoinController { } @Operation(summary = "通过id查询", description = "通过id查询") - @GetMapping("join-detail/{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 = "查询用户转账配置") - @GetMapping("user-config/{walletId}") + @GetMapping("/user-config") // @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") - public R userConfig(@PathVariable("walletId") Long walletId) { - return R.ok(walletRuleJoinService.userConfig(walletId)); + public R userConfig(@RequestParam Long userId, @RequestParam Long sourceWalletTypeId, @RequestParam Long targetWalletTypeId) { + return R.ok(walletRuleJoinService.userConfig(userId, sourceWalletTypeId, targetWalletTypeId)); } @Operation(summary = "新增钱包规则配置", description = "新增钱包规则配置") 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 69ed9ab43..b8546cfed 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 @@ -71,6 +71,7 @@ public interface MchManageMapper extends PjcloudBaseMapper { .like(ObjectUtil.isNotEmpty(dto.getName()), MchManageEntity::getName, dto.getName()) .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), MchManageEntity::getDeptId, dto.getDeptIds()) .in(ObjectUtil.isNotEmpty(dto.getIds()), MchManageEntity::getId, dto.getIds()) + .in(ObjectUtil.isNotEmpty(dto.getNotIds()), MchManageEntity::getId, dto.getNotIds()) .orderByDesc(MchManageEntity::getSort) .orderByDesc(MchManageEntity::getDeptId) .orderByDesc(MchManageEntity::getCreateTime); diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java index f4f2db308..dcb2c0416 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/mapper/WalletTransactionMapper.java @@ -106,5 +106,7 @@ public interface WalletTransactionMapper extends PjcloudBaseMapper userIdList); + WalletTransactionSumAndCountVo sumAndCountUser(@Param("dto") WalletTransactionSumAndCountDto dto); + List sumAndCount(@Param("dto") WalletTransactionSumAndCountDto dto); } \ 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 038263a16..ab9ab2751 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 @@ -64,29 +64,22 @@ public interface WalletManageService extends IService { List scopeQbList(WalletManageBalanceDto dto, DataScope dataScope); - WalletManageVo join(Long user, Long walletId); + WalletManageVo join(Long walletId); + + WalletManageVo join(Long user, Long walletTypeId); /** * 生成钱包二维码参数 - * - * @param walletId 钱包id */ String getQrCode(Long walletId); /** * 导出 - * - * @param response - * @param dto */ void export(HttpServletResponse response, Page page, WalletManageDto dto); /** * 钱包记录导出 - * - * @param response - * @param page - * @param dto */ void exportQb(HttpServletResponse response, Page page, WalletManageBalanceDto dto); 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 63a3aef6a..a8aafbf26 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 @@ -40,5 +40,5 @@ public interface WalletRuleJoinService extends IService { /** * 用户配置 */ - WalletRuleJoinUserConfigVo userConfig(Long walletId); + WalletRuleJoinUserConfigVo userConfig(Long userId, Long sourceWalletTypeId, Long targetWalletTypeId); } \ 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 3773f3e85..0a3ce6c91 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 @@ -250,7 +250,7 @@ public class WalletManageServiceImpl extends ServiceImpl scopeQbPage(Page page, WalletManageBalanceDto dto, DataScope dataScope) { WalletManageDto walletDto = BeanUtils.toBean(dto, WalletManageDto.class); 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 df8438cbf..b45806ca7 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 @@ -4,8 +4,10 @@ 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.admin.api.dto.UserInfo; import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; +import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.R; @@ -13,6 +15,7 @@ import com.bsd.pjcloud.common.data.datascope.DataScope; import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum; import com.bsd.pjcloud.wallet.api.dto.WalletTransactionSumAndCountDto; import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleJoinDto; +import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity; import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity; import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleJoinEntity; import com.bsd.pjcloud.wallet.api.vo.WalletManageVo; @@ -21,6 +24,7 @@ import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinUserConfigVo; import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinVo; import com.bsd.pjcloud.wallet.mapper.WalletTransactionMapper; import com.bsd.pjcloud.wallet.mapper.rule.WalletRuleJoinMapper; +import com.bsd.pjcloud.wallet.service.WalletManageService; import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; import com.bsd.pjcloud.wallet.service.WalletTypeService; import lombok.RequiredArgsConstructor; @@ -44,8 +48,10 @@ public class WalletRuleJoinServiceImpl extends ServiceImpl totalTopupVo = walletTransactionMapper.sumAndCount(totalTopupDto); - return null; + totalTopupDto.setWalletTypeId(sourceWalletTypeId); + WalletTransactionSumAndCountVo totalTopupVo = walletTransactionMapper.sumAndCountUser(totalTopupDto); + if (ObjectUtil.isNotEmpty(totalTopupVo) && ObjectUtil.isNotEmpty(totalTopupVo.getSum())) { + configVo.setTotalTopUpBalance(totalTopupVo.getSum()); + } + // 查询总的转账余额 + WalletTransactionSumAndCountDto transferBalanceDto = new WalletTransactionSumAndCountDto(); + totalTopupDto.setBizTypes(List.of(WalletBizEnum.TRANSFER_ACCOUNTS.getCode())); + totalTopupDto.setType(WalletTransactionSumAndCountDto.TYPE_INCOME); + totalTopupDto.setWalletTypeId(targetWalletTypeId); + WalletTransactionSumAndCountVo transferBalanceVo = walletTransactionMapper.sumAndCountUser(transferBalanceDto); + if (ObjectUtil.isNotEmpty(transferBalanceVo)) { + configVo.setTotalTransferBalance(transferBalanceVo.getSum()); + } + // 转账百分比配置 + // 查询用户 + UserInfo userInfo = remoteUserService.getByUserId(sourceWallet.getUserId()).getData(); + if (ObjectUtil.isEmpty(userInfo)) { + throw new RuntimeException("用户不存在"); + } + configVo.setUserId(userInfo.getSysUser().getUserId()); + configVo.setUserDpetId(userInfo.getSysUser().getDeptId()); + configVo.setUsername(userInfo.getSysUser().getName()); + configVo.setUserMobile(userInfo.getSysUser().getPhone()); + WalletRuleJoinEntity walletRuleJoin = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(WalletRuleJoinEntity::getSourceWalletTypeId, sourceWallet.getWalletTypeId()) + .eq(WalletRuleJoinEntity::getTargetWalletTypeId, targetWallet.getWalletTypeId()) + .eq(WalletRuleJoinEntity::getTargetDeptId, userInfo.getSysUser().getDeptId()) + ); + if (ObjectUtil.isEmpty(walletRuleJoin)) { + // 查询部门 + SysDept sysDept = remoteDeptService.getDeptByDeptId(userInfo.getSysUser().getDeptId()).getData(); + throw new RuntimeException("该用户所属的部门<" + sysDept.getName() + ">未配置钱包规则"); + } + return configVo; } /** diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml index 2c706c2c5..e0bc3bacc 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/resources/mapper/WalletTransactionMapper.xml @@ -16,7 +16,6 @@ - + + \ No newline at end of file