From fbed0598a846d327fd69260bab7555b7d1eb4628 Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Mon, 19 May 2025 09:51:31 +0800
Subject: [PATCH 1/4] =?UTF-8?q?feat:=E9=A3=9F=E5=A0=82=E6=90=9C=E7=B4=A2?=
=?UTF-8?q?=E6=9D=A1=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java | 2 ++
.../src/main/resources/mapper/order/HardCarMapper.xml | 3 +++
2 files changed, 5 insertions(+)
diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java
index eb65e6775..e246c21de 100644
--- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java
+++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/dto/order/HardCarDto.java
@@ -19,4 +19,6 @@ public class HardCarDto extends HardCarEntity {
private String hourType;
+ private Long merchantId;
+
}
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml
index 048463a03..35e52ed68 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardCarMapper.xml
@@ -138,6 +138,9 @@
and o.hour_type = #{dto.hourType}
+
+ and o.merchant_id = #{dto.merchantId}
+
group by a.product_id
order by SUM(a.product_count) desc
From 80e859781b2bfc2705bedc09092f87a41d4c884b Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Mon, 19 May 2025 17:42:40 +0800
Subject: [PATCH 2/4] =?UTF-8?q?feat:=E7=A6=BB=E8=81=8C=E8=87=AA=E5=8A=A8?=
=?UTF-8?q?=E8=BD=AC=E8=B4=A6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
db/800pjcloudx_wallet.sql | 1 +
.../controller/order/HardOrderController.java | 2 +-
.../order/HardOrderTotalController.java | 4 +-
.../service/impl/spu/HardSpuServiceImpl.java | 3 +-
.../api/feign/RemoteUserTransaction.java | 17 +++++
...mework.cloud.openfeign.FeignClient.imports | 1 +
.../SysUserTransactionController.java | 7 ++
.../mapper/SysUserTransactionMapper.java | 4 ++
.../service/SysUserTransactionService.java | 5 ++
.../impl/SysUserTransactionServiceImpl.java | 66 +++++++++++++++++++
.../mapper/SysUserTransactionMapper.xml | 24 ++++++-
.../pjcloud/daemon/quartz/task/UmpsTask.java | 35 ++++++++++
.../rule/WalletRuleTransationTypeEnum.java | 35 ++++++++++
.../rule/WalletRuleTransactionEntity.java | 6 ++
.../RemoteWalletRuleTransactionService.java | 21 ++++++
...mework.cloud.openfeign.FeignClient.imports | 1 +
.../controller/WalletManageController.java | 3 +-
.../WalletTransactionController.java | 3 +-
.../rule/WalletRuleTransactionController.java | 12 ++++
.../service/WalletRuleTransactionService.java | 5 ++
.../WalletRuleTransactionServiceImpl.java | 53 +++++++++++++++
.../rule/WalletRuleTransactionMapper.xml | 6 +-
22 files changed, 303 insertions(+), 11 deletions(-)
create mode 100644 pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteUserTransaction.java
create mode 100644 pjcloud-visual/pjcloud-daemon-quartz/src/main/java/com/bsd/pjcloud/daemon/quartz/task/UmpsTask.java
create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/rule/WalletRuleTransationTypeEnum.java
create mode 100644 pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteWalletRuleTransactionService.java
diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql
index 90511ebe5..b8bcbc595 100644
--- a/db/800pjcloudx_wallet.sql
+++ b/db/800pjcloudx_wallet.sql
@@ -259,6 +259,7 @@ DROP TABLE IF EXISTS wallet_rule_transaction;
CREATE TABLE wallet_rule_transaction
(
id BIGINT(19) not null comment '主键',
+ biz_type VARCHAR(32) default 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 '源钱包余额',
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 f2a7e616b..ac7c979e2 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
@@ -143,7 +143,7 @@ public class HardOrderController {
// 判断是否为合作超市管理员工
if (!hardManagerService.isSuperMarketAdmin(user)) return R.ok(new Page());
// 查询用户属于的商户
- MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId(), MerchantTypeEnum.CANTEEN).getData();
+ MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId(), MerchantTypeEnum.SUPERMARKET).getData();
if (ObjectUtil.isEmpty(mch)) throw new RuntimeException("该用户下不存在商户");
// 查询商户和下面的子商户
List mchDtoIds = new java.util.ArrayList<>(List.of(mch.getId()));
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java
index 7d55dd36b..a94a150da 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/order/HardOrderTotalController.java
@@ -75,7 +75,7 @@ public class HardOrderTotalController {
// 判断是否为合作超市管理员工
if (!hardManagerService.isSuperMarketAdmin(user)) return R.ok(new Page());
// 查询用户属于的商户
- MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId(), MerchantTypeEnum.CANTEEN).getData();
+ MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId(), MerchantTypeEnum.SUPERMARKET).getData();
if (ObjectUtil.isEmpty(mch)) throw new RuntimeException("该用户下不存在商户");
List mchDtoIds = new ArrayList<>(List.of(mch.getId()));
// 查询商户和下面的子商户
@@ -97,7 +97,7 @@ public class HardOrderTotalController {
// 判断是否为合作超市管理员工
if (!hardManagerService.isSuperMarketAdmin(user)) return R.ok(new Page());
// 查询用户属于的商户
- MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId(), MerchantTypeEnum.CANTEEN).getData();
+ MchManageVo mch = mchService.getFirstMchByDeptId(userInfo.getSysUser().getDeptId(), MerchantTypeEnum.SUPERMARKET).getData();
if (ObjectUtil.isEmpty(mch)) throw new RuntimeException("该用户下不存在商户");
List mchDtoIds = new ArrayList<>(List.of(mch.getId()));
// 查询商户和下面的子商户
diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java
index 1621aa9e4..d1bb409bf 100644
--- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java
+++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/spu/HardSpuServiceImpl.java
@@ -115,7 +115,8 @@ public class HardSpuServiceImpl extends ServiceImpl {
Page scopePageJoin(Page page, @Param("dto") SysUserTransactionDto dto, DataScope dataScope);
SysUserTransactionVo join(@Param("id") Long userTransactionId);
+
+ List lastTransationList(@Param("dateStr") String dateStr);
}
\ No newline at end of file
diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserTransactionService.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserTransactionService.java
index 28988cb2d..e9d2c0bb6 100644
--- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserTransactionService.java
+++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/SysUserTransactionService.java
@@ -38,4 +38,9 @@ public interface SysUserTransactionService extends IService list = baseMapper.lastTransationList(dateStr);
+ if (ObjectUtil.isEmpty(list)) {
+ log.info("|{}|离职退休自动转到消费钱包,没有需要处理的数据", TAG);
+ return;
+ }
+ // 用户转账逻辑,把饭卡钱包的钱自动转入到消费钱包
+
+ // 离职人员部门id
+ List leaveDeptIds = List.of(ParamResolver.getStr("USER_TRANSACTION_LEAVE"), ParamResolver.getStr("USER_TRANSACTION_TRANSFER"));
+ List updateList = new ArrayList<>();
+ for (SysUserTransactionEntity v : list) {
+ try {
+ // 判断用户是否有"自动创建钱包权限"
+ SysUser user = sysUserService.getOne(Wrappers.query().lambda().eq(SysUser::getUserId, v.getUserId()));
+ if (ObjectUtil.isEmpty(user)) {
+ log.error("|{}|离职退休自动转到消费钱包,用户<{}>不存在", TAG, v.getUserId());
+ continue;
+ }
+ UserInfo userInfo = sysUserService.findUserInfo(user);
+ String[] roleCodes = userInfo.getRoleCodes();
+ if (!ArrayUtil.contains(roleCodes, CommonRoleConstant.AUTO_CREATE_WALLET)) {
+ log.error("|{}|离职退休自动转到消费钱包,用户<{}>没有自动创建钱包权限", TAG, v.getUserId());
+ continue;
+ }
+ // 判断用户现在是否在退休或者离职部门
+ if (!ArrayUtil.contains(leaveDeptIds.toArray(), String.valueOf(user.getDeptId()))) {
+ log.error("|{}|离职退休自动转到消费钱包,用户<{}>不是离职或者退休部门", TAG, v.getUserId());
+ continue;
+ }
+ // 执行转账逻辑
+ Boolean success = walletRuleTransactionService.userAutoWalletTransation(v.getUserId()).getData();
+ if (success) {
+ SysUserTransactionEntity updateObj = new SysUserTransactionEntity();
+ updateObj.setId(v.getId());
+ updateObj.setWalletTransactionTime(LocalDateTime.now());
+ updateList.add(updateObj);
+ }
+ } catch (Exception e) {
+ log.error("|{}|离职退休自动转到消费钱包,用户<{}>自动转账失败,error:{}", TAG, v.getUserId(), e.getMessage());
+ e.printStackTrace();
+ }
+ }
+ if (ObjectUtil.isNotEmpty(updateList)) {
+ baseMapper.updateById(updateList);
+ }
+ }
}
\ No newline at end of file
diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml
index 568235e56..9e22075e8 100644
--- a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml
+++ b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml
@@ -73,7 +73,8 @@
and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]}
- and a.wallet_transaction_time between #{dto.walletTransactionTimeList[0]} and #{dto.walletTransactionTimeList[1]}
+ and a.wallet_transaction_time between #{dto.walletTransactionTimeList[0]} and
+ #{dto.walletTransactionTimeList[1]}
and a.create_time between #{dto.processTimeList[0]} and #{dto.processTimeList[1]}
@@ -97,7 +98,7 @@
+
+
\ No newline at end of file
diff --git a/pjcloud-visual/pjcloud-daemon-quartz/src/main/java/com/bsd/pjcloud/daemon/quartz/task/UmpsTask.java b/pjcloud-visual/pjcloud-daemon-quartz/src/main/java/com/bsd/pjcloud/daemon/quartz/task/UmpsTask.java
new file mode 100644
index 000000000..22cc4a5ef
--- /dev/null
+++ b/pjcloud-visual/pjcloud-daemon-quartz/src/main/java/com/bsd/pjcloud/daemon/quartz/task/UmpsTask.java
@@ -0,0 +1,35 @@
+package com.bsd.pjcloud.daemon.quartz.task;
+
+
+import com.bsd.pjcloud.admin.api.feign.RemoteUserTransaction;
+import com.bsd.pjcloud.daemon.quartz.constants.PjcloudQuartzEnum;
+import lombok.AllArgsConstructor;
+import lombok.SneakyThrows;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import java.time.LocalDateTime;
+
+@Slf4j
+@Component("umps")
+@AllArgsConstructor
+public class UmpsTask {
+
+ private final RemoteUserTransaction remoteUserTransaction;
+
+ /**
+ * 离职退休自动转到消费钱包
+ */
+ @SneakyThrows
+ public String userWalletTransaction(String para) {
+ log.info("离职退休自动转到消费钱包:{},输入参数{}", LocalDateTime.now(), para);
+ try {
+ remoteUserTransaction.walletTransationCallback(para);
+ log.info("离职退休自动转到消费钱包成功:{}", LocalDateTime.now());
+ } catch (Exception e) {
+ log.error("离职退休自动转到消费钱包错误error:{},时间:{}", e.getMessage(), LocalDateTime.now(), e);
+ }
+ return PjcloudQuartzEnum.JOB_LOG_STATUS_SUCCESS.getType();
+ }
+
+}
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/rule/WalletRuleTransationTypeEnum.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/rule/WalletRuleTransationTypeEnum.java
new file mode 100644
index 000000000..3501b0a3a
--- /dev/null
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/constant/rule/WalletRuleTransationTypeEnum.java
@@ -0,0 +1,35 @@
+package com.bsd.pjcloud.wallet.api.constant.rule;
+
+import cn.hutool.core.util.ObjectUtil;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+
+/**
+ * 用户转账类型
+ */
+@Getter
+@AllArgsConstructor
+public enum WalletRuleTransationTypeEnum {
+
+ USER_CHANGE("10", "用户手动转账"),
+ LEAVE_AUTO("20", "离职退休自动转账"),
+ ;
+
+ private final String code;
+ private final String desc;
+
+ public static WalletRuleTransationTypeEnum valueOfByType(String code) {
+ return Arrays.stream(WalletRuleTransationTypeEnum.values())
+ .filter(v -> ObjectUtil.equal(v.getCode(), code))
+ .findFirst().get();
+ }
+
+ public static WalletRuleTransationTypeEnum descOf(String description) {
+ return Arrays.stream(WalletRuleTransationTypeEnum.values())
+ .filter(v -> ObjectUtil.equal(v.getDesc(), description))
+ .findFirst().get();
+ }
+
+}
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 3f4f83dbf..2e0e899bb 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
@@ -27,6 +27,12 @@ public class WalletRuleTransactionEntity extends Model userAutoWalletTransation(@RequestParam Long userId);
+
+}
diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports b/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports
index c093ca935..340953b8b 100644
--- a/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports
+++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/resources/META-INF/spring/org.springframework.cloud.openfeign.FeignClient.imports
@@ -2,6 +2,7 @@ com.bsd.pjcloud.wallet.api.feign.RemoteWalletService
com.bsd.pjcloud.wallet.api.feign.RemoteMchRuleJoinService
com.bsd.pjcloud.wallet.api.feign.RemoteCodeUseService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletRechargeService
+com.bsd.pjcloud.wallet.api.feign.RemoteWalletRuleTransactionService
com.bsd.pjcloud.wallet.api.feign.RemoteMchService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletSettingService
com.bsd.pjcloud.wallet.api.feign.RemoteWalletThirdZyService
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 757b02e1b..ec4fc31d3 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
@@ -160,8 +160,7 @@ public class WalletManageController {
PjcloudUser user = SecurityUtils.getUser();
WalletManageDto dto = new WalletManageDto();
dto.setUserId(user.getId());
- DataScope dataScope = new DataScope();
- dataScope.func(DataScopeFuncEnum.ALL);
+ DataScope dataScope = null;
return R.ok(walletManageService.scopePageList(page, dto, dataScope));
}
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java
index 59ba83ba3..f07c6b76d 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/WalletTransactionController.java
@@ -79,8 +79,7 @@ public class WalletTransactionController {
public R appGetAll(@ParameterObject Page page, @ParameterObject WalletTransactionDto dto) {
PjcloudUser user = SecurityUtils.getUser();
dto.setUserId(user.getId());
- DataScope dataScope = new DataScope();
- dataScope.func(DataScopeFuncEnum.ALL);
+ DataScope dataScope = null;
return R.ok(walletTransactionService.scopePageList(page, dto, dataScope));
}
/* ************************************* end app 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 16dcb7f0d..0ab63623c 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
@@ -13,6 +13,7 @@ import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.common.data.datascope.DataScopeFuncEnum;
import com.bsd.pjcloud.common.idempotent.annotation.Idempotent;
import com.bsd.pjcloud.common.log.annotation.SysLog;
+import com.bsd.pjcloud.common.security.annotation.Inner;
import com.bsd.pjcloud.common.security.service.PjcloudUser;
import com.bsd.pjcloud.common.security.util.SecurityUtils;
import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum;
@@ -50,6 +51,17 @@ public class WalletRuleTransactionController {
private final WalletRuleTransactionService walletRuleTransactionService;
private final WalletTypeService walletTypeService;
+ /* ************************************* start 远程调用 start ************************************* */
+
+ @Inner
+ @Operation(summary = "离职退休自动转到消费钱包", description = "离职退休自动转到消费钱包")
+ @PostMapping("/inner/auto-transation")
+ public R userAutoWalletTransation(@RequestParam Long userId) {
+ return R.ok(walletRuleTransactionService.userAutoWalletTransation(userId));
+ }
+
+ /* ************************************* end 远程调用 end ************************************* */
+
/* ************************************* start app start ************************************* */
@Operation(summary = "app转账", description = "app转账")
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 354858a87..dc5298f9f 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
@@ -16,6 +16,11 @@ public interface WalletRuleTransactionService extends IService scopePageList(Page page, WalletRuleTransactionDto dto, DataScope dataScope);
+ /**
+ * 离职退休自动转到消费钱包
+ */
+ Boolean userAutoWalletTransation(Long userId);
+
/**
* 转账
*/
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 82f250e76..0d22c7d67 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
@@ -11,8 +11,10 @@ import com.bsd.pjcloud.common.core.util.CollectionUtils;
import com.bsd.pjcloud.common.data.datascope.DataScope;
import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum;
import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum;
+import com.bsd.pjcloud.wallet.api.constant.rule.WalletRuleTransationTypeEnum;
import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleTransactionDto;
import com.bsd.pjcloud.wallet.api.dto.rule.WalletRuleTransferAccountsDto;
+import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity;
import com.bsd.pjcloud.wallet.api.entity.rule.WalletRuleTransactionEntity;
import com.bsd.pjcloud.wallet.api.vo.WalletManageVo;
import com.bsd.pjcloud.wallet.api.vo.rule.WalletRuleJoinUserConfigVo;
@@ -41,6 +43,8 @@ import java.util.List;
@Service
public class WalletRuleTransactionServiceImpl extends ServiceImpl implements WalletRuleTransactionService {
+ static private final String TAG = "钱包转账记录";
+
private final WalletRuleJoinService walletRuleJoinService;
private final WalletManageService walletManageService;
private final WalletTransactionService walletTransactionService;
@@ -57,6 +61,54 @@ public class WalletRuleTransactionServiceImpl extends ServiceImpl userConfig.getMaxTransferBalance()) {
throw new RuntimeException("已经超过最大转账金额限制");
}
+ entity.setBizType(WalletRuleTransationTypeEnum.USER_CHANGE.getCode());
entity.setSourceWalletId(userConfig.getSourceWalletId());
entity.setTargetWalletId(userConfig.getTargetWalletId());
entity.setSourceWalletBalance(userConfig.getSourceWalletBalance());
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 c09fe7df2..b4749d032 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
@@ -23,6 +23,7 @@
select a.id,
+ a.biz_type,
a.source_wallet_id,
a.target_wallet_id,
a.source_wallet_balance,
@@ -42,6 +43,9 @@
a.del_flag = 0
+
+ and a.biz_type = #{dto.bizType}
+
and a.source_wallet_id = #{dto.sourceWalletId}
@@ -68,7 +72,7 @@
targetWalletType.name as targetWalletTypeName,
targetWalletType.unique_code as targetWalletTypeCode
from wallet_rule_transaction a
- left join wallet_transaction t on t.biz_id = a.id and biz_type = '6'
+ left join wallet_transaction t on t.biz_id = a.id and t.biz_type = '6'
left join wallet_manage sourceWallet on sourceWallet.id = a.source_wallet_id
left join wallet_type sourceWalletType on sourceWalletType.id = sourceWallet.wallet_type_id
left join wallet_manage targetWallet on targetWallet.id = a.target_wallet_id
From d7615c1bdee44674279b22dc12078a9b4f909151 Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Mon, 19 May 2025 19:02:36 +0800
Subject: [PATCH 3/4] =?UTF-8?q?feat:=E8=BD=AC=E8=B4=A6=E6=8E=92=E5=BA=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../src/main/resources/mapper/SysUserTransactionMapper.xml | 1 -
.../main/resources/mapper/rule/WalletRuleTransactionMapper.xml | 1 +
2 files changed, 1 insertion(+), 1 deletion(-)
diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml
index 9e22075e8..e11e33308 100644
--- a/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml
+++ b/pjcloud-upms/pjcloud-upms-biz/src/main/resources/mapper/SysUserTransactionMapper.xml
@@ -123,7 +123,6 @@
AND t2.user_id = t1.user_id
AND t2.is_wallet_transaction = '1'
AND t2.process_status = '2'
- AND t2.wallet_transaction_time is null
ORDER BY t2.create_time DESC
LIMIT 1)
and DATE_FORMAT(t1.create_time, '%Y-%m-%d') <= #{dateStr}
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 b4749d032..0936e2be4 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
@@ -100,5 +100,6 @@
group by a.id
+ order by a.create_time desc,a.id desc
\ No newline at end of file
From 73efbfc4c9cee2fcff2a7255504ac056dd45ad4a Mon Sep 17 00:00:00 2001
From: dzc <2388224167@qq.com>
Date: Tue, 20 May 2025 10:17:42 +0800
Subject: [PATCH 4/4] =?UTF-8?q?feat:=E5=85=85=E5=80=BC=E7=94=B3=E8=AF=B7?=
=?UTF-8?q?=E5=88=A0=E9=99=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../WalletRechargeApplyController.java | 3 +-
.../service/WalletRechargeApplyService.java | 6 ++++
.../WalletRechargeApplyServiceImpl.java | 30 +++++++++++++++++++
3 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java
index 6a48a2c5b..3caa85ad5 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/recharge/WalletRechargeApplyController.java
@@ -117,7 +117,8 @@ public class WalletRechargeApplyController {
@DeleteMapping
@PreAuthorize("@pms.hasPermission('wallet_walletRechargeApply_del')")
public R removeById(@RequestBody Long[] ids) {
- return R.ok(walletRechargeApplyService.removeBatchByIds(CollUtil.toList(ids)));
+ walletRechargeApplyService.delByIds(CollUtil.toList(ids));
+ return R.ok();
}
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java
index dabffccd0..3923c7493 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/WalletRechargeApplyService.java
@@ -12,6 +12,7 @@ import com.bsd.pjcloud.wallet.api.vo.recharge.WalletRechargeApplyVo;
import com.bsd.pjcloud.wallet.api.vo.recharge.excel.WalletRechargeByApplyExcelVo;
import org.springframework.validation.BindingResult;
+import java.util.ArrayList;
import java.util.List;
public interface WalletRechargeApplyService extends IService {
@@ -20,6 +21,11 @@ public interface WalletRechargeApplyService extends IService list);
+
Page pageJoin(Page page, WalletRechargeApplyDto dto);
Page scopePageList(Page page, WalletRechargeApplyDto dto);
diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java
index 3ae2f4f98..ff59b5813 100644
--- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java
+++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/recharge/WalletRechargeApplyServiceImpl.java
@@ -29,6 +29,7 @@ import com.bsd.pjcloud.flow.task.constant.NodeStatusEnum;
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.flow.task.dto.TaskParamDto;
import com.bsd.pjcloud.wallet.api.constant.WalletBizEnum;
import com.bsd.pjcloud.wallet.api.constant.WalletBizRechargeEnum;
import com.bsd.pjcloud.wallet.api.constant.WalletTypeEnum;
@@ -37,6 +38,7 @@ import com.bsd.pjcloud.wallet.api.dto.WalletTypeDto;
import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeApplyDto;
import com.bsd.pjcloud.wallet.api.dto.recharge.WalletRechargeImportDto;
import com.bsd.pjcloud.wallet.api.dto.recharge.excel.WalletRechargeExcelDto;
+import com.bsd.pjcloud.wallet.api.entity.WalletFreezeEntity;
import com.bsd.pjcloud.wallet.api.entity.WalletManageEntity;
import com.bsd.pjcloud.wallet.api.entity.WalletTypeEntity;
import com.bsd.pjcloud.wallet.api.entity.recharge.WalletRechargeApplyEntity;
@@ -118,6 +120,34 @@ public class WalletRechargeApplyServiceImpl extends ServiceImpl list) {
+ if (ObjectUtil.isEmpty(list)) return;
+ for (Long v : list) {
+ // 只有未审批和审核中能删除
+ WalletRechargeApplyEntity detail = baseMapper.selectById(v);
+ if (ObjectUtil.isEmpty(detail)) continue;
+ if (ObjectUtil.isNotEmpty(detail.getProcessStatus()) && ObjectUtil.notEqual(detail.getProcessStatus(), TaskCheckStatusEnum.PADDING.getCode())) {
+ UserInfo userInfo = userService.getByUserId(detail.getUserId()).getData();
+ throw new RuntimeException("用户<" + userInfo.getSysUser().getName() + ">发起的审批不能删除");
+ }
+ // 如果是审批中就取消审批
+ if (ObjectUtil.equals(detail.getProcessStatus(), TaskCheckStatusEnum.PADDING.getCode())) {
+ TaskParamDto dto = new TaskParamDto();
+ dto.setProcessInstanceIdList(List.of(detail.getProcessId()));
+ flowEngineService.stopProcessInstance(dto).getData();
+ }
+ // 删除申请记录
+ baseMapper.deleteById(v);
+ // 删除申请记录条目
+ rechargeImportService.remove(new LambdaQueryWrapper().eq(WalletRechargeImportEntity::getApplyId, v));
+ }
+ }
+
@Override
public Page pageJoin(Page page, WalletRechargeApplyDto dto) {
Page list = baseMapper.pageJoin(page, dto);