diff --git a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardManagerEntity.java b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardManagerEntity.java index d8400614a..d634cf570 100644 --- a/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardManagerEntity.java +++ b/pjcloud-hardware/pjcloud-hardware-api/src/main/java/com/bsd/pjcloud/hard/api/entity/HardManagerEntity.java @@ -38,7 +38,7 @@ public class HardManagerEntity extends Model { private Long merchantId; /** - * 商家部门id + * 部门id */ @Schema(description="商家部门id") private Long deptId; diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardManagerController.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardManagerController.java index 38ea3b087..d199c2790 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardManagerController.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/controller/HardManagerController.java @@ -7,6 +7,8 @@ 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.common.security.service.PjcloudUser; +import com.bsd.pjcloud.common.security.util.SecurityUtils; import com.bsd.pjcloud.hard.api.dto.HardInvoiceDto; import com.bsd.pjcloud.hard.api.dto.HardManagerDto; import com.bsd.pjcloud.hard.api.entity.HardManagerEntity; @@ -31,16 +33,16 @@ import java.util.List; */ @RestController @RequiredArgsConstructor -@RequestMapping("/hard-manager" ) -@Tag(description = "hard-manager" , name = "设备管理管理" ) +@RequestMapping("/hard-manager") +@Tag(description = "hard-manager", name = "设备管理管理") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class HardManagerController { private final HardManagerService hardManagerService; - @Operation(summary = "分页查询" , description = "分页查询" ) - @GetMapping("/page" ) - @PreAuthorize("@pms.hasPermission('hard_hardManager_view')" ) + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('hard_hardManager_view')") public R getHardManagerPage(@ParameterObject Page page, @ParameterObject HardManagerEntity hardManager) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); return R.ok(hardManagerService.page(page, wrapper)); @@ -53,42 +55,43 @@ public class HardManagerController { return R.ok(hardManagerService.scopePageList(page, dto)); } - @Operation(summary = "通过id查询" , description = "通过id查询" ) - @GetMapping("/{id}" ) - @PreAuthorize("@pms.hasPermission('hard_hardManager_view')" ) - public R getById(@PathVariable("id" ) Long id) { + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('hard_hardManager_view')") + public R getById(@PathVariable("id") Long id) { return R.ok(hardManagerService.getById(id)); } - @Operation(summary = "新增设备管理" , description = "新增设备管理" ) - @SysLog("新增设备管理" ) + @Operation(summary = "新增设备管理", description = "新增设备管理") + @SysLog("新增设备管理") @PostMapping - @PreAuthorize("@pms.hasPermission('hard_hardManager_add')" ) + @PreAuthorize("@pms.hasPermission('hard_hardManager_add')") public R save(@RequestBody HardManagerDto dto) { - return R.ok(hardManagerService.create(dto)); + PjcloudUser user = SecurityUtils.getUser(); + return R.ok(hardManagerService.create(dto, user)); } - @Operation(summary = "修改设备管理" , description = "修改设备管理" ) - @SysLog("修改设备管理" ) + @Operation(summary = "修改设备管理", description = "修改设备管理") + @SysLog("修改设备管理") @PutMapping - @PreAuthorize("@pms.hasPermission('hard_hardManager_edit')" ) + @PreAuthorize("@pms.hasPermission('hard_hardManager_edit')") public R updateById(@RequestBody HardManagerDto dto) { hardManagerService.edit(dto); return R.ok(); } - @Operation(summary = "通过id删除设备管理" , description = "通过id删除设备管理" ) - @SysLog("通过id删除设备管理" ) + @Operation(summary = "通过id删除设备管理", description = "通过id删除设备管理") + @SysLog("通过id删除设备管理") @DeleteMapping - @PreAuthorize("@pms.hasPermission('hard_hardManager_del')" ) + @PreAuthorize("@pms.hasPermission('hard_hardManager_del')") public R removeById(@RequestBody Long[] ids) { return R.ok(hardManagerService.removeBatchByIds(CollUtil.toList(ids))); } @ResponseExcel @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('hard_hardManager_export')" ) - public List export(HardManagerEntity hardManager,Long[] ids) { + @PreAuthorize("@pms.hasPermission('hard_hardManager_export')") + public List export(HardManagerEntity hardManager, Long[] ids) { return hardManagerService.list(Wrappers.lambdaQuery(hardManager).in(ArrayUtil.isNotEmpty(ids), HardManagerEntity::getId, ids)); } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java index 7b8a130a6..a7716d95a 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardManagerService.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.hard.api.dto.HardManagerDto; import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto; import com.bsd.pjcloud.hard.api.entity.HardManagerEntity; @@ -13,7 +14,7 @@ public interface HardManagerService extends IService { Page scopePageList(Page page, HardManagerDto dto); - Long create(HardManagerDto dto); + Long create(HardManagerDto dto, PjcloudUser user); void edit(HardManagerDto dto); 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 1245da780..0b4343fa2 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 @@ -10,6 +10,7 @@ import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.core.util.R; +import com.bsd.pjcloud.common.security.service.PjcloudUser; import com.bsd.pjcloud.hard.api.dto.HardManagerDto; import com.bsd.pjcloud.hard.api.dto.hard.HardBindDto; import com.bsd.pjcloud.hard.api.entity.HardManagerEntity; @@ -98,10 +99,10 @@ public class HardManagerServiceImpl extends ServiceImpl mch = mchService.getById(dto.getMerchantId()); - Long deptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在")); - dto.setDeptId(deptId); + Long mchDeptId = Optional.of(mch).map(R::getData).map(MchManageVo::getDeptId).orElseThrow(() -> new RuntimeException("商户不存在")); + dto.setDeptId(user.getDeptId()); // mq地址和端口 dto.setMqSocketAddress(mqttConfig.getAndroidAddress()); dto.setMqSocketPort(mqttConfig.getAndroidPort()); @@ -109,13 +110,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("商户不存在")); + if (!ObjectUtil.equals(dto.getMerchantId(), detail.getMerchantId())) { + // topic + String topic = createMqConfigByAction(mchDeptId, null, 1) + "/#"; + dto.setMainTopic(topic); + // client id + String clientId = createMqConfigByAction(mchDeptId, dto.getId(), 2); + dto.setMqClientId(clientId); + // username TODO 密码9位随机数字加字母 + String mqUsername = createMqConfigByAction(mchDeptId, dto.getId(), 3); + dto.setMqUsername(mqUsername); + } baseMapper.updateById(dto); // 更新mq remoteMqttEventService.sendConfigChangeMsg(detail.getDeptId()); @@ -148,7 +162,10 @@ public class HardManagerServiceImpl extends ServiceImpl userIds; + private List deptIds; + } diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java index 447815e02..3d6a7b925 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/controller/SysUserFaceController.java @@ -85,9 +85,10 @@ public class SysUserFaceController { /* ************************************* start android start ************************************* */ @Operation(summary = "android查询人脸数据库", description = "android查询人脸数据库") @GetMapping("/ad/find-face") - public R adFinFace(@ParameterObject Page page, @RequestParam(required = false) Long userId) { + public R adFinFace(@ParameterObject Page page, @RequestParam(required = false) Long userId, @RequestParam(required = false) Long merchantDeptId) { SysUserFaceDto dto = new SysUserFaceDto(); dto.setUserId(userId); + dto.setMerchantDeptId(merchantDeptId); return R.ok(sysUserFaceService.pageJoin(page, dto).getRecords()); } /* ************************************* start android start ************************************* */ diff --git a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java index e3f9a19ed..f192af6ce 100644 --- a/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java +++ b/pjcloud-upms/pjcloud-upms-biz/src/main/java/com/bsd/pjcloud/admin/mapper/SysUserFaceMapper.java @@ -41,10 +41,11 @@ public interface SysUserFaceMapper extends PjcloudBaseMapper .selectAs(SysUser::getPhone, SysUserFaceVo::getUserMobile) .selectAs(SysDept::getName, SysUserFaceVo::getDeptName) .selectAs(SysDept::getDeptId, SysUserFaceVo::getDeptId) - .leftJoin(SysUser.class, SysUser::getUserId, SysUserFaceEntity::getUserId) - .leftJoin(SysDept.class, SysDept::getDeptId, SysUser::getDeptId) + .innerJoin(SysUser.class, SysUser::getUserId, SysUserFaceEntity::getUserId) + .innerJoin(SysDept.class, SysDept::getDeptId, SysUser::getDeptId) .eq(ObjectUtil.isNotEmpty(dto.getUserId()), SysUserFaceEntity::getUserId, dto.getUserId()) - .in(ObjectUtil.isNotEmpty(dto.getUserIds()), SysUserFaceEntity::getUserId, dto.getUserIds()); + .in(ObjectUtil.isNotEmpty(dto.getUserIds()), SysUserFaceEntity::getUserId, dto.getUserIds()) + .in(ObjectUtil.isNotEmpty(dto.getDeptIds()), SysUser::getDeptId, dto.getDeptIds()); return selectJoinPage(page, SysUserFaceVo.class, wrapper); } } \ No newline at end of file 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 460ab5818..81fbe5847 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 @@ -1,15 +1,18 @@ package com.bsd.pjcloud.admin.service.impl; +import cn.hutool.core.lang.tree.Tree; 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.SysUserFaceDto; +import com.bsd.pjcloud.admin.api.entity.SysDept; import com.bsd.pjcloud.admin.api.entity.SysUser; import com.bsd.pjcloud.admin.api.entity.SysUserFaceEntity; import com.bsd.pjcloud.admin.api.utils.DataUtil; import com.bsd.pjcloud.admin.api.vo.SysUserFaceVo; import com.bsd.pjcloud.admin.mapper.SysUserFaceMapper; +import com.bsd.pjcloud.admin.service.SysDeptService; import com.bsd.pjcloud.admin.service.SysUserFaceService; import com.bsd.pjcloud.admin.service.SysUserService; import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; @@ -37,6 +40,7 @@ import java.util.List; public class SysUserFaceServiceImpl extends ServiceImpl implements SysUserFaceService { private final SysUserService sysUserService; + private final SysDeptService sysDeptService; @Override public Long create(SysUserFaceEntity sysUserFace) { @@ -76,6 +80,13 @@ public class SysUserFaceServiceImpl extends ServiceImpl pageJoin(Page page, SysUserFaceDto dto) { + if (ObjectUtil.isNotEmpty(dto.getMerchantDeptId())) { + List deptList = sysDeptService.listDescendant(dto.getMerchantDeptId()); + if (ObjectUtil.isNotEmpty(deptList)) { + List deptIds = deptList.stream().map(SysDept::getDeptId).toList(); + dto.setDeptIds(deptIds); + } + } return baseMapper.pageJoin(page, dto); }