diff --git a/db/800pjcloudx_wallet.sql b/db/800pjcloudx_wallet.sql index 1d23877b5..032a53a02 100644 --- a/db/800pjcloudx_wallet.sql +++ b/db/800pjcloudx_wallet.sql @@ -9,6 +9,7 @@ CREATE TABLE mch_manage ( id bigint NOT NULL COMMENT '主键', dept_id bigint NOT NULL COMMENT '绑定的部门id', + hard_group_id bigint COMMENT '设备分组id', name varchar(64) NOT NULL COMMENT '商户名', types varchar(64) NOT NULL COMMENT '店铺类型,逗号分隔', logo_pic varchar(256) NOT NULL COMMENT '商户logo图片', diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java index 2fc4ec9f4..bbbaf1cdb 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/hard/HardApiController.java @@ -72,8 +72,11 @@ public class HardApiController { @PostMapping("/cancel-code") @Operation(summary = "核销二维码") - @Idempotent(expireTime = 10, info = "正在支付中,请勿重复操作") - public R handCancelCode(@Valid @RequestBody HandCancelCodeDto dto) { + @Idempotent(expireTime = 10, info = "正在核销中,请勿重复操作") + public R handCancelCode(@RequestBody HandCancelCodeDto dto) { + if (!ObjectUtil.isAllNotEmpty(dto.getOrderId(), dto.getHardwareId())) { + throw new RuntimeException("参数不正确"); + } return R.ok(hardwareOrderService.handCancelCode(dto)); } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index c8135fedd..78801b9bd 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -67,5 +67,5 @@ public interface HardOrderService extends IService { * @param dto * @return */ - Boolean handCancelCode(@Valid HandCancelCodeDto dto); + Boolean handCancelCode(HandCancelCodeDto dto); } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java index cf4312028..be95aa730 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/HardManagerServiceImpl.java @@ -116,9 +116,12 @@ public class HardManagerServiceImpl extends ServiceImpl mch = mchService.getById(dto.getMerchantId()); - Long mchDeptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在")); + MchManageVo mch = mchService.getById(dto.getMerchantId()).getData(); + if (ObjectUtil.isEmpty(mch)) { + throw new RuntimeException("商户不存在"); + } dto.setDeptId(user.getDeptId()); + dto.setHardGroupId(mch.getHardGroupId()); // mq地址和端口 dto.setMqSocketAddress(mqttConfig.getAndroidAddress()); dto.setMqSocketPort(mqttConfig.getAndroidPort()); @@ -126,13 +129,13 @@ public class HardManagerServiceImpl extends ServiceImpl mch = mchService.getById(dto.getMerchantId()); - Long mchDeptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在")); + MchManageVo mch = mchService.getById(dto.getMerchantId()).getData(); + if (ObjectUtil.isEmpty(mch)) { + throw new RuntimeException("商户不存在"); + } + dto.setHardGroupId(mch.getHardGroupId()); if (!ObjectUtil.equals(dto.getMerchantId(), detail.getMerchantId())) { // topic - String topic = createMqConfigByAction(mchDeptId, null, 1) + "/#"; + String topic = createMqConfigByAction(mch.getHardGroupId(), null, null, 1) + "/#"; dto.setMainTopic(topic); // client id - String clientId = createMqConfigByAction(mchDeptId, dto.getId(), 2); + String clientId = createMqConfigByAction(null, null, dto.getId(), 2); dto.setMqClientId(clientId); // username TODO 密码9位随机数字加字母 - String mqUsername = createMqConfigByAction(mchDeptId, dto.getId(), 3); + String mqUsername = createMqConfigByAction(null, null, dto.getId(), 3); dto.setMqUsername(mqUsername); } baseMapper.updateById(dto); @@ -185,8 +191,8 @@ public class HardManagerServiceImpl extends ServiceImpl 0; } @@ -417,14 +417,20 @@ public class HardOrderServiceImpl extends ServiceImpl { } // 外来人员 | 跨单位 | 线上订餐 - case FOREIGN_TICKET, STRIDE_DEPT, RESERVE -> remoteCodeUseService.cancelCode(id); + case FOREIGN_TICKET, STRIDE_DEPT, RESERVE -> { + R result = remoteCodeUseService.cancelCode(id); + if (ObjectUtil.isEmpty(result) || result.getCode() != 0 || !result.getData()) { + throw new RuntimeException("核销二维码错误"); + } + break; + } } } @@ -502,18 +508,19 @@ public class HardOrderServiceImpl extends ServiceImpl false; - case FOREIGN_TICKET, STRIDE_DEPT -> { - R result = remoteCodeUseService.isCancelCode(orderSourceTypeId); - if (ObjectUtil.isEmpty(result.getData())) yield false; + case FOREIGN_TICKET, STRIDE_DEPT, RESERVE -> { + R result = remoteCodeUseService.isCancelCode(orderId); + if (ObjectUtil.isEmpty(result.getData()) || result.getCode() != 0) { + yield true; + } yield result.getData(); } - default -> false; + default -> true; }; - if (!flag) throw new RuntimeException("该二维码已被核销"); + if (flag) throw new RuntimeException("该二维码已被核销"); return flag; } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/utils/MqTopicUtil.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/utils/MqTopicUtil.java index 28889dc92..8c1210633 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/utils/MqTopicUtil.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/utils/MqTopicUtil.java @@ -11,6 +11,12 @@ import lombok.NoArgsConstructor; @NoArgsConstructor @Data public class MqTopicUtil { + + /** + * 分组id + */ + private Long groupId; + /** * 商户id */ @@ -22,31 +28,28 @@ public class MqTopicUtil { private Long hardId; public String getTopic() { - if (ObjectUtil.isAllNotEmpty(deptId, hardId)) { - return String.format("topic/android/%s/%s", deptId, hardId); + if (ObjectUtil.isAllNotEmpty(groupId, deptId, hardId)) { + return String.format("topic/android/%s/%s/%s", groupId, deptId, hardId); } - if (ObjectUtil.isAllNotEmpty(deptId)) { - return String.format("topic/android/%s", deptId); + if (ObjectUtil.isAllNotEmpty(groupId, deptId)) { + return String.format("topic/android/%s/%s", groupId, deptId); + } + if (ObjectUtil.isAllNotEmpty(groupId)) { + return String.format("topic/android/%s", groupId); } return null; } public String getClientId() { - if (ObjectUtil.isAllNotEmpty(deptId, hardId)) { - return String.format("client_id/android/%s/%s", deptId, hardId); - } - if (ObjectUtil.isAllNotEmpty(deptId)) { - return String.format("client_id/android/%s", deptId); + if (ObjectUtil.isAllNotEmpty(hardId)) { + return String.format("client_id/android/%s", hardId); } return null; } public String getUsername() { - if (ObjectUtil.isAllNotEmpty(deptId, hardId)) { - return String.format("username_android_/android/%s/%s", deptId, hardId); - } - if (ObjectUtil.isAllNotEmpty(deptId)) { - return String.format("username_android_/android/%s", deptId); + if (ObjectUtil.isAllNotEmpty(hardId)) { + return String.format("username/android/%s", hardId); } return null; } diff --git a/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/api/feign/RemoteMqttEventService.java b/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/api/feign/RemoteMqttEventService.java index 708edf023..e7e081b25 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/api/feign/RemoteMqttEventService.java +++ b/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/api/feign/RemoteMqttEventService.java @@ -58,5 +58,5 @@ public interface RemoteMqttEventService { */ @NoToken @GetMapping("/mqtt/send-face-change-msg") - R sendFaceChangeMsg(@RequestParam List parentDeptList, @RequestParam Long userId, @RequestParam(required = false) Boolean isGlobalFace); + R sendFaceChangeMsg(@RequestParam Long userDeptId, @RequestParam Long userId, @RequestParam(required = false) Boolean isGlobalFace); } diff --git a/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/dto/MqttBaseDto.java b/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/dto/MqttBaseDto.java index 0b36dda5e..956cffd39 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/dto/MqttBaseDto.java +++ b/pjcloud-mqtt/pjcloud-mqtt-api/src/main/java/com/bsd/pjcloud/mqtt/dto/MqttBaseDto.java @@ -6,6 +6,9 @@ import lombok.Data; @Data public class MqttBaseDto { + // 硬件分组id + private Long hardGroupId; + // 商户id private Long merchantDeptId; @@ -18,16 +21,15 @@ public class MqttBaseDto { private T data; - public Boolean isExistMchDeptId() { - return ObjectUtil.isNotEmpty(merchantDeptId); - } - public String getTopic() { - if (ObjectUtil.isAllNotEmpty(merchantDeptId, hardwareId)) { + if (ObjectUtil.isAllNotEmpty(hardGroupId, merchantDeptId, hardwareId)) { + return String.format("topic/android/%s/%s/%s", hardGroupId, merchantDeptId, hardwareId); + } + if (ObjectUtil.isAllNotEmpty(hardGroupId, merchantDeptId)) { return String.format("topic/android/%s/%s", merchantDeptId, hardwareId); } - if (ObjectUtil.isAllNotEmpty(merchantDeptId)) { - return String.format("topic/android/%s", merchantDeptId); + if (ObjectUtil.isAllNotEmpty(hardGroupId)) { + return String.format("topic/android/%s", hardGroupId); } return "topic/android"; } diff --git a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java index 974c14719..51101fb58 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java +++ b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/controller/MqttEventController.java @@ -7,16 +7,13 @@ import com.bsd.pjcloud.mqtt.constant.MqttActionEnum; import com.bsd.pjcloud.mqtt.dto.MqttBaseDto; import com.bsd.pjcloud.mqtt.dto.hard.HardCustomerMsg; import com.bsd.pjcloud.mqtt.service.MqttEventService; -import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; -import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpHeaders; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.HashSet; + import java.util.List; @RestController @@ -28,8 +25,6 @@ public class MqttEventController { private final MqttEventService mqttEventService; - private final RemoteMchService remoteMchService; - @Inner @PostMapping("/send-default-msg") public R sendDefaultMsg(@RequestBody MqttBaseDto dto) { @@ -109,13 +104,11 @@ public class MqttEventController { */ @Inner @GetMapping("/send-face-change-msg") - public R sendFaceChangeMsg(@RequestParam List parentDeptList, @RequestParam Long userId, @RequestParam(required = false) Boolean isGlobalFace) { + public R sendFaceChangeMsg(@RequestParam Long userDeptId, @RequestParam Long userId, @RequestParam(required = false) Boolean isGlobalFace) { MqttBaseDto dto = new MqttBaseDto(); - MchManageVo mchDept = remoteMchService.getFirstMch(parentDeptList).getData(); - if (ObjectUtil.isNotEmpty(mchDept)) { - dto.setMerchantDeptId(mchDept.getDeptId()); - } + mqttEventService.getTopicParamsByUserDeptId(dto, userDeptId); dto.setAction(MqttActionEnum.FACE); + // msg HardCustomerMsg msg = new HardCustomerMsg(); msg.setUserId(String.valueOf(userId)); if (ObjectUtil.isNotEmpty(isGlobalFace)) { diff --git a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/service/MqttEventService.java b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/service/MqttEventService.java index 2890b3ced..e7c72da23 100644 --- a/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/service/MqttEventService.java +++ b/pjcloud-mqtt/pjcloud-mqtt-biz/src/main/java/com/bsd/pjcloud/mqtt/service/MqttEventService.java @@ -1,12 +1,17 @@ package com.bsd.pjcloud.mqtt.service; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.bsd.pjcloud.mqtt.dto.MqttBaseDto; import com.bsd.pjcloud.mqtt.dto.MqttHardBaseMsg; +import com.bsd.pjcloud.wallet.api.feign.RemoteMchService; +import com.bsd.pjcloud.wallet.api.vo.MchManageVo; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; +import java.util.List; + @RequiredArgsConstructor @Slf4j @Component @@ -14,6 +19,7 @@ public class MqttEventService { private final MqttService mqttService; + private final RemoteMchService remoteMchService; public Boolean defaultAction(T dto) { MqttHardBaseMsg msg = dto.getData(); @@ -21,4 +27,12 @@ public class MqttEventService { mqttService.publish(dto.getQos(), false, dto.getTopic(), JSON.toJSONString(msg)); return true; } + + public void getTopicParamsByUserDeptId(T dto, Long deptId) { + MchManageVo mch = remoteMchService.getFirstMchByDeptId(deptId).getData(); + if (ObjectUtil.isEmpty(mch)) { + return; + } + dto.setHardGroupId(mch.getHardGroupId()); + } } diff --git a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java index bfcce26f4..dbe724fbf 100644 --- a/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java +++ b/pjcloud-upms/pjcloud-upms-api/src/main/java/com/bsd/pjcloud/admin/api/feign/RemoteDeptService.java @@ -74,4 +74,14 @@ public interface RemoteDeptService { */ @GetMapping("/dept/getDeptListByDeptId") R getDeptByDeptId(@RequestParam("deptId") Long deptId); + + /** + * 获得指定部门的所有父部门 + * + * @param deptId + * @return + */ + @NoToken + @GetMapping("/dept/getParentDeptList") + R> getParentDeptList(@RequestParam("deptId") Long deptId); } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java index 8d39f6c27..6cf720a51 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysDeptController.java @@ -198,4 +198,10 @@ public class SysDeptController { public R getDeptByDeptId(@RequestParam("deptId") Long deptId) { return R.ok(sysDeptService.getById(deptId)); } + + @Inner + @GetMapping("/getParentDeptList") + public R> getParentDeptList(@RequestParam("deptId") Long deptId) { + return R.ok(sysDeptService.getParentDeptList(deptId)); + } } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java index c9192463c..84d21c3de 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/service/impl/SysUserFaceServiceImpl.java @@ -122,10 +122,7 @@ public class SysUserFaceServiceImpl extends ServiceImpl list = sysUserService.list(new LambdaQueryWrapper().in(SysUser::getUserId, userIds)); if (ObjectUtil.isEmpty(list)) return; for (SysUser v : list) { - List parentDeptList = sysDeptService.getParentDeptList(v.getDeptId()); - if (ObjectUtil.isEmpty(parentDeptList)) continue; - List deptIds = parentDeptList.stream().map(SysDept::getDeptId).toList(); - remoteMqttEventService.sendFaceChangeMsg(deptIds, v.getUserId(), isGlobalFace); + remoteMqttEventService.sendFaceChangeMsg(v.getDeptId(), v.getUserId(), isGlobalFace); } } } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java index c6fb65b30..1d87f4b58 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/entity/MchManageEntity.java @@ -32,6 +32,12 @@ public class MchManageEntity extends Model { @Schema(description="主键") private Long id; + /** + * 设备分组id + */ + @Schema(description="设备分组id") + private Long hardGroupId; + /** * 绑定的部门id */ diff --git a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java index ba9ab9290..4f5c90dfa 100644 --- a/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java +++ b/pjcloud-wallet/pjcloud-wallet-api/src/main/java/com/bsd/pjcloud/wallet/api/feign/RemoteMchService.java @@ -33,4 +33,7 @@ public interface RemoteMchService { @GetMapping("/mch-manage/get-first-mch") R getFirstMch(@RequestParam List deptIds); + @NoToken + @GetMapping("/mch-manage/get-first-mch-by-dept-id") + R getFirstMchByDeptId(@RequestParam Long deptId); } diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java index 91a146dd9..8967d29f8 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/controller/MchManageController.java @@ -80,6 +80,14 @@ public class MchManageController { if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); return R.ok(mchManage); } + + @Inner + @GetMapping("/get-first-mch-by-dept-id") + public R getFirstMchByDeptId(@RequestParam Long deptId) { + MchManageVo mchManage = mchManageService.getFirstMchByDeptId(deptId); + if (ObjectUtil.isEmpty(mchManage)) return R.failed("商户不存在"); + return R.ok(mchManage); + } /* ************************************* end 远程调用 end ************************************* */ /* ************************************* start app start ************************************* */ diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java index c9d1b5629..556b59a35 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/MchManageService.java @@ -28,4 +28,6 @@ public interface MchManageService extends IService { MchManageVo getByDeptId(Long deptId); MchManageVo getFirstMch(List deptIds); + + MchManageVo getFirstMchByDeptId(Long deptId); } \ No newline at end of file diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java index 17118560d..951154351 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/MchManageServiceImpl.java @@ -112,7 +112,7 @@ public class MchManageServiceImpl extends ServiceImpl list) { if (ObjectUtil.isEmpty(list)) return; - delByIds(list); + baseMapper.deleteByIds(list); // 删除缓存 list.forEach(v -> redisTemplate.opsForValue().getAndDelete(CacheConstants.WALLET_MCH + v)); } @@ -189,6 +189,16 @@ public class MchManageServiceImpl extends ServiceImpl parentDeptIdList = remoteDeptService.getParentDeptList(deptId).getData(); + if (ObjectUtil.isEmpty(parentDeptIdList)) { + return null; + } + List deptIds = parentDeptIdList.stream().map(SysDept::getDeptId).toList(); + return getFirstMch(deptIds); + } + private boolean existName(String name, Long id) { Long count = baseMapper.selectCount(new LambdaQueryWrapper() .eq(ObjectUtil.isNotEmpty(name), MchManageEntity::getName, name) diff --git a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.java b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.java index 0aa91df44..58c4265eb 100644 --- a/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.java +++ b/pjcloud-wallet/pjcloud-wallet-biz/src/main/java/com/bsd/pjcloud/wallet/service/impl/WalletCodeUseServiceImpl.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.wallet.service.impl; import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; +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.SysUser; @@ -107,18 +108,22 @@ public class WalletCodeUseServiceImpl extends ServiceImpl() + .eq(WalletCodeUseEntity::getBizId, id) + ); + if (ObjectUtil.isEmpty(codeUse)) return null; if (ObjectUtil.equals(codeUse.getStatus(), YesNoEnum.YES.getCode())) return false; - WalletCodeUseEntity updateObj = WalletCodeUseEntity.builder().id(id).status(YesNoEnum.YES.getCode()).useTime(LocalDateTime.now()).build(); + WalletCodeUseEntity updateObj = WalletCodeUseEntity.builder().id(codeUse.getId()).status(YesNoEnum.YES.getCode()).useTime(LocalDateTime.now()).build(); return baseMapper.updateById(updateObj) > 0; } @Override @Transactional(rollbackFor = Exception.class) public Boolean isCancelCode(Long id) { - WalletCodeUseEntity codeUse = baseMapper.selectById(id); - if (ObjectUtil.isEmpty(codeUse)) return false; + WalletCodeUseEntity codeUse = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(WalletCodeUseEntity::getBizId, id) + ); + if (ObjectUtil.isEmpty(codeUse)) return null; return ObjectUtil.equals(codeUse.getStatus(), YesNoEnum.YES.getCode()); } } \ No newline at end of file