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-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); 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..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 @@ -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).filter(ObjectUtil::isNotEmpty).toList(); + // 用户名重复判断 + List usernameList = excelList.stream().map(UserExcelFaceVo::getUsername).filter(ObjectUtil::isNotEmpty).toList(); // 读取图片 Map images = ExcelTool.getPictureFromExcel(file, 1); for (UserExcelFaceVo v : excelList) { @@ -576,9 +581,23 @@ 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("人脸照片为空"); + // } + if (ObjectUtil.isNotEmpty(v.getMobile())) { + long userPhone = userPoneList.stream().filter(i -> ObjectUtil.equals(i, v.getMobile())).count(); + if (userPhone > 1) { + errorMsg.add("用手机号 <" + v.getMobile() + "> 重复"); + } + } + 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)) { insertExcelUser(v, deptId, roleIds, face); } else { @@ -638,7 +657,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/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/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/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/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/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/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/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..eb181434f --- /dev/null +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/vo/rule/WalletRuleJoinUserConfigVo.java @@ -0,0 +1,56 @@ +package com.bsd.pjcloud.wallet.api.vo.rule; + +import lombok.Data; + +@Data +public class WalletRuleJoinUserConfigVo { + + /** + * 用户相关 + */ + private Long userId; + + private Long userDpetId; + + private String username; + + private String userMobile; + + /** + * 源钱包相关 + */ + 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 = 0L; + + /** + * 总的转账余额 + */ + private Long totalTransferBalance = 0L; + +} 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-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..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") @@ -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(id)); + } + @Operation(summary = "新增钱包管理", description = "新增钱包管理") @SysLog("新增钱包管理") @PostMapping 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 6298c7ca8..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,18 +59,26 @@ public class WalletRuleJoinController { } @Operation(summary = "通过id查询", description = "通过id查询") - @GetMapping("join-detail/{id}") - @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") + @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") + // @PreAuthorize("@pms.hasPermission('dzc_walletRuleMchConfig_view')") + public R userConfig(@RequestParam Long userId, @RequestParam Long sourceWalletTypeId, @RequestParam Long targetWalletTypeId) { + return R.ok(walletRuleJoinService.userConfig(userId, sourceWalletTypeId, targetWalletTypeId)); + } + @Operation(summary = "新增钱包规则配置", description = "新增钱包规则配置") @SysLog("新增钱包规则配置") @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/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 f4976cf1c..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 @@ -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); @@ -89,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 0a4660b7e..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 @@ -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; @@ -21,7 +20,7 @@ public interface WalletRuleJoinService extends IService { /** * 新增 */ - Long create(WalletRuleJoinEntity dto); + void create(WalletRuleJoinDto dto); /** * 修改 @@ -37,4 +36,9 @@ public interface WalletRuleJoinService extends IService { * 复杂详情 */ WalletRuleJoinVo joinDetail(Long id); + + /** + * 用户配置 + */ + 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 e90f18484..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,11 +250,11 @@ 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 9813f3ff6..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,12 +4,27 @@ 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; 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; +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.WalletManageService; import com.bsd.pjcloud.wallet.service.WalletRuleJoinService; import com.bsd.pjcloud.wallet.service.WalletTypeService; import lombok.RequiredArgsConstructor; @@ -18,6 +33,8 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.util.ArrayList; +import java.util.List; +import java.util.Map; /** * 钱包规则配置 @@ -28,33 +45,45 @@ import java.util.ArrayList; @Service public class WalletRuleJoinServiceImpl extends ServiceImpl implements WalletRuleJoinService { + private final WalletTransactionMapper walletTransactionMapper; + private final WalletTypeService walletTypeService; + private final WalletManageService walletManageService; + + private final RemoteDeptService remoteDeptService; + private final RemoteUserService remoteUserService; /** * 权限分页查询 */ @Override public Page 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); } /** @@ -93,6 +122,68 @@ public class WalletRuleJoinServiceImpl extends ServiceImpl() + .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; + } + /** * 是否重复 */ @@ -118,4 +209,15 @@ public class WalletRuleJoinServiceImpl 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())) { + DataUtil.convertDeptList(list, deptList.getData()); + } + } } \ No newline at end of file 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..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